@remotion/studio 4.0.515 → 4.0.516
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/api/restart-studio.js +4 -0
- package/dist/components/AssetSelector.js +3 -9
- package/dist/components/AssetSelectorItem.d.ts +2 -1
- package/dist/components/AssetSelectorItem.js +24 -29
- package/dist/components/Canvas.js +7 -4
- package/dist/components/CaptionInspector.d.ts +2 -0
- package/dist/components/CaptionInspector.js +3 -5
- package/dist/components/CompositionSelector.js +6 -3
- package/dist/components/CompositionSelectorItem.js +9 -10
- package/dist/components/ConfigSelect.d.ts +17 -0
- package/dist/components/ConfigSelect.js +50 -0
- package/dist/components/CurrentAsset.d.ts +10 -2
- package/dist/components/CurrentAsset.js +139 -46
- package/dist/components/FixComputedValueModal.js +54 -51
- package/dist/components/GlobalKeybindings.js +5 -5
- package/dist/components/InlineAction.d.ts +1 -1
- package/dist/components/InlineAction.js +12 -2
- package/dist/components/InlineCaptionInspector.d.ts +2 -0
- package/dist/components/InlineCaptionInspector.js +2 -2
- package/dist/components/InlineCompositionName.js +1 -1
- package/dist/components/InlineEditableTitle.js +3 -2
- package/dist/components/InspectorInfoHeader.js +1 -1
- package/dist/components/InspectorOpenInEditor.js +48 -72
- package/dist/components/InspectorPanel/AlignmentControls.js +2 -3
- package/dist/components/InspectorPanel/CollapsibleInspectorSectionHeader.d.ts +7 -0
- package/dist/components/InspectorPanel/CollapsibleInspectorSectionHeader.js +39 -0
- package/dist/components/InspectorPanel/CompositionInspector.js +14 -7
- package/dist/components/InspectorPanel/KeyframeEasingNavigator.js +10 -4
- package/dist/components/InspectorPanel/SequenceInspectorHeader.js +2 -1
- package/dist/components/InspectorPanel/SequenceSelectionInspector.js +1 -4
- package/dist/components/InspectorPanel/common.d.ts +0 -12
- package/dist/components/InspectorPanel/common.js +3 -52
- package/dist/components/InspectorPanel/use-composition-actions.js +0 -1
- package/dist/components/InspectorPanelLayout.d.ts +1 -1
- package/dist/components/InspectorPanelLayout.js +1 -1
- package/dist/components/InspectorSequenceSection.js +40 -54
- package/dist/components/InstallPackage.d.ts +2 -1
- package/dist/components/InstallPackage.js +60 -30
- package/dist/components/InstallablePackage.js +37 -11
- package/dist/components/KeyboardShortcutsSettings.d.ts +2 -0
- package/dist/components/KeyboardShortcutsSettings.js +177 -0
- package/dist/components/MenuBuildIndicator.js +1 -1
- package/dist/components/Modals.js +6 -5
- package/dist/components/NewComposition/CodemodFooter.d.ts +0 -1
- package/dist/components/NewComposition/CodemodFooter.js +2 -8
- package/dist/components/NewComposition/DeleteComposition.js +1 -1
- package/dist/components/NewComposition/DeleteFolder.js +1 -1
- package/dist/components/NewComposition/DuplicateComposition.js +1 -1
- package/dist/components/NewComposition/InputDragger.js +27 -4
- package/dist/components/NewComposition/NewComposition.js +1 -1
- package/dist/components/NewComposition/NewFolder.js +1 -3
- package/dist/components/NewComposition/RenameComposition.js +1 -1
- package/dist/components/NewComposition/RenameFolder.js +1 -1
- package/dist/components/NewComposition/use-rename-static-file.js +1 -1
- package/dist/components/Notifications/NotificationCenter.d.ts +1 -0
- package/dist/components/Notifications/NotificationCenter.js +5 -0
- package/dist/components/OptionsPanel.js +9 -12
- package/dist/components/PreviewToolbar.js +5 -2
- package/dist/components/PreviewToolbarOverflowButton.js +30 -0
- package/dist/components/QuickSwitcher/ExplorerQuickSwitcherTrigger.js +2 -2
- package/dist/components/QuickSwitcher/QuickSwitcherContent.js +14 -30
- package/dist/components/RenderButton.js +66 -183
- package/dist/components/RenderModal/DataEditor.js +15 -12
- package/dist/components/RenderModal/RenderStatusModal.js +0 -1
- package/dist/components/RenderModal/SchemaEditor/ZodSwitch.js +3 -1
- package/dist/components/RenderModal/SchemaEditor/infer-zod-schema-from-value.d.ts +15 -0
- package/dist/components/RenderModal/SchemaEditor/infer-zod-schema-from-value.js +95 -0
- package/dist/components/RenderQueue/RenderQueueRemoveItem.js +1 -6
- package/dist/components/RenderingSettings.js +7 -4
- package/dist/components/RulersAndGuidesToggle.d.ts +2 -0
- package/dist/components/RulersAndGuidesToggle.js +23 -0
- package/dist/components/SegmentedButton.d.ts +29 -0
- package/dist/components/SegmentedButton.js +226 -0
- package/dist/components/SelectedOutlineEditingHandles.d.ts +16 -0
- package/dist/components/SelectedOutlineEditingHandles.js +66 -0
- package/dist/components/SelectedOutlineElement.d.ts +2 -4
- package/dist/components/SelectedOutlineElement.js +15 -54
- package/dist/components/SelectedOutlineOverlay.js +32 -6
- package/dist/components/SelectedOutlinePolygon.d.ts +3 -4
- package/dist/components/SelectedOutlinePolygon.js +18 -16
- package/dist/components/SelectedOutlineRenderer.js +66 -14
- package/dist/components/SettingsModal.d.ts +1 -1
- package/dist/components/SettingsModal.js +30 -7
- package/dist/components/SettingsModalFooter.js +2 -1
- package/dist/components/SkillsSettings.d.ts +2 -0
- package/dist/components/SkillsSettings.js +129 -0
- package/dist/components/StaticFilePreview.js +7 -1
- package/dist/components/StudioSettings.js +7 -48
- package/dist/components/Tabs/index.js +1 -1
- package/dist/components/Timeline/Timeline.js +0 -1
- package/dist/components/Timeline/TimelineAssetField.d.ts +1 -1
- package/dist/components/Timeline/TimelineAssetField.js +15 -9
- package/dist/components/Timeline/TimelineBooleanField.js +1 -4
- package/dist/components/Timeline/TimelineClipboardKeybindings.js +7 -10
- package/dist/components/Timeline/TimelineEffectItem.d.ts +1 -0
- package/dist/components/Timeline/TimelineEffectItem.js +23 -10
- package/dist/components/Timeline/TimelineEffectPropItem.js +15 -2
- package/dist/components/Timeline/TimelineExpandedRow.js +5 -4
- package/dist/components/Timeline/TimelineFieldLabel.js +4 -2
- package/dist/components/Timeline/TimelineFieldRowContent.d.ts +1 -2
- package/dist/components/Timeline/TimelineFieldRowContent.js +8 -21
- package/dist/components/Timeline/TimelineImageInfo.d.ts +0 -1
- package/dist/components/Timeline/TimelineImageInfo.js +13 -32
- package/dist/components/Timeline/TimelineKeyframeControls.js +10 -4
- package/dist/components/Timeline/TimelinePrimitiveFieldValue.js +1 -1
- package/dist/components/Timeline/TimelineRotationField.js +0 -2
- package/dist/components/Timeline/TimelineRowChrome.d.ts +0 -1
- package/dist/components/Timeline/TimelineRowChrome.js +3 -4
- package/dist/components/Timeline/TimelineRowLayoutContext.d.ts +0 -1
- package/dist/components/Timeline/TimelineRowLayoutContext.js +1 -4
- package/dist/components/Timeline/TimelineScaleField.js +2 -6
- package/dist/components/Timeline/TimelineSchemaField.js +9 -3
- package/dist/components/Timeline/TimelineSelection.js +1 -1
- package/dist/components/Timeline/TimelineSequence.d.ts +2 -0
- package/dist/components/Timeline/TimelineSequence.js +110 -19
- package/dist/components/Timeline/TimelineSequenceItem.js +5 -5
- package/dist/components/Timeline/TimelineSequencePropItem.js +15 -2
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.d.ts +4 -2
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.js +85 -91
- package/dist/components/Timeline/TimelineTrack.js +1 -1
- package/dist/components/Timeline/TimelineTransformOriginField.js +0 -4
- package/dist/components/Timeline/TimelineTranslateField.js +0 -4
- package/dist/components/Timeline/TimelineVirtualization.js +3 -1
- package/dist/components/Timeline/duplicate-selected-timeline-item.js +3 -12
- package/dist/components/Timeline/get-copy-context-for-agents-menu-item.d.ts +4 -0
- package/dist/components/Timeline/get-copy-context-for-agents-menu-item.js +26 -0
- package/dist/components/Timeline/get-sequence-context-menu-items.js +2 -19
- package/dist/components/Timeline/get-timeline-sequence-visible-layout.d.ts +6 -1
- package/dist/components/Timeline/get-timeline-sequence-visible-layout.js +11 -4
- package/dist/components/Timeline/split-selected-timeline-item.js +0 -1
- package/dist/components/Timeline/timeline-field-row-layout.d.ts +1 -1
- package/dist/components/Timeline/timeline-field-row-layout.js +4 -7
- package/dist/components/Timeline/timeline-field-utils.js +0 -2
- package/dist/components/Timeline/use-timeline-asset-drop.js +1 -0
- package/dist/components/TimelineCombobox.js +25 -160
- package/dist/components/TimelineInOutToggle.js +4 -1
- package/dist/components/duplicate-jsx-node-api.d.ts +2 -0
- package/dist/components/duplicate-jsx-node-api.js +12 -0
- package/dist/components/effect-drag-and-drop.js +1 -4
- package/dist/components/handle-drop.d.ts +2 -1
- package/dist/components/handle-drop.js +3 -3
- package/dist/components/import-assets.js +9 -65
- package/dist/components/keyboard-shortcuts.d.ts +10 -0
- package/dist/components/keyboard-shortcuts.js +135 -0
- package/dist/components/selected-outline-control-layout.js +2 -6
- package/dist/components/selected-outline-measurement.d.ts +1 -1
- package/dist/components/selected-outline-measurement.js +16 -3
- package/dist/components/use-delete-asset.d.ts +1 -0
- package/dist/components/use-delete-asset.js +40 -0
- package/dist/components/use-selected-outline-control-target.d.ts +11 -0
- package/dist/components/use-selected-outline-control-target.js +79 -0
- package/dist/esm/{chunk-s6k99gh2.js → chunk-4bxz1d3g.js} +3 -2
- package/dist/esm/{chunk-v5a8vpv4.js → chunk-w4244j4n.js} +17766 -17618
- package/dist/esm/index.mjs +3 -0
- package/dist/esm/internals.mjs +17765 -17617
- package/dist/esm/previewEntry.mjs +17570 -17422
- package/dist/esm/renderEntry.mjs +2 -2
- package/dist/helpers/add-asset-cache-bust.d.ts +4 -0
- package/dist/helpers/add-asset-cache-bust.js +10 -0
- package/dist/helpers/calculate-timeline.js +2 -1
- package/dist/helpers/colors.d.ts +2 -0
- package/dist/helpers/colors.js +6 -2
- package/dist/helpers/drag-aware-double-click.d.ts +6 -0
- package/dist/helpers/drag-aware-double-click.js +20 -0
- package/dist/helpers/get-asset-metadata.js +25 -16
- package/dist/helpers/get-sequence-double-click-action.d.ts +2 -1
- package/dist/helpers/get-sequence-double-click-action.js +7 -1
- package/dist/helpers/get-timeline-sequence-layout.d.ts +4 -1
- package/dist/helpers/get-timeline-sequence-layout.js +15 -6
- package/dist/helpers/get-timeline-sequence-sort-key.d.ts +2 -1
- package/dist/helpers/hoverable.d.ts +1 -0
- package/dist/helpers/hoverable.js +2 -1
- package/dist/helpers/inject-css.js +3 -1
- package/dist/helpers/open-in-remotion-convert.d.ts +7 -0
- package/dist/helpers/open-in-remotion-convert.js +18 -0
- package/dist/helpers/use-media-metadata.d.ts +2 -1
- package/dist/helpers/use-media-metadata.js +12 -5
- package/dist/helpers/use-menu-structure.js +32 -32
- package/dist/icons/align-center-horizontal.js +1 -1
- package/dist/icons/align-left.js +1 -1
- package/dist/icons/align-right.js +1 -1
- package/dist/icons/keyboard.d.ts +4 -0
- package/dist/icons/keyboard.js +10 -0
- package/dist/icons/license.d.ts +4 -0
- package/dist/icons/license.js +8 -0
- package/dist/icons/package.d.ts +4 -0
- package/dist/icons/package.js +8 -0
- package/dist/icons/react.js +1 -1
- package/dist/icons/remotion-convert.d.ts +4 -0
- package/dist/icons/remotion-convert.js +10 -0
- package/dist/icons/skills.d.ts +4 -0
- package/dist/icons/skills.js +10 -0
- package/dist/state/modals.d.ts +2 -5
- package/package.json +12 -12
- package/dist/components/KeyboardShortcutsExplainer.d.ts +0 -2
- package/dist/components/KeyboardShortcutsExplainer.js +0 -194
package/dist/esm/renderEntry.mjs
CHANGED
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
WHITE,
|
|
5
5
|
__require,
|
|
6
6
|
__toESM
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-4bxz1d3g.js";
|
|
8
8
|
|
|
9
9
|
// src/renderEntry.tsx
|
|
10
10
|
import { useContext, useEffect, useRef, useState } from "react";
|
|
@@ -213,7 +213,7 @@ var renderContent = (Root) => {
|
|
|
213
213
|
renderToDOM(/* @__PURE__ */ jsx("div", {
|
|
214
214
|
children: /* @__PURE__ */ jsx(DelayedSpinner, {})
|
|
215
215
|
}));
|
|
216
|
-
import("./chunk-
|
|
216
|
+
import("./chunk-w4244j4n.js").then(({ StudioInternals }) => {
|
|
217
217
|
window.remotion_isStudio = true;
|
|
218
218
|
window.remotion_isReadOnlyStudio = true;
|
|
219
219
|
window.remotion_inputProps = "{}";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addAssetCacheBust = void 0;
|
|
4
|
+
const addAssetCacheBust = ({ fetchedAt, src, }) => {
|
|
5
|
+
if (src.startsWith('blob:')) {
|
|
6
|
+
return src;
|
|
7
|
+
}
|
|
8
|
+
return `${src}${src.includes('?') ? '&' : '?'}date=${fetchedAt}`;
|
|
9
|
+
};
|
|
10
|
+
exports.addAssetCacheBust = addAssetCacheBust;
|
|
@@ -76,6 +76,7 @@ const calculateTimeline = ({ sequences, overrideIdsToNodePaths, compositions = [
|
|
|
76
76
|
},
|
|
77
77
|
depth: (0, get_timeline_nestedness_1.getTimelineNestedLevel)(sequence, sortedSequences, 0),
|
|
78
78
|
cascadedStart,
|
|
79
|
+
localStart: sequence.from,
|
|
79
80
|
cascadedDuration: sequence.duration,
|
|
80
81
|
keyframeDisplayOffset: hasKeyframeRows
|
|
81
82
|
? cascadedStartWithTrim - effectiveFrom
|
|
@@ -103,7 +104,7 @@ const calculateTimeline = ({ sequences, overrideIdsToNodePaths, compositions = [
|
|
|
103
104
|
return sortKeyA.localeCompare(sortKeyB);
|
|
104
105
|
})
|
|
105
106
|
.map((track) => {
|
|
106
|
-
const { cascadedDuration,
|
|
107
|
+
const { cascadedDuration, ...cleanTrack } = track;
|
|
107
108
|
return cleanTrack;
|
|
108
109
|
});
|
|
109
110
|
const nodePathIndexCounters = new Map();
|
package/dist/helpers/colors.d.ts
CHANGED
|
@@ -63,6 +63,8 @@ export declare const INFO_BLUE = "#60a5fa";
|
|
|
63
63
|
export declare const SERVER_DISCONNECTED_BACKGROUND = "#e74c3c";
|
|
64
64
|
export declare const STACK_FRAME_BORDER_BLUE = "rgb(66, 144, 245)";
|
|
65
65
|
export declare const TIMELINE_BACKGROUND_COLOR = "#15181B";
|
|
66
|
+
export declare const TIMELINE_NEGATIVE_START_BACKGROUND_COLOR = "#2C2F32";
|
|
67
|
+
export declare const TIMELINE_NEGATIVE_START_BORDER_COLOR = "#414446";
|
|
66
68
|
export declare const TIMELINE_SELECTED_BACKGROUND_COLOR = "#3B3F42";
|
|
67
69
|
export declare const TIMELINE_SELECTED_LABEL_BACKGROUND_COLOR = "#B0B0B0";
|
|
68
70
|
export declare const TIMELINE_BLUE = "#0b84ff";
|
package/dist/helpers/colors.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BLUE_DISABLED = exports.BLUE_HOVERED = exports.BLUE = exports.WARNING_COLOR = exports.FAIL_COLOR = exports.BLACK_OPAQUE = exports.BLACK_ALPHA_90 = exports.BLACK_ALPHA_85 = exports.BLACK_ALPHA_80 = exports.BLACK_ALPHA_60 = exports.BLACK_ALPHA_50 = exports.BLACK_ALPHA_40 = exports.BLACK_ALPHA_30 = exports.BLACK_ALPHA_28 = exports.BLACK_ALPHA_10 = exports.WHITE_ALPHA_80 = exports.WHITE_ALPHA_72 = exports.WHITE_ALPHA_70 = exports.WHITE_ALPHA_60 = exports.WHITE_ALPHA_50 = exports.WHITE_ALPHA_45 = exports.WHITE_ALPHA_40 = exports.WHITE_ALPHA_35 = exports.WHITE_ALPHA_30 = exports.WHITE_ALPHA_25 = exports.WHITE_ALPHA_20 = exports.WHITE_ALPHA_15 = exports.WHITE_ALPHA_12 = exports.WHITE_ALPHA_10 = exports.WHITE_ALPHA_08 = exports.WHITE_ALPHA_06 = exports.WHITE_ALPHA_05 = exports.RULER_COLOR = exports.LIGHT_TEXT = exports.SELECTED_BACKGROUND = exports.LIGHT_COLOR = exports.INPUT_BACKGROUND = exports.BACKGROUND__TRANSPARENT = exports.BACKGROUND_HEX = exports.BACKGROUND = exports.BLACK_FULL_HEX = exports.BLACK_HEX = exports.WHITE_FULL_HEX = exports.WHITE_HEX = exports.CURRENT_COLOR_LOWERCASE = exports.CURRENT_COLOR = exports.TRANSPARENT = exports.RED = exports.WHITE = exports.BLACK = void 0;
|
|
4
|
-
exports.
|
|
5
|
-
exports.getBackgroundFromHoverState = exports.TIMELINE_IMAGE_GRADIENT = exports.TIMELINE_VIDEO_GRADIENT = exports.TIMELINE_AUDIO_GRADIENT = exports.LOOPED_INDICATOR_DROP_SHADOW = exports.SELECTED_OUTLINE_UV_DROP_SHADOW = exports.SELECTED_OUTLINE_DROP_SHADOW = exports.ERROR_MESSAGE_MASK_IMAGE = exports.COLOR_PICKER_HUE_GRADIENT = exports.COLOR_PICKER_ALPHA_TRANSPARENT = exports.COLOR_PICKER_SATURATION_BLACK_GRADIENT = exports.COLOR_PICKER_SATURATION_VALUE_GRADIENT = exports.COLOR_PICKER_CHECKER_BACKGROUND_COLOR = exports.COLOR_PICKER_CHECKER_BACKGROUND_IMAGE = exports.CHECKERBOARD_BACKGROUND_IMAGE = void 0;
|
|
4
|
+
exports.HOT_MIDDLEWARE_ERROR_STYLE = exports.NOTIFICATION_BORDER = exports.COLOR_PICKER_HANDLE_SHADOW = exports.COLOR_PICKER_POPUP_SHADOW = exports.SERVER_DISCONNECTED_SHADOW = exports.NOTIFICATION_SHADOW = exports.SHADOW_BLACK_ALPHA_50_TOWARDS_TOP = exports.SHADOW_BLACK_ALPHA_50_TOWARDS_BOTTOM = exports.SHADOW_BLACK = exports.BORDER_TIMELINE_MARQUEE_BLUE = exports.BORDER_TIMELINE_DROP_BLUE = exports.BORDER_STACK_FRAME_BLUE = exports.BORDER_INFO_BLUE = exports.BORDER_WHITE_ALPHA_20 = exports.BORDER_WHITE_ALPHA_12 = exports.BORDER_BLACK_ALPHA_60 = exports.BORDER_BLACK_ALPHA_50 = exports.BORDER_TRANSPARENT_2PX = exports.BORDER_CURRENT_COLOR = exports.BORDER_WHITE_2PX = exports.BORDER_WHITE = exports.BORDER_BLACK = exports.INFO_BLUE_BACKGROUND = exports.EASING_SELECTED_BACKGROUND = exports.TIMELINE_MARQUEE_BLUE_ALPHA_75 = exports.TIMELINE_MARQUEE_BLUE_ALPHA_16 = exports.TIMELINE_DROP_BLUE_ALPHA_75 = exports.TIMELINE_DROP_BLUE_ALPHA_16 = exports.TIMELINE_DROP_BLUE_ALPHA_12 = exports.TIMELINE_PLAYHEAD_COLOR = exports.TIMELINE_BLUE = exports.TIMELINE_SELECTED_LABEL_BACKGROUND_COLOR = exports.TIMELINE_SELECTED_BACKGROUND_COLOR = exports.TIMELINE_NEGATIVE_START_BORDER_COLOR = exports.TIMELINE_NEGATIVE_START_BACKGROUND_COLOR = exports.TIMELINE_BACKGROUND_COLOR = exports.STACK_FRAME_BORDER_BLUE = exports.SERVER_DISCONNECTED_BACKGROUND = exports.INFO_BLUE = exports.ERROR_LINK_COLOR = exports.ERROR_CODE_FRAME_LINE_BACKGROUND = exports.ERROR_CODE_FRAME_BACKGROUND = exports.RENDER_STATUS_BACKGROUND = exports.NOTIFICATION_BACKGROUND = exports.KEYBOARD_SHORTCUT_KEY_COLOR = exports.LIGHT_GRAY = exports.TIMELINE_TRACK_SEPARATOR = exports.LINE_COLOR = exports.SELECTED_GUIDE = exports.UNSELECTED_GUIDE = void 0;
|
|
5
|
+
exports.getBackgroundFromHoverState = exports.TIMELINE_IMAGE_GRADIENT = exports.TIMELINE_VIDEO_GRADIENT = exports.TIMELINE_AUDIO_GRADIENT = exports.LOOPED_INDICATOR_DROP_SHADOW = exports.SELECTED_OUTLINE_UV_DROP_SHADOW = exports.SELECTED_OUTLINE_DROP_SHADOW = exports.ERROR_MESSAGE_MASK_IMAGE = exports.COLOR_PICKER_HUE_GRADIENT = exports.COLOR_PICKER_ALPHA_TRANSPARENT = exports.COLOR_PICKER_SATURATION_BLACK_GRADIENT = exports.COLOR_PICKER_SATURATION_VALUE_GRADIENT = exports.COLOR_PICKER_CHECKER_BACKGROUND_COLOR = exports.COLOR_PICKER_CHECKER_BACKGROUND_IMAGE = exports.CHECKERBOARD_BACKGROUND_IMAGE = exports.FOCUS_BOX_SHADOW = exports.HOT_MIDDLEWARE_WARNING_STYLE = void 0;
|
|
6
6
|
exports.BLACK = 'black';
|
|
7
7
|
exports.WHITE = 'white';
|
|
8
8
|
exports.RED = 'red';
|
|
@@ -69,6 +69,10 @@ exports.INFO_BLUE = '#60a5fa';
|
|
|
69
69
|
exports.SERVER_DISCONNECTED_BACKGROUND = '#e74c3c';
|
|
70
70
|
exports.STACK_FRAME_BORDER_BLUE = 'rgb(66, 144, 245)';
|
|
71
71
|
exports.TIMELINE_BACKGROUND_COLOR = '#15181B';
|
|
72
|
+
// WHITE_ALPHA_10 composited over TIMELINE_BACKGROUND_COLOR.
|
|
73
|
+
exports.TIMELINE_NEGATIVE_START_BACKGROUND_COLOR = '#2C2F32';
|
|
74
|
+
// WHITE_ALPHA_10 composited over TIMELINE_NEGATIVE_START_BACKGROUND_COLOR.
|
|
75
|
+
exports.TIMELINE_NEGATIVE_START_BORDER_COLOR = '#414446';
|
|
72
76
|
exports.TIMELINE_SELECTED_BACKGROUND_COLOR = '#3B3F42';
|
|
73
77
|
exports.TIMELINE_SELECTED_LABEL_BACKGROUND_COLOR = '#B0B0B0';
|
|
74
78
|
exports.TIMELINE_BLUE = '#0b84ff';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type DragAwareDoubleClickTracker = {
|
|
2
|
+
readonly beginPointerGesture: () => void;
|
|
3
|
+
readonly endPointerGesture: (wasDragged: boolean) => void;
|
|
4
|
+
readonly consumePointerGestureWasDragged: () => boolean;
|
|
5
|
+
};
|
|
6
|
+
export declare const createDragAwareDoubleClickTracker: () => DragAwareDoubleClickTracker;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createDragAwareDoubleClickTracker = void 0;
|
|
4
|
+
const createDragAwareDoubleClickTracker = () => {
|
|
5
|
+
let pointerGestureWasDragged = false;
|
|
6
|
+
return {
|
|
7
|
+
beginPointerGesture: () => {
|
|
8
|
+
pointerGestureWasDragged = false;
|
|
9
|
+
},
|
|
10
|
+
endPointerGesture: (wasDragged) => {
|
|
11
|
+
pointerGestureWasDragged = wasDragged;
|
|
12
|
+
},
|
|
13
|
+
consumePointerGestureWasDragged: () => {
|
|
14
|
+
const wasDragged = pointerGestureWasDragged;
|
|
15
|
+
pointerGestureWasDragged = false;
|
|
16
|
+
return wasDragged;
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
exports.createDragAwareDoubleClickTracker = createDragAwareDoubleClickTracker;
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getAssetMetadata = exports.remotion_outputsBase = void 0;
|
|
4
4
|
const media_utils_1 = require("@remotion/media-utils");
|
|
5
5
|
const remotion_1 = require("remotion");
|
|
6
|
+
const add_asset_cache_bust_1 = require("./add-asset-cache-bust");
|
|
6
7
|
const get_preview_file_type_1 = require("./get-preview-file-type");
|
|
7
8
|
exports.remotion_outputsBase = window.remotion_staticBase.replace('static', 'outputs');
|
|
8
9
|
const getSrcFromCanvasContent = (canvasContent) => {
|
|
@@ -12,6 +13,7 @@ const getSrcFromCanvasContent = (canvasContent) => {
|
|
|
12
13
|
return exports.remotion_outputsBase + canvasContent.path;
|
|
13
14
|
};
|
|
14
15
|
const getAssetMetadata = async (canvasContent, addTime) => {
|
|
16
|
+
var _a;
|
|
15
17
|
if (canvasContent.type === 'output-blob') {
|
|
16
18
|
return {
|
|
17
19
|
type: 'found',
|
|
@@ -25,27 +27,34 @@ const getAssetMetadata = async (canvasContent, addTime) => {
|
|
|
25
27
|
}
|
|
26
28
|
try {
|
|
27
29
|
const src = getSrcFromCanvasContent(canvasContent);
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
30
|
+
const listedStaticFile = canvasContent.type === 'asset'
|
|
31
|
+
? window.remotion_staticFiles.find((file) => file.name === canvasContent.asset && file.src === src)
|
|
32
|
+
: null;
|
|
33
|
+
let size = (_a = listedStaticFile === null || listedStaticFile === void 0 ? void 0 : listedStaticFile.sizeInBytes) !== null && _a !== void 0 ? _a : null;
|
|
34
|
+
if (size === null) {
|
|
35
|
+
const file = await fetch(src, {
|
|
36
|
+
method: 'HEAD',
|
|
37
|
+
});
|
|
38
|
+
if (file.status === 404) {
|
|
39
|
+
return { type: 'not-found' };
|
|
40
|
+
}
|
|
41
|
+
if (file.status !== 200) {
|
|
42
|
+
throw new Error(`Expected status code 200 or 404 for file, got ${file.status}`);
|
|
43
|
+
}
|
|
44
|
+
const contentLength = file.headers.get('content-length');
|
|
45
|
+
if (!contentLength) {
|
|
46
|
+
throw new Error('Unexpected error: content-length is null');
|
|
47
|
+
}
|
|
48
|
+
size = Number(contentLength);
|
|
40
49
|
}
|
|
41
50
|
const fetchedAt = Date.now();
|
|
42
|
-
const srcWithTime = addTime ?
|
|
51
|
+
const srcWithTime = addTime ? (0, add_asset_cache_bust_1.addAssetCacheBust)({ fetchedAt, src }) : src;
|
|
43
52
|
const fileType = (0, get_preview_file_type_1.getPreviewFileType)(src);
|
|
44
53
|
if (fileType === 'video') {
|
|
45
54
|
const resolution = await (0, media_utils_1.getVideoMetadata)(srcWithTime);
|
|
46
55
|
return {
|
|
47
56
|
type: 'found',
|
|
48
|
-
size
|
|
57
|
+
size,
|
|
49
58
|
dimensions: { width: resolution.width, height: resolution.height },
|
|
50
59
|
fetchedAt,
|
|
51
60
|
};
|
|
@@ -56,7 +65,7 @@ const getAssetMetadata = async (canvasContent, addTime) => {
|
|
|
56
65
|
img.onload = () => {
|
|
57
66
|
resolve({
|
|
58
67
|
type: 'found',
|
|
59
|
-
size
|
|
68
|
+
size,
|
|
60
69
|
dimensions: { width: img.width, height: img.height },
|
|
61
70
|
fetchedAt,
|
|
62
71
|
});
|
|
@@ -71,7 +80,7 @@ const getAssetMetadata = async (canvasContent, addTime) => {
|
|
|
71
80
|
return {
|
|
72
81
|
type: 'found',
|
|
73
82
|
dimensions: 'none',
|
|
74
|
-
size
|
|
83
|
+
size,
|
|
75
84
|
fetchedAt,
|
|
76
85
|
};
|
|
77
86
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { TSequence } from 'remotion';
|
|
2
2
|
export type SequenceDoubleClickAction = 'open-connected-composition' | 'open-in-editor';
|
|
3
|
-
export declare const getSequenceDoubleClickAction: ({ button, canOpenInEditor, numberOfConnectedCompositions, }: {
|
|
3
|
+
export declare const getSequenceDoubleClickAction: ({ button, canOpenInEditor, numberOfConnectedCompositions, sequenceWasDragged, }: {
|
|
4
4
|
readonly button: number;
|
|
5
5
|
readonly canOpenInEditor: boolean;
|
|
6
6
|
readonly numberOfConnectedCompositions: number;
|
|
7
|
+
readonly sequenceWasDragged: boolean;
|
|
7
8
|
}) => SequenceDoubleClickAction | null;
|
|
8
9
|
export declare const getConnectedCompositionFrame: ({ timelinePosition, sequence, sequenceFrameOffset, }: {
|
|
9
10
|
readonly timelinePosition: number;
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getConnectedCompositionFrame = exports.getSequenceDoubleClickAction = void 0;
|
|
4
|
-
const getSequenceDoubleClickAction = ({ button, canOpenInEditor, numberOfConnectedCompositions, }) => {
|
|
4
|
+
const getSequenceDoubleClickAction = ({ button, canOpenInEditor, numberOfConnectedCompositions, sequenceWasDragged, }) => {
|
|
5
|
+
// The browser still fires `dblclick` when the second press of a
|
|
6
|
+
// double-click turned into a drag. That gesture is a drag, not a
|
|
7
|
+
// double-click.
|
|
8
|
+
if (sequenceWasDragged) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
5
11
|
if (button !== 0) {
|
|
6
12
|
return null;
|
|
7
13
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { VideoConfig } from 'remotion';
|
|
2
2
|
export declare const SEQUENCE_BORDER_WIDTH = 1;
|
|
3
|
-
export declare const getTimelineSequenceLayout: ({ durationInFrames, startFrom, maxMediaDuration, startFromMedia, video, windowWidth, premountDisplay, postmountDisplay, }: {
|
|
3
|
+
export declare const getTimelineSequenceLayout: ({ durationInFrames, startFrom, cascadedStart, maxMediaDuration, startFromMedia, video, windowWidth, premountDisplay, postmountDisplay, }: {
|
|
4
4
|
durationInFrames: number;
|
|
5
5
|
startFrom: number;
|
|
6
|
+
cascadedStart: number;
|
|
6
7
|
startFromMedia: number;
|
|
7
8
|
maxMediaDuration: number | null;
|
|
8
9
|
video: VideoConfig;
|
|
@@ -13,6 +14,8 @@ export declare const getTimelineSequenceLayout: ({ durationInFrames, startFrom,
|
|
|
13
14
|
marginLeft: number;
|
|
14
15
|
width: number;
|
|
15
16
|
naturalWidth: number;
|
|
17
|
+
negativeStartWidth: number;
|
|
18
|
+
negativeStartClipped: boolean;
|
|
16
19
|
premountWidth: number | null;
|
|
17
20
|
postmountWidth: number | null;
|
|
18
21
|
};
|
|
@@ -10,16 +10,23 @@ const getWidthOfTrack = ({ durationInFrames, timelineDuration, windowWidth, spat
|
|
|
10
10
|
: (spatialDuration / timelineDuration) * fullWidth;
|
|
11
11
|
return Math.max(0, base - exports.SEQUENCE_BORDER_WIDTH + nonNegativeMarginLeft);
|
|
12
12
|
};
|
|
13
|
-
const getTimelineSequenceLayout = ({ durationInFrames, startFrom, maxMediaDuration, startFromMedia, video, windowWidth, premountDisplay, postmountDisplay, }) => {
|
|
13
|
+
const getTimelineSequenceLayout = ({ durationInFrames, startFrom, cascadedStart, maxMediaDuration, startFromMedia, video, windowWidth, premountDisplay, postmountDisplay, }) => {
|
|
14
14
|
var _a;
|
|
15
15
|
const maxMediaSequenceDuration = (maxMediaDuration !== null && maxMediaDuration !== void 0 ? maxMediaDuration : Infinity) - startFromMedia;
|
|
16
16
|
const timelineDuration = (_a = video.durationInFrames) !== null && _a !== void 0 ? _a : 1;
|
|
17
|
+
const fullWidth = windowWidth - timeline_layout_1.TIMELINE_PADDING * 2;
|
|
17
18
|
const spatialDuration = Math.max(0, Math.min(maxMediaSequenceDuration, durationInFrames, timelineDuration - startFrom));
|
|
18
19
|
// Unclipped spatial duration: without the timeline-end constraint
|
|
19
20
|
const naturalSpatialDuration = Math.max(0, Math.min(maxMediaSequenceDuration, durationInFrames));
|
|
20
|
-
const marginLeft = timelineDuration <= 0
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
const marginLeft = timelineDuration <= 0 ? 0 : (startFrom / timelineDuration) * fullWidth;
|
|
22
|
+
const naturalNegativeStartWidth = timelineDuration > 0 &&
|
|
23
|
+
startFrom === 0 &&
|
|
24
|
+
cascadedStart < 0 &&
|
|
25
|
+
durationInFrames > 0
|
|
26
|
+
? Math.max(0, (-cascadedStart / timelineDuration) * fullWidth)
|
|
27
|
+
: 0;
|
|
28
|
+
const negativeStartWidth = Math.min(timeline_layout_1.TIMELINE_PADDING, naturalNegativeStartWidth);
|
|
29
|
+
const negativeStartClipped = naturalNegativeStartWidth > timeline_layout_1.TIMELINE_PADDING;
|
|
23
30
|
const nonNegativeMarginLeft = Math.min(marginLeft, 0);
|
|
24
31
|
const width = getWidthOfTrack({
|
|
25
32
|
durationInFrames,
|
|
@@ -54,9 +61,11 @@ const getTimelineSequenceLayout = ({ durationInFrames, startFrom, maxMediaDurati
|
|
|
54
61
|
})
|
|
55
62
|
: null;
|
|
56
63
|
return {
|
|
57
|
-
marginLeft: Math.max(marginLeft, 0) - (premountWidth !== null && premountWidth !== void 0 ? premountWidth : 0),
|
|
58
|
-
width: width + (premountWidth !== null && premountWidth !== void 0 ? premountWidth : 0) + (postmountWidth !== null && postmountWidth !== void 0 ? postmountWidth : 0),
|
|
64
|
+
marginLeft: Math.max(marginLeft, 0) - negativeStartWidth - (premountWidth !== null && premountWidth !== void 0 ? premountWidth : 0),
|
|
65
|
+
width: width + negativeStartWidth + (premountWidth !== null && premountWidth !== void 0 ? premountWidth : 0) + (postmountWidth !== null && postmountWidth !== void 0 ? postmountWidth : 0),
|
|
59
66
|
naturalWidth: naturalWidth + (premountWidth !== null && premountWidth !== void 0 ? premountWidth : 0) + (postmountWidth !== null && postmountWidth !== void 0 ? postmountWidth : 0),
|
|
67
|
+
negativeStartWidth,
|
|
68
|
+
negativeStartClipped,
|
|
60
69
|
premountWidth,
|
|
61
70
|
postmountWidth,
|
|
62
71
|
};
|
|
@@ -13,9 +13,10 @@ export type TimelineTrackData = {
|
|
|
13
13
|
nodePathInfo: SequenceNodePathInfo | null;
|
|
14
14
|
keyframeDisplayOffset: number;
|
|
15
15
|
sequenceFrameOffset: number;
|
|
16
|
+
cascadedStart: number;
|
|
17
|
+
localStart: number;
|
|
16
18
|
};
|
|
17
19
|
export type TimelineTrackWithOriginalTimings = TimelineTrackData & {
|
|
18
|
-
cascadedStart: number;
|
|
19
20
|
cascadedDuration: number;
|
|
20
21
|
};
|
|
21
22
|
export declare const getTimelineSequenceSortKey: (track: TimelineTrackData, tracks: TimelineTrackData[], nonceRanks: Map<string, number>) => string;
|
|
@@ -2,6 +2,7 @@ import type React from 'react';
|
|
|
2
2
|
export declare const HOVERABLE_CLASS_NAME = "__remotion-hoverable";
|
|
3
3
|
export declare const HOVER_GROUP_CLASS_NAME = "__remotion-hover-group";
|
|
4
4
|
export declare const HOVER_GROUP_REVEAL_CLASS_NAME = "__remotion-hover-group-reveal";
|
|
5
|
+
export declare const FOCUS_VISIBLE_ONLY_CLASS_NAME = "__remotion-focus-visible-only";
|
|
5
6
|
export declare const hoverableStyle: ({ idleBackground, hoverBackground, idleColor, hoverColor, }: {
|
|
6
7
|
idleBackground: string;
|
|
7
8
|
hoverBackground: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.makeHoverableCSS = exports.hoverableStyle = exports.HOVER_GROUP_REVEAL_CLASS_NAME = exports.HOVER_GROUP_CLASS_NAME = exports.HOVERABLE_CLASS_NAME = void 0;
|
|
3
|
+
exports.makeHoverableCSS = exports.hoverableStyle = exports.FOCUS_VISIBLE_ONLY_CLASS_NAME = exports.HOVER_GROUP_REVEAL_CLASS_NAME = exports.HOVER_GROUP_CLASS_NAME = exports.HOVERABLE_CLASS_NAME = void 0;
|
|
4
4
|
const colors_1 = require("./colors");
|
|
5
5
|
// Purely visual hover styling must be driven by CSS `:hover` rather than
|
|
6
6
|
// React state: When the Studio runs in an <iframe> (like in Browser Studio),
|
|
@@ -11,6 +11,7 @@ const colors_1 = require("./colors");
|
|
|
11
11
|
exports.HOVERABLE_CLASS_NAME = '__remotion-hoverable';
|
|
12
12
|
exports.HOVER_GROUP_CLASS_NAME = '__remotion-hover-group';
|
|
13
13
|
exports.HOVER_GROUP_REVEAL_CLASS_NAME = '__remotion-hover-group-reveal';
|
|
14
|
+
exports.FOCUS_VISIBLE_ONLY_CLASS_NAME = '__remotion-focus-visible-only';
|
|
14
15
|
const BG_VARIABLE = '--remotion-hoverable-bg';
|
|
15
16
|
const HOVER_BG_VARIABLE = '--remotion-hoverable-hover-bg';
|
|
16
17
|
const COLOR_VARIABLE = '--remotion-hoverable-color';
|
|
@@ -58,7 +58,7 @@ const makeDefaultGlobalCSS = () => {
|
|
|
58
58
|
|
|
59
59
|
input:focus,
|
|
60
60
|
textarea:focus,
|
|
61
|
-
button:focus:not(.__remotion_input_dragger):not(.__remotion_color_swatch):not(.__remotion-inspector-section-title):not(.__remotion-timeline-expand-arrow-button),
|
|
61
|
+
button:focus:not(.__remotion_input_dragger):not(.__remotion_color_swatch):not(.__remotion-inspector-section-title):not(.${hoverable_1.FOCUS_VISIBLE_ONLY_CLASS_NAME}):not(.__remotion-timeline-expand-arrow-button),
|
|
62
62
|
a:focus {
|
|
63
63
|
outline: none;
|
|
64
64
|
box-shadow: ${colors_1.FOCUS_BOX_SHADOW};
|
|
@@ -67,6 +67,7 @@ const makeDefaultGlobalCSS = () => {
|
|
|
67
67
|
.__remotion-composition-selector-item:focus,
|
|
68
68
|
.__remotion-inspector-quick-action:focus,
|
|
69
69
|
.__remotion-inspector-section-title:focus,
|
|
70
|
+
.${hoverable_1.FOCUS_VISIBLE_ONLY_CLASS_NAME}:focus,
|
|
70
71
|
.__remotion-timeline-expand-arrow-button:focus {
|
|
71
72
|
outline: none;
|
|
72
73
|
box-shadow: none;
|
|
@@ -75,6 +76,7 @@ const makeDefaultGlobalCSS = () => {
|
|
|
75
76
|
.__remotion-composition-selector-item:focus-visible,
|
|
76
77
|
.__remotion-inspector-quick-action:focus-visible,
|
|
77
78
|
.__remotion-inspector-section-title:focus-visible,
|
|
79
|
+
.${hoverable_1.FOCUS_VISIBLE_ONLY_CLASS_NAME}:focus-visible,
|
|
78
80
|
.__remotion-timeline-expand-arrow-button:focus-visible {
|
|
79
81
|
box-shadow: ${colors_1.FOCUS_BOX_SHADOW};
|
|
80
82
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.openInRemotionConvert = exports.getRemotionConvertUrl = void 0;
|
|
4
|
+
const remotion_1 = require("remotion");
|
|
5
|
+
const getRemotionConvertUrl = ({ relativePath, studioOrigin, }) => {
|
|
6
|
+
const convertUrl = new URL('https://www.remotion.dev/convert');
|
|
7
|
+
const assetUrl = new URL((0, remotion_1.staticFile)(relativePath), studioOrigin);
|
|
8
|
+
convertUrl.searchParams.set('url', assetUrl.toString());
|
|
9
|
+
return convertUrl.toString();
|
|
10
|
+
};
|
|
11
|
+
exports.getRemotionConvertUrl = getRemotionConvertUrl;
|
|
12
|
+
const openInRemotionConvert = ({ relativePath, }) => {
|
|
13
|
+
window.open((0, exports.getRemotionConvertUrl)({
|
|
14
|
+
relativePath,
|
|
15
|
+
studioOrigin: window.location.origin,
|
|
16
|
+
}), '_blank', 'noopener,noreferrer');
|
|
17
|
+
};
|
|
18
|
+
exports.openInRemotionConvert = openInRemotionConvert;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { InputAudioTrack, InputVideoTrack } from 'mediabunny';
|
|
1
|
+
import type { FrameRateMetrics, InputAudioTrack, InputVideoTrack } from 'mediabunny';
|
|
2
2
|
export type MediaMetadata = {
|
|
3
3
|
duration: number;
|
|
4
4
|
format: string | null;
|
|
@@ -12,6 +12,7 @@ export type MediaMetadata = {
|
|
|
12
12
|
hasVideoTrack: boolean | null;
|
|
13
13
|
hasAudioTrack: boolean | null;
|
|
14
14
|
};
|
|
15
|
+
export declare const getFrameRateFromMetrics: (metrics: Pick<FrameRateMetrics, "bestGuessFrameRate" | "probedPacketCount"> | null) => number | null;
|
|
15
16
|
export declare const getCachedMediaMetadata: (src: string) => MediaMetadata | null;
|
|
16
17
|
export declare const getMediaMetadata: (src: string) => Promise<MediaMetadata | null>;
|
|
17
18
|
export declare const useMediaMetadata: (src: string | null) => MediaMetadata | null;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useMediaMetadata = exports.getMediaMetadata = exports.getCachedMediaMetadata = void 0;
|
|
3
|
+
exports.useMediaMetadata = exports.getMediaMetadata = exports.getCachedMediaMetadata = exports.getFrameRateFromMetrics = void 0;
|
|
4
4
|
const media_utils_1 = require("@remotion/media-utils");
|
|
5
5
|
const mediabunny_1 = require("mediabunny");
|
|
6
6
|
const react_1 = require("react");
|
|
@@ -8,6 +8,13 @@ const remotion_1 = require("remotion");
|
|
|
8
8
|
const get_duration_or_compute_1 = require("./get-duration-or-compute");
|
|
9
9
|
const cache = new Map();
|
|
10
10
|
const pendingRequests = new Map();
|
|
11
|
+
const getFrameRateFromMetrics = (metrics) => {
|
|
12
|
+
if (metrics === null || metrics.probedPacketCount < 2) {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
return metrics.bestGuessFrameRate;
|
|
16
|
+
};
|
|
17
|
+
exports.getFrameRateFromMetrics = getFrameRateFromMetrics;
|
|
11
18
|
const getCachedMediaMetadata = (src) => {
|
|
12
19
|
var _a;
|
|
13
20
|
return (_a = cache.get(src)) !== null && _a !== void 0 ? _a : null;
|
|
@@ -22,7 +29,7 @@ const safeCall = async (fn) => {
|
|
|
22
29
|
}
|
|
23
30
|
};
|
|
24
31
|
const getMediabunnyMetadata = async (src) => {
|
|
25
|
-
var _a
|
|
32
|
+
var _a;
|
|
26
33
|
const lease = (() => {
|
|
27
34
|
try {
|
|
28
35
|
return remotion_1.Internals.globalMediaResourceManager.acquire({
|
|
@@ -62,11 +69,11 @@ const getMediabunnyMetadata = async (src) => {
|
|
|
62
69
|
if (duration === null) {
|
|
63
70
|
return null;
|
|
64
71
|
}
|
|
65
|
-
const [width, height, videoCodec,
|
|
72
|
+
const [width, height, videoCodec, frameRateMetrics, isHdr, audioCodec, sampleRate,] = await Promise.all([
|
|
66
73
|
videoTrack ? safeCall(() => videoTrack.getDisplayWidth()) : null,
|
|
67
74
|
videoTrack ? safeCall(() => videoTrack.getDisplayHeight()) : null,
|
|
68
75
|
videoTrack ? safeCall(() => videoTrack.getCodec()) : null,
|
|
69
|
-
videoTrack ? safeCall(() => videoTrack.
|
|
76
|
+
videoTrack ? safeCall(() => videoTrack.computeFrameRateMetrics()) : null,
|
|
70
77
|
videoTrack ? safeCall(() => videoTrack.hasHighDynamicRange()) : null,
|
|
71
78
|
audioTrack ? safeCall(() => audioTrack.getCodec()) : null,
|
|
72
79
|
audioTrack ? safeCall(() => audioTrack.getSampleRate()) : null,
|
|
@@ -78,7 +85,7 @@ const getMediabunnyMetadata = async (src) => {
|
|
|
78
85
|
height,
|
|
79
86
|
videoCodec,
|
|
80
87
|
audioCodec,
|
|
81
|
-
fps: (
|
|
88
|
+
fps: (0, exports.getFrameRateFromMetrics)(frameRateMetrics),
|
|
82
89
|
isHdr,
|
|
83
90
|
sampleRate,
|
|
84
91
|
hasVideoTrack: Boolean(videoTrack),
|
|
@@ -304,29 +304,28 @@ const useMenuStructure = (closeMenu, readOnlyStudio) => {
|
|
|
304
304
|
subMenu: null,
|
|
305
305
|
quickSwitcherLabel: 'Help: Changelog',
|
|
306
306
|
},
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
: null,
|
|
307
|
+
{
|
|
308
|
+
id: 'settings',
|
|
309
|
+
value: 'settings',
|
|
310
|
+
label: 'Settings...',
|
|
311
|
+
onClick: () => {
|
|
312
|
+
var _a;
|
|
313
|
+
var _b;
|
|
314
|
+
closeMenu();
|
|
315
|
+
setSelectedModal({
|
|
316
|
+
type: 'settings',
|
|
317
|
+
initialTab: browserStudioOperations === null ? 'rendering' : 'shortcuts',
|
|
318
|
+
initialPublicLicenseKey: (_b = (_a = window.remotion_renderDefaults) === null || _a === void 0 ? void 0 : _a.publicLicenseKey) !== null && _b !== void 0 ? _b : null,
|
|
319
|
+
});
|
|
320
|
+
},
|
|
321
|
+
type: 'item',
|
|
322
|
+
keyHint: null,
|
|
323
|
+
leftItem: null,
|
|
324
|
+
subMenu: null,
|
|
325
|
+
quickSwitcherLabel: 'Settings...',
|
|
326
|
+
disabled: (browserStudioOperations === null && readOnlyStudio) ||
|
|
327
|
+
type !== 'connected',
|
|
328
|
+
},
|
|
330
329
|
{
|
|
331
330
|
id: 'acknowledgements',
|
|
332
331
|
value: 'acknowledgements',
|
|
@@ -789,12 +788,13 @@ const useMenuStructure = (closeMenu, readOnlyStudio) => {
|
|
|
789
788
|
value: 'install-packages',
|
|
790
789
|
label: 'Install package...',
|
|
791
790
|
onClick: () => {
|
|
791
|
+
var _a;
|
|
792
|
+
var _b;
|
|
792
793
|
closeMenu();
|
|
793
794
|
setSelectedModal({
|
|
794
|
-
type: '
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
: remotion_packageManager,
|
|
795
|
+
type: 'settings',
|
|
796
|
+
initialTab: 'packages',
|
|
797
|
+
initialPublicLicenseKey: (_b = (_a = window.remotion_renderDefaults) === null || _a === void 0 ? void 0 : _a.publicLicenseKey) !== null && _b !== void 0 ? _b : null,
|
|
798
798
|
});
|
|
799
799
|
},
|
|
800
800
|
type: 'item',
|
|
@@ -818,13 +818,13 @@ const useMenuStructure = (closeMenu, readOnlyStudio) => {
|
|
|
818
818
|
? 'Shortcuts (disabled)'
|
|
819
819
|
: 'Shortcuts',
|
|
820
820
|
onClick: () => {
|
|
821
|
+
var _a;
|
|
822
|
+
var _b;
|
|
821
823
|
closeMenu();
|
|
822
824
|
setSelectedModal({
|
|
823
|
-
type: '
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
assetSelection: null,
|
|
827
|
-
compositionSelection: null,
|
|
825
|
+
type: 'settings',
|
|
826
|
+
initialTab: 'shortcuts',
|
|
827
|
+
initialPublicLicenseKey: (_b = (_a = window.remotion_renderDefaults) === null || _a === void 0 ? void 0 : _a.publicLicenseKey) !== null && _b !== void 0 ? _b : null,
|
|
828
828
|
});
|
|
829
829
|
},
|
|
830
830
|
keyHint: '?',
|
|
@@ -6,7 +6,7 @@ const AlignCenterHorizontalIcon = (props) => {
|
|
|
6
6
|
var _a;
|
|
7
7
|
const color = (_a = props.color) !== null && _a !== void 0 ? _a : 'currentColor';
|
|
8
8
|
return (jsx_runtime_1.jsxs("svg", { ...props, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
9
|
-
jsx_runtime_1.jsx("path", { d: "M8 2V14", stroke: color,
|
|
9
|
+
jsx_runtime_1.jsx("path", { d: "M8 2V14", stroke: color, strokeLinecap: "square" }), jsx_runtime_1.jsx("line", { x1: "3", y1: "6", x2: "12", y2: "6", stroke: color, strokeWidth: "2" }), jsx_runtime_1.jsx("line", { x1: "4", y1: "10", x2: "11", y2: "10", stroke: color, strokeWidth: "2" })
|
|
10
10
|
] }));
|
|
11
11
|
};
|
|
12
12
|
exports.AlignCenterHorizontalIcon = AlignCenterHorizontalIcon;
|
package/dist/icons/align-left.js
CHANGED
|
@@ -6,7 +6,7 @@ const AlignLeftIcon = (props) => {
|
|
|
6
6
|
var _a;
|
|
7
7
|
const color = (_a = props.color) !== null && _a !== void 0 ? _a : 'currentColor';
|
|
8
8
|
return (jsx_runtime_1.jsxs("svg", { ...props, viewBox: "0 0 16 16", fill: "none", children: [
|
|
9
|
-
jsx_runtime_1.jsx("path", { d: "M2 2L2 14", stroke: color,
|
|
9
|
+
jsx_runtime_1.jsx("path", { d: "M2 2L2 14", stroke: color, strokeLinecap: "square" }), jsx_runtime_1.jsx("line", { x1: "4", y1: "6", x2: "13", y2: "6", stroke: color, strokeWidth: "2" }), jsx_runtime_1.jsx("line", { x1: "4", y1: "10", x2: "11", y2: "10", stroke: color, strokeWidth: "2" })
|
|
10
10
|
] }));
|
|
11
11
|
};
|
|
12
12
|
exports.AlignLeftIcon = AlignLeftIcon;
|
|
@@ -6,7 +6,7 @@ const AlignRightIcon = (props) => {
|
|
|
6
6
|
var _a;
|
|
7
7
|
const color = (_a = props.color) !== null && _a !== void 0 ? _a : 'currentColor';
|
|
8
8
|
return (jsx_runtime_1.jsxs("svg", { ...props, viewBox: "0 0 16 16", fill: "none", children: [
|
|
9
|
-
jsx_runtime_1.jsx("path", { d: "M14 2V14", stroke: color,
|
|
9
|
+
jsx_runtime_1.jsx("path", { d: "M14 2V14", stroke: color, strokeLinecap: "square" }), jsx_runtime_1.jsx("line", { x1: "3", y1: "6", x2: "12", y2: "6", stroke: color, strokeWidth: "2" }), jsx_runtime_1.jsx("line", { x1: "5", y1: "10", x2: "12", y2: "10", stroke: color, strokeWidth: "2" })
|
|
10
10
|
] }));
|
|
11
11
|
};
|
|
12
12
|
exports.AlignRightIcon = AlignRightIcon;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KeyboardIcon = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
// Font Awesome Pro v7.3.1, Copyright 2026 Fonticons, Inc.
|
|
6
|
+
// https://fontawesome.com/license (Commercial License)
|
|
7
|
+
const KeyboardIcon = ({ color, ...props }) => {
|
|
8
|
+
return (jsx_runtime_1.jsx("svg", { ...props, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", children: jsx_runtime_1.jsx("path", { fill: color, d: "M96 192l64 0 0 128-64 0c-53 0-96 43-96 96s43 96 96 96 96-43 96-96l0-64 128 0 0 64c0 53 43 96 96 96s96-43 96-96-43-96-96-96l-64 0 0-128 64 0c53 0 96-43 96-96s-43-96-96-96-96 43-96 96l0 64-128 0 0-64c0-53-43-96-96-96S0 43 0 96 43 192 96 192zM256 320l-64 0 0-128 128 0 0 128-64 0zM96 160c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64l0 64-64 0zm64 256c0 35.3-28.7 64-64 64s-64-28.7-64-64 28.7-64 64-64l64 0 0 64zM352 160l0-64c0-35.3 28.7-64 64-64s64 28.7 64 64-28.7 64-64 64l-64 0zm64 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64l0-64 64 0z" }) }));
|
|
9
|
+
};
|
|
10
|
+
exports.KeyboardIcon = KeyboardIcon;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LicenseIcon = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const LicenseIcon = ({ color, ...props }) => {
|
|
6
|
+
return (jsx_runtime_1.jsx("svg", { ...props, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 -40 512 593", children: jsx_runtime_1.jsx("path", { fill: color, d: "M309.4-7.4L256-40 202.6-7.4 140-8.9 110 46 55.1 76 56.6 138.6 24 192 56.6 245.4 55.1 308 110 338 128 371 128 552.3c1-.4 43.6-18.7 128-54.9 84.4 36.2 127 54.4 128 54.9l0-181.3 18-33 54.9-30-1.5-62.6 32.6-53.4-32.6-53.4 1.5-62.6-54.9-30-30-54.9-62.6 1.5zM160 503.7l0-111.3 42.6-1 53.4 32.6 53.4-32.6 42.6 1 0 111.3-89.7-38.4-6.3-2.7-6.3 2.7-89.7 38.4zM353.3 23.5l20.7 37.8 4.5 8.2c.6 .3 15.9 8.7 46 25.2-.8 34.3-1.2 51.8-1.2 52.5 .3 .5 9.4 15.5 27.3 44.8-17.9 29.3-27 44.3-27.3 44.8 0 .6 .4 18.1 1.2 52.5l-37.8 20.7-8.2 4.5-4.5 8.2-20.7 37.8c-34.3-.8-51.8-1.2-52.5-1.2-.5 .3-15.5 9.4-44.8 27.3-29.3-17.9-44.3-27-44.8-27.3-.6 0-18.1 .4-52.5 1.2-16.5-30.1-24.9-45.5-25.2-46l-8.2-4.5-37.8-20.7c.8-34.3 1.2-51.8 1.2-52.5-.3-.5-9.4-15.5-27.3-44.8 17.9-29.3 27-44.3 27.3-44.8 0-.6-.4-18.1-1.2-52.5 30.1-16.5 45.5-24.9 46-25.2 .3-.6 8.7-15.9 25.2-46 34.3 .8 51.8 1.2 52.5 1.2 .5-.3 15.5-9.4 44.8-27.3 29.3 17.9 44.3 27 44.8 27.3 .6 0 18.1-.4 52.5-1.2zM336 192a80 80 0 1 1 -160 0 80 80 0 1 1 160 0zM256 80a112 112 0 1 0 0 224 112 112 0 1 0 0-224z" }) }));
|
|
7
|
+
};
|
|
8
|
+
exports.LicenseIcon = LicenseIcon;
|