@remotion/studio 4.0.491 → 4.0.493

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.
Files changed (97) hide show
  1. package/dist/ResolveCompositionConfigInStudio.js +16 -6
  2. package/dist/components/AssetSelectorItem.js +7 -4
  3. package/dist/components/Canvas.js +1 -0
  4. package/dist/components/CompositionOrStillIcon.d.ts +7 -0
  5. package/dist/components/CompositionOrStillIcon.js +11 -0
  6. package/dist/components/CompositionSelector.js +14 -2
  7. package/dist/components/CompositionSelectorItem.js +34 -6
  8. package/dist/components/CurrentAsset.d.ts +6 -0
  9. package/dist/components/CurrentAsset.js +14 -8
  10. package/dist/components/CurrentComposition.d.ts +1 -1
  11. package/dist/components/CurrentComposition.js +3 -4
  12. package/dist/components/InlineEditableTitle.d.ts +1 -0
  13. package/dist/components/InlineEditableTitle.js +12 -7
  14. package/dist/components/InspectorInfoHeader.d.ts +2 -0
  15. package/dist/components/InspectorInfoHeader.js +12 -4
  16. package/dist/components/InspectorPanel/CompositionDimensions.d.ts +6 -0
  17. package/dist/components/InspectorPanel/CompositionDimensions.js +173 -0
  18. package/dist/components/InspectorPanel/ConnectedCompositionsSection.d.ts +9 -0
  19. package/dist/components/InspectorPanel/ConnectedCompositionsSection.js +32 -0
  20. package/dist/components/InspectorPanel/DefaultInspector.js +6 -3
  21. package/dist/components/InspectorPanel/EasingInspector.js +3 -3
  22. package/dist/components/InspectorPanel/KeyframeInspector.js +6 -4
  23. package/dist/components/InspectorPanel/KeyframeSettings.js +1 -1
  24. package/dist/components/InspectorPanel/SequenceInspectorHeader.d.ts +1 -1
  25. package/dist/components/InspectorPanel/SequenceInspectorHeader.js +9 -5
  26. package/dist/components/InspectorPanel/SequenceSelectionInspector.js +5 -1
  27. package/dist/components/InspectorPanel/common.d.ts +2 -1
  28. package/dist/components/InspectorPanel/common.js +11 -7
  29. package/dist/components/InspectorPanel/optimistic-composition-metadata.d.ts +22 -0
  30. package/dist/components/InspectorPanel/optimistic-composition-metadata.js +41 -0
  31. package/dist/components/InspectorPanel/styles.d.ts +2 -0
  32. package/dist/components/InspectorPanel/styles.js +7 -2
  33. package/dist/components/InspectorSequenceSection.js +58 -7
  34. package/dist/components/NewComposition/NewComposition.js +11 -4
  35. package/dist/components/NewComposition/get-new-composition-defaults.d.ts +4 -0
  36. package/dist/components/NewComposition/get-new-composition-defaults.js +13 -0
  37. package/dist/components/SelectedOutlineElement.js +21 -2
  38. package/dist/components/SelectedOutlineOverlay.d.ts +1 -1
  39. package/dist/components/SelectedOutlineOverlay.js +4 -3
  40. package/dist/components/Timeline/Timeline.js +8 -1
  41. package/dist/components/Timeline/TimelineAssetField.d.ts +14 -0
  42. package/dist/components/Timeline/TimelineAssetField.js +125 -0
  43. package/dist/components/Timeline/TimelineClipboardKeybindings.js +133 -1
  44. package/dist/components/Timeline/TimelineExpandedSection.js +1 -0
  45. package/dist/components/Timeline/TimelineFieldLabel.js +4 -2
  46. package/dist/components/Timeline/TimelineKeyframeControls.js +1 -0
  47. package/dist/components/Timeline/TimelineList.js +2 -1
  48. package/dist/components/Timeline/TimelinePrimitiveFieldValue.js +5 -3
  49. package/dist/components/Timeline/TimelineRowChrome.js +8 -6
  50. package/dist/components/Timeline/TimelineRowLayoutContext.d.ts +7 -0
  51. package/dist/components/Timeline/TimelineRowLayoutContext.js +13 -0
  52. package/dist/components/Timeline/TimelineSelection.js +20 -5
  53. package/dist/components/Timeline/TimelineSequenceItem.d.ts +2 -1
  54. package/dist/components/Timeline/TimelineSequenceItem.js +32 -8
  55. package/dist/components/Timeline/TimelineSequenceName.js +4 -0
  56. package/dist/components/Timeline/get-sequence-context-menu-items.js +3 -3
  57. package/dist/components/Timeline/keyframe-clipboard.d.ts +34 -0
  58. package/dist/components/Timeline/keyframe-clipboard.js +278 -0
  59. package/dist/components/Timeline/sequence-props-subscription-store.js +5 -1
  60. package/dist/components/Timeline/timeline-asset-link.d.ts +6 -0
  61. package/dist/components/Timeline/timeline-asset-link.js +27 -1
  62. package/dist/components/Timeline/timeline-field-display-utils.js +3 -1
  63. package/dist/components/Timeline/timeline-field-row-layout.d.ts +1 -1
  64. package/dist/components/Timeline/timeline-field-row-layout.js +2 -2
  65. package/dist/components/Timeline/timeline-row-layout.d.ts +3 -2
  66. package/dist/components/Timeline/timeline-row-layout.js +6 -5
  67. package/dist/components/Timeline/update-selected-easing.d.ts +1 -1
  68. package/dist/components/Timeline/update-selected-easing.js +4 -5
  69. package/dist/components/Timeline/use-expanded-track-keyframe-rows.js +4 -4
  70. package/dist/components/Timeline/use-timeline-expanded-tree.d.ts +2 -1
  71. package/dist/components/Timeline/use-timeline-expanded-tree.js +3 -1
  72. package/dist/components/Timeline/use-timeline-height.js +1 -0
  73. package/dist/components/import-assets.d.ts +10 -2
  74. package/dist/components/import-assets.js +20 -6
  75. package/dist/components/root-composition-menu-items.d.ts +8 -0
  76. package/dist/components/root-composition-menu-items.js +45 -0
  77. package/dist/components/selected-outline-measurement.d.ts +2 -5
  78. package/dist/components/selected-outline-measurement.js +3 -4
  79. package/dist/esm/{chunk-9wh9k3jj.js → chunk-mndqr3zx.js} +7439 -6121
  80. package/dist/esm/internals.mjs +7439 -6121
  81. package/dist/esm/previewEntry.mjs +7371 -6057
  82. package/dist/esm/renderEntry.mjs +1 -1
  83. package/dist/helpers/calculate-timeline.d.ts +2 -1
  84. package/dist/helpers/calculate-timeline.js +36 -5
  85. package/dist/helpers/get-connected-compositions.d.ts +6 -0
  86. package/dist/helpers/get-connected-compositions.js +11 -0
  87. package/dist/helpers/get-file-manager-name.d.ts +1 -0
  88. package/dist/helpers/get-file-manager-name.js +13 -0
  89. package/dist/helpers/get-sequence-double-click-action.d.ts +6 -0
  90. package/dist/helpers/get-sequence-double-click-action.js +13 -0
  91. package/dist/helpers/get-timeline-sequence-sort-key.d.ts +2 -1
  92. package/dist/helpers/timeline-layout.d.ts +2 -1
  93. package/dist/helpers/timeline-layout.js +5 -1
  94. package/dist/helpers/url-state.d.ts +1 -0
  95. package/dist/helpers/url-state.js +8 -6
  96. package/dist/helpers/use-menu-structure.js +4 -2
  97. package/package.json +11 -11
