@remotion/studio 4.0.485 → 4.0.487
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/ResolveCompositionConfigInStudio.js +42 -0
- package/dist/components/AssetSelector.js +1 -1
- package/dist/components/AssetSelectorItem.js +9 -9
- package/dist/components/AudioWaveform.js +3 -3
- package/dist/components/Button.js +2 -2
- package/dist/components/Canvas.js +28 -0
- package/dist/components/CanvasOrLoading.js +1 -1
- package/dist/components/CheckboardToggle.js +1 -1
- package/dist/components/Checkbox.js +3 -3
- package/dist/components/ColorPicker/AlphaSlider.js +4 -3
- package/dist/components/ColorPicker/ColorPicker.js +4 -4
- package/dist/components/ColorPicker/ColorPickerPopup.js +10 -10
- package/dist/components/ColorPicker/HueSlider.js +4 -3
- package/dist/components/ColorPicker/SaturationValueArea.js +5 -4
- package/dist/components/ColorPicker/checker.d.ts +1 -1
- package/dist/components/ColorPicker/checker.js +3 -3
- package/dist/components/CompactExplanation.js +3 -3
- package/dist/components/CompositionSelector.js +141 -5
- package/dist/components/CompositionSelectorItem.d.ts +1 -0
- package/dist/components/CompositionSelectorItem.js +103 -11
- package/dist/components/ContextMenu.js +2 -1
- package/dist/components/CopyButton.js +3 -2
- package/dist/components/CurrentAsset.d.ts +3 -1
- package/dist/components/CurrentAsset.js +15 -2
- package/dist/components/CurrentComposition.js +43 -2
- package/dist/components/EditorContexts.js +2 -1
- package/dist/components/EffectPickerModal.js +1 -1
- package/dist/components/FilePreview.js +2 -1
- package/dist/components/FpsCounter.js +3 -2
- package/dist/components/FullscreenToggle.js +2 -1
- package/dist/components/GlobalKeybindings.js +19 -12
- package/dist/components/InlineAction.js +2 -2
- package/dist/components/InlineEditableTitle.d.ts +1 -0
- package/dist/components/InlineEditableTitle.js +12 -7
- package/dist/components/InspectorInfoHeader.js +2 -2
- package/dist/components/InspectorPanel/DefaultInspector.d.ts +1 -0
- package/dist/components/InspectorPanel/DefaultInspector.js +2 -2
- package/dist/components/InspectorPanel/KeyframeEasingNavigator.js +1 -1
- package/dist/components/InspectorPanel/common.js +2 -2
- package/dist/components/InspectorPanel/styles.js +3 -3
- package/dist/components/InspectorPanel.d.ts +1 -0
- package/dist/components/InspectorPanel.js +2 -2
- package/dist/components/InspectorSequenceSection.js +1 -1
- package/dist/components/InspectorSourceLocation.d.ts +1 -0
- package/dist/components/InspectorSourceLocation.js +18 -3
- package/dist/components/InstallablePackage.js +1 -1
- package/dist/components/KeyboardShortcutsExplainer.js +9 -5
- package/dist/components/LoopToggle.js +1 -1
- package/dist/components/Menu/MenuDivider.js +1 -1
- package/dist/components/Menu/MenuItem.js +1 -1
- package/dist/components/Menu/MenuSubItem.js +1 -1
- package/dist/components/Menu/styles.js +3 -3
- package/dist/components/MenuToolbar.js +2 -2
- package/dist/components/ModalButton.js +1 -1
- package/dist/components/ModalContainer.js +3 -3
- package/dist/components/ModalFooter.js +2 -1
- package/dist/components/ModalHeader.js +3 -2
- package/dist/components/Modals.js +2 -1
- package/dist/components/NewComposition/CancelButton.js +4 -3
- package/dist/components/NewComposition/ComboBox.js +3 -3
- package/dist/components/NewComposition/InputDragger.js +11 -3
- package/dist/components/NewComposition/MenuContent.js +1 -1
- package/dist/components/NewComposition/NewComposition.js +4 -1
- package/dist/components/NewComposition/NewFolder.d.ts +5 -0
- package/dist/components/NewComposition/NewFolder.js +86 -0
- package/dist/components/NewComposition/RemInput.js +3 -3
- package/dist/components/NewComposition/RemTextarea.js +1 -1
- package/dist/components/NewComposition/RenameStaticFile.js +20 -59
- package/dist/components/NewComposition/ValidationMessage.js +1 -1
- package/dist/components/NewComposition/use-rename-static-file.d.ts +18 -0
- package/dist/components/NewComposition/use-rename-static-file.js +90 -0
- package/dist/components/NoRegisterRoot.js +3 -2
- package/dist/components/Notifications/ColorDot.js +3 -2
- package/dist/components/Notifications/Notification.js +4 -4
- package/dist/components/Notifications/NotificationCenter.js +2 -1
- package/dist/components/Notifications/ServerDisconnected.js +5 -4
- package/dist/components/OptionsPanel.js +1 -1
- package/dist/components/OutlineToggle.js +1 -1
- package/dist/components/PlayPause.js +4 -3
- package/dist/components/Preview.js +1 -1
- package/dist/components/PreviewToolbar.js +3 -2
- package/dist/components/QuickSwitcher/AlgoliaCredit.js +2 -1
- package/dist/components/QuickSwitcher/QuickSwitcherContent.js +1 -1
- package/dist/components/QuickSwitcher/QuickSwitcherResult.js +2 -2
- package/dist/components/RefreshCompositionOverlay.js +2 -1
- package/dist/components/RenderButton.js +10 -9
- package/dist/components/RenderModal/CliCopyButton.js +1 -1
- package/dist/components/RenderModal/ClientRenderProgress.js +1 -1
- package/dist/components/RenderModal/DataEditor.js +1 -1
- package/dist/components/RenderModal/GuiRenderStatus.js +1 -1
- package/dist/components/RenderModal/InfoBubble.js +2 -2
- package/dist/components/RenderModal/InfoTooltip.js +3 -3
- package/dist/components/RenderModal/InlineEyeIcon.js +2 -1
- package/dist/components/RenderModal/InlineRemoveButton.js +2 -1
- package/dist/components/RenderModal/MultiRangeSlider.js +1 -1
- package/dist/components/RenderModal/OptionExplainer.d.ts +11 -1
- package/dist/components/RenderModal/OptionExplainer.js +33 -13
- package/dist/components/RenderModal/OptionExplainerBubble.d.ts +15 -1
- package/dist/components/RenderModal/OptionExplainerBubble.js +17 -3
- package/dist/components/RenderModal/RenderModalHr.js +2 -1
- package/dist/components/RenderModal/RenderStatusModal.js +2 -1
- package/dist/components/RenderModal/SchemaEditor/Fieldset.d.ts +1 -0
- package/dist/components/RenderModal/SchemaEditor/Fieldset.js +6 -1
- package/dist/components/RenderModal/SchemaEditor/SchemaEditor.js +1 -2
- package/dist/components/RenderModal/SchemaEditor/SchemaLabel.js +1 -5
- package/dist/components/RenderModal/SchemaEditor/SchemaResetButton.js +2 -1
- package/dist/components/RenderModal/SchemaEditor/SchemaSeparationLine.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/SchemaVerticalGuide.js +2 -1
- package/dist/components/RenderModal/SchemaEditor/ZodDateEditor.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodErrorMessages.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodNonEditableValue.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/create-zod-values.js +2 -1
- package/dist/components/RenderModal/ServerRenderModal.js +1 -1
- package/dist/components/RenderModal/WarningIndicatorButton.js +4 -6
- package/dist/components/RenderModal/WebRenderModal.js +5 -2
- package/dist/components/RenderModal/WebRenderModalAdvanced.d.ts +3 -0
- package/dist/components/RenderModal/WebRenderModalAdvanced.js +92 -5
- package/dist/components/RenderModal/WebRenderModalAudio.js +4 -3
- package/dist/components/RenderModal/WebRenderModalBasic.js +2 -2
- package/dist/components/RenderModal/WebRenderModalLicense.js +2 -2
- package/dist/components/RenderModal/WebRenderModalPicture.js +2 -1
- package/dist/components/RenderModal/render-modals.js +3 -3
- package/dist/components/RenderPreview.js +1 -1
- package/dist/components/RenderQueue/ClientRenderQueueProcessor.js +1 -0
- package/dist/components/RenderQueue/RenderQueueCopyToClipboard.js +2 -1
- package/dist/components/RenderQueue/RenderQueueDownloadItem.js +2 -1
- package/dist/components/RenderQueue/RenderQueueItemCancelButton.js +2 -1
- package/dist/components/RenderQueue/RenderQueueItemStatus.js +1 -1
- package/dist/components/RenderQueue/RenderQueueOpenInFolder.js +2 -1
- package/dist/components/RenderQueue/RenderQueueRemoveItem.js +2 -1
- package/dist/components/RenderQueue/RenderQueueRepeat.js +2 -1
- package/dist/components/RenderQueue/client-side-render-types.d.ts +2 -1
- package/dist/components/RenderQueue/index.js +1 -1
- package/dist/components/RendersTab.js +2 -2
- package/dist/components/SegmentedControl.js +3 -3
- package/dist/components/SelectedOutlineElement.d.ts +9 -0
- package/dist/components/SelectedOutlineElement.js +63 -18
- package/dist/components/SelectedOutlineOverlay.d.ts +2 -0
- package/dist/components/SelectedOutlineOverlay.js +53 -2
- package/dist/components/SelectedOutlineUvControls.js +18 -11
- package/dist/components/SidebarCollapserControls.js +5 -4
- package/dist/components/SnappingProvider.d.ts +4 -0
- package/dist/components/SnappingProvider.js +24 -0
- package/dist/components/SnappingToggle.d.ts +2 -0
- package/dist/components/SnappingToggle.js +26 -0
- package/dist/components/Splitter/SplitterContext.d.ts +1 -1
- package/dist/components/Splitter/SplitterElement.js +2 -1
- package/dist/components/StaticFilePreview.js +1 -1
- package/dist/components/Tabs/index.js +3 -3
- package/dist/components/Tabs/vertical.js +3 -3
- package/dist/components/TextViewer.js +2 -1
- package/dist/components/TimeValue.js +1 -1
- package/dist/components/Timeline/EasingEditorModal.js +8 -8
- package/dist/components/Timeline/KeyframeSettingsModal.js +1 -1
- package/dist/components/Timeline/LoopedIndicator.js +2 -2
- package/dist/components/Timeline/MaxTimelineTracks.js +3 -2
- package/dist/components/Timeline/TimelineArrayField.js +6 -5
- package/dist/components/Timeline/TimelineColorField.js +2 -1
- package/dist/components/Timeline/TimelineEffectItem.js +3 -2
- package/dist/components/Timeline/TimelineEffectPropItem.js +2 -2
- package/dist/components/Timeline/TimelineExpandArrowButton.js +3 -2
- package/dist/components/Timeline/TimelineExpandedRow.js +2 -1
- package/dist/components/Timeline/TimelineExpandedSection.js +1 -1
- package/dist/components/Timeline/TimelineFieldLabel.js +2 -1
- package/dist/components/Timeline/TimelineFontFamilyField.d.ts +11 -0
- package/dist/components/Timeline/TimelineFontFamilyField.js +545 -0
- package/dist/components/Timeline/TimelineImageInfo.js +2 -1
- package/dist/components/Timeline/TimelineInOutPointer.js +2 -1
- package/dist/components/Timeline/TimelineInOutPointerHandle.js +2 -4
- package/dist/components/Timeline/TimelineKeyframeControls.js +2 -2
- package/dist/components/Timeline/TimelineKeyframeDiamondIcon.js +1 -1
- package/dist/components/Timeline/TimelineKeyframeEasingLine.js +1 -1
- package/dist/components/Timeline/TimelineLayerEye.js +3 -3
- package/dist/components/Timeline/TimelineMediaInfo.js +2 -2
- package/dist/components/Timeline/TimelinePrimitiveFieldValue.js +4 -0
- package/dist/components/Timeline/TimelineRotationField.js +4 -3
- package/dist/components/Timeline/TimelineScaleField.js +1 -1
- package/dist/components/Timeline/TimelineSchemaField.d.ts +2 -0
- package/dist/components/Timeline/TimelineSchemaField.js +47 -7
- package/dist/components/Timeline/TimelineScrollable.js +3 -2
- package/dist/components/Timeline/TimelineSelection.js +11 -6
- package/dist/components/Timeline/TimelineSequence.js +17 -20
- package/dist/components/Timeline/TimelineSequenceFrame.js +3 -2
- package/dist/components/Timeline/TimelineSequenceItem.js +8 -7
- package/dist/components/Timeline/TimelineSequenceName.js +3 -2
- package/dist/components/Timeline/TimelineSequencePropItem.js +2 -1
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.d.ts +20 -1
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.js +128 -11
- package/dist/components/Timeline/TimelineSlider.js +2 -1
- package/dist/components/Timeline/TimelineSliderHandle.js +2 -1
- package/dist/components/Timeline/TimelineTimeIndicators.js +1 -1
- package/dist/components/Timeline/TimelineVideoInfo.js +2 -1
- package/dist/components/Timeline/TimelineZoomControls.js +4 -3
- package/dist/components/Timeline/call-move-keyframe.d.ts +5 -0
- package/dist/components/Timeline/call-move-keyframe.js +14 -3
- package/dist/components/Timeline/google-fonts-list.d.ts +6 -0
- package/dist/components/Timeline/google-fonts-list.js +1512 -0
- package/dist/components/Timeline/save-sequence-prop.d.ts +8 -1
- package/dist/components/Timeline/save-sequence-prop.js +63 -19
- package/dist/components/Timeline/timeline-rotation-field-utils.d.ts +5 -0
- package/dist/components/Timeline/timeline-rotation-field-utils.js +16 -0
- package/dist/components/Timeline/timeline-scroll-logic.js +5 -2
- package/dist/components/TimelineInOutToggle.js +1 -1
- package/dist/components/UpdateCheck.js +2 -2
- package/dist/components/UpdateModal/OpenIssueButton.js +1 -1
- package/dist/components/VisualControls/ClickableFileName.js +4 -4
- package/dist/components/VisualControls/VisualControlsContent.js +9 -1
- package/dist/components/effect-drag-and-drop.js +30 -8
- package/dist/components/import-assets.d.ts +8 -2
- package/dist/components/import-assets.js +55 -1
- package/dist/components/options-sidebar-tabs.d.ts +1 -0
- package/dist/components/options-sidebar-tabs.js +6 -1
- package/dist/components/selected-outline-measurement.js +2 -1
- package/dist/components/selected-outline-snap.d.ts +36 -0
- package/dist/components/selected-outline-snap.js +158 -0
- package/dist/error-overlay/remotion-overlay/CalculateMetadataErrorExplainer.js +2 -2
- package/dist/error-overlay/remotion-overlay/CodeFrame.js +7 -5
- package/dist/error-overlay/remotion-overlay/CompositionIdListItem.js +2 -2
- package/dist/error-overlay/remotion-overlay/DismissButton.js +3 -2
- package/dist/error-overlay/remotion-overlay/ErrorLoader.js +3 -2
- package/dist/error-overlay/remotion-overlay/ErrorMessage.js +4 -4
- package/dist/error-overlay/remotion-overlay/HelpLink.js +1 -1
- package/dist/error-overlay/remotion-overlay/MediaPlaybackErrorExplainer.js +4 -4
- package/dist/error-overlay/remotion-overlay/Overlay.js +3 -2
- package/dist/error-overlay/remotion-overlay/StackFrame.js +4 -3
- package/dist/error-overlay/remotion-overlay/Symbolicating.js +2 -1
- package/dist/error-overlay/remotion-overlay/carets.js +3 -2
- package/dist/esm/chunk-jefhcs5z.js +164 -0
- package/dist/esm/{chunk-103pp4n7.js → chunk-y2t24cx0.js} +10754 -6829
- package/dist/esm/internals.mjs +10755 -6796
- package/dist/esm/previewEntry.mjs +10554 -6591
- package/dist/esm/renderEntry.mjs +8 -5
- package/dist/helpers/checkerboard-background.js +4 -12
- package/dist/helpers/colors.d.ts +99 -7
- package/dist/helpers/colors.js +118 -10
- package/dist/helpers/inject-css.js +85 -83
- package/dist/helpers/retry-payload.js +1 -0
- package/dist/helpers/timeline-layout.d.ts +4 -2
- package/dist/helpers/use-menu-structure.js +74 -5
- package/dist/helpers/validate-folder-rename.js +2 -10
- package/dist/helpers/validate-new-folder-name.d.ts +5 -0
- package/dist/helpers/validate-new-folder-name.js +16 -0
- package/dist/hot-middleware-client/client.js +3 -2
- package/dist/icons/Checkmark.js +2 -1
- package/dist/icons/audio.js +2 -1
- package/dist/icons/caret.js +2 -2
- package/dist/icons/certificate.js +2 -1
- package/dist/icons/data.js +2 -1
- package/dist/icons/eyedropper.js +2 -1
- package/dist/icons/file.js +2 -1
- package/dist/icons/frame.js +2 -1
- package/dist/icons/gear.js +2 -1
- package/dist/icons/gif.js +2 -1
- package/dist/icons/jump-to-start.js +2 -1
- package/dist/icons/keys.js +4 -3
- package/dist/icons/magnet.d.ts +3 -0
- package/dist/icons/magnet.js +8 -0
- package/dist/icons/media-volume.js +1 -1
- package/dist/icons/minus.js +2 -1
- package/dist/icons/pause.js +2 -1
- package/dist/icons/play.js +2 -1
- package/dist/icons/react.d.ts +5 -0
- package/dist/icons/react.js +8 -0
- package/dist/icons/redo.js +2 -1
- package/dist/icons/step-back.js +2 -1
- package/dist/icons/step-forward.js +2 -1
- package/dist/icons/undo.js +2 -1
- package/dist/previewEntry.js +2 -1
- package/dist/renderEntry.js +4 -3
- package/dist/state/editor-guides.d.ts +2 -2
- package/dist/state/editor-snapping.d.ts +8 -0
- package/dist/state/editor-snapping.js +18 -0
- package/dist/state/modals.d.ts +6 -1
- package/package.json +12 -12
- package/dist/esm/chunk-6jf1natv.js +0 -25
|
@@ -1000,7 +1000,7 @@ const RenderModal = ({ readOnlyStudio, initialFrame, initialVideoImageFormat, in
|
|
|
1000
1000
|
"Audio"] })) : null, shownTabs.includes('gif') ? (jsx_runtime_1.jsxs(vertical_1.VerticalTab, { style: render_modals_1.horizontalTab, selected: tab === 'gif', onClick: () => setTab('gif'), children: [
|
|
1001
1001
|
jsx_runtime_1.jsx("div", { style: render_modals_1.iconContainer, children: jsx_runtime_1.jsx(gif_1.GifIcon, { style: render_modals_1.icon }) }),
|
|
1002
1002
|
"GIF"] })) : null, shownTabs.includes('encoding') ? (jsx_runtime_1.jsxs(vertical_1.VerticalTab, { style: render_modals_1.horizontalTab, selected: tab === 'encoding', onClick: () => setTab('encoding'), children: [
|
|
1003
|
-
jsx_runtime_1.jsx("div", { style: render_modals_1.iconContainer, children: jsx_runtime_1.jsx(video_1.FilmIcon, { style: render_modals_1.icon, color:
|
|
1003
|
+
jsx_runtime_1.jsx("div", { style: render_modals_1.iconContainer, children: jsx_runtime_1.jsx(video_1.FilmIcon, { style: render_modals_1.icon, color: colors_1.CURRENT_COLOR_LOWERCASE }) }),
|
|
1004
1004
|
"Encoding"] })) : null, shownTabs.includes('environment') ? (jsx_runtime_1.jsxs(vertical_1.VerticalTab, { style: render_modals_1.horizontalTab, selected: tab === 'environment', onClick: () => setTab('environment'), children: [
|
|
1005
1005
|
jsx_runtime_1.jsx("div", { style: render_modals_1.iconContainer, children: jsx_runtime_1.jsx(data_1.DataIcon, { style: render_modals_1.icon }) }),
|
|
1006
1006
|
"Environment"] })) : null, shownTabs.includes('advanced') ? (jsx_runtime_1.jsxs(vertical_1.VerticalTab, { style: render_modals_1.horizontalTab, selected: tab === 'advanced', onClick: () => setTab('advanced'), children: [
|
|
@@ -11,7 +11,7 @@ const style = {
|
|
|
11
11
|
display: 'inline-flex',
|
|
12
12
|
justifyContent: 'center',
|
|
13
13
|
alignItems: 'center',
|
|
14
|
-
backgroundColor:
|
|
14
|
+
backgroundColor: colors_1.TRANSPARENT,
|
|
15
15
|
color: colors_1.LIGHT_TEXT,
|
|
16
16
|
borderStyle: 'solid',
|
|
17
17
|
borderWidth: 1,
|
|
@@ -50,11 +50,9 @@ const WarningIndicatorButton = ({ setShowWarning, showWarning, warningCount, siz
|
|
|
50
50
|
const buttonStyle = (0, react_1.useMemo)(() => {
|
|
51
51
|
return {
|
|
52
52
|
...(size === 'compact' ? compactStyle : style),
|
|
53
|
-
backgroundColor: showWarning ? colors_1.INPUT_BACKGROUND :
|
|
54
|
-
borderColor: showWarning
|
|
55
|
-
|
|
56
|
-
: colors_1.INPUT_BORDER_COLOR_UNHOVERED,
|
|
57
|
-
color: showWarning ? 'white' : colors_1.LIGHT_TEXT,
|
|
53
|
+
backgroundColor: showWarning ? colors_1.INPUT_BACKGROUND : colors_1.TRANSPARENT,
|
|
54
|
+
borderColor: showWarning ? colors_1.WHITE_ALPHA_05 : colors_1.BLACK_ALPHA_60,
|
|
55
|
+
color: showWarning ? colors_1.WHITE : colors_1.LIGHT_TEXT,
|
|
58
56
|
};
|
|
59
57
|
}, [showWarning, size]);
|
|
60
58
|
return (jsx_runtime_1.jsxs("button", { type: "button", style: buttonStyle, onClick: onClick, children: [
|
|
@@ -81,7 +81,7 @@ const validateOutnameForStill = ({ outName, stillImageFormat, }) => {
|
|
|
81
81
|
// TODO: Shortcut: Shift + R
|
|
82
82
|
// TODO: Apply defaultCodec
|
|
83
83
|
// TODO: Apply defaultOutName
|
|
84
|
-
const WebRenderModal = ({ initialFrame, defaultProps, inFrameMark, outFrameMark, initialLogLevel, initialLicenseKey, initialStillImageFormat, initialDefaultOutName, initialScale, initialDelayRenderTimeout, initialMediaCacheSizeInBytes, initialContainer, initialVideoCodec, initialAudioCodec, initialAudioBitrate, initialVideoBitrate, initialHardwareAcceleration, initialKeyframeIntervalInSeconds, initialTransparent, initialMuted, initialAllowHtmlInCanvas, }) => {
|
|
84
|
+
const WebRenderModal = ({ initialFrame, defaultProps, inFrameMark, outFrameMark, initialLogLevel, initialLicenseKey, initialStillImageFormat, initialDefaultOutName, initialScale, initialDelayRenderTimeout, initialMediaCacheSizeInBytes, initialContainer, initialVideoCodec, initialAudioCodec, initialAudioBitrate, initialVideoBitrate, initialHardwareAcceleration, initialKeyframeIntervalInSeconds, initialTransparent, initialMuted, initialAllowHtmlInCanvas, initialPageResponsiveness, }) => {
|
|
85
85
|
var _a;
|
|
86
86
|
const context = (0, react_1.useContext)(ResolveCompositionBeforeModal_1.ResolvedCompositionContext);
|
|
87
87
|
const { setSelectedModal } = (0, react_1.useContext)(modals_1.ModalsContext);
|
|
@@ -126,6 +126,7 @@ const WebRenderModal = ({ initialFrame, defaultProps, inFrameMark, outFrameMark,
|
|
|
126
126
|
const [scale, setScale] = (0, react_1.useState)(initialScale !== null && initialScale !== void 0 ? initialScale : 1);
|
|
127
127
|
const [licenseKey, setLicenseKey] = (0, react_1.useState)(initialLicenseKey);
|
|
128
128
|
const [allowHtmlInCanvas, setAllowHtmlInCanvas] = (0, react_1.useState)(initialAllowHtmlInCanvas !== null && initialAllowHtmlInCanvas !== void 0 ? initialAllowHtmlInCanvas : false);
|
|
129
|
+
const [pageResponsiveness, setPageResponsiveness] = (0, react_1.useState)(initialPageResponsiveness !== null && initialPageResponsiveness !== void 0 ? initialPageResponsiveness : 'medium');
|
|
129
130
|
const encodableAudioCodecs = (0, use_encodable_audio_codecs_1.useEncodableAudioCodecs)(container);
|
|
130
131
|
const encodableVideoCodecs = (0, use_encodable_video_codecs_1.useEncodableVideoCodecs)(container);
|
|
131
132
|
const effectiveAudioCodec = (0, react_1.useMemo)(() => {
|
|
@@ -366,6 +367,7 @@ const WebRenderModal = ({ initialFrame, defaultProps, inFrameMark, outFrameMark,
|
|
|
366
367
|
licenseKey,
|
|
367
368
|
scale,
|
|
368
369
|
allowHtmlInCanvas,
|
|
370
|
+
pageResponsiveness,
|
|
369
371
|
}, compositionRef);
|
|
370
372
|
}
|
|
371
373
|
setSidebarCollapsedState({ left: null, right: 'expanded' });
|
|
@@ -407,6 +409,7 @@ const WebRenderModal = ({ initialFrame, defaultProps, inFrameMark, outFrameMark,
|
|
|
407
409
|
addClientVideoJob,
|
|
408
410
|
scale,
|
|
409
411
|
allowHtmlInCanvas,
|
|
412
|
+
pageResponsiveness,
|
|
410
413
|
]);
|
|
411
414
|
return (jsx_runtime_1.jsxs("div", { style: render_modals_1.outerModalStyle, children: [
|
|
412
415
|
jsx_runtime_1.jsx(ModalHeader_1.ModalHeader, { title: `Render ${resolvedComposition.id}` }), jsx_runtime_1.jsxs("div", { style: render_modals_1.container, children: [
|
|
@@ -431,7 +434,7 @@ const WebRenderModal = ({ initialFrame, defaultProps, inFrameMark, outFrameMark,
|
|
|
431
434
|
canUpdate: false,
|
|
432
435
|
reason: 'render dialogue',
|
|
433
436
|
determined: false,
|
|
434
|
-
} })) : tab === 'picture' ? (jsx_runtime_1.jsx(WebRenderModalPicture_1.WebRenderModalPicture, { renderMode: renderMode, videoBitrate: videoBitrate, setVideoBitrate: setVideoBitrate, keyframeIntervalInSeconds: keyframeIntervalInSeconds, setKeyframeIntervalInSeconds: setKeyframeIntervalInSeconds, transparent: transparent, setTransparent: setTransparent, scale: scale, setScale: setScale, compositionWidth: resolvedComposition.width, compositionHeight: resolvedComposition.height })) : tab === 'audio' ? (jsx_runtime_1.jsx(WebRenderModalAudio_1.WebRenderModalAudio, { renderMode: renderMode, muted: muted, setMuted: setMuted, audioCodec: audioCodec, setAudioCodec: setAudioCodec, audioBitrate: audioBitrate, setAudioBitrate: setAudioBitrate, container: container, encodableCodecs: encodableAudioCodecs, effectiveAudioCodec: effectiveAudioCodec })) : tab === 'advanced' ? (jsx_runtime_1.jsx(WebRenderModalAdvanced_1.WebRenderModalAdvanced, { renderMode: renderMode, delayRenderTimeout: delayRenderTimeout, setDelayRenderTimeout: setDelayRenderTimeout, mediaCacheSizeInBytes: mediaCacheSizeInBytes, setMediaCacheSizeInBytes: setMediaCacheSizeInBytes, hardwareAcceleration: hardwareAcceleration, setHardwareAcceleration: setHardwareAcceleration, allowHtmlInCanvas: allowHtmlInCanvas, setAllowHtmlInCanvas: setAllowHtmlInCanvas })) : (jsx_runtime_1.jsx(WebRenderModalLicense_1.WebRenderModalLicense, { licenseKey: licenseKey, setLicenseKey: setLicenseKey, initialPublicLicenseKey: initialLicenseKey })) })
|
|
437
|
+
} })) : tab === 'picture' ? (jsx_runtime_1.jsx(WebRenderModalPicture_1.WebRenderModalPicture, { renderMode: renderMode, videoBitrate: videoBitrate, setVideoBitrate: setVideoBitrate, keyframeIntervalInSeconds: keyframeIntervalInSeconds, setKeyframeIntervalInSeconds: setKeyframeIntervalInSeconds, transparent: transparent, setTransparent: setTransparent, scale: scale, setScale: setScale, compositionWidth: resolvedComposition.width, compositionHeight: resolvedComposition.height })) : tab === 'audio' ? (jsx_runtime_1.jsx(WebRenderModalAudio_1.WebRenderModalAudio, { renderMode: renderMode, muted: muted, setMuted: setMuted, audioCodec: audioCodec, setAudioCodec: setAudioCodec, audioBitrate: audioBitrate, setAudioBitrate: setAudioBitrate, container: container, encodableCodecs: encodableAudioCodecs, effectiveAudioCodec: effectiveAudioCodec })) : tab === 'advanced' ? (jsx_runtime_1.jsx(WebRenderModalAdvanced_1.WebRenderModalAdvanced, { renderMode: renderMode, delayRenderTimeout: delayRenderTimeout, setDelayRenderTimeout: setDelayRenderTimeout, mediaCacheSizeInBytes: mediaCacheSizeInBytes, setMediaCacheSizeInBytes: setMediaCacheSizeInBytes, hardwareAcceleration: hardwareAcceleration, setHardwareAcceleration: setHardwareAcceleration, allowHtmlInCanvas: allowHtmlInCanvas, setAllowHtmlInCanvas: setAllowHtmlInCanvas, pageResponsiveness: pageResponsiveness, setPageResponsiveness: setPageResponsiveness })) : (jsx_runtime_1.jsx(WebRenderModalLicense_1.WebRenderModalLicense, { licenseKey: licenseKey, setLicenseKey: setLicenseKey, initialPublicLicenseKey: initialLicenseKey })) })
|
|
435
438
|
] })
|
|
436
439
|
] }));
|
|
437
440
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { WebRendererPageResponsiveness } from '@remotion/web-renderer';
|
|
1
2
|
import type React from 'react';
|
|
2
3
|
import type { RenderType } from './WebRenderModal';
|
|
3
4
|
type WebRenderModalAdvancedProps = {
|
|
@@ -10,6 +11,8 @@ type WebRenderModalAdvancedProps = {
|
|
|
10
11
|
readonly setHardwareAcceleration: (value: 'no-preference' | 'prefer-hardware' | 'prefer-software') => void;
|
|
11
12
|
readonly allowHtmlInCanvas: boolean;
|
|
12
13
|
readonly setAllowHtmlInCanvas: React.Dispatch<React.SetStateAction<boolean>>;
|
|
14
|
+
readonly pageResponsiveness: WebRendererPageResponsiveness;
|
|
15
|
+
readonly setPageResponsiveness: React.Dispatch<React.SetStateAction<WebRendererPageResponsiveness>>;
|
|
13
16
|
};
|
|
14
17
|
export declare const WebRenderModalAdvanced: React.FC<WebRenderModalAdvancedProps>;
|
|
15
18
|
export {};
|
|
@@ -13,7 +13,24 @@ const OptionExplainerBubble_1 = require("./OptionExplainerBubble");
|
|
|
13
13
|
const tabContainer = {
|
|
14
14
|
flex: 1,
|
|
15
15
|
};
|
|
16
|
-
const
|
|
16
|
+
const paragraph = {
|
|
17
|
+
margin: 0,
|
|
18
|
+
marginBottom: 8,
|
|
19
|
+
};
|
|
20
|
+
const lastParagraph = {
|
|
21
|
+
margin: 0,
|
|
22
|
+
};
|
|
23
|
+
const PageResponsivenessDescription = () => {
|
|
24
|
+
return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
25
|
+
jsx_runtime_1.jsx("p", { style: paragraph, children: "The Web Renderer runs in the same browser tab as the Studio. Rendering can block the tab while Remotion captures frames." }), jsx_runtime_1.jsxs("p", { style: paragraph, children: ["The default is ",
|
|
26
|
+
jsx_runtime_1.jsx("code", { children: "Medium" }),
|
|
27
|
+
", which tries to free the event loop every 33ms of rendering work so progress updates and UI interactions can stay responsive."] }), jsx_runtime_1.jsxs("p", { style: lastParagraph, children: ["Choose ",
|
|
28
|
+
jsx_runtime_1.jsx("code", { children: "Disabled" }),
|
|
29
|
+
" to prioritize render speed, or", ' ', jsx_runtime_1.jsx("code", { children: "High" }),
|
|
30
|
+
" to give the browser more chances to update."] })
|
|
31
|
+
] }));
|
|
32
|
+
};
|
|
33
|
+
const WebRenderModalAdvanced = ({ renderMode, delayRenderTimeout, setDelayRenderTimeout, mediaCacheSizeInBytes, setMediaCacheSizeInBytes, hardwareAcceleration, setHardwareAcceleration, allowHtmlInCanvas, setAllowHtmlInCanvas, pageResponsiveness, setPageResponsiveness, }) => {
|
|
17
34
|
const toggleCustomMediaCacheSizeInBytes = (0, react_1.useCallback)(() => {
|
|
18
35
|
setMediaCacheSizeInBytes((previous) => {
|
|
19
36
|
if (previous === null) {
|
|
@@ -73,18 +90,88 @@ const WebRenderModalAdvanced = ({ renderMode, delayRenderTimeout, setDelayRender
|
|
|
73
90
|
},
|
|
74
91
|
];
|
|
75
92
|
}, [hardwareAcceleration, setHardwareAcceleration]);
|
|
93
|
+
const selectedPageResponsiveness = typeof pageResponsiveness === 'number' ? 'custom' : pageResponsiveness;
|
|
94
|
+
const pageResponsivenessOptions = (0, react_1.useMemo)(() => {
|
|
95
|
+
return [
|
|
96
|
+
{
|
|
97
|
+
label: 'Disabled',
|
|
98
|
+
onClick: () => setPageResponsiveness('disabled'),
|
|
99
|
+
leftItem: selectedPageResponsiveness === 'disabled' ? jsx_runtime_1.jsx(Checkmark_1.Checkmark, {}) : null,
|
|
100
|
+
id: 'disabled',
|
|
101
|
+
keyHint: null,
|
|
102
|
+
quickSwitcherLabel: null,
|
|
103
|
+
subMenu: null,
|
|
104
|
+
type: 'item',
|
|
105
|
+
value: 'disabled',
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
label: 'Low (100ms)',
|
|
109
|
+
onClick: () => setPageResponsiveness('low'),
|
|
110
|
+
leftItem: selectedPageResponsiveness === 'low' ? jsx_runtime_1.jsx(Checkmark_1.Checkmark, {}) : null,
|
|
111
|
+
id: 'low',
|
|
112
|
+
keyHint: null,
|
|
113
|
+
quickSwitcherLabel: null,
|
|
114
|
+
subMenu: null,
|
|
115
|
+
type: 'item',
|
|
116
|
+
value: 'low',
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
label: 'Medium (33ms)',
|
|
120
|
+
onClick: () => setPageResponsiveness('medium'),
|
|
121
|
+
leftItem: selectedPageResponsiveness === 'medium' ? jsx_runtime_1.jsx(Checkmark_1.Checkmark, {}) : null,
|
|
122
|
+
id: 'medium',
|
|
123
|
+
keyHint: null,
|
|
124
|
+
quickSwitcherLabel: null,
|
|
125
|
+
subMenu: null,
|
|
126
|
+
type: 'item',
|
|
127
|
+
value: 'medium',
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
label: 'High (16ms)',
|
|
131
|
+
onClick: () => setPageResponsiveness('high'),
|
|
132
|
+
leftItem: selectedPageResponsiveness === 'high' ? jsx_runtime_1.jsx(Checkmark_1.Checkmark, {}) : null,
|
|
133
|
+
id: 'high',
|
|
134
|
+
keyHint: null,
|
|
135
|
+
quickSwitcherLabel: null,
|
|
136
|
+
subMenu: null,
|
|
137
|
+
type: 'item',
|
|
138
|
+
value: 'high',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
label: 'Custom',
|
|
142
|
+
onClick: () => setPageResponsiveness((previous) => typeof previous === 'number' ? previous : 33),
|
|
143
|
+
leftItem: selectedPageResponsiveness === 'custom' ? jsx_runtime_1.jsx(Checkmark_1.Checkmark, {}) : null,
|
|
144
|
+
id: 'custom',
|
|
145
|
+
keyHint: null,
|
|
146
|
+
quickSwitcherLabel: null,
|
|
147
|
+
subMenu: null,
|
|
148
|
+
type: 'item',
|
|
149
|
+
value: 'custom',
|
|
150
|
+
},
|
|
151
|
+
];
|
|
152
|
+
}, [selectedPageResponsiveness, setPageResponsiveness]);
|
|
153
|
+
const setCustomPageResponsiveness = (0, react_1.useCallback)((value) => {
|
|
154
|
+
setPageResponsiveness((previous) => {
|
|
155
|
+
const currentValue = typeof previous === 'number' ? previous : 33;
|
|
156
|
+
return typeof value === 'function' ? value(currentValue) : value;
|
|
157
|
+
});
|
|
158
|
+
}, [setPageResponsiveness]);
|
|
76
159
|
return (jsx_runtime_1.jsxs("div", { style: tabContainer, children: [
|
|
77
160
|
jsx_runtime_1.jsx(NumberSetting_1.NumberSetting, { name: "Delay Render Timeout", formatter: (v) => `${v}ms`, min: 0, max: 1000000000, step: 1000, value: delayRenderTimeout, onValueChanged: setDelayRenderTimeout, hint: "delayRenderTimeoutInMillisecondsOption" }), jsx_runtime_1.jsxs("div", { style: layout_2.optionRow, children: [
|
|
78
161
|
jsx_runtime_1.jsxs("div", { style: layout_2.label, children: ["Custom @remotion/media cache size ",
|
|
79
|
-
jsx_runtime_1.jsx(layout_1.Spacing, { x: 0.5 }), jsx_runtime_1.jsx(OptionExplainerBubble_1.
|
|
162
|
+
jsx_runtime_1.jsx(layout_1.Spacing, { x: 0.5 }), jsx_runtime_1.jsx(OptionExplainerBubble_1.WebRendererOptionExplainerBubble, { apiName: "mediaCacheSizeInBytes", id: "mediaCacheSizeInBytesOption" })
|
|
80
163
|
] }), jsx_runtime_1.jsx("div", { style: layout_2.rightRow, children: jsx_runtime_1.jsx(Checkbox_1.Checkbox, { checked: mediaCacheSizeInBytes !== null, onChange: toggleCustomMediaCacheSizeInBytes, name: "media-cache-size" }) })
|
|
81
164
|
] }), mediaCacheSizeInBytes === null ? null : (jsx_runtime_1.jsx(NumberSetting_1.NumberSetting, { name: "@remotion/media cache size", formatter: (w) => `${w} bytes`, min: 0, max: 10000000000, step: 10 * 1024 * 1024, value: mediaCacheSizeInBytes, onValueChanged: changeMediaCacheSizeInBytes })), renderMode === 'video' ? (jsx_runtime_1.jsxs("div", { style: layout_2.optionRow, children: [
|
|
82
165
|
jsx_runtime_1.jsx("div", { style: layout_2.label, children: "Hardware Acceleration" }), jsx_runtime_1.jsx("div", { style: layout_2.rightRow, children: jsx_runtime_1.jsx(ComboBox_1.Combobox, { values: hardwareAccelerationOptions, selectedId: hardwareAcceleration, title: "Hardware Acceleration" }) })
|
|
83
166
|
] })) : null, jsx_runtime_1.jsxs("div", { style: layout_2.optionRow, children: [
|
|
84
167
|
jsx_runtime_1.jsxs("div", { style: layout_2.label, children: ["Allow HTML-in-canvas ",
|
|
85
|
-
jsx_runtime_1.jsx(layout_1.Spacing, { x: 0.5 }), jsx_runtime_1.jsx(OptionExplainerBubble_1.
|
|
168
|
+
jsx_runtime_1.jsx(layout_1.Spacing, { x: 0.5 }), jsx_runtime_1.jsx(OptionExplainerBubble_1.WebRendererOptionExplainerBubble, { apiName: "allowHtmlInCanvas", id: "allowHtmlInCanvasOption" })
|
|
86
169
|
] }), jsx_runtime_1.jsx("div", { style: layout_2.rightRow, children: jsx_runtime_1.jsx(Checkbox_1.Checkbox, { checked: allowHtmlInCanvas, onChange: toggleAllowHtmlInCanvas, name: "allow-html-in-canvas" }) })
|
|
87
|
-
] })
|
|
88
|
-
|
|
170
|
+
] }), renderMode === 'still' ? null : (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
171
|
+
jsx_runtime_1.jsxs("div", { style: layout_2.optionRow, children: [
|
|
172
|
+
jsx_runtime_1.jsxs("div", { style: layout_2.label, children: ["Page Responsiveness ",
|
|
173
|
+
jsx_runtime_1.jsx(layout_1.Spacing, { x: 0.5 }), jsx_runtime_1.jsx(OptionExplainerBubble_1.WebRendererCustomOptionExplainerBubble, { apiName: "pageResponsiveness", description: jsx_runtime_1.jsx(PageResponsivenessDescription, {}), docLink: "https://www.remotion.dev/docs/client-side-rendering/page-responsiveness", name: "Page responsiveness" })
|
|
174
|
+
] }), jsx_runtime_1.jsx("div", { style: layout_2.rightRow, children: jsx_runtime_1.jsx(ComboBox_1.Combobox, { values: pageResponsivenessOptions, selectedId: selectedPageResponsiveness, title: "Page Responsiveness" }) })
|
|
175
|
+
] }), typeof pageResponsiveness === 'number' ? (jsx_runtime_1.jsx(NumberSetting_1.NumberSetting, { name: "Responsiveness Interval", formatter: (v) => `${v}ms`, min: 1, max: 1000000000, step: 1, value: pageResponsiveness, onValueChanged: setCustomPageResponsiveness })) : null] }))] }));
|
|
89
176
|
};
|
|
90
177
|
exports.WebRenderModalAdvanced = WebRenderModalAdvanced;
|
|
@@ -4,6 +4,7 @@ exports.WebRenderModalAudio = void 0;
|
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const web_renderer_1 = require("@remotion/web-renderer");
|
|
6
6
|
const react_1 = require("react");
|
|
7
|
+
const colors_1 = require("../../helpers/colors");
|
|
7
8
|
const Checkmark_1 = require("../../icons/Checkmark");
|
|
8
9
|
const layout_1 = require("../layout");
|
|
9
10
|
const is_menu_item_1 = require("../Menu/is-menu-item");
|
|
@@ -17,8 +18,8 @@ const container = {
|
|
|
17
18
|
overflowY: 'auto',
|
|
18
19
|
};
|
|
19
20
|
const fallbackNoticeStyle = {
|
|
20
|
-
backgroundColor:
|
|
21
|
-
border:
|
|
21
|
+
backgroundColor: colors_1.INFO_BLUE_BACKGROUND,
|
|
22
|
+
border: colors_1.BORDER_INFO_BLUE,
|
|
22
23
|
borderRadius: 4,
|
|
23
24
|
padding: '8px 12px',
|
|
24
25
|
marginLeft: 16,
|
|
@@ -26,7 +27,7 @@ const fallbackNoticeStyle = {
|
|
|
26
27
|
marginTop: 8,
|
|
27
28
|
fontSize: 13,
|
|
28
29
|
lineHeight: 1.4,
|
|
29
|
-
color:
|
|
30
|
+
color: colors_1.INFO_BLUE,
|
|
30
31
|
};
|
|
31
32
|
const humanReadableWebAudioCodec = (audioCodec) => {
|
|
32
33
|
switch (audioCodec) {
|
|
@@ -118,12 +118,12 @@ const WebRenderModalBasic = ({ renderMode, resolvedComposition, imageFormat, set
|
|
|
118
118
|
jsx_runtime_1.jsx("div", { style: layout_2.label, children: "Container" }), jsx_runtime_1.jsx("div", { style: layout_2.rightRow, children: jsx_runtime_1.jsx(ComboBox_1.Combobox, { values: containerOptions, selectedId: container, title: "Container" }) })
|
|
119
119
|
] }), renderMode === 'video' ? (jsx_runtime_1.jsxs("div", { style: layout_2.optionRow, children: [
|
|
120
120
|
jsx_runtime_1.jsxs("div", { style: layout_2.label, children: ["Codec",
|
|
121
|
-
jsx_runtime_1.jsx(layout_1.Spacing, { x: 0.5 }), jsx_runtime_1.jsx(OptionExplainerBubble_1.
|
|
121
|
+
jsx_runtime_1.jsx(layout_1.Spacing, { x: 0.5 }), jsx_runtime_1.jsx(OptionExplainerBubble_1.WebRendererOptionExplainerBubble, { apiName: "codec", id: "videoCodecOption" })
|
|
122
122
|
] }), jsx_runtime_1.jsx("div", { style: layout_2.rightRow, children: jsx_runtime_1.jsx(ComboBox_1.Combobox, { values: codecOptions, selectedId: effectiveVideoCodec, title: "Codec" }) })
|
|
123
123
|
] })) : null, jsx_runtime_1.jsx(FrameRangeSetting_1.FrameRangeSetting, { durationInFrames: resolvedComposition.durationInFrames, startFrame: startFrame !== null && startFrame !== void 0 ? startFrame : 0, endFrame: endFrame !== null && endFrame !== void 0 ? endFrame : resolvedComposition.durationInFrames - 1, setStartFrame: setStartFrame, setEndFrame: setEndFrame })
|
|
124
124
|
] })), jsx_runtime_1.jsx(RenderModalOutputName_1.RenderModalOutputName, { existence: false, inputStyle: layout_2.input, outName: outName, onValueChange: onOutNameChange, validationMessage: validationMessage, label: window.remotion_isReadOnlyStudio ? 'Download name' : 'Output name' }), jsx_runtime_1.jsxs("div", { style: layout_2.optionRow, children: [
|
|
125
125
|
jsx_runtime_1.jsxs("div", { style: layout_2.label, children: ["Log Level ",
|
|
126
|
-
jsx_runtime_1.jsx(layout_1.Spacing, { x: 0.5 }), jsx_runtime_1.jsx(OptionExplainerBubble_1.
|
|
126
|
+
jsx_runtime_1.jsx(layout_1.Spacing, { x: 0.5 }), jsx_runtime_1.jsx(OptionExplainerBubble_1.WebRendererOptionExplainerBubble, { apiName: "logLevel", id: "logLevelOption" })
|
|
127
127
|
] }), jsx_runtime_1.jsx("div", { style: layout_2.rightRow, children: jsx_runtime_1.jsx(ComboBox_1.Combobox, { values: logLevelOptions, selectedId: logLevel, title: "Log Level" }) })
|
|
128
128
|
] })
|
|
129
129
|
] }));
|
|
@@ -33,14 +33,14 @@ const paddedDescriptionStyle = {
|
|
|
33
33
|
fontSize: 14,
|
|
34
34
|
fontFamily: 'sans-serif',
|
|
35
35
|
padding: 9,
|
|
36
|
-
border: '1px solid ' + colors_1.
|
|
36
|
+
border: '1px solid ' + colors_1.BLACK_ALPHA_60,
|
|
37
37
|
borderRadius: 8,
|
|
38
38
|
lineHeight: 1.5,
|
|
39
39
|
marginLeft: 16,
|
|
40
40
|
marginRight: 16,
|
|
41
41
|
};
|
|
42
42
|
const descriptionLink = {
|
|
43
|
-
color:
|
|
43
|
+
color: colors_1.WHITE,
|
|
44
44
|
fontSize: 14,
|
|
45
45
|
};
|
|
46
46
|
const checkboxLabel = {
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.WebRenderModalPicture = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("react");
|
|
6
|
+
const colors_1 = require("../../helpers/colors");
|
|
6
7
|
const Checkbox_1 = require("../Checkbox");
|
|
7
8
|
const ComboBox_1 = require("../NewComposition/ComboBox");
|
|
8
9
|
const layout_1 = require("./layout");
|
|
@@ -22,7 +23,7 @@ const WebRenderModalPicture = ({ renderMode, videoBitrate, setVideoBitrate, keyf
|
|
|
22
23
|
jsx_runtime_1.jsxs("div", { style: layout_1.optionRow, children: [
|
|
23
24
|
jsx_runtime_1.jsx("div", { style: layout_1.label, children: "Quality" }), jsx_runtime_1.jsx("div", { style: layout_1.rightRow, children: jsx_runtime_1.jsx(ComboBox_1.Combobox, { values: qualityOptions, selectedId: videoBitrate, title: "Quality" }) })
|
|
24
25
|
] }), jsx_runtime_1.jsx(NumberSetting_1.NumberSetting, { name: "Keyframe Interval", formatter: (v) => `${v}s`, min: 1, max: 300, step: 1, value: keyframeIntervalInSeconds, onValueChanged: setKeyframeIntervalInSeconds }), jsx_runtime_1.jsxs("div", { style: layout_1.optionRow, children: [
|
|
25
|
-
jsx_runtime_1.jsx("div", { style: layout_1.label, children: "Transparent" }), jsx_runtime_1.jsx("div", { style: layout_1.rightRow, children: jsx_runtime_1.jsx(Checkbox_1.Checkbox, { checked: transparent, onChange: onTransparentChanged, name:
|
|
26
|
+
jsx_runtime_1.jsx("div", { style: layout_1.label, children: "Transparent" }), jsx_runtime_1.jsx("div", { style: layout_1.rightRow, children: jsx_runtime_1.jsx(Checkbox_1.Checkbox, { checked: transparent, onChange: onTransparentChanged, name: colors_1.TRANSPARENT }) })
|
|
26
27
|
] })
|
|
27
28
|
] }))] }));
|
|
28
29
|
};
|
|
@@ -15,7 +15,7 @@ exports.container = {
|
|
|
15
15
|
flexDirection: 'row',
|
|
16
16
|
alignItems: 'center',
|
|
17
17
|
padding: '12px 16px',
|
|
18
|
-
borderBottom:
|
|
18
|
+
borderBottom: colors_1.BORDER_BLACK,
|
|
19
19
|
};
|
|
20
20
|
exports.optionsPanel = {
|
|
21
21
|
display: 'flex',
|
|
@@ -51,12 +51,12 @@ exports.iconContainer = {
|
|
|
51
51
|
alignItems: 'center',
|
|
52
52
|
};
|
|
53
53
|
exports.icon = {
|
|
54
|
-
color:
|
|
54
|
+
color: colors_1.CURRENT_COLOR_LOWERCASE,
|
|
55
55
|
height: 20,
|
|
56
56
|
};
|
|
57
57
|
exports.buttonStyle = {
|
|
58
58
|
backgroundColor: colors_1.BLUE,
|
|
59
|
-
color:
|
|
59
|
+
color: colors_1.WHITE,
|
|
60
60
|
};
|
|
61
61
|
exports.flexer = {
|
|
62
62
|
flex: 1,
|
|
@@ -10,7 +10,7 @@ const get_preview_file_type_1 = require("../helpers/get-preview-file-type");
|
|
|
10
10
|
const FilePreview_1 = require("./FilePreview");
|
|
11
11
|
const msgStyle = {
|
|
12
12
|
fontSize: 13,
|
|
13
|
-
color:
|
|
13
|
+
color: colors_1.WHITE,
|
|
14
14
|
fontFamily: 'sans-serif',
|
|
15
15
|
display: 'flex',
|
|
16
16
|
justifyContent: 'center',
|
|
@@ -98,6 +98,7 @@ const ClientRenderQueueProcessor = () => {
|
|
|
98
98
|
outputTarget: 'web-fs',
|
|
99
99
|
licenseKey: (_c = job.licenseKey) !== null && _c !== void 0 ? _c : undefined,
|
|
100
100
|
allowHtmlInCanvas: job.allowHtmlInCanvas,
|
|
101
|
+
pageResponsiveness: job.pageResponsiveness,
|
|
101
102
|
});
|
|
102
103
|
return {
|
|
103
104
|
getBlob,
|
|
@@ -3,13 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.RenderQueueCopyToClipboard = exports.supportsCopyingToClipboard = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("react");
|
|
6
|
+
const colors_1 = require("../../helpers/colors");
|
|
6
7
|
const get_asset_metadata_1 = require("../../helpers/get-asset-metadata");
|
|
7
8
|
const clipboard_1 = require("../../icons/clipboard");
|
|
8
9
|
const InlineAction_1 = require("../InlineAction");
|
|
9
10
|
const NotificationCenter_1 = require("../Notifications/NotificationCenter");
|
|
10
11
|
const revealIconStyle = {
|
|
11
12
|
height: 12,
|
|
12
|
-
color:
|
|
13
|
+
color: colors_1.CURRENT_COLOR,
|
|
13
14
|
};
|
|
14
15
|
const supportsCopyingToClipboard = (job) => {
|
|
15
16
|
if (job.status !== 'done') {
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.RenderQueueDownloadItem = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("react");
|
|
6
|
+
const colors_1 = require("../../helpers/colors");
|
|
6
7
|
const InlineAction_1 = require("../InlineAction");
|
|
7
8
|
const NotificationCenter_1 = require("../Notifications/NotificationCenter");
|
|
8
9
|
const ClientRenderQueueProcessor_1 = require("./ClientRenderQueueProcessor");
|
|
@@ -24,7 +25,7 @@ const RenderQueueDownloadItem = ({ job }) => {
|
|
|
24
25
|
const icon = (0, react_1.useMemo)(() => {
|
|
25
26
|
return {
|
|
26
27
|
height: 12,
|
|
27
|
-
color:
|
|
28
|
+
color: colors_1.CURRENT_COLOR,
|
|
28
29
|
};
|
|
29
30
|
}, []);
|
|
30
31
|
const renderAction = (0, react_1.useCallback)((color) => {
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.RenderQueueCancelButton = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("react");
|
|
6
|
+
const colors_1 = require("../../helpers/colors");
|
|
6
7
|
const InlineAction_1 = require("../InlineAction");
|
|
7
8
|
const NotificationCenter_1 = require("../Notifications/NotificationCenter");
|
|
8
9
|
const actions_1 = require("./actions");
|
|
@@ -23,7 +24,7 @@ const RenderQueueCancelButton = ({ job }) => {
|
|
|
23
24
|
const icon = (0, react_1.useMemo)(() => {
|
|
24
25
|
return {
|
|
25
26
|
height: 14,
|
|
26
|
-
color:
|
|
27
|
+
color: colors_1.CURRENT_COLOR,
|
|
27
28
|
};
|
|
28
29
|
}, []);
|
|
29
30
|
const renderAction = (0, react_1.useCallback)((color) => {
|
|
@@ -75,7 +75,7 @@ const RenderQueueItemStatus = ({ job }) => {
|
|
|
75
75
|
return (jsx_runtime_1.jsx("svg", { style: iconStyle, viewBox: "0 0 512 512", children: jsx_runtime_1.jsx("path", { fill: colors_1.LIGHT_TEXT, d: "M256 512C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256s-114.6 256-256 256zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z" }) }));
|
|
76
76
|
}
|
|
77
77
|
if (job.status === 'done') {
|
|
78
|
-
return (jsx_runtime_1.jsx("button", { type: "button", style: invisibleStyle, onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, onClick: onClick, children: jsx_runtime_1.jsx("svg", { style: iconStyle, viewBox: "0 0 512 512", children: jsx_runtime_1.jsx("path", { fill: hovered ?
|
|
78
|
+
return (jsx_runtime_1.jsx("button", { type: "button", style: invisibleStyle, onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, onClick: onClick, children: jsx_runtime_1.jsx("svg", { style: iconStyle, viewBox: "0 0 512 512", children: jsx_runtime_1.jsx("path", { fill: hovered ? colors_1.WHITE : colors_1.LIGHT_TEXT, d: "M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM369 209L241 337l-17 17-17-17-64-64-17-17L160 222.1l17 17 47 47L335 175l17-17L385.9 192l-17 17z" }) }) }));
|
|
79
79
|
}
|
|
80
80
|
if (job.status === 'running') {
|
|
81
81
|
let progressValue;
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.RenderQueueOpenInFinderItem = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("react");
|
|
6
|
+
const colors_1 = require("../../helpers/colors");
|
|
6
7
|
const folder_1 = require("../../icons/folder");
|
|
7
8
|
const InlineAction_1 = require("../InlineAction");
|
|
8
9
|
const NotificationCenter_1 = require("../Notifications/NotificationCenter");
|
|
@@ -17,7 +18,7 @@ const RenderQueueOpenInFinderItem = ({ job }) => {
|
|
|
17
18
|
const icon = (0, react_1.useMemo)(() => {
|
|
18
19
|
return {
|
|
19
20
|
height: 12,
|
|
20
|
-
color:
|
|
21
|
+
color: colors_1.CURRENT_COLOR,
|
|
21
22
|
};
|
|
22
23
|
}, []);
|
|
23
24
|
const renderAction = (0, react_1.useCallback)((color) => {
|
|
@@ -5,6 +5,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const remotion_1 = require("remotion");
|
|
7
7
|
const save_render_output_1 = require("../../api/save-render-output");
|
|
8
|
+
const colors_1 = require("../../helpers/colors");
|
|
8
9
|
const InlineAction_1 = require("../InlineAction");
|
|
9
10
|
const NotificationCenter_1 = require("../Notifications/NotificationCenter");
|
|
10
11
|
const actions_1 = require("./actions");
|
|
@@ -39,7 +40,7 @@ const RenderQueueRemoveItem = ({ job }) => {
|
|
|
39
40
|
const icon = (0, react_1.useMemo)(() => {
|
|
40
41
|
return {
|
|
41
42
|
height: 16,
|
|
42
|
-
color:
|
|
43
|
+
color: colors_1.CURRENT_COLOR,
|
|
43
44
|
};
|
|
44
45
|
}, []);
|
|
45
46
|
const renderAction = (0, react_1.useCallback)((color) => {
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.RenderQueueRepeatItem = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("react");
|
|
6
|
+
const colors_1 = require("../../helpers/colors");
|
|
6
7
|
const mobile_layout_1 = require("../../helpers/mobile-layout");
|
|
7
8
|
const retry_payload_1 = require("../../helpers/retry-payload");
|
|
8
9
|
const modals_1 = require("../../state/modals");
|
|
@@ -37,7 +38,7 @@ const RenderQueueRepeatItem = ({ job }) => {
|
|
|
37
38
|
const icon = (0, react_1.useMemo)(() => {
|
|
38
39
|
return {
|
|
39
40
|
height: 12,
|
|
40
|
-
color:
|
|
41
|
+
color: colors_1.CURRENT_COLOR,
|
|
41
42
|
};
|
|
42
43
|
}, []);
|
|
43
44
|
const renderAction = (0, react_1.useCallback)((color) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CompletedClientRender } from '@remotion/studio-shared';
|
|
2
|
-
import type { RenderStillOnWebImageFormat, WebRendererAudioCodec, WebRendererContainer, WebRendererQuality, WebRendererVideoCodec } from '@remotion/web-renderer';
|
|
2
|
+
import type { RenderStillOnWebImageFormat, WebRendererAudioCodec, WebRendererContainer, WebRendererPageResponsiveness, WebRendererQuality, WebRendererVideoCodec } from '@remotion/web-renderer';
|
|
3
3
|
import type { LogLevel } from 'remotion';
|
|
4
4
|
export type ClientRenderJobProgress = {
|
|
5
5
|
encodedFrames: number;
|
|
@@ -60,6 +60,7 @@ export type ClientVideoRenderJob = ClientRenderJobBase & {
|
|
|
60
60
|
keyframeIntervalInSeconds: number;
|
|
61
61
|
transparent: boolean;
|
|
62
62
|
muted: boolean;
|
|
63
|
+
pageResponsiveness: WebRendererPageResponsiveness;
|
|
63
64
|
} & ClientRenderJobDynamicStatus;
|
|
64
65
|
export type RestoredClientRenderJob = CompletedClientRender & {
|
|
65
66
|
status: 'done';
|
|
@@ -45,7 +45,7 @@ const is_menu_item_1 = require("../Menu/is-menu-item");
|
|
|
45
45
|
const context_1 = require("./context");
|
|
46
46
|
const RenderQueueItem_1 = require("./RenderQueueItem");
|
|
47
47
|
const separatorStyle = {
|
|
48
|
-
borderBottom: `1px solid ${colors_1.
|
|
48
|
+
borderBottom: `1px solid ${colors_1.BLACK_HEX}`,
|
|
49
49
|
};
|
|
50
50
|
const errorExplanation = {
|
|
51
51
|
fontSize: 14,
|
|
@@ -31,8 +31,8 @@ const RendersTab = ({ selected, onClick }) => {
|
|
|
31
31
|
const badgeStyle = (0, react_1.useMemo)(() => {
|
|
32
32
|
return {
|
|
33
33
|
...badge,
|
|
34
|
-
backgroundColor: failedJobs > 0 ? colors_1.FAIL_COLOR :
|
|
35
|
-
color: failedJobs > 0 ?
|
|
34
|
+
backgroundColor: failedJobs > 0 ? colors_1.FAIL_COLOR : colors_1.TRANSPARENT,
|
|
35
|
+
color: failedJobs > 0 ? colors_1.WHITE : colors_1.LIGHT_TEXT,
|
|
36
36
|
borderWidth: failedJobs > 0 ? 0 : 1,
|
|
37
37
|
borderStyle: 'solid',
|
|
38
38
|
borderColor: colors_1.LIGHT_TEXT,
|
|
@@ -9,7 +9,7 @@ const container = {
|
|
|
9
9
|
display: 'flex',
|
|
10
10
|
flexDirection: 'row',
|
|
11
11
|
overflow: 'hidden',
|
|
12
|
-
border: '1px solid ' + colors_1.
|
|
12
|
+
border: '1px solid ' + colors_1.BLACK_ALPHA_60,
|
|
13
13
|
flexWrap: 'wrap',
|
|
14
14
|
maxWidth: 350,
|
|
15
15
|
justifyContent: 'flex-end',
|
|
@@ -63,8 +63,8 @@ const Item = ({ selected, onClick, children, size }) => {
|
|
|
63
63
|
const itemStyle = (0, react_1.useMemo)(() => {
|
|
64
64
|
return {
|
|
65
65
|
...(size === 'compact' ? compactItem : item),
|
|
66
|
-
backgroundColor: selected ? colors_1.INPUT_BACKGROUND :
|
|
67
|
-
color: selected ?
|
|
66
|
+
backgroundColor: selected ? colors_1.INPUT_BACKGROUND : colors_1.TRANSPARENT,
|
|
67
|
+
color: selected ? colors_1.WHITE : hovered ? colors_1.WHITE : colors_1.LIGHT_TEXT,
|
|
68
68
|
};
|
|
69
69
|
}, [hovered, selected, size]);
|
|
70
70
|
return (jsx_runtime_1.jsx("button", { type: "button", onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, style: itemStyle, tabIndex: tabIndex, onClick: onClick, children: children }));
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { SelectedOutline } from './selected-outline-geometry';
|
|
3
|
+
import { type SelectedOutlineSnapPoint, type SelectedOutlineSnapTarget } from './selected-outline-snap';
|
|
3
4
|
import { type SelectedOutlineDragTarget, type SelectedOutlineRotationDragTarget, type SelectedOutlineScaleDragTarget, type SelectedOutlineTarget } from './selected-outline-types';
|
|
4
5
|
import type { TimelineSelection, TimelineSelectionInteraction } from './Timeline/TimelineSelection';
|
|
6
|
+
export declare const SelectedOutlineTransformOriginHandle: React.FC<{
|
|
7
|
+
readonly outline: SelectedOutline;
|
|
8
|
+
readonly onDraggingChange: (dragging: boolean) => void;
|
|
9
|
+
readonly target: SelectedOutlineTarget | undefined;
|
|
10
|
+
}>;
|
|
5
11
|
export declare const SelectedOutlineElement: React.FC<{
|
|
6
12
|
readonly allDragTargets: readonly SelectedOutlineDragTarget[];
|
|
13
|
+
readonly allDragOutlines: readonly SelectedOutline[];
|
|
7
14
|
readonly allRotationDragTargets: readonly SelectedOutlineRotationDragTarget[];
|
|
8
15
|
readonly allScaleDragTargets: readonly SelectedOutlineScaleDragTarget[];
|
|
9
16
|
readonly dragging: boolean;
|
|
@@ -11,7 +18,9 @@ export declare const SelectedOutlineElement: React.FC<{
|
|
|
11
18
|
readonly outline: SelectedOutline;
|
|
12
19
|
readonly onDraggingChange: (dragging: boolean) => void;
|
|
13
20
|
readonly onHoverChange: (key: string | null) => void;
|
|
21
|
+
readonly onSnapPointsChange: (snapPoints: readonly SelectedOutlineSnapPoint[]) => void;
|
|
14
22
|
readonly onSelect: (item: TimelineSelection, interaction: TimelineSelectionInteraction) => void;
|
|
15
23
|
readonly scale: number;
|
|
24
|
+
readonly snapTargets: readonly SelectedOutlineSnapTarget[];
|
|
16
25
|
readonly target: SelectedOutlineTarget | undefined;
|
|
17
26
|
}>;
|