@remotion/studio 4.0.447 → 4.0.448

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.
@@ -10,7 +10,7 @@ import { Internals as Internals70 } from "remotion";
10
10
 
11
11
  // src/components/Editor.tsx
12
12
  import { PlayerInternals as PlayerInternals19 } from "@remotion/player";
13
- import React187, { useCallback as useCallback149, useMemo as useMemo150, useState as useState98 } from "react";
13
+ import React187, { useCallback as useCallback149, useMemo as useMemo151, useState as useState98 } from "react";
14
14
  import { Internals as Internals65 } from "remotion";
15
15
 
16
16
  // src/helpers/colors.ts
@@ -3112,6 +3112,7 @@ var SidebarRenderButton = ({ composition, visible }) => {
3112
3112
  renderTypeOfLastRender: null,
3113
3113
  defaulMetadata: defaults.metadata,
3114
3114
  initialHardwareAcceleration: defaults.hardwareAcceleration,
3115
+ initialSampleRate: defaults.sampleRate,
3115
3116
  initialChromeMode: defaults.chromeMode,
3116
3117
  initialMediaCacheSizeInBytes: defaults.mediaCacheSizeInBytes,
3117
3118
  renderDefaults: defaults,
@@ -3935,7 +3936,8 @@ var addVideoRenderJob = ({
3935
3936
  metadata,
3936
3937
  hardwareAcceleration,
3937
3938
  chromeMode,
3938
- mediaCacheSizeInBytes
3939
+ mediaCacheSizeInBytes,
3940
+ sampleRate
3939
3941
  }) => {
3940
3942
  return callApi("/api/render", {
3941
3943
  compositionId,
@@ -3982,7 +3984,8 @@ var addVideoRenderJob = ({
3982
3984
  metadata,
3983
3985
  hardwareAcceleration,
3984
3986
  chromeMode,
3985
- mediaCacheSizeInBytes
3987
+ mediaCacheSizeInBytes,
3988
+ sampleRate
3986
3989
  });
3987
3990
  };
3988
3991
  var unsubscribeFromFileExistenceWatcher = ({
@@ -16905,6 +16908,7 @@ var makeRetryPayload = (job) => {
16905
16908
  defaulMetadata: job.metadata,
16906
16909
  renderTypeOfLastRender: "still",
16907
16910
  initialHardwareAcceleration: defaults.hardwareAcceleration,
16911
+ initialSampleRate: defaults.sampleRate,
16908
16912
  initialChromeMode: job.chromeMode,
16909
16913
  initialMediaCacheSizeInBytes: job.mediaCacheSizeInBytes,
16910
16914
  renderDefaults: defaults,
@@ -16958,6 +16962,7 @@ var makeRetryPayload = (job) => {
16958
16962
  defaulMetadata: job.metadata,
16959
16963
  renderTypeOfLastRender: "sequence",
16960
16964
  initialHardwareAcceleration: defaults.hardwareAcceleration,
16965
+ initialSampleRate: defaults.sampleRate,
16961
16966
  initialChromeMode: job.chromeMode,
16962
16967
  initialMediaCacheSizeInBytes: job.mediaCacheSizeInBytes,
16963
16968
  renderDefaults: defaults,
@@ -17011,6 +17016,7 @@ var makeRetryPayload = (job) => {
17011
17016
  defaulMetadata: job.metadata,
17012
17017
  renderTypeOfLastRender: "video",
17013
17018
  initialHardwareAcceleration: job.hardwareAcceleration,
17019
+ initialSampleRate: job.sampleRate,
17014
17020
  initialChromeMode: job.chromeMode,
17015
17021
  initialMediaCacheSizeInBytes: job.mediaCacheSizeInBytes,
17016
17022
  renderDefaults: defaults,
@@ -18866,6 +18872,7 @@ var RenderButton = ({
18866
18872
  renderTypeOfLastRender: null,
18867
18873
  defaulMetadata: defaults.metadata,
18868
18874
  initialHardwareAcceleration: defaults.hardwareAcceleration,
18875
+ initialSampleRate: defaults.sampleRate,
18869
18876
  initialChromeMode: defaults.chromeMode,
18870
18877
  initialMediaCacheSizeInBytes: defaults.mediaCacheSizeInBytes,
18871
18878
  renderDefaults: defaults
@@ -27825,7 +27832,7 @@ import {
27825
27832
  useCallback as useCallback141,
27826
27833
  useContext as useContext94,
27827
27834
  useEffect as useEffect83,
27828
- useMemo as useMemo142,
27835
+ useMemo as useMemo143,
27829
27836
  useReducer as useReducer2,
27830
27837
  useRef as useRef49,
27831
27838
  useState as useState91
@@ -27975,6 +27982,7 @@ var makeReadOnlyStudioRenderCommand = ({
27975
27982
  beepOnFinish,
27976
27983
  repro,
27977
27984
  metadata,
27985
+ sampleRate,
27978
27986
  envVariables,
27979
27987
  inputProps
27980
27988
  }) => {
@@ -28062,6 +28070,9 @@ var makeReadOnlyStudioRenderCommand = ({
28062
28070
  if (audioCodec !== defaultAudioCodec) {
28063
28071
  addFlagWithValue(flags, getRenderMediaFlag("audioCodec"), audioCodec);
28064
28072
  }
28073
+ addValueFlagsIfChanged(flags, [
28074
+ renderMediaValueFlag("sampleRate", sampleRate, renderDefaults.sampleRate)
28075
+ ]);
28065
28076
  }
28066
28077
  addTrueBooleanFlagsIfChanged(flags, [
28067
28078
  renderMediaBooleanFlag("disallowParallelEncoding", disallowParallelEncoding, false),
@@ -29734,7 +29745,7 @@ var RenderModalAdvanced = ({
29734
29745
 
29735
29746
  // src/components/RenderModal/RenderModalAudio.tsx
29736
29747
  import { BrowserSafeApis as BrowserSafeApis8 } from "@remotion/renderer/client";
29737
- import { useCallback as useCallback134 } from "react";
29748
+ import { useCallback as useCallback134, useMemo as useMemo138 } from "react";
29738
29749
 
29739
29750
  // src/components/RenderModal/EnforceAudioTrackSetting.tsx
29740
29751
  import { useCallback as useCallback131 } from "react";
@@ -30029,6 +30040,7 @@ var container55 = {
30029
30040
  flex: 1,
30030
30041
  overflowY: "auto"
30031
30042
  };
30043
+ var commonSampleRates = [8000, 16000, 22050, 44100, 48000, 96000];
30032
30044
  var RenderModalAudio = ({
30033
30045
  muted,
30034
30046
  setMuted,
@@ -30046,7 +30058,9 @@ var RenderModalAudio = ({
30046
30058
  setForSeamlessAacConcatenation,
30047
30059
  separateAudioTo,
30048
30060
  setSeparateAudioTo,
30049
- outName
30061
+ outName,
30062
+ sampleRate,
30063
+ setSampleRate
30050
30064
  }) => {
30051
30065
  const onShouldHaveTargetAudioBitrateChanged = useCallback134((e) => {
30052
30066
  setShouldHaveCustomTargetAudioBitrate(e.target.checked);
@@ -30057,6 +30071,20 @@ var RenderModalAudio = ({
30057
30071
  const onSeamlessAacConcatenationChanges = useCallback134((e) => {
30058
30072
  setForSeamlessAacConcatenation(e.target.checked);
30059
30073
  }, [setForSeamlessAacConcatenation]);
30074
+ const sampleRateOptions = useMemo138(() => {
30075
+ return commonSampleRates.map((rate) => ({
30076
+ label: rate === 48000 ? `${rate} Hz (default)` : `${rate} Hz`,
30077
+ onClick: () => setSampleRate(rate),
30078
+ key: String(rate),
30079
+ leftItem: sampleRate === rate ? /* @__PURE__ */ jsx263(Checkmark, {}) : null,
30080
+ id: String(rate),
30081
+ keyHint: null,
30082
+ quickSwitcherLabel: null,
30083
+ subMenu: null,
30084
+ type: "item",
30085
+ value: String(rate)
30086
+ }));
30087
+ }, [sampleRate, setSampleRate]);
30060
30088
  const audioCodecOptions = useCallback134((currentCodec) => {
30061
30089
  return BrowserSafeApis8.supportedAudioCodecs[currentCodec].map((audioCodecOption) => {
30062
30090
  return {
@@ -30197,6 +30225,31 @@ var RenderModalAudio = ({
30197
30225
  })
30198
30226
  })
30199
30227
  ]
30228
+ }) : null,
30229
+ renderMode !== "still" && !muted ? /* @__PURE__ */ jsxs135("div", {
30230
+ style: optionRow,
30231
+ children: [
30232
+ /* @__PURE__ */ jsxs135("div", {
30233
+ style: label5,
30234
+ children: [
30235
+ "Sample Rate ",
30236
+ /* @__PURE__ */ jsx263(Spacing, {
30237
+ x: 0.5
30238
+ }),
30239
+ /* @__PURE__ */ jsx263(OptionExplainerBubble, {
30240
+ id: "sampleRateOption"
30241
+ })
30242
+ ]
30243
+ }),
30244
+ /* @__PURE__ */ jsx263("div", {
30245
+ style: rightRow,
30246
+ children: /* @__PURE__ */ jsx263(Combobox, {
30247
+ values: sampleRateOptions,
30248
+ selectedId: String(sampleRate),
30249
+ title: "Sample Rate"
30250
+ })
30251
+ })
30252
+ ]
30200
30253
  }) : null
30201
30254
  ]
30202
30255
  });
@@ -30205,7 +30258,7 @@ var RenderModalAudio = ({
30205
30258
  // src/components/RenderModal/RenderModalBasic.tsx
30206
30259
  import { BrowserSafeApis as BrowserSafeApis9 } from "@remotion/renderer/client";
30207
30260
  import { NoReactAPIs as NoReactAPIs2 } from "@remotion/renderer/pure";
30208
- import { useCallback as useCallback137, useMemo as useMemo139 } from "react";
30261
+ import { useCallback as useCallback137, useMemo as useMemo140 } from "react";
30209
30262
 
30210
30263
  // src/helpers/prores-labels.ts
30211
30264
  var labelProResProfile = (profile) => {
@@ -30234,7 +30287,7 @@ var labelProResProfile = (profile) => {
30234
30287
  import { useCallback as useCallback136 } from "react";
30235
30288
 
30236
30289
  // src/components/RenderModal/MultiRangeSlider.tsx
30237
- import { useCallback as useCallback135, useMemo as useMemo138 } from "react";
30290
+ import { useCallback as useCallback135, useMemo as useMemo139 } from "react";
30238
30291
  import { jsx as jsx264, jsxs as jsxs136 } from "react/jsx-runtime";
30239
30292
  var container56 = {
30240
30293
  borderColor: "black",
@@ -30264,7 +30317,7 @@ var MultiRangeSlider = ({
30264
30317
  onRightThumbDrag
30265
30318
  }) => {
30266
30319
  const getPercent = useCallback135((value) => Math.round((value - min) / (max - min) * 100), [min, max]);
30267
- const rangeStyle = useMemo138(() => {
30320
+ const rangeStyle = useMemo139(() => {
30268
30321
  const minPercent = getPercent(start);
30269
30322
  const maxPercent = getPercent(end);
30270
30323
  return {
@@ -30471,7 +30524,7 @@ var RenderModalBasic = ({
30471
30524
  showOutputName
30472
30525
  }) => {
30473
30526
  const existence = useFileExistence(outName);
30474
- const videoCodecOptions = useMemo139(() => {
30527
+ const videoCodecOptions = useMemo140(() => {
30475
30528
  return BrowserSafeApis9.validCodecs.filter((c) => {
30476
30529
  return NoReactAPIs2.isAudioCodec(c) === (renderMode === "audio");
30477
30530
  }).map((codecOption) => {
@@ -30489,7 +30542,7 @@ var RenderModalBasic = ({
30489
30542
  };
30490
30543
  });
30491
30544
  }, [renderMode, setCodec, codec]);
30492
- const proResProfileOptions = useMemo139(() => {
30545
+ const proResProfileOptions = useMemo140(() => {
30493
30546
  return BrowserSafeApis9.proResProfileOptions.map((option) => {
30494
30547
  return {
30495
30548
  label: labelProResProfile(option),
@@ -30521,7 +30574,7 @@ var RenderModalBasic = ({
30521
30574
  const onValueChange = useCallback137((e) => {
30522
30575
  setOutName(e.target.value);
30523
30576
  }, [setOutName]);
30524
- const logLevelOptions = useMemo139(() => {
30577
+ const logLevelOptions = useMemo140(() => {
30525
30578
  return ["trace", "verbose", "info", "warn", "error"].map((level) => {
30526
30579
  return {
30527
30580
  label: humanReadableLogLevel(level),
@@ -30775,7 +30828,7 @@ var RenderModalGif = ({
30775
30828
 
30776
30829
  // src/components/RenderModal/RenderModalPicture.tsx
30777
30830
  import { BrowserSafeApis as BrowserSafeApis10 } from "@remotion/renderer/client";
30778
- import { useCallback as useCallback140, useMemo as useMemo141 } from "react";
30831
+ import { useCallback as useCallback140, useMemo as useMemo142 } from "react";
30779
30832
 
30780
30833
  // src/components/RenderModal/JpegQualitySetting.tsx
30781
30834
  import { jsx as jsx269 } from "react/jsx-runtime";
@@ -30794,7 +30847,7 @@ var JpegQualitySetting = ({ jpegQuality, setJpegQuality }) => {
30794
30847
  };
30795
30848
 
30796
30849
  // src/components/RenderModal/ScaleSetting.tsx
30797
- import { useMemo as useMemo140 } from "react";
30850
+ import { useMemo as useMemo141 } from "react";
30798
30851
  import { jsx as jsx270, jsxs as jsxs141, Fragment as Fragment46 } from "react/jsx-runtime";
30799
30852
  var MIN_SCALE = 0.1;
30800
30853
  var MAX_SCALE = 10;
@@ -30808,7 +30861,7 @@ var outputDimensionsStyle = {
30808
30861
  marginTop: -10
30809
30862
  };
30810
30863
  var ScaleSetting = ({ scale, setScale, compositionWidth, compositionHeight }) => {
30811
- const outputDimensions = useMemo140(() => {
30864
+ const outputDimensions = useMemo141(() => {
30812
30865
  const outputWidth = Math.round(compositionWidth * scale);
30813
30866
  const outputHeight = Math.round(compositionHeight * scale);
30814
30867
  return `${outputWidth}×${outputHeight}`;
@@ -30877,7 +30930,7 @@ var RenderModalPicture = ({
30877
30930
  compositionWidth,
30878
30931
  compositionHeight
30879
30932
  }) => {
30880
- const colorSpaceOptions = useMemo141(() => {
30933
+ const colorSpaceOptions = useMemo142(() => {
30881
30934
  return BrowserSafeApis10.validColorSpaces.map((option) => {
30882
30935
  return {
30883
30936
  label: option,
@@ -30893,7 +30946,7 @@ var RenderModalPicture = ({
30893
30946
  };
30894
30947
  });
30895
30948
  }, [colorSpace, setColorSpace]);
30896
- const qualityControlOptions = useMemo141(() => {
30949
+ const qualityControlOptions = useMemo142(() => {
30897
30950
  return qualityControlModes.map((option) => {
30898
30951
  return {
30899
30952
  label: option === "crf" ? "CRF" : "Bitrate",
@@ -31215,6 +31268,7 @@ var RenderModal = ({
31215
31268
  initialForSeamlessAacConcatenation,
31216
31269
  renderTypeOfLastRender,
31217
31270
  initialHardwareAcceleration,
31271
+ initialSampleRate,
31218
31272
  defaultMetadata,
31219
31273
  initialChromeMode,
31220
31274
  renderDefaults
@@ -31272,6 +31326,7 @@ var RenderModal = ({
31272
31326
  const [repro, setRepro] = useState91(() => initialRepro);
31273
31327
  const [enforceAudioTrackState, setEnforceAudioTrackState] = useState91(() => initialEnforceAudioTrack);
31274
31328
  const [forSeamlessAacConcatenation, setForSeamlessAacConcatenation] = useState91(() => initialForSeamlessAacConcatenation);
31329
+ const [sampleRate, setSampleRate] = useState91(() => initialSampleRate);
31275
31330
  const [renderMode, setRenderModeState] = useState91(initialRenderType);
31276
31331
  const [jpegQuality, setJpegQuality] = useState91(() => initialJpegQuality);
31277
31332
  const [scale, setScale] = useState91(() => initialScale);
@@ -31286,7 +31341,7 @@ var RenderModal = ({
31286
31341
  const [openGlOption, setOpenGlOption] = useState91(() => initialGl ?? "default");
31287
31342
  const [colorSpace, setColorSpace] = useState91(() => initialColorSpace);
31288
31343
  const [userAgent, setUserAgent] = useState91(() => initialUserAgent === null ? null : initialUserAgent.trim() === "" ? null : initialUserAgent);
31289
- const chromiumOptions = useMemo142(() => {
31344
+ const chromiumOptions = useMemo143(() => {
31290
31345
  return {
31291
31346
  headless,
31292
31347
  disableWebSecurity,
@@ -31328,19 +31383,19 @@ var RenderModal = ({
31328
31383
  const [offthreadVideoCacheSizeInBytes, setOffthreadVideoCacheSizeInBytes] = useState91(initialOffthreadVideoCacheSizeInBytes);
31329
31384
  const [mediaCacheSizeInBytes, setMediaCacheSizeInBytes] = useState91(initialMediaCacheSizeInBytes);
31330
31385
  const [offthreadVideoThreads, setOffthreadVideoThreads] = useState91(() => initialOffthreadVideoThreads);
31331
- const codec = useMemo142(() => {
31386
+ const codec = useMemo143(() => {
31332
31387
  if (renderMode === "audio") {
31333
31388
  return videoCodecForAudioTab;
31334
31389
  }
31335
31390
  return videoCodecForVideoTab;
31336
31391
  }, [videoCodecForAudioTab, renderMode, videoCodecForVideoTab]);
31337
- const numberOfGifLoops = useMemo142(() => {
31392
+ const numberOfGifLoops = useMemo143(() => {
31338
31393
  if (codec === "gif" && limitNumberOfGifLoops) {
31339
31394
  return numberOfGifLoopsSetting;
31340
31395
  }
31341
31396
  return null;
31342
31397
  }, [codec, limitNumberOfGifLoops, numberOfGifLoopsSetting]);
31343
- const audioBitrate = useMemo142(() => {
31398
+ const audioBitrate = useMemo143(() => {
31344
31399
  if (shouldHaveCustomTargetAudioBitrate) {
31345
31400
  return customTargetAudioBitrate;
31346
31401
  }
@@ -31348,10 +31403,10 @@ var RenderModal = ({
31348
31403
  }, [customTargetAudioBitrate, shouldHaveCustomTargetAudioBitrate]);
31349
31404
  const supportsCrf = BrowserSafeApis11.codecSupportsCrf(codec);
31350
31405
  const supportsVideoBitrate = BrowserSafeApis11.codecSupportsVideoBitrate(codec);
31351
- const supportsBothQualityControls = useMemo142(() => {
31406
+ const supportsBothQualityControls = useMemo143(() => {
31352
31407
  return supportsCrf && supportsVideoBitrate && hardwareAcceleration !== "if-possible" && hardwareAcceleration !== "required";
31353
31408
  }, [hardwareAcceleration, supportsCrf, supportsVideoBitrate]);
31354
- const qualityControlType = useMemo142(() => {
31409
+ const qualityControlType = useMemo143(() => {
31355
31410
  if (hardwareAcceleration === "if-possible" || hardwareAcceleration === "required") {
31356
31411
  if (supportsVideoBitrate) {
31357
31412
  return "bitrate";
@@ -31375,7 +31430,7 @@ var RenderModal = ({
31375
31430
  supportsCrf,
31376
31431
  supportsVideoBitrate
31377
31432
  ]);
31378
- const videoBitrate = useMemo142(() => {
31433
+ const videoBitrate = useMemo143(() => {
31379
31434
  if (qualityControlType === "bitrate") {
31380
31435
  return customTargetVideoBitrate;
31381
31436
  }
@@ -31387,13 +31442,13 @@ var RenderModal = ({
31387
31442
  return;
31388
31443
  dispatch(payload);
31389
31444
  }, []);
31390
- const muted = useMemo142(() => {
31445
+ const muted = useMemo143(() => {
31391
31446
  if (renderMode === "video") {
31392
31447
  return mutedState;
31393
31448
  }
31394
31449
  return false;
31395
31450
  }, [mutedState, renderMode]);
31396
- const enforceAudioTrack = useMemo142(() => {
31451
+ const enforceAudioTrack = useMemo143(() => {
31397
31452
  if (renderMode === "video") {
31398
31453
  return enforceAudioTrackState;
31399
31454
  }
@@ -31402,13 +31457,13 @@ var RenderModal = ({
31402
31457
  }
31403
31458
  return false;
31404
31459
  }, [enforceAudioTrackState, renderMode]);
31405
- const proResProfile = useMemo142(() => {
31460
+ const proResProfile = useMemo143(() => {
31406
31461
  if (renderMode === "video" && codec === "prores") {
31407
31462
  return proResProfileSetting;
31408
31463
  }
31409
31464
  return null;
31410
31465
  }, [codec, proResProfileSetting, renderMode]);
31411
- const x264Preset = useMemo142(() => {
31466
+ const x264Preset = useMemo143(() => {
31412
31467
  if (renderMode === "video" && codec === "h264") {
31413
31468
  return x264PresetSetting;
31414
31469
  }
@@ -31419,19 +31474,19 @@ var RenderModal = ({
31419
31474
  _setInputProps(updater);
31420
31475
  }, []);
31421
31476
  const [metadata] = useState91(() => defaultMetadata);
31422
- const endFrame = useMemo142(() => {
31477
+ const endFrame = useMemo143(() => {
31423
31478
  if (endFrameOrNull === null) {
31424
31479
  return resolvedComposition.durationInFrames - 1;
31425
31480
  }
31426
31481
  return Math.max(0, Math.min(resolvedComposition.durationInFrames - 1, endFrameOrNull));
31427
31482
  }, [resolvedComposition.durationInFrames, endFrameOrNull]);
31428
- const startFrame = useMemo142(() => {
31483
+ const startFrame = useMemo143(() => {
31429
31484
  if (startFrameOrNull === null) {
31430
31485
  return 0;
31431
31486
  }
31432
31487
  return Math.max(0, Math.min(endFrame - 1, startFrameOrNull));
31433
31488
  }, [endFrame, startFrameOrNull]);
31434
- const frame2 = useMemo142(() => {
31489
+ const frame2 = useMemo143(() => {
31435
31490
  const parsed = Math.floor(unclampedFrame);
31436
31491
  return Math.max(0, Math.min(resolvedComposition.durationInFrames - 1, parsed));
31437
31492
  }, [resolvedComposition.durationInFrames, unclampedFrame]);
@@ -31552,17 +31607,17 @@ var RenderModal = ({
31552
31607
  mediaCacheSizeInBytes
31553
31608
  ]);
31554
31609
  const [everyNthFrameSetting, setEveryNthFrameSetting] = useState91(() => initialEveryNthFrame);
31555
- const everyNthFrame = useMemo142(() => {
31610
+ const everyNthFrame = useMemo143(() => {
31556
31611
  if (codec === "gif") {
31557
31612
  return everyNthFrameSetting;
31558
31613
  }
31559
31614
  return 1;
31560
31615
  }, [codec, everyNthFrameSetting]);
31561
31616
  const audioCodec = deriveFinalAudioCodec(codec, userSelectedAudioCodec);
31562
- const availablePixelFormats = useMemo142(() => {
31617
+ const availablePixelFormats = useMemo143(() => {
31563
31618
  return BrowserSafeApis11.validPixelFormatsForCodec(codec);
31564
31619
  }, [codec]);
31565
- const pixelFormat = useMemo142(() => {
31620
+ const pixelFormat = useMemo143(() => {
31566
31621
  if (availablePixelFormats.includes(userPreferredPixelFormat)) {
31567
31622
  return userPreferredPixelFormat;
31568
31623
  }
@@ -31613,7 +31668,8 @@ var RenderModal = ({
31613
31668
  hardwareAcceleration,
31614
31669
  chromeMode,
31615
31670
  offthreadVideoThreads,
31616
- mediaCacheSizeInBytes
31671
+ mediaCacheSizeInBytes,
31672
+ sampleRate
31617
31673
  }).then(() => {
31618
31674
  dispatchIfMounted({ type: "succeed" });
31619
31675
  setSelectedModal(null);
@@ -31665,7 +31721,8 @@ var RenderModal = ({
31665
31721
  hardwareAcceleration,
31666
31722
  chromeMode,
31667
31723
  offthreadVideoThreads,
31668
- mediaCacheSizeInBytes
31724
+ mediaCacheSizeInBytes,
31725
+ sampleRate
31669
31726
  ]);
31670
31727
  const onClickSequence = useCallback141(() => {
31671
31728
  setSidebarCollapsedState({ left: null, right: "expanded" });
@@ -31733,7 +31790,7 @@ var RenderModal = ({
31733
31790
  isMounted.current = false;
31734
31791
  };
31735
31792
  }, []);
31736
- const imageFormatOptions = useMemo142(() => {
31793
+ const imageFormatOptions = useMemo143(() => {
31737
31794
  if (renderMode === "still") {
31738
31795
  return [
31739
31796
  {
@@ -31829,7 +31886,7 @@ var RenderModal = ({
31829
31886
  stillImageFormat,
31830
31887
  videoCodecForVideoTab
31831
31888
  ]);
31832
- const renderTabOptions = useMemo142(() => {
31889
+ const renderTabOptions = useMemo143(() => {
31833
31890
  if (resolvedComposition?.durationInFrames < 2) {
31834
31891
  return [
31835
31892
  {
@@ -31887,7 +31944,7 @@ var RenderModal = ({
31887
31944
  });
31888
31945
  const { tab, setTab, shownTabs } = useRenderModalSections(renderMode, codec);
31889
31946
  const { registerKeybinding } = useKeybinding();
31890
- const readOnlyRenderCommand = useMemo142(() => {
31947
+ const readOnlyRenderCommand = useMemo143(() => {
31891
31948
  if (!readOnlyStudio) {
31892
31949
  return null;
31893
31950
  }
@@ -31943,6 +32000,7 @@ var RenderModal = ({
31943
32000
  beepOnFinish,
31944
32001
  repro,
31945
32002
  metadata,
32003
+ sampleRate,
31946
32004
  envVariables: envVariablesArrayToObject(envVariables),
31947
32005
  inputProps
31948
32006
  });
@@ -31992,6 +32050,7 @@ var RenderModal = ({
31992
32050
  resolvedComposition.durationInFrames,
31993
32051
  resolvedComposition.id,
31994
32052
  scale,
32053
+ sampleRate,
31995
32054
  separateAudioTo,
31996
32055
  sequenceImageFormat,
31997
32056
  startFrame,
@@ -32058,7 +32117,7 @@ var RenderModal = ({
32058
32117
  enter.unregister();
32059
32118
  };
32060
32119
  }, [registerKeybinding, renderDisabled, trigger]);
32061
- const pixelFormatOptions = useMemo142(() => {
32120
+ const pixelFormatOptions = useMemo143(() => {
32062
32121
  return availablePixelFormats.map((option) => {
32063
32122
  return {
32064
32123
  label: option,
@@ -32268,7 +32327,9 @@ var RenderModal = ({
32268
32327
  setForSeamlessAacConcatenation,
32269
32328
  separateAudioTo,
32270
32329
  setSeparateAudioTo,
32271
- outName
32330
+ outName,
32331
+ sampleRate,
32332
+ setSampleRate
32272
32333
  }) : tab === "gif" ? /* @__PURE__ */ jsx272(RenderModalGif, {
32273
32334
  everyNthFrame,
32274
32335
  limitNumberOfGifLoops,
@@ -32355,7 +32416,7 @@ import {
32355
32416
  getDefaultVideoCodecForContainer,
32356
32417
  isAudioOnlyContainer
32357
32418
  } from "@remotion/web-renderer";
32358
- import { useCallback as useCallback145, useContext as useContext95, useMemo as useMemo147, useState as useState95 } from "react";
32419
+ import { useCallback as useCallback145, useContext as useContext95, useMemo as useMemo148, useState as useState95 } from "react";
32359
32420
 
32360
32421
  // src/icons/certificate.tsx
32361
32422
  import { jsx as jsx273 } from "react/jsx-runtime";
@@ -32517,7 +32578,7 @@ var WebRendererExperimentalBadge = () => {
32517
32578
  };
32518
32579
 
32519
32580
  // src/components/RenderModal/WebRenderModalAdvanced.tsx
32520
- import { useCallback as useCallback142, useMemo as useMemo143 } from "react";
32581
+ import { useCallback as useCallback142, useMemo as useMemo144 } from "react";
32521
32582
  import { jsx as jsx275, jsxs as jsxs145 } from "react/jsx-runtime";
32522
32583
  var tabContainer = {
32523
32584
  flex: 1
@@ -32555,7 +32616,7 @@ var WebRenderModalAdvanced = ({
32555
32616
  return cb;
32556
32617
  });
32557
32618
  }, [setMediaCacheSizeInBytes]);
32558
- const hardwareAccelerationOptions = useMemo143(() => {
32619
+ const hardwareAccelerationOptions = useMemo144(() => {
32559
32620
  return [
32560
32621
  {
32561
32622
  label: "No Preference",
@@ -32687,7 +32748,7 @@ var WebRenderModalAdvanced = ({
32687
32748
 
32688
32749
  // src/components/RenderModal/WebRenderModalAudio.tsx
32689
32750
  import { getSupportedAudioCodecsForContainer as getSupportedAudioCodecsForContainer2 } from "@remotion/web-renderer";
32690
- import { useMemo as useMemo144 } from "react";
32751
+ import { useMemo as useMemo145 } from "react";
32691
32752
 
32692
32753
  // src/components/RenderModal/quality-options.tsx
32693
32754
  import { jsx as jsx276 } from "react/jsx-runtime";
@@ -32760,8 +32821,8 @@ var WebRenderModalAudio = ({
32760
32821
  encodableCodecs,
32761
32822
  effectiveAudioCodec
32762
32823
  }) => {
32763
- const containerSupported = useMemo144(() => getSupportedAudioCodecsForContainer2(videoContainer), [videoContainer]);
32764
- const audioCodecOptions = useMemo144(() => {
32824
+ const containerSupported = useMemo145(() => getSupportedAudioCodecsForContainer2(videoContainer), [videoContainer]);
32825
+ const audioCodecOptions = useMemo145(() => {
32765
32826
  return containerSupported.map((codec) => {
32766
32827
  const isEncodable = encodableCodecs.includes(codec);
32767
32828
  return {
@@ -32778,7 +32839,7 @@ var WebRenderModalAudio = ({
32778
32839
  };
32779
32840
  });
32780
32841
  }, [containerSupported, encodableCodecs, audioCodec, setAudioCodec]);
32781
- const audioBitrateOptions = useMemo144(() => getQualityOptions(audioBitrate, setAudioBitrate), [audioBitrate, setAudioBitrate]);
32842
+ const audioBitrateOptions = useMemo145(() => getQualityOptions(audioBitrate, setAudioBitrate), [audioBitrate, setAudioBitrate]);
32782
32843
  const isAudioOnly = renderMode === "audio";
32783
32844
  const showAudioSettings = isAudioOnly || !muted;
32784
32845
  const showAudioCodecSetting = !isAudioOnly || containerSupported.length > 1;
@@ -32855,7 +32916,7 @@ var WebRenderModalAudio = ({
32855
32916
  };
32856
32917
 
32857
32918
  // src/components/RenderModal/WebRenderModalBasic.tsx
32858
- import { useMemo as useMemo145 } from "react";
32919
+ import { useMemo as useMemo146 } from "react";
32859
32920
  import { jsx as jsx278, jsxs as jsxs147, Fragment as Fragment49 } from "react/jsx-runtime";
32860
32921
  var tabContainer2 = {
32861
32922
  flex: 1
@@ -32909,7 +32970,7 @@ var WebRenderModalBasic = ({
32909
32970
  logLevel,
32910
32971
  setLogLevel
32911
32972
  }) => {
32912
- const imageFormatOptions = useMemo145(() => {
32973
+ const imageFormatOptions = useMemo146(() => {
32913
32974
  return [
32914
32975
  {
32915
32976
  label: "PNG",
@@ -32931,7 +32992,7 @@ var WebRenderModalBasic = ({
32931
32992
  }
32932
32993
  ];
32933
32994
  }, [imageFormat, setStillFormat]);
32934
- const logLevelOptions = useMemo145(() => {
32995
+ const logLevelOptions = useMemo146(() => {
32935
32996
  return ["trace", "verbose", "info", "warn", "error"].map((level) => {
32936
32997
  return {
32937
32998
  label: humanReadableLogLevel(level),
@@ -32946,7 +33007,7 @@ var WebRenderModalBasic = ({
32946
33007
  };
32947
33008
  });
32948
33009
  }, [logLevel, setLogLevel]);
32949
- const containerOptions = useMemo145(() => {
33010
+ const containerOptions = useMemo146(() => {
32950
33011
  const containers = renderMode === "audio" ? audioContainers : videoContainers;
32951
33012
  return containers.map((c) => ({
32952
33013
  label: containerLabels[c],
@@ -32960,7 +33021,7 @@ var WebRenderModalBasic = ({
32960
33021
  value: c
32961
33022
  }));
32962
33023
  }, [container61, setContainerFormat, renderMode]);
32963
- const codecOptions = useMemo145(() => {
33024
+ const codecOptions = useMemo146(() => {
32964
33025
  return encodableVideoCodecs.map((c) => ({
32965
33026
  label: codecLabels[c],
32966
33027
  onClick: () => setCodec(c),
@@ -33550,7 +33611,7 @@ var WebRenderModalLicense = ({
33550
33611
  };
33551
33612
 
33552
33613
  // src/components/RenderModal/WebRenderModalPicture.tsx
33553
- import { useCallback as useCallback144, useMemo as useMemo146 } from "react";
33614
+ import { useCallback as useCallback144, useMemo as useMemo147 } from "react";
33554
33615
  import { jsx as jsx282, jsxs as jsxs150, Fragment as Fragment51 } from "react/jsx-runtime";
33555
33616
  var tabContainer4 = {
33556
33617
  flex: 1
@@ -33568,7 +33629,7 @@ var WebRenderModalPicture = ({
33568
33629
  compositionWidth,
33569
33630
  compositionHeight
33570
33631
  }) => {
33571
- const qualityOptions = useMemo146(() => getQualityOptions(videoBitrate, setVideoBitrate), [videoBitrate, setVideoBitrate]);
33632
+ const qualityOptions = useMemo147(() => getQualityOptions(videoBitrate, setVideoBitrate), [videoBitrate, setVideoBitrate]);
33572
33633
  const onTransparentChanged = useCallback144((e) => {
33573
33634
  setTransparent(e.target.checked);
33574
33635
  }, [setTransparent]);
@@ -33741,25 +33802,25 @@ var WebRenderModal = ({
33741
33802
  const [allowHtmlInCanvas, setAllowHtmlInCanvas] = useState95(initialAllowHtmlInCanvas ?? false);
33742
33803
  const encodableAudioCodecs = useEncodableAudioCodecs(container61);
33743
33804
  const encodableVideoCodecs = useEncodableVideoCodecs(container61);
33744
- const effectiveAudioCodec = useMemo147(() => {
33805
+ const effectiveAudioCodec = useMemo148(() => {
33745
33806
  if (encodableAudioCodecs.includes(audioCodec)) {
33746
33807
  return audioCodec;
33747
33808
  }
33748
33809
  return encodableAudioCodecs[0] ?? audioCodec;
33749
33810
  }, [audioCodec, encodableAudioCodecs]);
33750
- const effectiveVideoCodec = useMemo147(() => {
33811
+ const effectiveVideoCodec = useMemo148(() => {
33751
33812
  if (encodableVideoCodecs.includes(codec)) {
33752
33813
  return codec;
33753
33814
  }
33754
33815
  return encodableVideoCodecs[0] ?? codec;
33755
33816
  }, [codec, encodableVideoCodecs]);
33756
- const finalEndFrame = useMemo147(() => {
33817
+ const finalEndFrame = useMemo148(() => {
33757
33818
  if (endFrame === null) {
33758
33819
  return resolvedComposition.durationInFrames - 1;
33759
33820
  }
33760
33821
  return Math.max(0, Math.min(resolvedComposition.durationInFrames - 1, endFrame));
33761
33822
  }, [endFrame, resolvedComposition.durationInFrames]);
33762
- const finalStartFrame = useMemo147(() => {
33823
+ const finalStartFrame = useMemo148(() => {
33763
33824
  if (startFrame === null) {
33764
33825
  return 0;
33765
33826
  }
@@ -33824,7 +33885,7 @@ var WebRenderModal = ({
33824
33885
  setTab((prev) => prev === "audio" ? "general" : prev);
33825
33886
  }
33826
33887
  }, [container61, imageFormat, updateOutNameExtension]);
33827
- const renderTabOptions = useMemo147(() => {
33888
+ const renderTabOptions = useMemo148(() => {
33828
33889
  const options = [
33829
33890
  {
33830
33891
  label: "Still",
@@ -33870,7 +33931,7 @@ var WebRenderModal = ({
33870
33931
  const onOutNameChange = useCallback145((e) => {
33871
33932
  setOutName(e.target.value);
33872
33933
  }, []);
33873
- const outnameValidation = useMemo147(() => {
33934
+ const outnameValidation = useMemo148(() => {
33874
33935
  if (renderMode === "still") {
33875
33936
  return validateOutnameForStill({
33876
33937
  outName,
@@ -34218,7 +34279,7 @@ var WebRenderModalWithLoader = (props) => {
34218
34279
  };
34219
34280
 
34220
34281
  // src/components/UpdateModal/UpdateModal.tsx
34221
- import { useCallback as useCallback148, useMemo as useMemo149 } from "react";
34282
+ import { useCallback as useCallback148, useMemo as useMemo150 } from "react";
34222
34283
 
34223
34284
  // src/components/CopyButton.tsx
34224
34285
  import { useCallback as useCallback146, useEffect as useEffect87, useState as useState96 } from "react";
@@ -34284,7 +34345,7 @@ var CopyButton = ({ textToCopy, label: label12, labelWhenCopied }) => {
34284
34345
  };
34285
34346
 
34286
34347
  // src/components/UpdateModal/OpenIssueButton.tsx
34287
- import { useCallback as useCallback147, useMemo as useMemo148, useState as useState97 } from "react";
34348
+ import { useCallback as useCallback147, useMemo as useMemo149, useState as useState97 } from "react";
34288
34349
  import { jsx as jsx285 } from "react/jsx-runtime";
34289
34350
  var svgStyle2 = {
34290
34351
  width: "11px",
@@ -34304,7 +34365,7 @@ var OpenIssueButton = ({ link: link4 }) => {
34304
34365
  const handleClick = useCallback147(() => {
34305
34366
  window.open(link4, "_blank");
34306
34367
  }, [link4]);
34307
- const svgFillColor = useMemo148(() => {
34368
+ const svgFillColor = useMemo149(() => {
34308
34369
  return hovered ? "white" : LIGHT_TEXT;
34309
34370
  }, [hovered]);
34310
34371
  const openInEditorSvg = /* @__PURE__ */ jsx285("svg", {
@@ -34401,7 +34462,7 @@ var commands = {
34401
34462
  unknown: "npx remotion upgrade"
34402
34463
  };
34403
34464
  var UpdateModal = ({ info, knownBugs }) => {
34404
- const hasKnownBugs = useMemo149(() => {
34465
+ const hasKnownBugs = useMemo150(() => {
34405
34466
  return knownBugs && knownBugs?.length > 0;
34406
34467
  }, [knownBugs]);
34407
34468
  const command = commands[info.packageManager];
@@ -34565,6 +34626,7 @@ var Modals = ({ readOnlyStudio }) => {
34565
34626
  renderTypeOfLastRender: modalContextType.renderTypeOfLastRender,
34566
34627
  defaultMetadata: modalContextType.defaulMetadata,
34567
34628
  initialHardwareAcceleration: modalContextType.initialHardwareAcceleration,
34629
+ initialSampleRate: modalContextType.initialSampleRate,
34568
34630
  initialChromeMode: modalContextType.initialChromeMode,
34569
34631
  renderDefaults: modalContextType.renderDefaults
34570
34632
  }) : null,
@@ -34609,7 +34671,7 @@ var Editor = ({ Root, readOnlyStudio }) => {
34609
34671
  const onMounted = useCallback149(() => {
34610
34672
  setCanvasMounted(true);
34611
34673
  }, []);
34612
- const value = useMemo150(() => {
34674
+ const value = useMemo151(() => {
34613
34675
  if (!size4) {
34614
34676
  return null;
34615
34677
  }
@@ -34618,15 +34680,15 @@ var Editor = ({ Root, readOnlyStudio }) => {
34618
34680
  canvasSize: size4
34619
34681
  };
34620
34682
  }, [size4]);
34621
- const MemoRoot = useMemo150(() => {
34683
+ const MemoRoot = useMemo151(() => {
34622
34684
  return React187.memo(Root);
34623
34685
  }, [Root]);
34624
34686
  const [renderError, setRenderError] = useState98(null);
34625
34687
  const clearError = useCallback149(() => {
34626
34688
  setRenderError(null);
34627
34689
  }, []);
34628
- const compositionRenderErrorContextValue = useMemo150(() => ({ setError: setRenderError, clearError }), [clearError]);
34629
- const renderErrorContextValue = useMemo150(() => ({ error: renderError }), [renderError]);
34690
+ const compositionRenderErrorContextValue = useMemo151(() => ({ setError: setRenderError, clearError }), [clearError]);
34691
+ const renderErrorContextValue = useMemo151(() => ({ error: renderError }), [renderError]);
34630
34692
  return /* @__PURE__ */ jsx289(HigherZIndex, {
34631
34693
  onEscape: noop,
34632
34694
  onOutsideClick: noop,
@@ -34677,7 +34739,7 @@ var Editor = ({ Root, readOnlyStudio }) => {
34677
34739
  import { PlayerInternals as PlayerInternals20 } from "@remotion/player";
34678
34740
 
34679
34741
  // src/state/preview-size.tsx
34680
- import { useCallback as useCallback150, useContext as useContext97, useMemo as useMemo151, useState as useState99 } from "react";
34742
+ import { useCallback as useCallback150, useContext as useContext97, useMemo as useMemo152, useState as useState99 } from "react";
34681
34743
  import { Internals as Internals66 } from "remotion";
34682
34744
  import { jsx as jsx290 } from "react/jsx-runtime";
34683
34745
  var key5 = "remotion.previewSize";
@@ -34713,7 +34775,7 @@ var PreviewSizeProvider = ({ children }) => {
34713
34775
  return newVal;
34714
34776
  });
34715
34777
  }, []);
34716
- const previewSizeCtx = useMemo151(() => {
34778
+ const previewSizeCtx = useMemo152(() => {
34717
34779
  return {
34718
34780
  size: editorZoomGestures ? size4 : {
34719
34781
  size: size4.size,
@@ -34734,7 +34796,7 @@ var PreviewSizeProvider = ({ children }) => {
34734
34796
  };
34735
34797
 
34736
34798
  // src/components/CheckerboardProvider.tsx
34737
- import { useCallback as useCallback151, useMemo as useMemo152, useState as useState100 } from "react";
34799
+ import { useCallback as useCallback151, useMemo as useMemo153, useState as useState100 } from "react";
34738
34800
  import { jsx as jsx291 } from "react/jsx-runtime";
34739
34801
  var CheckerboardProvider = ({ children }) => {
34740
34802
  const [checkerboard, setCheckerboardState] = useState100(() => loadCheckerboardOption());
@@ -34745,7 +34807,7 @@ var CheckerboardProvider = ({ children }) => {
34745
34807
  return newVal;
34746
34808
  });
34747
34809
  }, []);
34748
- const checkerboardCtx = useMemo152(() => {
34810
+ const checkerboardCtx = useMemo153(() => {
34749
34811
  return {
34750
34812
  checkerboard,
34751
34813
  setCheckerboard
@@ -34758,19 +34820,19 @@ var CheckerboardProvider = ({ children }) => {
34758
34820
  };
34759
34821
 
34760
34822
  // src/components/MediaVolumeProvider.tsx
34761
- import { useMemo as useMemo153, useState as useState101 } from "react";
34823
+ import { useMemo as useMemo154, useState as useState101 } from "react";
34762
34824
  import { Internals as Internals67 } from "remotion";
34763
34825
  import { jsx as jsx292 } from "react/jsx-runtime";
34764
34826
  var MediaVolumeProvider = ({ children }) => {
34765
34827
  const [mediaMuted, setMediaMuted] = useState101(() => loadMuteOption());
34766
34828
  const [mediaVolume, setMediaVolume] = useState101(1);
34767
- const mediaVolumeContextValue = useMemo153(() => {
34829
+ const mediaVolumeContextValue = useMemo154(() => {
34768
34830
  return {
34769
34831
  mediaMuted,
34770
34832
  mediaVolume
34771
34833
  };
34772
34834
  }, [mediaMuted, mediaVolume]);
34773
- const setMediaVolumeContextValue = useMemo153(() => {
34835
+ const setMediaVolumeContextValue = useMemo154(() => {
34774
34836
  return {
34775
34837
  setMediaMuted,
34776
34838
  setMediaVolume
@@ -34786,11 +34848,11 @@ var MediaVolumeProvider = ({ children }) => {
34786
34848
  };
34787
34849
 
34788
34850
  // src/components/ModalsProvider.tsx
34789
- import { useMemo as useMemo154, useState as useState102 } from "react";
34851
+ import { useMemo as useMemo155, useState as useState102 } from "react";
34790
34852
  import { jsx as jsx293 } from "react/jsx-runtime";
34791
34853
  var ModalsProvider = ({ children }) => {
34792
34854
  const [modalContextType, setModalContextType] = useState102(null);
34793
- const modalsContext = useMemo154(() => {
34855
+ const modalsContext = useMemo155(() => {
34794
34856
  return {
34795
34857
  selectedModal: modalContextType,
34796
34858
  setSelectedModal: setModalContextType
@@ -34803,7 +34865,7 @@ var ModalsProvider = ({ children }) => {
34803
34865
  };
34804
34866
 
34805
34867
  // src/components/SetTimelineInOutProvider.tsx
34806
- import { useEffect as useEffect88, useMemo as useMemo155, useState as useState103 } from "react";
34868
+ import { useEffect as useEffect88, useMemo as useMemo156, useState as useState103 } from "react";
34807
34869
 
34808
34870
  // src/state/marks.ts
34809
34871
  var localStorageKey5 = () => `remotion.editor.marksv2`;
@@ -34822,7 +34884,7 @@ var loadMarks = () => {
34822
34884
  import { jsx as jsx294 } from "react/jsx-runtime";
34823
34885
  var SetTimelineInOutProvider = ({ children }) => {
34824
34886
  const [inAndOutFrames, setInAndOutFrames] = useState103(() => loadMarks());
34825
- const setTimelineInOutContextValue = useMemo155(() => {
34887
+ const setTimelineInOutContextValue = useMemo156(() => {
34826
34888
  return {
34827
34889
  setInAndOutFrames
34828
34890
  };
@@ -34840,7 +34902,7 @@ var SetTimelineInOutProvider = ({ children }) => {
34840
34902
  };
34841
34903
 
34842
34904
  // src/components/ShowGuidesProvider.tsx
34843
- import { useCallback as useCallback152, useMemo as useMemo156, useRef as useRef52, useState as useState104 } from "react";
34905
+ import { useCallback as useCallback152, useMemo as useMemo157, useRef as useRef52, useState as useState104 } from "react";
34844
34906
  import { jsx as jsx295 } from "react/jsx-runtime";
34845
34907
  var ShowGuidesProvider = ({ children }) => {
34846
34908
  const [guidesList, setGuidesList] = useState104(() => loadGuidesList());
@@ -34856,7 +34918,7 @@ var ShowGuidesProvider = ({ children }) => {
34856
34918
  return newVal;
34857
34919
  });
34858
34920
  }, []);
34859
- const editorShowGuidesCtx = useMemo156(() => {
34921
+ const editorShowGuidesCtx = useMemo157(() => {
34860
34922
  return {
34861
34923
  editorShowGuides,
34862
34924
  setEditorShowGuides,
@@ -34883,7 +34945,7 @@ var ShowGuidesProvider = ({ children }) => {
34883
34945
  };
34884
34946
 
34885
34947
  // src/components/ShowRulersProvider.tsx
34886
- import { useCallback as useCallback153, useMemo as useMemo157, useState as useState105 } from "react";
34948
+ import { useCallback as useCallback153, useMemo as useMemo158, useState as useState105 } from "react";
34887
34949
  import { jsx as jsx296 } from "react/jsx-runtime";
34888
34950
  var ShowRulersProvider = ({ children }) => {
34889
34951
  const [editorShowRulers, setEditorShowRulersState] = useState105(() => loadEditorShowRulersOption());
@@ -34894,7 +34956,7 @@ var ShowRulersProvider = ({ children }) => {
34894
34956
  return newVal;
34895
34957
  });
34896
34958
  }, []);
34897
- const editorShowRulersCtx = useMemo157(() => {
34959
+ const editorShowRulersCtx = useMemo158(() => {
34898
34960
  return {
34899
34961
  editorShowRulers,
34900
34962
  setEditorShowRulers
@@ -34926,7 +34988,7 @@ var VisualControlsUndoSync = () => {
34926
34988
  };
34927
34989
 
34928
34990
  // src/components/ZoomGesturesProvider.tsx
34929
- import { useCallback as useCallback154, useMemo as useMemo158, useState as useState106 } from "react";
34991
+ import { useCallback as useCallback154, useMemo as useMemo159, useState as useState106 } from "react";
34930
34992
  import { jsx as jsx297 } from "react/jsx-runtime";
34931
34993
  var ZoomGesturesProvider = ({ children }) => {
34932
34994
  const [editorZoomGestures, setEditorZoomGesturesState] = useState106(() => loadEditorZoomGesturesOption());
@@ -34937,7 +34999,7 @@ var ZoomGesturesProvider = ({ children }) => {
34937
34999
  return newVal;
34938
35000
  });
34939
35001
  }, []);
34940
- const editorZoomGesturesCtx = useMemo158(() => {
35002
+ const editorZoomGesturesCtx = useMemo159(() => {
34941
35003
  return {
34942
35004
  editorZoomGestures,
34943
35005
  setEditorZoomGestures
@@ -35074,7 +35136,7 @@ var ServerDisconnected = () => {
35074
35136
  };
35075
35137
 
35076
35138
  // src/FastRefreshProvider.tsx
35077
- import { useCallback as useCallback155, useEffect as useEffect90, useMemo as useMemo159, useState as useState107 } from "react";
35139
+ import { useCallback as useCallback155, useEffect as useEffect90, useMemo as useMemo160, useState as useState107 } from "react";
35078
35140
  import { jsx as jsx300 } from "react/jsx-runtime";
35079
35141
  var FastRefreshProvider = ({ children }) => {
35080
35142
  const [fastRefreshes, setFastRefreshes] = useState107(0);
@@ -35093,7 +35155,7 @@ var FastRefreshProvider = ({ children }) => {
35093
35155
  }
35094
35156
  }
35095
35157
  }, []);
35096
- const value = useMemo159(() => ({ fastRefreshes, manualRefreshes, increaseManualRefreshes }), [fastRefreshes, manualRefreshes, increaseManualRefreshes]);
35158
+ const value = useMemo160(() => ({ fastRefreshes, manualRefreshes, increaseManualRefreshes }), [fastRefreshes, manualRefreshes, increaseManualRefreshes]);
35097
35159
  return /* @__PURE__ */ jsx300(FastRefreshContext.Provider, {
35098
35160
  value,
35099
35161
  children
@@ -35268,7 +35330,7 @@ import {
35268
35330
  useContext as useContext100,
35269
35331
  useEffect as useEffect91,
35270
35332
  useImperativeHandle as useImperativeHandle14,
35271
- useMemo as useMemo160,
35333
+ useMemo as useMemo161,
35272
35334
  useState as useState108
35273
35335
  } from "react";
35274
35336
  import { getInputProps as getInputProps2, Internals as Internals69 } from "remotion";
@@ -35278,20 +35340,20 @@ var ResolveCompositionConfigInStudio = ({ children }) => {
35278
35340
  const { compositions, canvasContent, currentCompositionMetadata } = useContext100(Internals69.CompositionManager);
35279
35341
  const { fastRefreshes, manualRefreshes } = useContext100(FastRefreshContext);
35280
35342
  if (manualRefreshes) {}
35281
- const selectedComposition = useMemo160(() => {
35343
+ const selectedComposition = useMemo161(() => {
35282
35344
  return compositions.find((c) => canvasContent && canvasContent.type === "composition" && canvasContent.compositionId === c.id);
35283
35345
  }, [canvasContent, compositions]);
35284
35346
  const renderModalComposition = compositions.find((c) => c.id === currentRenderModalComposition);
35285
35347
  const { props: allEditorProps } = useContext100(Internals69.EditorPropsContext);
35286
35348
  const env = Internals69.getRemotionEnvironment();
35287
- const inputProps = useMemo160(() => {
35349
+ const inputProps = useMemo161(() => {
35288
35350
  return typeof window === "undefined" || env.isPlayer ? {} : getInputProps2() ?? {};
35289
35351
  }, [env.isPlayer]);
35290
35352
  const [resolvedConfigs, setResolvedConfigs] = useState108({});
35291
- const selectedEditorProps = useMemo160(() => {
35353
+ const selectedEditorProps = useMemo161(() => {
35292
35354
  return selectedComposition ? allEditorProps[selectedComposition.id] ?? {} : {};
35293
35355
  }, [allEditorProps, selectedComposition]);
35294
- const renderModalProps = useMemo160(() => {
35356
+ const renderModalProps = useMemo161(() => {
35295
35357
  return renderModalComposition ? allEditorProps[renderModalComposition.id] ?? {} : {};
35296
35358
  }, [allEditorProps, renderModalComposition]);
35297
35359
  const hasResolution = Boolean(currentCompositionMetadata);
@@ -35428,13 +35490,13 @@ var ResolveCompositionConfigInStudio = ({ children }) => {
35428
35490
  inputProps
35429
35491
  ]);
35430
35492
  const isTheSame = selectedComposition?.id === renderModalComposition?.id;
35431
- const currentDefaultProps = useMemo160(() => {
35493
+ const currentDefaultProps = useMemo161(() => {
35432
35494
  return {
35433
35495
  ...selectedComposition?.defaultProps ?? {},
35434
35496
  ...selectedEditorProps ?? {}
35435
35497
  };
35436
35498
  }, [selectedComposition?.defaultProps, selectedEditorProps]);
35437
- const originalProps = useMemo160(() => {
35499
+ const originalProps = useMemo161(() => {
35438
35500
  return {
35439
35501
  ...currentDefaultProps,
35440
35502
  ...inputProps ?? {}
@@ -35503,7 +35565,7 @@ var ResolveCompositionConfigInStudio = ({ children }) => {
35503
35565
  renderModalComposition,
35504
35566
  renderModalProps
35505
35567
  ]);
35506
- const resolvedConfigsIncludingStaticOnes = useMemo160(() => {
35568
+ const resolvedConfigsIncludingStaticOnes = useMemo161(() => {
35507
35569
  const staticComps = compositions.filter((c) => {
35508
35570
  return c.calculateMetadata === null;
35509
35571
  });