@remotion/studio 4.0.516 → 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.
Files changed (117) hide show
  1. package/dist/components/AssetSelector.js +1 -1
  2. package/dist/components/Canvas.js +15 -12
  3. package/dist/components/CanvasCaptureDropHandler.d.ts +4 -0
  4. package/dist/components/CanvasCaptureDropHandler.js +42 -0
  5. package/dist/components/CanvasOrLoading.js +4 -3
  6. package/dist/components/CaptionInspector.js +1 -1
  7. package/dist/components/CheckboardToggle.js +1 -1
  8. package/dist/components/Checkbox.d.ts +0 -1
  9. package/dist/components/Checkbox.js +2 -19
  10. package/dist/components/ConfigureLicenseModal.js +79 -46
  11. package/dist/components/CurrentAsset.d.ts +1 -1
  12. package/dist/components/CurrentAsset.js +9 -4
  13. package/dist/components/Editor.js +2 -1
  14. package/dist/components/EditorContent.js +5 -2
  15. package/dist/components/EditorContexts.js +2 -1
  16. package/dist/components/EditorRuler/Ruler.d.ts +1 -0
  17. package/dist/components/EditorRuler/Ruler.js +9 -8
  18. package/dist/components/EditorRuler/index.d.ts +1 -0
  19. package/dist/components/EditorRuler/index.js +3 -4
  20. package/dist/components/EditorRuler/use-is-ruler-visible.d.ts +1 -1
  21. package/dist/components/EditorRuler/use-is-ruler-visible.js +8 -2
  22. package/dist/components/ElementLibraryModal.d.ts +5 -0
  23. package/dist/components/ElementLibraryModal.js +38 -0
  24. package/dist/components/FilePreview.js +71 -0
  25. package/dist/components/InlineEditableTitle.js +2 -2
  26. package/dist/components/InspectorPanel/CompositionInspector.js +11 -38
  27. package/dist/components/InspectorPanel/CompositionInspectorHeader.js +2 -2
  28. package/dist/components/InspectorPanel/CompositionMetadata.js +11 -4
  29. package/dist/components/InspectorPanel/EasingInspector.js +2 -2
  30. package/dist/components/InspectorPanel/ElementLibraryButton.d.ts +2 -0
  31. package/dist/components/InspectorPanel/ElementLibraryButton.js +139 -0
  32. package/dist/components/InspectorPanel/KeyframeInspector.js +1 -1
  33. package/dist/components/InspectorPanel/SequenceInspectorHeader.js +12 -5
  34. package/dist/components/InspectorPanel/SequenceSelectionInspector.js +1 -3
  35. package/dist/components/InspectorPanel/common.d.ts +0 -1
  36. package/dist/components/InspectorPanel/common.js +3 -7
  37. package/dist/components/InspectorPanel/inspector-selection.d.ts +2 -2
  38. package/dist/components/InspectorPanel/styles.d.ts +0 -1
  39. package/dist/components/InspectorPanel/styles.js +3 -4
  40. package/dist/components/InspectorPanel/use-track-for-selection.d.ts +1 -2
  41. package/dist/components/InspectorSequenceSection.d.ts +1 -2
  42. package/dist/components/InspectorSourceLocation.js +1 -1
  43. package/dist/components/Menu/MenuItem.js +15 -6
  44. package/dist/components/MenuToolbar.js +7 -3
  45. package/dist/components/Modals.js +2 -1
  46. package/dist/components/PlaybackRateSelector.js +1 -1
  47. package/dist/components/Preview.js +83 -5
  48. package/dist/components/PreviewToolbar.js +10 -4
  49. package/dist/components/PreviewToolbarOverflowButton.d.ts +1 -0
  50. package/dist/components/PreviewToolbarOverflowButton.js +9 -2
  51. package/dist/components/RadioButton.d.ts +6 -0
  52. package/dist/components/RadioButton.js +62 -0
  53. package/dist/components/RenderButton.js +2 -1
  54. package/dist/components/RulersAndGuidesToggle.d.ts +3 -1
  55. package/dist/components/RulersAndGuidesToggle.js +18 -7
  56. package/dist/components/SelectedOutlinePolygon.d.ts +1 -2
  57. package/dist/components/SelectedOutlineRenderer.d.ts +1 -2
  58. package/dist/components/SelectedOutlineUvControls.d.ts +1 -1
  59. package/dist/components/SettingsModal.js +1 -1
  60. package/dist/components/SettingsModalFooter.d.ts +3 -1
  61. package/dist/components/SettingsModalFooter.js +19 -4
  62. package/dist/components/ShowPixelGridProvider.d.ts +4 -0
  63. package/dist/components/ShowPixelGridProvider.js +24 -0
  64. package/dist/components/SidebarCollapserControls.js +2 -2
  65. package/dist/components/Timeline/Timeline.js +41 -0
  66. package/dist/components/Timeline/TimelineClipboardKeybindings.d.ts +6 -7
  67. package/dist/components/Timeline/TimelineDragHandler.js +11 -4
  68. package/dist/components/Timeline/TimelineKeyframeControls.d.ts +1 -2
  69. package/dist/components/Timeline/TimelinePlayCursorSyncer.js +4 -2
  70. package/dist/components/Timeline/TimelineSelection.d.ts +29 -66
  71. package/dist/components/Timeline/TimelineSelection.js +30 -170
  72. package/dist/components/Timeline/TimelineSequenceItem.d.ts +1 -0
  73. package/dist/components/Timeline/TimelineSequenceItem.js +8 -6
  74. package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.d.ts +3 -4
  75. package/dist/components/Timeline/delete-selected-timeline-item.d.ts +3 -4
  76. package/dist/components/Timeline/duplicate-selected-timeline-item.d.ts +3 -4
  77. package/dist/components/Timeline/find-track-for-node-path-info.d.ts +1 -1
  78. package/dist/components/Timeline/keyframe-clipboard.d.ts +2 -3
  79. package/dist/components/Timeline/reset-selected-timeline-props.d.ts +2 -3
  80. package/dist/components/Timeline/sequence-prop-clipboard.d.ts +2 -3
  81. package/dist/components/Timeline/split-selected-timeline-item.d.ts +2 -3
  82. package/dist/components/Timeline/timeline-expanded-filter.d.ts +1 -2
  83. package/dist/components/Timeline/timeline-scroll-logic.d.ts +7 -5
  84. package/dist/components/Timeline/timeline-scroll-logic.js +12 -7
  85. package/dist/components/Timeline/update-selected-easing.d.ts +7 -7
  86. package/dist/components/Timeline/use-timeline-asset-drop.js +24 -1
  87. package/dist/components/Timeline/use-timeline-keyframe-drag.d.ts +6 -7
  88. package/dist/components/canvas-capture-drop.d.ts +4 -0
  89. package/dist/components/canvas-capture-drop.js +22 -0
  90. package/dist/components/selected-outline-measurement.d.ts +7 -8
  91. package/dist/esm/{chunk-w4244j4n.js → chunk-gzqm3g2m.js} +15184 -8344
  92. package/dist/esm/internals.mjs +15184 -8344
  93. package/dist/esm/previewEntry.mjs +15096 -8256
  94. package/dist/esm/renderEntry.mjs +1 -1
  95. package/dist/helpers/calculate-timeline.d.ts +1 -7
  96. package/dist/helpers/calculate-timeline.js +2 -146
  97. package/dist/helpers/editor-ruler.js +6 -5
  98. package/dist/helpers/get-asset-metadata.d.ts +19 -0
  99. package/dist/helpers/get-asset-metadata.js +51 -6
  100. package/dist/helpers/get-connected-compositions.d.ts +1 -6
  101. package/dist/helpers/get-connected-compositions.js +2 -8
  102. package/dist/helpers/get-sequence-visible-range.d.ts +1 -5
  103. package/dist/helpers/get-sequence-visible-range.js +6 -51
  104. package/dist/helpers/get-timeline-nestedness.d.ts +1 -2
  105. package/dist/helpers/get-timeline-nestedness.js +2 -12
  106. package/dist/helpers/get-timeline-sequence-sort-key.d.ts +2 -22
  107. package/dist/helpers/get-timeline-sequence-sort-key.js +2 -16
  108. package/dist/helpers/is-current-selected-still.js +4 -2
  109. package/dist/helpers/sort-by-nonce-history.d.ts +1 -5
  110. package/dist/helpers/sort-by-nonce-history.js +3 -148
  111. package/dist/helpers/timeline-node-path-key.d.ts +1 -2
  112. package/dist/helpers/timeline-node-path-key.js +2 -2
  113. package/dist/helpers/use-menu-structure.js +20 -0
  114. package/dist/state/editor-pixel-grid.d.ts +8 -0
  115. package/dist/state/editor-pixel-grid.js +18 -0
  116. package/dist/state/modals.d.ts +4 -0
  117. package/package.json +14 -12
