@remotion/studio 4.0.472 → 4.0.474

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 (165) hide show
  1. package/dist/api/rename-static-file.d.ts +6 -0
  2. package/dist/api/rename-static-file.js +18 -0
  3. package/dist/components/AssetSelector.js +45 -4
  4. package/dist/components/AssetSelectorItem.js +177 -27
  5. package/dist/components/Canvas.js +131 -11
  6. package/dist/components/ConfirmationDialog-types.d.ts +8 -0
  7. package/dist/components/ConfirmationDialog-types.js +2 -0
  8. package/dist/components/ConfirmationDialog.d.ts +7 -0
  9. package/dist/components/ConfirmationDialog.js +103 -0
  10. package/dist/components/ContextMenu.d.ts +9 -1
  11. package/dist/components/ContextMenu.js +49 -5
  12. package/dist/components/CurrentAsset.d.ts +1 -0
  13. package/dist/components/CurrentAsset.js +13 -2
  14. package/dist/components/EditorContent.js +15 -2
  15. package/dist/components/EditorContexts.js +2 -1
  16. package/dist/components/EditorRuler/Ruler.js +2 -0
  17. package/dist/components/ExplorerPanel.d.ts +0 -4
  18. package/dist/components/ExplorerPanel.js +8 -4
  19. package/dist/components/ExplorerPanelRef.d.ts +4 -0
  20. package/dist/components/ExplorerPanelRef.js +5 -0
  21. package/dist/components/FilePreview.d.ts +1 -1
  22. package/dist/components/InitialCompositionLoader.d.ts +0 -1
  23. package/dist/components/InitialCompositionLoader.js +5 -27
  24. package/dist/components/Menu/MenuItem.js +7 -1
  25. package/dist/components/Menu/SubMenu.js +5 -1
  26. package/dist/components/Menu/portals.js +17 -8
  27. package/dist/components/MenuToolbar.js +5 -1
  28. package/dist/components/ModalContainer.js +6 -1
  29. package/dist/components/Modals.js +5 -2
  30. package/dist/components/NewComposition/ComboBox.js +8 -2
  31. package/dist/components/NewComposition/InputDragger.d.ts +1 -0
  32. package/dist/components/NewComposition/InputDragger.js +9 -6
  33. package/dist/components/NewComposition/RenameStaticFile.d.ts +4 -0
  34. package/dist/components/NewComposition/RenameStaticFile.js +118 -0
  35. package/dist/components/OptionsPanel.js +5 -1
  36. package/dist/components/OutlineToggle.d.ts +2 -0
  37. package/dist/components/OutlineToggle.js +20 -0
  38. package/dist/components/Preview.d.ts +0 -2
  39. package/dist/components/Preview.js +23 -33
  40. package/dist/components/PreviewToolbar.js +19 -6
  41. package/dist/components/RenderButton.js +8 -2
  42. package/dist/components/RenderPreview.js +2 -2
  43. package/dist/components/SelectedOutlineOverlay.d.ts +29 -3
  44. package/dist/components/SelectedOutlineOverlay.js +259 -80
  45. package/dist/components/ShowOutlinesProvider.d.ts +4 -0
  46. package/dist/components/ShowOutlinesProvider.js +24 -0
  47. package/dist/components/SizeSelector.js +3 -3
  48. package/dist/components/Splitter/SplitterHandle.js +2 -0
  49. package/dist/components/StaticFilePreview.js +2 -2
  50. package/dist/components/Timeline/KeyframeSettingsModal.d.ts +15 -0
  51. package/dist/components/Timeline/KeyframeSettingsModal.js +150 -0
  52. package/dist/components/Timeline/SequencePropsObserver.js +3 -3
  53. package/dist/components/Timeline/Timeline.js +3 -13
  54. package/dist/components/Timeline/TimelineClipboardKeybindings.d.ts +26 -3
  55. package/dist/components/Timeline/TimelineClipboardKeybindings.js +242 -25
  56. package/dist/components/Timeline/TimelineDeleteKeybindings.js +23 -11
  57. package/dist/components/Timeline/TimelineEffectItem.js +8 -7
  58. package/dist/components/Timeline/TimelineEffectPropItem.js +69 -19
  59. package/dist/components/Timeline/TimelineExpandedKeyframeRow.js +6 -1
  60. package/dist/components/Timeline/TimelineExpandedSection.js +5 -5
  61. package/dist/components/Timeline/TimelineKeyframeControls.js +13 -23
  62. package/dist/components/Timeline/TimelineKeyframeDiamond.js +24 -22
  63. package/dist/components/Timeline/TimelineKeyframeDiamondIcon.d.ts +6 -0
  64. package/dist/components/Timeline/TimelineKeyframeDiamondIcon.js +14 -0
  65. package/dist/components/Timeline/TimelineKeyframeDragState.d.ts +17 -0
  66. package/dist/components/Timeline/TimelineKeyframeDragState.js +39 -0
  67. package/dist/components/Timeline/TimelineKeyframeEasingLine.d.ts +9 -0
  68. package/dist/components/Timeline/TimelineKeyframeEasingLine.js +120 -0
  69. package/dist/components/Timeline/TimelineKeyframedValue.js +1 -1
  70. package/dist/components/Timeline/TimelineList.js +2 -2
  71. package/dist/components/Timeline/TimelineMediaInfo.d.ts +0 -13
  72. package/dist/components/Timeline/TimelineMediaInfo.js +8 -73
  73. package/dist/components/Timeline/TimelineNumberField.js +15 -7
  74. package/dist/components/Timeline/TimelineRotationField.js +17 -11
  75. package/dist/components/Timeline/TimelineScaleField.js +17 -13
  76. package/dist/components/Timeline/TimelineSelection.d.ts +15 -0
  77. package/dist/components/Timeline/TimelineSelection.js +26 -1
  78. package/dist/components/Timeline/TimelineSequence.js +6 -6
  79. package/dist/components/Timeline/TimelineSequenceItem.d.ts +1 -0
  80. package/dist/components/Timeline/TimelineSequenceItem.js +297 -36
  81. package/dist/components/Timeline/TimelineSequencePropItem.js +113 -48
  82. package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.d.ts +5 -5
  83. package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.js +69 -70
  84. package/dist/components/Timeline/TimelineTranslateField.js +24 -19
  85. package/dist/components/Timeline/TimelineUvCoordinateField.js +18 -12
  86. package/dist/components/Timeline/apply-effect-response-to-prop-statuses.d.ts +5 -0
  87. package/dist/components/Timeline/apply-effect-response-to-prop-statuses.js +19 -0
  88. package/dist/components/Timeline/call-add-keyframe.d.ts +5 -5
  89. package/dist/components/Timeline/call-add-keyframe.js +6 -4
  90. package/dist/components/Timeline/call-delete-keyframe.d.ts +7 -7
  91. package/dist/components/Timeline/call-delete-keyframe.js +7 -7
  92. package/dist/components/Timeline/call-move-keyframe.d.ts +19 -0
  93. package/dist/components/Timeline/call-move-keyframe.js +71 -0
  94. package/dist/components/Timeline/call-update-keyframe-settings.d.ts +22 -0
  95. package/dist/components/Timeline/call-update-keyframe-settings.js +52 -0
  96. package/dist/components/Timeline/delete-selected-keyframe.d.ts +5 -5
  97. package/dist/components/Timeline/delete-selected-keyframe.js +5 -5
  98. package/dist/components/Timeline/delete-selected-timeline-item.d.ts +10 -7
  99. package/dist/components/Timeline/delete-selected-timeline-item.js +37 -23
  100. package/dist/components/Timeline/duplicate-selected-timeline-item.d.ts +4 -2
  101. package/dist/components/Timeline/duplicate-selected-timeline-item.js +39 -34
  102. package/dist/components/Timeline/get-bounded-keyframe-drag-delta.d.ts +8 -0
  103. package/dist/components/Timeline/get-bounded-keyframe-drag-delta.js +12 -0
  104. package/dist/components/Timeline/get-keyframe-navigation.d.ts +2 -2
  105. package/dist/components/Timeline/get-keyframe-navigation.js +14 -6
  106. package/dist/components/Timeline/get-node-keyframes.d.ts +3 -3
  107. package/dist/components/Timeline/get-node-keyframes.js +4 -4
  108. package/dist/components/Timeline/get-timeline-easing-segments.d.ts +9 -0
  109. package/dist/components/Timeline/get-timeline-easing-segments.js +19 -0
  110. package/dist/components/Timeline/reset-selected-timeline-props.d.ts +7 -7
  111. package/dist/components/Timeline/reset-selected-timeline-props.js +13 -12
  112. package/dist/components/Timeline/save-effect-prop.d.ts +16 -5
  113. package/dist/components/Timeline/save-effect-prop.js +37 -19
  114. package/dist/components/Timeline/save-prop-queue.d.ts +4 -3
  115. package/dist/components/Timeline/save-prop-queue.js +6 -3
  116. package/dist/components/Timeline/save-sequence-prop.d.ts +5 -10
  117. package/dist/components/Timeline/save-sequence-prop.js +35 -32
  118. package/dist/components/Timeline/should-clear-selection-on-pointer-down.d.ts +3 -0
  119. package/dist/components/Timeline/should-clear-selection-on-pointer-down.js +7 -0
  120. package/dist/components/Timeline/timeline-asset-link.d.ts +13 -0
  121. package/dist/components/Timeline/timeline-asset-link.js +37 -0
  122. package/dist/components/Timeline/timeline-field-utils.d.ts +10 -0
  123. package/dist/components/Timeline/timeline-field-utils.js +26 -5
  124. package/dist/components/Timeline/timeline-translate-utils.d.ts +1 -1
  125. package/dist/components/Timeline/timeline-translate-utils.js +6 -4
  126. package/dist/components/Timeline/use-expanded-track-keyframe-rows.js +7 -7
  127. package/dist/components/Timeline/use-sequence-props-subscription.js +3 -3
  128. package/dist/components/Timeline/use-timeline-height.js +3 -3
  129. package/dist/components/Timeline/use-timeline-keyframe-drag.d.ts +10 -0
  130. package/dist/components/Timeline/use-timeline-keyframe-drag.js +380 -0
  131. package/dist/components/import-assets.d.ts +31 -0
  132. package/dist/components/import-assets.js +216 -17
  133. package/dist/components/load-canvas-content-from-url.d.ts +1 -0
  134. package/dist/components/load-canvas-content-from-url.js +9 -3
  135. package/dist/components/use-select-asset.d.ts +1 -0
  136. package/dist/components/use-select-asset.js +30 -0
  137. package/dist/error-overlay/error-origin.d.ts +3 -0
  138. package/dist/error-overlay/error-origin.js +42 -0
  139. package/dist/error-overlay/react-overlay/listen-to-runtime-errors.js +6 -2
  140. package/dist/error-overlay/remotion-overlay/ErrorLoader.js +38 -0
  141. package/dist/error-overlay/remotion-overlay/ShortcutHint.js +1 -1
  142. package/dist/error-overlay/remotion-overlay/log-studio-error.d.ts +3 -0
  143. package/dist/error-overlay/remotion-overlay/log-studio-error.js +27 -0
  144. package/dist/esm/{chunk-48grt472.js → chunk-xjvc8qen.js} +21838 -18862
  145. package/dist/esm/internals.mjs +21838 -18862
  146. package/dist/esm/previewEntry.mjs +21127 -18127
  147. package/dist/esm/renderEntry.mjs +1 -1
  148. package/dist/helpers/get-asset-metadata.js +2 -2
  149. package/dist/helpers/get-preview-file-type.d.ts +2 -0
  150. package/dist/helpers/get-preview-file-type.js +33 -0
  151. package/dist/helpers/install-required-package.d.ts +1 -0
  152. package/dist/helpers/install-required-package.js +39 -0
  153. package/dist/helpers/remote-asset-drag.d.ts +4 -0
  154. package/dist/helpers/remote-asset-drag.js +73 -0
  155. package/dist/helpers/timeline-layout.d.ts +6 -6
  156. package/dist/helpers/timeline-layout.js +5 -5
  157. package/dist/helpers/use-asset-drag-events.d.ts +5 -2
  158. package/dist/helpers/use-asset-drag-events.js +13 -2
  159. package/dist/hot-middleware-client/client.js +6 -0
  160. package/dist/state/editor-outlines.d.ts +8 -0
  161. package/dist/state/editor-outlines.js +18 -0
  162. package/dist/state/modals.d.ts +16 -2
  163. package/package.json +10 -10
  164. package/dist/helpers/detect-file-type.d.ts +0 -69
  165. package/dist/helpers/detect-file-type.js +0 -278
