remotion 4.0.362 → 4.0.363

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/Img.js CHANGED
@@ -110,7 +110,9 @@ const ImgRefForwarding = ({ onError, maxRetries = 2, src, pauseWhenLoading, dela
110
110
  onImageFrame === null || onImageFrame === void 0 ? void 0 : onImageFrame(current);
111
111
  }
112
112
  unblock();
113
- continueRender(newHandle);
113
+ requestAnimationFrame(() => {
114
+ continueRender(newHandle);
115
+ });
114
116
  };
115
117
  if (!imageRef.current) {
116
118
  onComplete();
@@ -8,4 +8,6 @@ export declare const RemotionRoot: React.FC<{
8
8
  readonly onlyRenderComposition: string | null;
9
9
  readonly currentCompositionMetadata: BaseMetadata | null;
10
10
  readonly audioLatencyHint: AudioContextLatencyCategory;
11
+ readonly videoEnabled: boolean | null;
12
+ readonly audioEnabled: boolean | null;
11
13
  }>;
@@ -12,8 +12,9 @@ const prefetch_state_js_1 = require("./prefetch-state.js");
12
12
  const random_js_1 = require("./random.js");
13
13
  const timeline_position_state_js_1 = require("./timeline-position-state.js");
14
14
  const use_delay_render_js_1 = require("./use-delay-render.js");
15
+ const use_media_enabled_js_1 = require("./use-media-enabled.js");
15
16
  const duration_state_js_1 = require("./video/duration-state.js");
16
- const RemotionRoot = ({ children, numberOfAudioTags, logLevel, onlyRenderComposition, currentCompositionMetadata, audioLatencyHint, }) => {
17
+ const RemotionRoot = ({ children, numberOfAudioTags, logLevel, onlyRenderComposition, currentCompositionMetadata, audioLatencyHint, videoEnabled, audioEnabled, }) => {
17
18
  const [remotionRootId] = (0, react_1.useState)(() => String((0, random_js_1.random)(null)));
18
19
  const [frame, setFrame] = (0, react_1.useState)(() => (0, timeline_position_state_js_1.getInitialFrameState)());
19
20
  const [playing, setPlaying] = (0, react_1.useState)(false);
@@ -100,6 +101,6 @@ const RemotionRoot = ({ children, numberOfAudioTags, logLevel, onlyRenderComposi
100
101
  const logging = (0, react_1.useMemo)(() => {
101
102
  return { logLevel, mountTime: Date.now() };
102
103
  }, [logLevel]);
103
- return ((0, jsx_runtime_1.jsx)(log_level_context_js_1.LogLevelContext.Provider, { value: logging, children: (0, jsx_runtime_1.jsx)(nonce_js_1.NonceContext.Provider, { value: nonceContext, children: (0, jsx_runtime_1.jsx)(nonce_js_1.SetNonceContext.Provider, { value: setNonceContext, children: (0, jsx_runtime_1.jsx)(timeline_position_state_js_1.TimelineContext.Provider, { value: timelineContextValue, children: (0, jsx_runtime_1.jsx)(timeline_position_state_js_1.SetTimelineContext.Provider, { value: setTimelineContextValue, children: (0, jsx_runtime_1.jsx)(EditorProps_js_1.EditorPropsProvider, { children: (0, jsx_runtime_1.jsx)(prefetch_state_js_1.PrefetchProvider, { children: (0, jsx_runtime_1.jsx)(CompositionManager_js_1.CompositionManagerProvider, { numberOfAudioTags: numberOfAudioTags, onlyRenderComposition: onlyRenderComposition, currentCompositionMetadata: currentCompositionMetadata, audioLatencyHint: audioLatencyHint, children: (0, jsx_runtime_1.jsx)(duration_state_js_1.DurationsContextProvider, { children: (0, jsx_runtime_1.jsx)(buffering_js_1.BufferingProvider, { children: children }) }) }) }) }) }) }) }) }) }));
104
+ return ((0, jsx_runtime_1.jsx)(log_level_context_js_1.LogLevelContext.Provider, { value: logging, children: (0, jsx_runtime_1.jsx)(nonce_js_1.NonceContext.Provider, { value: nonceContext, children: (0, jsx_runtime_1.jsx)(nonce_js_1.SetNonceContext.Provider, { value: setNonceContext, children: (0, jsx_runtime_1.jsx)(timeline_position_state_js_1.TimelineContext.Provider, { value: timelineContextValue, children: (0, jsx_runtime_1.jsx)(timeline_position_state_js_1.SetTimelineContext.Provider, { value: setTimelineContextValue, children: (0, jsx_runtime_1.jsx)(use_media_enabled_js_1.MediaEnabledProvider, { videoEnabled: videoEnabled, audioEnabled: audioEnabled, children: (0, jsx_runtime_1.jsx)(EditorProps_js_1.EditorPropsProvider, { children: (0, jsx_runtime_1.jsx)(prefetch_state_js_1.PrefetchProvider, { children: (0, jsx_runtime_1.jsx)(CompositionManager_js_1.CompositionManagerProvider, { numberOfAudioTags: numberOfAudioTags, onlyRenderComposition: onlyRenderComposition, currentCompositionMetadata: currentCompositionMetadata, audioLatencyHint: audioLatencyHint, children: (0, jsx_runtime_1.jsx)(duration_state_js_1.DurationsContextProvider, { children: (0, jsx_runtime_1.jsx)(buffering_js_1.BufferingProvider, { children: children }) }) }) }) }) }) }) }) }) }) }));
104
105
  };
105
106
  exports.RemotionRoot = RemotionRoot;
@@ -78,6 +78,8 @@ export declare const Internals: {
78
78
  readonly onlyRenderComposition: string | null;
79
79
  readonly currentCompositionMetadata: import("./CompositionManagerContext.js").BaseMetadata | null;
80
80
  readonly audioLatencyHint: AudioContextLatencyCategory;
81
+ readonly videoEnabled: boolean | null;
82
+ readonly audioEnabled: boolean | null;
81
83
  }>;
82
84
  readonly useVideo: () => (import("./video-config.js").VideoConfig & {
83
85
  component: import("react").LazyExoticComponent<import("react").ComponentType<Record<string, unknown>>>;
@@ -352,5 +354,7 @@ export declare const Internals: {
352
354
  };
353
355
  readonly getInputPropsOverride: () => Record<string, unknown> | null;
354
356
  readonly setInputPropsOverride: (override: Record<string, unknown> | null) => void;
357
+ readonly useVideoEnabled: () => boolean;
358
+ readonly useAudioEnabled: () => boolean;
355
359
  };
356
360
  export type { CompositionManagerContext, CompProps, LoggingContextValue, MediaVolumeContextValue, RemotionEnvironment, SerializedJSONWithCustomFields, SetMediaVolumeContextValue, SetTimelineContextValue, TCompMetadata, TComposition, TimelineContextValue, TRenderAsset, TSequence, WatchRemotionStaticFilesPayload, };
@@ -73,6 +73,7 @@ const timeline_position_state_js_1 = require("./timeline-position-state.js");
73
73
  const truthy_js_1 = require("./truthy.js");
74
74
  const use_current_scale_js_1 = require("./use-current-scale.js");
75
75
  const use_lazy_component_js_1 = require("./use-lazy-component.js");
76
+ const use_media_enabled_js_1 = require("./use-media-enabled.js");
76
77
  const use_media_in_timeline_js_1 = require("./use-media-in-timeline.js");
77
78
  const use_unsafe_video_config_js_1 = require("./use-unsafe-video-config.js");
78
79
  const use_video_js_1 = require("./use-video.js");
@@ -179,4 +180,6 @@ exports.Internals = {
179
180
  useBasicMediaInTimeline: use_media_in_timeline_js_1.useBasicMediaInTimeline,
180
181
  getInputPropsOverride: input_props_override_js_1.getInputPropsOverride,
181
182
  setInputPropsOverride: input_props_override_js_1.setInputPropsOverride,
183
+ useVideoEnabled: use_media_enabled_js_1.useVideoEnabled,
184
+ useAudioEnabled: use_media_enabled_js_1.useAudioEnabled,
182
185
  };
package/dist/cjs/log.js CHANGED
@@ -17,7 +17,9 @@ const transformArgs = ({ args, logLevel, tag, }) => {
17
17
  !(0, get_remotion_environment_1.getRemotionEnvironment)().isClientSideRendering) {
18
18
  arr.unshift(Symbol.for(`__remotion_level_${logLevel}`));
19
19
  }
20
- if (tag) {
20
+ if (tag &&
21
+ (0, get_remotion_environment_1.getRemotionEnvironment)().isRendering &&
22
+ !(0, get_remotion_environment_1.getRemotionEnvironment)().isClientSideRendering) {
21
23
  arr.unshift(Symbol.for(`__remotion_tag_${tag}`));
22
24
  }
23
25
  return arr;
@@ -0,0 +1,2 @@
1
+ export declare const useVideoEnabled: () => boolean;
2
+ export declare const useAudioEnabled: () => boolean;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useAudioEnabled = exports.useVideoEnabled = void 0;
4
+ const useVideoEnabled = () => {
5
+ return window.remotion_videoEnabled;
6
+ };
7
+ exports.useVideoEnabled = useVideoEnabled;
8
+ const useAudioEnabled = () => {
9
+ return window.remotion_audioEnabled;
10
+ };
11
+ exports.useAudioEnabled = useAudioEnabled;
@@ -0,0 +1,7 @@
1
+ export declare const useVideoEnabled: () => boolean;
2
+ export declare const useAudioEnabled: () => boolean;
3
+ export declare const MediaEnabledProvider: ({ children, videoEnabled, audioEnabled, }: {
4
+ readonly children: React.ReactNode;
5
+ readonly videoEnabled: boolean | null;
6
+ readonly audioEnabled: boolean | null;
7
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MediaEnabledProvider = exports.useAudioEnabled = exports.useVideoEnabled = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const MediaEnabledContext = (0, react_1.createContext)(null);
7
+ const useVideoEnabled = () => {
8
+ const context = (0, react_1.useContext)(MediaEnabledContext);
9
+ if (!context) {
10
+ return window.remotion_videoEnabled;
11
+ }
12
+ if (context.videoEnabled === null) {
13
+ return window.remotion_videoEnabled;
14
+ }
15
+ return context.videoEnabled;
16
+ };
17
+ exports.useVideoEnabled = useVideoEnabled;
18
+ const useAudioEnabled = () => {
19
+ const context = (0, react_1.useContext)(MediaEnabledContext);
20
+ if (!context) {
21
+ return window.remotion_audioEnabled;
22
+ }
23
+ if (context.audioEnabled === null) {
24
+ return window.remotion_audioEnabled;
25
+ }
26
+ return context.audioEnabled;
27
+ };
28
+ exports.useAudioEnabled = useAudioEnabled;
29
+ const MediaEnabledProvider = ({ children, videoEnabled, audioEnabled, }) => {
30
+ const value = (0, react_1.useMemo)(() => ({ videoEnabled, audioEnabled }), [videoEnabled, audioEnabled]);
31
+ return ((0, jsx_runtime_1.jsx)(MediaEnabledContext.Provider, { value: value, children: children }));
32
+ };
33
+ exports.MediaEnabledProvider = MediaEnabledProvider;
@@ -3,4 +3,4 @@
3
3
  * @see [Documentation](https://remotion.dev/docs/version)
4
4
  * @returns {string} The current version of the remotion package
5
5
  */
6
- export declare const VERSION = "4.0.362";
6
+ export declare const VERSION = "4.0.363";
@@ -7,4 +7,4 @@ exports.VERSION = void 0;
7
7
  * @see [Documentation](https://remotion.dev/docs/version)
8
8
  * @returns {string} The current version of the remotion package
9
9
  */
10
- exports.VERSION = '4.0.362';
10
+ exports.VERSION = '4.0.363';
@@ -110,7 +110,7 @@ function truthy(value) {
110
110
  }
111
111
 
112
112
  // src/version.ts
113
- var VERSION = "4.0.362";
113
+ var VERSION = "4.0.363";
114
114
 
115
115
  // src/multiple-versions-warning.ts
116
116
  var checkMultipleRemotionVersions = () => {
@@ -1674,7 +1674,7 @@ var transformArgs = ({
1674
1674
  if (getRemotionEnvironment().isRendering && !getRemotionEnvironment().isClientSideRendering) {
1675
1675
  arr.unshift(Symbol.for(`__remotion_level_${logLevel}`));
1676
1676
  }
1677
- if (tag) {
1677
+ if (tag && getRemotionEnvironment().isRendering && !getRemotionEnvironment().isClientSideRendering) {
1678
1678
  arr.unshift(Symbol.for(`__remotion_tag_${tag}`));
1679
1679
  }
1680
1680
  return arr;
@@ -5687,7 +5687,9 @@ var ImgRefForwarding = ({
5687
5687
  onImageFrame?.(current);
5688
5688
  }
5689
5689
  unblock();
5690
- continueRender2(newHandle);
5690
+ requestAnimationFrame(() => {
5691
+ continueRender2(newHandle);
5692
+ });
5691
5693
  };
5692
5694
  if (!imageRef.current) {
5693
5695
  onComplete();
@@ -5956,18 +5958,58 @@ var waitForRoot = (fn) => {
5956
5958
  import {
5957
5959
  useEffect as useEffect18,
5958
5960
  useLayoutEffect as useLayoutEffect8,
5959
- useMemo as useMemo25,
5961
+ useMemo as useMemo26,
5960
5962
  useRef as useRef15,
5961
5963
  useState as useState17
5962
5964
  } from "react";
5965
+
5966
+ // src/use-media-enabled.tsx
5967
+ import { createContext as createContext18, useContext as useContext30, useMemo as useMemo25 } from "react";
5963
5968
  import { jsx as jsx26 } from "react/jsx-runtime";
5969
+ var MediaEnabledContext = createContext18(null);
5970
+ var useVideoEnabled = () => {
5971
+ const context = useContext30(MediaEnabledContext);
5972
+ if (!context) {
5973
+ return window.remotion_videoEnabled;
5974
+ }
5975
+ if (context.videoEnabled === null) {
5976
+ return window.remotion_videoEnabled;
5977
+ }
5978
+ return context.videoEnabled;
5979
+ };
5980
+ var useAudioEnabled = () => {
5981
+ const context = useContext30(MediaEnabledContext);
5982
+ if (!context) {
5983
+ return window.remotion_audioEnabled;
5984
+ }
5985
+ if (context.audioEnabled === null) {
5986
+ return window.remotion_audioEnabled;
5987
+ }
5988
+ return context.audioEnabled;
5989
+ };
5990
+ var MediaEnabledProvider = ({
5991
+ children,
5992
+ videoEnabled,
5993
+ audioEnabled
5994
+ }) => {
5995
+ const value = useMemo25(() => ({ videoEnabled, audioEnabled }), [videoEnabled, audioEnabled]);
5996
+ return /* @__PURE__ */ jsx26(MediaEnabledContext.Provider, {
5997
+ value,
5998
+ children
5999
+ });
6000
+ };
6001
+
6002
+ // src/RemotionRoot.tsx
6003
+ import { jsx as jsx27 } from "react/jsx-runtime";
5964
6004
  var RemotionRoot = ({
5965
6005
  children,
5966
6006
  numberOfAudioTags,
5967
6007
  logLevel,
5968
6008
  onlyRenderComposition,
5969
6009
  currentCompositionMetadata,
5970
- audioLatencyHint
6010
+ audioLatencyHint,
6011
+ videoEnabled,
6012
+ audioEnabled
5971
6013
  }) => {
5972
6014
  const [remotionRootId] = useState17(() => String(random(null)));
5973
6015
  const [frame, setFrame] = useState17(() => getInitialFrameState());
@@ -6004,7 +6046,7 @@ var RemotionRoot = ({
6004
6046
  window.remotion_isPlayer = false;
6005
6047
  }, [continueRender2, delayRender2]);
6006
6048
  }
6007
- const timelineContextValue = useMemo25(() => {
6049
+ const timelineContextValue = useMemo26(() => {
6008
6050
  return {
6009
6051
  frame,
6010
6052
  playing,
@@ -6015,13 +6057,13 @@ var RemotionRoot = ({
6015
6057
  audioAndVideoTags
6016
6058
  };
6017
6059
  }, [frame, playbackRate, playing, remotionRootId]);
6018
- const setTimelineContextValue = useMemo25(() => {
6060
+ const setTimelineContextValue = useMemo26(() => {
6019
6061
  return {
6020
6062
  setFrame,
6021
6063
  setPlaying
6022
6064
  };
6023
6065
  }, []);
6024
- const nonceContext = useMemo25(() => {
6066
+ const nonceContext = useMemo26(() => {
6025
6067
  let counter = 0;
6026
6068
  return {
6027
6069
  getNonce: () => counter++,
@@ -6029,7 +6071,7 @@ var RemotionRoot = ({
6029
6071
  manualRefreshes
6030
6072
  };
6031
6073
  }, [fastRefreshes, manualRefreshes]);
6032
- const setNonceContext = useMemo25(() => {
6074
+ const setNonceContext = useMemo26(() => {
6033
6075
  return {
6034
6076
  increaseManualRefreshes: () => {
6035
6077
  setManualRefreshes((i) => i + 1);
@@ -6047,29 +6089,33 @@ var RemotionRoot = ({
6047
6089
  }
6048
6090
  }
6049
6091
  }, []);
6050
- const logging = useMemo25(() => {
6092
+ const logging = useMemo26(() => {
6051
6093
  return { logLevel, mountTime: Date.now() };
6052
6094
  }, [logLevel]);
6053
- return /* @__PURE__ */ jsx26(LogLevelContext.Provider, {
6095
+ return /* @__PURE__ */ jsx27(LogLevelContext.Provider, {
6054
6096
  value: logging,
6055
- children: /* @__PURE__ */ jsx26(NonceContext.Provider, {
6097
+ children: /* @__PURE__ */ jsx27(NonceContext.Provider, {
6056
6098
  value: nonceContext,
6057
- children: /* @__PURE__ */ jsx26(SetNonceContext.Provider, {
6099
+ children: /* @__PURE__ */ jsx27(SetNonceContext.Provider, {
6058
6100
  value: setNonceContext,
6059
- children: /* @__PURE__ */ jsx26(TimelineContext.Provider, {
6101
+ children: /* @__PURE__ */ jsx27(TimelineContext.Provider, {
6060
6102
  value: timelineContextValue,
6061
- children: /* @__PURE__ */ jsx26(SetTimelineContext.Provider, {
6103
+ children: /* @__PURE__ */ jsx27(SetTimelineContext.Provider, {
6062
6104
  value: setTimelineContextValue,
6063
- children: /* @__PURE__ */ jsx26(EditorPropsProvider, {
6064
- children: /* @__PURE__ */ jsx26(PrefetchProvider, {
6065
- children: /* @__PURE__ */ jsx26(CompositionManagerProvider, {
6066
- numberOfAudioTags,
6067
- onlyRenderComposition,
6068
- currentCompositionMetadata,
6069
- audioLatencyHint,
6070
- children: /* @__PURE__ */ jsx26(DurationsContextProvider, {
6071
- children: /* @__PURE__ */ jsx26(BufferingProvider, {
6072
- children
6105
+ children: /* @__PURE__ */ jsx27(MediaEnabledProvider, {
6106
+ videoEnabled,
6107
+ audioEnabled,
6108
+ children: /* @__PURE__ */ jsx27(EditorPropsProvider, {
6109
+ children: /* @__PURE__ */ jsx27(PrefetchProvider, {
6110
+ children: /* @__PURE__ */ jsx27(CompositionManagerProvider, {
6111
+ numberOfAudioTags,
6112
+ onlyRenderComposition,
6113
+ currentCompositionMetadata,
6114
+ audioLatencyHint,
6115
+ children: /* @__PURE__ */ jsx27(DurationsContextProvider, {
6116
+ children: /* @__PURE__ */ jsx27(BufferingProvider, {
6117
+ children
6118
+ })
6073
6119
  })
6074
6120
  })
6075
6121
  })
@@ -6110,9 +6156,9 @@ var setupEnvVariables = () => {
6110
6156
  };
6111
6157
 
6112
6158
  // src/use-current-scale.ts
6113
- import React26, { createContext as createContext18 } from "react";
6159
+ import React26, { createContext as createContext19 } from "react";
6114
6160
  var CurrentScaleContext = React26.createContext(null);
6115
- var PreviewSizeContext = createContext18({
6161
+ var PreviewSizeContext = createContext19({
6116
6162
  setSize: () => {
6117
6163
  return;
6118
6164
  },
@@ -6172,10 +6218,10 @@ import { useCallback as useCallback16 } from "react";
6172
6218
  // src/video/OffthreadVideoForRendering.tsx
6173
6219
  import {
6174
6220
  useCallback as useCallback15,
6175
- useContext as useContext30,
6221
+ useContext as useContext31,
6176
6222
  useEffect as useEffect19,
6177
6223
  useLayoutEffect as useLayoutEffect9,
6178
- useMemo as useMemo26,
6224
+ useMemo as useMemo27,
6179
6225
  useState as useState18
6180
6226
  } from "react";
6181
6227
 
@@ -6190,7 +6236,7 @@ var getOffthreadVideoSource = ({
6190
6236
  };
6191
6237
 
6192
6238
  // src/video/OffthreadVideoForRendering.tsx
6193
- import { jsx as jsx27 } from "react/jsx-runtime";
6239
+ import { jsx as jsx28 } from "react/jsx-runtime";
6194
6240
  var OffthreadVideoForRendering = ({
6195
6241
  onError,
6196
6242
  volume: volumeProp,
@@ -6214,13 +6260,13 @@ var OffthreadVideoForRendering = ({
6214
6260
  const frame = useCurrentFrame();
6215
6261
  const volumePropsFrame = useFrameForVolumeProp(loopVolumeCurveBehavior);
6216
6262
  const videoConfig = useUnsafeVideoConfig();
6217
- const sequenceContext = useContext30(SequenceContext);
6263
+ const sequenceContext = useContext31(SequenceContext);
6218
6264
  const mediaStartsAt = useMediaStartsAt();
6219
- const { registerRenderAsset, unregisterRenderAsset } = useContext30(RenderAssetManager);
6265
+ const { registerRenderAsset, unregisterRenderAsset } = useContext31(RenderAssetManager);
6220
6266
  if (!src) {
6221
6267
  throw new TypeError("No `src` was passed to <OffthreadVideo>.");
6222
6268
  }
6223
- const id = useMemo26(() => `offthreadvideo-${random(src)}-${sequenceContext?.cumulatedFrom}-${sequenceContext?.relativeFrom}-${sequenceContext?.durationInFrames}`, [
6269
+ const id = useMemo27(() => `offthreadvideo-${random(src)}-${sequenceContext?.cumulatedFrom}-${sequenceContext?.relativeFrom}-${sequenceContext?.durationInFrames}`, [
6224
6270
  src,
6225
6271
  sequenceContext?.cumulatedFrom,
6226
6272
  sequenceContext?.relativeFrom,
@@ -6275,14 +6321,14 @@ var OffthreadVideoForRendering = ({
6275
6321
  sequenceContext?.relativeFrom,
6276
6322
  audioStreamIndex
6277
6323
  ]);
6278
- const currentTime = useMemo26(() => {
6324
+ const currentTime = useMemo27(() => {
6279
6325
  return getExpectedMediaFrameUncorrected({
6280
6326
  frame,
6281
6327
  playbackRate: playbackRate || 1,
6282
6328
  startFrom: -mediaStartsAt
6283
6329
  }) / videoConfig.fps;
6284
6330
  }, [frame, mediaStartsAt, playbackRate, videoConfig.fps]);
6285
- const actualSrc = useMemo26(() => {
6331
+ const actualSrc = useMemo27(() => {
6286
6332
  return getOffthreadVideoSource({
6287
6333
  src,
6288
6334
  currentTime,
@@ -6370,7 +6416,7 @@ var OffthreadVideoForRendering = ({
6370
6416
  cancelRender("Failed to load image with src " + imageSrc);
6371
6417
  }
6372
6418
  }, [imageSrc, onError]);
6373
- const className = useMemo26(() => {
6419
+ const className = useMemo27(() => {
6374
6420
  return [OBJECTFIT_CONTAIN_CLASS_NAME, props2.className].filter(truthy).join(" ");
6375
6421
  }, [props2.className]);
6376
6422
  const onImageFrame = useCallback15((img) => {
@@ -6382,7 +6428,7 @@ var OffthreadVideoForRendering = ({
6382
6428
  return null;
6383
6429
  }
6384
6430
  continueRender2(imageSrc.handle);
6385
- return /* @__PURE__ */ jsx27(Img, {
6431
+ return /* @__PURE__ */ jsx28(Img, {
6386
6432
  src: imageSrc.src,
6387
6433
  delayRenderRetries,
6388
6434
  delayRenderTimeoutInMilliseconds,
@@ -6396,10 +6442,10 @@ var OffthreadVideoForRendering = ({
6396
6442
  // src/video/VideoForPreview.tsx
6397
6443
  import {
6398
6444
  forwardRef as forwardRef9,
6399
- useContext as useContext31,
6445
+ useContext as useContext32,
6400
6446
  useEffect as useEffect21,
6401
6447
  useImperativeHandle as useImperativeHandle9,
6402
- useMemo as useMemo27,
6448
+ useMemo as useMemo28,
6403
6449
  useRef as useRef16,
6404
6450
  useState as useState19
6405
6451
  } from "react";
@@ -6434,14 +6480,14 @@ var useEmitVideoFrame = ({
6434
6480
  };
6435
6481
 
6436
6482
  // src/video/VideoForPreview.tsx
6437
- import { jsx as jsx28 } from "react/jsx-runtime";
6483
+ import { jsx as jsx29 } from "react/jsx-runtime";
6438
6484
  var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
6439
- const context = useContext31(SharedAudioContext);
6485
+ const context = useContext32(SharedAudioContext);
6440
6486
  if (!context) {
6441
6487
  throw new Error("SharedAudioContext not found");
6442
6488
  }
6443
6489
  const videoRef = useRef16(null);
6444
- const sharedSource = useMemo27(() => {
6490
+ const sharedSource = useMemo28(() => {
6445
6491
  if (!context.audioContext) {
6446
6492
  return null;
6447
6493
  }
@@ -6484,8 +6530,8 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
6484
6530
  }
6485
6531
  const volumePropFrame = useFrameForVolumeProp(loopVolumeCurveBehavior ?? "repeat");
6486
6532
  const { fps, durationInFrames } = useVideoConfig();
6487
- const parentSequence = useContext31(SequenceContext);
6488
- const { hidden } = useContext31(SequenceVisibilityToggleContext);
6533
+ const parentSequence = useContext32(SequenceContext);
6534
+ const { hidden } = useContext32(SequenceVisibilityToggleContext);
6489
6535
  const logLevel = useLogLevel();
6490
6536
  const mountTime = useMountTime();
6491
6537
  const [timelineId] = useState19(() => String(Math.random()));
@@ -6619,7 +6665,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
6619
6665
  current.preload = "auto";
6620
6666
  }
6621
6667
  }, []);
6622
- const actualStyle = useMemo27(() => {
6668
+ const actualStyle = useMemo28(() => {
6623
6669
  return {
6624
6670
  ...style,
6625
6671
  opacity: isSequenceHidden ? 0 : style?.opacity ?? 1
@@ -6629,7 +6675,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
6629
6675
  crossOrigin,
6630
6676
  requestsVideoFrame: Boolean(onVideoFrame)
6631
6677
  });
6632
- return /* @__PURE__ */ jsx28("video", {
6678
+ return /* @__PURE__ */ jsx29("video", {
6633
6679
  ref: videoRef,
6634
6680
  muted: muted || mediaMuted || isSequenceHidden || userPreferredVolume <= 0,
6635
6681
  playsInline: true,
@@ -6644,7 +6690,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
6644
6690
  var VideoForPreview = forwardRef9(VideoForDevelopmentRefForwardingFunction);
6645
6691
 
6646
6692
  // src/video/OffthreadVideo.tsx
6647
- import { jsx as jsx29 } from "react/jsx-runtime";
6693
+ import { jsx as jsx30 } from "react/jsx-runtime";
6648
6694
  var InnerOffthreadVideo = (props2) => {
6649
6695
  const {
6650
6696
  startFrom,
@@ -6672,13 +6718,13 @@ var InnerOffthreadVideo = (props2) => {
6672
6718
  trimAfter
6673
6719
  });
6674
6720
  if (typeof trimBeforeValue !== "undefined" || typeof trimAfterValue !== "undefined") {
6675
- return /* @__PURE__ */ jsx29(Sequence, {
6721
+ return /* @__PURE__ */ jsx30(Sequence, {
6676
6722
  layout: "none",
6677
6723
  from: 0 - (trimBeforeValue ?? 0),
6678
6724
  showInTimeline: false,
6679
6725
  durationInFrames: trimAfterValue,
6680
6726
  name,
6681
- children: /* @__PURE__ */ jsx29(InnerOffthreadVideo, {
6727
+ children: /* @__PURE__ */ jsx30(InnerOffthreadVideo, {
6682
6728
  pauseWhenBuffering: pauseWhenBuffering ?? false,
6683
6729
  ...otherProps,
6684
6730
  trimAfter: undefined,
@@ -6693,7 +6739,7 @@ var InnerOffthreadVideo = (props2) => {
6693
6739
  }
6694
6740
  validateMediaProps(props2, "Video");
6695
6741
  if (environment.isRendering) {
6696
- return /* @__PURE__ */ jsx29(OffthreadVideoForRendering, {
6742
+ return /* @__PURE__ */ jsx30(OffthreadVideoForRendering, {
6697
6743
  pauseWhenBuffering: pauseWhenBuffering ?? false,
6698
6744
  ...otherProps,
6699
6745
  trimAfter: undefined,
@@ -6715,7 +6761,7 @@ var InnerOffthreadVideo = (props2) => {
6715
6761
  delayRenderTimeoutInMilliseconds,
6716
6762
  ...propsForPreview
6717
6763
  } = otherProps;
6718
- return /* @__PURE__ */ jsx29(VideoForPreview, {
6764
+ return /* @__PURE__ */ jsx30(VideoForPreview, {
6719
6765
  _remotionInternalStack: stack ?? null,
6720
6766
  onDuration,
6721
6767
  onlyWarnForMediaSeekingError: true,
@@ -6764,7 +6810,7 @@ var OffthreadVideo = ({
6764
6810
  if (imageFormat) {
6765
6811
  throw new TypeError(`The \`<OffthreadVideo>\` tag does no longer accept \`imageFormat\`. Use the \`transparent\` prop if you want to render a transparent video.`);
6766
6812
  }
6767
- return /* @__PURE__ */ jsx29(InnerOffthreadVideo, {
6813
+ return /* @__PURE__ */ jsx30(InnerOffthreadVideo, {
6768
6814
  acceptableTimeShiftInSeconds,
6769
6815
  allowAmplificationDuringRender: allowAmplificationDuringRender ?? true,
6770
6816
  audioStreamIndex: audioStreamIndex ?? 0,
@@ -6837,8 +6883,8 @@ var watchStaticFile = (fileName, callback) => {
6837
6883
  };
6838
6884
 
6839
6885
  // src/wrap-remotion-context.tsx
6840
- import React30, { useMemo as useMemo28 } from "react";
6841
- import { jsx as jsx30 } from "react/jsx-runtime";
6886
+ import React30, { useMemo as useMemo29 } from "react";
6887
+ import { jsx as jsx31 } from "react/jsx-runtime";
6842
6888
  function useRemotionContexts() {
6843
6889
  const compositionManagerCtx = React30.useContext(CompositionManager);
6844
6890
  const timelineContext = React30.useContext(TimelineContext);
@@ -6852,7 +6898,7 @@ function useRemotionContexts() {
6852
6898
  const sequenceManagerContext = React30.useContext(SequenceManager);
6853
6899
  const bufferManagerContext = React30.useContext(BufferingContextReact);
6854
6900
  const logLevelContext = React30.useContext(LogLevelContext);
6855
- return useMemo28(() => ({
6901
+ return useMemo29(() => ({
6856
6902
  compositionManagerCtx,
6857
6903
  timelineContext,
6858
6904
  setTimelineContext,
@@ -6882,29 +6928,29 @@ function useRemotionContexts() {
6882
6928
  }
6883
6929
  var RemotionContextProvider = (props2) => {
6884
6930
  const { children, contexts } = props2;
6885
- return /* @__PURE__ */ jsx30(LogLevelContext.Provider, {
6931
+ return /* @__PURE__ */ jsx31(LogLevelContext.Provider, {
6886
6932
  value: contexts.logLevelContext,
6887
- children: /* @__PURE__ */ jsx30(CanUseRemotionHooks.Provider, {
6933
+ children: /* @__PURE__ */ jsx31(CanUseRemotionHooks.Provider, {
6888
6934
  value: contexts.canUseRemotionHooksContext,
6889
- children: /* @__PURE__ */ jsx30(NonceContext.Provider, {
6935
+ children: /* @__PURE__ */ jsx31(NonceContext.Provider, {
6890
6936
  value: contexts.nonceContext,
6891
- children: /* @__PURE__ */ jsx30(PreloadContext.Provider, {
6937
+ children: /* @__PURE__ */ jsx31(PreloadContext.Provider, {
6892
6938
  value: contexts.preloadContext,
6893
- children: /* @__PURE__ */ jsx30(CompositionManager.Provider, {
6939
+ children: /* @__PURE__ */ jsx31(CompositionManager.Provider, {
6894
6940
  value: contexts.compositionManagerCtx,
6895
- children: /* @__PURE__ */ jsx30(SequenceManager.Provider, {
6941
+ children: /* @__PURE__ */ jsx31(SequenceManager.Provider, {
6896
6942
  value: contexts.sequenceManagerContext,
6897
- children: /* @__PURE__ */ jsx30(RenderAssetManager.Provider, {
6943
+ children: /* @__PURE__ */ jsx31(RenderAssetManager.Provider, {
6898
6944
  value: contexts.renderAssetManagerContext,
6899
- children: /* @__PURE__ */ jsx30(ResolveCompositionContext.Provider, {
6945
+ children: /* @__PURE__ */ jsx31(ResolveCompositionContext.Provider, {
6900
6946
  value: contexts.resolveCompositionContext,
6901
- children: /* @__PURE__ */ jsx30(TimelineContext.Provider, {
6947
+ children: /* @__PURE__ */ jsx31(TimelineContext.Provider, {
6902
6948
  value: contexts.timelineContext,
6903
- children: /* @__PURE__ */ jsx30(SetTimelineContext.Provider, {
6949
+ children: /* @__PURE__ */ jsx31(SetTimelineContext.Provider, {
6904
6950
  value: contexts.setTimelineContext,
6905
- children: /* @__PURE__ */ jsx30(SequenceContext.Provider, {
6951
+ children: /* @__PURE__ */ jsx31(SequenceContext.Provider, {
6906
6952
  value: contexts.sequenceContext,
6907
- children: /* @__PURE__ */ jsx30(BufferingContextReact.Provider, {
6953
+ children: /* @__PURE__ */ jsx31(BufferingContextReact.Provider, {
6908
6954
  value: contexts.bufferManagerContext,
6909
6955
  children
6910
6956
  })
@@ -7008,7 +7054,9 @@ var Internals = {
7008
7054
  InnerOffthreadVideo,
7009
7055
  useBasicMediaInTimeline,
7010
7056
  getInputPropsOverride,
7011
- setInputPropsOverride
7057
+ setInputPropsOverride,
7058
+ useVideoEnabled,
7059
+ useAudioEnabled
7012
7060
  };
7013
7061
  // src/interpolate-colors.ts
7014
7062
  var NUMBER = "[-+]?\\d*\\.?\\d+";
@@ -7374,7 +7422,7 @@ var validateFrame = ({
7374
7422
  }
7375
7423
  };
7376
7424
  // src/series/index.tsx
7377
- import { Children, forwardRef as forwardRef10, useMemo as useMemo29 } from "react";
7425
+ import { Children, forwardRef as forwardRef10, useMemo as useMemo30 } from "react";
7378
7426
 
7379
7427
  // src/series/flatten-children.tsx
7380
7428
  import React31 from "react";
@@ -7390,17 +7438,17 @@ var flattenChildren = (children) => {
7390
7438
  };
7391
7439
 
7392
7440
  // src/series/is-inside-series.tsx
7393
- import React32, { createContext as createContext19 } from "react";
7394
- import { jsx as jsx31 } from "react/jsx-runtime";
7395
- var IsInsideSeriesContext = createContext19(false);
7441
+ import React32, { createContext as createContext20 } from "react";
7442
+ import { jsx as jsx32 } from "react/jsx-runtime";
7443
+ var IsInsideSeriesContext = createContext20(false);
7396
7444
  var IsInsideSeriesContainer = ({ children }) => {
7397
- return /* @__PURE__ */ jsx31(IsInsideSeriesContext.Provider, {
7445
+ return /* @__PURE__ */ jsx32(IsInsideSeriesContext.Provider, {
7398
7446
  value: true,
7399
7447
  children
7400
7448
  });
7401
7449
  };
7402
7450
  var IsNotInsideSeriesProvider = ({ children }) => {
7403
- return /* @__PURE__ */ jsx31(IsInsideSeriesContext.Provider, {
7451
+ return /* @__PURE__ */ jsx32(IsInsideSeriesContext.Provider, {
7404
7452
  value: false,
7405
7453
  children
7406
7454
  });
@@ -7413,16 +7461,16 @@ var useRequireToBeInsideSeries = () => {
7413
7461
  };
7414
7462
 
7415
7463
  // src/series/index.tsx
7416
- import { jsx as jsx32 } from "react/jsx-runtime";
7464
+ import { jsx as jsx33 } from "react/jsx-runtime";
7417
7465
  var SeriesSequenceRefForwardingFunction = ({ children }, _ref) => {
7418
7466
  useRequireToBeInsideSeries();
7419
- return /* @__PURE__ */ jsx32(IsNotInsideSeriesProvider, {
7467
+ return /* @__PURE__ */ jsx33(IsNotInsideSeriesProvider, {
7420
7468
  children
7421
7469
  });
7422
7470
  };
7423
7471
  var SeriesSequence = forwardRef10(SeriesSequenceRefForwardingFunction);
7424
7472
  var Series = (props2) => {
7425
- const childrenValue = useMemo29(() => {
7473
+ const childrenValue = useMemo30(() => {
7426
7474
  let startFrame = 0;
7427
7475
  const flattenedChildren = flattenChildren(props2.children);
7428
7476
  return Children.map(flattenedChildren, (child, i) => {
@@ -7466,7 +7514,7 @@ var Series = (props2) => {
7466
7514
  }
7467
7515
  const currentStartFrame = startFrame + offset;
7468
7516
  startFrame += durationInFramesProp + offset;
7469
- return /* @__PURE__ */ jsx32(Sequence, {
7517
+ return /* @__PURE__ */ jsx33(Sequence, {
7470
7518
  name: name || "<Series.Sequence>",
7471
7519
  from: currentStartFrame,
7472
7520
  durationInFrames: durationInFramesProp,
@@ -7477,14 +7525,14 @@ var Series = (props2) => {
7477
7525
  });
7478
7526
  }, [props2.children]);
7479
7527
  if (ENABLE_V5_BREAKING_CHANGES) {
7480
- return /* @__PURE__ */ jsx32(IsInsideSeriesContainer, {
7481
- children: /* @__PURE__ */ jsx32(Sequence, {
7528
+ return /* @__PURE__ */ jsx33(IsInsideSeriesContainer, {
7529
+ children: /* @__PURE__ */ jsx33(Sequence, {
7482
7530
  ...props2,
7483
7531
  children: childrenValue
7484
7532
  })
7485
7533
  });
7486
7534
  }
7487
- return /* @__PURE__ */ jsx32(IsInsideSeriesContainer, {
7535
+ return /* @__PURE__ */ jsx33(IsInsideSeriesContainer, {
7488
7536
  children: childrenValue
7489
7537
  });
7490
7538
  };
@@ -7831,16 +7879,16 @@ var Still = (props2) => {
7831
7879
  return React34.createElement(Composition, newProps);
7832
7880
  };
7833
7881
  // src/video/Video.tsx
7834
- import { forwardRef as forwardRef12, useCallback as useCallback17, useContext as useContext33 } from "react";
7882
+ import { forwardRef as forwardRef12, useCallback as useCallback17, useContext as useContext34 } from "react";
7835
7883
 
7836
7884
  // src/video/VideoForRendering.tsx
7837
7885
  import {
7838
7886
  forwardRef as forwardRef11,
7839
- useContext as useContext32,
7887
+ useContext as useContext33,
7840
7888
  useEffect as useEffect22,
7841
7889
  useImperativeHandle as useImperativeHandle10,
7842
7890
  useLayoutEffect as useLayoutEffect10,
7843
- useMemo as useMemo30,
7891
+ useMemo as useMemo31,
7844
7892
  useRef as useRef17
7845
7893
  } from "react";
7846
7894
 
@@ -7969,7 +8017,7 @@ var seekToTimeMultipleUntilRight = ({
7969
8017
  };
7970
8018
 
7971
8019
  // src/video/VideoForRendering.tsx
7972
- import { jsx as jsx33 } from "react/jsx-runtime";
8020
+ import { jsx as jsx34 } from "react/jsx-runtime";
7973
8021
  var VideoForRenderingForwardFunction = ({
7974
8022
  onError,
7975
8023
  volume: volumeProp,
@@ -7990,14 +8038,14 @@ var VideoForRenderingForwardFunction = ({
7990
8038
  const volumePropsFrame = useFrameForVolumeProp(loopVolumeCurveBehavior ?? "repeat");
7991
8039
  const videoConfig = useUnsafeVideoConfig();
7992
8040
  const videoRef = useRef17(null);
7993
- const sequenceContext = useContext32(SequenceContext);
8041
+ const sequenceContext = useContext33(SequenceContext);
7994
8042
  const mediaStartsAt = useMediaStartsAt();
7995
8043
  const environment = useRemotionEnvironment();
7996
8044
  const logLevel = useLogLevel();
7997
8045
  const mountTime = useMountTime();
7998
8046
  const { delayRender: delayRender2, continueRender: continueRender2 } = useDelayRender();
7999
- const { registerRenderAsset, unregisterRenderAsset } = useContext32(RenderAssetManager);
8000
- const id = useMemo30(() => `video-${random(props2.src ?? "")}-${sequenceContext?.cumulatedFrom}-${sequenceContext?.relativeFrom}-${sequenceContext?.durationInFrames}`, [
8047
+ const { registerRenderAsset, unregisterRenderAsset } = useContext33(RenderAssetManager);
8048
+ const id = useMemo31(() => `video-${random(props2.src ?? "")}-${sequenceContext?.cumulatedFrom}-${sequenceContext?.relativeFrom}-${sequenceContext?.durationInFrames}`, [
8001
8049
  props2.src,
8002
8050
  sequenceContext?.cumulatedFrom,
8003
8051
  sequenceContext?.relativeFrom,
@@ -8173,7 +8221,7 @@ var VideoForRenderingForwardFunction = ({
8173
8221
  delayRender2
8174
8222
  ]);
8175
8223
  }
8176
- return /* @__PURE__ */ jsx33("video", {
8224
+ return /* @__PURE__ */ jsx34("video", {
8177
8225
  ref: videoRef,
8178
8226
  disableRemotePlayback: true,
8179
8227
  ...props2
@@ -8182,7 +8230,7 @@ var VideoForRenderingForwardFunction = ({
8182
8230
  var VideoForRendering = forwardRef11(VideoForRenderingForwardFunction);
8183
8231
 
8184
8232
  // src/video/Video.tsx
8185
- import { jsx as jsx34 } from "react/jsx-runtime";
8233
+ import { jsx as jsx35 } from "react/jsx-runtime";
8186
8234
  var VideoForwardingFunction = (props2, ref) => {
8187
8235
  const {
8188
8236
  startFrom,
@@ -8200,7 +8248,7 @@ var VideoForwardingFunction = (props2, ref) => {
8200
8248
  const { loop, ...propsOtherThanLoop } = props2;
8201
8249
  const { fps } = useVideoConfig();
8202
8250
  const environment = useRemotionEnvironment();
8203
- const { durations, setDurations } = useContext33(DurationsContext);
8251
+ const { durations, setDurations } = useContext34(DurationsContext);
8204
8252
  if (typeof ref === "string") {
8205
8253
  throw new Error("string refs are not supported");
8206
8254
  }
@@ -8222,14 +8270,14 @@ var VideoForwardingFunction = (props2, ref) => {
8222
8270
  });
8223
8271
  if (loop && durationFetched !== undefined) {
8224
8272
  if (!Number.isFinite(durationFetched)) {
8225
- return /* @__PURE__ */ jsx34(Html5Video, {
8273
+ return /* @__PURE__ */ jsx35(Html5Video, {
8226
8274
  ...propsOtherThanLoop,
8227
8275
  ref,
8228
8276
  _remotionInternalNativeLoopPassed: true
8229
8277
  });
8230
8278
  }
8231
8279
  const mediaDuration = durationFetched * fps;
8232
- return /* @__PURE__ */ jsx34(Loop, {
8280
+ return /* @__PURE__ */ jsx35(Loop, {
8233
8281
  durationInFrames: calculateMediaDuration({
8234
8282
  trimAfter: trimAfterValue,
8235
8283
  mediaDurationInFrames: mediaDuration,
@@ -8238,7 +8286,7 @@ var VideoForwardingFunction = (props2, ref) => {
8238
8286
  }),
8239
8287
  layout: "none",
8240
8288
  name,
8241
- children: /* @__PURE__ */ jsx34(Html5Video, {
8289
+ children: /* @__PURE__ */ jsx35(Html5Video, {
8242
8290
  ...propsOtherThanLoop,
8243
8291
  ref,
8244
8292
  _remotionInternalNativeLoopPassed: true
@@ -8246,13 +8294,13 @@ var VideoForwardingFunction = (props2, ref) => {
8246
8294
  });
8247
8295
  }
8248
8296
  if (typeof trimBeforeValue !== "undefined" || typeof trimAfterValue !== "undefined") {
8249
- return /* @__PURE__ */ jsx34(Sequence, {
8297
+ return /* @__PURE__ */ jsx35(Sequence, {
8250
8298
  layout: "none",
8251
8299
  from: 0 - (trimBeforeValue ?? 0),
8252
8300
  showInTimeline: false,
8253
8301
  durationInFrames: trimAfterValue,
8254
8302
  name,
8255
- children: /* @__PURE__ */ jsx34(Html5Video, {
8303
+ children: /* @__PURE__ */ jsx35(Html5Video, {
8256
8304
  pauseWhenBuffering: pauseWhenBuffering ?? false,
8257
8305
  ...otherProps,
8258
8306
  ref
@@ -8261,14 +8309,14 @@ var VideoForwardingFunction = (props2, ref) => {
8261
8309
  }
8262
8310
  validateMediaProps({ playbackRate: props2.playbackRate, volume: props2.volume }, "Html5Video");
8263
8311
  if (environment.isRendering) {
8264
- return /* @__PURE__ */ jsx34(VideoForRendering, {
8312
+ return /* @__PURE__ */ jsx35(VideoForRendering, {
8265
8313
  onDuration,
8266
8314
  onVideoFrame: onVideoFrame ?? null,
8267
8315
  ...otherProps,
8268
8316
  ref
8269
8317
  });
8270
8318
  }
8271
- return /* @__PURE__ */ jsx34(VideoForPreview, {
8319
+ return /* @__PURE__ */ jsx35(VideoForPreview, {
8272
8320
  onlyWarnForMediaSeekingError: false,
8273
8321
  ...otherProps,
8274
8322
  ref,
@@ -1,5 +1,5 @@
1
1
  // src/version.ts
2
- var VERSION = "4.0.362";
2
+ var VERSION = "4.0.363";
3
3
  export {
4
4
  VERSION
5
5
  };
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/core"
4
4
  },
5
5
  "name": "remotion",
6
- "version": "4.0.362",
6
+ "version": "4.0.363",
7
7
  "description": "Make videos programmatically",
8
8
  "main": "dist/cjs/index.js",
9
9
  "types": "dist/cjs/index.d.ts",
@@ -29,12 +29,12 @@
29
29
  "@testing-library/dom": "10.4.0",
30
30
  "@happy-dom/global-registrator": "14.5.1",
31
31
  "@types/dom-webcodecs": "0.1.11",
32
- "happy-dom": "15.10.2",
32
+ "happy-dom": "20.0.2",
33
33
  "react": "19.0.0",
34
34
  "react-dom": "19.0.0",
35
35
  "webpack": "5.96.1",
36
36
  "zod": "3.22.3",
37
- "@remotion/eslint-config-internal": "4.0.362",
37
+ "@remotion/eslint-config-internal": "4.0.363",
38
38
  "eslint": "9.19.0"
39
39
  },
40
40
  "keywords": [