@@ -1,151 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.sortItemsByNonceHistory = exports.compareNonceHistories = void 0;
4
- const getSharedEpochOrder = (a, b) => {
5
- const aMap = new Map(a);
6
- const bMap = new Map(b);
7
- const allEpochs = [...new Set([...aMap.keys(), ...bMap.keys()])].sort((x, y) => y - x);
8
- for (const epoch of allEpochs) {
9
- const aNonce = aMap.get(epoch);
10
- const bNonce = bMap.get(epoch);
11
- if (aNonce !== undefined && bNonce !== undefined) {
12
- return aNonce - bNonce;
13
- }
14
- }
15
- return null;
16
- };
17
- const compareNonceHistories = (a, b) => {
18
- const shared = getSharedEpochOrder(a, b);
19
- if (shared !== null) {
20
- return shared;
21
- }
22
- // No shared epoch — items from a lower latest epoch come first
23
- const aLatestEpoch = a[a.length - 1][0];
24
- const bLatestEpoch = b[b.length - 1][0];
25
- return aLatestEpoch - bLatestEpoch;
26
- };
27
- exports.compareNonceHistories = compareNonceHistories;
28
- // Compare two histories, each pre-collapsed to parallel arrays of epochs and
29
- // nonces sorted by descending epoch, without rebuilding a Map per comparison.
30
- // Equivalent to getSharedEpochOrder: both find the newest shared epoch and
31
- // compare its nonces.
32
- const sharedEpochOrderFromSorted = (aEpochs, aNonces, bEpochs, bNonces) => {
33
- let i = 0;
34
- let j = 0;
35
- while (i < aEpochs.length && j < bEpochs.length) {
36
- const ae = aEpochs[i];
37
- const be = bEpochs[j];
38
- if (ae === be) {
39
- return aNonces[i] - bNonces[j];
40
- }
41
- if (ae > be) {
42
- i++;
43
- }
44
- else {
45
- j++;
46
- }
47
- }
48
- return null;
49
- };
50
- const sortItemsByNonceHistory = (items) => {
51
- const n = items.length;
52
- if (n <= 1) {
53
- return items.slice();
54
- }
55
- // Collapse each history once into epoch/nonce arrays sorted by descending
56
- // epoch. `new Map(nonce)` keeps the last value per duplicated epoch, matching
57
- // getSharedEpochOrder. This removes the per-pair Map/Set construction the
58
- // pairwise loop below would otherwise repeat O(n^2) times.
59
- const epochsOf = new Array(n);
60
- const noncesOf = new Array(n);
61
- for (let i = 0; i < n; i++) {
62
- const map = new Map(items[i].nonce);
63
- const epochs = [...map.keys()].sort((x, y) => y - x);
64
- epochsOf[i] = epochs;
65
- noncesOf[i] = epochs.map((e) => map.get(e));
66
- }
67
- // Pairwise "strictly before" relation, stored as bitsets: `before[i]` has
68
- // bit j set when i must come before j, `known[i]` has bit j set when the
69
- // pair (i, j) is directly determined by a shared epoch. Bitsets let the
70
- // transitive closure below combine 32 relationships per word.
71
- const words = (n + 31) >> 5;
72
- const before = new Uint32Array(n * words);
73
- const known = new Uint32Array(n * words);
74
- // Direct comparison sign per ordered pair; only read where `known` is set.
75
- const sign = new Int8Array(n * n);
76
- for (let i = 0; i < n; i++) {
77
- for (let j = i + 1; j < n; j++) {
78
- const cmp = sharedEpochOrderFromSorted(epochsOf[i], noncesOf[i], epochsOf[j], noncesOf[j]);
79
- if (cmp === null) {
80
- continue;
81
- }
82
- known[i * words + (j >> 5)] |= 1 << (j & 31);
83
- known[j * words + (i >> 5)] |= 1 << (i & 31);
84
- sign[i * n + j] = cmp < 0 ? -1 : cmp > 0 ? 1 : 0;
85
- sign[j * n + i] = cmp < 0 ? 1 : cmp > 0 ? -1 : 0;
86
- if (cmp < 0) {
87
- before[i * words + (j >> 5)] |= 1 << (j & 31);
88
- }
89
- else if (cmp > 0) {
90
- before[j * words + (i >> 5)] |= 1 << (i & 31);
91
- }
92
- }
93
- }
94
- // Transitive closure: if i < k and k < j, then i < j. This is the same
95
- // Floyd-Warshall relation as before, but the inner sweep is bitwise
96
- // (`before[k] & ~known[i]` finds all reachable j at once). A newly derived
97
- // edge is marked known immediately so the first path decides an otherwise
98
- // undetermined pair — preserving behavior on the inputs where the pairwise
99
- // comparison is intentionally non-transitive.
100
- for (let k = 0; k < n; k++) {
101
- const kBase = k * words;
102
- const kWord = k >> 5;
103
- const kBit = 1 << (k & 31);
104
- for (let i = 0; i < n; i++) {
105
- if (i === k) {
106
- continue;
107
- }
108
- const iBase = i * words;
109
- if ((before[iBase + kWord] & kBit) === 0) {
110
- continue; // i is not before k, so k adds nothing for i
111
- }
112
- for (let w = 0; w < words; w++) {
113
- const add = before[kBase + w] & ~known[iBase + w];
114
- if (add === 0) {
115
- continue;
116
- }
117
- before[iBase + w] |= add;
118
- known[iBase + w] |= add;
119
- // Set the mirror relationship (j after i) for each newly known pair.
120
- let bits = add;
121
- while (bits !== 0) {
122
- const lowest = bits & -bits;
123
- const j = (w << 5) + (31 - Math.clz32(lowest));
124
- sign[i * n + j] = -1;
125
- known[j * words + (i >> 5)] |= 1 << (i & 31);
126
- sign[j * n + i] = 1;
127
- bits ^= lowest;
128
- }
129
- }
130
- }
131
- }
132
- const indexMap = new Map(items.map((item, i) => [item, i]));
133
- const result = items.slice();
134
- result.sort((a, b) => {
135
- const ai = indexMap.get(a);
136
- const bi = indexMap.get(b);
137
- if ((known[ai * words + (bi >> 5)] >> (bi & 31)) & 1) {
138
- return sign[ai * n + bi];
139
- }
140
- if ((before[ai * words + (bi >> 5)] >> (bi & 31)) & 1) {
141
- return -1;
142
- }
143
- if ((before[bi * words + (ai >> 5)] >> (ai & 31)) & 1) {
144
- return 1;
145
- }
146
- // No transitive relationship — lower latest epoch first
147
- return a.nonce[a.nonce.length - 1][0] - b.nonce[b.nonce.length - 1][0];
148
- });
149
- return result;
150
- };
151
- exports.sortItemsByNonceHistory = sortItemsByNonceHistory;
4
+ const canvas_1 = require("@remotion/canvas");
5
+ Object.defineProperty(exports, "compareNonceHistories", { enumerable: true, get: function () { return canvas_1.compareNonceHistories; } });
6
+ Object.defineProperty(exports, "sortItemsByNonceHistory", { enumerable: true, get: function () { return canvas_1.sortItemsByNonceHistory; } });
@@ -1,4 +1,3 @@
1
- import type { SequencePropsSubscriptionKey } from 'remotion';
2
1
  import type { SequenceNodePathInfo } from './get-timeline-sequence-sort-key';
