@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.
@@ -29,7 +29,7 @@ import { Internals as Internals70 } from "remotion";
29
29
 
30
30
  // src/components/Editor.tsx
31
31
  import { PlayerInternals as PlayerInternals19 } from "@remotion/player";
32
- import React187, { useCallback as useCallback149, useMemo as useMemo150, useState as useState98 } from "react";
32
+ import React187, { useCallback as useCallback149, useMemo as useMemo151, useState as useState98 } from "react";
33
33
  import { Internals as Internals65 } from "remotion";
34
34
 
35
35
  // src/helpers/colors.ts
@@ -3131,6 +3131,7 @@ var SidebarRenderButton = ({ composition, visible }) => {
3131
3131
  renderTypeOfLastRender: null,
3132
3132
  defaulMetadata: defaults.metadata,
3133
3133
  initialHardwareAcceleration: defaults.hardwareAcceleration,
3134
+ initialSampleRate: defaults.sampleRate,
3134
3135
  initialChromeMode: defaults.chromeMode,
3135
3136
  initialMediaCacheSizeInBytes: defaults.mediaCacheSizeInBytes,
3136
3137
  renderDefaults: defaults,
@@ -3954,7 +3955,8 @@ var addVideoRenderJob = ({
3954
3955
  metadata,
3955
3956
  hardwareAcceleration,
3956
3957
  chromeMode,
3957
- mediaCacheSizeInBytes
3958
+ mediaCacheSizeInBytes,
3959
+ sampleRate
3958
3960
  }) => {
3959
3961
  return callApi("/api/render", {
3960
3962
  compositionId,
@@ -4001,7 +4003,8 @@ var addVideoRenderJob = ({
4001
4003
  metadata,
4002
4004
  hardwareAcceleration,
4003
4005
  chromeMode,
4004
- mediaCacheSizeInBytes
4006
+ mediaCacheSizeInBytes,
4007
+ sampleRate
4005
4008
  });
4006
4009
  };
4007
4010
  var unsubscribeFromFileExistenceWatcher = ({
@@ -16924,6 +16927,7 @@ var makeRetryPayload = (job) => {
16924
16927
  defaulMetadata: job.metadata,
16925
16928
  renderTypeOfLastRender: "still",
16926
16929
  initialHardwareAcceleration: defaults.hardwareAcceleration,
16930
+ initialSampleRate: defaults.sampleRate,
16927
16931
  initialChromeMode: job.chromeMode,
16928
16932
  initialMediaCacheSizeInBytes: job.mediaCacheSizeInBytes,
16929
16933
  renderDefaults: defaults,
@@ -16977,6 +16981,7 @@ var makeRetryPayload = (job) => {
16977
16981
  defaulMetadata: job.metadata,
16978
16982
  renderTypeOfLastRender: "sequence",
16979
16983
  initialHardwareAcceleration: defaults.hardwareAcceleration,
16984
+ initialSampleRate: defaults.sampleRate,
16980
16985
  initialChromeMode: job.chromeMode,
16981
16986
  initialMediaCacheSizeInBytes: job.mediaCacheSizeInBytes,
16982
16987
  renderDefaults: defaults,
@@ -17030,6 +17035,7 @@ var makeRetryPayload = (job) => {
17030
17035
  defaulMetadata: job.metadata,
17031
17036
  renderTypeOfLastRender: "video",
17032
17037
  initialHardwareAcceleration: job.hardwareAcceleration,
17038
+ initialSampleRate: job.sampleRate,
17033
17039
  initialChromeMode: job.chromeMode,
17034
17040
  initialMediaCacheSizeInBytes: job.mediaCacheSizeInBytes,
17035
17041
  renderDefaults: defaults,
@@ -18885,6 +18891,7 @@ var RenderButton = ({
18885
18891
  renderTypeOfLastRender: null,
18886
18892
  defaulMetadata: defaults.metadata,
18887
18893
  initialHardwareAcceleration: defaults.hardwareAcceleration,
18894
+ initialSampleRate: defaults.sampleRate,
18888
18895
  initialChromeMode: defaults.chromeMode,
18889
18896
  initialMediaCacheSizeInBytes: defaults.mediaCacheSizeInBytes,
18890
18897
  renderDefaults: defaults
@@ -27844,7 +27851,7 @@ import {
27844
27851
  useCallback as useCallback141,
27845
27852
  useContext as useContext94,
27846
27853
  useEffect as useEffect83,
27847
- useMemo as useMemo142,
27854
+ useMemo as useMemo143,
27848
27855
  useReducer as useReducer2,
27849
27856
  useRef as useRef49,
27850
27857
  useState as useState91
@@ -27994,6 +28001,7 @@ var makeReadOnlyStudioRenderCommand = ({
27994
28001
  beepOnFinish,
27995
28002
  repro,
27996
28003
  metadata,
28004
+ sampleRate,
27997
28005
  envVariables,
27998
28006
  inputProps
27999
28007
  }) => {
@@ -28081,6 +28089,9 @@ var makeReadOnlyStudioRenderCommand = ({
28081
28089
  if (audioCodec !== defaultAudioCodec) {
28082
28090
  addFlagWithValue(flags, getRenderMediaFlag("audioCodec"), audioCodec);
28083
28091
  }
28092
+ addValueFlagsIfChanged(flags, [
28093
+ renderMediaValueFlag("sampleRate", sampleRate, renderDefaults.sampleRate)
28094
+ ]);
28084
28095
  }
28085
28096
  addTrueBooleanFlagsIfChanged(flags, [
28086
28097
  renderMediaBooleanFlag("disallowParallelEncoding", disallowParallelEncoding, false),
@@ -29753,7 +29764,7 @@ var RenderModalAdvanced = ({
29753
29764
 
29754
29765
  // src/components/RenderModal/RenderModalAudio.tsx
29755
29766
  import { BrowserSafeApis as BrowserSafeApis8 } from "@remotion/renderer/client";
29756
- import { useCallback as useCallback134 } from "react";
29767
+ import { useCallback as useCallback134, useMemo as useMemo138 } from "react";
29757
29768
 
29758
29769
  // src/components/RenderModal/EnforceAudioTrackSetting.tsx
29759
29770
  import { useCallback as useCallback131 } from "react";
@@ -30048,6 +30059,7 @@ var container55 = {
30048
30059
  flex: 1,
30049
30060
  overflowY: "auto"
30050
30061
  };
30062
+ var commonSampleRates = [8000, 16000, 22050, 44100, 48000, 96000];
30051
30063
  var RenderModalAudio = ({
30052
30064
  muted,
30053
30065
  setMuted,
@@ -30065,7 +30077,9 @@ var RenderModalAudio = ({
30065
30077
  setForSeamlessAacConcatenation,
30066
30078
  separateAudioTo,
30067
30079
  setSeparateAudioTo,
30068
- outName
30080
+ outName,
30081
+ sampleRate,
30082
+ setSampleRate
30069
30083
  }) => {
30070
30084
  const onShouldHaveTargetAudioBitrateChanged = useCallback134((e) => {
30071
30085
  setShouldHaveCustomTargetAudioBitrate(e.target.checked);
@@ -30076,6 +30090,20 @@ var RenderModalAudio = ({
30076
30090
  const onSeamlessAacConcatenationChanges = useCallback134((e) => {
30077
30091
  setForSeamlessAacConcatenation(e.target.checked);
30078
30092
  }, [setForSeamlessAacConcatenation]);
30093
+ const sampleRateOptions = useMemo138(() => {
30094
+ return commonSampleRates.map((rate) => ({
30095
+ label: rate === 48000 ? `${rate} Hz (default)` : `${rate} Hz`,
30096
+ onClick: () => setSampleRate(rate),
30097
+ key: String(rate),
30098
+ leftItem: sampleRate === rate ? /* @__PURE__ */ jsx263(Checkmark, {}) : null,
30099
+ id: String(rate),
30100
+ keyHint: null,
30101
+ quickSwitcherLabel: null,
30102
+ subMenu: null,
30103
+ type: "item",
30104
+ value: String(rate)
30105
+ }));
30106
+ }, [sampleRate, setSampleRate]);
30079
30107
  const audioCodecOptions = useCallback134((currentCodec) => {
30080
30108
  return BrowserSafeApis8.supportedAudioCodecs[currentCodec].map((audioCodecOption) => {
30081
30109
  return {
@@ -30216,6 +30244,31 @@ var RenderModalAudio = ({
30216
30244
  })
30217
30245
  })
30218
30246
  ]
30247
+ }) : null,
30248
+ renderMode !== "still" && !muted ? /* @__PURE__ */ jsxs135("div", {
30249
+ style: optionRow,
30250
+ children: [
30251
+ /* @__PURE__ */ jsxs135("div", {
30252
+ style: label5,
30253
+ children: [
30254
+ "Sample Rate ",
30255
+ /* @__PURE__ */ jsx263(Spacing, {
30256
+ x: 0.5
30257
+ }),
30258
+ /* @__PURE__ */ jsx263(OptionExplainerBubble, {
30259
+ id: "sampleRateOption"
30260
+ })
30261
+ ]
30262
+ }),
30263
+ /* @__PURE__ */ jsx263("div", {
30264
+ style: rightRow,
30265
+ children: /* @__PURE__ */ jsx263(Combobox, {
30266
+ values: sampleRateOptions,
30267
+ selectedId: String(sampleRate),
30268
+ title: "Sample Rate"
30269
+ })
30270
+ })
30271
+ ]
30219
30272
  }) : null
30220
30273
  ]
30221
30274
  });
@@ -30224,7 +30277,7 @@ var RenderModalAudio = ({
30224
30277
  // src/components/RenderModal/RenderModalBasic.tsx
30225
30278
  import { BrowserSafeApis as BrowserSafeApis9 } from "@remotion/renderer/client";
30226
30279
  import { NoReactAPIs as NoReactAPIs2 } from "@remotion/renderer/pure";
30227
- import { useCallback as useCallback137, useMemo as useMemo139 } from "react";
30280
+ import { useCallback as useCallback137, useMemo as useMemo140 } from "react";
30228
30281
 
30229
30282
  // src/helpers/prores-labels.ts
30230
30283
  var labelProResProfile = (profile) => {
@@ -30253,7 +30306,7 @@ var labelProResProfile = (profile) => {
30253
30306
  import { useCallback as useCallback136 } from "react";
30254
30307
 
30255
30308
  // src/components/RenderModal/MultiRangeSlider.tsx
30256
- import { useCallback as useCallback135, useMemo as useMemo138 } from "react";
30309
+ import { useCallback as useCallback135, useMemo as useMemo139 } from "react";
30257
30310
  import { jsx as jsx264, jsxs as jsxs136 } from "react/jsx-runtime";
30258
30311
  var container56 = {
30259
30312
  borderColor: "black",
@@ -30283,7 +30336,7 @@ var MultiRangeSlider = ({
30283
30336
  onRightThumbDrag
30284
30337
  }) => {
30285
30338
  const getPercent = useCallback135((value) => Math.round((value - min) / (max - min) * 100), [min, max]);
30286
- const rangeStyle = useMemo138(() => {
30339
+ const rangeStyle = useMemo139(() => {
30287
30340
  const minPercent = getPercent(start);
30288
30341
  const maxPercent = getPercent(end);
30289
30342
  return {
@@ -30490,7 +30543,7 @@ var RenderModalBasic = ({
30490
30543
  showOutputName
30491
30544
  }) => {
30492
30545
  const existence = useFileExistence(outName);
30493
- const videoCodecOptions = useMemo139(() => {
30546
+ const videoCodecOptions = useMemo140(() => {
30494
30547
  return BrowserSafeApis9.validCodecs.filter((c) => {
30495
30548
  return NoReactAPIs2.isAudioCodec(c) === (renderMode === "audio");
30496
30549
  }).map((codecOption) => {
@@ -30508,7 +30561,7 @@ var RenderModalBasic = ({
30508
30561
  };
30509
30562
  });
30510
30563
  }, [renderMode, setCodec, codec]);
30511
- const proResProfileOptions = useMemo139(() => {
30564
+ const proResProfileOptions = useMemo140(() => {
30512
30565
  return BrowserSafeApis9.proResProfileOptions.map((option) => {
30513
30566
  return {
30514
30567
  label: labelProResProfile(option),
@@ -30540,7 +30593,7 @@ var RenderModalBasic = ({
30540
30593
  const onValueChange = useCallback137((e) => {
30541
30594
  setOutName(e.target.value);
30542
30595
  }, [setOutName]);
30543
- const logLevelOptions = useMemo139(() => {
30596
+ const logLevelOptions = useMemo140(() => {
30544
30597
  return ["trace", "verbose", "info", "warn", "error"].map((level) => {
30545
30598
  return {
30546
30599
  label: humanReadableLogLevel(level),
@@ -30794,7 +30847,7 @@ var RenderModalGif = ({
30794
30847
 
30795
30848
  // src/components/RenderModal/RenderModalPicture.tsx
30796
30849
  import { BrowserSafeApis as BrowserSafeApis10 } from "@remotion/renderer/client";
30797
- import { useCallback as useCallback140, useMemo as useMemo141 } from "react";
30850
+ import { useCallback as useCallback140, useMemo as useMemo142 } from "react";
30798
30851
 
30799
30852
  // src/components/RenderModal/JpegQualitySetting.tsx
30800
30853
  import { jsx as jsx269 } from "react/jsx-runtime";
@@ -30813,7 +30866,7 @@ var JpegQualitySetting = ({ jpegQuality, setJpegQuality }) => {
30813
30866
  };
30814
30867
 
30815
30868
  // src/components/RenderModal/ScaleSetting.tsx
30816
- import { useMemo as useMemo140 } from "react";
30869
+ import { useMemo as useMemo141 } from "react";
30817
30870
  import { jsx as jsx270, jsxs as jsxs141, Fragment as Fragment46 } from "react/jsx-runtime";
30818
30871
  var MIN_SCALE = 0.1;
30819
30872
  var MAX_SCALE = 10;
@@ -30827,7 +30880,7 @@ var outputDimensionsStyle = {
30827
30880
  marginTop: -10
30828
30881
  };
30829
30882
  var ScaleSetting = ({ scale, setScale, compositionWidth, compositionHeight }) => {
30830
- const outputDimensions = useMemo140(() => {
30883
+ const outputDimensions = useMemo141(() => {
30831
30884
  const outputWidth = Math.round(compositionWidth * scale);
30832
30885
  const outputHeight = Math.round(compositionHeight * scale);
30833
30886
  return `${outputWidth}×${outputHeight}`;
@@ -30896,7 +30949,7 @@ var RenderModalPicture = ({
30896
30949
  compositionWidth,
30897
30950
  compositionHeight
30898
30951
  }) => {
30899
- const colorSpaceOptions = useMemo141(() => {
30952
+ const colorSpaceOptions = useMemo142(() => {
30900
30953
  return BrowserSafeApis10.validColorSpaces.map((option) => {
30901
30954
  return {
30902
30955
  label: option,
@@ -30912,7 +30965,7 @@ var RenderModalPicture = ({
30912
30965
  };
30913
30966
  });
30914
30967
  }, [colorSpace, setColorSpace]);
30915
- const qualityControlOptions = useMemo141(() => {
30968
+ const qualityControlOptions = useMemo142(() => {
30916
30969
  return qualityControlModes.map((option) => {
30917
30970
  return {
30918
30971
  label: option === "crf" ? "CRF" : "Bitrate",
@@ -31234,6 +31287,7 @@ var RenderModal = ({
31234
31287
  initialForSeamlessAacConcatenation,
31235
31288
  renderTypeOfLastRender,
31236
31289
  initialHardwareAcceleration,
31290
+ initialSampleRate,
31237
31291
  defaultMetadata,
31238
31292
  initialChromeMode,
31239
31293
  renderDefaults
@@ -31291,6 +31345,7 @@ var RenderModal = ({
31291
31345
  const [repro, setRepro] = useState91(() => initialRepro);
31292
31346
  const [enforceAudioTrackState, setEnforceAudioTrackState] = useState91(() => initialEnforceAudioTrack);
31293
31347
  const [forSeamlessAacConcatenation, setForSeamlessAacConcatenation] = useState91(() => initialForSeamlessAacConcatenation);
31348
+ const [sampleRate, setSampleRate] = useState91(() => initialSampleRate);
31294
31349
  const [renderMode, setRenderModeState] = useState91(initialRenderType);
31295
31350
  const [jpegQuality, setJpegQuality] = useState91(() => initialJpegQuality);
31296
31351
  const [scale, setScale] = useState91(() => initialScale);
@@ -31305,7 +31360,7 @@ var RenderModal = ({
31305
31360
  const [openGlOption, setOpenGlOption] = useState91(() => initialGl ?? "default");
31306
31361
  const [colorSpace, setColorSpace] = useState91(() => initialColorSpace);
31307
31362
  const [userAgent, setUserAgent] = useState91(() => initialUserAgent === null ? null : initialUserAgent.trim() === "" ? null : initialUserAgent);
31308
- const chromiumOptions = useMemo142(() => {
31363
+ const chromiumOptions = useMemo143(() => {
31309
31364
  return {
31310
31365
  headless,
31311
31366
  disableWebSecurity,
@@ -31347,19 +31402,19 @@ var RenderModal = ({
31347
31402
  const [offthreadVideoCacheSizeInBytes, setOffthreadVideoCacheSizeInBytes] = useState91(initialOffthreadVideoCacheSizeInBytes);
31348
31403
  const [mediaCacheSizeInBytes, setMediaCacheSizeInBytes] = useState91(initialMediaCacheSizeInBytes);
31349
31404
  const [offthreadVideoThreads, setOffthreadVideoThreads] = useState91(() => initialOffthreadVideoThreads);
31350
- const codec = useMemo142(() => {
31405
+ const codec = useMemo143(() => {
31351
31406
  if (renderMode === "audio") {
31352
31407
  return videoCodecForAudioTab;
31353
31408
  }
31354
31409
  return videoCodecForVideoTab;
31355
31410
  }, [videoCodecForAudioTab, renderMode, videoCodecForVideoTab]);
31356
- const numberOfGifLoops = useMemo142(() => {
31411
+ const numberOfGifLoops = useMemo143(() => {
31357
31412
  if (codec === "gif" && limitNumberOfGifLoops) {
31358
31413
  return numberOfGifLoopsSetting;
31359
31414
  }
31360
31415
  return null;
31361
31416
  }, [codec, limitNumberOfGifLoops, numberOfGifLoopsSetting]);
31362
- const audioBitrate = useMemo142(() => {
31417
+ const audioBitrate = useMemo143(() => {
31363
31418
  if (shouldHaveCustomTargetAudioBitrate) {
31364
31419
  return customTargetAudioBitrate;
31365
31420
  }
@@ -31367,10 +31422,10 @@ var RenderModal = ({
31367
31422
  }, [customTargetAudioBitrate, shouldHaveCustomTargetAudioBitrate]);
31368
31423
  const supportsCrf = BrowserSafeApis11.codecSupportsCrf(codec);
31369
31424
  const supportsVideoBitrate = BrowserSafeApis11.codecSupportsVideoBitrate(codec);
31370
- const supportsBothQualityControls = useMemo142(() => {
31425
+ const supportsBothQualityControls = useMemo143(() => {
31371
31426
  return supportsCrf && supportsVideoBitrate && hardwareAcceleration !== "if-possible" && hardwareAcceleration !== "required";
31372
31427
  }, [hardwareAcceleration, supportsCrf, supportsVideoBitrate]);
31373
- const qualityControlType = useMemo142(() => {
31428
+ const qualityControlType = useMemo143(() => {
31374
31429
  if (hardwareAcceleration === "if-possible" || hardwareAcceleration === "required") {
31375
31430
  if (supportsVideoBitrate) {
31376
31431
  return "bitrate";
@@ -31394,7 +31449,7 @@ var RenderModal = ({
31394
31449
  supportsCrf,
31395
31450
  supportsVideoBitrate
31396
31451
  ]);
31397
- const videoBitrate = useMemo142(() => {
31452
+ const videoBitrate = useMemo143(() => {
31398
31453
  if (qualityControlType === "bitrate") {
31399
31454
  return customTargetVideoBitrate;
31400
31455
  }
@@ -31406,13 +31461,13 @@ var RenderModal = ({
31406
31461
  return;
31407
31462
  dispatch(payload);
31408
31463
  }, []);
31409
- const muted = useMemo142(() => {
31464
+ const muted = useMemo143(() => {
31410
31465
  if (renderMode === "video") {
31411
31466
  return mutedState;
31412
31467
  }
31413
31468
  return false;
31414
31469
  }, [mutedState, renderMode]);
31415
- const enforceAudioTrack = useMemo142(() => {
31470
+ const enforceAudioTrack = useMemo143(() => {
31416
31471
  if (renderMode === "video") {
31417
31472
  return enforceAudioTrackState;
31418
31473
  }
@@ -31421,13 +31476,13 @@ var RenderModal = ({
31421
31476
  }
31422
31477
  return false;
31423
31478
  }, [enforceAudioTrackState, renderMode]);
31424
- const proResProfile = useMemo142(() => {
31479
+ const proResProfile = useMemo143(() => {
31425
31480
  if (renderMode === "video" && codec === "prores") {
31426
31481
  return proResProfileSetting;
31427
31482
  }
31428
31483
  return null;
31429
31484
  }, [codec, proResProfileSetting, renderMode]);
31430
- const x264Preset = useMemo142(() => {
31485
+ const x264Preset = useMemo143(() => {
31431
31486
  if (renderMode === "video" && codec === "h264") {
31432
31487
  return x264PresetSetting;
31433
31488
  }
@@ -31438,19 +31493,19 @@ var RenderModal = ({
31438
31493
  _setInputProps(updater);
31439
31494
  }, []);
31440
31495
  const [metadata] = useState91(() => defaultMetadata);
31441
- const endFrame = useMemo142(() => {
31496
+ const endFrame = useMemo143(() => {
31442
31497
  if (endFrameOrNull === null) {
31443
31498
  return resolvedComposition.durationInFrames - 1;
31444
31499
  }
31445
31500
  return Math.max(0, Math.min(resolvedComposition.durationInFrames - 1, endFrameOrNull));
31446
31501
  }, [resolvedComposition.durationInFrames, endFrameOrNull]);
31447
- const startFrame = useMemo142(() => {
31502
+ const startFrame = useMemo143(() => {
31448
31503
  if (startFrameOrNull === null) {
31449
31504
  return 0;
31450
31505
  }
31451
31506
  return Math.max(0, Math.min(endFrame - 1, startFrameOrNull));
31452
31507
  }, [endFrame, startFrameOrNull]);
31453
- const frame2 = useMemo142(() => {
31508
+ const frame2 = useMemo143(() => {
31454
31509
  const parsed = Math.floor(unclampedFrame);
31455
31510
  return Math.max(0, Math.min(resolvedComposition.durationInFrames - 1, parsed));
31456
31511
  }, [resolvedComposition.durationInFrames, unclampedFrame]);
@@ -31571,17 +31626,17 @@ var RenderModal = ({
31571
31626
  mediaCacheSizeInBytes
31572
31627
  ]);
31573
31628
  const [everyNthFrameSetting, setEveryNthFrameSetting] = useState91(() => initialEveryNthFrame);
31574
- const everyNthFrame = useMemo142(() => {
31629
+ const everyNthFrame = useMemo143(() => {
31575
31630
  if (codec === "gif") {
31576
31631
  return everyNthFrameSetting;
31577
31632
  }
31578
31633
  return 1;
31579
31634
  }, [codec, everyNthFrameSetting]);
31580
31635
  const audioCodec = deriveFinalAudioCodec(codec, userSelectedAudioCodec);
31581
- const availablePixelFormats = useMemo142(() => {
31636
+ const availablePixelFormats = useMemo143(() => {
31582
31637
  return BrowserSafeApis11.validPixelFormatsForCodec(codec);
31583
31638
  }, [codec]);
31584
- const pixelFormat = useMemo142(() => {
31639
+ const pixelFormat = useMemo143(() => {
31585
31640
  if (availablePixelFormats.includes(userPreferredPixelFormat)) {
31586
31641
  return userPreferredPixelFormat;
31587
31642
  }
@@ -31632,7 +31687,8 @@ var RenderModal = ({
31632
31687
  hardwareAcceleration,
31633
31688
  chromeMode,
31634
31689
  offthreadVideoThreads,
31635
- mediaCacheSizeInBytes
31690
+ mediaCacheSizeInBytes,
31691
+ sampleRate
31636
31692
  }).then(() => {
31637
31693
  dispatchIfMounted({ type: "succeed" });
31638
31694
  setSelectedModal(null);
@@ -31684,7 +31740,8 @@ var RenderModal = ({
31684
31740
  hardwareAcceleration,
31685
31741
  chromeMode,
31686
31742
  offthreadVideoThreads,
31687
- mediaCacheSizeInBytes
31743
+ mediaCacheSizeInBytes,
31744
+ sampleRate
31688
31745
  ]);
31689
31746
  const onClickSequence = useCallback141(() => {
31690
31747
  setSidebarCollapsedState({ left: null, right: "expanded" });
@@ -31752,7 +31809,7 @@ var RenderModal = ({
31752
31809
  isMounted.current = false;
31753
31810
  };
31754
31811
  }, []);
31755
- const imageFormatOptions = useMemo142(() => {
31812
+ const imageFormatOptions = useMemo143(() => {
31756
31813
  if (renderMode === "still") {
31757
31814
  return [
31758
31815
  {
@@ -31848,7 +31905,7 @@ var RenderModal = ({
31848
31905
  stillImageFormat,
31849
31906
  videoCodecForVideoTab
31850
31907
  ]);
31851
- const renderTabOptions = useMemo142(() => {
31908
+ const renderTabOptions = useMemo143(() => {
31852
31909
  if (resolvedComposition?.durationInFrames < 2) {
31853
31910
  return [
31854
31911
  {
@@ -31906,7 +31963,7 @@ var RenderModal = ({
31906
31963
  });
31907
31964
  const { tab, setTab, shownTabs } = useRenderModalSections(renderMode, codec);
31908
31965
  const { registerKeybinding } = useKeybinding();
31909
- const readOnlyRenderCommand = useMemo142(() => {
31966
+ const readOnlyRenderCommand = useMemo143(() => {
31910
31967
  if (!readOnlyStudio) {
31911
31968
  return null;
31912
31969
  }
@@ -31962,6 +32019,7 @@ var RenderModal = ({
31962
32019
  beepOnFinish,
31963
32020
  repro,
31964
32021
  metadata,
32022
+ sampleRate,
31965
32023
  envVariables: envVariablesArrayToObject(envVariables),
31966
32024
  inputProps
31967
32025
  });
@@ -32011,6 +32069,7 @@ var RenderModal = ({
32011
32069
  resolvedComposition.durationInFrames,
32012
32070
  resolvedComposition.id,
32013
32071
  scale,
32072
+ sampleRate,
32014
32073
  separateAudioTo,
32015
32074
  sequenceImageFormat,
32016
32075
  startFrame,
@@ -32077,7 +32136,7 @@ var RenderModal = ({
32077
32136
  enter.unregister();
32078
32137
  };
32079
32138
  }, [registerKeybinding, renderDisabled, trigger]);
32080
- const pixelFormatOptions = useMemo142(() => {
32139
+ const pixelFormatOptions = useMemo143(() => {
32081
32140
  return availablePixelFormats.map((option) => {
32082
32141
  return {
32083
32142
  label: option,
@@ -32287,7 +32346,9 @@ var RenderModal = ({
32287
32346
  setForSeamlessAacConcatenation,
32288
32347
  separateAudioTo,
32289
32348
  setSeparateAudioTo,
32290
- outName
32349
+ outName,
32350
+ sampleRate,
32351
+ setSampleRate
32291
32352
  }) : tab === "gif" ? /* @__PURE__ */ jsx272(RenderModalGif, {
32292
32353
  everyNthFrame,
32293
32354
  limitNumberOfGifLoops,
@@ -32374,7 +32435,7 @@ import {
32374
32435
  getDefaultVideoCodecForContainer,
32375
32436
  isAudioOnlyContainer
32376
32437
  } from "@remotion/web-renderer";
32377
- import { useCallback as useCallback145, useContext as useContext95, useMemo as useMemo147, useState as useState95 } from "react";
32438
+ import { useCallback as useCallback145, useContext as useContext95, useMemo as useMemo148, useState as useState95 } from "react";
32378
32439
 
32379
32440
  // src/icons/certificate.tsx
32380
32441
  import { jsx as jsx273 } from "react/jsx-runtime";
@@ -32536,7 +32597,7 @@ var WebRendererExperimentalBadge = () => {
32536
32597
  };
32537
32598
 
32538
32599
  // src/components/RenderModal/WebRenderModalAdvanced.tsx
32539
- import { useCallback as useCallback142, useMemo as useMemo143 } from "react";
32600
+ import { useCallback as useCallback142, useMemo as useMemo144 } from "react";
32540
32601
  import { jsx as jsx275, jsxs as jsxs145 } from "react/jsx-runtime";
32541
32602
  var tabContainer = {
32542
32603
  flex: 1
@@ -32574,7 +32635,7 @@ var WebRenderModalAdvanced = ({
32574
32635
  return cb;
32575
32636
  });
32576
32637
  }, [setMediaCacheSizeInBytes]);
32577
- const hardwareAccelerationOptions = useMemo143(() => {
32638
+ const hardwareAccelerationOptions = useMemo144(() => {
32578
32639
  return [
32579
32640
  {
32580
32641
  label: "No Preference",
@@ -32706,7 +32767,7 @@ var WebRenderModalAdvanced = ({
32706
32767
 
32707
32768
  // src/components/RenderModal/WebRenderModalAudio.tsx
32708
32769
  import { getSupportedAudioCodecsForContainer as getSupportedAudioCodecsForContainer2 } from "@remotion/web-renderer";
32709
- import { useMemo as useMemo144 } from "react";
32770
+ import { useMemo as useMemo145 } from "react";
32710
32771
 
32711
32772
  // src/components/RenderModal/quality-options.tsx
32712
32773
  import { jsx as jsx276 } from "react/jsx-runtime";
@@ -32779,8 +32840,8 @@ var WebRenderModalAudio = ({
32779
32840
  encodableCodecs,
32780
32841
  effectiveAudioCodec
32781
32842
  }) => {
32782
- const containerSupported = useMemo144(() => getSupportedAudioCodecsForContainer2(videoContainer), [videoContainer]);
32783
- const audioCodecOptions = useMemo144(() => {
32843
+ const containerSupported = useMemo145(() => getSupportedAudioCodecsForContainer2(videoContainer), [videoContainer]);
32844
+ const audioCodecOptions = useMemo145(() => {
32784
32845
  return containerSupported.map((codec) => {
32785
32846
  const isEncodable = encodableCodecs.includes(codec);
32786
32847
  return {
@@ -32797,7 +32858,7 @@ var WebRenderModalAudio = ({
32797
32858
  };
32798
32859
  });
32799
32860
  }, [containerSupported, encodableCodecs, audioCodec, setAudioCodec]);
32800
- const audioBitrateOptions = useMemo144(() => getQualityOptions(audioBitrate, setAudioBitrate), [audioBitrate, setAudioBitrate]);
32861
+ const audioBitrateOptions = useMemo145(() => getQualityOptions(audioBitrate, setAudioBitrate), [audioBitrate, setAudioBitrate]);
32801
32862
  const isAudioOnly = renderMode === "audio";
32802
32863
  const showAudioSettings = isAudioOnly || !muted;
32803
32864
  const showAudioCodecSetting = !isAudioOnly || containerSupported.length > 1;
@@ -32874,7 +32935,7 @@ var WebRenderModalAudio = ({
32874
32935
  };
32875
32936
 
32876
32937
  // src/components/RenderModal/WebRenderModalBasic.tsx
32877
- import { useMemo as useMemo145 } from "react";
32938
+ import { useMemo as useMemo146 } from "react";
32878
32939
  import { jsx as jsx278, jsxs as jsxs147, Fragment as Fragment49 } from "react/jsx-runtime";
32879
32940
  var tabContainer2 = {
32880
32941
  flex: 1
@@ -32928,7 +32989,7 @@ var WebRenderModalBasic = ({
32928
32989
  logLevel,
32929
32990
  setLogLevel
32930
32991
  }) => {
32931
- const imageFormatOptions = useMemo145(() => {
32992
+ const imageFormatOptions = useMemo146(() => {
32932
32993
  return [
32933
32994
  {
32934
32995
  label: "PNG",
@@ -32950,7 +33011,7 @@ var WebRenderModalBasic = ({
32950
33011
  }
32951
33012
  ];
32952
33013
  }, [imageFormat, setStillFormat]);
32953
- const logLevelOptions = useMemo145(() => {
33014
+ const logLevelOptions = useMemo146(() => {
32954
33015
  return ["trace", "verbose", "info", "warn", "error"].map((level) => {
32955
33016
  return {
32956
33017
  label: humanReadableLogLevel(level),
@@ -32965,7 +33026,7 @@ var WebRenderModalBasic = ({
32965
33026
  };
32966
33027
  });
32967
33028
  }, [logLevel, setLogLevel]);
32968
- const containerOptions = useMemo145(() => {
33029
+ const containerOptions = useMemo146(() => {
32969
33030
  const containers = renderMode === "audio" ? audioContainers : videoContainers;
32970
33031
  return containers.map((c) => ({
32971
33032
  label: containerLabels[c],
@@ -32979,7 +33040,7 @@ var WebRenderModalBasic = ({
32979
33040
  value: c
32980
33041
  }));
32981
33042
  }, [container61, setContainerFormat, renderMode]);
32982
- const codecOptions = useMemo145(() => {
33043
+ const codecOptions = useMemo146(() => {
32983
33044
  return encodableVideoCodecs.map((c) => ({
32984
33045
  label: codecLabels[c],
32985
33046
  onClick: () => setCodec(c),
@@ -33569,7 +33630,7 @@ var WebRenderModalLicense = ({
33569
33630
  };
33570
33631
 
33571
33632
  // src/components/RenderModal/WebRenderModalPicture.tsx
33572
- import { useCallback as useCallback144, useMemo as useMemo146 } from "react";
33633
+ import { useCallback as useCallback144, useMemo as useMemo147 } from "react";
33573
33634
  import { jsx as jsx282, jsxs as jsxs150, Fragment as Fragment51 } from "react/jsx-runtime";
33574
33635
  var tabContainer4 = {
33575
33636
  flex: 1
@@ -33587,7 +33648,7 @@ var WebRenderModalPicture = ({
33587
33648
  compositionWidth,
33588
33649
  compositionHeight
33589
33650
  }) => {
33590
- const qualityOptions = useMemo146(() => getQualityOptions(videoBitrate, setVideoBitrate), [videoBitrate, setVideoBitrate]);
33651
+ const qualityOptions = useMemo147(() => getQualityOptions(videoBitrate, setVideoBitrate), [videoBitrate, setVideoBitrate]);
33591
33652
  const onTransparentChanged = useCallback144((e) => {
33592
33653
  setTransparent(e.target.checked);
33593
33654
  }, [setTransparent]);
@@ -33760,25 +33821,25 @@ var WebRenderModal = ({
33760
33821
  const [allowHtmlInCanvas, setAllowHtmlInCanvas] = useState95(initialAllowHtmlInCanvas ?? false);
33761
33822
  const encodableAudioCodecs = useEncodableAudioCodecs(container61);
33762
33823
  const encodableVideoCodecs = useEncodableVideoCodecs(container61);
33763
- const effectiveAudioCodec = useMemo147(() => {
33824
+ const effectiveAudioCodec = useMemo148(() => {
33764
33825
  if (encodableAudioCodecs.includes(audioCodec)) {
33765
33826
  return audioCodec;
33766
33827
  }
33767
33828
  return encodableAudioCodecs[0] ?? audioCodec;
33768
33829
  }, [audioCodec, encodableAudioCodecs]);
33769
- const effectiveVideoCodec = useMemo147(() => {
33830
+ const effectiveVideoCodec = useMemo148(() => {
33770
33831
  if (encodableVideoCodecs.includes(codec)) {
33771
33832
  return codec;
33772
33833
  }
33773
33834
  return encodableVideoCodecs[0] ?? codec;
33774
33835
  }, [codec, encodableVideoCodecs]);
33775
- const finalEndFrame = useMemo147(() => {
33836
+ const finalEndFrame = useMemo148(() => {
33776
33837
  if (endFrame === null) {
33777
33838
  return resolvedComposition.durationInFrames - 1;
33778
33839
  }
33779
33840
  return Math.max(0, Math.min(resolvedComposition.durationInFrames - 1, endFrame));
33780
33841
  }, [endFrame, resolvedComposition.durationInFrames]);
33781
- const finalStartFrame = useMemo147(() => {
33842
+ const finalStartFrame = useMemo148(() => {
33782
33843
  if (startFrame === null) {
33783
33844
  return 0;
33784
33845
  }
@@ -33843,7 +33904,7 @@ var WebRenderModal = ({
33843
33904
  setTab((prev) => prev === "audio" ? "general" : prev);
33844
33905
  }
33845
33906
  }, [container61, imageFormat, updateOutNameExtension]);
33846
- const renderTabOptions = useMemo147(() => {
33907
+ const renderTabOptions = useMemo148(() => {
33847
33908
  const options = [
33848
33909
  {
33849
33910
  label: "Still",
@@ -33889,7 +33950,7 @@ var WebRenderModal = ({
33889
33950
  const onOutNameChange = useCallback145((e) => {
33890
33951
  setOutName(e.target.value);
33891
33952
  }, []);
33892
- const outnameValidation = useMemo147(() => {
33953
+ const outnameValidation = useMemo148(() => {
33893
33954
  if (renderMode === "still") {
33894
33955
  return validateOutnameForStill({
33895
33956
  outName,
@@ -34237,7 +34298,7 @@ var WebRenderModalWithLoader = (props) => {
34237
34298
  };
34238
34299
 
34239
34300
  // src/components/UpdateModal/UpdateModal.tsx
34240
- import { useCallback as useCallback148, useMemo as useMemo149 } from "react";
34301
+ import { useCallback as useCallback148, useMemo as useMemo150 } from "react";
34241
34302
 
34242
34303
  // src/components/CopyButton.tsx
34243
34304
  import { useCallback as useCallback146, useEffect as useEffect87, useState as useState96 } from "react";
@@ -34303,7 +34364,7 @@ var CopyButton = ({ textToCopy, label: label12, labelWhenCopied }) => {
34303
34364
  };
34304
34365
 
34305
34366
  // src/components/UpdateModal/OpenIssueButton.tsx
34306
- import { useCallback as useCallback147, useMemo as useMemo148, useState as useState97 } from "react";
34367
+ import { useCallback as useCallback147, useMemo as useMemo149, useState as useState97 } from "react";
34307
34368
  import { jsx as jsx285 } from "react/jsx-runtime";
34308
34369
  var svgStyle2 = {
34309
34370
  width: "11px",
@@ -34323,7 +34384,7 @@ var OpenIssueButton = ({ link: link4 }) => {
34323
34384
  const handleClick = useCallback147(() => {
34324
34385
  window.open(link4, "_blank");
34325
34386
  }, [link4]);
34326
- const svgFillColor = useMemo148(() => {
34387
+ const svgFillColor = useMemo149(() => {
34327
34388
  return hovered ? "white" : LIGHT_TEXT;
34328
34389
  }, [hovered]);
34329
34390
  const openInEditorSvg = /* @__PURE__ */ jsx285("svg", {
@@ -34420,7 +34481,7 @@ var commands = {
34420
34481
  unknown: "npx remotion upgrade"
34421
34482
  };
34422
34483
  var UpdateModal = ({ info, knownBugs }) => {
34423
- const hasKnownBugs = useMemo149(() => {
34484
+ const hasKnownBugs = useMemo150(() => {
34424
34485
  return knownBugs && knownBugs?.length > 0;
34425
34486
  }, [knownBugs]);
34426
34487
  const command = commands[info.packageManager];
@@ -34584,6 +34645,7 @@ var Modals = ({ readOnlyStudio }) => {
34584
34645
  renderTypeOfLastRender: modalContextType.renderTypeOfLastRender,
34585
34646
  defaultMetadata: modalContextType.defaulMetadata,
34586
34647
  initialHardwareAcceleration: modalContextType.initialHardwareAcceleration,
34648
+ initialSampleRate: modalContextType.initialSampleRate,
34587
34649
  initialChromeMode: modalContextType.initialChromeMode,
34588
34650
  renderDefaults: modalContextType.renderDefaults
34589
34651
  }) : null,
@@ -34628,7 +34690,7 @@ var Editor = ({ Root, readOnlyStudio }) => {
34628
34690
  const onMounted = useCallback149(() => {
34629
34691
  setCanvasMounted(true);
34630
34692
  }, []);
34631
- const value = useMemo150(() => {
34693
+ const value = useMemo151(() => {
34632
34694
  if (!size4) {
34633
34695
  return null;
34634
34696
  }
@@ -34637,15 +34699,15 @@ var Editor = ({ Root, readOnlyStudio }) => {
34637
34699
  canvasSize: size4
34638
34700
  };
34639
34701
  }, [size4]);
34640
- const MemoRoot = useMemo150(() => {
34702
+ const MemoRoot = useMemo151(() => {
34641
34703
  return React187.memo(Root);
34642
34704
  }, [Root]);
34643
34705
  const [renderError, setRenderError] = useState98(null);
34644
34706
  const clearError = useCallback149(() => {
34645
34707
  setRenderError(null);
34646
34708
  }, []);
34647
- const compositionRenderErrorContextValue = useMemo150(() => ({ setError: setRenderError, clearError }), [clearError]);
34648
- const renderErrorContextValue = useMemo150(() => ({ error: renderError }), [renderError]);
34709
+ const compositionRenderErrorContextValue = useMemo151(() => ({ setError: setRenderError, clearError }), [clearError]);
34710
+ const renderErrorContextValue = useMemo151(() => ({ error: renderError }), [renderError]);
34649
34711
  return /* @__PURE__ */ jsx289(HigherZIndex, {
34650
34712
  onEscape: noop,
34651
34713
  onOutsideClick: noop,
@@ -34696,7 +34758,7 @@ var Editor = ({ Root, readOnlyStudio }) => {
34696
34758
  import { PlayerInternals as PlayerInternals20 } from "@remotion/player";
34697
34759
 
34698
34760
  // src/state/preview-size.tsx
34699
- import { useCallback as useCallback150, useContext as useContext97, useMemo as useMemo151, useState as useState99 } from "react";
34761
+ import { useCallback as useCallback150, useContext as useContext97, useMemo as useMemo152, useState as useState99 } from "react";
34700
34762
  import { Internals as Internals66 } from "remotion";
34701
34763
  import { jsx as jsx290 } from "react/jsx-runtime";
34702
34764
  var key5 = "remotion.previewSize";
@@ -34732,7 +34794,7 @@ var PreviewSizeProvider = ({ children }) => {
34732
34794
  return newVal;
34733
34795
  });
34734
34796
  }, []);
34735
- const previewSizeCtx = useMemo151(() => {
34797
+ const previewSizeCtx = useMemo152(() => {
34736
34798
  return {
34737
34799
  size: editorZoomGestures ? size4 : {
34738
34800
  size: size4.size,
@@ -34753,7 +34815,7 @@ var PreviewSizeProvider = ({ children }) => {
34753
34815
  };
34754
34816
 
34755
34817
  // src/components/CheckerboardProvider.tsx
34756
- import { useCallback as useCallback151, useMemo as useMemo152, useState as useState100 } from "react";
34818
+ import { useCallback as useCallback151, useMemo as useMemo153, useState as useState100 } from "react";
34757
34819
  import { jsx as jsx291 } from "react/jsx-runtime";
34758
34820
  var CheckerboardProvider = ({ children }) => {
34759
34821
  const [checkerboard, setCheckerboardState] = useState100(() => loadCheckerboardOption());
@@ -34764,7 +34826,7 @@ var CheckerboardProvider = ({ children }) => {
34764
34826
  return newVal;
34765
34827
  });
34766
34828
  }, []);
34767
- const checkerboardCtx = useMemo152(() => {
34829
+ const checkerboardCtx = useMemo153(() => {
34768
34830
  return {
34769
34831
  checkerboard,
34770
34832
  setCheckerboard
@@ -34777,19 +34839,19 @@ var CheckerboardProvider = ({ children }) => {
34777
34839
  };
34778
34840
 
34779
34841
  // src/components/MediaVolumeProvider.tsx
34780
- import { useMemo as useMemo153, useState as useState101 } from "react";
34842
+ import { useMemo as useMemo154, useState as useState101 } from "react";
34781
34843
  import { Internals as Internals67 } from "remotion";
34782
34844
  import { jsx as jsx292 } from "react/jsx-runtime";
34783
34845
  var MediaVolumeProvider = ({ children }) => {
34784
34846
  const [mediaMuted, setMediaMuted] = useState101(() => loadMuteOption());
34785
34847
  const [mediaVolume, setMediaVolume] = useState101(1);
34786
- const mediaVolumeContextValue = useMemo153(() => {
34848
+ const mediaVolumeContextValue = useMemo154(() => {
34787
34849
  return {
34788
34850
  mediaMuted,
34789
34851
  mediaVolume
34790
34852
  };
34791
34853
  }, [mediaMuted, mediaVolume]);
34792
- const setMediaVolumeContextValue = useMemo153(() => {
34854
+ const setMediaVolumeContextValue = useMemo154(() => {
34793
34855
  return {
34794
34856
  setMediaMuted,
34795
34857
  setMediaVolume
@@ -34805,11 +34867,11 @@ var MediaVolumeProvider = ({ children }) => {
34805
34867
  };
34806
34868
 
34807
34869
  // src/components/ModalsProvider.tsx
34808
- import { useMemo as useMemo154, useState as useState102 } from "react";
34870
+ import { useMemo as useMemo155, useState as useState102 } from "react";
34809
34871
  import { jsx as jsx293 } from "react/jsx-runtime";
34810
34872
  var ModalsProvider = ({ children }) => {
34811
34873
  const [modalContextType, setModalContextType] = useState102(null);
34812
- const modalsContext = useMemo154(() => {
34874
+ const modalsContext = useMemo155(() => {
34813
34875
  return {
34814
34876
  selectedModal: modalContextType,
34815
34877
  setSelectedModal: setModalContextType
@@ -34822,7 +34884,7 @@ var ModalsProvider = ({ children }) => {
34822
34884
  };
34823
34885
 
34824
34886
  // src/components/SetTimelineInOutProvider.tsx
34825
- import { useEffect as useEffect88, useMemo as useMemo155, useState as useState103 } from "react";
34887
+ import { useEffect as useEffect88, useMemo as useMemo156, useState as useState103 } from "react";
34826
34888
 
34827
34889
  // src/state/marks.ts
34828
34890
  var localStorageKey5 = () => `remotion.editor.marksv2`;
@@ -34841,7 +34903,7 @@ var loadMarks = () => {
34841
34903
  import { jsx as jsx294 } from "react/jsx-runtime";
34842
34904
  var SetTimelineInOutProvider = ({ children }) => {
34843
34905
  const [inAndOutFrames, setInAndOutFrames] = useState103(() => loadMarks());
34844
- const setTimelineInOutContextValue = useMemo155(() => {
34906
+ const setTimelineInOutContextValue = useMemo156(() => {
34845
34907
  return {
34846
34908
  setInAndOutFrames
34847
34909
  };
@@ -34859,7 +34921,7 @@ var SetTimelineInOutProvider = ({ children }) => {
34859
34921
  };
34860
34922
 
34861
34923
  // src/components/ShowGuidesProvider.tsx
34862
- import { useCallback as useCallback152, useMemo as useMemo156, useRef as useRef52, useState as useState104 } from "react";
34924
+ import { useCallback as useCallback152, useMemo as useMemo157, useRef as useRef52, useState as useState104 } from "react";
34863
34925
  import { jsx as jsx295 } from "react/jsx-runtime";
34864
34926
  var ShowGuidesProvider = ({ children }) => {
34865
34927
  const [guidesList, setGuidesList] = useState104(() => loadGuidesList());
@@ -34875,7 +34937,7 @@ var ShowGuidesProvider = ({ children }) => {
34875
34937
  return newVal;
34876
34938
  });
34877
34939
  }, []);
34878
- const editorShowGuidesCtx = useMemo156(() => {
34940
+ const editorShowGuidesCtx = useMemo157(() => {
34879
34941
  return {
34880
34942
  editorShowGuides,
34881
34943
  setEditorShowGuides,
@@ -34902,7 +34964,7 @@ var ShowGuidesProvider = ({ children }) => {
34902
34964
  };
34903
34965
 
34904
34966
  // src/components/ShowRulersProvider.tsx
34905
- import { useCallback as useCallback153, useMemo as useMemo157, useState as useState105 } from "react";
34967
+ import { useCallback as useCallback153, useMemo as useMemo158, useState as useState105 } from "react";
34906
34968
  import { jsx as jsx296 } from "react/jsx-runtime";
34907
34969
  var ShowRulersProvider = ({ children }) => {
34908
34970
  const [editorShowRulers, setEditorShowRulersState] = useState105(() => loadEditorShowRulersOption());
@@ -34913,7 +34975,7 @@ var ShowRulersProvider = ({ children }) => {
34913
34975
  return newVal;
34914
34976
  });
34915
34977
  }, []);
34916
- const editorShowRulersCtx = useMemo157(() => {
34978
+ const editorShowRulersCtx = useMemo158(() => {
34917
34979
  return {
34918
34980
  editorShowRulers,
34919
34981
  setEditorShowRulers
@@ -34945,7 +35007,7 @@ var VisualControlsUndoSync = () => {
34945
35007
  };
34946
35008
 
34947
35009
  // src/components/ZoomGesturesProvider.tsx
34948
- import { useCallback as useCallback154, useMemo as useMemo158, useState as useState106 } from "react";
35010
+ import { useCallback as useCallback154, useMemo as useMemo159, useState as useState106 } from "react";
34949
35011
  import { jsx as jsx297 } from "react/jsx-runtime";
34950
35012
  var ZoomGesturesProvider = ({ children }) => {
34951
35013
  const [editorZoomGestures, setEditorZoomGesturesState] = useState106(() => loadEditorZoomGesturesOption());
@@ -34956,7 +35018,7 @@ var ZoomGesturesProvider = ({ children }) => {
34956
35018
  return newVal;
34957
35019
  });
34958
35020
  }, []);
34959
- const editorZoomGesturesCtx = useMemo158(() => {
35021
+ const editorZoomGesturesCtx = useMemo159(() => {
34960
35022
  return {
34961
35023
  editorZoomGestures,
34962
35024
  setEditorZoomGestures
@@ -35093,7 +35155,7 @@ var ServerDisconnected = () => {
35093
35155
  };
35094
35156
 
35095
35157
  // src/FastRefreshProvider.tsx
35096
- import { useCallback as useCallback155, useEffect as useEffect90, useMemo as useMemo159, useState as useState107 } from "react";
35158
+ import { useCallback as useCallback155, useEffect as useEffect90, useMemo as useMemo160, useState as useState107 } from "react";
35097
35159
  import { jsx as jsx300 } from "react/jsx-runtime";
35098
35160
  var FastRefreshProvider = ({ children }) => {
35099
35161
  const [fastRefreshes, setFastRefreshes] = useState107(0);
@@ -35112,7 +35174,7 @@ var FastRefreshProvider = ({ children }) => {
35112
35174
  }
35113
35175
  }
35114
35176
  }, []);
35115
- const value = useMemo159(() => ({ fastRefreshes, manualRefreshes, increaseManualRefreshes }), [fastRefreshes, manualRefreshes, increaseManualRefreshes]);
35177
+ const value = useMemo160(() => ({ fastRefreshes, manualRefreshes, increaseManualRefreshes }), [fastRefreshes, manualRefreshes, increaseManualRefreshes]);
35116
35178
  return /* @__PURE__ */ jsx300(FastRefreshContext.Provider, {
35117
35179
  value,
35118
35180
  children
@@ -35287,7 +35349,7 @@ import {
35287
35349
  useContext as useContext100,
35288
35350
  useEffect as useEffect91,
35289
35351
  useImperativeHandle as useImperativeHandle14,
35290
- useMemo as useMemo160,
35352
+ useMemo as useMemo161,
35291
35353
  useState as useState108
35292
35354
  } from "react";
35293
35355
  import { getInputProps as getInputProps2, Internals as Internals69 } from "remotion";
@@ -35297,20 +35359,20 @@ var ResolveCompositionConfigInStudio = ({ children }) => {
35297
35359
  const { compositions, canvasContent, currentCompositionMetadata } = useContext100(Internals69.CompositionManager);
35298
35360
  const { fastRefreshes, manualRefreshes } = useContext100(FastRefreshContext);
35299
35361
  if (manualRefreshes) {}
35300
- const selectedComposition = useMemo160(() => {
35362
+ const selectedComposition = useMemo161(() => {
35301
35363
  return compositions.find((c) => canvasContent && canvasContent.type === "composition" && canvasContent.compositionId === c.id);
35302
35364
  }, [canvasContent, compositions]);
35303
35365
  const renderModalComposition = compositions.find((c) => c.id === currentRenderModalComposition);
35304
35366
  const { props: allEditorProps } = useContext100(Internals69.EditorPropsContext);
35305
35367
  const env = Internals69.getRemotionEnvironment();
35306
- const inputProps = useMemo160(() => {
35368
+ const inputProps = useMemo161(() => {
35307
35369
  return typeof window === "undefined" || env.isPlayer ? {} : getInputProps2() ?? {};
35308
35370
  }, [env.isPlayer]);
35309
35371
  const [resolvedConfigs, setResolvedConfigs] = useState108({});
35310
- const selectedEditorProps = useMemo160(() => {
35372
+ const selectedEditorProps = useMemo161(() => {
35311
35373
  return selectedComposition ? allEditorProps[selectedComposition.id] ?? {} : {};
35312
35374
  }, [allEditorProps, selectedComposition]);
35313
- const renderModalProps = useMemo160(() => {
35375
+ const renderModalProps = useMemo161(() => {
35314
35376
  return renderModalComposition ? allEditorProps[renderModalComposition.id] ?? {} : {};
35315
35377
  }, [allEditorProps, renderModalComposition]);
35316
35378
  const hasResolution = Boolean(currentCompositionMetadata);
@@ -35447,13 +35509,13 @@ var ResolveCompositionConfigInStudio = ({ children }) => {
35447
35509
  inputProps
35448
35510
  ]);
35449
35511
  const isTheSame = selectedComposition?.id === renderModalComposition?.id;
35450
- const currentDefaultProps = useMemo160(() => {
35512
+ const currentDefaultProps = useMemo161(() => {
35451
35513
  return {
35452
35514
  ...selectedComposition?.defaultProps ?? {},
35453
35515
  ...selectedEditorProps ?? {}
35454
35516
  };
35455
35517
  }, [selectedComposition?.defaultProps, selectedEditorProps]);
35456
- const originalProps = useMemo160(() => {
35518
+ const originalProps = useMemo161(() => {
35457
35519
  return {
35458
35520
  ...currentDefaultProps,
35459
35521
  ...inputProps ?? {}
@@ -35522,7 +35584,7 @@ var ResolveCompositionConfigInStudio = ({ children }) => {
35522
35584
  renderModalComposition,
35523
35585
  renderModalProps
35524
35586
  ]);
35525
- const resolvedConfigsIncludingStaticOnes = useMemo160(() => {
35587
+ const resolvedConfigsIncludingStaticOnes = useMemo161(() => {
35526
35588
  const staticComps = compositions.filter((c) => {
35527
35589
  return c.calculateMetadata === null;
35528
35590
  });