@@ -1,278 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.detectFileType = exports.isM3u = exports.isFlac = exports.isAac = exports.isMp3 = exports.isTransportStream = exports.isIsoBaseMedia = exports.isWebm = exports.isRiffWave = exports.isRiffAvi = exports.matchesPattern = void 0;
4
- const webmPattern = new Uint8Array([0x1a, 0x45, 0xdf, 0xa3]);
5
- const matchesPattern = (pattern) => {
6
- return (data) => {
7
- return pattern.every((value, index) => data[index] === value);
8
- };
9
- };
10
- exports.matchesPattern = matchesPattern;
11
- const isRiffAvi = (data) => {
12
- const riffPattern = new Uint8Array([0x52, 0x49, 0x46, 0x46]);
13
- if (!(0, exports.matchesPattern)(riffPattern)(data.subarray(0, 4))) {
14
- return false;
15
- }
16
- const fileType = data.subarray(8, 12);
17
- const aviPattern = new Uint8Array([0x41, 0x56, 0x49, 0x20]);
18
- return (0, exports.matchesPattern)(aviPattern)(fileType);
19
- };
20
- exports.isRiffAvi = isRiffAvi;
21
- const isRiffWave = (data) => {
22
- const riffPattern = new Uint8Array([0x52, 0x49, 0x46, 0x46]);
23
- if (!(0, exports.matchesPattern)(riffPattern)(data.subarray(0, 4))) {
24
- return false;
25
- }
26
- const fileType = data.subarray(8, 12);
27
- const wavePattern = new Uint8Array([0x57, 0x41, 0x56, 0x45]);
28
- return (0, exports.matchesPattern)(wavePattern)(fileType);
29
- };
30
- exports.isRiffWave = isRiffWave;
31
- const isWebm = (data) => {
32
- return (0, exports.matchesPattern)(webmPattern)(data.subarray(0, 4));
33
- };
34
- exports.isWebm = isWebm;
35
- const isIsoBaseMedia = (data) => {
36
- const isoBaseMediaMp4Pattern = new TextEncoder().encode('ftyp');
37
- return (0, exports.matchesPattern)(isoBaseMediaMp4Pattern)(data.subarray(4, 8));
38
- };
39
- exports.isIsoBaseMedia = isIsoBaseMedia;
40
- const isTransportStream = (data) => {
41
- return data[0] === 0x47 && data[188] === 0x47;
42
- };
43
- exports.isTransportStream = isTransportStream;
44
- const isMp3 = (data) => {
45
- const mpegPattern = new Uint8Array([0xff, 0xf3]);
46
- const mpegPattern2 = new Uint8Array([0xff, 0xfb]);
47
- const id3v4Pattern = new Uint8Array([0x49, 0x44, 0x33, 4]);
48
- const id3v3Pattern = new Uint8Array([0x49, 0x44, 0x33, 3]);
49
- const id3v2Pattern = new Uint8Array([0x49, 0x44, 0x33, 2]);
50
- const subarray = data.subarray(0, 4);
51
- return ((0, exports.matchesPattern)(mpegPattern)(subarray) ||
52
- (0, exports.matchesPattern)(mpegPattern2)(subarray) ||
53
- (0, exports.matchesPattern)(id3v4Pattern)(subarray) ||
54
- (0, exports.matchesPattern)(id3v3Pattern)(subarray) ||
55
- (0, exports.matchesPattern)(id3v2Pattern)(subarray));
56
- };
57
- exports.isMp3 = isMp3;
58
- const isAac = (data) => {
59
- const aacPattern = new Uint8Array([0xff, 0xf1]);
60
- return (0, exports.matchesPattern)(aacPattern)(data.subarray(0, 2));
61
- };
62
- exports.isAac = isAac;
63
- const isFlac = (data) => {
64
- const flacPattern = new Uint8Array([0x66, 0x4c, 0x61, 0x43]);
65
- return (0, exports.matchesPattern)(flacPattern)(data.subarray(0, 4));
66
- };
67
- exports.isFlac = isFlac;
68
- const isM3u = (data) => {
69
- return new TextDecoder('utf-8').decode(data.slice(0, 7)) === '#EXTM3U';
70
- };
71
- exports.isM3u = isM3u;
72
- const getPngDimensions = (pngData) => {
73
- if (pngData.length < 24) {
74
- return null;
75
- }
76
- const view = new DataView(pngData.buffer, pngData.byteOffset);
77
- const pngSignature = [137, 80, 78, 71, 13, 10, 26, 10];
78
- for (let i = 0; i < 8; i++) {
79
- if (pngData[i] !== pngSignature[i]) {
80
- return null;
81
- }
82
- }
83
- return {
84
- width: view.getUint32(16, false),
85
- height: view.getUint32(20, false),
86
- };
87
- };
88
- const isPng = (data) => {
89
- const pngPattern = new Uint8Array([0x89, 0x50, 0x4e, 0x47]);
90
- if ((0, exports.matchesPattern)(pngPattern)(data.subarray(0, 4))) {
91
- const png = getPngDimensions(data);
92
- return { dimensions: png, type: 'png' };
93
- }
94
- return null;
95
- };
96
- const getJpegDimensions = (data) => {
97
- let offset = 0;
98
- const readUint16BE = (o) => {
99
- return (data[o] << 8) | data[o + 1];
100
- };
101
- if (readUint16BE(offset) !== 0xffd8) {
102
- return null;
103
- }
104
- offset += 2;
105
- while (offset < data.length) {
106
- if (data[offset] === 0xff) {
107
- const marker = data[offset + 1];
108
- if (marker === 0xc0 || marker === 0xc2) {
109
- const height = readUint16BE(offset + 5);
110
- const width = readUint16BE(offset + 7);
111
- return { width, height };
112
- }
113
- const length = readUint16BE(offset + 2);
114
- offset += length + 2;
115
- }
116
- else {
117
- offset++;
118
- }
119
- }
120
- return null;
121
- };
122
- const isJpeg = (data) => {
123
- const jpegPattern = new Uint8Array([0xff, 0xd8]);
124
- const jpeg = (0, exports.matchesPattern)(jpegPattern)(data.subarray(0, 2));
125
- if (!jpeg) {
126
- return null;
127
- }
128
- const dim = getJpegDimensions(data);
129
- return { dimensions: dim, type: 'jpeg' };
130
- };
131
- const getGifDimensions = (data) => {
132
- const view = new DataView(data.buffer, data.byteOffset);
133
- const width = view.getUint16(6, true);
134
- const height = view.getUint16(8, true);
135
- return { width, height };
136
- };
137
- const isGif = (data) => {
138
- const gifPattern = new Uint8Array([0x47, 0x49, 0x46, 0x38]);
139
- if ((0, exports.matchesPattern)(gifPattern)(data.subarray(0, 4))) {
140
- return { type: 'gif', dimensions: getGifDimensions(data) };
141
- }
142
- return null;
143
- };
144
- const getWebPDimensions = (bytes) => {
145
- if (bytes.length < 30) {
146
- return null;
147
- }
148
- if (bytes[0] !== 0x52 ||
149
- bytes[1] !== 0x49 ||
150
- bytes[2] !== 0x46 ||
151
- bytes[3] !== 0x46 ||
152
- bytes[8] !== 0x57 ||
153
- bytes[9] !== 0x45 ||
154
- bytes[10] !== 0x42 ||
155
- bytes[11] !== 0x50) {
156
- return null;
157
- }
158
- if (bytes[12] === 0x56 && bytes[13] === 0x50 && bytes[14] === 0x38) {
159
- if (bytes[15] === 0x20) {
160
- return {
161
- width: bytes[26] | ((bytes[27] << 8) & 0x3fff),
162
- height: bytes[28] | ((bytes[29] << 8) & 0x3fff),
163
- };
164
- }
165
- }
166
- if (bytes[12] === 0x56 &&
167
- bytes[13] === 0x50 &&
168
- bytes[14] === 0x38 &&
169
- bytes[15] === 0x4c) {
170
- return {
171
- width: 1 + (bytes[21] | ((bytes[22] & 0x3f) << 8)),
172
- height: 1 +
173
- (((bytes[22] & 0xc0) >> 6) |
174
- (bytes[23] << 2) |
175
- ((bytes[24] & 0x0f) << 10)),
176
- };
177
- }
178
- if (bytes[12] === 0x56 &&
179
- bytes[13] === 0x50 &&
180
- bytes[14] === 0x38 &&
181
- bytes[15] === 0x58) {
182
- return {
183
- width: 1 + (bytes[24] | (bytes[25] << 8) | (bytes[26] << 16)),
184
- height: 1 + (bytes[27] | (bytes[28] << 8) | (bytes[29] << 16)),
185
- };
186
- }
187
- return null;
188
- };
189
- const isWebp = (data) => {
190
- const webpPattern = new Uint8Array([0x52, 0x49, 0x46, 0x46]);
191
- if ((0, exports.matchesPattern)(webpPattern)(data.subarray(0, 4))) {
192
- return {
193
- type: 'webp',
194
- dimensions: getWebPDimensions(data),
195
- };
196
- }
197
- return null;
198
- };
199
- const getBmpDimensions = (bmpData) => {
200
- if (bmpData.length < 26) {
201
- return null;
202
- }
203
- const view = new DataView(bmpData.buffer, bmpData.byteOffset);
204
- return {
205
- width: view.getUint32(18, true),
206
- height: Math.abs(view.getInt32(22, true)),
207
- };
208
- };
209
- const isBmp = (data) => {
210
- const bmpPattern = new Uint8Array([0x42, 0x4d]);
211
- if ((0, exports.matchesPattern)(bmpPattern)(data.subarray(0, 2))) {
212
- const bmp = getBmpDimensions(data);
213
- return { dimensions: bmp, type: 'bmp' };
214
- }
215
- return null;
216
- };
217
- const isPdf = (data) => {
218
- if (data.length < 4) {
219
- return null;
220
- }
221
- const pdfPattern = new Uint8Array([0x25, 0x50, 0x44, 0x46]);
222
- return (0, exports.matchesPattern)(pdfPattern)(data.subarray(0, 4)) ? { type: 'pdf' } : null;
223
- };
224
- const detectFileType = (data) => {
225
- if ((0, exports.isRiffWave)(data)) {
226
- return { type: 'wav' };
227
- }
228
- if ((0, exports.isRiffAvi)(data)) {
229
- return { type: 'riff' };
230
- }
231
- if ((0, exports.isAac)(data)) {
232
- return { type: 'aac' };
233
- }
234
- if ((0, exports.isFlac)(data)) {
235
- return { type: 'flac' };
236
- }
237
- if ((0, exports.isM3u)(data)) {
238
- return { type: 'm3u' };
239
- }
240
- const webp = isWebp(data);
241
- if (webp) {
242
- return webp;
243
- }
244
- if ((0, exports.isWebm)(data)) {
245
- return { type: 'webm' };
246
- }
247
- if ((0, exports.isIsoBaseMedia)(data)) {
248
- return { type: 'iso-base-media' };
249
- }
250
- if ((0, exports.isTransportStream)(data)) {
251
- return { type: 'transport-stream' };
252
- }
253
- if ((0, exports.isMp3)(data)) {
254
- return { type: 'mp3' };
255
- }
256
- const gif = isGif(data);
257
- if (gif) {
258
- return gif;
259
- }
260
- const png = isPng(data);
261
- if (png) {
262
- return png;
263
- }
264
- const pdf = isPdf(data);
265
- if (pdf) {
266
- return pdf;
267
- }
268
- const bmp = isBmp(data);
269
- if (bmp) {
270
- return bmp;
271
- }
272
- const jpeg = isJpeg(data);
273
- if (jpeg) {
274
- return jpeg;
275
- }
276
- return { type: 'unknown' };
277
- };
278
- exports.detectFileType = detectFileType;