@remotion/promo-pages 4.0.339 → 4.0.340

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/Homepage.js CHANGED
@@ -735,7 +735,7 @@ var __defProp2, __export2 = (target, all) => {
735
735
  });
736
736
  }, useIsPlayer = () => {
737
737
  return useContext(IsPlayerContext);
738
- }, VERSION = "4.0.339", checkMultipleRemotionVersions = () => {
738
+ }, VERSION = "4.0.340", checkMultipleRemotionVersions = () => {
739
739
  if (typeof globalThis === "undefined") {
740
740
  return;
741
741
  }
@@ -1639,6 +1639,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
1639
1639
  _remotionInternalLoopDisplay: loopDisplay,
1640
1640
  _remotionInternalStack: stack,
1641
1641
  _remotionInternalPremountDisplay: premountDisplay,
1642
+ _remotionInternalPostmountDisplay: postmountDisplay,
1642
1643
  ...other
1643
1644
  }, ref) => {
1644
1645
  const { layout = "absolute-fill" } = other;
@@ -1674,6 +1675,9 @@ Check that all your Remotion packages are on the same version. If your dependenc
1674
1675
  const premounting = useMemo9(() => {
1675
1676
  return parentSequence?.premounting || Boolean(other._remotionInternalIsPremounting);
1676
1677
  }, [other._remotionInternalIsPremounting, parentSequence?.premounting]);
1678
+ const postmounting = useMemo9(() => {
1679
+ return parentSequence?.postmounting || Boolean(other._remotionInternalIsPostmounting);
1680
+ }, [other._remotionInternalIsPostmounting, parentSequence?.postmounting]);
1677
1681
  const contextValue = useMemo9(() => {
1678
1682
  return {
1679
1683
  cumulatedFrom,
@@ -1683,7 +1687,8 @@ Check that all your Remotion packages are on the same version. If your dependenc
1683
1687
  id,
1684
1688
  height: height ?? parentSequence?.height ?? null,
1685
1689
  width: width ?? parentSequence?.width ?? null,
1686
- premounting
1690
+ premounting,
1691
+ postmounting
1687
1692
  };
1688
1693
  }, [
1689
1694
  cumulatedFrom,
@@ -1693,7 +1698,8 @@ Check that all your Remotion packages are on the same version. If your dependenc
1693
1698
  id,
1694
1699
  height,
1695
1700
  width,
1696
- premounting
1701
+ premounting,
1702
+ postmounting
1697
1703
  ]);
1698
1704
  const timelineClipName = useMemo9(() => {
1699
1705
  return name ?? "";
@@ -1714,7 +1720,8 @@ Check that all your Remotion packages are on the same version. If your dependenc
1714
1720
  nonce,
1715
1721
  loopDisplay,
1716
1722
  stack: stack ?? null,
1717
- premountDisplay: premountDisplay ?? null
1723
+ premountDisplay: premountDisplay ?? null,
1724
+ postmountDisplay: postmountDisplay ?? null
1718
1725
  });
1719
1726
  return () => {
1720
1727
  unregisterSequence(id);
@@ -1734,7 +1741,8 @@ Check that all your Remotion packages are on the same version. If your dependenc
1734
1741
  nonce,
1735
1742
  loopDisplay,
1736
1743
  stack,
1737
- premountDisplay
1744
+ premountDisplay,
1745
+ postmountDisplay
1738
1746
  ]);
1739
1747
  const endThreshold = Math.ceil(cumulatedFrom + from + durationInFrames - 1);
1740
1748
  const content = absoluteFrame < cumulatedFrom + from ? null : absoluteFrame > endThreshold ? null : children;
@@ -1763,45 +1771,64 @@ Check that all your Remotion packages are on the same version. If your dependenc
1763
1771
  children: content
1764
1772
  })
1765
1773
  });
1766
- }, RegularSequence, PremountedSequenceRefForwardingFunction = (props, ref) => {
1774
+ }, RegularSequence, PremountedPostmountedSequenceRefForwardingFunction = (props, ref) => {
1767
1775
  const frame = useCurrentFrame();
1768
1776
  if (props.layout === "none") {
1769
- throw new Error('`<Sequence>` with `premountFor` prop does not support layout="none"');
1777
+ throw new Error('`<Sequence>` with `premountFor` and `postmountFor` props does not support layout="none"');
1770
1778
  }
1771
1779
  const {
1772
1780
  style: passedStyle,
1773
1781
  from = 0,
1782
+ durationInFrames = Infinity,
1774
1783
  premountFor = 0,
1784
+ postmountFor = 0,
1775
1785
  styleWhilePremounted,
1786
+ styleWhilePostmounted,
1776
1787
  ...otherProps
1777
1788
  } = props;
1789
+ const endThreshold = Math.ceil(from + durationInFrames - 1);
1778
1790
  const premountingActive = frame < from && frame >= from - premountFor;
1791
+ const postmountingActive = frame > endThreshold && frame <= endThreshold + postmountFor;
1792
+ const freezeFrame = premountingActive ? from : postmountingActive ? from + durationInFrames - 1 : 0;
1793
+ const isFreezingActive = premountingActive || postmountingActive;
1779
1794
  const style = useMemo9(() => {
1780
1795
  return {
1781
1796
  ...passedStyle,
1782
- opacity: premountingActive ? 0 : 1,
1783
- pointerEvents: premountingActive ? "none" : passedStyle?.pointerEvents ?? undefined,
1784
- ...premountingActive ? styleWhilePremounted : {}
1797
+ opacity: premountingActive || postmountingActive ? 0 : 1,
1798
+ pointerEvents: premountingActive || postmountingActive ? "none" : passedStyle?.pointerEvents ?? undefined,
1799
+ ...premountingActive ? styleWhilePremounted : {},
1800
+ ...postmountingActive ? styleWhilePostmounted : {}
1785
1801
  };
1786
- }, [passedStyle, premountingActive, styleWhilePremounted]);
1802
+ }, [
1803
+ passedStyle,
1804
+ premountingActive,
1805
+ postmountingActive,
1806
+ styleWhilePremounted,
1807
+ styleWhilePostmounted
1808
+ ]);
1787
1809
  return /* @__PURE__ */ jsx82(Freeze, {
1788
- frame: from,
1789
- active: premountingActive,
1810
+ frame: freezeFrame,
1811
+ active: isFreezingActive,
1790
1812
  children: /* @__PURE__ */ jsx82(Sequence, {
1791
1813
  ref,
1792
1814
  from,
1815
+ durationInFrames,
1793
1816
  style,
1794
1817
  _remotionInternalPremountDisplay: premountFor,
1818
+ _remotionInternalPostmountDisplay: postmountFor,
1795
1819
  _remotionInternalIsPremounting: premountingActive,
1820
+ _remotionInternalIsPostmounting: postmountingActive,
1796
1821
  ...otherProps
1797
1822
  })
1798
1823
  });
1799
- }, PremountedSequence, SequenceRefForwardingFunction = (props, ref) => {
1800
- if (props.layout !== "none" && props.premountFor && !getRemotionEnvironment().isRendering) {
1801
- return /* @__PURE__ */ jsx82(PremountedSequence, {
1802
- ...props,
1803
- ref
1804
- });
1824
+ }, PremountedPostmountedSequence, SequenceRefForwardingFunction = (props, ref) => {
1825
+ if (props.layout !== "none" && !getRemotionEnvironment().isRendering) {
1826
+ if (props.premountFor || props.postmountFor) {
1827
+ return /* @__PURE__ */ jsx82(PremountedPostmountedSequence, {
1828
+ ...props,
1829
+ ref
1830
+ });
1831
+ }
1805
1832
  }
1806
1833
  return /* @__PURE__ */ jsx82(RegularSequence, {
1807
1834
  ...props,
@@ -3233,8 +3260,10 @@ Check that all your Remotion packages are on the same version. If your dependenc
3233
3260
  stack,
3234
3261
  showInTimeline,
3235
3262
  premountDisplay,
3263
+ postmountDisplay,
3236
3264
  onAutoPlayError,
3237
- isPremounting
3265
+ isPremounting,
3266
+ isPostmounting
3238
3267
  }) => {
3239
3268
  const videoConfig = useVideoConfig();
3240
3269
  const { rootId, audioAndVideoTags } = useContext17(TimelineContext);
@@ -3296,7 +3325,8 @@ Check that all your Remotion packages are on the same version. If your dependenc
3296
3325
  loopDisplay: undefined,
3297
3326
  playbackRate,
3298
3327
  stack,
3299
- premountDisplay
3328
+ premountDisplay,
3329
+ postmountDisplay
3300
3330
  });
3301
3331
  return () => {
3302
3332
  unregisterSequence(id);
@@ -3321,7 +3351,8 @@ Check that all your Remotion packages are on the same version. If your dependenc
3321
3351
  displayName,
3322
3352
  stack,
3323
3353
  showInTimeline,
3324
- premountDisplay
3354
+ premountDisplay,
3355
+ postmountDisplay
3325
3356
  ]);
3326
3357
  useEffect8(() => {
3327
3358
  const tag = {
@@ -3330,7 +3361,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
3330
3361
  if (!imperativePlaying.current) {
3331
3362
  return;
3332
3363
  }
3333
- if (isPremounting) {
3364
+ if (isPremounting || isPostmounting) {
3334
3365
  return;
3335
3366
  }
3336
3367
  return playAndHandleNotAllowedError({
@@ -3355,6 +3386,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
3355
3386
  onAutoPlayError,
3356
3387
  imperativePlaying,
3357
3388
  isPremounting,
3389
+ isPostmounting,
3358
3390
  logLevel,
3359
3391
  mountTime
3360
3392
  ]);
@@ -3585,6 +3617,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
3585
3617
  element,
3586
3618
  shouldBuffer,
3587
3619
  isPremounting,
3620
+ isPostmounting,
3588
3621
  logLevel,
3589
3622
  mountTime,
3590
3623
  src
@@ -3600,8 +3633,8 @@ Check that all your Remotion packages are on the same version. If your dependenc
3600
3633
  if (!shouldBuffer) {
3601
3634
  return;
3602
3635
  }
3603
- if (isPremounting) {
3604
- if (current.readyState < current.HAVE_FUTURE_DATA) {
3636
+ if (isPremounting || isPostmounting) {
3637
+ if ((isPremounting || isPostmounting) && current.readyState < current.HAVE_FUTURE_DATA) {
3605
3638
  if (!navigator.userAgent.includes("Firefox/")) {
3606
3639
  playbackLogging({
3607
3640
  logLevel,
@@ -3705,7 +3738,16 @@ Check that all your Remotion packages are on the same version. If your dependenc
3705
3738
  return () => {
3706
3739
  cleanup("element was unmounted or prop changed");
3707
3740
  };
3708
- }, [buffer, src, element, isPremounting, logLevel, shouldBuffer, mountTime]);
3741
+ }, [
3742
+ buffer,
3743
+ src,
3744
+ element,
3745
+ isPremounting,
3746
+ isPostmounting,
3747
+ logLevel,
3748
+ shouldBuffer,
3749
+ mountTime
3750
+ ]);
3709
3751
  return isBuffering;
3710
3752
  }, useRequestVideoCallbackTime = ({
3711
3753
  mediaRef,
@@ -3827,6 +3869,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
3827
3869
  acceptableTimeshift,
3828
3870
  pauseWhenBuffering,
3829
3871
  isPremounting,
3872
+ isPostmounting,
3830
3873
  onAutoPlayError
3831
3874
  }) => {
3832
3875
  const { playbackRate: globalPlaybackRate } = useContext20(TimelineContext);
@@ -3871,6 +3914,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
3871
3914
  element: mediaRef,
3872
3915
  shouldBuffer: pauseWhenBuffering,
3873
3916
  isPremounting,
3917
+ isPostmounting,
3874
3918
  logLevel,
3875
3919
  mountTime,
3876
3920
  src: src ?? null
@@ -3902,7 +3946,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
3902
3946
  playbackLogging({
3903
3947
  logLevel,
3904
3948
  tag: "pause",
3905
- message: `Pausing ${mediaRef.current?.src} because ${isPremounting ? "media is premounting" : "Player is not playing"}`,
3949
+ message: `Pausing ${mediaRef.current?.src} because ${isPremounting ? "media is premounting" : isPostmounting ? "media is postmounting" : "Player is not playing"}`,
3906
3950
  mountTime
3907
3951
  });
3908
3952
  mediaRef.current?.pause();
@@ -3929,7 +3973,8 @@ Check that all your Remotion packages are on the same version. If your dependenc
3929
3973
  mediaRef,
3930
3974
  mediaType,
3931
3975
  mountTime,
3932
- playing
3976
+ playing,
3977
+ isPostmounting
3933
3978
  ]);
3934
3979
  useLayoutEffect5(() => {
3935
3980
  const playbackRateToSet = Math.max(0, playbackRate);
@@ -3959,7 +4004,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
3959
4004
  mediaRef: mediaRef.current,
3960
4005
  time: shouldBeTime,
3961
4006
  logLevel,
3962
- why: `because time shift is too big. shouldBeTime = ${shouldBeTime}, isTime = ${mediaTagTime}, requestVideoCallbackTime = ${rvcTime}, timeShift = ${timeShift}${isVariableFpsVideo ? ", isVariableFpsVideo = true" : ""}, isPremounting = ${isPremounting}, pauseWhenBuffering = ${pauseWhenBuffering}`,
4007
+ why: `because time shift is too big. shouldBeTime = ${shouldBeTime}, isTime = ${mediaTagTime}, requestVideoCallbackTime = ${rvcTime}, timeShift = ${timeShift}${isVariableFpsVideo ? ", isVariableFpsVideo = true" : ""}, isPremounting = ${isPremounting}, isPostmounting = ${isPostmounting}, pauseWhenBuffering = ${pauseWhenBuffering}`,
3963
4008
  mountTime
3964
4009
  });
3965
4010
  lastSeekDueToShift.current = lastSeek.current;
@@ -4045,6 +4090,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
4045
4090
  src,
4046
4091
  onAutoPlayError,
4047
4092
  isPremounting,
4093
+ isPostmounting,
4048
4094
  pauseWhenBuffering,
4049
4095
  mountTime,
4050
4096
  mediaTagCurrentTime
@@ -4091,6 +4137,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
4091
4137
  useWebAudioApi,
4092
4138
  onError,
4093
4139
  onNativeError,
4140
+ audioStreamIndex,
4094
4141
  ...nativeProps
4095
4142
  } = props;
4096
4143
  const _propsValid = true;
@@ -4164,8 +4211,10 @@ Check that all your Remotion packages are on the same version. If your dependenc
4164
4211
  stack: _remotionInternalStack,
4165
4212
  showInTimeline,
4166
4213
  premountDisplay: null,
4214
+ postmountDisplay: null,
4167
4215
  onAutoPlayError: null,
4168
- isPremounting: Boolean(sequenceContext?.premounting)
4216
+ isPremounting: Boolean(sequenceContext?.premounting),
4217
+ isPostmounting: Boolean(sequenceContext?.postmounting)
4169
4218
  });
4170
4219
  useMediaPlayback({
4171
4220
  mediaRef: audioRef,
@@ -4175,6 +4224,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
4175
4224
  onlyWarnForMediaSeekingError: false,
4176
4225
  acceptableTimeshift: acceptableTimeShiftInSeconds ?? null,
4177
4226
  isPremounting: Boolean(sequenceContext?.premounting),
4227
+ isPostmounting: Boolean(sequenceContext?.postmounting),
4178
4228
  pauseWhenBuffering,
4179
4229
  onAutoPlayError: null
4180
4230
  });
@@ -4233,6 +4283,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
4233
4283
  delayRenderTimeoutInMilliseconds,
4234
4284
  loopVolumeCurveBehavior,
4235
4285
  pauseWhenBuffering,
4286
+ audioStreamIndex,
4236
4287
  ...nativeProps
4237
4288
  } = props;
4238
4289
  const absoluteFrame = useTimelinePosition();
@@ -4276,7 +4327,8 @@ Check that all your Remotion packages are on the same version. If your dependenc
4276
4327
  mediaFrame: frame,
4277
4328
  playbackRate: props.playbackRate ?? 1,
4278
4329
  toneFrequency: toneFrequency ?? null,
4279
- audioStartFrame: Math.max(0, -(sequenceContext?.relativeFrom ?? 0))
4330
+ audioStartFrame: Math.max(0, -(sequenceContext?.relativeFrom ?? 0)),
4331
+ audioStreamIndex: audioStreamIndex ?? 0
4280
4332
  });
