@remotion/promo-pages 4.0.356 → 4.0.358

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
@@ -87,7 +87,7 @@ import {
87
87
  useState as useState7
88
88
  } from "react";
89
89
  import { jsx as jsx11 } from "react/jsx-runtime";
90
- import { forwardRef as forwardRef6, useCallback as useCallback11, useContext as useContext25 } from "react";
90
+ import { forwardRef as forwardRef6, useCallback as useCallback11, useContext as useContext26 } from "react";
91
91
  import React10, { createContext as createContext11, useMemo as useMemo11 } from "react";
92
92
  import { jsx as jsx12 } from "react/jsx-runtime";
93
93
  import { useContext as useContext13 } from "react";
@@ -97,8 +97,8 @@ import { createContext as createContext13, useMemo as useMemo12, useReducer } fr
97
97
  import { jsx as jsx14 } from "react/jsx-runtime";
98
98
  import {
99
99
  forwardRef as forwardRef4,
100
- useContext as useContext23,
101
- useEffect as useEffect13,
100
+ useContext as useContext24,
101
+ useEffect as useEffect14,
102
102
  useImperativeHandle as useImperativeHandle5,
103
103
  useMemo as useMemo20,
104
104
  useRef as useRef11,
@@ -144,12 +144,13 @@ import { jsx as jsx16 } from "react/jsx-runtime";
144
144
  import React16 from "react";
145
145
  import { useEffect as useEffect10, useState as useState13 } from "react";
146
146
  import { useEffect as useEffect11, useRef as useRef9 } from "react";
147
- import { createContext as createContext16, useContext as useContext22, useMemo as useMemo19 } from "react";
147
+ import { useContext as useContext22, useEffect as useEffect13 } from "react";
148
+ import { createContext as createContext16, useContext as useContext23, useMemo as useMemo19 } from "react";
148
149
  import { jsx as jsx17 } from "react/jsx-runtime";
149
150
  import {
150
151
  forwardRef as forwardRef5,
151
- useContext as useContext24,
152
- useEffect as useEffect14,
152
+ useContext as useContext25,
153
+ useEffect as useEffect15,
153
154
  useImperativeHandle as useImperativeHandle6,
154
155
  useLayoutEffect as useLayoutEffect6,
155
156
  useMemo as useMemo21,
@@ -157,9 +158,9 @@ import {
157
158
  } from "react";
158
159
  import { jsx as jsx18 } from "react/jsx-runtime";
159
160
  import { jsx as jsx19 } from "react/jsx-runtime";
160
- import { Suspense, useContext as useContext27, useEffect as useEffect16 } from "react";
161
+ import { Suspense, useContext as useContext28, useEffect as useEffect17 } from "react";
161
162
  import { createPortal } from "react-dom";
162
- import { createContext as createContext17, useContext as useContext26, useEffect as useEffect15, useMemo as useMemo222 } from "react";
163
+ import { createContext as createContext17, useContext as useContext27, useEffect as useEffect16, useMemo as useMemo222 } from "react";
163
164
  import { jsx as jsx20 } from "react/jsx-runtime";
164
165
  import { jsx as jsx21, jsxs as jsxs22 } from "react/jsx-runtime";
165
166
  import React20, { useMemo as useMemo23 } from "react";
@@ -169,7 +170,7 @@ import { jsx as jsx23 } from "react/jsx-runtime";
169
170
  import {
170
171
  forwardRef as forwardRef8,
171
172
  useCallback as useCallback13,
172
- useContext as useContext28,
173
+ useContext as useContext29,
173
174
  useImperativeHandle as useImperativeHandle7,
174
175
  useLayoutEffect as useLayoutEffect7,
175
176
  useRef as useRef13
@@ -185,7 +186,7 @@ import React24, {
185
186
  } from "react";
186
187
  import { jsx as jsx25 } from "react/jsx-runtime";
187
188
  import {
188
- useEffect as useEffect17,
189
+ useEffect as useEffect18,
189
190
  useLayoutEffect as useLayoutEffect8,
190
191
  useMemo as useMemo25,
191
192
  useRef as useRef15,
@@ -196,8 +197,8 @@ import React26, { createContext as createContext18 } from "react";
196
197
  import { useCallback as useCallback16 } from "react";
197
198
  import {
198
199
  useCallback as useCallback15,
199
- useContext as useContext29,
200
- useEffect as useEffect18,
200
+ useContext as useContext30,
201
+ useEffect as useEffect19,
201
202
  useLayoutEffect as useLayoutEffect9,
202
203
  useMemo as useMemo26,
203
204
  useState as useState18
@@ -205,14 +206,14 @@ import {
205
206
  import { jsx as jsx27 } from "react/jsx-runtime";
206
207
  import {
207
208
  forwardRef as forwardRef9,
208
- useContext as useContext30,
209
- useEffect as useEffect20,
209
+ useContext as useContext31,
210
+ useEffect as useEffect21,
210
211
  useImperativeHandle as useImperativeHandle9,
211
212
  useMemo as useMemo27,
212
213
  useRef as useRef16,
213
214
  useState as useState19
214
215
  } from "react";
215
- import { useEffect as useEffect19 } from "react";
216
+ import { useEffect as useEffect20 } from "react";
216
217
  import { jsx as jsx28 } from "react/jsx-runtime";
217
218
  import { jsx as jsx29 } from "react/jsx-runtime";
218
219
  import React30, { useMemo as useMemo28 } from "react";
@@ -223,11 +224,11 @@ import React322, { createContext as createContext19 } from "react";
223
224
  import { jsx as jsx31 } from "react/jsx-runtime";
224
225
  import { jsx as jsx322 } from "react/jsx-runtime";
225
226
  import React34 from "react";
226
- import { forwardRef as forwardRef12, useCallback as useCallback17, useContext as useContext32 } from "react";
227
+ import { forwardRef as forwardRef12, useCallback as useCallback17, useContext as useContext33 } from "react";
227
228
  import {
228
229
  forwardRef as forwardRef11,
229
- useContext as useContext31,
230
- useEffect as useEffect21,
230
+ useContext as useContext32,
231
+ useEffect as useEffect222,
231
232
  useImperativeHandle as useImperativeHandle10,
232
233
  useLayoutEffect as useLayoutEffect10,
233
234
  useMemo as useMemo30,
@@ -739,7 +740,7 @@ var __defProp2, __export2 = (target, all) => {
739
740
  });
740
741
  }, useIsPlayer = () => {
741
742
  return useContext(IsPlayerContext);
742
- }, VERSION = "4.0.356", checkMultipleRemotionVersions = () => {
743
+ }, VERSION = "4.0.358", checkMultipleRemotionVersions = () => {
743
744
  if (typeof globalThis === "undefined") {
744
745
  return;
745
746
  }
@@ -2359,18 +2360,18 @@ Check that all your Remotion packages are on the same version. If your dependenc
2359
2360
  return relativeSrc;
2360
2361
  }
2361
2362
  return new URL(relativeSrc, window.origin).href;
2362
- }, calculateLoopDuration = ({
2363
- endAt,
2364
- mediaDuration,
2363
+ }, calculateMediaDuration = ({
2364
+ trimAfter,
2365
+ mediaDurationInFrames,
2365
2366
  playbackRate,
2366
- startFrom
2367
+ trimBefore
2367
2368
  }) => {
2368
- let duration = mediaDuration;
2369
- if (typeof endAt !== "undefined") {
2370
- duration = endAt;
2369
+ let duration = mediaDurationInFrames;
2370
+ if (typeof trimAfter !== "undefined") {
2371
+ duration = trimAfter;
2371
2372
  }
2372
- if (typeof startFrom !== "undefined") {
2373
- duration -= startFrom;
2373
+ if (typeof trimBefore !== "undefined") {
2374
+ duration -= trimBefore;
2374
2375
  }
2375
2376
  const actualDuration = duration / playbackRate;
2376
2377
  return Math.floor(actualDuration);
@@ -2956,7 +2957,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
2956
2957
  }
2957
2958
  const firstFreeAudio = takenAudios.current.findIndex((a) => a === false);
2958
2959
  if (firstFreeAudio === -1) {
2959
- throw new Error(`Tried to simultaneously mount ${numberOfAudioTags + 1} <Audio /> tags at the same time. With the current settings, the maximum amount of <Audio /> tags is limited to ${numberOfAudioTags} at the same time. Remotion pre-mounts silent audio tags to help avoid browser autoplay restrictions. See https://remotion.dev/docs/player/autoplay#using-the-numberofsharedaudiotags-prop for more information on how to increase this limit.`);
2960
+ throw new Error(`Tried to simultaneously mount ${numberOfAudioTags + 1} <Html5Audio /> tags at the same time. With the current settings, the maximum amount of <Html5Audio /> tags is limited to ${numberOfAudioTags} at the same time. Remotion pre-mounts silent audio tags to help avoid browser autoplay restrictions. See https://remotion.dev/docs/player/autoplay#using-the-numberofsharedaudiotags-prop for more information on how to increase this limit.`);
2960
2961
  }
2961
2962
  const { id, ref, mediaElementSourceNode } = refs[firstFreeAudio];
2962
2963
  const cloned = [...takenAudios.current];
@@ -3330,36 +3331,30 @@ Check that all your Remotion packages are on the same version. If your dependenc
3330
3331
  }
3331
3332
  console.warn(message);
3332
3333
  didWarn[message] = true;
3333
- }, useMediaInTimeline = ({
3334
+ }, useBasicMediaInTimeline = ({
3334
3335
  volume,
3335
3336
  mediaVolume,
3336
- mediaRef,
3337
- src,
3338
3337
  mediaType,
3339
- playbackRate,
3338
+ src,
3340
3339
  displayName,
3341
- id,
3342
- stack,
3343
- showInTimeline,
3344
- premountDisplay,
3345
- postmountDisplay,
3346
- onAutoPlayError,
3347
- isPremounting,
3348
- isPostmounting
3340
+ trimBefore,
3341
+ trimAfter,
3342
+ playbackRate
3349
3343
  }) => {
3350
- const videoConfig = useVideoConfig();
3351
- const { rootId, audioAndVideoTags } = useContext18(TimelineContext);
3352
- const parentSequence = useContext18(SequenceContext);
3353
- const actualFrom = parentSequence ? parentSequence.relativeFrom + parentSequence.cumulatedFrom : 0;
3354
- const { imperativePlaying } = useContext18(TimelineContext);
3344
+ if (!src) {
3345
+ throw new Error("No src passed");
3346
+ }
3355
3347
  const startsAt = useMediaStartsAt();
3356
- const { registerSequence, unregisterSequence } = useContext18(SequenceManager);
3348
+ const parentSequence = useContext18(SequenceContext);
3349
+ const videoConfig = useVideoConfig();
3357
3350
  const [initialVolume] = useState11(() => volume);
3358
- const logLevel = useLogLevel();
3359
- const mountTime = useMountTime();
3360
- const nonce = useNonce();
3361
- const duration = parentSequence ? Math.min(parentSequence.durationInFrames, videoConfig.durationInFrames) : videoConfig.durationInFrames;
3362
- const doesVolumeChange = typeof volume === "function";
3351
+ const mediaDuration = calculateMediaDuration({
3352
+ mediaDurationInFrames: videoConfig.durationInFrames,
3353
+ playbackRate,
3354
+ trimBefore,
3355
+ trimAfter
3356
+ });
3357
+ const duration = parentSequence ? Math.min(parentSequence.durationInFrames, mediaDuration) : mediaDuration;
3363
3358
  const volumes = useMemo15(() => {
3364
3359
  if (typeof volume === "number") {
3365
3360
  return volume;
@@ -3377,15 +3372,59 @@ Check that all your Remotion packages are on the same version. If your dependenc
3377
3372
  warnOnce2(`Remotion: The ${mediaType} with src ${src} has changed it's volume. Prefer the callback syntax for setting volume to get better timeline display: https://www.remotion.dev/docs/audio/volume`);
3378
3373
  }
3379
3374
  }, [initialVolume, mediaType, src, volume]);
3375
+ const doesVolumeChange = typeof volume === "function";
3376
+ const nonce = useNonce();
3377
+ const { rootId } = useContext18(TimelineContext);
3380
3378
  const env = useRemotionEnvironment();
3379
+ return {
3380
+ volumes,
3381
+ duration,
3382
+ doesVolumeChange,
3383
+ nonce,
3384
+ rootId,
3385
+ isStudio: env.isStudio,
3386
+ finalDisplayName: displayName ?? getAssetDisplayName(src)
3387
+ };
3388
+ }, useMediaInTimeline = ({
3389
+ volume,
3390
+ mediaVolume,
3391
+ src,
3392
+ mediaType,
3393
+ playbackRate,
3394
+ displayName,
3395
+ id,
3396
+ stack,
3397
+ showInTimeline,
3398
+ premountDisplay,
3399
+ postmountDisplay,
3400
+ loopDisplay
3401
+ }) => {
3402
+ const parentSequence = useContext18(SequenceContext);
3403
+ const startsAt = useMediaStartsAt();
3404
+ const { registerSequence, unregisterSequence } = useContext18(SequenceManager);
3405
+ const {
3406
+ volumes,
3407
+ duration,
3408
+ doesVolumeChange,
3409
+ nonce,
3410
+ rootId,
3411
+ isStudio,
3412
+ finalDisplayName
3413
+ } = useBasicMediaInTimeline({
3414
+ volume,
3415
+ mediaVolume,
3416
+ mediaType,
3417
+ src,
3418
+ displayName,
3419
+ trimAfter: undefined,
3420
+ trimBefore: undefined,
3421
+ playbackRate
3422
+ });
3381
3423
  useEffect8(() => {
3382
- if (!mediaRef.current) {
3383
- return;
3384
- }
3385
3424
  if (!src) {
3386
3425
  throw new Error("No src passed");
3387
3426
  }
3388
- if (!env.isStudio && window.process?.env?.NODE_ENV !== "test") {
3427
+ if (!isStudio && window.process?.env?.NODE_ENV !== "test") {
3389
3428
  return;
3390
3429
  }
3391
3430
  if (!showInTimeline) {
@@ -3398,14 +3437,14 @@ Check that all your Remotion packages are on the same version. If your dependenc
3398
3437
  duration,
3399
3438
  from: 0,
3400
3439
  parent: parentSequence?.id ?? null,
3401
- displayName: displayName ?? getAssetDisplayName(src),
3440
+ displayName: finalDisplayName,
3402
3441
  rootId,
3403
3442
  volume: volumes,
3404
3443
  showInTimeline: true,
3405
3444
  nonce,
3406
3445
  startMediaFrom: 0 - startsAt,
3407
3446
  doesVolumeChange,
3408
- loopDisplay: undefined,
3447
+ loopDisplay,
3409
3448
  playbackRate,
3410
3449
  stack,
3411
3450
  premountDisplay,
@@ -3415,66 +3454,26 @@ Check that all your Remotion packages are on the same version. If your dependenc
3415
3454
  unregisterSequence(id);
3416
3455
  };
3417
3456
  }, [
3418
- actualFrom,
3419
3457
  duration,
3420
3458
  id,
3421
3459
  parentSequence,
3422
3460
  src,
3423
3461
  registerSequence,
3424
- rootId,
3425
3462
  unregisterSequence,
3426
- videoConfig,
3427
3463
  volumes,
3428
3464
  doesVolumeChange,
3429
3465
  nonce,
3430
- mediaRef,
3431
3466
  mediaType,
3432
3467
  startsAt,
3433
3468
  playbackRate,
3434
- displayName,
3435
3469
  stack,
3436
3470
  showInTimeline,
3437
3471
  premountDisplay,
3438
3472
  postmountDisplay,
3439
- env.isStudio
3440
- ]);
3441
- useEffect8(() => {
3442
- const tag = {
3443
- id,
3444
- play: (reason) => {
3445
- if (!imperativePlaying.current) {
3446
- return;
3447
- }
3448
- if (isPremounting || isPostmounting) {
3449
- return;
3450
- }
3451
- return playAndHandleNotAllowedError({
3452
- mediaRef,
3453
- mediaType,
3454
- onAutoPlayError,
3455
- logLevel,
3456
- mountTime,
3457
- reason,
3458
- isPlayer: env.isPlayer
3459
- });
3460
- }
3461
- };
3462
- audioAndVideoTags.current.push(tag);
3463
- return () => {
3464
- audioAndVideoTags.current = audioAndVideoTags.current.filter((a) => a.id !== id);
3465
- };
3466
- }, [
3467
- audioAndVideoTags,
3468
- id,
3469
- mediaRef,
3470
- mediaType,
3471
- onAutoPlayError,
3472
- imperativePlaying,
3473
- isPremounting,
3474
- isPostmounting,
3475
- logLevel,
3476
- mountTime,
3477
- env.isPlayer
3473
+ isStudio,
3474
+ loopDisplay,
3475
+ rootId,
3476
+ finalDisplayName
3478
3477
  ]);
3479
3478
  }, useBufferManager = (logLevel, mountTime) => {
3480
3479
  const [blocks, setBlocks] = useState12([]);
@@ -4070,7 +4069,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
4070
4069
  }
4071
4070
  }, [mediaRef, playbackRate]);
4072
4071
  useEffect12(() => {
4073
- const tagName = mediaType === "audio" ? "<Audio>" : "<Video>";
4072
+ const tagName = mediaType === "audio" ? "<Html5Audio>" : "<Html5Video>";
4074
4073
  if (!mediaRef.current) {
4075
4074
  throw new Error(`No ${mediaType} ref found`);
4076
4075
  }
@@ -4185,15 +4184,65 @@ Check that all your Remotion packages are on the same version. If your dependenc
4185
4184
  mediaTagCurrentTime,
4186
4185
  env.isPlayer
4187
4186
  ]);
4187
+ }, useMediaTag = ({
4188
+ mediaRef,
4189
+ id,
4190
+ mediaType,
4191
+ onAutoPlayError,
4192
+ isPremounting,
4193
+ isPostmounting
4194
+ }) => {
4195
+ const { audioAndVideoTags, imperativePlaying } = useContext22(TimelineContext);
4196
+ const logLevel = useLogLevel();
4197
+ const mountTime = useMountTime();
4198
+ const env = useRemotionEnvironment();
4199
+ useEffect13(() => {
4200
+ const tag = {
4201
+ id,
4202
+ play: (reason) => {
4203
+ if (!imperativePlaying.current) {
4204
+ return;
4205
+ }
4206
+ if (isPremounting || isPostmounting) {
4207
+ return;
4208
+ }
4209
+ return playAndHandleNotAllowedError({
4210
+ mediaRef,
4211
+ mediaType,
4212
+ onAutoPlayError,
4213
+ logLevel,
4214
+ mountTime,
4215
+ reason,
4216
+ isPlayer: env.isPlayer
4217
+ });
4218
+ }
4219
+ };
4220
+ audioAndVideoTags.current.push(tag);
4221
+ return () => {
4222
+ audioAndVideoTags.current = audioAndVideoTags.current.filter((a) => a.id !== id);
4223
+ };
4224
+ }, [
4225
+ audioAndVideoTags,
4226
+ id,
4227
+ mediaRef,
4228
+ mediaType,
4229
+ onAutoPlayError,
4230
+ imperativePlaying,
4231
+ isPremounting,
4232
+ isPostmounting,
4233
+ logLevel,
4234
+ mountTime,
4235
+ env.isPlayer
4236
+ ]);
4188
4237
  }, MediaVolumeContext, SetMediaVolumeContext, useMediaVolumeState = () => {
4189
- const { mediaVolume } = useContext22(MediaVolumeContext);
4190
- const { setMediaVolume } = useContext22(SetMediaVolumeContext);
4238
+ const { mediaVolume } = useContext23(MediaVolumeContext);
4239
+ const { setMediaVolume } = useContext23(SetMediaVolumeContext);
4191
4240
  return useMemo19(() => {
4192
4241
  return [mediaVolume, setMediaVolume];
4193
4242
  }, [mediaVolume, setMediaVolume]);
4194
4243
  }, useMediaMutedState = () => {
4195
- const { mediaMuted } = useContext22(MediaVolumeContext);
4196
- const { setMediaMuted } = useContext22(SetMediaVolumeContext);
4244
+ const { mediaMuted } = useContext23(MediaVolumeContext);
4245
+ const { setMediaMuted } = useContext23(SetMediaVolumeContext);
4197
4246
  return useMemo19(() => {
4198
4247
  return [mediaMuted, setMediaMuted];
4199
4248
  }, [mediaMuted, setMediaMuted]);
@@ -4241,12 +4290,12 @@ Check that all your Remotion packages are on the same version. If your dependenc
4241
4290
  const [mediaVolume] = useMediaVolumeState();
4242
4291
  const [mediaMuted] = useMediaMutedState();
4243
4292
  const volumePropFrame = useFrameForVolumeProp(loopVolumeCurveBehavior ?? "repeat");
4244
- const { hidden } = useContext23(SequenceVisibilityToggleContext);
4293
+ const { hidden } = useContext24(SequenceVisibilityToggleContext);
4245
4294
  if (!src) {
4246
- throw new TypeError("No 'src' was passed to <Audio>.");
4295
+ throw new TypeError("No 'src' was passed to <Html5Audio>.");
4247
4296
  }
4248
4297
  const preloadedSrc = usePreload(src);
4249
- const sequenceContext = useContext23(SequenceContext);
4298
+ const sequenceContext = useContext24(SequenceContext);
4250
4299
  const [timelineId] = useState14(() => String(Math.random()));
4251
4300
  const isSequenceHidden = hidden[timelineId] ?? false;
4252
4301
  const userPreferredVolume = evaluateVolume({
@@ -4285,7 +4334,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
4285
4334
  props.muted,
4286
4335
  props.loop
4287
4336
  ]);
4288
- const context = useContext23(SharedAudioContext);
4337
+ const context = useContext24(SharedAudioContext);
4289
4338
  if (!context) {
4290
4339
  throw new Error("SharedAudioContext not found");
4291
4340
  }
@@ -4297,7 +4346,6 @@ Check that all your Remotion packages are on the same version. If your dependenc
4297
4346
  useMediaInTimeline({
4298
4347
  volume,
4299
4348
  mediaVolume,
4300
- mediaRef: audioRef,
4301
4349
  src,
4302
4350
  mediaType: "audio",
4303
4351
  playbackRate: playbackRate ?? 1,
@@ -4307,9 +4355,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
4307
4355
  showInTimeline,
4308
4356
  premountDisplay: sequenceContext?.premountDisplay ?? null,
4309
4357
  postmountDisplay: sequenceContext?.postmountDisplay ?? null,
4310
- onAutoPlayError: null,
4311
- isPremounting: Boolean(sequenceContext?.premounting),
4312
- isPostmounting: Boolean(sequenceContext?.postmounting)
4358
+ loopDisplay: undefined
4313
4359
  });
4314
4360
  useMediaPlayback({
4315
4361
  mediaRef: audioRef,
@@ -4323,6 +4369,14 @@ Check that all your Remotion packages are on the same version. If your dependenc
4323
4369
  pauseWhenBuffering,
4324
4370
  onAutoPlayError: null
4325
4371
  });
4372
+ useMediaTag({
4373
+ id: timelineId,
4374
+ isPostmounting: Boolean(sequenceContext?.postmounting),
4375
+ isPremounting: Boolean(sequenceContext?.premounting),
4376
+ mediaRef: audioRef,
4377
+ mediaType: "audio",
4378
+ onAutoPlayError: null
4379
+ });
4326
4380
  useVolume({
4327
4381
  logLevel,
4328
4382
  mediaRef: audioRef,
@@ -4335,7 +4389,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
4335
4389
  }, [audioRef]);
4336
4390
  const currentOnDurationCallback = useRef11(onDuration);
4337
4391
  currentOnDurationCallback.current = onDuration;
4338
- useEffect13(() => {
4392
+ useEffect14(() => {
4339
4393
  const { current } = audioRef;
4340
4394
  if (!current) {
4341
4395
  return;
@@ -4384,8 +4438,8 @@ Check that all your Remotion packages are on the same version. If your dependenc
4384
4438
  const absoluteFrame = useTimelinePosition();
4385
4439
  const volumePropFrame = useFrameForVolumeProp(loopVolumeCurveBehavior ?? "repeat");
4386
4440
  const frame = useCurrentFrame();
4387
- const sequenceContext = useContext24(SequenceContext);
4388
- const { registerRenderAsset, unregisterRenderAsset } = useContext24(RenderAssetManager);
4441
+ const sequenceContext = useContext25(SequenceContext);
4442
+ const { registerRenderAsset, unregisterRenderAsset } = useContext25(RenderAssetManager);
4389
4443
  const { delayRender: delayRender2, continueRender: continueRender2 } = useDelayRender();
4390
4444
  const id = useMemo21(() => `audio-${random(props.src ?? "")}-${sequenceContext?.relativeFrom}-${sequenceContext?.cumulatedFrom}-${sequenceContext?.durationInFrames}`, [
4391
4445
  props.src,
@@ -4402,7 +4456,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
4402
4456
  useImperativeHandle6(ref, () => {
4403
4457
  return audioRef.current;
4404
4458
  }, []);
4405
- useEffect14(() => {
4459
+ useEffect15(() => {
4406
4460
  if (!props.src) {
4407
4461
  throw new Error("No src passed");
4408
4462
  }
@@ -4453,7 +4507,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
4453
4507
  if (!needsToRenderAudioTag) {
4454
4508
  return;
4455
4509
  }
4456
- const newHandle = delayRender2("Loading <Audio> duration with src=" + src, {
4510
+ const newHandle = delayRender2("Loading <Html5Audio> duration with src=" + src, {
4457
4511
  retries: delayRenderRetries ?? undefined,
4458
4512
  timeoutInMilliseconds: delayRenderTimeoutInMilliseconds ?? undefined
4459
4513
  });
@@ -4492,7 +4546,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
4492
4546
  onError: onNativeError
4493
4547
  });
4494
4548
  }, AudioForRendering, AudioRefForwardingFunction = (props, ref) => {
4495
- const audioContext = useContext25(SharedAudioContext);
4549
+ const audioContext = useContext26(SharedAudioContext);
4496
4550
  const {
4497
4551
  startFrom,
4498
4552
  endAt,
@@ -4508,9 +4562,9 @@ Check that all your Remotion packages are on the same version. If your dependenc
4508
4562
  const { loop, ...propsOtherThanLoop } = props;
4509
4563
  const { fps } = useVideoConfig();
4510
4564
  const environment = useRemotionEnvironment();
4511
- const { durations, setDurations } = useContext25(DurationsContext);
4565
+ const { durations, setDurations } = useContext26(DurationsContext);
4512
4566
  if (typeof props.src !== "string") {
4513
- throw new TypeError(`The \`<Audio>\` tag requires a string for \`src\`, but got ${JSON.stringify(props.src)} instead.`);
4567
+ throw new TypeError(`The \`<Html5Audio>\` tag requires a string for \`src\`, but got ${JSON.stringify(props.src)} instead.`);
4514
4568
  }
4515
4569
  const preloadedSrc = usePreload(props.src);
4516
4570
  const onError = useCallback11((e) => {
@@ -4540,7 +4594,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
4540
4594
  });
4541
4595
  if (loop && durationFetched !== undefined) {
4542
4596
  if (!Number.isFinite(durationFetched)) {
4543
- return /* @__PURE__ */ jsx19(Audio, {
4597
+ return /* @__PURE__ */ jsx19(Html5Audio, {
4544
4598
  ...propsOtherThanLoop,
4545
4599
  ref,
4546
4600
  _remotionInternalNativeLoopPassed: true
@@ -4549,13 +4603,13 @@ Check that all your Remotion packages are on the same version. If your dependenc
4549
4603
  const duration = durationFetched * fps;
4550
4604
  return /* @__PURE__ */ jsx19(Loop, {
4551
4605
  layout: "none",
4552
- durationInFrames: calculateLoopDuration({
4553
- endAt: trimAfterValue,
4554
- mediaDuration: duration,
4606
+ durationInFrames: calculateMediaDuration({
4607
+ trimAfter: trimAfterValue,
4608
+ mediaDurationInFrames: duration,
4555
4609
  playbackRate: props.playbackRate ?? 1,
4556
- startFrom: trimBeforeValue
4610
+ trimBefore: trimBeforeValue
4557
4611
  }),
4558
- children: /* @__PURE__ */ jsx19(Audio, {
4612
+ children: /* @__PURE__ */ jsx19(Html5Audio, {
4559
4613
  ...propsOtherThanLoop,
4560
4614
  ref,
4561
4615
  _remotionInternalNativeLoopPassed: true
@@ -4569,7 +4623,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
4569
4623
  showInTimeline: false,
4570
4624
  durationInFrames: trimAfterValue,
4571
4625
  name,
4572
- children: /* @__PURE__ */ jsx19(Audio, {
4626
+ children: /* @__PURE__ */ jsx19(Html5Audio, {
4573
4627
  _remotionInternalNeedsDurationCalculation: Boolean(loop),
4574
4628
  pauseWhenBuffering: pauseWhenBuffering ?? false,
4575
4629
  ...otherProps,
@@ -4577,7 +4631,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
4577
4631
  })
4578
4632
  });
4579
4633
  }
4580
- validateMediaProps({ playbackRate: props.playbackRate, volume: props.volume }, "Audio");
4634
+ validateMediaProps({ playbackRate: props.playbackRate, volume: props.volume }, "Html5Audio");
4581
4635
  if (environment.isRendering) {
4582
4636
  return /* @__PURE__ */ jsx19(AudioForRendering, {
4583
4637
  onDuration,
@@ -4599,7 +4653,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
4599
4653
  _remotionInternalNeedsDurationCalculation: Boolean(loop),
4600
4654
  showInTimeline: showInTimeline ?? true
4601
4655
  });
4602
- }, Audio, getRegex = () => /^([a-zA-Z0-9-\u4E00-\u9FFF])+$/g, invalidFolderNameErrorMessage, FolderContext, rotate, ICON_SIZE = 40, label, container3, Loading = () => {
4656
+ }, Html5Audio, getRegex = () => /^([a-zA-Z0-9-\u4E00-\u9FFF])+$/g, invalidFolderNameErrorMessage, FolderContext, rotate, ICON_SIZE = 40, label, container3, Loading = () => {
4603
4657
  return /* @__PURE__ */ jsxs22(AbsoluteFill, {
4604
4658
  style: container3,
4605
4659
  id: "remotion-comp-loading",
@@ -4706,7 +4760,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
4706
4760
  }
4707
4761
  }, Fallback = () => {
4708
4762
  const { continueRender: continueRender2, delayRender: delayRender2 } = useDelayRender();
4709
- useEffect16(() => {
4763
+ useEffect17(() => {
4710
4764
  const fallback = delayRender2("Waiting for Root component to unsuspend");
4711
4765
  return () => continueRender2(fallback);
4712
4766
  }, [continueRender2, delayRender2]);
@@ -4721,7 +4775,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
4721
4775
  schema,
4722
4776
  ...compProps
4723
4777
  }) => {
4724
- const compManager = useContext27(CompositionSetters);
4778
+ const compManager = useContext28(CompositionSetters);
4725
4779
  const { registerComposition, unregisterComposition } = compManager;
4726
4780
  const video = useVideo();
4727
4781
  const lazy = useLazyComponent({
@@ -4732,15 +4786,18 @@ Check that all your Remotion packages are on the same version. If your dependenc
4732
4786
  const nonce = useNonce();
4733
4787
  const isPlayer = useIsPlayer();
4734
4788
  const environment = useRemotionEnvironment();
4735
- const canUseComposition = useContext27(CanUseRemotionHooks);
4789
+ const canUseComposition = useContext28(CanUseRemotionHooks);
4790
+ if (typeof window !== "undefined") {
4791
+ window.remotion_seenCompositionIds = Array.from(new Set([...window.remotion_seenCompositionIds ?? [], id]));
4792
+ }
4736
4793
  if (canUseComposition) {
4737
4794
  if (isPlayer) {
4738
4795
  throw new Error("<Composition> was mounted inside the `component` that was passed to the <Player>. See https://remotion.dev/docs/wrong-composition-mount for help.");
4739
4796
  }
4740
4797
  throw new Error("<Composition> mounted inside another composition. See https://remotion.dev/docs/wrong-composition-mount for help.");
4741
4798
  }
4742
- const { folderName, parentName } = useContext27(FolderContext);
4743
- useEffect16(() => {
4799
+ const { folderName, parentName } = useContext28(FolderContext);
4800
+ useEffect17(() => {
4744
4801
  if (!id) {
4745
4802
  throw new Error("No id for composition passed.");
4746
4803
  }
@@ -4779,7 +4836,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
4779
4836
  registerComposition,
4780
4837
  unregisterComposition
4781
4838
  ]);
4782
- useEffect16(() => {
4839
+ useEffect17(() => {
4783
4840
  window.dispatchEvent(new CustomEvent(PROPS_UPDATED_EXTERNALLY, {
4784
4841
  detail: {
4785
4842
  resetUnsaved: id
@@ -4817,7 +4874,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
4817
4874
  }
4818
4875
  return null;
4819
4876
  }, Composition = (props2) => {
4820
- const { onlyRenderComposition } = useContext27(CompositionSetters);
4877
+ const { onlyRenderComposition } = useContext28(CompositionSetters);
4821
4878
  if (onlyRenderComposition && onlyRenderComposition !== props2.id) {
4822
4879
  return null;
4823
4880
  }
@@ -4868,7 +4925,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
4868
4925
  const imageRef = useRef13(null);
4869
4926
  const errors = useRef13({});
4870
4927
  const { delayPlayback } = useBufferState();
4871
- const sequenceContext = useContext28(SequenceContext);
4928
+ const sequenceContext = useContext29(SequenceContext);
4872
4929
  if (!src) {
4873
4930
  throw new Error('No "src" prop was passed to <Img>.');
4874
4931
  }
@@ -5239,7 +5296,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
5239
5296
  }
5240
5297
  };
5241
5298
  }, []);
5242
- useEffect17(() => {
5299
+ useEffect18(() => {
5243
5300
  if (typeof __webpack_module__ !== "undefined") {
5244
5301
  if (__webpack_module__.hot) {
5245
5302
  __webpack_module__.hot.addStatusHandler((status) => {
@@ -5352,9 +5409,9 @@ Check that all your Remotion packages are on the same version. If your dependenc
5352
5409
  const frame = useCurrentFrame();
5353
5410
  const volumePropsFrame = useFrameForVolumeProp(loopVolumeCurveBehavior);
5354
5411
  const videoConfig = useUnsafeVideoConfig();
5355
- const sequenceContext = useContext29(SequenceContext);
5412
+ const sequenceContext = useContext30(SequenceContext);
5356
5413
  const mediaStartsAt = useMediaStartsAt();
5357
- const { registerRenderAsset, unregisterRenderAsset } = useContext29(RenderAssetManager);
5414
+ const { registerRenderAsset, unregisterRenderAsset } = useContext30(RenderAssetManager);
5358
5415
  if (!src) {
5359
5416
  throw new TypeError("No `src` was passed to <OffthreadVideo>.");
5360
5417
  }
@@ -5373,7 +5430,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
5373
5430
  mediaVolume: 1
5374
5431
  });
5375
5432
  warnAboutTooHighVolume(volume);
5376
- useEffect18(() => {
5433
+ useEffect19(() => {
5377
5434
  if (!src) {
5378
5435
  throw new Error("No src passed");
5379
5436
  }
@@ -5533,7 +5590,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
5533
5590
  ref,
5534
5591
  onVideoFrame
5535
5592
  }) => {
5536
- useEffect19(() => {
5593
+ useEffect20(() => {
5537
5594
  const { current } = ref;
5538
5595
  if (!current) {
5539
5596
  return;
@@ -5555,7 +5612,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
5555
5612
  };
5556
5613
  }, [onVideoFrame, ref]);
5557
5614
  }, VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
5558
- const context = useContext30(SharedAudioContext);
5615
+ const context = useContext31(SharedAudioContext);
5559
5616
  if (!context) {
5560
5617
  throw new Error("SharedAudioContext not found");
5561
5618
  }
@@ -5603,8 +5660,8 @@ Check that all your Remotion packages are on the same version. If your dependenc
5603
5660
  }
5604
5661
  const volumePropFrame = useFrameForVolumeProp(loopVolumeCurveBehavior ?? "repeat");
5605
5662
  const { fps, durationInFrames } = useVideoConfig();
5606
- const parentSequence = useContext30(SequenceContext);
5607
- const { hidden } = useContext30(SequenceVisibilityToggleContext);
5663
+ const parentSequence = useContext31(SequenceContext);
5664
+ const { hidden } = useContext31(SequenceVisibilityToggleContext);
5608
5665
  const logLevel = useLogLevel();
5609
5666
  const mountTime = useMountTime();
5610
5667
  const [timelineId] = useState19(() => String(Math.random()));
@@ -5621,7 +5678,6 @@ Check that all your Remotion packages are on the same version. If your dependenc
5621
5678
  });
5622
5679
  warnAboutTooHighVolume(userPreferredVolume);
5623
5680
  useMediaInTimeline({
5624
- mediaRef: videoRef,
5625
5681
  volume,
5626
5682
  mediaVolume,
5627
5683
  mediaType: "video",
@@ -5633,9 +5689,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
5633
5689
  showInTimeline,
5634
5690
  premountDisplay: parentSequence?.premountDisplay ?? null,
5635
5691
  postmountDisplay: parentSequence?.postmountDisplay ?? null,
5636
- onAutoPlayError: onAutoPlayError ?? null,
5637
- isPremounting: Boolean(parentSequence?.premounting),
5638
- isPostmounting: Boolean(parentSequence?.postmounting)
5692
+ loopDisplay: undefined
5639
5693
  });
5640
5694
  useMediaPlayback({
5641
5695
  mediaRef: videoRef,
@@ -5649,6 +5703,14 @@ Check that all your Remotion packages are on the same version. If your dependenc
5649
5703
  pauseWhenBuffering,
5650
5704
  onAutoPlayError: onAutoPlayError ?? null
5651
5705
  });
5706
+ useMediaTag({
5707
+ id: timelineId,
5708
+ isPostmounting: Boolean(parentSequence?.postmounting),
5709
+ isPremounting: Boolean(parentSequence?.premounting),
5710
+ mediaRef: videoRef,
5711
+ mediaType: "video",
5712
+ onAutoPlayError: onAutoPlayError ?? null
5713
+ });
5652
5714
  useVolume({
5653
5715
  logLevel,
5654
5716
  mediaRef: videoRef,
@@ -5674,7 +5736,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
5674
5736
  tag: "video",
5675
5737
  mountTime
5676
5738
  }));
5677
- useEffect20(() => {
5739
+ useEffect21(() => {
5678
5740
  const { current } = videoRef;
5679
5741
  if (!current) {
5680
5742
  return;
@@ -5705,7 +5767,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
5705
5767
  const currentOnDurationCallback = useRef16(onDuration);
5706
5768
  currentOnDurationCallback.current = onDuration;
5707
5769
  useEmitVideoFrame({ ref: videoRef, onVideoFrame });
5708
- useEffect20(() => {
5770
+ useEffect21(() => {
5709
5771
  const { current } = videoRef;
5710
5772
  if (!current) {
5711
5773
  return;
@@ -5722,7 +5784,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
5722
5784
  current.removeEventListener("loadedmetadata", onLoadedMetadata);
5723
5785
  };
5724
5786
  }, [src]);
5725
- useEffect20(() => {
5787
+ useEffect21(() => {
5726
5788
  const { current } = videoRef;
5727
5789
  if (!current) {
5728
5790
  return;
@@ -6278,13 +6340,13 @@ Check that all your Remotion packages are on the same version. If your dependenc
6278
6340
  const volumePropsFrame = useFrameForVolumeProp(loopVolumeCurveBehavior ?? "repeat");
6279
6341
  const videoConfig = useUnsafeVideoConfig();
6280
6342
  const videoRef = useRef17(null);
6281
- const sequenceContext = useContext31(SequenceContext);
6343
+ const sequenceContext = useContext32(SequenceContext);
6282
6344
  const mediaStartsAt = useMediaStartsAt();
6283
6345
  const environment = useRemotionEnvironment();
6284
6346
  const logLevel = useLogLevel();
6285
6347
  const mountTime = useMountTime();
6286
6348
  const { delayRender: delayRender2, continueRender: continueRender2 } = useDelayRender();
6287
- const { registerRenderAsset, unregisterRenderAsset } = useContext31(RenderAssetManager);
6349
+ const { registerRenderAsset, unregisterRenderAsset } = useContext32(RenderAssetManager);
6288
6350
  const id = useMemo30(() => `video-${random(props2.src ?? "")}-${sequenceContext?.cumulatedFrom}-${sequenceContext?.relativeFrom}-${sequenceContext?.durationInFrames}`, [
6289
6351
  props2.src,
6290
6352
  sequenceContext?.cumulatedFrom,
@@ -6300,7 +6362,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
6300
6362
  mediaVolume: 1
6301
6363
  });
6302
6364
  warnAboutTooHighVolume(volume);
6303
- useEffect21(() => {
6365
+ useEffect222(() => {
6304
6366
  if (!props2.src) {
6305
6367
  throw new Error("No src passed");
6306
6368
  }
@@ -6343,7 +6405,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
6343
6405
  useImperativeHandle10(ref, () => {
6344
6406
  return videoRef.current;
6345
6407
  }, []);
6346
- useEffect21(() => {
6408
+ useEffect222(() => {
6347
6409
  if (!window.remotion_videoEnabled) {
6348
6410
  return;
6349
6411
  }
@@ -6357,7 +6419,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
6357
6419
  startFrom: -mediaStartsAt,
6358
6420
  fps: videoConfig.fps
6359
6421
  });
6360
- const handle = delayRender2(`Rendering <Video /> with src="${props2.src}" at time ${currentTime}`, {
6422
+ const handle = delayRender2(`Rendering <Html5Video /> with src="${props2.src}" at time ${currentTime}`, {
6361
6423
  retries: delayRenderRetries ?? undefined,
6362
6424
  timeoutInMilliseconds: delayRenderTimeoutInMilliseconds ?? undefined
6363
6425
  });
@@ -6431,7 +6493,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
6431
6493
  if (window.process?.env?.NODE_ENV === "test") {
6432
6494
  return;
6433
6495
  }
6434
- const newHandle = delayRender2("Loading <Video> duration with src=" + src, {
6496
+ const newHandle = delayRender2("Loading <Html5Video> duration with src=" + src, {
6435
6497
  retries: delayRenderRetries ?? undefined,
6436
6498
  timeoutInMilliseconds: delayRenderTimeoutInMilliseconds ?? undefined
6437
6499
  });
@@ -6483,12 +6545,12 @@ Check that all your Remotion packages are on the same version. If your dependenc
6483
6545
  const { loop, ...propsOtherThanLoop } = props2;
6484
6546
  const { fps } = useVideoConfig();
6485
6547
  const environment = useRemotionEnvironment();
6486
- const { durations, setDurations } = useContext32(DurationsContext);
6548
+ const { durations, setDurations } = useContext33(DurationsContext);
6487
6549
  if (typeof ref === "string") {
6488
6550
  throw new Error("string refs are not supported");
6489
6551
  }
6490
6552
  if (typeof props2.src !== "string") {
6491
- throw new TypeError(`The \`<Video>\` tag requires a string for \`src\`, but got ${JSON.stringify(props2.src)} instead.`);
6553
+ throw new TypeError(`The \`<Html5Video>\` tag requires a string for \`src\`, but got ${JSON.stringify(props2.src)} instead.`);
6492
6554
  }
6493
6555
  const preloadedSrc = usePreload(props2.src);
6494
6556
  const onDuration = useCallback17((src, durationInSeconds) => {
@@ -6505,7 +6567,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
6505
6567
  });
6506
6568
  if (loop && durationFetched !== undefined) {
6507
6569
  if (!Number.isFinite(durationFetched)) {
6508
- return /* @__PURE__ */ jsx34(Video, {
6570
+ return /* @__PURE__ */ jsx34(Html5Video, {
6509
6571
  ...propsOtherThanLoop,
6510
6572
  ref,
6511
6573
  _remotionInternalNativeLoopPassed: true
@@ -6513,15 +6575,15 @@ Check that all your Remotion packages are on the same version. If your dependenc
6513
6575
  }
6514
6576
  const mediaDuration = durationFetched * fps;
6515
6577
  return /* @__PURE__ */ jsx34(Loop, {
6516
- durationInFrames: calculateLoopDuration({
6517
- endAt: trimAfterValue,
6518
- mediaDuration,
6578
+ durationInFrames: calculateMediaDuration({
6579
+ trimAfter: trimAfterValue,
6580
+ mediaDurationInFrames: mediaDuration,
6519
6581
  playbackRate: props2.playbackRate ?? 1,
6520
- startFrom: trimBeforeValue
6582
+ trimBefore: trimBeforeValue
6521
6583
  }),
6522
6584
  layout: "none",
6523
6585
  name,
6524
- children: /* @__PURE__ */ jsx34(Video, {
6586
+ children: /* @__PURE__ */ jsx34(Html5Video, {
6525
6587
  ...propsOtherThanLoop,
6526
6588
  ref,
6527
6589
  _remotionInternalNativeLoopPassed: true
@@ -6535,14 +6597,14 @@ Check that all your Remotion packages are on the same version. If your dependenc
6535
6597
  showInTimeline: false,
6536
6598
  durationInFrames: trimAfterValue,
6537
6599
  name,
6538
- children: /* @__PURE__ */ jsx34(Video, {
6600
+ children: /* @__PURE__ */ jsx34(Html5Video, {
6539
6601
  pauseWhenBuffering: pauseWhenBuffering ?? false,
6540
6602
  ...otherProps,
6541
6603
  ref
6542
6604
  })
6543
6605
  });
6544
6606
  }
6545
- validateMediaProps({ playbackRate: props2.playbackRate, volume: props2.volume }, "Video");
6607
+ validateMediaProps({ playbackRate: props2.playbackRate, volume: props2.volume }, "Html5Video");
6546
6608
  if (environment.isRendering) {
6547
6609
  return /* @__PURE__ */ jsx34(VideoForRendering, {
6548
6610
  onDuration,
@@ -6563,7 +6625,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
6563
6625
  showInTimeline: showInTimeline ?? true,
6564
6626
  onAutoPlayError: onAutoPlayError ?? undefined
6565
6627
  });
6566
- }, Video, proxyObj, Config;
6628
+ }, Html5Video, proxyObj, Config;
6567
6629
  var init_esm = __esm(() => {
6568
6630
  __defProp2 = Object.defineProperty;
6569
6631
  if (typeof createContext !== "function") {
@@ -6866,8 +6928,8 @@ var init_esm = __esm(() => {
6866
6928
  });
6867
6929
  AudioForPreview = forwardRef4(AudioForDevelopmentForwardRefFunction);
6868
6930
  AudioForRendering = forwardRef5(AudioForRenderingRefForwardingFunction);
6869
- Audio = forwardRef6(AudioRefForwardingFunction);
6870
- addSequenceStackTraces(Audio);
6931
+ Html5Audio = forwardRef6(AudioRefForwardingFunction);
6932
+ addSequenceStackTraces(Html5Audio);
6871
6933
  invalidFolderNameErrorMessage = `Folder name must match ${String(getRegex())}`;
6872
6934
  FolderContext = createContext17({
6873
6935
  folderName: null,
@@ -6928,6 +6990,7 @@ var init_esm = __esm(() => {
6928
6990
  getRoot,
6929
6991
  useMediaVolumeState,
6930
6992
  useMediaMutedState,
6993
+ useMediaInTimeline,
6931
6994
  useLazyComponent,
6932
6995
  truthy,
6933
6996
  SequenceContext,
@@ -6941,6 +7004,7 @@ var init_esm = __esm(() => {
6941
7004
  SharedAudioContext,
6942
7005
  SharedAudioContextProvider,
6943
7006
  invalidCompositionErrorMessage,
7007
+ calculateMediaDuration,
6944
7008
  isCompositionIdValid,
6945
7009
  getPreviewDomElement,
6946
7010
  compositionsRef,
@@ -6988,7 +7052,8 @@ var init_esm = __esm(() => {
6988
7052
  warnAboutTooHighVolume,
6989
7053
  AudioForPreview,
6990
7054
  OBJECTFIT_CONTAIN_CLASS_NAME,
6991
- InnerOffthreadVideo
7055
+ InnerOffthreadVideo,
7056
+ useBasicMediaInTimeline
6992
7057
  };
6993
7058
  PERCENTAGE = NUMBER + "%";
6994
7059
  IsInsideSeriesContext = createContext19(false);
@@ -7025,8 +7090,8 @@ var init_esm = __esm(() => {
7025
7090
  };
7026
7091
  didWarn2 = {};
7027
7092
  VideoForRendering = forwardRef11(VideoForRenderingForwardFunction);
7028
- Video = forwardRef12(VideoForwardingFunction);
7029
- addSequenceStackTraces(Video);
7093
+ Html5Video = forwardRef12(VideoForwardingFunction);
7094
+ addSequenceStackTraces(Html5Video);
7030
7095
  checkMultipleRemotionVersions();
7031
7096
  proxyObj = {};
7032
7097
  Config = new Proxy(proxyObj, {
@@ -7230,7 +7295,7 @@ var init_esm2 = __esm(() => {
7230
7295
  // src/components/homepage/FreePricing.tsx
7231
7296
  import React2, { useCallback, useMemo } from "react";
7232
7297
 
7233
- // ../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
7298
+ // ../../node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
7234
7299
  function r(e) {
7235
7300
  var t, f, n = "";
7236
7301
  if (typeof e == "string" || typeof e == "number")
@@ -7251,7 +7316,7 @@ function clsx() {
7251
7316
  return n;
7252
7317
  }
7253
7318
 
7254
- // ../../node_modules/.pnpm/tailwind-merge@2.5.2/node_modules/tailwind-merge/dist/bundle-mjs.mjs
7319
+ // ../../node_modules/.bun/tailwind-merge@2.5.2/node_modules/tailwind-merge/dist/bundle-mjs.mjs
7255
7320
  var CLASS_PART_SEPARATOR = "-";
7256
7321
  var createClassGroupUtils = (config) => {
7257
7322
  const classMap = createClassMap(config);
@@ -8742,7 +8807,7 @@ var PricingBulletPoint = ({ text, checked, children }) => {
8742
8807
  style: greyCircle
8743
8808
  }),
8744
8809
  /* @__PURE__ */ jsxs3("div", {
8745
- className: "fontbrand text-lg ",
8810
+ className: "fontbrand text-lg\t",
8746
8811
  children: [
8747
8812
  text,
8748
8813
  children
@@ -8907,7 +8972,6 @@ var EnterpriseLicense = () => {
8907
8972
  };
8908
8973
  var SEAT_PRICE = 25;
8909
8974
  var RENDER_UNIT_PRICE = 10;
8910
- var WEBCODECS_UNIT_PRICE = 10;
8911
8975
  var icon = {
8912
8976
  height: 16,
8913
8977
  marginLeft: 4
@@ -8915,7 +8979,6 @@ var icon = {
8915
8979
  var CompanyPricing = () => {
8916
8980
  const [devSeatCount, setDevSeatCount] = React2.useState(1);
8917
8981
  const [cloudRenders, setCloudRenders] = React2.useState(1000);
8918
- const [creations, setCreations] = React2.useState(1000);
8919
8982
  const formatPrice = useCallback((price) => {
8920
8983
  const formatter = new Intl.NumberFormat("en-US", {
8921
8984
  style: "currency",
@@ -8925,8 +8988,8 @@ var CompanyPricing = () => {
8925
8988
  return formatter.format(price);
8926
8989
  }, []);
8927
8990
  const totalPrice = useMemo(() => {
8928
- return Math.max(100, devSeatCount * SEAT_PRICE + cloudRenders / 1000 * RENDER_UNIT_PRICE + creations / 1000 * WEBCODECS_UNIT_PRICE);
8929
- }, [cloudRenders, devSeatCount, creations]);
8991
+ return Math.max(100, devSeatCount * SEAT_PRICE + cloudRenders / 1000 * RENDER_UNIT_PRICE);
8992
+ }, [cloudRenders, devSeatCount]);
8930
8993
  const totalPriceString = useMemo(() => {
8931
8994
  return formatPrice(totalPrice);
8932
8995
  }, [formatPrice, totalPrice]);
@@ -9011,12 +9074,12 @@ var CompanyPricing = () => {
9011
9074
  children: [
9012
9075
  /* @__PURE__ */ jsx4("div", {
9013
9076
  className: "fontbrand font-bold text-lg",
9014
- children: "Server renders"
9077
+ children: "Video renders"
9015
9078
  }),
9016
9079
  /* @__PURE__ */ jsx4("div", {
9017
9080
  className: "text-muted fontbrand text-sm",
9018
9081
  children: /* @__PURE__ */ jsx4("a", {
9019
- href: "https://www.remotion.dev/docs/compare-ssr",
9082
+ href: "https://www.remotion.dev/docs/render",
9020
9083
  className: "underline underline-offset-4 text-inherit",
9021
9084
  children: "Renders per month (self-hosted)"
9022
9085
  })
@@ -9051,54 +9114,6 @@ var CompanyPricing = () => {
9051
9114
  /* @__PURE__ */ jsx4("div", {
9052
9115
  style: { height: 14 }
9053
9116
  }),
9054
- /* @__PURE__ */ jsxs4("div", {
9055
- className: "flex flex-col md:flex-row md:items-center",
9056
- children: [
9057
- /* @__PURE__ */ jsxs4("div", {
9058
- style: textUnitWrapper,
9059
- children: [
9060
- /* @__PURE__ */ jsx4("div", {
9061
- className: "fontbrand font-bold text-lg",
9062
- children: "WebCodecs video creations"
9063
- }),
9064
- /* @__PURE__ */ jsx4("div", {
9065
- className: "text-muted fontbrand text-sm",
9066
- children: /* @__PURE__ */ jsx4("a", {
9067
- className: "underline underline-offset-4 text-inherit",
9068
- href: "https://remotion.dev/webcodecs",
9069
- children: "Client-side video creations per month"
9070
- })
9071
- })
9072
- ]
9073
- }),
9074
- /* @__PURE__ */ jsx4("div", {
9075
- style: { flex: 3 },
9076
- className: "hidden md:block"
9077
- }),
9078
- /* @__PURE__ */ jsxs4("div", {
9079
- className: "flex flex-row items-center justify-between mt-3 md:mt-0",
9080
- children: [
9081
- /* @__PURE__ */ jsx4(Counter, {
9082
- count: creations,
9083
- setCount: setCreations,
9084
- minCount: 0,
9085
- step: 1000
9086
- }),
9087
- /* @__PURE__ */ jsxs4(SmallPriceTag, {
9088
- children: [
9089
- "$",
9090
- new Intl.NumberFormat("en-US", {
9091
- maximumFractionDigits: 0
9092
- }).format(creations / 1000 * WEBCODECS_UNIT_PRICE)
9093
- ]
9094
- })
9095
- ]
9096
- })
9097
- ]
9098
- }),
9099
- /* @__PURE__ */ jsx4("div", {
9100
- style: { height: 20 }
9101
- }),
9102
9117
  /* @__PURE__ */ jsx4("div", {
9103
9118
  className: "flex flex-row justify-end",
9104
9119
  children: /* @__PURE__ */ jsxs4("div", {
@@ -12186,13 +12201,13 @@ import { jsx as jsx35, jsxs as jsxs10 } from "react/jsx-runtime";
12186
12201
  import { jsx as jsx210, jsxs as jsxs23, Fragment } from "react/jsx-runtime";
12187
12202
  import React6 from "react";
12188
12203
  import { useContext as useContext210, useEffect as useEffect23, useState as useState20 } from "react";
12189
- import { useContext as useContext33, useEffect as useEffect24 } from "react";
12204
+ import { useContext as useContext34, useEffect as useEffect24 } from "react";
12190
12205
  import { jsx as jsx36 } from "react/jsx-runtime";
12191
12206
  import { useCallback as useCallback18, useRef as useRef18 } from "react";
12192
12207
  import { useEffect as useEffect32, useState as useState23 } from "react";
12193
12208
  import { useContext as useContext42, useEffect as useEffect62, useRef as useRef42 } from "react";
12194
12209
  import { useEffect as useEffect42 } from "react";
12195
- import { useCallback as useCallback23, useContext as useContext34, useMemo as useMemo31, useRef as useRef22, useState as useState32 } from "react";
12210
+ import { useCallback as useCallback23, useContext as useContext35, useMemo as useMemo31, useRef as useRef22, useState as useState32 } from "react";
12196
12211
  import { useEffect as useEffect52, useRef as useRef32 } from "react";
12197
12212
  import { useCallback as useCallback32, useEffect as useEffect72, useMemo as useMemo210, useState as useState42 } from "react";
12198
12213
  import {
@@ -13319,7 +13334,7 @@ class ThumbnailEmitter {
13319
13334
  };
13320
13335
  }
13321
13336
  var useBufferStateEmitter = (emitter) => {
13322
- const bufferManager = useContext33(Internals.BufferingContextReact);
13337
+ const bufferManager = useContext34(Internals.BufferingContextReact);
13323
13338
  if (!bufferManager) {
13324
13339
  throw new Error("BufferingContextReact not found");
13325
13340
  }
@@ -13402,20 +13417,20 @@ var usePlayer = () => {
13402
13417
  const playStart = useRef22(frame);
13403
13418
  const setFrame = Internals.Timeline.useTimelineSetFrame();
13404
13419
  const setTimelinePosition = Internals.Timeline.useTimelineSetFrame();
13405
- const audioContext = useContext34(Internals.SharedAudioContext);
13406
- const { audioAndVideoTags } = useContext34(Internals.Timeline.TimelineContext);
13420
+ const audioContext = useContext35(Internals.SharedAudioContext);
13421
+ const { audioAndVideoTags } = useContext35(Internals.Timeline.TimelineContext);
13407
13422
  const frameRef = useRef22(frame);
13408
13423
  frameRef.current = frame;
13409
13424
  const video = Internals.useVideo();
13410
13425
  const config = Internals.useUnsafeVideoConfig();
13411
- const emitter = useContext34(PlayerEventEmitterContext);
13426
+ const emitter = useContext35(PlayerEventEmitterContext);
13412
13427
  const lastFrame = (config?.durationInFrames ?? 1) - 1;
13413
13428
  const isLastFrame = frame === lastFrame;
13414
13429
  const isFirstFrame = frame === 0;
13415
13430
  if (!emitter) {
13416
13431
  throw new TypeError("Expected Player event emitter context");
13417
13432
  }
13418
- const bufferingContext = useContext34(Internals.BufferingContextReact);
13433
+ const bufferingContext = useContext35(Internals.BufferingContextReact);
13419
13434
  if (!bufferingContext) {
13420
13435
  throw new Error("Missing the buffering context. Most likely you have a Remotion version mismatch.");
13421
13436
  }
@@ -16245,7 +16260,7 @@ import {
16245
16260
  useState as useState33
16246
16261
  } from "react";
16247
16262
 
16248
- // ../../node_modules/.pnpm/@babel+runtime@7.27.1/node_modules/@babel/runtime/helpers/esm/extends.js
16263
+ // ../../node_modules/.bun/@babel+runtime@7.27.1/node_modules/@babel/runtime/helpers/esm/extends.js
16249
16264
  function _extends() {
16250
16265
  return _extends = Object.assign ? Object.assign.bind() : function(n) {
16251
16266
  for (var e = 1;e < arguments.length; e++) {
@@ -16257,33 +16272,33 @@ function _extends() {
16257
16272
  }, _extends.apply(null, arguments);
16258
16273
  }
16259
16274
 
16260
- // ../../node_modules/.pnpm/@babel+runtime@7.27.1/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
16275
+ // ../../node_modules/.bun/@babel+runtime@7.27.1/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
16261
16276
  function _assertThisInitialized(e) {
16262
16277
  if (e === undefined)
16263
16278
  throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
16264
16279
  return e;
16265
16280
  }
16266
16281
 
16267
- // ../../node_modules/.pnpm/@babel+runtime@7.27.1/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js
16282
+ // ../../node_modules/.bun/@babel+runtime@7.27.1/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js
16268
16283
  function _setPrototypeOf(t, e) {
16269
16284
  return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(t2, e2) {
16270
16285
  return t2.__proto__ = e2, t2;
16271
16286
  }, _setPrototypeOf(t, e);
16272
16287
  }
16273
16288
 
16274
- // ../../node_modules/.pnpm/@babel+runtime@7.27.1/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js
16289
+ // ../../node_modules/.bun/@babel+runtime@7.27.1/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js
16275
16290
  function _inheritsLoose(t, o) {
16276
16291
  t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o);
16277
16292
  }
16278
16293
 
16279
- // ../../node_modules/.pnpm/@babel+runtime@7.27.1/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
16294
+ // ../../node_modules/.bun/@babel+runtime@7.27.1/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
16280
16295
  function _getPrototypeOf(t) {
16281
16296
  return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(t2) {
16282
16297
  return t2.__proto__ || Object.getPrototypeOf(t2);
16283
16298
  }, _getPrototypeOf(t);
16284
16299
  }
16285
16300
 
16286
- // ../../node_modules/.pnpm/@babel+runtime@7.27.1/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js
16301
+ // ../../node_modules/.bun/@babel+runtime@7.27.1/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js
16287
16302
  function _isNativeFunction(t) {
16288
16303
  try {
16289
16304
  return Function.toString.call(t).indexOf("[native code]") !== -1;
@@ -16292,7 +16307,7 @@ function _isNativeFunction(t) {
16292
16307
  }
16293
16308
  }
16294
16309
 
16295
- // ../../node_modules/.pnpm/@babel+runtime@7.27.1/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js
16310
+ // ../../node_modules/.bun/@babel+runtime@7.27.1/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js
16296
16311
  function _isNativeReflectConstruct() {
16297
16312
  try {
16298
16313
  var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
@@ -16302,7 +16317,7 @@ function _isNativeReflectConstruct() {
16302
16317
  })();
16303
16318
  }
16304
16319
 
16305
- // ../../node_modules/.pnpm/@babel+runtime@7.27.1/node_modules/@babel/runtime/helpers/esm/construct.js
16320
+ // ../../node_modules/.bun/@babel+runtime@7.27.1/node_modules/@babel/runtime/helpers/esm/construct.js
16306
16321
  function _construct(t, e, r2) {
16307
16322
  if (_isNativeReflectConstruct())
16308
16323
  return Reflect.construct.apply(null, arguments);
@@ -16312,7 +16327,7 @@ function _construct(t, e, r2) {
16312
16327
  return r2 && _setPrototypeOf(p, r2.prototype), p;
16313
16328
  }
16314
16329
 
16315
- // ../../node_modules/.pnpm/@babel+runtime@7.27.1/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js
16330
+ // ../../node_modules/.bun/@babel+runtime@7.27.1/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js
16316
16331
  function _wrapNativeSuper(t) {
16317
16332
  var r2 = typeof Map == "function" ? new Map : undefined;
16318
16333
  return _wrapNativeSuper = function _wrapNativeSuper(t2) {
@@ -16339,7 +16354,7 @@ function _wrapNativeSuper(t) {
16339
16354
  }, _wrapNativeSuper(t);
16340
16355
  }
16341
16356
 
16342
- // ../../node_modules/.pnpm/polished@4.3.1/node_modules/polished/dist/polished.esm.js
16357
+ // ../../node_modules/.bun/polished@4.3.1/node_modules/polished/dist/polished.esm.js
16343
16358
  var PolishedError = /* @__PURE__ */ function(_Error) {
16344
16359
  _inheritsLoose(PolishedError2, _Error);
16345
16360
  function PolishedError2(code) {
@@ -16991,7 +17006,7 @@ var UNDERLAY_RED = curriedTransparentize$1(0.9, RED);
16991
17006
  var BLUE_TEXT = curriedDarken$1(0.3, "#42e9f5");
16992
17007
 
16993
17008
  // src/components/homepage/layout/use-color-mode.tsx
16994
- import React11, { useContext as useContext35, useMemo as useMemo33 } from "react";
17009
+ import React11, { useContext as useContext36, useMemo as useMemo33 } from "react";
16995
17010
  import { jsx as jsx37 } from "react/jsx-runtime";
16996
17011
  var Context = React11.createContext(undefined);
16997
17012
  var ColorModeProvider = ({
@@ -17008,7 +17023,7 @@ var ColorModeProvider = ({
17008
17023
  });
17009
17024
  };
17010
17025
  function useColorMode() {
17011
- const context = useContext35(Context);
17026
+ const context = useContext36(Context);
17012
17027
  if (context === null || context === undefined) {
17013
17028
  throw new Error("ColorModeProvider");
17014
17029
  }
@@ -18114,7 +18129,7 @@ var HomepageVideoComp = ({
18114
18129
  onRight: onClickRight,
18115
18130
  emojiName: emoji
18116
18131
  }, rerenders),
18117
- audioSrc ? /* @__PURE__ */ jsx56(Audio, {
18132
+ audioSrc ? /* @__PURE__ */ jsx56(Html5Audio, {
18118
18133
  src: audioSrc
18119
18134
  }) : null
18120
18135
  ]
@@ -20393,54 +20408,6 @@ var TrustedByBanner = () => {
20393
20408
  ]
20394
20409
  })
20395
20410
  },
20396
- {
20397
- id: "logo4",
20398
- url: "https://www.vicemediagroup.com/",
20399
- light: /* @__PURE__ */ jsxs43("svg", {
20400
- height: "20",
20401
- viewBox: "0 0 190 20",
20402
- fill: "none",
20403
- xmlns: "http://www.w3.org/2000/svg",
20404
- children: [
20405
- /* @__PURE__ */ jsx101("path", {
20406
- 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",
20407
- fill: "var(--text-color)"
20408
- }),
20409
- /* @__PURE__ */ jsx101("path", {
20410
- 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",
20411
- fill: "var(--text-color)"
20412
- }),
20413
- /* @__PURE__ */ jsx101("path", {
20414
- 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",
20415
- fill: "var(--text-color)"
20416
- }),
20417
- /* @__PURE__ */ jsx101("path", {
20418
- 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",
20419
- fill: "var(--text-color)"
20420
- }),
20421
- /* @__PURE__ */ jsx101("path", {
20422
- 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",
20423
- fill: "var(--text-color)"
20424
- }),
20425
- /* @__PURE__ */ jsx101("path", {
20426
- 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",
20427
- fill: "var(--text-color)"
20428
- }),
20429
- /* @__PURE__ */ jsx101("path", {
20430
- 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",
20431
- fill: "var(--text-color)"
20432
- }),
20433
- /* @__PURE__ */ jsx101("path", {
20434
- 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",
20435
- fill: "var(--text-color)"
20436
- }),
20437
- /* @__PURE__ */ jsx101("path", {
20438
- 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",
20439
- fill: "var(--text-color)"
20440
- })
20441
- ]
20442
- })
20443
- },
20444
20411
  {
20445
20412
  id: "logo5",
20446
20413
  url: "https://www.soundcloud.com/",