@remotion/player 4.0.515 → 4.0.517

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.
@@ -1,16 +1,50 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
5
38
  Object.defineProperty(exports, "__esModule", { value: true });
6
39
  exports.Player = exports.componentOrNullIfLazy = void 0;
7
40
  const jsx_runtime_1 = require("react/jsx-runtime");
8
- const react_1 = require("react");
41
+ const react_1 = __importStar(require("react"));
9
42
  const remotion_1 = require("remotion");
10
43
  const EmitterProvider_js_1 = require("./EmitterProvider.js");
11
44
  const player_css_classname_js_1 = require("./player-css-classname.js");
12
45
  const PlayerUI_js_1 = __importDefault(require("./PlayerUI.js"));
13
46
  const SharedPlayerContext_js_1 = require("./SharedPlayerContext.js");
47
+ const timeline_sequence_observer_context_js_1 = require("./timeline-sequence-observer-context.js");
14
48
  const use_remotion_license_acknowledge_js_1 = require("./use-remotion-license-acknowledge.js");
15
49
  const validate_in_out_frame_js_1 = require("./utils/validate-in-out-frame.js");
16
50
  const validate_initial_frame_js_1 = require("./utils/validate-initial-frame.js");
@@ -23,10 +57,18 @@ const componentOrNullIfLazy = (props) => {
23
57
  return null;
24
58
  };
25
59
  exports.componentOrNullIfLazy = componentOrNullIfLazy;
60
+ const TimelineSequenceObserverComponent = ({ onTimelineSequenceChange }) => {
61
+ const { sequences } = react_1.default.useContext(remotion_1.Internals.SequenceManager);
62
+ (0, react_1.useEffect)(() => {
63
+ onTimelineSequenceChange(sequences);
64
+ }, [onTimelineSequenceChange, sequences]);
65
+ return null;
66
+ };
26
67
  const PlayerFn = ({ durationInFrames, compositionHeight, compositionWidth, fps, inputProps, style, controls = false, loop = false, autoPlay = false, showVolumeControls = true, allowFullscreen = true, clickToPlay, doubleClickToFullscreen = false, spaceKeyToPlayOrPause = true, moveToBeginningWhenEnded = true, numberOfSharedAudioTags = 5, errorFallback = () => '⚠️', playbackRate = 1, renderLoading, className, showPosterWhenUnplayed, showPosterWhenEnded, showPosterWhenPaused, showPosterWhenBuffering, showPosterWhenBufferingAndPaused, initialFrame, renderPoster, inFrame, outFrame, initiallyShowControls, renderFullscreenButton, renderPlayPauseButton, renderVolumeSlider, renderCustomControls, alwaysShowControls = false, initiallyMuted = false, showPlaybackRateControl = false, posterFillMode = 'player-size', bufferStateDelayInMilliseconds, hideControlsWhenPointerDoesntMove = true, overflowVisible = false, renderMuteButton, browserMediaControlsBehavior: passedBrowserMediaControlsBehavior, overrideInternalClassName, logLevel = 'info', noSuspense, acknowledgeRemotionLicense, audioLatencyHint = 'playback', sampleRate = 48000, volumePersistenceKey, initialVolume, _experimentalKeepAudioContextAlive = false, ...componentProps }, ref) => {
27
68
  if (typeof window !== 'undefined') {
28
69
  window.remotion_isPlayer = true;
29
70
  }
71
+ const onTimelineSequenceChange = react_1.default.useContext(timeline_sequence_observer_context_js_1.TimelineSequenceObserverContext);
30
72
  // @ts-expect-error
31
73
  if (componentProps.defaultProps !== undefined) {
32
74
  throw new Error('The <Player /> component does not accept `defaultProps`, but some were passed. Use `inputProps` instead.');
@@ -172,9 +214,14 @@ const PlayerFn = ({ durationInFrames, compositionHeight, compositionWidth, fps,
172
214
  mode: 'prevent-media-session',
173
215
  });
174
216
  }, [passedBrowserMediaControlsBehavior]);