@@ -212,7 +212,7 @@ var renderContent = (Root) => {
212
212
  renderToDOM(/* @__PURE__ */ jsx("div", {
213
213
  children: /* @__PURE__ */ jsx(DelayedSpinner, {})
214
214
  }));
215
- import("./chunk-9wh9k3jj.js").then(({ StudioInternals }) => {
215
+ import("./chunk-mndqr3zx.js").then(({ StudioInternals }) => {
216
216
  window.remotion_isStudio = true;
217
217
  window.remotion_isReadOnlyStudio = true;
218
218
  window.remotion_inputProps = "{}";
@@ -1,6 +1,7 @@
1
1
  import type { OverrideIdToNodePaths, TSequence } from 'remotion';
2
2
  import type { TrackWithHash } from './get-timeline-sequence-sort-key';
3
- export declare const calculateTimeline: ({ sequences, overrideIdsToNodePaths, }: {
3
+ export declare const calculateTimeline: ({ sequences, overrideIdsToNodePaths, compositions, }: {
4
4
  sequences: TSequence[];
5
5
  overrideIdsToNodePaths: OverrideIdToNodePaths;
6
+ compositions?: readonly import("remotion").AnyComposition[] | undefined;
6
7
  }) => TrackWithHash[];
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.calculateTimeline = void 0;
4
4
  const studio_shared_1 = require("@remotion/studio-shared");
5
+ const get_connected_compositions_1 = require("./get-connected-compositions");
5
6
  const get_sequence_visible_range_1 = require("./get-sequence-visible-range");
6
7
  const get_timeline_nestedness_1 = require("./get-timeline-nestedness");
7
8
  const get_timeline_sequence_hash_1 = require("./get-timeline-sequence-hash");
@@ -20,19 +21,42 @@ const getInheritedLoopDisplay = (sequence, sequences) => {
20
21
  }
21
22
  return getInheritedLoopDisplay(parent, sequences);
22
23
  };
23
- const calculateTimeline = ({ sequences, overrideIdsToNodePaths, }) => {
24
+ const calculateTimeline = ({ sequences, overrideIdsToNodePaths, compositions = [], }) => {
24
25
  var _a, _b;
25
- var _c;
26
+ var _c, _d;
26
27
  const sortedSequences = (0, sort_by_nonce_history_1.sortItemsByNonceHistory)(sequences);
27
28
  const tracks = [];
28
29
  if (sortedSequences.length === 0) {
29
30
  return [];
30
31
  }
32
+ const connectedCompositionsBySequenceId = new Map();
33
+ for (const sequence of sortedSequences) {
34
+ const connectedCompositions = (0, get_connected_compositions_1.getConnectedCompositions)({
35
+ compositions,
36
+ singleChildComponent: sequence.singleChildComponent,
37
+ });
38
+ if (connectedCompositions.length > 0) {
39
+ connectedCompositionsBySequenceId.set(sequence.id, connectedCompositions);
40
+ }
41
+ }
42
+ const sequencesById = new Map(sortedSequences.map((sequence) => [sequence.id, sequence]));
43
+ const timelineSequences = sortedSequences.filter((sequence) => {
44
+ var _a;
45
+ var _b;
46
+ let parentId = sequence.parent;
47
+ while (parentId !== null) {
48
+ if (connectedCompositionsBySequenceId.has(parentId)) {
49
+ return false;
50
+ }
51
+ parentId = (_b = (_a = sequencesById.get(parentId)) === null || _a === void 0 ? void 0 : _a.parent) !== null && _b !== void 0 ? _b : null;
52
+ }
53
+ return true;
54
+ });
31
55
  const sameHashes = {};
32
56
  const hashesUsedInRoot = {};
33
57
  const cache = {};
34
- for (let i = 0; i < sortedSequences.length; i++) {
35
- const sequence = sortedSequences[i];
58
+ for (let i = 0; i < timelineSequences.length; i++) {
59
+ const sequence = timelineSequences[i];
36
60
  if (!hashesUsedInRoot[sequence.rootId]) {
37
61
  hashesUsedInRoot[sequence.rootId] = [];
38
62
  }
@@ -51,7 +75,9 @@ const calculateTimeline = ({ sequences, overrideIdsToNodePaths, }) => {
51
75
  const overrideId = (_c = (_a = sequence.controls) === null || _a === void 0 ? void 0 : _a.overrideId) !== null && _c !== void 0 ? _c : null;
52
76
  const nodePath = overrideId ? overrideIdsToNodePaths[overrideId] : null;
53
77
  const hasKeyframeRows = sequence.controls !== null || sequence.effects.length > 0;
78
+ const connectedCompositions = (_d = connectedCompositionsBySequenceId.get(sequence.id)) !== null && _d !== void 0 ? _d : [];
54
79
  tracks.push({
80
+ ...(connectedCompositions.length > 0 ? { connectedCompositions } : {}),
55
81
  sequence: {
56
82
  ...sequence,
57
83
  from: visibleStart,
@@ -81,10 +107,15 @@ const calculateTimeline = ({ sequences, overrideIdsToNodePaths, }) => {
81
107
  }
82
108
  const uniqueTracks = [];
83
109
  for (const track of tracks) {
84
- if (!uniqueTracks.find((t) => t.hash === track.hash)) {
110
+ const existingTrack = uniqueTracks.find((t) => t.hash === track.hash);
111
+ if (!existingTrack) {
85
112
  const { cascadedDuration, cascadedStart, ...cleanTrack } = track;
86
113
  uniqueTracks.push(cleanTrack);
87
114
  }
115
+ else if (existingTrack.connectedCompositions === undefined &&
116
+ track.connectedCompositions !== undefined) {
117
+ existingTrack.connectedCompositions = track.connectedCompositions;
118
+ }
88
119
  }
89
120
  const nonceRanks = new Map();
90
121
  for (let i = 0; i < tracks.length; i++) {
@@ -0,0 +1,6 @@
1
+ export declare const getConnectedCompositions: <Composition extends {
2
+ readonly componentFromProps?: unknown;
3
+ }>({ compositions, singleChildComponent, }: {
4
+ readonly compositions: readonly Composition[];
5
+ readonly singleChildComponent: unknown;
6
+ }) => Composition[];
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getConnectedCompositions = void 0;
4
+ const getConnectedCompositions = ({ compositions, singleChildComponent, }) => {
5
+ if (singleChildComponent === null ||
6
+ typeof singleChildComponent === 'undefined') {
7
+ return [];
8
+ }
9
+ return compositions.filter((composition) => composition.componentFromProps === singleChildComponent);
10
+ };
11
+ exports.getConnectedCompositions = getConnectedCompositions;
@@ -0,0 +1 @@
1
+ export declare const getFileManagerName: (platform: string | null) => string;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getFileManagerName = void 0;
4
+ const getFileManagerName = (platform) => {
5
+ if (platform === 'darwin') {
6
+ return 'Finder';
7
+ }
8
+ if (platform === 'win32') {
9
+ return 'File Explorer';
10
+ }
11
+ return 'File Manager';
12
+ };
13
+ exports.getFileManagerName = getFileManagerName;
@@ -0,0 +1,6 @@
1
+ export type SequenceDoubleClickAction = 'open-connected-composition' | 'open-in-editor';
2
+ export declare const getSequenceDoubleClickAction: ({ button, canOpenInEditor, numberOfConnectedCompositions, }: {
3
+ readonly button: number;
4
+ readonly canOpenInEditor: boolean;
5
+ readonly numberOfConnectedCompositions: number;
6
+ }) => SequenceDoubleClickAction | null;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSequenceDoubleClickAction = void 0;
4
+ const getSequenceDoubleClickAction = ({ button, canOpenInEditor, numberOfConnectedCompositions, }) => {
5
+ if (button !== 0) {
6
+ return null;
7
+ }
8
+ if (numberOfConnectedCompositions === 1) {
9
+ return 'open-connected-composition';
10
+ }
11
+ return canOpenInEditor ? 'open-in-editor' : null;
12
+ };
13
+ exports.getSequenceDoubleClickAction = getSequenceDoubleClickAction;
@@ -1,4 +1,4 @@
1
- import type { SequencePropsSubscriptionKey, TSequence } from 'remotion';
1
+ import type { _InternalTypes, SequencePropsSubscriptionKey, TSequence } from 'remotion';
2
2
  export type SequenceNodePathInfo = {
3
3
  sequenceSubscriptionKey: SequencePropsSubscriptionKey;
4
4
  auxiliaryKeys: string[];
@@ -8,6 +8,7 @@ export type SequenceNodePathInfo = {
8
8
  };
9
9
  type Track = {
10
10
  sequence: TSequence;
11
+ connectedCompositions?: readonly _InternalTypes['AnyComposition'][];
11
12
  depth: number;
12
13
  nodePathInfo: SequenceNodePathInfo | null;
13
14
  keyframeDisplayOffset: number;
@@ -31,13 +31,14 @@ export type TimelineTreeNode = {
31
31
  readonly label: string;
32
32
  readonly field: AnySchemaFieldInfo | null;
33
33
  };
34
- export declare const buildTimelineTree: ({ sequence, nodePathInfo, getDragOverrides, getEffectDragOverrides, propStatuses, includeTextContent, }: {
34
+ export declare const buildTimelineTree: ({ sequence, nodePathInfo, getDragOverrides, getEffectDragOverrides, propStatuses, includeTextContent, includeSourceControls, }: {
35
35
  sequence: TSequence;
36
36
  nodePathInfo: SequenceNodePathInfo;
37
37
  getDragOverrides: GetDragOverrides;
38
38
  getEffectDragOverrides: GetEffectDragOverrides;
39
39
  propStatuses: PropStatuses;
40
40
  includeTextContent: boolean;
41
+ includeSourceControls: boolean;
41
42
  }) => TimelineTreeNode[];
42
43
  export type FlatTreeRow = {
43
44
  readonly node: TimelineTreeNode;
@@ -14,7 +14,7 @@ exports.TIMELINE_ITEM_BORDER_BOTTOM = 1;
14
14
  exports.TIMELINE_TRACK_EXPANDED_HEIGHT = 100;
15
15
  exports.TREE_GROUP_ROW_HEIGHT = 22;
16
16
  exports.EXPANDED_SECTION_PADDING_RIGHT = 10;
17
- const buildTimelineTree = ({ sequence, nodePathInfo, getDragOverrides, getEffectDragOverrides, propStatuses, includeTextContent, }) => {
17
+ const buildTimelineTree = ({ sequence, nodePathInfo, getDragOverrides, getEffectDragOverrides, propStatuses, includeTextContent, includeSourceControls, }) => {
18
18
  var _a;
19
19
  const roots = [];
20
20
  const { sequenceSubscriptionKey, index, auxiliaryKeys, supportsEffects } = nodePathInfo;
@@ -28,6 +28,9 @@ const buildTimelineTree = ({ sequence, nodePathInfo, getDragOverrides, getEffect
28
28
  });
29
29
  if (controlFields && controlFields.length > 0) {
30
30
  for (const f of controlFields) {
31
+ if (!includeSourceControls && f.key === 'src') {
32
+ continue;
33
+ }
31
34
  roots.push({
32
35
  kind: 'field',
33
36
  nodePathInfo: {
@@ -136,6 +139,7 @@ const getExpandedTrackHeight = ({ sequence, nodePathInfo, getIsExpanded, propSta
136
139
  getEffectDragOverrides: () => ({}),
137
140
  propStatuses,
138
141
  includeTextContent: false,
142
+ includeSourceControls: false,
139
143
  });
140
144
  const flat = (0, exports.flattenVisibleTreeNodes)({ nodes: tree, getIsExpanded });
141
145
  if (flat.length === 0) {
@@ -1,3 +1,4 @@
1
+ export declare const getUrlForRoute: (route: string) => string;
1
2
  export declare const pushUrl: (url: string) => void;
2
3
  export declare const clearUrl: () => void;
3
4
  export declare const reloadUrl: () => void;
@@ -1,19 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRoute = exports.reloadUrl = exports.clearUrl = exports.pushUrl = void 0;
3
+ exports.getRoute = exports.reloadUrl = exports.clearUrl = exports.pushUrl = exports.getUrlForRoute = void 0;
4
4
  const getUrlHandlingType = () => {
5
5
  if (window.remotion_isReadOnlyStudio) {
6
6
  return 'query-string';
7
7
  }
8
8
  return 'spa';
9
9
  };
10
- const pushUrl = (url) => {
10
+ const getUrlForRoute = (route) => {
11
11
  if (getUrlHandlingType() === 'query-string') {
12
- window.history.pushState({}, 'Studio', `${window.location.pathname}?${url}`);
13
- }
14
- else {
15
- window.history.pushState({}, 'Studio', url);
12
+ return `${window.location.pathname}?${route}`;
16
13
  }
14
+ return route;
15
+ };
16
+ exports.getUrlForRoute = getUrlForRoute;
17
+ const pushUrl = (url) => {
18
+ window.history.pushState({}, 'Studio', (0, exports.getUrlForRoute)(url));
17
19
  };
18
20
  exports.pushUrl = pushUrl;
19
21
  const clearUrl = () => {
@@ -27,6 +27,7 @@ const sidebar_1 = require("../state/sidebar");
27
27
  const check_fullscreen_support_1 = require("./check-fullscreen-support");
28
28
  const client_id_1 = require("./client-id");
29
29
  const colors_1 = require("./colors");
30
+ const get_file_manager_name_1 = require("./get-file-manager-name");
30
31
  const get_git_menu_item_1 = require("./get-git-menu-item");
31
32
  const mobile_layout_1 = require("./mobile-layout");
32
33
  const open_in_editor_1 = require("./open-in-editor");
@@ -41,6 +42,7 @@ const rotate = {
41
42
  };
42
43
  const ICON_SIZE = 16;
43
44
  const getFileMenu = ({ readOnlyStudio, closeMenu, previewServerState, setSelectedModal, }) => {
45
+ const fileManagerName = (0, get_file_manager_name_1.getFileManagerName)(window.remotion_fileSystemPlatform);
44
46
  const items = [
45
47
  readOnlyStudio
46
48
  ? null
@@ -165,7 +167,7 @@ const getFileMenu = ({ readOnlyStudio, closeMenu, previewServerState, setSelecte
165
167
  ? {
166
168
  id: 'open-project-in-explorer',
167
169
  value: 'open-project-in-explorer',
168
- label: 'Open in Explorer',
170
+ label: `Open in ${fileManagerName}`,
169
171
  onClick: () => {
170
172
  closeMenu();
171
173
  (0, actions_1.openInFileExplorer)({ directory: window.remotion_cwd }).catch((err) => {
@@ -176,7 +178,7 @@ const getFileMenu = ({ readOnlyStudio, closeMenu, previewServerState, setSelecte
176
178
  keyHint: null,
177
179
  leftItem: null,
178
180
  subMenu: null,
179
- quickSwitcherLabel: 'Open project in Explorer',
181
+ quickSwitcherLabel: `Open project in ${fileManagerName}`,
180
182
  disabled: previewServerState !== 'connected',
181
183
  }
182
184
  : null,
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/studio"
4
4
  },
5
5
  "name": "@remotion/studio",
6
- "version": "4.0.491",
6
+ "version": "4.0.493",
7
7
  "description": "APIs for interacting with the Remotion Studio",
8
8
  "main": "dist",
9
9
  "scripts": {
@@ -25,15 +25,15 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "semver": "7.5.3",
28
- "remotion": "4.0.491",
29
- "@remotion/canvas-capture": "4.0.491",
30
- "@remotion/player": "4.0.491",
31
- "@remotion/media-utils": "4.0.491",
32
- "@remotion/renderer": "4.0.491",
33
- "@remotion/web-renderer": "4.0.491",
34
- "@remotion/studio-shared": "4.0.491",
35
- "@remotion/timeline-utils": "4.0.491",
36
- "@remotion/zod-types": "4.0.491",
28
+ "remotion": "4.0.493",
29
+ "@remotion/canvas-capture": "4.0.493",
30
+ "@remotion/player": "4.0.493",
31
+ "@remotion/media-utils": "4.0.493",
32
+ "@remotion/renderer": "4.0.493",
33
+ "@remotion/web-renderer": "4.0.493",
34
+ "@remotion/studio-shared": "4.0.493",
35
+ "@remotion/timeline-utils": "4.0.493",
36
+ "@remotion/zod-types": "4.0.493",
37
37
  "@jridgewell/trace-mapping": "0.3.31",
38
38
  "mediabunny": "1.50.8",
39
39
  "memfs": "3.4.3",
@@ -44,7 +44,7 @@
44
44
  "react": "19.2.3",
45
45
  "react-dom": "19.2.3",
46
46
  "@types/semver": "7.5.3",
47
- "@remotion/eslint-config-internal": "4.0.491",
47
+ "@remotion/eslint-config-internal": "4.0.493",
48
48
  "eslint": "9.19.0",
49
49
  "@typescript/native-preview": "7.0.0-dev.20260217.1"
50
50
  },