4281
4333
  return () => unregisterRenderAsset(id);
4282
4334
  }, [
@@ -4292,7 +4344,8 @@ Check that all your Remotion packages are on the same version. If your dependenc
4292
4344
  playbackRate,
4293
4345
  props.playbackRate,
4294
4346
  toneFrequency,
4295
- sequenceContext?.relativeFrom
4347
+ sequenceContext?.relativeFrom,
4348
+ audioStreamIndex
4296
4349
  ]);
4297
4350
  const { src } = props;
4298
4351
  const needsToRenderAudioTag = ref || _remotionInternalNeedsDurationCalculation;
@@ -4762,6 +4815,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
4762
4815
  }, [maxRetries, onError, retryIn]);
4763
4816
  if (typeof window !== "undefined") {
4764
4817
  const isPremounting = Boolean(sequenceContext?.premounting);
4818
+ const isPostmounting = Boolean(sequenceContext?.postmounting);
4765
4819
  useLayoutEffect7(() => {
4766
4820
  if (window.process?.env?.NODE_ENV === "test") {
4767
4821
  if (imageRef.current) {
@@ -4777,7 +4831,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
4777
4831
  retries: delayRenderRetries ?? undefined,
4778
4832
  timeoutInMilliseconds: delayRenderTimeoutInMilliseconds ?? undefined
4779
4833
  });
4780
- const unblock = pauseWhenLoading && !isPremounting ? delayPlayback().unblock : () => {
4834
+ const unblock = pauseWhenLoading && !isPremounting && !isPostmounting ? delayPlayback().unblock : () => {
4781
4835
  return;
4782
4836
  };
4783
4837
  let unmounted = false;
@@ -4826,6 +4880,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
4826
4880
  delayRenderTimeoutInMilliseconds,
4827
4881
  pauseWhenLoading,
4828
4882
  isPremounting,
4883
+ isPostmounting,
4829
4884
  onImageFrame
4830
4885
  ]);
4831
4886
  }
@@ -5227,6 +5282,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
5227
5282
  delayRenderTimeoutInMilliseconds,
5228
5283
  allowAmplificationDuringRender,
5229
5284
  useWebAudioApi,
5285
+ audioStreamIndex,
5230
5286
  ...nativeProps
5231
5287
  } = props2;
5232
5288
  const _propsValid = true;
@@ -5263,8 +5319,10 @@ Check that all your Remotion packages are on the same version. If your dependenc
5263
5319
  stack: _remotionInternalStack,
5264
5320
  showInTimeline,
5265
5321
  premountDisplay: null,
5322
+ postmountDisplay: null,
5266
5323
  onAutoPlayError: onAutoPlayError ?? null,
5267
- isPremounting: Boolean(parentSequence?.premounting)
5324
+ isPremounting: Boolean(parentSequence?.premounting),
5325
+ isPostmounting: Boolean(parentSequence?.postmounting)
5268
5326
  });
5269
5327
  useMediaPlayback({
5270
5328
  mediaRef: videoRef,
@@ -5274,6 +5332,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
5274
5332
  onlyWarnForMediaSeekingError,
5275
5333
  acceptableTimeshift: acceptableTimeShiftInSeconds ?? null,
5276
5334
  isPremounting: Boolean(parentSequence?.premounting),
5335
+ isPostmounting: Boolean(parentSequence?.postmounting),
5277
5336
  pauseWhenBuffering,
5278
5337
  onAutoPlayError: onAutoPlayError ?? null
5279
5338
  });
@@ -5748,6 +5807,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
5748
5807
  delayRenderRetries,
5749
5808
  delayRenderTimeoutInMilliseconds,
5750
5809
  loopVolumeCurveBehavior,
5810
+ audioStreamIndex,
5751
5811
  ...props2
5752
5812
  }, ref) => {
5753
5813
  const absoluteFrame = useTimelinePosition();
@@ -5797,7 +5857,8 @@ Check that all your Remotion packages are on the same version. If your dependenc
5797
5857
  mediaFrame: frame,
5798
5858
  playbackRate: playbackRate ?? 1,
5799
5859
  toneFrequency: toneFrequency ?? null,
5800
- audioStartFrame: Math.max(0, -(sequenceContext?.relativeFrom ?? 0))
5860
+ audioStartFrame: Math.max(0, -(sequenceContext?.relativeFrom ?? 0)),
5861
+ audioStreamIndex: audioStreamIndex ?? 0
5801
5862
  });
5802
5863
  return () => unregisterRenderAsset(id);
5803
5864
  }, [
@@ -5811,7 +5872,8 @@ Check that all your Remotion packages are on the same version. If your dependenc
5811
5872
  absoluteFrame,
5812
5873
  playbackRate,
5813
5874
  toneFrequency,
5814
- sequenceContext?.relativeFrom
5875
+ sequenceContext?.relativeFrom,
5876
+ audioStreamIndex
5815
5877
  ]);