3
- export declare const timelineSequenceNodePathToKey: (key: SequencePropsSubscriptionKey) => string;
2
+ export { timelineSequenceNodePathToKey } from '@remotion/canvas';
4
3
  export declare const timelineNodePathInfoToKey: (info: SequenceNodePathInfo) => string;
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.timelineNodePathInfoToKey = exports.timelineSequenceNodePathToKey = void 0;
4
4
  const studio_shared_1 = require("@remotion/studio-shared");
5
- const timelineSequenceNodePathToKey = (key) => `${key.absolutePath}:${JSON.stringify(key.nodePath)}`;
6
- exports.timelineSequenceNodePathToKey = timelineSequenceNodePathToKey;
5
+ const canvas_1 = require("@remotion/canvas");
6
+ Object.defineProperty(exports, "timelineSequenceNodePathToKey", { enumerable: true, get: function () { return canvas_1.timelineSequenceNodePathToKey; } });
7
7
  const timelineNodePathInfoToKey = (info) => [
8
8
  (0, studio_shared_1.stringifySequenceExpandedRowKey)(info.sequenceSubscriptionKey),
9
9
  info.auxiliaryKeys.join('.'),
@@ -20,6 +20,7 @@ const Checkmark_1 = require("../icons/Checkmark");
20
20
  const canvas_ref_1 = require("../state/canvas-ref");
21
21
  const checkerboard_1 = require("../state/checkerboard");
22
22
  const editor_guides_1 = require("../state/editor-guides");
23
+ const editor_pixel_grid_1 = require("../state/editor-pixel-grid");
23
24
  const editor_rulers_1 = require("../state/editor-rulers");
24
25
  const editor_snapping_1 = require("../state/editor-snapping");
25
26
  const editor_zoom_gestures_1 = require("../state/editor-zoom-gestures");
@@ -234,6 +235,7 @@ const useMenuStructure = (closeMenu, readOnlyStudio) => {
234
235
  const { setSelectedModal } = (0, react_1.useContext)(modals_1.SetSelectedModalContext);
235
236
  const { checkerboard, setCheckerboard } = (0, react_1.useContext)(checkerboard_1.CheckerboardContext);
236
237
  const { editorZoomGestures, setEditorZoomGestures } = (0, react_1.useContext)(editor_zoom_gestures_1.EditorZoomGesturesContext);
238
+ const { editorShowPixelGrid, setEditorShowPixelGrid } = (0, react_1.useContext)(editor_pixel_grid_1.EditorShowPixelGridContext);
237
239
  const { editorShowRulers, setEditorShowRulers } = (0, react_1.useContext)(editor_rulers_1.EditorShowRulersContext);
238
240
  const { editorShowGuides, setEditorShowGuides } = (0, react_1.useContext)(editor_guides_1.EditorShowGuidesContext);
239
241
  const { editorSnapping, setEditorSnapping } = (0, react_1.useContext)(editor_snapping_1.EditorSnappingContext);
@@ -423,6 +425,22 @@ const useMenuStructure = (closeMenu, readOnlyStudio) => {
423
425
  ? 'Disable Zoom and Pan Gestures'
424
426
  : 'Enable Zoom and Pan Gestures',
425
427
  },
428
+ {
429
+ id: 'pixel-grid',
430
+ keyHint: null,
431
+ label: 'Pixel Grid',
432
+ onClick: () => {
433
+ closeMenu();
434
+ setEditorShowPixelGrid((c) => !c);
435
+ },
436
+ type: 'item',
437
+ value: 'pixel-grid',
438
+ leftItem: editorShowPixelGrid ? jsx_runtime_1.jsx(Checkmark_1.Checkmark, {}) : null,
439
+ subMenu: null,
440
+ quickSwitcherLabel: editorShowPixelGrid
441
+ ? 'Hide Pixel Grid'
442
+ : 'Show Pixel Grid',
443
+ },
426
444
  {
427
445
  id: 'show-rulers',
428
446
  keyHint: null,
@@ -990,6 +1008,7 @@ const useMenuStructure = (closeMenu, readOnlyStudio) => {
990
1008
  currentComposition,
991
1009
  resolvedCompositionLocation,
992
1010
  editorZoomGestures,
1011
+ editorShowPixelGrid,
993
1012
  editorShowRulers,
994
1013
  editorShowGuides,
995
1014
  editorSnapping,
@@ -1007,6 +1026,7 @@ const useMenuStructure = (closeMenu, readOnlyStudio) => {
1007
1026
  size.size,
1008
1027
  setSize,
1009
1028
  setEditorZoomGestures,
1029
+ setEditorShowPixelGrid,
1010
1030
  setEditorShowRulers,
1011
1031
  setEditorShowGuides,
1012
1032
  setEditorSnapping,
@@ -0,0 +1,8 @@
1
+ type State = {
2
+ editorShowPixelGrid: boolean;
3
+ setEditorShowPixelGrid: (cb: (prevState: boolean) => boolean) => void;
4
+ };
5
+ export declare const persistEditorShowPixelGridOption: (option: boolean) => void;
6
+ export declare const loadEditorShowPixelGridOption: () => boolean;
7
+ export declare const EditorShowPixelGridContext: import("react").Context<State>;
8
+ export {};
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EditorShowPixelGridContext = exports.loadEditorShowPixelGridOption = exports.persistEditorShowPixelGridOption = void 0;
4
+ const react_1 = require("react");
5
+ const key = 'remotion.editorShowPixelGrid';
6
+ const persistEditorShowPixelGridOption = (option) => {
7
+ localStorage.setItem(key, String(option));
8
+ };
9
+ exports.persistEditorShowPixelGridOption = persistEditorShowPixelGridOption;
10
+ const loadEditorShowPixelGridOption = () => {
11
+ const item = localStorage.getItem(key);
12
+ return item !== 'false';
13
+ };
14
+ exports.loadEditorShowPixelGridOption = loadEditorShowPixelGridOption;
15
+ exports.EditorShowPixelGridContext = (0, react_1.createContext)({
16
+ editorShowPixelGrid: true,
17
+ setEditorShowPixelGrid: () => undefined,
18
+ });
@@ -181,6 +181,10 @@ export type ModalState = {
181
181
  excludeCompositionId: string;
182
182
  onSelected: (composition: _InternalTypes['AnyComposition']) => void;
183
183
  } | null;
184
+ } | {
185
+ type: 'element-library';
186
+ name: string;
187
+ url: string;
184
188
  } | AddEffectModalState | ConfirmationDialogState | SvgImportDialogState;
185
189
  export type SetSelectedModalContextType = {
186
190
  setSelectedModal: React.Dispatch<React.SetStateAction<ModalState | 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.516",
6
+ "version": "4.0.517",
7
7
  "description": "APIs for interacting with the Remotion Studio",
8
8
  "main": "dist",
9
9
  "scripts": {
@@ -25,17 +25,19 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "@tanstack/react-virtual": "3.14.9",
28
- "@remotion/studio-protocol": "4.0.516",
28
+ "@remotion/canvas": "4.0.517",
29
+ "@remotion/studio-protocol": "4.0.517",
29
30
  "semver": "7.5.3",
30
- "remotion": "4.0.516",
31
- "@remotion/captions": "4.0.516",
32
- "@remotion/player": "4.0.516",
33
- "@remotion/media-utils": "4.0.516",
34
- "@remotion/renderer": "4.0.516",
35
- "@remotion/web-renderer": "4.0.516",
36
- "@remotion/studio-shared": "4.0.516",
37
- "@remotion/timeline-utils": "4.0.516",
38
- "@remotion/zod-types": "4.0.516",
31
+ "remotion": "4.0.517",
32
+ "@remotion/captions": "4.0.517",
33
+ "@remotion/media": "4.0.517",
34
+ "@remotion/player": "4.0.517",
35
+ "@remotion/media-utils": "4.0.517",
36
+ "@remotion/renderer": "4.0.517",
37
+ "@remotion/web-renderer": "4.0.517",
38
+ "@remotion/studio-shared": "4.0.517",
39
+ "@remotion/timeline-utils": "4.0.517",
40
+ "@remotion/zod-types": "4.0.517",
39
41
  "@jridgewell/trace-mapping": "0.3.31",
40
42
  "mediabunny": "1.55.1",
41
43
  "memfs": "3.4.3",
@@ -46,7 +48,7 @@
46
48
  "react": "19.2.3",
47
49
  "react-dom": "19.2.3",
48
50
  "@types/semver": "7.5.3",
49
- "@remotion/eslint-config-internal": "4.0.516",
51
+ "@remotion/eslint-config-internal": "4.0.517",
50
52
  "eslint": "9.19.0",
51
53
  "@typescript/native-preview": "7.0.0-dev.20260217.1"
52
54
  },