175
- return (jsx_runtime_1.jsx(remotion_1.Internals.IsPlayerContextProvider, { children: jsx_runtime_1.jsx(SharedPlayerContext_js_1.SharedPlayerContexts, { timelineContext: timelineContextValue, playbackRateContext: playbackRateContextValue, component: component, compositionHeight: compositionHeight, compositionWidth: compositionWidth, durationInFrames: durationInFrames, fps: fps, numberOfSharedAudioTags: numberOfSharedAudioTags, initiallyMuted: initiallyMuted, logLevel: logLevel, audioLatencyHint: audioLatencyHint, sampleRate: sampleRate, _experimentalKeepAudioContextAlive: _experimentalKeepAudioContextAlive, volumePersistenceKey: volumePersistenceKey, initialVolume: initialVolume, inputProps: actualInputProps, audioEnabled: true, children: jsx_runtime_1.jsx(remotion_1.Internals.SetTimelineContext.Provider, { value: setTimelineContextValue, children: jsx_runtime_1.jsx(EmitterProvider_js_1.PlayerEmitterProvider, { currentPlaybackRate: currentPlaybackRate, children: jsx_runtime_1.jsx(PlayerUI_js_1.default, { ref: rootRef, posterFillMode: posterFillMode, renderLoading: renderLoading, autoPlay: Boolean(autoPlay), loop: Boolean(loop), controls: Boolean(controls), errorFallback: errorFallback, style: style, inputProps: actualInputProps, allowFullscreen: Boolean(allowFullscreen), moveToBeginningWhenEnded: Boolean(moveToBeginningWhenEnded), clickToPlay: typeof clickToPlay === 'boolean'
217
+ const player = (jsx_runtime_1.jsx(remotion_1.Internals.IsPlayerContextProvider, { children: jsx_runtime_1.jsx(SharedPlayerContext_js_1.SharedPlayerContexts, { timelineContext: timelineContextValue, playbackRateContext: playbackRateContextValue, component: component, compositionHeight: compositionHeight, compositionWidth: compositionWidth, durationInFrames: durationInFrames, fps: fps, numberOfSharedAudioTags: numberOfSharedAudioTags, initiallyMuted: initiallyMuted, logLevel: logLevel, audioLatencyHint: audioLatencyHint, sampleRate: sampleRate, _experimentalKeepAudioContextAlive: _experimentalKeepAudioContextAlive, volumePersistenceKey: volumePersistenceKey, initialVolume: initialVolume, inputProps: actualInputProps, audioEnabled: true, children: jsx_runtime_1.jsx(remotion_1.Internals.SetTimelineContext.Provider, { value: setTimelineContextValue, children: jsx_runtime_1.jsx(EmitterProvider_js_1.PlayerEmitterProvider, { currentPlaybackRate: currentPlaybackRate, children: jsx_runtime_1.jsx(PlayerUI_js_1.default, { ref: rootRef, posterFillMode: posterFillMode, renderLoading: renderLoading, autoPlay: Boolean(autoPlay), loop: Boolean(loop), controls: Boolean(controls), errorFallback: errorFallback, style: style, inputProps: actualInputProps, allowFullscreen: Boolean(allowFullscreen), moveToBeginningWhenEnded: Boolean(moveToBeginningWhenEnded), clickToPlay: typeof clickToPlay === 'boolean'
176
218
  ? clickToPlay
177
219
  : Boolean(controls), showVolumeControls: Boolean(showVolumeControls), doubleClickToFullscreen: Boolean(doubleClickToFullscreen), spaceKeyToPlayOrPause: Boolean(spaceKeyToPlayOrPause), playbackRate: currentPlaybackRate, className: className !== null && className !== void 0 ? className : undefined, showPosterWhenUnplayed: Boolean(showPosterWhenUnplayed), showPosterWhenEnded: Boolean(showPosterWhenEnded), showPosterWhenPaused: Boolean(showPosterWhenPaused), showPosterWhenBuffering: Boolean(showPosterWhenBuffering), showPosterWhenBufferingAndPaused: Boolean(showPosterWhenBufferingAndPaused), renderPoster: renderPoster, inFrame: inFrame !== null && inFrame !== void 0 ? inFrame : null, outFrame: outFrame !== null && outFrame !== void 0 ? outFrame : null, initiallyShowControls: initiallyShowControls !== null && initiallyShowControls !== void 0 ? initiallyShowControls : true, renderFullscreen: renderFullscreenButton !== null && renderFullscreenButton !== void 0 ? renderFullscreenButton : null, renderPlayPauseButton: renderPlayPauseButton !== null && renderPlayPauseButton !== void 0 ? renderPlayPauseButton : null, renderMuteButton: renderMuteButton !== null && renderMuteButton !== void 0 ? renderMuteButton : null, renderVolumeSlider: renderVolumeSlider !== null && renderVolumeSlider !== void 0 ? renderVolumeSlider : null, renderCustomControls: renderCustomControls !== null && renderCustomControls !== void 0 ? renderCustomControls : null, alwaysShowControls: alwaysShowControls, showPlaybackRateControl: showPlaybackRateControl, bufferStateDelayInMilliseconds: bufferStateDelayInMilliseconds !== null && bufferStateDelayInMilliseconds !== void 0 ? bufferStateDelayInMilliseconds : 300, hideControlsWhenPointerDoesntMove: hideControlsWhenPointerDoesntMove, overflowVisible: overflowVisible, browserMediaControlsBehavior: browserMediaControlsBehavior, overrideInternalClassName: overrideInternalClassName !== null && overrideInternalClassName !== void 0 ? overrideInternalClassName : undefined, noSuspense: Boolean(noSuspense) }) }) }) }) }));
220
+ if (!onTimelineSequenceChange) {
221
+ return player;
222
+ }
223
+ return (jsx_runtime_1.jsx(remotion_1.Internals.SequenceRegistrationContext.Provider, { value: true, children: jsx_runtime_1.jsxs(remotion_1.Internals.SequenceManagerProvider, { children: [
224
+ jsx_runtime_1.jsx(TimelineSequenceObserverComponent, { onTimelineSequenceChange: onTimelineSequenceChange }), player] }) }));
178
225
  };
179
226
  const forward = react_1.forwardRef;
180
227
  /*
@@ -28,6 +28,7 @@ const SharedPlayerContexts = ({ children, timelineContext, playbackRateContext,
28
28
  },
29
29
  ],
30
30
  folders: [],
31
+ currentAssetMetadata: null,
31
32
  currentCompositionMetadata: {
32
33
  defaultCodec: null,
33
34
  defaultOutName: null,
@@ -52,4 +52,5 @@ export declare const PlayerInternals: {
52
52
  readonly type: "player" | "studio";
53
53
  readonly color?: string | undefined;
54
54
  }>;
55
+ TimelineSequenceObserverContext: import("react").Context<import("./timeline-sequence-observer-context.js").TimelineSequenceObserver | null>;
55
56
  };
package/dist/cjs/index.js CHANGED
@@ -7,6 +7,7 @@ const calculate_scale_js_1 = require("./calculate-scale.js");
7
7
  const emitter_context_js_1 = require("./emitter-context.js");
8
8
  const EmitterProvider_js_1 = require("./EmitterProvider.js");
9
9
  const event_emitter_js_1 = require("./event-emitter.js");
10
+ const timeline_sequence_observer_context_js_1 = require("./timeline-sequence-observer-context.js");
10
11
  const use_hover_state_js_1 = require("./use-hover-state.js");
11
12
  const use_playback_js_1 = require("./use-playback.js");
12
13
  const use_player_methods_js_1 = require("./use-player-methods.js");
@@ -26,4 +27,5 @@ exports.PlayerInternals = {
26
27
  updateAllElementsSizes: use_element_size_js_1.updateAllElementsSizes,
27
28
  PlayerEmitterProvider: EmitterProvider_js_1.PlayerEmitterProvider,
28
29
  BufferingIndicator: BufferingIndicator_js_1.BufferingIndicator,
30
+ TimelineSequenceObserverContext: timeline_sequence_observer_context_js_1.TimelineSequenceObserverContext,
29
31
  };
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { TSequence } from 'remotion';
3
+ export type TimelineSequenceObserver = (sequences: TSequence[]) => void;
4
+ export declare const TimelineSequenceObserverContext: React.Context<TimelineSequenceObserver | null>;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TimelineSequenceObserverContext = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ exports.TimelineSequenceObserverContext = react_1.default.createContext(null);
@@ -561,6 +561,10 @@ var PlayerEmitterProvider = ({ children, currentPlaybackRate }) => {
561
561
  });
562
562
  };
563
563
 
564
+ // src/timeline-sequence-observer-context.ts
565
+ import React4 from "react";
566
+ var TimelineSequenceObserverContext = React4.createContext(null);
567
+
564
568
  // src/use-hover-state.ts
565
569
  import { useEffect as useEffect2, useState as useState2 } from "react";
566
570
  var useHoverState = (ref, hideControlsWhenPointerDoesntMove) => {
@@ -1409,7 +1413,7 @@ var useElementSize = (source, options) => {
1409
1413
  };
1410
1414
 
1411
1415
  // src/Player.tsx
1412
- import {
1416
+ import React14, {
1413
1417
  forwardRef as forwardRef2,
1414
1418
  useEffect as useEffect13,
1415
1419
  useImperativeHandle as useImperativeHandle2,
@@ -1426,7 +1430,7 @@ var playerCssClassname = (override) => {
1426
1430
  };
1427
1431
 
1428
1432
  // src/PlayerUI.tsx
1429
- import React11, {
1433
+ import React12, {
1430
1434
  Suspense,
1431
1435
  forwardRef,
1432
1436
  useCallback as useCallback10,
@@ -1440,7 +1444,7 @@ import React11, {
1440
1444
  import { Internals as Internals13 } from "remotion";
1441
1445
 
1442
1446
  // src/error-boundary.tsx
1443
- import React4 from "react";
1447
+ import React5 from "react";
1444
1448
  import { jsx as jsx5 } from "react/jsx-runtime";
1445
1449
  var errorStyle = {
1446
1450
  display: "flex",
@@ -1451,7 +1455,7 @@ var errorStyle = {
1451
1455
  width: "100%"
1452
1456
  };
1453
1457
 
1454
- class ErrorBoundary extends React4.Component {
1458
+ class ErrorBoundary extends React5.Component {
1455
1459
  state = { hasError: null };
1456
1460
  static getDerivedStateFromError(error) {
1457
1461
  return { hasError: error };
@@ -1473,7 +1477,7 @@ class ErrorBoundary extends React4.Component {
1473
1477
  }
1474
1478
 
1475
1479
  // src/license-blacklist.tsx
1476
- import React5, { useEffect as useEffect7 } from "react";
1480
+ import React6, { useEffect as useEffect7 } from "react";
1477
1481
  import { jsx as jsx6 } from "react/jsx-runtime";
1478
1482
  var getHashOfDomain = async () => {
1479
1483
  if (typeof window === "undefined") {
@@ -1508,7 +1512,7 @@ var DOMAIN_BLACKLIST = [
1508
1512
  ];
1509
1513
  var ran = false;
1510
1514
  var RenderWarningIfBlacklist = () => {
1511
- const [unlicensed, setUnlicensed] = React5.useState(false);
1515
+ const [unlicensed, setUnlicensed] = React6.useState(false);
1512
1516
  useEffect7(() => {
1513
1517
  if (ran) {
1514
1518
  return;
@@ -1583,7 +1587,7 @@ import { useCallback as useCallback4, useMemo as useMemo5, useRef as useRef6, us
1583
1587
  import { Internals as Internals9 } from "remotion";
1584
1588
 
1585
1589
  // src/render-volume-slider.tsx
1586
- import React6, { useCallback as useCallback3, useMemo as useMemo4, useState as useState4 } from "react";
1590
+ import React7, { useCallback as useCallback3, useMemo as useMemo4, useState as useState4 } from "react";
1587
1591
  import { random } from "remotion";
1588
1592
  import { jsx as jsx8, jsxs as jsxs3 } from "react/jsx-runtime";
1589
1593
  var KNOB_SIZE = 12;
@@ -1615,7 +1619,7 @@ var DefaultVolumeSlider = ({
1615
1619
  ...common
1616
1620
  };
1617
1621
  }, [isVertical]);
1618
- const randomId = typeof React6.useId === "undefined" ? "volume-slider" : React6.useId();
1622
+ const randomId = typeof React7.useId === "undefined" ? "volume-slider" : React7.useId();
1619
1623
  const [randomClass] = useState4(() => `__remotion-volume-slider-${random(randomId)}`.replace(".", ""));
1620
1624
  const onVolumeChange = useCallback3((e) => {
1621
1625
  setVolume(parseFloat(e.target.value));
@@ -2624,7 +2628,7 @@ var useClickPreventionOnDoubleClick = (onClick, onDoubleClick, doubleClickToFull
2624
2628
 
2625
2629
  // src/PlayerUI.tsx
2626
2630
  import { jsx as jsx13, jsxs as jsxs9, Fragment as Fragment3 } from "react/jsx-runtime";
2627
- var reactVersion = React11.version.split(".")[0];
2631
+ var reactVersion = React12.version.split(".")[0];
2628
2632
  if (reactVersion === "0") {
2629
2633
  throw new Error(`Version ${reactVersion} of "react" is not supported by Remotion`);
2630
2634
  }
@@ -3194,6 +3198,7 @@ var SharedPlayerContexts = ({
3194
3198
  }
3195
3199
  ],
3196
3200
  folders: [],
3201
+ currentAssetMetadata: null,
3197
3202
  currentCompositionMetadata: {
3198
3203
  defaultCodec: null,
3199
3204
  defaultOutName: null,
@@ -3424,13 +3429,20 @@ var validateDurationInFrames = NoReactInternals.validateDurationInFrames;
3424
3429
  var validateDefaultAndInputProps = NoReactInternals.validateDefaultAndInputProps;
3425
3430
 
3426
3431
  // src/Player.tsx
3427
- import { jsx as jsx15 } from "react/jsx-runtime";
3432
+ import { jsx as jsx15, jsxs as jsxs10 } from "react/jsx-runtime";
3428
3433
  var componentOrNullIfLazy = (props) => {
3429
3434
  if ("component" in props) {
3430
3435
  return props.component;
3431
3436
  }
3432
3437
  return null;
3433
3438
  };
3439
+ var TimelineSequenceObserverComponent = ({ onTimelineSequenceChange }) => {
3440
+ const { sequences } = React14.useContext(Internals17.SequenceManager);
3441
+ useEffect13(() => {
3442
+ onTimelineSequenceChange(sequences);
3443
+ }, [onTimelineSequenceChange, sequences]);
3444
+ return null;
3445
+ };
3434
3446
  var PlayerFn = ({
3435
3447
  durationInFrames,
3436
3448
  compositionHeight,
@@ -3489,6 +3501,7 @@ var PlayerFn = ({
3489
3501
  if (typeof window !== "undefined") {
3490
3502
  window.remotion_isPlayer = true;
3491
3503
  }
3504
+ const onTimelineSequenceChange = React14.useContext(TimelineSequenceObserverContext);
3492
3505
  if (componentProps.defaultProps !== undefined) {
3493
3506
  throw new Error("The <Player /> component does not accept `defaultProps`, but some were passed. Use `inputProps` instead.");
3494
3507
  }
@@ -3613,7 +3626,7 @@ var PlayerFn = ({
3613
3626
  mode: "prevent-media-session"
3614
3627
  };
3615
3628
  }, [passedBrowserMediaControlsBehavior]);
3616
- return /* @__PURE__ */ jsx15(Internals17.IsPlayerContextProvider, {
3629
+ const player = /* @__PURE__ */ jsx15(Internals17.IsPlayerContextProvider, {
3617
3630
  children: /* @__PURE__ */ jsx15(SharedPlayerContexts, {
3618
3631
  timelineContext: timelineContextValue,
3619
3632
  playbackRateContext: playbackRateContextValue,
@@ -3681,6 +3694,20 @@ var PlayerFn = ({
3681
3694
  })
3682
3695
  })
3683
3696
  });
3697
+ if (!onTimelineSequenceChange) {
3698
+ return player;
3699
+ }
3700
+ return /* @__PURE__ */ jsx15(Internals17.SequenceRegistrationContext.Provider, {
3701
+ value: true,
3702
+ children: /* @__PURE__ */ jsxs10(Internals17.SequenceManagerProvider, {
3703
+ children: [
3704
+ /* @__PURE__ */ jsx15(TimelineSequenceObserverComponent, {
3705
+ onTimelineSequenceChange
3706
+ }),
3707
+ player
3708
+ ]
3709
+ })
3710
+ });
3684
3711
  };
3685
3712
  var forward = forwardRef2;
3686
3713
  var Player = forward(PlayerFn);
@@ -3696,7 +3723,7 @@ import {
3696
3723
  import { Internals as Internals19 } from "remotion";
3697
3724
 
3698
3725
  // src/ThumbnailUI.tsx
3699
- import React14, {
3726
+ import React15, {
3700
3727
  forwardRef as forwardRef3,
3701
3728
  Suspense as Suspense2,
3702
3729
  useCallback as useCallback12,
@@ -3723,7 +3750,7 @@ var useThumbnail = () => {
3723
3750
 
3724
3751
  // src/ThumbnailUI.tsx
3725
3752
  import { jsx as jsx16 } from "react/jsx-runtime";
3726
- var reactVersion2 = React14.version.split(".")[0];
3753
+ var reactVersion2 = React15.version.split(".")[0];
3727
3754
  if (reactVersion2 === "0") {
3728
3755
  throw new Error(`Version ${reactVersion2} of "react" is not supported by Remotion`);
3729
3756
  }
@@ -3948,7 +3975,8 @@ var PlayerInternals = {
3948
3975
  useHoverState,
3949
3976
  updateAllElementsSizes,
3950
3977
  PlayerEmitterProvider,
3951
- BufferingIndicator
3978
+ BufferingIndicator,
3979
+ TimelineSequenceObserverContext
3952
3980
  };
3953
3981
  export {
3954
3982
  Thumbnail,
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/player"
4
4
  },
5
5
  "name": "@remotion/player",
6
- "version": "4.0.515",
6
+ "version": "4.0.517",
7
7
  "description": "React component for embedding a Remotion preview into your app",
8
8
  "main": "dist/cjs/index.js",
9
9
  "types": "dist/cjs/index.d.ts",
@@ -35,7 +35,7 @@
35
35
  ],
36
36
  "license": "SEE LICENSE IN LICENSE.md",
37
37
  "dependencies": {
38
- "remotion": "4.0.515"
38
+ "remotion": "4.0.517"
39
39
  },
40
40
  "peerDependencies": {
41
41
  "react": ">=16.8.0",
@@ -49,7 +49,7 @@
49
49
  "react-dom": "19.2.3",
50
50
  "webpack": "5.105.0",
51
51
  "zod": "4.4.3",
52
- "@remotion/eslint-config-internal": "4.0.515",
52
+ "@remotion/eslint-config-internal": "4.0.517",
53
53
  "eslint": "9.19.0",
54
54
  "@typescript/native-preview": "7.0.0-dev.20260217.1"
55
55
  },