5816
5878
  useImperativeHandle10(ref, () => {
5817
5879
  return videoRef.current;
@@ -6160,7 +6222,7 @@ var init_esm = __esm(() => {
6160
6222
  });
6161
6223
  CanUseRemotionHooks = createContext9(false);
6162
6224
  RegularSequence = forwardRef2(RegularSequenceRefForwardingFunction);
6163
- PremountedSequence = forwardRef2(PremountedSequenceRefForwardingFunction);
6225
+ PremountedPostmountedSequence = forwardRef2(PremountedPostmountedSequenceRefForwardingFunction);
6164
6226
  Sequence = forwardRef2(SequenceRefForwardingFunction);
6165
6227
  logLevels = ["trace", "verbose", "info", "warn", "error"];
6166
6228
  Log = {
@@ -18895,71 +18957,215 @@ var ClearButton = (props) => {
18895
18957
  });
18896
18958
  };
18897
18959
 
18960
+ // src/components/homepage/MuxVideo.tsx
18961
+ import Hls2 from "hls.js";
18962
+ import { forwardRef as forwardRef17, useEffect as useEffect40, useImperativeHandle as useImperativeHandle14, useRef as useRef30 } from "react";
18963
+
18964
+ // src/components/homepage/VideoPlayerWithControls.tsx
18965
+ import Hls from "hls.js";
18966
+ import"plyr/dist/plyr.css";
18967
+ import { forwardRef as forwardRef16, useCallback as useCallback35, useEffect as useEffect39, useRef as useRef29, useState as useState33 } from "react";
18968
+ import { jsx as jsx87 } from "react/jsx-runtime";
18969
+ var useCombinedRefs = function(...refs) {
18970
+ const targetRef = useRef29(null);
18971
+ useEffect39(() => {
18972
+ refs.forEach((ref) => {
18973
+ if (!ref)
18974
+ return;
18975
+ if (typeof ref === "function") {
18976
+ ref(targetRef.current);
18977
+ } else {
18978
+ ref.current = targetRef.current;
18979
+ }
18980
+ });
18981
+ }, [refs]);
18982
+ return targetRef;
18983
+ };
18984
+ var VideoPlayerWithControls = forwardRef16(({ playbackId, poster, currentTime, onLoaded, onError, onSize, autoPlay }, ref) => {
18985
+ const videoRef = useRef29(null);
18986
+ const metaRef = useCombinedRefs(ref, videoRef);
18987
+ const playerRef = useRef29(null);
18988
+ const [playerInitTime] = useState33(Date.now());
18989
+ const videoError = useCallback35((event) => onError(event), [onError]);
18990
+ const onImageLoad = useCallback35((event) => {
18991
+ const [w, h] = [event.target.width, event.target.height];
18992
+ if (w && h) {
18993
+ onSize({ width: w, height: h });
18994
+ onLoaded();
18995
+ } else {
18996
+ onLoaded();
18997
+ console.error("Error getting img dimensions", event);
18998
+ }
18999
+ }, [onLoaded, onSize]);
19000
+ useEffect39(() => {
19001
+ const img = new Image;
19002
+ img.onload = (evt) => onImageLoad(evt);
19003
+ img.src = poster;
19004
+ }, [onImageLoad, poster]);
19005
+ useEffect39(() => {
19006
+ const video = videoRef.current;
19007
+ const src = `https://stream.mux.com/${playbackId}.m3u8`;
19008
+ let hls;
19009
+ hls = null;
19010
+ if (video) {
19011
+ video.addEventListener("error", videoError);
19012
+ const Plyr = __require("plyr");
19013
+ playerRef.current = new Plyr(video, {
19014
+ previewThumbnails: {
19015
+ enabled: true,
19016
+ src: `https://image.mux.com/${playbackId}/storyboard.vtt`
19017
+ },
19018
+ storage: { enabled: false },
19019
+ fullscreen: {
19020
+ iosNative: true
19021
+ },
19022
+ captions: { active: true, language: "auto", update: true }
19023
+ });
19024
+ if (video.canPlayType("application/vnd.apple.mpegurl")) {
19025
+ video.src = src;
19026
+ } else if (Hls.isSupported()) {
19027
+ hls = new Hls;
19028
+ hls.loadSource(src);
19029
+ hls.attachMedia(video);
19030
+ hls.on(Hls.Events.ERROR, (_event, data2) => {
19031
+ if (data2.fatal) {
19032
+ videoError(new ErrorEvent("HLS.js fatal error"));
19033
+ }
19034
+ });
19035
+ } else {
19036
+ console.error("This is an old browser that does not support MSE https://developer.mozilla.org/en-US/docs/Web/API/Media_Source_Extensions_API");
19037
+ }
19038
+ }
19039
+ return () => {
19040
+ if (video) {
19041
+ video.removeEventListener("error", videoError);
19042
+ }
19043
+ if (hls) {
19044
+ hls.destroy();
19045
+ }
19046
+ };
19047
+ }, [playbackId, playerInitTime, videoError, videoRef]);
19048
+ useEffect39(() => {
19049
+ const video = videoRef.current;
19050
+ if (currentTime && video) {
19051
+ video.currentTime = currentTime;
19052
+ }
19053
+ }, [currentTime]);
19054
+ return /* @__PURE__ */ jsx87("div", {
19055
+ className: "video-container",
19056
+ children: /* @__PURE__ */ jsx87("video", {
19057
+ ref: metaRef,
19058
+ autoPlay,
19059
+ poster,
19060
+ controls: true,
19061
+ playsInline: true
19062
+ })
19063
+ });
19064
+ });
19065
+
19066
+ // src/components/homepage/MuxVideo.tsx
19067
+ import { jsx as jsx88 } from "react/jsx-runtime";
19068
+ var getVideoToPlayUrl = (muxId) => {
19069
+ return `https://stream.mux.com/${muxId}.m3u8`;
19070
+ };
19071
+ var MuxVideoForward = ({ muxId, ...props }, ref) => {
19072
+ const videoRef = useRef30(null);
19073
+ const vidUrl = getVideoToPlayUrl(muxId);
19074
+ useImperativeHandle14(ref, () => videoRef.current, []);
19075
+ useEffect40(() => {
19076
+ let hls;
19077
+ if (videoRef.current) {
19078
+ const { current } = videoRef;
19079
+ if (current.canPlayType("application/vnd.apple.mpegurl")) {
19080
+ current.src = vidUrl;
19081
+ } else if (Hls2.isSupported()) {
19082
+ hls = new Hls2;
19083
+ hls.loadSource(vidUrl);
19084
+ hls.attachMedia(current);
19085
+ } else {
19086
+ console.error("This is a legacy browser that doesn't support MSE");
19087
+ }
19088
+ }
19089
+ return () => {
19090
+ if (hls) {
19091
+ hls.destroy();
19092
+ }
19093
+ };
19094
+ }, [vidUrl, videoRef]);
19095
+ return /* @__PURE__ */ jsx88("video", {
19096
+ ref: videoRef,
19097
+ ...props
19098
+ });
19099
+ };
19100
+ var MuxVideo = forwardRef17(MuxVideoForward);
19101
+
18898
19102
  // src/components/homepage/EditorStarterSection.tsx
18899
- import { jsx as jsx87, jsxs as jsxs35 } from "react/jsx-runtime";
19103
+ import { jsx as jsx89, jsxs as jsxs35 } from "react/jsx-runtime";
18900
19104
  var EditorStarterSection = () => {
18901
19105
  return /* @__PURE__ */ jsxs35("div", {
18902
19106
  children: [
18903
- /* @__PURE__ */ jsx87(SectionTitle, {
19107
+ /* @__PURE__ */ jsx89(SectionTitle, {
18904
19108
  children: "Build your own video editor"
18905
19109
  }),
18906
- /* @__PURE__ */ jsx87("br", {}),
18907
- /* @__PURE__ */ jsx87("div", {
19110
+ /* @__PURE__ */ jsx89("br", {}),
19111
+ /* @__PURE__ */ jsx89("div", {
18908
19112
  className: "card flex p-0 overflow-hidden",
18909
19113
  children: /* @__PURE__ */ jsxs35("div", {
18910
19114
  className: "flex-1 flex flex-col lg:flex-row justify-center",
18911
19115
  children: [
18912
- /* @__PURE__ */ jsx87("div", {
19116
+ /* @__PURE__ */ jsx89("div", {
18913
19117
  className: "w-full max-w-[500px] aspect-square relative overflow-hidden bg-[#eee]",
18914
- children: /* @__PURE__ */ jsx87("img", {
18915
- src: "/img/editor-starter-demo.jpg",
18916
- alt: "Remotion Editor Starter",
18917
- className: "absolute left-0 top-0 w-full h-full object-cover object-top rounded-sm rounded-tr-none rounded-br-none"
19118
+ children: /* @__PURE__ */ jsx89(MuxVideo, {
19119
+ muxId: "YIvIidbcAc7009B00Wr7gIbGyq67YGNlytGvMXwdsLRtc",
19120
+ className: "absolute left-0 top-0 w-full h-full object-cover object-top rounded-sm rounded-tr-none rounded-br-none",
19121
+ loop: true,
19122
+ autoPlay: true,
19123
+ playsInline: true,
19124
+ muted: true
18918
19125
  })
18919
19126
  }),
18920
19127
  /* @__PURE__ */ jsxs35("div", {
18921
19128
  className: "p-6 flex-1 flex flex-col h-full",
18922
19129
  children: [
18923
- /* @__PURE__ */ jsx87("div", {
19130
+ /* @__PURE__ */ jsx89("div", {
18924
19131
  className: "text-4xl font-bold fontbrand mt-0",
18925
19132
  children: "Editor Starter"
18926
19133
  }),
18927
- /* @__PURE__ */ jsx87("div", {
19134
+ /* @__PURE__ */ jsx89("div", {
18928
19135
  className: "text-muted mt-4 text-base fontbrand",
18929
- children: "Add to existing project or start from scratch. A comprehensive template that includes everything you need to create custom video editing applications with React and TypeScript."
19136
+ children: "A comprehensive template that includes everything you need to create custom video editing applications with React and TypeScript."
18930
19137
  }),
18931
- /* @__PURE__ */ jsx87("div", {
19138
+ /* @__PURE__ */ jsx89("div", {
18932
19139
  className: "h-5"
18933
19140
  }),
18934
19141
  /* @__PURE__ */ jsxs35("div", {
18935
19142
  className: "flex gap-2 items-center",
18936
19143
  children: [
18937
- /* @__PURE__ */ jsx87("a", {
19144
+ /* @__PURE__ */ jsx89("a", {
18938
19145
  href: "https://www.remotion.pro/editor-starter?ref=remotion.dev",
18939
19146
  target: "_blank",
18940
19147
  className: "no-underline",
18941
- children: /* @__PURE__ */ jsx87(BlueButton, {
19148
+ children: /* @__PURE__ */ jsx89(BlueButton, {
18942
19149
  size: "sm",
18943
19150
  loading: false,
18944
- children: "Start building"
19151
+ children: "Purchase"
18945
19152
  })
18946
19153
  }),
18947
- /* @__PURE__ */ jsx87("a", {
19154
+ /* @__PURE__ */ jsx89("a", {
18948
19155
  href: "https://editor-starter.remotion.dev?ref=remotion.dev",
18949
19156
  target: "_blank",
18950
19157
  className: "no-underline",
18951
- children: /* @__PURE__ */ jsx87(ClearButton, {
19158
+ children: /* @__PURE__ */ jsx89(ClearButton, {
18952
19159
  size: "sm",
18953
19160
  loading: false,
18954
19161
  children: "Demo"
18955
19162
  })
18956
19163
  }),
18957
19164
  " ",
18958
- /* @__PURE__ */ jsx87("a", {
19165
+ /* @__PURE__ */ jsx89("a", {
18959
19166
  href: "https://remotion.dev/editor-starter",
18960
- target: "_blank",
18961
19167
  className: "no-underline",
18962
- children: /* @__PURE__ */ jsx87(ClearButton, {
19168
+ children: /* @__PURE__ */ jsx89(ClearButton, {
18963
19169
  size: "sm",
18964
19170
  loading: false,
18965
19171
  children: "Docs"
@@ -18967,7 +19173,7 @@ var EditorStarterSection = () => {
18967
19173
  })
18968
19174
  ]
18969
19175
  }),
18970
- /* @__PURE__ */ jsx87("br", {})
19176
+ /* @__PURE__ */ jsx89("br", {})
18971
19177
  ]
18972
19178
  })
18973
19179
  ]
@@ -18979,11 +19185,11 @@ var EditorStarterSection = () => {
18979
19185
  var EditorStarterSection_default = EditorStarterSection;
18980
19186
 
18981
19187
  // src/components/homepage/EvaluateRemotion.tsx
18982
- import { useEffect as useEffect39, useState as useState33 } from "react";
18983
- import { jsx as jsx88, jsxs as jsxs36 } from "react/jsx-runtime";
19188
+ import { useEffect as useEffect41, useState as useState35 } from "react";
19189
+ import { jsx as jsx90, jsxs as jsxs36 } from "react/jsx-runtime";
18984
19190
  var EvaluateRemotionSection = () => {
18985
- const [dailyAvatars, setDailyAvatars] = useState33([]);
18986
- useEffect39(() => {
19191
+ const [dailyAvatars, setDailyAvatars] = useState35([]);
19192
+ useEffect41(() => {
18987
19193
  const avatars = [
18988
19194
  "/img/freelancers/alex.jpeg",
18989
19195
  "/img/freelancers/antoine.jpeg",
@@ -19016,22 +19222,22 @@ var EvaluateRemotionSection = () => {
19016
19222
  /* @__PURE__ */ jsxs36("div", {
19017
19223
  className: "card flex-1 flex flex-col",
19018
19224
  children: [
19019
- /* @__PURE__ */ jsx88("div", {
19225
+ /* @__PURE__ */ jsx90("div", {
19020
19226
  className: "fontbrand text-2xl font-bold",
19021
19227
  children: "Evaluate Remotion for your company"
19022
19228
  }),
19023
- /* @__PURE__ */ jsx88("p", {
19229
+ /* @__PURE__ */ jsx90("p", {
19024
19230
  className: "text-muted fontbrand leading-snug",
19025
19231
  children: "Book a 20 minute call with us to get all your questions answered."
19026
19232
  }),
19027
- /* @__PURE__ */ jsx88("div", {
19233
+ /* @__PURE__ */ jsx90("div", {
19028
19234
  className: "flex-1"
19029
19235
  }),
19030
- /* @__PURE__ */ jsx88("a", {
19236
+ /* @__PURE__ */ jsx90("a", {
19031
19237
  target: "_blank",
19032
19238
  href: "https://cal.com/remotion/evaluate",
19033
19239
  style: { textDecoration: "none" },
19034
- children: /* @__PURE__ */ jsx88(BlueButton, {
19240
+ children: /* @__PURE__ */ jsx90(BlueButton, {
19035
19241
  size: "sm",
19036
19242
  loading: false,
19037
19243
  children: "Schedule a call"
@@ -19042,32 +19248,32 @@ var EvaluateRemotionSection = () => {
19042
19248
  /* @__PURE__ */ jsxs36("div", {
19043
19249
  className: "card flex-1 flex flex-col",
19044
19250
  children: [
19045
- /* @__PURE__ */ jsx88("div", {
19251
+ /* @__PURE__ */ jsx90("div", {
19046
19252
  className: "fontbrand text-2xl font-bold",
19047
19253
  children: "Get help for your projects"
19048
19254
  }),
19049
- /* @__PURE__ */ jsx88("p", {
19255
+ /* @__PURE__ */ jsx90("p", {
19050
19256
  className: "text-muted fontbrand leading-snug",
19051
19257
  children: "Contact our experts for help and work."
19052
19258
  }),
19053
- /* @__PURE__ */ jsx88("div", {
19259
+ /* @__PURE__ */ jsx90("div", {
19054
19260
  className: "flex-1"
19055
19261
  }),
19056
19262
  /* @__PURE__ */ jsxs36("div", {
19057
19263
  className: "flex flex-row justify-between",
19058
19264
  children: [
19059
- /* @__PURE__ */ jsx88("a", {
19265
+ /* @__PURE__ */ jsx90("a", {
19060
19266
  href: "/experts",
19061
19267
  style: { textDecoration: "none" },
19062
- children: /* @__PURE__ */ jsx88(BlueButton, {
19268
+ children: /* @__PURE__ */ jsx90(BlueButton, {
19063
19269
  size: "sm",
19064
19270
  loading: false,
19065
19271
  children: "Remotion Experts"
19066
19272
  })
19067
19273
  }),
19068
- /* @__PURE__ */ jsx88("div", {
19274
+ /* @__PURE__ */ jsx90("div", {
19069
19275
  className: "flex justify-end items-end gap-3",
19070
- children: dailyAvatars.map((avatar) => /* @__PURE__ */ jsx88("div", {
19276
+ children: dailyAvatars.map((avatar) => /* @__PURE__ */ jsx90("div", {
19071
19277
  className: "w-12 h-12 rounded-full bg-muted bg-cover bg-center -ml-5 border-2 border-black",
19072
19278
  style: { backgroundImage: `url(${avatar})` }
19073
19279
  }, avatar))
@@ -19082,8 +19288,8 @@ var EvaluateRemotionSection = () => {
19082
19288
  var EvaluateRemotion_default = EvaluateRemotionSection;
19083
19289
 
19084
19290
  // src/components/homepage/IfYouKnowReact.tsx
19085
- import { useEffect as useEffect40, useState as useState35 } from "react";
19086
- import { jsx as jsx89, jsxs as jsxs37 } from "react/jsx-runtime";
19291
+ import { useEffect as useEffect43, useState as useState36 } from "react";
19292
+ import { jsx as jsx91, jsxs as jsxs37 } from "react/jsx-runtime";
19087
19293
  var isWebkit = () => {
19088
19294
  if (typeof window === "undefined") {
19089
19295
  return false;
@@ -19097,8 +19303,8 @@ var icon2 = {
19097
19303
  marginLeft: 10
19098
19304
  };
19099
19305
  var IfYouKnowReact = () => {
19100
- const [vid, setVid] = useState35("/img/compose.webm");
19101
- useEffect40(() => {
19306
+ const [vid, setVid] = useState36("/img/compose.webm");
19307
+ useEffect43(() => {
19102
19308
  if (isWebkit()) {
19103
19309
  setVid("/img/compose.mp4");
19104
19310
  }
@@ -19106,7 +19312,7 @@ var IfYouKnowReact = () => {
19106
19312
  return /* @__PURE__ */ jsxs37("div", {
19107
19313
  className: "flex flex-col lg:flex-row text-left justify-start lg:justify-end items-start lg:mb-0 gap-6 mt-8",
19108
19314
  children: [
19109
- /* @__PURE__ */ jsx89("video", {
19315
+ /* @__PURE__ */ jsx91("video", {
19110
19316
  src: vid,
19111
19317
  muted: true,
19112
19318
  autoPlay: true,
@@ -19119,18 +19325,18 @@ var IfYouKnowReact = () => {
19119
19325
  /* @__PURE__ */ jsxs37("h2", {
19120
19326
  className: "text-4xl fontbrand pt-20",
19121
19327
  children: [
19122
- /* @__PURE__ */ jsx89("span", {
19328
+ /* @__PURE__ */ jsx91("span", {
19123
19329
  className: "text-brand",
19124
19330
  children: "Compose"
19125
19331
  }),
19126
19332
  " with code"
19127
19333
  ]
19128
19334
  }),
19129
- /* @__PURE__ */ jsx89("p", {
19335
+ /* @__PURE__ */ jsx91("p", {
19130
19336
  className: "leading-relaxed font-brand",
19131
19337
  children: "Use React, a powerful frontend technology, to create sophisticated videos with code."
19132
19338
  }),
19133
- /* @__PURE__ */ jsx89("div", {
19339
+ /* @__PURE__ */ jsx91("div", {
19134
19340
  className: "h-4"
19135
19341
  }),
19136
19342
  /* @__PURE__ */ jsxs37("a", {
@@ -19139,11 +19345,11 @@ var IfYouKnowReact = () => {
19139
19345
  children: [
19140
19346
  "Learn Remotion",
19141
19347
  " ",
19142
- /* @__PURE__ */ jsx89("svg", {
19348
+ /* @__PURE__ */ jsx91("svg", {
19143
19349
  style: icon2,
19144
19350
  xmlns: "http://www.w3.org/2000/svg",
19145
19351
  viewBox: "0 0 448 512",
19146
- children: /* @__PURE__ */ jsx89("path", {
19352
+ children: /* @__PURE__ */ jsx91("path", {
19147
19353
  fill: "currentColor",
19148
19354
  d: "M438.6 278.6l-160 160C272.4 444.9 264.2 448 256 448s-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L338.8 288H32C14.33 288 .0016 273.7 .0016 256S14.33 224 32 224h306.8l-105.4-105.4c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l160 160C451.1 245.9 451.1 266.1 438.6 278.6z"
19149
19355
  })
@@ -19157,21 +19363,21 @@ var IfYouKnowReact = () => {
19157
19363
  };
19158
19364
 
19159
19365
  // src/components/homepage/MoreVideoPowerSection.tsx
19160
- import { jsx as jsx90, jsxs as jsxs38 } from "react/jsx-runtime";
19366
+ import { jsx as jsx95, jsxs as jsxs38 } from "react/jsx-runtime";
19161
19367
  var StepTitle = ({ children }) => {
19162
- return /* @__PURE__ */ jsx90("div", {
19368
+ return /* @__PURE__ */ jsx95("div", {
19163
19369
  className: "text-left text-xl font-semibold fontbrand",
19164
19370
  children
19165
19371
  });
19166
19372
  };
19167
19373
  var Subtitle = ({ children }) => {
19168
- return /* @__PURE__ */ jsx90("div", {
19374
+ return /* @__PURE__ */ jsx95("div", {
19169
19375
  className: "text-left text-base fontbrand text-[var(--subtitle)]",
19170
19376
  children
19171
19377
  });
19172
19378
  };
19173
19379
  var Pane = ({ children, className: className3 }) => {
19174
- return /* @__PURE__ */ jsx90("div", {
19380
+ return /* @__PURE__ */ jsx95("div", {
19175
19381
  className: `border-effect bg-pane flex-1 flex flex-col ${className3 || ""}`,
19176
19382
  children
19177
19383
  });
@@ -19181,9 +19387,9 @@ var FeatureCard = ({ title, subtitle, image, link }) => {
19181
19387
  href: link,
19182
19388
  className: "group lg:border-r-2 border-b lg:border-b-0 border-[var(--border)] cursor-pointer hover:bg-[var(--hover)] transition-colors no-underline text-inherit",
19183
19389
  children: [
19184
- /* @__PURE__ */ jsx90("div", {
19390
+ /* @__PURE__ */ jsx95("div", {
19185
19391
  className: "relative",
19186
- children: /* @__PURE__ */ jsx90("img", {
19392
+ children: /* @__PURE__ */ jsx95("img", {
19187
19393
  src: image,
19188
19394
  alt: title,
19189
19395
  className: "w-full h-auto"
@@ -19195,25 +19401,25 @@ var FeatureCard = ({ title, subtitle, image, link }) => {
19195
19401
  /* @__PURE__ */ jsxs38("div", {
19196
19402
  className: "flex items-center gap-2",
19197
19403
  children: [
19198
- /* @__PURE__ */ jsx90(StepTitle, {
19404
+ /* @__PURE__ */ jsx95(StepTitle, {
19199
19405
  children: title
19200
19406
  }),
19201
- /* @__PURE__ */ jsx90("svg", {
19407
+ /* @__PURE__ */ jsx95("svg", {
19202
19408
  width: "16",
19203
19409
  viewBox: "0 0 448 512",
19204
19410
  fill: "currentColor",
19205
19411
  className: "opacity-0 group-hover:opacity-100 transition-opacity",
19206
- children: /* @__PURE__ */ jsx90("path", {
19412
+ children: /* @__PURE__ */ jsx95("path", {
19207
19413
  d: "M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z"
19208
19414
  })
19209
19415
  })
19210
19416
  ]
19211
19417
  }),
19212
- /* @__PURE__ */ jsx90(Subtitle, {
19418
+ /* @__PURE__ */ jsx95(Subtitle, {
19213
19419
  children: subtitle
19214
19420
  }),
19215
- /* @__PURE__ */ jsx90("br", {}),
19216
- /* @__PURE__ */ jsx90("div", {
19421
+ /* @__PURE__ */ jsx95("br", {}),
19422
+ /* @__PURE__ */ jsx95("div", {
19217
19423
  className: "flex-1"
19218
19424
  })
19219
19425
  ]
@@ -19222,26 +19428,26 @@ var FeatureCard = ({ title, subtitle, image, link }) => {
19222
19428
  });
19223
19429
  };
19224
19430
  var MoreVideoPowerSection = () => {
19225
- return /* @__PURE__ */ jsx90("div", {
19431
+ return /* @__PURE__ */ jsx95("div", {
19226
19432
  className: "w-full",
19227
- children: /* @__PURE__ */ jsx90(Pane, {
19433
+ children: /* @__PURE__ */ jsx95(Pane, {
19228
19434
  className: "overflow-hidden",
19229
19435
  children: /* @__PURE__ */ jsxs38("div", {
19230
19436
  className: "grid grid-cols-1 lg:grid-cols-3 h-full",
19231
19437
  children: [
19232
- /* @__PURE__ */ jsx90(FeatureCard, {
19438
+ /* @__PURE__ */ jsx95(FeatureCard, {
19233
19439
  title: "Media Parser",
19234
19440
  subtitle: "A new multimedia library for the web",
19235
19441
  image: "/img/media-parser.png",
19236
19442
  link: "/media-parser"
19237
19443
  }),
19238
- /* @__PURE__ */ jsx90(FeatureCard, {
19444
+ /* @__PURE__ */ jsx95(FeatureCard, {
19239
19445
  title: "WebCodecs",
19240
19446
  subtitle: "Read, process, transform and create videos on the frontend",
19241
19447
  image: "/img/webcodecs.png",
19242
19448
  link: "/webcodecs"
19243
19449
  }),
19244
- /* @__PURE__ */ jsx90(FeatureCard, {
19450
+ /* @__PURE__ */ jsx95(FeatureCard, {
19245
19451
  title: "Recorder",
19246
19452
  subtitle: "Produce engaging screencasts end-to-end in JavaScript",
19247
19453
  image: "/img/recorder.png",
@@ -19254,23 +19460,23 @@ var MoreVideoPowerSection = () => {
19254
19460
  };
19255
19461
 
19256
19462
  // src/components/homepage/NewsletterButton.tsx
19257
- import { useCallback as useCallback35, useState as useState36 } from "react";
19463
+ import { useCallback as useCallback36, useState as useState37 } from "react";
19258
19464
 
19259
19465
  // src/components/homepage/Spacer.tsx
19260
- import { jsx as jsx91 } from "react/jsx-runtime";
19466
+ import { jsx as jsx97 } from "react/jsx-runtime";
19261
19467
  var Spacer = () => {
19262
- return /* @__PURE__ */ jsx91("div", {
19468
+ return /* @__PURE__ */ jsx97("div", {
19263
19469
  style: { width: 4, height: 4 }
19264
19470
  });
19265
19471
  };
19266
19472
 
19267
19473
  // src/components/homepage/NewsletterButton.tsx
19268
- import { jsx as jsx95, jsxs as jsxs39 } from "react/jsx-runtime";
19474
+ import { jsx as jsx98, jsxs as jsxs39 } from "react/jsx-runtime";
19269
19475
  var NewsletterButton = () => {
19270
- const [email, setEmail] = useState36("");
19271
- const [submitting, setSubmitting] = useState36(false);
19272
- const [subscribed, setSubscribed] = useState36(false);
19273
- const handleSubmit = useCallback35(async (e) => {
19476
+ const [email, setEmail] = useState37("");
19477
+ const [submitting, setSubmitting] = useState37(false);
19478
+ const [subscribed, setSubscribed] = useState37(false);
19479
+ const handleSubmit = useCallback36(async (e) => {
19274
19480
  try {
19275
19481
  setSubmitting(true);
19276
19482
  e.preventDefault();
@@ -19292,15 +19498,15 @@ var NewsletterButton = () => {
19292
19498
  alert("Something went wrong. Please try again later.");
19293
19499
  }
19294
19500
  }, [email]);
19295
- return /* @__PURE__ */ jsx95("div", {
19296
- children: /* @__PURE__ */ jsx95("div", {
19501
+ return /* @__PURE__ */ jsx98("div", {
19502
+ children: /* @__PURE__ */ jsx98("div", {
19297
19503
  className: "flex flex-col",
19298
- children: /* @__PURE__ */ jsx95("div", {
19504
+ children: /* @__PURE__ */ jsx98("div", {
19299
19505
  className: "w-full",
19300
19506
  children: /* @__PURE__ */ jsxs39("div", {
19301
19507
  className: "flex flex-col flex-1",
19302
19508
  children: [
19303
- /* @__PURE__ */ jsx95(SectionTitle, {
19509
+ /* @__PURE__ */ jsx98(SectionTitle, {
19304
19510
  children: "Newsletter"
19305
19511
  }),
19306
19512
  /* @__PURE__ */ jsxs39("form", {
@@ -19316,7 +19522,7 @@ var NewsletterButton = () => {
19316
19522
  " "
19317
19523
  ]
19318
19524
  }),
19319
- /* @__PURE__ */ jsx95("input", {
19525
+ /* @__PURE__ */ jsx98("input", {
19320
19526
  className: "w-full dark:bg-[#121212] rounded-lg border-effect border-black outline-none px-3 py-3 fontbrand text-lg box-border focus:border-brand",
19321
19527
  disabled: submitting,
19322
19528
  value: email,
@@ -19325,10 +19531,10 @@ var NewsletterButton = () => {
19325
19531
  required: true,
19326
19532
  placeholder: "animator@gmail.com"
19327
19533
  }),
19328
- /* @__PURE__ */ jsx95(Spacer, {}),
19329
- /* @__PURE__ */ jsx95(Spacer, {}),
19330
- /* @__PURE__ */ jsx95("div", {
19331
- children: /* @__PURE__ */ jsx95(BlueButton, {
19534
+ /* @__PURE__ */ jsx98(Spacer, {}),
19535
+ /* @__PURE__ */ jsx98(Spacer, {}),
19536
+ /* @__PURE__ */ jsx98("div", {
19537
+ children: /* @__PURE__ */ jsx98(BlueButton, {
19332
19538
  type: "submit",
19333
19539
  className: "w-full",
19334
19540
  loading: submitting,
@@ -19347,16 +19553,16 @@ var NewsletterButton = () => {
19347
19553
  };
19348
19554
 
19349
19555
  // src/components/homepage/ParameterizeAndEdit.tsx
19350
- import { useEffect as useEffect41, useRef as useRef29, useState as useState37 } from "react";
19351
- import { jsx as jsx97, jsxs as jsxs40 } from "react/jsx-runtime";
19556
+ import { useEffect as useEffect45, useRef as useRef31, useState as useState38 } from "react";
19557
+ import { jsx as jsx99, jsxs as jsxs40 } from "react/jsx-runtime";
19352
19558
  var icon3 = {
19353
19559
  height: 16,
19354
19560
  marginLeft: 10
19355
19561
  };
19356
19562
  var ParameterizeAndEdit = () => {
19357
- const ref = useRef29(null);
19358
- const [vid, setVid] = useState37("/img/editing-vp9-chrome.webm");
19359
- useEffect41(() => {
19563
+ const ref = useRef31(null);
19564
+ const [vid, setVid] = useState38("/img/editing-vp9-chrome.webm");
19565
+ useEffect45(() => {
19360
19566
  if (isWebkit()) {
19361
19567
  setVid("/img/editing-safari.mp4");
19362
19568
  }
@@ -19365,8 +19571,8 @@ var ParameterizeAndEdit = () => {
19365
19571
  ref,
19366
19572
  className: "flex flex-col lg:flex-row justify-start lg:justify-end items-start gap-6 mt-20 lg:mt-0",
19367
19573
  children: [
19368
- /* @__PURE__ */ jsx97("div", {
19369
- children: /* @__PURE__ */ jsx97("video", {
19574
+ /* @__PURE__ */ jsx99("div", {
19575
+ children: /* @__PURE__ */ jsx99("video", {
19370
19576
  src: vid,
19371
19577
  autoPlay: true,
19372
19578
  muted: true,
@@ -19388,7 +19594,7 @@ var ParameterizeAndEdit = () => {
19388
19594
  className: "fontbrand text-4xl",
19389
19595
  children: [
19390
19596
  "Edit ",
19391
- /* @__PURE__ */ jsx97("span", {
19597
+ /* @__PURE__ */ jsx99("span", {
19392
19598
  className: "text-brand",
19393
19599
  children: "dynamically"
19394
19600
  })
@@ -19398,11 +19604,11 @@ var ParameterizeAndEdit = () => {
19398
19604
  className: "leading-relaxed",
19399
19605
  children: [
19400
19606
  "Parameterize your video by passing data.",
19401
- /* @__PURE__ */ jsx97("br", {}),
19607
+ /* @__PURE__ */ jsx99("br", {}),
19402
19608
  "Or embed it into your app and build an interface around it."
19403
19609
  ]
19404
19610
  }),
19405
- /* @__PURE__ */ jsx97("div", {
19611
+ /* @__PURE__ */ jsx99("div", {
19406
19612
  className: "h-4"
19407
19613
  }),
19408
19614
  /* @__PURE__ */ jsxs40("div", {
@@ -19414,47 +19620,47 @@ var ParameterizeAndEdit = () => {
19414
19620
  children: [
19415
19621
  "Remotion Studio",
19416
19622
  " ",
19417
- /* @__PURE__ */ jsx97("svg", {
19623
+ /* @__PURE__ */ jsx99("svg", {
19418
19624
  style: icon3,
19419
19625
  xmlns: "http://www.w3.org/2000/svg",
19420
19626
  viewBox: "0 0 448 512",
19421
- children: /* @__PURE__ */ jsx97("path", {
19627
+ children: /* @__PURE__ */ jsx99("path", {
19422
19628
  fill: "currentColor",
19423
19629
  d: "M438.6 278.6l-160 160C272.4 444.9 264.2 448 256 448s-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L338.8 288H32C14.33 288 .0016 273.7 .0016 256S14.33 224 32 224h306.8l-105.4-105.4c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l160 160C451.1 245.9 451.1 266.1 438.6 278.6z"
19424
19630
  })
19425
19631
  })
19426
19632
  ]
19427
19633
  }),
19428
- /* @__PURE__ */ jsx97("br", {}),
19634
+ /* @__PURE__ */ jsx99("br", {}),
19429
19635
  /* @__PURE__ */ jsxs40("a", {
19430
19636
  className: "no-underline text-brand font-brand font-bold inline-flex flex-row items-center",
19431
19637
  href: "/player",
19432
19638
  children: [
19433
19639
  "Remotion Player",
19434
19640
  " ",
19435
- /* @__PURE__ */ jsx97("svg", {
19641
+ /* @__PURE__ */ jsx99("svg", {
19436
19642
  style: icon3,
19437
19643
  xmlns: "http://www.w3.org/2000/svg",
19438
19644
  viewBox: "0 0 448 512",
19439
- children: /* @__PURE__ */ jsx97("path", {
19645
+ children: /* @__PURE__ */ jsx99("path", {
19440
19646
  fill: "currentColor",
19441
19647
  d: "M438.6 278.6l-160 160C272.4 444.9 264.2 448 256 448s-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L338.8 288H32C14.33 288 .0016 273.7 .0016 256S14.33 224 32 224h306.8l-105.4-105.4c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l160 160C451.1 245.9 451.1 266.1 438.6 278.6z"
19442
19648
  })
19443
19649
  })
19444
19650
  ]
19445
19651
  }),
19446
- /* @__PURE__ */ jsx97("br", {}),
19652
+ /* @__PURE__ */ jsx99("br", {}),
19447
19653
  /* @__PURE__ */ jsxs40("a", {
19448
19654
  className: "no-underline text-brand font-brand font-bold inline-flex flex-row items-center",
19449
19655
  href: "/docs/editor-starter",
19450
19656
  children: [
19451
19657
  "Remotion Editor Starter",
19452
19658
  " ",
19453
- /* @__PURE__ */ jsx97("svg", {
19659
+ /* @__PURE__ */ jsx99("svg", {
19454
19660
  style: icon3,
19455
19661
  xmlns: "http://www.w3.org/2000/svg",
19456
19662
  viewBox: "0 0 448 512",
19457
- children: /* @__PURE__ */ jsx97("path", {
19663
+ children: /* @__PURE__ */ jsx99("path", {
19458
19664
  fill: "currentColor",
19459
19665
  d: "M438.6 278.6l-160 160C272.4 444.9 264.2 448 256 448s-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L338.8 288H32C14.33 288 .0016 273.7 .0016 256S14.33 224 32 224h306.8l-105.4-105.4c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l160 160C451.1 245.9 451.1 266.1 438.6 278.6z"
19460
19666
  })
@@ -19470,22 +19676,22 @@ var ParameterizeAndEdit = () => {
19470
19676
  };
19471
19677
 
19472
19678
  // src/components/homepage/RealMp4Videos.tsx
19473
- import { useEffect as useEffect43, useRef as useRef30, useState as useState38 } from "react";
19474
- import { jsx as jsx98, jsxs as jsxs41 } from "react/jsx-runtime";
19679
+ import { useEffect as useEffect46, useRef as useRef33, useState as useState39 } from "react";
19680
+ import { jsx as jsx100, jsxs as jsxs41 } from "react/jsx-runtime";
19475
19681
  var icon4 = {
19476
19682
  height: 16,
19477
19683
  marginLeft: 10
19478
19684
  };
19479
19685
  var RealMP4Videos = () => {
19480
- const ref = useRef30(null);
19481
- const videoRef = useRef30(null);
19482
- const [vid, setVid] = useState38("/img/render-progress.webm");
19483
- useEffect43(() => {
19686
+ const ref = useRef33(null);
19687
+ const videoRef = useRef33(null);
19688
+ const [vid, setVid] = useState39("/img/render-progress.webm");
19689
+ useEffect46(() => {
19484
19690
  if (isWebkit()) {
19485
19691
  setVid("/img/render-progress.mp4");
19486
19692
  }
19487
19693
  }, []);
19488
- useEffect43(() => {
19694
+ useEffect46(() => {
19489
19695
  const { current } = ref;
19490
19696
  if (!current) {
19491
19697
  return;
@@ -19506,9 +19712,9 @@ var RealMP4Videos = () => {
19506
19712
  ref,
19507
19713
  className: "flex flex-col lg:flex-row mt-40 lg:mt-30 gap-6",
19508
19714
  children: [
19509
- /* @__PURE__ */ jsx98("div", {
19715
+ /* @__PURE__ */ jsx100("div", {
19510
19716
  className: "flex w-[500px] justify-start lg:justify-start items-end",
19511
- children: /* @__PURE__ */ jsx98("video", {
19717
+ children: /* @__PURE__ */ jsx100("video", {
19512
19718
  ref: videoRef,
19513
19719
  src: vid,
19514
19720
  muted: true,
@@ -19531,7 +19737,7 @@ var RealMP4Videos = () => {
19531
19737
  /* @__PURE__ */ jsxs41("h2", {
19532
19738
  className: "text-4xl fontbrand",
19533
19739
  children: [
19534
- /* @__PURE__ */ jsx98("span", {
19740
+ /* @__PURE__ */ jsx100("span", {
19535
19741
  className: "text-brand",
19536
19742
  children: "Scalable"
19537
19743
  }),
@@ -19542,12 +19748,12 @@ var RealMP4Videos = () => {
19542
19748
  className: "leading-relaxed",
19543
19749
  children: [
19544
19750
  "Render the video .mp4 or other formats. ",
19545
- /* @__PURE__ */ jsx98("br", {}),
19751
+ /* @__PURE__ */ jsx100("br", {}),
19546
19752
  "Locally, on the server or serverless."
19547
19753
  ]
19548
19754
  }),
19549
19755
  " ",
19550
- /* @__PURE__ */ jsx98("div", {
19756
+ /* @__PURE__ */ jsx100("div", {
19551
19757
  className: "h-4"
19552
19758
  }),
19553
19759
  /* @__PURE__ */ jsxs41("div", {
@@ -19559,29 +19765,29 @@ var RealMP4Videos = () => {
19559
19765
  children: [
19560
19766
  "Render options",
19561
19767
  " ",
19562
- /* @__PURE__ */ jsx98("svg", {
19768
+ /* @__PURE__ */ jsx100("svg", {
19563
19769
  style: icon4,
19564
19770
  xmlns: "http://www.w3.org/2000/svg",
19565
19771
  viewBox: "0 0 448 512",
19566
- children: /* @__PURE__ */ jsx98("path", {
19772
+ children: /* @__PURE__ */ jsx100("path", {
19567
19773
  fill: "currentColor",
19568
19774
  d: "M438.6 278.6l-160 160C272.4 444.9 264.2 448 256 448s-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L338.8 288H32C14.33 288 .0016 273.7 .0016 256S14.33 224 32 224h306.8l-105.4-105.4c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l160 160C451.1 245.9 451.1 266.1 438.6 278.6z"
19569
19775
  })
19570
19776
  })
19571
19777
  ]
19572
19778
  }),
19573
- /* @__PURE__ */ jsx98("br", {}),
19779
+ /* @__PURE__ */ jsx100("br", {}),
19574
19780
  /* @__PURE__ */ jsxs41("a", {
19575
19781
  className: "no-underline text-brand font-brand font-bold inline-flex flex-row items-center",
19576
19782
  href: "/lambda",
19577
19783
  children: [
19578
19784
  "Remotion Lambda",
19579
19785
  " ",
19580
- /* @__PURE__ */ jsx98("svg", {
19786
+ /* @__PURE__ */ jsx100("svg", {
19581
19787
  style: icon4,
19582
19788
  xmlns: "http://www.w3.org/2000/svg",
19583
19789
  viewBox: "0 0 448 512",
19584
- children: /* @__PURE__ */ jsx98("path", {
19790
+ children: /* @__PURE__ */ jsx100("path", {
19585
19791
  fill: "currentColor",
19586
19792
  d: "M438.6 278.6l-160 160C272.4 444.9 264.2 448 256 448s-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L338.8 288H32C14.33 288 .0016 273.7 .0016 256S14.33 224 32 224h306.8l-105.4-105.4c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l160 160C451.1 245.9 451.1 266.1 438.6 278.6z"
19587
19793
  })
@@ -19597,18 +19803,18 @@ var RealMP4Videos = () => {
19597
19803
  };
19598
19804
 
19599
19805
  // src/components/homepage/TrustedByBanner.tsx
19600
- import { jsx as jsx99, jsxs as jsxs43, Fragment as Fragment8 } from "react/jsx-runtime";
19806
+ import { jsx as jsx101, jsxs as jsxs43, Fragment as Fragment8 } from "react/jsx-runtime";
19601
19807
  var TrustedByBanner = () => {
19602
19808
  const logos = [
19603
19809
  {
19604
19810
  id: "logo1",
19605
19811
  url: "https://www.github.com/",
19606
- light: /* @__PURE__ */ jsx99("svg", {
19812
+ light: /* @__PURE__ */ jsx101("svg", {
19607
19813
  height: "50",
19608
19814
  viewBox: "0 0 64 62",
19609
19815
  fill: "none",
19610
19816
  xmlns: "http://www.w3.org/2000/svg",
19611
- children: /* @__PURE__ */ jsx99("path", {
19817
+ children: /* @__PURE__ */ jsx101("path", {
19612
19818
  d: "M21.3033 49.7496C21.3033 50.0051 21.0079 50.2095 20.6355 50.2095C20.2118 50.2478 19.9164 50.0434 19.9164 49.7496C19.9164 49.4941 20.2118 49.2896 20.5842 49.2896C20.9694 49.2513 21.3033 49.4557 21.3033 49.7496ZM17.3097 49.1747C17.2198 49.4302 17.4766 49.724 17.8619 49.8007C18.1957 49.9284 18.581 49.8007 18.658 49.5452C18.7351 49.2896 18.4911 48.9958 18.1059 48.8808C17.772 48.7914 17.3996 48.9191 17.3097 49.1747ZM22.9854 48.9575C22.6131 49.0469 22.3562 49.2896 22.3948 49.5835C22.4333 49.839 22.7671 50.0051 23.1524 49.9157C23.5248 49.8262 23.7816 49.5835 23.7431 49.328C23.7045 49.0852 23.3578 48.9191 22.9854 48.9575ZM31.4348 0C13.6243 0 0 13.4531 0 31.1733C0 45.3419 8.96304 57.4663 21.7655 61.7334C23.4092 62.0273 23.987 61.018 23.987 60.1875C23.987 59.3954 23.9485 55.0261 23.9485 52.3431C23.9485 52.3431 14.9598 54.2595 13.0722 48.5359C13.0722 48.5359 11.6083 44.8181 9.50236 43.8599C9.50236 43.8599 6.56177 41.854 9.70782 41.8924C9.70782 41.8924 12.9052 42.1479 14.6645 45.1886C17.4766 50.1201 22.1893 48.702 24.0256 47.8587C24.3209 45.8146 25.1556 44.3965 26.0801 43.5532C18.902 42.7611 11.6597 41.7263 11.6597 29.4358C11.6597 25.9224 12.6356 24.1593 14.6901 21.9108C14.3563 21.0803 13.2648 17.6564 15.024 13.2359C17.7078 12.4055 23.8843 16.6854 23.8843 16.6854C26.4525 15.9699 29.2133 15.5994 31.9485 15.5994C34.6836 15.5994 37.4444 15.9699 40.0126 16.6854C40.0126 16.6854 46.1892 12.3927 48.873 13.2359C50.6322 17.6691 49.5407 21.0803 49.2068 21.9108C51.2614 24.1721 52.5198 25.9352 52.5198 29.4358C52.5198 41.7646 44.9564 42.7484 37.7783 43.5532C38.9597 44.5625 39.9613 46.4789 39.9613 49.4813C39.9613 53.7868 39.9228 59.1144 39.9228 60.162C39.9228 60.9924 40.5134 62.0017 42.1443 61.7079C54.9853 57.4663 63.6915 45.3419 63.6915 31.1733C63.6915 13.4531 49.2453 0 31.4348 0ZM12.4815 44.0643C12.3145 44.192 12.3531 44.4859 12.5714 44.7286C12.7768 44.933 13.0722 45.0225 13.2391 44.8564C13.406 44.7286 13.3675 44.4348 13.1492 44.192C12.9438 43.9876 12.6484 43.8982 12.4815 44.0643ZM11.0946 43.0294C11.0048 43.1955 11.1332 43.3999 11.39 43.5277C11.5954 43.6554 11.8523 43.6171 11.9422 43.4383C12.032 43.2722 11.9036 43.0678 11.6468 42.94C11.39 42.8633 11.1845 42.9017 11.0946 43.0294ZM15.2551 47.5777C15.0497 47.7438 15.1267 48.127 15.4221 48.3698C15.7174 48.6636 16.0898 48.702 16.2567 48.4975C16.4237 48.3314 16.3466 47.9482 16.0898 47.7054C15.8073 47.4116 15.4221 47.3732 15.2551 47.5777ZM13.7913 45.6996C13.5858 45.8274 13.5858 46.1595 13.7913 46.4534C13.9967 46.7472 14.3434 46.875 14.5104 46.7472C14.7158 46.5811 14.7158 46.249 14.5104 45.9551C14.3306 45.6613 13.9967 45.5335 13.7913 45.6996Z",
19613
19819
  fill: "var(--text-color)"
19614
19820
  })
@@ -19623,51 +19829,51 @@ var TrustedByBanner = () => {
19623
19829
  fill: "none",
19624
19830
  xmlns: "http://www.w3.org/2000/svg",
19625
19831
  children: [
19626
- /* @__PURE__ */ jsx99("path", {
19832
+ /* @__PURE__ */ jsx101("path", {
19627
19833
  d: "M6.51644 0.088258C4.05524 0.528184 1.89128 2.12143 0.856857 4.24972C-0.058664 6.12832 0.000785433 4.71342 0.000785433 23.7491C0.000785433 38.5758 0.0245652 40.9181 0.179134 41.5245C0.892527 44.3543 2.99704 46.4826 5.82683 47.2435C6.77802 47.4932 8.49017 47.5289 9.48892 47.303C11.0465 46.9582 11.855 46.4113 18.9889 40.9538C22.7224 38.1002 25.8137 35.7579 25.8613 35.7579C25.897 35.7579 29.0002 38.1002 32.7336 40.9538C36.5622 43.8906 39.9033 46.3518 40.367 46.6015C40.8307 46.8393 41.5441 47.1246 41.9721 47.2435C43.0065 47.517 44.8613 47.517 45.8958 47.2435C48.4996 46.5302 50.5328 44.5921 51.4364 41.9407C51.6505 41.3105 51.6623 40.5733 51.6623 23.7491V6.21155L51.377 5.34359C50.6398 3.08451 48.7255 1.19402 46.3595 0.385505C45.4796 0.088258 45.1943 0.0406985 43.9339 0.0406985C42.6855 0.0406985 42.3882 0.088258 41.5559 0.373615C41.0328 0.551964 40.3432 0.861101 40.0103 1.06323C39.6892 1.26536 36.3957 3.70278 32.7099 6.48502C29.0121 9.26725 25.9326 11.5382 25.8613 11.5382C25.79 11.5382 22.7105 9.26725 19.0127 6.48502C15.3269 3.70278 12.0334 1.26536 11.7123 1.06323C10.3569 0.230937 8.06213 -0.197099 6.51644 0.088258ZM8.82308 4.63019C9.13222 4.72531 11.5459 6.46124 15.6835 9.57639C19.1911 12.2159 22.0684 14.4037 22.0803 14.4512C22.1279 14.582 14.1141 20.7172 13.912 20.7053C13.8168 20.7053 11.6291 19.0764 9.06088 17.0908L4.38815 13.4882L4.42382 10.2066L4.45949 6.92494L4.78052 6.33045C5.06588 5.7954 5.39879 5.40304 5.96951 4.975C6.57589 4.5113 7.91945 4.35673 8.82308 4.63019ZM45.0872 4.67775C45.8125 4.91555 46.5497 5.5695 46.9421 6.31856L47.2631 6.92494L47.2988 10.2066L47.3344 13.4882L42.6617 17.0908C40.0935 19.0764 37.9057 20.7053 37.7987 20.7053C37.5966 20.7172 29.5947 14.582 29.6423 14.4512C29.7017 14.2491 42.519 4.71342 42.8519 4.6183C43.4345 4.43996 44.4927 4.47563 45.0872 4.67775ZM30.0346 20.5032C32.2818 22.251 34.0891 23.7135 34.0415 23.7491C33.8632 23.9156 26.0991 29.8843 25.9683 29.9675C25.8375 30.0389 17.7167 23.868 17.6929 23.6778C17.6929 23.5827 25.6948 17.3405 25.8375 17.3405C25.897 17.3286 27.7875 18.7554 30.0346 20.5032ZM7.37252 21.4425C9.72671 23.2616 10.2142 23.6897 10.0834 23.8086C9.80994 24.082 4.51894 28.1484 4.45949 28.1484C4.42382 28.1484 4.40004 26.139 4.40004 23.6897C4.40004 21.2404 4.42382 19.231 4.4476 19.231C4.48327 19.231 5.80305 20.2297 7.37252 21.4425ZM47.3225 23.6897C47.3225 26.139 47.2988 28.1484 47.2631 28.1484C47.2274 28.1484 45.9195 27.1496 44.3501 25.9369C42.2456 24.308 41.5203 23.6778 41.6154 23.5827C41.8651 23.333 47.1442 19.2548 47.2393 19.2429C47.2869 19.231 47.3225 21.2404 47.3225 23.6897ZM20.3682 31.4776C21.3312 32.2147 22.116 32.8568 22.116 32.8925C22.1041 33.047 9.59592 42.4995 9.07277 42.7373C7.51519 43.4745 5.58903 42.7492 4.79241 41.1321L4.45949 40.4544L4.42382 37.1847L4.38815 33.9031L9.156 30.2053L13.9357 26.5076L16.2662 28.3148C17.5621 29.3017 19.3932 30.7285 20.3682 31.4776ZM42.6617 30.3005L47.3344 33.915L47.2988 37.2442L47.2631 40.5733L46.9421 41.1678C46.5378 41.9288 46.1217 42.3211 45.3013 42.7016C44.4452 43.1059 43.4583 43.1178 42.6498 42.7373C42.0197 42.4519 29.5947 33.0232 29.6423 32.8687C29.7017 32.6665 37.7631 26.5195 37.8701 26.6027C37.9414 26.6503 40.0935 28.303 42.6617 30.3005Z",
19628
19834
  fill: "var(--text-color)"
19629
19835
  }),
19630
- /* @__PURE__ */ jsx99("path", {
19836
+ /* @__PURE__ */ jsx101("path", {
19631
19837
  d: "M120.255 8.16145C119.673 8.43492 118.983 9.20776 118.805 9.82604C118.484 10.8842 118.709 11.7998 119.47 12.5607C120.374 13.4643 121.563 13.6546 122.681 13.0958C124.785 12.0494 124.678 9.00564 122.502 8.09011C121.955 7.86421 120.838 7.89988 120.255 8.16145Z",
19632
19838
  fill: "var(--text-color)"
19633
19839
  }),
19634
- /* @__PURE__ */ jsx99("path", {
19840
+ /* @__PURE__ */ jsx101("path", {
19635
19841
  d: "M214.613 19.7065V31.4775H216.801H219.001L219.036 26.8048C219.084 21.6446 219.084 21.6327 219.88 20.7885C220.427 20.2178 221.081 19.9443 221.926 19.9443C222.817 19.9443 223.507 20.2535 223.947 20.8123C224.565 21.6327 224.601 21.9656 224.601 26.9237V31.4775H226.8H229V26.0914C229 21.6446 228.964 20.5864 228.822 20.0038C228.382 18.2916 227.478 17.1145 226.087 16.4249C223.935 15.3667 221.414 15.6759 219.809 17.1978C219.452 17.5307 219.131 17.8042 219.096 17.8042C219.048 17.8042 219.013 15.5807 219.013 12.8699V7.93555H216.813H214.613V19.7065Z",
19636
19842
  fill: "var(--text-color)"
19637
19843
  }),
19638
- /* @__PURE__ */ jsx99("path", {
19844
+ /* @__PURE__ */ jsx101("path", {
19639
19845
  d: "M188.574 13.6427V16.0207H187.088H185.602V17.9825V19.9443H187.076H188.563L188.598 23.8323C188.646 27.4587 188.67 27.7917 188.907 28.5051C189.383 29.9437 190.477 30.9781 191.963 31.43C192.819 31.6915 194.757 31.7629 195.827 31.5726L196.719 31.4181L196.755 29.6108L196.79 27.8154L195.482 27.7679C194.032 27.7322 193.723 27.6014 193.271 26.8286C193.045 26.4481 193.033 26.2103 193.033 23.2141V20.0038L194.971 19.9681L196.897 19.9443V17.9825V16.0207H194.935H192.974V13.6427V11.2647H190.774H188.574V13.6427Z",
19640
19846
  fill: "var(--text-color)"
19641
19847
  }),
19642
- /* @__PURE__ */ jsx99("path", {
19848
+ /* @__PURE__ */ jsx101("path", {
19643
19849
  d: "M109.768 15.8423C106.82 16.3774 104.763 18.6959 105.048 21.1809C105.321 23.654 106.736 24.8192 110.196 25.4137C110.957 25.5445 111.813 25.7466 112.087 25.8417C113.775 26.46 113.145 28.3862 111.266 28.3862C110.089 28.3862 109.233 27.8511 108.829 26.8999C108.71 26.6027 108.532 26.3649 108.437 26.3649C108.341 26.3649 107.485 26.5789 106.534 26.8286C104.81 27.2804 104.81 27.2923 104.822 27.6252C104.87 28.6834 106.273 30.3837 107.652 31.0614C109.804 32.1196 112.8 32.0839 114.869 30.9901C115.796 30.4907 116.783 29.4206 117.104 28.5764C117.616 27.1972 117.544 25.6039 116.902 24.4268C116.141 23.0238 114.477 22.1797 111.778 21.8467C110.47 21.6803 109.673 21.4187 109.447 21.0977C108.936 20.3605 109.554 19.3261 110.612 19.1715C111.742 19.0051 112.574 19.3974 113.074 20.3367C113.24 20.6459 113.43 20.8955 113.49 20.8955C113.561 20.8955 114.417 20.6815 115.392 20.4318C117.425 19.9206 117.342 20.0157 116.759 18.8029C116.046 17.3167 114.405 16.1753 112.515 15.8423C111.385 15.6402 110.898 15.6402 109.768 15.8423Z",
19644
19850
  fill: "var(--text-color)"
19645
19851
  }),
19646
- /* @__PURE__ */ jsx99("path", {
19852
+ /* @__PURE__ */ jsx101("path", {
19647
19853
  d: "M70.1511 15.9493C69.4496 16.1515 68.9146 16.4249 68.1655 16.9838L67.5353 17.4593V16.7341V16.0207H65.3357H63.1361V23.7491V31.4775H65.3952H67.6424L67.678 26.6265C67.7137 21.9299 67.7256 21.7754 67.9753 21.3117C68.4865 20.3605 69.2237 19.9443 70.3889 19.9443C71.5541 19.9443 72.2675 20.3961 72.7312 21.4306C72.9215 21.8586 72.9452 22.3937 72.9809 26.6859L73.0166 31.4775H75.2043H77.3921L77.4277 26.6265C77.4634 21.9299 77.4753 21.7754 77.725 21.3117C78.2362 20.3486 78.9734 19.9443 80.1624 19.9443C81.0304 19.9443 81.7557 20.2297 82.1361 20.7172C82.7068 21.4425 82.7544 21.9181 82.7544 26.8642V31.4775H85.0254H87.2963L87.2488 26.0914C87.2012 20.9431 87.1893 20.6815 86.9396 19.9324C86.4284 18.3749 85.4058 17.2216 83.8602 16.4487C82.9565 15.9969 81.9102 15.7829 80.5548 15.7829C78.7832 15.7829 77.5942 16.1515 76.5003 17.0432L76.0009 17.4356L75.561 17.0194C74.6574 16.1634 73.4684 15.7829 71.8276 15.7948C71.1974 15.7948 70.4484 15.8661 70.1511 15.9493Z",
19648
19854
  fill: "var(--text-color)"
19649
19855
  }),
19650
- /* @__PURE__ */ jsx99("path", {
19856
+ /* @__PURE__ */ jsx101("path", {
19651
19857
  d: "M149.064 15.9018C148.434 16.0682 147.459 16.5676 146.877 17.0551L146.365 17.4593V16.746V16.0207H144.166H141.966V23.7491V31.4775H144.154H146.353L146.401 26.8048C146.425 23.7253 146.484 22.0013 146.579 21.7278C146.781 21.1333 147.4 20.4199 147.959 20.1702C148.624 19.873 149.801 19.873 150.384 20.1702C150.943 20.4556 151.169 20.7053 151.466 21.3711C151.704 21.8824 151.716 22.1321 151.716 26.6859V31.4775H153.975H156.234V26.8286C156.234 21.7873 156.258 21.5614 156.864 20.8242C157.363 20.2178 158.017 19.9443 158.98 19.9443C160.134 19.9443 160.704 20.2654 161.168 21.1928L161.525 21.9062L161.561 26.6859L161.596 31.4775H163.796H165.984V26.1509C165.984 20.3961 165.96 20.194 165.318 18.9218C164.628 17.5664 162.833 16.2704 161.133 15.9137C160.324 15.7472 158.445 15.7472 157.637 15.9137C156.793 16.092 155.913 16.52 155.306 17.0432L154.807 17.4712L154.201 16.9243C153.321 16.1277 152.536 15.878 150.883 15.8304C150.134 15.8067 149.314 15.8423 149.064 15.9018Z",
19652
19858
  fill: "var(--text-color)"
19653
19859
  }),
19654
- /* @__PURE__ */ jsx99("path", {
19860
+ /* @__PURE__ */ jsx101("path", {
19655
19861
  d: "M173.95 15.8661C171.203 16.2823 168.849 18.4224 167.934 21.3236C167.232 23.5351 167.541 26.2103 168.742 28.2435C169.23 29.0758 170.49 30.3718 171.239 30.8117C172.583 31.5964 174.211 31.9056 175.924 31.7153C177.267 31.5727 178.385 31.2278 179.074 30.7641L179.598 30.4193L179.633 30.9425L179.669 31.4775H181.869H184.056V23.8086V16.1396H181.857H179.657V16.6746V17.2216L179.122 16.853C177.957 16.0563 175.614 15.6045 173.95 15.8661ZM177.113 20.0038C178.04 20.2891 178.813 20.955 179.3 21.8943C179.693 22.6552 179.716 22.786 179.716 23.7967C179.705 24.6408 179.657 24.9975 179.455 25.4375C179.098 26.2222 178.313 27.0188 177.529 27.3993C176.97 27.6847 176.72 27.7322 175.912 27.7203C175.127 27.7203 174.842 27.6609 174.283 27.3993C173.486 27.0069 172.844 26.3292 172.428 25.4256C171.976 24.4625 171.976 23.0238 172.428 22.0607C173.248 20.2891 175.21 19.4331 177.113 20.0038Z",
19656
19862
  fill: "var(--text-color)"
19657
19863
  }),
19658
- /* @__PURE__ */ jsx99("path", {
19864
+ /* @__PURE__ */ jsx101("path", {
19659
19865
  d: "M203.615 15.9612C200.607 16.6152 198.181 18.9575 197.432 21.9062C197.004 23.5708 197.29 25.9725 198.11 27.649C198.669 28.7904 200.215 30.3123 201.416 30.9068C202.902 31.6202 203.615 31.7748 205.577 31.7629C207.099 31.7629 207.408 31.7272 208.217 31.4538C210.369 30.7404 211.831 29.5276 212.723 27.7441C213.02 27.1258 213.186 26.674 213.115 26.6146C212.996 26.4957 209.501 25.4137 209.251 25.4137C209.156 25.4137 209.013 25.5564 208.942 25.7347C208.656 26.3768 208.062 26.9475 207.301 27.328C206.635 27.6609 206.409 27.7084 205.577 27.7084C204.745 27.7084 204.531 27.6609 203.853 27.328C201.094 25.9606 201.118 21.5733 203.889 20.2178C204.471 19.9325 204.709 19.8849 205.577 19.8849C206.362 19.8849 206.718 19.9443 207.135 20.1465C207.8 20.4437 208.538 21.1571 208.823 21.7516L209.025 22.1915L209.596 22.0132C209.905 21.9181 210.809 21.6446 211.617 21.4068L213.079 20.9669L212.996 20.6102C212.961 20.408 212.735 19.8849 212.509 19.445C211.665 17.8161 209.715 16.4368 207.634 15.9731C206.599 15.7472 204.614 15.7353 203.615 15.9612Z",
19660
19866
  fill: "var(--text-color)"
19661
19867
  }),
19662
- /* @__PURE__ */ jsx99("path", {
19868
+ /* @__PURE__ */ jsx101("path", {
19663
19869
  d: "M119.256 23.7491V31.4775H121.456H123.656V23.7491V16.0207H121.456H119.256V23.7491Z",
19664
19870
  fill: "var(--text-color)"
19665
19871
  }),
19666
- /* @__PURE__ */ jsx99("path", {
19872
+ /* @__PURE__ */ jsx101("path", {
19667
19873
  d: "M125.082 16.0801C125.082 16.1158 126.283 17.8517 127.746 19.9443L130.409 23.7491L127.686 27.5539C126.188 29.6584 124.964 31.3943 124.964 31.4181C124.964 31.4537 126.057 31.4775 127.401 31.4775H129.838L131.277 29.2779C132.074 28.0651 132.763 27.0783 132.811 27.0783C132.858 27.0783 133.548 28.0651 134.333 29.2779L135.771 31.4775H138.28H140.801L140.385 30.9068C138.661 28.5407 135.308 23.7372 135.308 23.6421C135.308 23.5826 136.473 21.9062 137.9 19.9206C139.326 17.9231 140.539 16.2347 140.587 16.1634C140.646 16.0563 140.087 16.0207 138.221 16.0207H135.771L134.333 18.2203C133.548 19.4212 132.858 20.3961 132.823 20.3724C132.787 20.3486 132.133 19.3498 131.384 18.1727L130.017 16.0207H127.556C126.188 16.0207 125.082 16.0445 125.082 16.0801Z",
19668
19874
  fill: "var(--text-color)"
19669
19875
  }),
19670
- /* @__PURE__ */ jsx99("path", {
19876
+ /* @__PURE__ */ jsx101("path", {
19671
19877
  d: "M88.9728 21.0382C89.0323 26.5076 89.0679 26.7929 89.8527 28.291C90.9228 30.3361 93.051 31.6083 95.7144 31.7986C98.5561 32.0007 101.41 30.5501 102.575 28.3267C103.336 26.8643 103.36 26.6978 103.407 21.1571L103.455 16.1396H101.196H98.9246V20.8123C98.9246 26.1033 98.9009 26.2698 98.0924 27.0069C97.0579 27.9343 95.2269 27.8987 94.2638 26.9356C93.491 26.1627 93.4553 25.8655 93.4553 20.6934V16.1396H91.1843H88.9134L88.9728 21.0382Z",
19672
19878
  fill: "var(--text-color)"
19673
19879
  })
@@ -19684,11 +19890,11 @@ var TrustedByBanner = () => {
19684
19890
  className: "-mt-2",
19685
19891
  xmlns: "http://www.w3.org/2000/svg",
19686
19892
  children: [
19687
- /* @__PURE__ */ jsx99("path", {
19893
+ /* @__PURE__ */ jsx101("path", {
19688
19894
  d: "M16.4128 26.0434H11.2775C9.66644 26.0434 8.15605 26.4461 7.04844 27.6544L0.302047 35.4078C5.23597 35.7098 10.3713 35.7098 13.9962 35.7098C32.4229 35.7098 35.343 24.6337 35.4437 19.0956C33.8326 21.1094 28.9994 26.0434 16.4128 26.0434ZM33.1278 8.22082C33.0271 9.12705 32.5236 13.0541 21.4474 13.0541C12.4858 13.0541 8.8609 13.054 -3.05176e-05 12.8527L6.64567 20.5053C7.95467 22.0157 9.76713 22.5191 11.781 22.6198C13.9962 22.6198 17.017 22.7205 17.4198 22.7205C29.8049 22.7205 35.0409 16.9811 35.0409 12.8527C35.1416 10.6374 34.4368 9.22774 33.1278 8.22082Z",
19689
19895
  fill: "var(--light-text-color)"
19690
19896
  }),
19691
- /* @__PURE__ */ jsx99("path", {
19897
+ /* @__PURE__ */ jsx101("path", {
19692
19898
  d: "M68.0509 9.70953H75.3052V27.0081C75.3052 28.9054 74.8588 30.5795 74.0776 31.9187C73.2963 33.258 72.2919 34.1508 70.9526 34.8204C69.6134 35.49 68.1625 35.7132 66.4885 35.7132C64.8144 35.7132 63.3636 35.3784 62.0243 34.8204C60.6851 34.1508 59.6807 33.258 58.8994 31.9187C58.7878 31.8071 58.7878 31.5839 58.6762 31.4723C58.5646 31.5839 58.5646 31.8071 58.453 31.9187C57.6718 33.258 56.6673 34.1508 55.3281 34.8204C53.9889 35.49 52.538 35.7132 50.8639 35.7132C49.1899 35.7132 47.739 35.3784 46.5114 34.8204C45.1722 34.1508 44.1677 33.258 43.3865 31.9187C42.6053 30.5795 42.2704 29.017 42.2704 27.0081L42.0472 9.70953H49.3015V25.6689C49.3015 26.7849 49.5247 27.5662 50.0827 28.0126C50.6407 28.459 51.3104 28.6822 52.0916 28.6822C52.8728 28.6822 53.654 28.459 54.2121 28.0126C54.7701 27.5662 55.1049 26.7849 55.1049 25.6689V9.70953H57.7834H59.6807H62.3592V25.6689C62.3592 26.7849 62.694 27.5662 63.252 28.0126C63.81 28.459 64.5912 28.6822 65.3725 28.6822C66.1537 28.6822 66.8233 28.459 67.3813 28.0126C67.8277 27.5662 68.0509 26.7849 68.0509 25.6689V9.70953ZM85.796 0.446408C85.2379 0.111596 84.5683 -7.62939e-06 83.7871 -7.62939e-06C83.0059 -7.62939e-06 82.3362 0.111596 81.7782 0.446408C81.2202 0.78122 80.6622 1.22764 80.3274 1.78565C79.9926 2.34367 79.7694 3.0133 79.7694 3.68292C79.7694 4.79896 80.1042 5.69179 80.8854 6.36141C81.6666 7.03104 82.6711 7.36585 83.7871 7.36585C84.5683 7.36585 85.2379 7.25425 85.796 6.91943C86.4656 6.58462 86.912 6.13821 87.2468 5.58019C87.5816 5.02217 87.8048 4.35254 87.8048 3.57132C87.8048 2.79009 87.5816 2.23207 87.2468 1.67405C86.912 1.22764 86.4656 0.78122 85.796 0.446408ZM80.1042 35.1552H87.3584V10.0443H80.1042V35.1552ZM104.211 23.4368C103.876 22.8788 103.318 22.3208 102.871 21.7628C102.425 21.3163 101.867 20.8699 101.309 20.3119C100.862 19.8655 100.528 19.5307 100.193 19.1959C99.9697 18.8611 99.8581 18.5262 99.8581 18.0798C99.8581 17.4102 100.193 16.9638 100.974 16.629C101.755 16.2942 102.648 16.1826 103.764 16.1826H104.88L104.211 9.48632C103.541 9.37472 102.871 9.37472 102.202 9.37472C100.416 9.37472 98.742 9.59793 97.068 10.0443C95.5055 10.4908 94.1663 11.272 93.1618 12.388C92.1574 13.5041 91.5994 14.9549 91.5994 16.8522C91.5994 18.1914 91.8226 19.3075 92.3806 20.3119C92.9386 21.3163 93.6082 22.2092 94.3895 23.102C94.8359 23.5484 95.2823 23.9948 95.7287 24.4412C96.1751 24.8877 96.6215 25.3341 96.8448 25.6689C97.068 26.0037 97.1796 26.3385 97.1796 26.7849C97.1796 27.4546 96.8447 28.0126 96.0635 28.3474C95.2823 28.6822 94.2779 28.9054 92.827 28.9054C92.269 28.9054 91.8226 28.9054 91.5994 28.7938L92.4922 35.49C93.1618 35.7132 93.7198 35.7132 94.5011 35.7132C96.6215 35.7132 98.4072 35.3784 100.081 34.8204C101.755 34.2624 103.095 33.3696 104.099 32.1419C105.103 30.9143 105.55 29.4634 105.55 27.5662C105.55 26.7849 105.438 26.0037 105.215 25.2225C104.88 24.5529 104.657 23.9948 104.211 23.4368ZM117.491 28.0126C116.933 27.4546 116.71 26.6733 116.71 25.6689V16.4058H121.956V10.0443H116.71V3.68292L109.456 5.8034V28.0126C109.456 30.5795 110.014 32.5883 111.018 33.816C112.134 35.0436 113.697 35.7132 115.817 35.7132C116.933 35.7132 117.938 35.6016 118.942 35.49C119.947 35.3784 120.728 35.1552 121.509 34.8204L122.848 28.5706C122.067 28.7938 121.063 28.9054 119.947 28.9054C118.719 28.7938 117.938 28.5706 117.491 28.0126ZM126.531 35.1552H133.786V10.0443H126.531V35.1552ZM132.223 0.446408C131.665 0.111596 130.996 -7.62939e-06 130.214 -7.62939e-06C129.433 -7.62939e-06 128.763 0.111596 128.205 0.446408C127.647 0.78122 127.089 1.22764 126.755 1.78565C126.42 2.34367 126.197 3.0133 126.197 3.68292C126.197 4.79896 126.531 5.69179 127.313 6.36141C128.094 7.03104 129.098 7.36585 130.214 7.36585C130.996 7.36585 131.665 7.25425 132.223 6.91943C132.893 6.58462 133.339 6.13821 133.674 5.58019C134.009 5.02217 134.232 4.35254 134.232 3.57132C134.232 2.79009 134.009 2.23207 133.674 1.67405C133.339 1.22764 132.893 0.78122 132.223 0.446408ZM164.477 10.0443V35.1552H157.222V31.0259C156.441 32.2535 155.548 33.258 154.432 34.0392C152.87 35.1552 150.973 35.7132 148.852 35.7132C146.732 35.7132 144.834 35.1552 143.272 34.0392C141.71 32.9231 140.482 31.3607 139.589 29.3518C138.696 27.3429 138.25 25.1109 138.25 22.544C138.25 19.9771 138.696 17.745 139.589 15.8477C140.482 13.8389 141.71 12.2764 143.272 11.1604C144.834 10.0443 146.732 9.48632 148.852 9.48632C150.973 9.48632 152.87 10.0443 154.432 11.1604C155.548 11.9416 156.441 12.946 157.222 14.1737V10.0443H164.477ZM156.664 25.6689C157.222 24.7761 157.446 23.66 157.446 22.544C157.446 21.4279 157.222 20.3119 156.664 19.4191C156.218 18.5262 155.548 17.745 154.656 17.2986C153.763 16.7406 152.87 16.5174 151.754 16.5174C150.749 16.5174 149.745 16.7406 148.852 17.2986C147.959 17.8566 147.29 18.5262 146.843 19.4191C146.285 20.3119 146.062 21.3163 146.062 22.544C146.062 23.66 146.285 24.7761 146.843 25.6689C147.401 26.5617 148.071 27.3429 148.852 27.7894C149.745 28.3474 150.638 28.5706 151.754 28.5706C152.758 28.5706 153.763 28.3474 154.656 27.7894C155.548 27.3429 156.218 26.5617 156.664 25.6689Z",
19693
19899
  fill: "var(--text-color)"
19694
19900
  })
@@ -19704,39 +19910,39 @@ var TrustedByBanner = () => {
19704
19910
  fill: "none",
19705
19911
  xmlns: "http://www.w3.org/2000/svg",
19706
19912
  children: [
19707
- /* @__PURE__ */ jsx99("path", {
19913
+ /* @__PURE__ */ jsx101("path", {
19708
19914
  d: "M43.4416 0.472096C37.9752 0.662593 33.9996 3.1639 32.8566 7.12292C32.5171 8.27419 32.4425 8.96992 32.4922 10.4111C32.5171 11.4547 32.575 11.8853 32.7407 12.5148C33.5441 15.5628 35.5319 17.6334 38.7372 18.7432C40.402 19.3313 41.9508 19.5549 44.1871 19.5549C48.9909 19.5549 52.5027 18.0724 54.3165 15.2977C54.6644 14.7676 55.2442 13.4342 55.2442 13.1608C55.2442 13.1194 54.4987 13.0863 53.3806 13.0863H51.5171L51.1858 13.6164C50.3327 14.9664 48.8501 15.8858 46.8375 16.3248C45.8518 16.5401 43.7067 16.6229 42.63 16.4904C39.7808 16.1343 37.7764 14.9167 36.8157 12.9621C36.4181 12.1587 36.269 11.5458 36.2193 10.4608C35.9957 6.06277 38.9857 3.47863 44.2699 3.47863C47.3841 3.47863 49.7612 4.4891 50.9787 6.32781L51.2934 6.79163H53.2232C54.2917 6.79163 55.1613 6.77506 55.1613 6.76678C55.1613 6.75021 55.0951 6.53487 55.004 6.28639C53.803 2.79119 50.0428 0.654311 44.8083 0.480378C44.3776 0.463815 43.7647 0.463815 43.4416 0.472096Z",
19709
19915
  fill: "var(--text-color)"
19710
19916
  }),
19711
- /* @__PURE__ */ jsx99("path", {
19917
+ /* @__PURE__ */ jsx101("path", {
19712
19918
  d: "M0.331299 0.745421C0.331299 0.828246 9.89756 18.7847 10.1543 19.1988C10.2703 19.381 10.2951 19.381 12.2167 19.381H14.163L14.3535 19.0745C14.6103 18.6604 24.102 0.786833 24.102 0.71229C24.102 0.687443 23.2241 0.662594 22.1556 0.662594H20.2092L20.0436 0.927634C19.9608 1.07672 18.1635 4.50566 16.0597 8.54751C13.956 12.5976 12.2084 15.8775 12.1752 15.8444C12.1421 15.8112 10.3779 12.4237 8.24935 8.32389C6.11247 4.22406 4.33174 0.819962 4.29032 0.761984C4.18265 0.629466 0.331299 0.6129 0.331299 0.745421Z",
19713
19919
  fill: "var(--text-color)"
19714
19920
  }),
19715
- /* @__PURE__ */ jsx99("path", {
19921
+ /* @__PURE__ */ jsx101("path", {
19716
19922
  d: "M26.0484 0.761964C26.0236 0.819942 26.0153 5.02744 26.0236 10.1046L26.0484 19.3396H27.8291H29.6099V10.0218V0.703989L27.8457 0.67914C26.4874 0.662576 26.0732 0.67914 26.0484 0.761964Z",
19717
19923
  fill: "var(--text-color)"
19718
19924
  }),
19719
- /* @__PURE__ */ jsx99("path", {
19925
+ /* @__PURE__ */ jsx101("path", {
19720
19926
  d: "M57.8945 10.0218V19.381L67.2786 19.3644L76.6543 19.3396L76.6792 17.9067L76.6958 16.4821H69.0759H61.456V13.9146V11.347H68.289H75.1221V9.93897V8.53095H68.289H61.456V6.04621V3.56146H69.0759H76.6958L76.6792 2.1286L76.6543 0.70401L67.2786 0.679162L57.8945 0.662598V10.0218Z",
19721
19927
  fill: "var(--text-color)"
19722
19928
  }),
19723
- /* @__PURE__ */ jsx99("path", {
19929
+ /* @__PURE__ */ jsx101("path", {
19724
19930
  d: "M87.5458 10.0218V19.381H88.7881H90.0305L90.0471 11.6534L90.0719 3.91761L94.3126 11.6286L98.5449 19.3396L99.8784 19.3644L101.212 19.381L101.353 19.1491C101.435 19.0166 103.349 15.5545 105.602 11.4464L109.701 3.98387L109.743 11.6617L109.784 19.3396H111.027H112.269V10.0218V0.70401L110.513 0.679162L108.765 0.662598L108.608 0.886223C108.517 1.01874 106.529 4.61334 104.194 8.87881C101.85 13.1526 99.9115 16.6478 99.8867 16.6478C99.8618 16.6478 97.8906 13.0615 95.497 8.67175L91.1487 0.70401L89.3514 0.679162L87.5458 0.662598V10.0218Z",
19725
19931
  fill: "var(--text-color)"
19726
19932
  }),
19727
- /* @__PURE__ */ jsx99("path", {
19933
+ /* @__PURE__ */ jsx101("path", {
19728
19934
  d: "M115.996 0.761986C115.971 0.819964 115.963 5.02746 115.971 10.1046L115.996 19.3396L125.173 19.3644L134.342 19.381V18.2629V17.1447H126.473H118.605V14.0802V11.0157H125.687H132.768V9.93897V8.86225H125.687H118.605V5.88056V2.89887H126.473H134.342V1.78073V0.662598H125.19C117.942 0.662598 116.021 0.687445 115.996 0.761986Z",
19729
19935
  fill: "var(--text-color)"
19730
19936
  }),
19731
- /* @__PURE__ */ jsx99("path", {
19937
+ /* @__PURE__ */ jsx101("path", {
19732
19938
  d: "M137.531 0.761966C137.506 0.819944 137.497 5.02744 137.506 10.1046L137.531 19.3396H143.245C149.366 19.3396 149.789 19.3147 151.503 18.8757C156.067 17.7245 158.593 14.5689 158.609 10.0218C158.609 9.59109 158.551 8.87879 158.493 8.44811C157.922 4.67958 155.528 2.18655 151.503 1.16781C149.83 0.745403 149.499 0.720554 143.353 0.687425C138.591 0.654294 137.564 0.67086 137.531 0.761966ZM149.184 3.10591C151.42 3.39579 152.952 4.09981 154.162 5.38359C155.305 6.60111 155.793 7.976 155.793 10.0218C155.793 12.0675 155.305 13.4424 154.162 14.66C152.952 15.9437 151.42 16.6478 149.184 16.9376C148.463 17.037 147.304 17.0619 144.19 17.0619H140.139V10.0218V2.98167H144.19C147.304 2.98167 148.463 3.00652 149.184 3.10591Z",
19733
19939
  fill: "var(--text-color)"
19734
19940
  }),
19735
- /* @__PURE__ */ jsx99("path", {
19941
+ /* @__PURE__ */ jsx101("path", {
19736
19942
  d: "M161.384 0.761964C161.359 0.819942 161.351 5.02744 161.359 10.1046L161.384 19.3396H162.668H163.952V10.0218V0.703989L162.684 0.67914C161.724 0.662576 161.409 0.67914 161.384 0.761964Z",
19737
19943
  fill: "var(--text-color)"
19738
19944
  }),
19739
- /* @__PURE__ */ jsx99("path", {
19945
+ /* @__PURE__ */ jsx101("path", {
19740
19946
  d: "M176.268 0.770262C176.177 0.877934 166.503 19.0497 166.42 19.265C166.378 19.3644 166.569 19.381 167.728 19.3644L169.087 19.3396L170.462 16.772L171.837 14.2044H178.082H184.326L185.693 16.772L187.068 19.3396L188.368 19.3644C189.238 19.381 189.669 19.3561 189.669 19.2982C189.669 19.2153 180.194 1.27549 179.929 0.844805C179.813 0.662591 179.779 0.662591 178.082 0.662591C176.781 0.662591 176.334 0.687438 176.268 0.770262ZM180.649 7.23888C181.991 9.74019 183.101 11.8191 183.109 11.8605C183.126 11.8936 180.864 11.9268 178.082 11.9268C175.299 11.9268 173.021 11.9102 173.021 11.8853C173.021 11.8605 174.147 9.7319 175.522 7.15605C177.493 3.4455 178.04 2.5013 178.115 2.58413C178.173 2.6421 179.307 4.73757 180.649 7.23888Z",
19741
19947
  fill: "var(--text-color)"
19742
19948
  })
@@ -19746,12 +19952,12 @@ var TrustedByBanner = () => {
19746
19952
  {
19747
19953
  id: "logo5",
19748
19954
  url: "https://www.soundcloud.com/",
19749
- light: /* @__PURE__ */ jsx99("svg", {
19955
+ light: /* @__PURE__ */ jsx101("svg", {
19750
19956
  height: "40",
19751
19957
  viewBox: "0 0 129 57",
19752
19958
  fill: "none",
19753
19959
  xmlns: "http://www.w3.org/2000/svg",
19754
- children: /* @__PURE__ */ jsx99("path", {
19960
+ children: /* @__PURE__ */ jsx101("path", {
19755
19961
  d: "M68.962 1.89524C67.7646 2.35781 67.4474 2.83682 67.4351 3.75787V54.1228C67.4597 55.093 68.2007 55.9034 69.1483 55.9976C69.1893 55.9996 112.847 56.0222 113.134 56.0222C121.898 56.0222 129 48.9199 129 40.1536C129 31.3872 121.898 24.287 113.134 24.287C111.027 24.286 108.941 24.7042 106.997 25.5171C105.734 11.2183 93.7445 -2.25304e-06 79.1141 -2.25304e-06C75.643 0.00545336 72.2022 0.649256 68.964 1.89936M62.4471 5.46073L61.7308 41.2056L62.4471 54.1781C62.4717 55.1257 63.2454 55.9055 64.1951 55.9055C64.6562 55.9018 65.0976 55.7172 65.4241 55.3915C65.7506 55.0657 65.9362 54.6249 65.941 54.1637V54.1761L66.7188 41.2036L65.941 5.45461C65.9165 4.49876 65.1427 3.7149 64.1951 3.7149C63.2474 3.7149 62.4553 4.50079 62.4471 5.46073ZM57.1398 8.42858L56.5259 41.1913C56.5259 41.2118 57.1398 54.3643 57.1398 54.3643C57.1643 55.2547 57.889 55.9875 58.7773 55.9875C59.2089 55.9827 59.6215 55.8099 59.9276 55.5056C60.2338 55.2014 60.4094 54.7897 60.4168 54.3582L61.1064 41.2036L60.4168 8.42645C60.3923 7.52996 59.6656 6.7993 58.7793 6.7993C58.3481 6.80456 57.9359 6.97771 57.6302 7.28189C57.3245 7.58607 57.1495 7.99738 57.142 8.42858M41.2713 11.863L40.4588 41.1933L41.2733 54.6611C41.2938 55.3816 41.8872 55.9506 42.579 55.9506C43.2708 55.9506 43.8625 55.3775 43.885 54.655V54.6488L44.7999 41.1913L43.885 11.861C43.8604 11.1303 43.2872 10.5613 42.579 10.5613C41.8708 10.5613 41.2898 11.1303 41.2693 11.861M46.5171 12.6122L45.7721 41.1953L46.5191 54.5301C46.5437 55.314 47.1577 55.9343 47.9375 55.9343C48.7174 55.9343 49.3294 55.312 49.3539 54.522V54.5301L50.1727 41.1933L49.3539 12.6101C49.3294 11.818 48.7112 11.1978 47.9375 11.1978C47.1639 11.1978 46.5356 11.82 46.5171 12.6101M36.0642 12.8148L35.1842 41.1892L36.0642 54.7388C36.0711 55.0527 36.1999 55.3516 36.4234 55.5721C36.647 55.7926 36.9477 55.9173 37.2617 55.9199C37.9064 55.9199 38.4324 55.402 38.459 54.7327L39.4496 41.1892L38.459 12.8127C38.4324 12.1475 37.9064 11.6257 37.2617 11.6257C36.9467 11.6283 36.6451 11.7538 36.4214 11.9756C36.1978 12.1974 36.0695 12.4978 36.0642 12.8127M51.808 13.6561L51.1244 41.1933L51.808 54.4461C51.8325 55.2915 52.4979 55.9567 53.3371 55.9567C54.1762 55.9567 54.8435 55.2915 54.8619 54.438V54.4483L55.6272 41.1953L54.8619 13.6539C54.8581 13.2511 54.6962 12.8658 54.4109 12.5813C54.1256 12.2968 53.7399 12.1359 53.3371 12.1332C52.5184 12.1332 51.8223 12.8026 51.808 13.6561ZM30.8982 14.9946C30.8982 14.9967 29.9566 41.1831 29.9566 41.1831L30.8982 54.8719C30.9066 55.1562 31.0241 55.4263 31.2266 55.6261C31.429 55.8258 31.7008 55.9398 31.9851 55.9444C32.5643 55.9444 33.041 55.4736 33.0697 54.8678L34.1341 41.1831L33.0697 14.9946C33.039 14.3908 32.5623 13.918 31.9851 13.918C31.7001 13.9227 31.4278 14.0372 31.2253 14.2378C31.0228 14.4385 30.9056 14.7097 30.8982 14.9946ZM25.7751 19.866L24.7659 41.1831L25.7751 54.9578C25.8017 55.4961 26.2296 55.9199 26.7515 55.9199C27.0066 55.9138 27.2498 55.8107 27.4316 55.6316C27.6133 55.4525 27.7198 55.2108 27.7296 54.9558V54.96L28.872 41.1851L27.7296 19.868C27.6969 19.3276 27.2673 18.9019 26.7515 18.9019C26.2357 18.9019 25.8017 19.3256 25.7751 19.866ZM15.6516 27.0563L14.5138 41.179L15.6516 54.8412C15.6844 55.2648 16.008 55.5821 16.4092 55.5821C16.8103 55.5821 17.1296 55.2648 17.1665 54.8412L18.4559 41.179L17.1665 27.0522C17.1296 26.6326 16.8062 26.3112 16.4092 26.3112C16.0121 26.3112 15.6823 26.6306 15.6516 27.0563ZM10.6514 27.4308C10.6514 27.4329 9.44385 41.177 9.44385 41.177L10.6514 54.4195C10.6882 54.788 10.9585 55.0337 11.2982 55.0337C11.638 55.0337 11.9042 54.7676 11.9431 54.3992L13.3103 41.1565L11.9451 27.4103C11.9042 27.0419 11.6319 26.7758 11.2982 26.7758C10.9646 26.7758 10.6841 27.0419 10.6514 27.4103M20.6929 28.0592L19.6205 41.1585L20.6929 54.9334C20.7256 55.4184 21.0942 55.7888 21.5588 55.7888C22.0235 55.7888 22.3898 55.4204 22.4246 54.9354L23.6423 41.1606L22.4246 28.0531C22.3877 27.5721 22.0194 27.2057 21.5588 27.2057C21.0983 27.2057 20.7236 27.57 20.6929 28.0592ZM5.69409 29.5738C5.69409 29.5758 4.4251 41.1585 4.4251 41.1585L5.69409 52.4894C5.73093 52.7924 5.9603 53.0094 6.23252 53.0094C6.50474 53.0094 6.72376 52.7965 6.7647 52.4916L8.20559 41.1585L6.7647 29.5738C6.71762 29.2668 6.49869 29.0539 6.22852 29.0539C5.95835 29.0539 5.72693 29.2729 5.69009 29.5738M0.941686 33.9948L0 41.1585L0.941686 48.1994C0.978528 48.4962 1.19125 48.705 1.45938 48.705C1.7275 48.705 1.93013 48.4962 1.97107 48.2015L3.08865 41.1565L1.97107 33.9928C1.93013 33.698 1.71727 33.4913 1.45938 33.4913C1.20148 33.4913 0.976481 33.7 0.941686 33.9948Z",
19756
19962
  fill: "var(--text-color)"
19757
19963
  })
@@ -19760,13 +19966,13 @@ var TrustedByBanner = () => {
19760
19966
  ];
19761
19967
  return /* @__PURE__ */ jsxs43(Fragment8, {
19762
19968
  children: [
19763
- /* @__PURE__ */ jsx99("h3", {
19969
+ /* @__PURE__ */ jsx101("h3", {
19764
19970
  className: "text-center mt-20 mb-10",
19765
19971
  children: "Trusted by"
19766
19972
  }),
19767
- /* @__PURE__ */ jsx99("div", {
19973
+ /* @__PURE__ */ jsx101("div", {
19768
19974
  className: "text-center flex flex-col lg:flex-row flex-nowrap justify-center items-center gap-10 mb-20",
19769
- children: logos.map((logo) => /* @__PURE__ */ jsx99("a", {
19975
+ children: logos.map((logo) => /* @__PURE__ */ jsx101("a", {
19770
19976
  href: logo.url,
19771
19977
  target: "_blank",
19772
19978
  className: "opacity-80 hover:opacity-100 transition-opacity",
@@ -19780,150 +19986,6 @@ var TrustedByBanner_default = TrustedByBanner;
19780
19986
 
19781
19987
  // src/components/homepage/VideoAppsShowcase.tsx
19782
19988
  import { useEffect as useEffect47, useRef as useRef35, useState as useState40 } from "react";
19783
-
19784
- // src/components/homepage/MuxVideo.tsx
19785
- import Hls2 from "hls.js";
19786
- import { forwardRef as forwardRef17, useEffect as useEffect46, useImperativeHandle as useImperativeHandle14, useRef as useRef33 } from "react";
19787
-
19788
- // src/components/homepage/VideoPlayerWithControls.tsx
19789
- import Hls from "hls.js";
19790
- import"plyr/dist/plyr.css";
19791
- import { forwardRef as forwardRef16, useCallback as useCallback36, useEffect as useEffect45, useRef as useRef31, useState as useState39 } from "react";
19792
- import { jsx as jsx100 } from "react/jsx-runtime";
19793
- var useCombinedRefs = function(...refs) {
19794
- const targetRef = useRef31(null);
19795
- useEffect45(() => {
19796
- refs.forEach((ref) => {
19797
- if (!ref)
19798
- return;
19799
- if (typeof ref === "function") {
19800
- ref(targetRef.current);
19801
- } else {
19802
- ref.current = targetRef.current;
19803
- }
19804
- });
19805
- }, [refs]);
19806
- return targetRef;
19807
- };
19808
- var VideoPlayerWithControls = forwardRef16(({ playbackId, poster, currentTime, onLoaded, onError, onSize, autoPlay }, ref) => {
19809
- const videoRef = useRef31(null);
19810
- const metaRef = useCombinedRefs(ref, videoRef);
19811
- const playerRef = useRef31(null);
19812
- const [playerInitTime] = useState39(Date.now());
19813
- const videoError = useCallback36((event) => onError(event), [onError]);
19814
- const onImageLoad = useCallback36((event) => {
19815
- const [w, h] = [event.target.width, event.target.height];
19816
- if (w && h) {
19817
- onSize({ width: w, height: h });
19818
- onLoaded();
19819
- } else {
19820
- onLoaded();
19821
- console.error("Error getting img dimensions", event);
19822
- }
19823
- }, [onLoaded, onSize]);
19824
- useEffect45(() => {
19825
- const img = new Image;
19826
- img.onload = (evt) => onImageLoad(evt);
19827
- img.src = poster;
19828
- }, [onImageLoad, poster]);
19829
- useEffect45(() => {
19830
- const video = videoRef.current;
19831
- const src = `https://stream.mux.com/${playbackId}.m3u8`;
19832
- let hls;
19833
- hls = null;
19834
- if (video) {
19835
- video.addEventListener("error", videoError);
19836
- const Plyr = __require("plyr");
19837
- playerRef.current = new Plyr(video, {
19838
- previewThumbnails: {
19839
- enabled: true,
19840
- src: `https://image.mux.com/${playbackId}/storyboard.vtt`
19841
- },
19842
- storage: { enabled: false },
19843
- fullscreen: {
19844
- iosNative: true
19845
- },
19846
- captions: { active: true, language: "auto", update: true }
19847
- });
19848
- if (video.canPlayType("application/vnd.apple.mpegurl")) {
19849
- video.src = src;
19850
- } else if (Hls.isSupported()) {
19851
- hls = new Hls;
19852
- hls.loadSource(src);
19853
- hls.attachMedia(video);
19854
- hls.on(Hls.Events.ERROR, (_event, data2) => {
19855
- if (data2.fatal) {
19856
- videoError(new ErrorEvent("HLS.js fatal error"));
19857
- }
19858
- });
19859
- } else {
19860
- console.error("This is an old browser that does not support MSE https://developer.mozilla.org/en-US/docs/Web/API/Media_Source_Extensions_API");
19861
- }
19862
- }
19863
- return () => {
19864
- if (video) {
19865
- video.removeEventListener("error", videoError);
19866
- }
19867
- if (hls) {
19868
- hls.destroy();
19869
- }
19870
- };
19871
- }, [playbackId, playerInitTime, videoError, videoRef]);
19872
- useEffect45(() => {
19873
- const video = videoRef.current;
19874
- if (currentTime && video) {
19875
- video.currentTime = currentTime;
19876
- }
19877
- }, [currentTime]);
19878
- return /* @__PURE__ */ jsx100("div", {
19879
- className: "video-container",
19880
- children: /* @__PURE__ */ jsx100("video", {
19881
- ref: metaRef,
19882
- autoPlay,
19883
- poster,
19884
- controls: true,
19885
- playsInline: true
19886
- })
19887
- });
19888
- });
19889
-
19890
- // src/components/homepage/MuxVideo.tsx
19891
- import { jsx as jsx101 } from "react/jsx-runtime";
19892
- var getVideoToPlayUrl = (muxId) => {
19893
- return `https://stream.mux.com/${muxId}.m3u8`;
19894
- };
19895
- var MuxVideoForward = ({ muxId, ...props }, ref) => {
19896
- const videoRef = useRef33(null);
19897
- const vidUrl = getVideoToPlayUrl(muxId);
19898
- useImperativeHandle14(ref, () => videoRef.current, []);
19899
- useEffect46(() => {
19900
- let hls;
19901
- if (videoRef.current) {
19902
- const { current } = videoRef;
19903
- if (current.canPlayType("application/vnd.apple.mpegurl")) {
19904
- current.src = vidUrl;
19905
- } else if (Hls2.isSupported()) {
19906
- hls = new Hls2;
19907
- hls.loadSource(vidUrl);
19908
- hls.attachMedia(current);
19909
- } else {
19910
- console.error("This is a legacy browser that doesn't support MSE");
19911
- }
19912
- }
19913
- return () => {
19914
- if (hls) {
19915
- hls.destroy();
19916
- }
19917
- };
19918
- }, [vidUrl, videoRef]);
19919
- return /* @__PURE__ */ jsx101("video", {
19920
- ref: videoRef,
19921
- ...props
19922
- });
19923
- };
19924
- var MuxVideo = forwardRef17(MuxVideoForward);
19925
-
19926
- // src/components/homepage/VideoAppsShowcase.tsx
19927
19989
  import { jsx as jsx104, jsxs as jsxs45 } from "react/jsx-runtime";
19928
19990
  var tabs = [
19929
19991
  "Music visualization",
@@ -20292,7 +20354,7 @@ var FEATURED_TEMPLATES = [
20292
20354
  type: "video",
20293
20355
  defaultBranch: "main",
20294
20356
  featuredOnHomePage: "Next.js",
20295
- previewURL: null,
20357
+ previewURL: "https://next.remotion.dev",
20296
20358
  templateInMonorepo: "template-next-app",
20297
20359
  allowEnableTailwind: false
20298
20360
  },
@@ -20312,7 +20374,7 @@ var FEATURED_TEMPLATES = [
20312
20374
  type: "video",
20313
20375
  defaultBranch: "main",
20314
20376
  featuredOnHomePage: null,
20315
- previewURL: null,
20377
+ previewURL: "https://next.remotion.dev",
20316
20378
  templateInMonorepo: "template-next-app-tailwind",
20317
20379
  allowEnableTailwind: false
20318
20380
  },
@@ -20332,7 +20394,7 @@ var FEATURED_TEMPLATES = [
20332
20394
  type: "video",
20333
20395
  defaultBranch: "main",
20334
20396
  featuredOnHomePage: null,
20335
- previewURL: null,
20397
+ previewURL: "https://next.remotion.dev",
20336
20398
  templateInMonorepo: "template-next-pages",
20337
20399
  allowEnableTailwind: false
20338
20400
  },