@remotion/studio 4.0.423 → 4.0.424
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/FastRefreshProvider.js +1 -1
- package/dist/ResolveCompositionConfigInStudio.js +1 -1
- package/dist/Studio.js +6 -4
- package/dist/api/create-composition.js +2 -2
- package/dist/api/focus-default-props-path.d.ts +1 -1
- package/dist/api/get-zod-schema-from-primitive.d.ts +3 -2
- package/dist/api/get-zod-schema-from-primitive.js +3 -4
- package/dist/api/helpers/calc-new-props.d.ts +2 -2
- package/dist/api/play.d.ts +1 -1
- package/dist/api/toggle.d.ts +1 -1
- package/dist/components/AskAiModal.js +3 -1
- package/dist/components/AssetSelector.js +21 -58
- package/dist/components/AssetSelectorItem.js +15 -9
- package/dist/components/AudioWaveform.js +5 -4
- package/dist/components/AudioWaveformBar.js +1 -1
- package/dist/components/Button.js +1 -1
- package/dist/components/Canvas.js +2 -1
- package/dist/components/CanvasIfSizeIsAvailable.js +1 -1
- package/dist/components/CanvasOrLoading.js +12 -6
- package/dist/components/CheckboardToggle.js +1 -1
- package/dist/components/Checkbox.js +3 -1
- package/dist/components/CheckerboardProvider.js +1 -1
- package/dist/components/CompSelectorRef.js +1 -1
- package/dist/components/CompositionContextButton.js +2 -2
- package/dist/components/CompositionSelector.js +4 -3
- package/dist/components/CompositionSelectorItem.js +6 -3
- package/dist/components/ContextMenu.js +3 -2
- package/dist/components/ControlButton.d.ts +1 -1
- package/dist/components/ControlButton.js +1 -1
- package/dist/components/CopyButton.js +3 -2
- package/dist/components/CurrentAsset.d.ts +3 -0
- package/dist/components/CurrentAsset.js +113 -0
- package/dist/components/CurrentComposition.js +3 -2
- package/dist/components/Editor.js +6 -1
- package/dist/components/EditorContent.js +6 -1
- package/dist/components/EditorContexts.js +3 -1
- package/dist/components/EditorGuides/Guide.js +1 -1
- package/dist/components/EditorGuides/index.js +2 -2
- package/dist/components/EditorRuler/Ruler.js +1 -1
- package/dist/components/EditorRuler/index.js +3 -1
- package/dist/components/ExplorerPanel.js +4 -1
- package/dist/components/FilePreview.js +8 -6
- package/dist/components/FpsCounter.js +1 -1
- package/dist/components/FullscreenToggle.js +1 -1
- package/dist/components/GlobalPropsEditorUpdateButton.js +3 -1
- package/dist/components/InitialCompositionLoader.d.ts +1 -2
- package/dist/components/InitialCompositionLoader.js +3 -3
- package/dist/components/InlineAction.js +1 -1
- package/dist/components/InlineDropdown.js +3 -2
- package/dist/components/InstallPackage.js +19 -9
- package/dist/components/InstallablePackage.js +5 -3
- package/dist/components/JSONViewer.js +1 -1
- package/dist/components/KeyboardShortcutsExplainer.js +91 -1
- package/dist/components/KnownBugs.js +4 -2
- package/dist/components/LoopToggle.js +1 -1
- package/dist/components/MediaVolumeProvider.js +1 -1
- package/dist/components/Menu/MenuDivider.js +1 -1
- package/dist/components/Menu/MenuItem.js +3 -2
- package/dist/components/Menu/MenuSubItem.js +4 -2
- package/dist/components/Menu/SubMenu.js +1 -1
- package/dist/components/MenuBuildIndicator.js +1 -1
- package/dist/components/MenuToolbar.js +5 -3
- package/dist/components/MobilePanel.d.ts +1 -1
- package/dist/components/MobilePanel.js +2 -1
- package/dist/components/ModalButton.js +1 -1
- package/dist/components/ModalContainer.js +1 -1
- package/dist/components/ModalFooter.js +1 -1
- package/dist/components/ModalHeader.js +3 -1
- package/dist/components/Modals.js +2 -2
- package/dist/components/ModalsProvider.js +1 -1
- package/dist/components/MuteToggle.js +1 -1
- package/dist/components/NewComposition/CancelButton.js +1 -1
- package/dist/components/NewComposition/CodemodFooter.js +5 -2
- package/dist/components/NewComposition/ComboBox.js +6 -2
- package/dist/components/NewComposition/DeleteComposition.js +10 -2
- package/dist/components/NewComposition/DiffPreview.js +5 -3
- package/dist/components/NewComposition/DismissableModal.js +1 -1
- package/dist/components/NewComposition/DuplicateComposition.js +28 -3
- package/dist/components/NewComposition/InputDragger.d.ts +1 -1
- package/dist/components/NewComposition/InputDragger.js +2 -2
- package/dist/components/NewComposition/MenuContent.js +3 -3
- package/dist/components/NewComposition/NewCompDuration.js +7 -2
- package/dist/components/NewComposition/RemInput.d.ts +2 -2
- package/dist/components/NewComposition/RemInput.js +2 -2
- package/dist/components/NewComposition/RemInputTypeColor.js +1 -1
- package/dist/components/NewComposition/RemTextarea.js +1 -1
- package/dist/components/NewComposition/RenameComposition.js +11 -2
- package/dist/components/NewComposition/ValidationMessage.js +4 -2
- package/dist/components/NoRegisterRoot.js +4 -1
- package/dist/components/Notifications/ColorDot.js +1 -1
- package/dist/components/Notifications/Notification.js +1 -1
- package/dist/components/Notifications/NotificationCenter.js +2 -2
- package/dist/components/Notifications/ServerDisconnected.js +2 -1
- package/dist/components/OpenEditorButton.js +2 -2
- package/dist/components/OptionsPanel.js +7 -4
- package/dist/components/OverrideInputProps.js +7 -2
- package/dist/components/PlayPause.js +3 -1
- package/dist/components/PlaybackRateSelector.js +2 -2
- package/dist/components/Preview.js +8 -8
- package/dist/components/PreviewToolbar.js +11 -1
- package/dist/components/QuickSwitcher/AlgoliaCredit.js +1 -1
- package/dist/components/QuickSwitcher/NoResults.js +1 -1
- package/dist/components/QuickSwitcher/QuickSwitcher.js +1 -1
- package/dist/components/QuickSwitcher/QuickSwitcherContent.js +12 -3
- package/dist/components/QuickSwitcher/QuickSwitcherResult.js +6 -3
- package/dist/components/RefreshCompositionOverlay.js +1 -1
- package/dist/components/RenderButton.js +26 -9
- package/dist/components/RenderModal/CliCopyButton.js +3 -3
- package/dist/components/RenderModal/ClientRenderProgress.js +16 -14
- package/dist/components/RenderModal/CrfSetting.d.ts +1 -2
- package/dist/components/RenderModal/CrfSetting.js +1 -1
- package/dist/components/RenderModal/DataEditor.js +15 -8
- package/dist/components/RenderModal/EnforceAudioTrackSetting.js +5 -1
- package/dist/components/RenderModal/EnvInput.js +4 -1
- package/dist/components/RenderModal/FrameRangeSetting.js +5 -1
- package/dist/components/RenderModal/GuiRenderStatus.js +15 -10
- package/dist/components/RenderModal/InfoBubble.js +3 -2
- package/dist/components/RenderModal/InfoTooltip.js +3 -2
- package/dist/components/RenderModal/InlineEyeIcon.js +2 -2
- package/dist/components/RenderModal/InlineRemoveButton.js +2 -2
- package/dist/components/RenderModal/JpegQualitySetting.js +1 -1
- package/dist/components/RenderModal/MultiRangeSlider.js +3 -1
- package/dist/components/RenderModal/MutedSetting.js +5 -1
- package/dist/components/RenderModal/NumberOfLoopsSetting.js +3 -1
- package/dist/components/RenderModal/NumberSetting.js +6 -2
- package/dist/components/RenderModal/OptionExplainer.js +14 -1
- package/dist/components/RenderModal/OptionExplainerBubble.js +1 -1
- package/dist/components/RenderModal/RenderModalAdvanced.js +66 -7
- package/dist/components/RenderModal/RenderModalAudio.js +21 -4
- package/dist/components/RenderModal/RenderModalBasic.js +18 -3
- package/dist/components/RenderModal/RenderModalEnvironmentVariables.js +5 -3
- package/dist/components/RenderModal/RenderModalGif.js +6 -1
- package/dist/components/RenderModal/RenderModalHr.js +1 -1
- package/dist/components/RenderModal/RenderModalJSONPropsEditor.js +5 -2
- package/dist/components/RenderModal/RenderModalOutputName.js +8 -1
- package/dist/components/RenderModal/RenderModalPicture.js +30 -3
- package/dist/components/RenderModal/RenderStatusModal.js +8 -2
- package/dist/components/RenderModal/ResolveCompositionBeforeModal.js +6 -3
- package/dist/components/RenderModal/ScaleSetting.js +3 -2
- package/dist/components/RenderModal/SchemaEditor/Fieldset.js +2 -2
- package/dist/components/RenderModal/SchemaEditor/SchemaEditor.js +4 -4
- package/dist/components/RenderModal/SchemaEditor/SchemaErrorMessages.js +31 -6
- package/dist/components/RenderModal/SchemaEditor/SchemaLabel.js +3 -3
- package/dist/components/RenderModal/SchemaEditor/SchemaResetButton.js +2 -2
- package/dist/components/RenderModal/SchemaEditor/SchemaSaveButton.js +2 -2
- package/dist/components/RenderModal/SchemaEditor/SchemaSeparationLine.js +9 -5
- package/dist/components/RenderModal/SchemaEditor/SchemaVerticalGuide.js +3 -1
- package/dist/components/RenderModal/SchemaEditor/ZodArrayEditor.js +9 -5
- package/dist/components/RenderModal/SchemaEditor/ZodArrayItemEditor.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodBooleanEditor.js +3 -1
- package/dist/components/RenderModal/SchemaEditor/ZodColorEditor.js +8 -2
- package/dist/components/RenderModal/SchemaEditor/ZodDateEditor.js +5 -1
- package/dist/components/RenderModal/SchemaEditor/ZodDefaultEditor.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodDiscriminatedUnionEditor.js +6 -4
- package/dist/components/RenderModal/SchemaEditor/ZodEffectEditor.js +3 -1
- package/dist/components/RenderModal/SchemaEditor/ZodEnumEditor.js +4 -2
- package/dist/components/RenderModal/SchemaEditor/ZodErrorMessages.js +6 -4
- package/dist/components/RenderModal/SchemaEditor/ZodFieldValidation.js +8 -2
- package/dist/components/RenderModal/SchemaEditor/ZodMatrixEditor.js +8 -6
- package/dist/components/RenderModal/SchemaEditor/ZodNonEditableValue.js +3 -1
- package/dist/components/RenderModal/SchemaEditor/ZodNullableEditor.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodNumberEditor.js +5 -1
- package/dist/components/RenderModal/SchemaEditor/ZodObjectEditor.js +6 -5
- package/dist/components/RenderModal/SchemaEditor/ZodOptionalEditor.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodOrNullishEditor.js +4 -1
- package/dist/components/RenderModal/SchemaEditor/ZodStaticFileEditor.js +8 -5
- package/dist/components/RenderModal/SchemaEditor/ZodStringEditor.js +5 -1
- package/dist/components/RenderModal/SchemaEditor/ZodSwitch.js +24 -24
- package/dist/components/RenderModal/SchemaEditor/ZodTextareaEditor.js +5 -1
- package/dist/components/RenderModal/SchemaEditor/ZodTupleEditor.js +9 -5
- package/dist/components/RenderModal/SchemaEditor/ZodTupleItemEditor.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodUnionEditor.js +5 -5
- package/dist/components/RenderModal/SchemaEditor/create-zod-values.d.ts +2 -2
- package/dist/components/RenderModal/SchemaEditor/extract-enum-json-paths.d.ts +4 -4
- package/dist/components/RenderModal/SchemaEditor/local-state.js +1 -1
- package/dist/components/RenderModal/SeparateAudioOption.js +7 -2
- package/dist/components/RenderModal/ServerRenderModal.js +27 -5
- package/dist/components/RenderModal/WarningIndicatorButton.js +4 -2
- package/dist/components/RenderModal/WebRenderModal.js +29 -6
- package/dist/components/RenderModal/WebRenderModalAdvanced.js +11 -4
- package/dist/components/RenderModal/WebRenderModalAudio.js +12 -2
- package/dist/components/RenderModal/WebRenderModalBasic.js +23 -5
- package/dist/components/RenderModal/WebRenderModalLicense.js +24 -2
- package/dist/components/RenderModal/WebRenderModalLicenseKeyDetails.js +12 -1
- package/dist/components/RenderModal/WebRenderModalPicture.js +8 -1
- package/dist/components/RenderModal/WebRendererExperimentalBadge.js +3 -1
- package/dist/components/RenderModal/get-default-codecs.d.ts +7 -8
- package/dist/components/RenderModal/human-readable-audio-codecs.d.ts +1 -2
- package/dist/components/RenderModal/human-readable-codec.d.ts +1 -2
- package/dist/components/RenderModal/human-readable-loglevel.d.ts +1 -2
- package/dist/components/RenderModal/out-name-checker.d.ts +4 -5
- package/dist/components/RenderModal/quality-options.js +1 -1
- package/dist/components/RenderPreview.js +4 -4
- package/dist/components/RenderQueue/CircularProgress.js +1 -1
- package/dist/components/RenderQueue/ClientRenderQueueProcessor.js +0 -1
- package/dist/components/RenderQueue/RenderQueueCancelledMessage.js +1 -1
- package/dist/components/RenderQueue/RenderQueueCopyToClipboard.js +2 -2
- package/dist/components/RenderQueue/RenderQueueDownloadItem.js +2 -2
- package/dist/components/RenderQueue/RenderQueueError.js +1 -1
- package/dist/components/RenderQueue/RenderQueueItem.js +4 -1
- package/dist/components/RenderQueue/RenderQueueItemCancelButton.js +2 -2
- package/dist/components/RenderQueue/RenderQueueItemStatus.js +8 -8
- package/dist/components/RenderQueue/RenderQueueOpenInFolder.js +2 -2
- package/dist/components/RenderQueue/RenderQueueOutputName.js +1 -1
- package/dist/components/RenderQueue/RenderQueueProgressMessage.js +4 -2
- package/dist/components/RenderQueue/RenderQueueRemoveItem.js +2 -2
- package/dist/components/RenderQueue/RenderQueueRepeat.js +2 -2
- package/dist/components/RenderQueue/RenderQueueSavingMessage.js +1 -1
- package/dist/components/RenderQueue/SuccessIcon.js +1 -1
- package/dist/components/RenderQueue/actions.d.ts +21 -24
- package/dist/components/RenderQueue/client-side-render-types.d.ts +0 -1
- package/dist/components/RenderQueue/context.js +2 -2
- package/dist/components/RenderQueue/index.js +10 -5
- package/dist/components/RendersTab.js +3 -1
- package/dist/components/ResetZoomButton.js +1 -1
- package/dist/components/RunningCalculateMetadata.js +5 -1
- package/dist/components/SegmentedControl.js +3 -3
- package/dist/components/SetTimelineInOutProvider.js +1 -1
- package/dist/components/ShowGuidesProvider.js +1 -1
- package/dist/components/ShowRulersProvider.js +1 -1
- package/dist/components/SidebarCollapserControls.js +5 -3
- package/dist/components/SidebarRenderButton.js +2 -2
- package/dist/components/SizeSelector.js +2 -2
- package/dist/components/Spinner.js +6 -4
- package/dist/components/Splitter/SplitterContainer.js +1 -1
- package/dist/components/Splitter/SplitterElement.js +3 -1
- package/dist/components/Splitter/SplitterHandle.js +1 -1
- package/dist/components/StaticFilePreview.js +5 -5
- package/dist/components/Tabs/index.js +2 -2
- package/dist/components/Tabs/vertical.js +1 -1
- package/dist/components/TextViewer.js +1 -1
- package/dist/components/TimeValue.js +3 -1
- package/dist/components/Timeline/LoopedIndicator.js +4 -2
- package/dist/components/Timeline/LoopedTimelineIndicators.js +5 -4
- package/dist/components/Timeline/MaxTimelineTracks.js +1 -1
- package/dist/components/Timeline/Timeline.js +5 -1
- package/dist/components/Timeline/TimelineCollapseToggle.js +2 -2
- package/dist/components/Timeline/TimelineDragHandler.js +5 -3
- package/dist/components/Timeline/TimelineInOutPointer.js +2 -2
- package/dist/components/Timeline/TimelineInOutPointerHandle.js +2 -2
- package/dist/components/Timeline/TimelineLayerEye.js +3 -3
- package/dist/components/Timeline/TimelineList.js +3 -2
- package/dist/components/Timeline/TimelineListItem.js +3 -1
- package/dist/components/Timeline/TimelineScrollable.js +1 -1
- package/dist/components/Timeline/TimelineSequence.js +6 -6
- package/dist/components/Timeline/TimelineSequenceFrame.js +1 -1
- package/dist/components/Timeline/TimelineSlider.d.ts +1 -1
- package/dist/components/Timeline/TimelineSlider.js +6 -3
- package/dist/components/Timeline/TimelineSliderHandle.js +1 -1
- package/dist/components/Timeline/TimelineStack/index.js +5 -2
- package/dist/components/Timeline/TimelineTimeIndicators.js +5 -5
- package/dist/components/Timeline/TimelineTracks.js +6 -4
- package/dist/components/Timeline/TimelineVideoInfo.js +1 -1
- package/dist/components/Timeline/TimelineWidthProvider.js +1 -1
- package/dist/components/Timeline/TimelineZoomControls.js +3 -1
- package/dist/components/Timeline/timeline-scroll-logic.d.ts +1 -1
- package/dist/components/Timeline/timeline-scroll-logic.js +12 -8
- package/dist/components/TimelineInOutToggle.js +11 -7
- package/dist/components/TopPanel.js +5 -1
- package/dist/components/UpdateCheck.js +2 -2
- package/dist/components/UpdateModal/OpenIssueButton.js +2 -2
- package/dist/components/UpdateModal/UpdateModal.js +8 -1
- package/dist/components/VisualControls/ClickableFileName.js +1 -1
- package/dist/components/VisualControls/VisualControlHandle.js +3 -1
- package/dist/components/VisualControls/VisualControlHandleHeader.js +1 -1
- package/dist/components/VisualControls/VisualControlsContent.js +3 -2
- package/dist/components/ZoomGesturesProvider.js +1 -1
- package/dist/components/call-api.d.ts +1 -1
- package/dist/components/get-zod-if-possible.d.ts +3 -3
- package/dist/components/get-zod-if-possible.js +9 -9
- package/dist/components/layout.js +4 -4
- package/dist/components/use-static-files.d.ts +6 -0
- package/dist/components/use-static-files.js +63 -0
- package/dist/error-overlay/react-overlay/utils/parser.d.ts +1 -1
- package/dist/error-overlay/remotion-overlay/AskOnDiscord.js +1 -1
- package/dist/error-overlay/remotion-overlay/CalculateMetadataErrorExplainer.js +2 -1
- package/dist/error-overlay/remotion-overlay/CodeFrame.js +6 -4
- package/dist/error-overlay/remotion-overlay/CompositionIdListItem.js +1 -1
- package/dist/error-overlay/remotion-overlay/CompositionIdsDropdown.js +8 -3
- package/dist/error-overlay/remotion-overlay/DismissButton.js +1 -1
- package/dist/error-overlay/remotion-overlay/ErrorDisplay.js +19 -4
- package/dist/error-overlay/remotion-overlay/ErrorLoader.js +8 -4
- package/dist/error-overlay/remotion-overlay/ErrorMessage.js +2 -1
- package/dist/error-overlay/remotion-overlay/ErrorTitle.js +7 -1
- package/dist/error-overlay/remotion-overlay/HelpLink.js +1 -1
- package/dist/error-overlay/remotion-overlay/OpenInEditor.js +1 -1
- package/dist/error-overlay/remotion-overlay/Overlay.js +2 -2
- package/dist/error-overlay/remotion-overlay/Retry.js +1 -1
- package/dist/error-overlay/remotion-overlay/SearchGitHubIssues.js +1 -1
- package/dist/error-overlay/remotion-overlay/ShortcutHint.js +2 -1
- package/dist/error-overlay/remotion-overlay/StackFrame.js +6 -2
- package/dist/error-overlay/remotion-overlay/Symbolicating.js +3 -1
- package/dist/error-overlay/remotion-overlay/carets.d.ts +1 -1
- package/dist/error-overlay/remotion-overlay/carets.js +2 -2
- package/dist/error-overlay/remotion-overlay/index.js +2 -2
- package/dist/esm/{chunk-112w480k.js → chunk-3g77e2p9.js} +4021 -19452
- package/dist/esm/internals.mjs +4021 -19452
- package/dist/esm/previewEntry.mjs +4052 -19483
- package/dist/esm/renderEntry.mjs +1 -1
- package/dist/helpers/client-id.js +1 -1
- package/dist/helpers/color-math.d.ts +1 -2
- package/dist/helpers/create-folder-tree.d.ts +2 -2
- package/dist/helpers/document-title.js +2 -2
- package/dist/helpers/editor-ruler.d.ts +3 -3
- package/dist/helpers/extract-frames.d.ts +1 -1
- package/dist/helpers/pick-color.js +5 -1
- package/dist/helpers/presets-labels.d.ts +1 -2
- package/dist/helpers/prores-labels.d.ts +1 -2
- package/dist/helpers/render-modal-sections.d.ts +1 -2
- package/dist/helpers/timeline-layout.d.ts +1 -1
- package/dist/helpers/use-asset-drag-events.d.ts +1 -1
- package/dist/helpers/use-menu-structure.d.ts +1 -1
- package/dist/helpers/use-menu-structure.js +11 -11
- package/dist/helpers/use-studio-canvas-dimensions.d.ts +1 -1
- package/dist/helpers/validate-new-comp-data.d.ts +2 -3
- package/dist/hot-middleware-client/client.d.ts +1 -1
- package/dist/hot-middleware-client/process-update.d.ts +8 -2
- package/dist/hot-middleware-client/process-update.js +2 -1
- package/dist/icons/Checkmark.js +1 -1
- package/dist/icons/audio.js +1 -1
- package/dist/icons/caret.js +3 -3
- package/dist/icons/certificate.d.ts +1 -1
- package/dist/icons/certificate.js +1 -1
- package/dist/icons/check-circle-filled.js +1 -1
- package/dist/icons/clipboard.js +1 -1
- package/dist/icons/data.js +1 -1
- package/dist/icons/ellipsis.js +1 -1
- package/dist/icons/file.js +1 -1
- package/dist/icons/folder.js +3 -3
- package/dist/icons/frame.js +1 -1
- package/dist/icons/gear.js +1 -1
- package/dist/icons/gif.js +1 -1
- package/dist/icons/jump-to-start.js +1 -1
- package/dist/icons/keys.js +3 -3
- package/dist/icons/media-volume.js +2 -2
- package/dist/icons/minus.js +1 -1
- package/dist/icons/pause.js +1 -1
- package/dist/icons/play.js +1 -1
- package/dist/icons/plus.js +1 -1
- package/dist/icons/render.js +1 -1
- package/dist/icons/step-back.js +1 -1
- package/dist/icons/step-forward.js +1 -1
- package/dist/icons/still.js +1 -1
- package/dist/icons/timelineInOutPointer.js +2 -2
- package/dist/icons/video.js +1 -1
- package/dist/index.js +16 -16
- package/dist/internals.d.ts +1 -1
- package/dist/previewEntry.js +2 -2
- package/dist/renderEntry.js +10 -8
- package/dist/state/folders.js +1 -1
- package/dist/state/highest-z-index.js +1 -1
- package/dist/state/in-out.js +4 -3
- package/dist/state/keybindings.js +1 -1
- package/dist/state/preview-size.js +1 -1
- package/dist/state/sidebar.js +1 -1
- package/dist/state/timeline-zoom.js +1 -1
- package/dist/state/z-index.js +2 -1
- package/dist/visual-controls/VisualControls.js +1 -1
- package/dist/visual-controls/get-current-edited-value.js +2 -1
- package/package.json +13 -12
|
@@ -92,7 +92,7 @@ const getInitialRenderType = (readOnlyStudio) => {
|
|
|
92
92
|
const RenderButton = ({ readOnlyStudio, }) => {
|
|
93
93
|
const { inFrame, outFrame } = (0, in_out_1.useTimelineInOutFramePosition)();
|
|
94
94
|
const { setSelectedModal } = (0, react_1.useContext)(modals_1.ModalsContext);
|
|
95
|
-
const [
|
|
95
|
+
const [preferredRenderType, setPreferredRenderType] = (0, react_1.useState)(() => getInitialRenderType(readOnlyStudio));
|
|
96
96
|
const [dropdownOpened, setDropdownOpened] = (0, react_1.useState)(false);
|
|
97
97
|
const dropdownRef = (0, react_1.useRef)(null);
|
|
98
98
|
const containerRef = (0, react_1.useRef)(null);
|
|
@@ -132,8 +132,18 @@ const RenderButton = ({ readOnlyStudio, }) => {
|
|
|
132
132
|
}, [refresh]);
|
|
133
133
|
const connectionStatus = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx)
|
|
134
134
|
.previewServerState.type;
|
|
135
|
+
const canRender = connectionStatus === 'connected' || show_browser_rendering_1.SHOW_BROWSER_RENDERING;
|
|
136
|
+
const renderType = (0, react_1.useMemo)(() => {
|
|
137
|
+
if (connectionStatus === 'disconnected' && show_browser_rendering_1.SHOW_BROWSER_RENDERING) {
|
|
138
|
+
return 'client-render';
|
|
139
|
+
}
|
|
140
|
+
if (!show_browser_rendering_1.SHOW_BROWSER_RENDERING) {
|
|
141
|
+
return 'server-render';
|
|
142
|
+
}
|
|
143
|
+
return preferredRenderType;
|
|
144
|
+
}, [connectionStatus, preferredRenderType]);
|
|
135
145
|
const shortcut = (0, use_keybinding_1.areKeyboardShortcutsDisabled)() ? '' : '(R)';
|
|
136
|
-
const tooltip =
|
|
146
|
+
const tooltip = canRender
|
|
137
147
|
? 'Export the current composition ' + shortcut
|
|
138
148
|
: 'Connect to the Studio server to render';
|
|
139
149
|
const iconStyle = (0, react_1.useMemo)(() => {
|
|
@@ -148,7 +158,8 @@ const RenderButton = ({ readOnlyStudio, }) => {
|
|
|
148
158
|
const getCurrentFrame = player_1.PlayerInternals.useFrameImperative();
|
|
149
159
|
const { props } = (0, react_1.useContext)(remotion_1.Internals.EditorPropsContext);
|
|
150
160
|
const openServerRenderModal = (0, react_1.useCallback)(() => {
|
|
151
|
-
var _a
|
|
161
|
+
var _a;
|
|
162
|
+
var _b, _c;
|
|
152
163
|
if (!video) {
|
|
153
164
|
return null;
|
|
154
165
|
}
|
|
@@ -253,7 +264,7 @@ const RenderButton = ({ readOnlyStudio, }) => {
|
|
|
253
264
|
setDropdownOpened(false);
|
|
254
265
|
}, []);
|
|
255
266
|
const handleRenderTypeChange = (0, react_1.useCallback)((newType) => {
|
|
256
|
-
|
|
267
|
+
setPreferredRenderType(newType);
|
|
257
268
|
try {
|
|
258
269
|
localStorage.setItem(RENDER_TYPE_STORAGE_KEY, newType);
|
|
259
270
|
}
|
|
@@ -333,10 +344,10 @@ const RenderButton = ({ readOnlyStudio, }) => {
|
|
|
333
344
|
return {
|
|
334
345
|
...splitButtonContainer,
|
|
335
346
|
borderColor: colors_1.INPUT_BORDER_COLOR_UNHOVERED,
|
|
336
|
-
opacity:
|
|
337
|
-
cursor:
|
|
347
|
+
opacity: canRender ? 1 : 0.7,
|
|
348
|
+
cursor: canRender ? 'pointer' : 'inherit',
|
|
338
349
|
};
|
|
339
|
-
}, [
|
|
350
|
+
}, [canRender]);
|
|
340
351
|
const renderLabel = renderType === 'server-render' ? 'Render' : 'Render on web';
|
|
341
352
|
const shouldShowDropdown = (0, react_1.useMemo)(() => {
|
|
342
353
|
// Server render is not available
|
|
@@ -352,8 +363,14 @@ const RenderButton = ({ readOnlyStudio, }) => {
|
|
|
352
363
|
if (!video) {
|
|
353
364
|
return null;
|
|
354
365
|
}
|
|
355
|
-
return (
|
|
356
|
-
|
|
366
|
+
return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
367
|
+
jsx_runtime_1.jsx("button", { style: { display: 'none' }, id: "render-modal-button-server", disabled: !canRender, onClick: openServerRenderModal, type: "button" }), ' ', jsx_runtime_1.jsx("button", { style: { display: 'none' }, id: "render-modal-button-client", onClick: openClientRenderModal, type: "button" }), jsx_runtime_1.jsxs("div", { ref: containerRef, style: containerStyle, title: tooltip, children: [
|
|
368
|
+
jsx_runtime_1.jsx("button", { type: "button", style: mainButtonStyle, onClick: onClick, id: "render-modal-button", disabled: !canRender, children: jsx_runtime_1.jsxs(layout_1.Row, { align: "center", style: mainButtonContent, children: [
|
|
369
|
+
jsx_runtime_1.jsx(render_1.ThinRenderIcon, { fill: "currentcolor", svgProps: iconStyle }), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx("span", { style: label, children: renderLabel })
|
|
370
|
+
] }) }), shouldShowDropdown ? (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
371
|
+
jsx_runtime_1.jsx("div", { style: dividerStyle }), jsx_runtime_1.jsx("button", { ref: dropdownRef, type: "button", style: dropdownTriggerStyle, disabled: connectionStatus !== 'connected', className: is_menu_item_1.MENU_INITIATOR_CLASSNAME, onPointerDown: onPointerDown, onClick: onClickDropdown, children: jsx_runtime_1.jsx(caret_1.CaretDown, {}) })
|
|
372
|
+
] })) : null] }), portalStyle
|
|
373
|
+
? react_dom_1.default.createPortal(jsx_runtime_1.jsx("div", { style: styles_1.fullScreenOverlay, children: jsx_runtime_1.jsx("div", { style: styles_1.outerPortal, className: "css-reset", children: jsx_runtime_1.jsx(z_index_1.HigherZIndex, { onOutsideClick: onHideDropdown, onEscape: onHideDropdown, children: jsx_runtime_1.jsx("div", { style: portalStyle, children: jsx_runtime_1.jsx(MenuContent_1.MenuContent, { onNextMenu: () => { }, onPreviousMenu: () => { }, values: dropdownValues, onHide: onHideDropdown, leaveLeftSpace: false, preselectIndex: dropdownValues.findIndex((v) => v.id === renderType), topItemCanBeUnselected: false, fixedHeight: derivedMaxHeight }) }) }) }) }), (0, portals_1.getPortal)(currentZIndex))
|
|
357
374
|
: null] }));
|
|
358
375
|
};
|
|
359
376
|
exports.RenderButton = RenderButton;
|
|
@@ -33,8 +33,8 @@ const CliCopyButton = ({ valueToCopy, }) => {
|
|
|
33
33
|
const fillColor = (0, react_1.useMemo)(() => {
|
|
34
34
|
return hovered ? 'white' : colors_1.LIGHT_TEXT;
|
|
35
35
|
}, [hovered]);
|
|
36
|
-
const clipboardIcon =
|
|
37
|
-
const checkSvg = (
|
|
36
|
+
const clipboardIcon = jsx_runtime_1.jsx(clipboard_1.ClipboardIcon, { color: fillColor, style: svgStyle });
|
|
37
|
+
const checkSvg = (jsx_runtime_1.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 448 512", style: svgStyle, children: jsx_runtime_1.jsx("path", { fill: fillColor, d: "M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z" }) }));
|
|
38
38
|
const onPointerEnter = (0, react_1.useCallback)(() => {
|
|
39
39
|
setHovered(true);
|
|
40
40
|
}, []);
|
|
@@ -52,7 +52,7 @@ const CliCopyButton = ({ valueToCopy, }) => {
|
|
|
52
52
|
const to = setTimeout(() => handleClear(), 2000);
|
|
53
53
|
return () => clearTimeout(to);
|
|
54
54
|
}, [copied]);
|
|
55
|
-
return copied ? (
|
|
55
|
+
return copied ? (jsx_runtime_1.jsx("span", { style: copiedStyle, children: checkSvg })) : (jsx_runtime_1.jsx("button", { type: "button", onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, style: buttonStyle, onClick: () => {
|
|
56
56
|
navigator.clipboard.writeText(valueToCopy);
|
|
57
57
|
setCopied(true);
|
|
58
58
|
}, children: clipboardIcon }));
|
|
@@ -24,22 +24,18 @@ const right = {
|
|
|
24
24
|
textAlign: 'right',
|
|
25
25
|
flex: 1,
|
|
26
26
|
};
|
|
27
|
-
const RenderingProgress = ({ renderedFrames, totalFrames }) => {
|
|
28
|
-
const done = renderedFrames === totalFrames;
|
|
29
|
-
const progress = totalFrames > 0 ? renderedFrames / totalFrames : 0;
|
|
30
|
-
return ((0, jsx_runtime_1.jsxs)("div", { style: progressItem, children: [done ? (0, jsx_runtime_1.jsx)(SuccessIcon_1.SuccessIcon, {}) : (0, jsx_runtime_1.jsx)(CircularProgress_1.CircularProgress, { progress: progress }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 }), (0, jsx_runtime_1.jsx)("div", { style: label, children: done
|
|
31
|
-
? `Rendered ${totalFrames} frames`
|
|
32
|
-
: `Rendering ${renderedFrames} / ${totalFrames} frames` })] }));
|
|
33
|
-
};
|
|
34
27
|
const EncodingProgress = ({ encodedFrames, totalFrames }) => {
|
|
35
28
|
const done = encodedFrames === totalFrames;
|
|
36
29
|
const progress = totalFrames > 0 ? encodedFrames / totalFrames : 0;
|
|
37
|
-
return (
|
|
30
|
+
return (jsx_runtime_1.jsxs("div", { style: progressItem, children: [done ? jsx_runtime_1.jsx(SuccessIcon_1.SuccessIcon, {}) : jsx_runtime_1.jsx(CircularProgress_1.CircularProgress, { progress: progress }), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx("div", { style: label, children: done
|
|
38
31
|
? `Encoded ${totalFrames} frames`
|
|
39
|
-
: `Encoding ${encodedFrames} / ${totalFrames} frames` })
|
|
32
|
+
: `Encoding ${encodedFrames} / ${totalFrames} frames` })
|
|
33
|
+
] }));
|
|
40
34
|
};
|
|
41
35
|
const DoneStatus = ({ job }) => {
|
|
42
|
-
return (
|
|
36
|
+
return (jsx_runtime_1.jsxs("div", { style: progressItem, children: [
|
|
37
|
+
jsx_runtime_1.jsx(SuccessIcon_1.SuccessIcon, {}), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx("div", { style: label, children: job.outName }), jsx_runtime_1.jsx("div", { style: right, children: (0, studio_shared_1.formatBytes)(job.metadata.sizeInBytes) })
|
|
38
|
+
] }));
|
|
43
39
|
};
|
|
44
40
|
const ClientRenderProgress = ({ job }) => {
|
|
45
41
|
if (job.status === 'idle' ||
|
|
@@ -48,12 +44,18 @@ const ClientRenderProgress = ({ job }) => {
|
|
|
48
44
|
throw new Error('This component should not be rendered when the job is idle, failed, or cancelled');
|
|
49
45
|
}
|
|
50
46
|
if (job.status === 'done') {
|
|
51
|
-
return (
|
|
47
|
+
return (jsx_runtime_1.jsxs("div", { children: [
|
|
48
|
+
jsx_runtime_1.jsx(layout_1.Spacing, { y: 0.5 }), jsx_runtime_1.jsx(DoneStatus, { job: job }), jsx_runtime_1.jsx(layout_1.Spacing, { y: 1 })
|
|
49
|
+
] }));
|
|
52
50
|
}
|
|
53
51
|
if (job.status === 'saving') {
|
|
54
|
-
return (
|
|
52
|
+
return (jsx_runtime_1.jsxs("div", { children: [
|
|
53
|
+
jsx_runtime_1.jsx(layout_1.Spacing, { y: 0.5 }), jsx_runtime_1.jsx("div", { style: label, children: "Saving to out/..." }), jsx_runtime_1.jsx(layout_1.Spacing, { y: 1 })
|
|
54
|
+
] }));
|
|
55
55
|
}
|
|
56
|
-
const {
|
|
57
|
-
return (
|
|
56
|
+
const { encodedFrames, totalFrames } = job.progress;
|
|
57
|
+
return (jsx_runtime_1.jsxs("div", { children: [
|
|
58
|
+
jsx_runtime_1.jsx(layout_1.Spacing, { y: 0.5 }), job.type === 'client-video' && (jsx_runtime_1.jsx(EncodingProgress, { encodedFrames: encodedFrames, totalFrames: totalFrames })), jsx_runtime_1.jsx(layout_1.Spacing, { y: 1 })
|
|
59
|
+
] }));
|
|
58
60
|
};
|
|
59
61
|
exports.ClientRenderProgress = ClientRenderProgress;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import type { Codec } from '@remotion/renderer';
|
|
2
1
|
import type { AvailableOptions } from '@remotion/renderer/client';
|
|
3
|
-
export declare const useCrfState: (codec:
|
|
2
|
+
export declare const useCrfState: (codec: "aac" | "gif" | "h264" | "h264-mkv" | "h264-ts" | "h265" | "mp3" | "prores" | "vp8" | "vp9" | "wav") => {
|
|
4
3
|
crf: number | null;
|
|
5
4
|
setCrf: import("react").Dispatch<import("react").SetStateAction<number>>;
|
|
6
5
|
minCrf: number;
|
|
@@ -41,6 +41,6 @@ const useCrfState = (codec) => {
|
|
|
41
41
|
};
|
|
42
42
|
exports.useCrfState = useCrfState;
|
|
43
43
|
const CrfSetting = ({ crf, setCrf, min, max, option }) => {
|
|
44
|
-
return (
|
|
44
|
+
return (jsx_runtime_1.jsx(NumberSetting_1.NumberSetting, { min: min, max: max, name: "CRF", onValueChanged: setCrf, value: crf, step: 1, hint: option }));
|
|
45
45
|
};
|
|
46
46
|
exports.CrfSetting = CrfSetting;
|
|
@@ -291,13 +291,15 @@ const DataEditor = ({ unresolvedComposition, defaultProps, setDefaultProps, mayS
|
|
|
291
291
|
serializedJSON,
|
|
292
292
|
]);
|
|
293
293
|
if (connectionStatus === 'disconnected') {
|
|
294
|
-
return (
|
|
294
|
+
return (jsx_runtime_1.jsxs("div", { style: explainer, children: [
|
|
295
|
+
jsx_runtime_1.jsx(layout_1.Spacing, { y: 5 }), jsx_runtime_1.jsx("div", { style: errorExplanation, children: "The studio server has disconnected. Reconnect to edit the schema." }), jsx_runtime_1.jsx(layout_1.Spacing, { y: 2, block: true })
|
|
296
|
+
] }));
|
|
295
297
|
}
|
|
296
298
|
if (schema === 'no-zod') {
|
|
297
|
-
return
|
|
299
|
+
return jsx_runtime_1.jsx(SchemaErrorMessages_1.ZodNotInstalled, {});
|
|
298
300
|
}
|
|
299
301
|
if (schema === 'no-schema') {
|
|
300
|
-
return
|
|
302
|
+
return jsx_runtime_1.jsx(SchemaErrorMessages_1.NoSchemaDefined, {});
|
|
301
303
|
}
|
|
302
304
|
if (!z) {
|
|
303
305
|
throw new Error('expected zod');
|
|
@@ -312,13 +314,18 @@ const DataEditor = ({ unresolvedComposition, defaultProps, setDefaultProps, mayS
|
|
|
312
314
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
313
315
|
const typeName = def.typeName;
|
|
314
316
|
if (typeName === z.ZodFirstPartyTypeKind.ZodAny) {
|
|
315
|
-
return
|
|
317
|
+
return jsx_runtime_1.jsx(SchemaErrorMessages_1.NoSchemaDefined, {});
|
|
316
318
|
}
|
|
317
319
|
if (!unresolvedComposition.defaultProps) {
|
|
318
|
-
return
|
|
320
|
+
return jsx_runtime_1.jsx(SchemaErrorMessages_1.NoDefaultProps, {});
|
|
319
321
|
}
|
|
320
|
-
return (
|
|
321
|
-
|
|
322
|
-
|
|
322
|
+
return (jsx_runtime_1.jsxs("div", { style: outer, children: [
|
|
323
|
+
jsx_runtime_1.jsxs("div", { style: controlContainer, children: [
|
|
324
|
+
jsx_runtime_1.jsxs("div", { style: tabWrapper, children: [
|
|
325
|
+
jsx_runtime_1.jsx(SegmentedControl_1.SegmentedControl, { items: modeItems, needsWrapping: false }), jsx_runtime_1.jsx(layout_1.Flex, {}), warnings.length > 0 ? (jsx_runtime_1.jsx(WarningIndicatorButton_1.WarningIndicatorButton, { setShowWarning: setShowWarning, showWarning: showWarning, warningCount: warnings.length })) : null] }), showWarning && warnings.length > 0
|
|
326
|
+
? warnings.map((warning) => (jsx_runtime_1.jsxs(react_1.default.Fragment, { children: [
|
|
327
|
+
jsx_runtime_1.jsx(layout_1.Spacing, { y: 1 }), jsx_runtime_1.jsx(ValidationMessage_1.ValidationMessage, { message: warning, align: "flex-start", type: "warning" })
|
|
328
|
+
] }, warning)))
|
|
329
|
+
: null] }), mode === 'schema' ? (jsx_runtime_1.jsx(SchemaEditor_1.SchemaEditor, { unsavedDefaultProps: defaultProps, setValue: setDefaultProps, schema: schema, zodValidationResult: zodValidationResult, savedDefaultProps: unresolvedComposition.defaultProps, onSave: onSave, showSaveButton: showSaveButton, saving: saving, saveDisabledByParent: !zodValidationResult.success })) : (jsx_runtime_1.jsx(RenderModalJSONPropsEditor_1.RenderModalJSONPropsEditor, { value: defaultProps !== null && defaultProps !== void 0 ? defaultProps : {}, setValue: setDefaultProps, onSave: onUpdate, showSaveButton: showSaveButton, serializedJSON: serializedJSON, defaultProps: unresolvedComposition.defaultProps, schema: schema }))] }));
|
|
323
330
|
};
|
|
324
331
|
exports.DataEditor = DataEditor;
|
|
@@ -11,6 +11,10 @@ const EnforceAudioTrackSetting = ({ enforceAudioTrack, muted, setEnforceAudioTra
|
|
|
11
11
|
const onEnforceAudioTrackChanged = (0, react_1.useCallback)((e) => {
|
|
12
12
|
setEnforceAudioTrack(e.target.checked);
|
|
13
13
|
}, [setEnforceAudioTrack]);
|
|
14
|
-
return (
|
|
14
|
+
return (jsx_runtime_1.jsxs("div", { style: layout_2.optionRow, children: [
|
|
15
|
+
jsx_runtime_1.jsxs("div", { style: layout_2.label, children: ["Enforce Audio Track",
|
|
16
|
+
jsx_runtime_1.jsx(layout_1.Spacing, { x: 0.5 }), jsx_runtime_1.jsx(OptionExplainerBubble_1.OptionExplainerBubble, { id: "enforceAudioOption" })
|
|
17
|
+
] }), jsx_runtime_1.jsx("div", { style: layout_2.rightRow, children: jsx_runtime_1.jsx(Checkbox_1.Checkbox, { disabled: muted && !enforceAudioTrack, checked: enforceAudioTrack, onChange: onEnforceAudioTrackChanged, name: "enforce-audio-track" }) })
|
|
18
|
+
] }));
|
|
15
19
|
};
|
|
16
20
|
exports.EnforceAudioTrackSetting = EnforceAudioTrackSetting;
|
|
@@ -79,6 +79,9 @@ const EnvInput = ({ onEnvKeyChange, onEnvValChange, envKey, envVal, onDelete, in
|
|
|
79
79
|
setValueWarningEligible(true);
|
|
80
80
|
}, []);
|
|
81
81
|
const isNodeEnvKey = envKey.trim() === 'NODE_ENV';
|
|
82
|
-
return (
|
|
82
|
+
return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
83
|
+
jsx_runtime_1.jsxs(layout_1.Row, { align: "center", style: layout_2.optionRow, children: [
|
|
84
|
+
jsx_runtime_1.jsx(RemInput_1.RemotionInput, { status: isNodeEnvKey || isDuplicate || isKeyMissing ? 'warning' : 'ok', type: "text", placeholder: "Key", style: input, value: envKey, onBlur: makeKeyWarningEligible, autoFocus: autoFocus, onChange: handleKeyChange, rightAlign: false }), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx(RemInput_1.RemotionInput, { status: isValMissing ? 'warning' : 'ok', placeholder: "Value", type: showInPlainText ? 'text' : 'password', style: input, value: envVal, onBlur: makeValueWarningEligible, onChange: handleValueChange, rightAlign: false }), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1.5 }), jsx_runtime_1.jsx(InlineEyeIcon_1.InlineEyeButton, { enabled: !showInPlainText, onClick: togglePlainText }), jsx_runtime_1.jsx(InlineRemoveButton_1.InlineRemoveButton, { onClick: handleDelete })
|
|
85
|
+
] }), isNodeEnvKey ? (jsx_runtime_1.jsx("div", { style: validationStyle, children: jsx_runtime_1.jsx(ValidationMessage_1.ValidationMessage, { align: "flex-start", type: "warning", message: "NODE_ENV will be overwritten by Remotion during the render process." }) })) : null, isDuplicate ? (jsx_runtime_1.jsx("div", { style: validationStyle, children: jsx_runtime_1.jsx(ValidationMessage_1.ValidationMessage, { align: "flex-start", type: "warning", message: `${envKey.toUpperCase()} is already defined.` }) })) : null, isKeyMissing ? (jsx_runtime_1.jsx("div", { style: validationStyle, children: jsx_runtime_1.jsx(ValidationMessage_1.ValidationMessage, { align: "flex-start", type: "warning", message: "Key is missing." }) })) : null, isValMissing ? (jsx_runtime_1.jsx("div", { style: validationStyle, children: jsx_runtime_1.jsx(ValidationMessage_1.ValidationMessage, { align: "flex-start", type: "warning", message: "Value is missing." }) })) : null] }));
|
|
83
86
|
};
|
|
84
87
|
exports.EnvInput = EnvInput;
|
|
@@ -22,6 +22,10 @@ const FrameRangeSetting = ({ startFrame, endFrame, setEndFrame, durationInFrames
|
|
|
22
22
|
const onEndFrameChanged = (0, react_1.useCallback)((newVal) => {
|
|
23
23
|
onEndFrameChangedDirectly(parseInt(newVal, 10));
|
|
24
24
|
}, [onEndFrameChangedDirectly]);
|
|
25
|
-
return (
|
|
25
|
+
return (jsx_runtime_1.jsxs("div", { style: layout_1.optionRow, children: [
|
|
26
|
+
jsx_runtime_1.jsx("div", { style: layout_1.label, children: "Frame range" }), jsx_runtime_1.jsxs("div", { style: layout_1.rightRow, children: [
|
|
27
|
+
jsx_runtime_1.jsx("div", { style: { width: INPUT_WIDTH }, children: jsx_runtime_1.jsx(InputDragger_1.InputDragger, { min: minStartFrame, max: endFrame - 1, name: "Start frame", value: startFrame, step: 1, onTextChange: onStartFrameChanged, onValueChange: onStartFrameChangedDirectly, status: "ok", rightAlign: true, style: { width: INPUT_WIDTH } }) }), jsx_runtime_1.jsx(MultiRangeSlider_1.MultiRangeSlider, { min: minStartFrame, max: maxEndFrame, start: startFrame, end: endFrame, step: 1, onLeftThumbDrag: onStartFrameChangedDirectly, onRightThumbDrag: onEndFrameChangedDirectly }), ' ', jsx_runtime_1.jsx("div", { style: { width: INPUT_WIDTH }, children: jsx_runtime_1.jsx(InputDragger_1.InputDragger, { min: startFrame + 1, max: maxEndFrame, name: "End frame", value: endFrame, step: 1, onTextChange: onEndFrameChanged, onValueChange: onEndFrameChangedDirectly, status: "ok", rightAlign: true, style: { width: INPUT_WIDTH } }) })
|
|
28
|
+
] })
|
|
29
|
+
] }));
|
|
26
30
|
};
|
|
27
31
|
exports.FrameRangeSetting = FrameRangeSetting;
|
|
@@ -27,24 +27,24 @@ const right = {
|
|
|
27
27
|
flex: 1,
|
|
28
28
|
};
|
|
29
29
|
const BundlingProgress = ({ progress, doneIn }) => {
|
|
30
|
-
return (
|
|
30
|
+
return (jsx_runtime_1.jsxs("div", { style: progressItem, children: [progress === 1 ? (jsx_runtime_1.jsx(SuccessIcon_1.SuccessIcon, {})) : (jsx_runtime_1.jsx(CircularProgress_1.CircularProgress, { progress: progress })), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx("div", { style: label, children: progress === 1 ? 'Bundled' : `Bundling ${progress * 100}%` }), doneIn ? jsx_runtime_1.jsxs("div", { style: right, children: [doneIn, "ms"] }) : null] }));
|
|
31
31
|
};
|
|
32
32
|
const BrowserSetupProgress = ({ progress, doneIn, startedBundling, alreadyAvailable }) => {
|
|
33
|
-
return (
|
|
33
|
+
return (jsx_runtime_1.jsxs("div", { style: progressItem, children: [progress === 1 || alreadyAvailable ? (jsx_runtime_1.jsx(SuccessIcon_1.SuccessIcon, {})) : (jsx_runtime_1.jsx(CircularProgress_1.CircularProgress, { progress: progress })), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx("div", { style: label, children: alreadyAvailable && startedBundling
|
|
34
34
|
? 'Headless browser already available'
|
|
35
35
|
: progress === 1
|
|
36
36
|
? 'Downloaded Headless Shell'
|
|
37
|
-
: `Downloading Headless Shell ${Math.round(progress * 100)}%` }), doneIn ?
|
|
37
|
+
: `Downloading Headless Shell ${Math.round(progress * 100)}%` }), doneIn ? jsx_runtime_1.jsxs("div", { style: right, children: [doneIn, "ms"] }) : null] }));
|
|
38
38
|
};
|
|
39
39
|
const RenderingProgress = ({ progress }) => {
|
|
40
|
-
return (
|
|
40
|
+
return (jsx_runtime_1.jsxs("div", { style: progressItem, children: [progress.frames === progress.totalFrames ? (jsx_runtime_1.jsx(SuccessIcon_1.SuccessIcon, {})) : (jsx_runtime_1.jsx(CircularProgress_1.CircularProgress, { progress: progress.frames / progress.totalFrames })), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx("div", { style: label, children: progress.doneIn
|
|
41
41
|
? `Rendered ${progress.totalFrames} frames`
|
|
42
|
-
: `Rendering ${progress.frames} / ${progress.totalFrames} frames` }), progress.doneIn ?
|
|
42
|
+
: `Rendering ${progress.frames} / ${progress.totalFrames} frames` }), progress.doneIn ? jsx_runtime_1.jsxs("div", { style: right, children: [progress.doneIn, "ms"] }) : null] }));
|
|
43
43
|
};
|
|
44
44
|
const StitchingProgress = ({ progress }) => {
|
|
45
|
-
return (
|
|
45
|
+
return (jsx_runtime_1.jsxs("div", { style: progressItem, children: [progress.frames === progress.totalFrames ? (jsx_runtime_1.jsx(SuccessIcon_1.SuccessIcon, {})) : (jsx_runtime_1.jsx(CircularProgress_1.CircularProgress, { progress: progress.frames / progress.totalFrames })), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx("div", { style: label, children: progress.doneIn
|
|
46
46
|
? `Encoded ${progress.totalFrames} frames`
|
|
47
|
-
: `Encoding ${progress.frames} / ${progress.totalFrames} frames` }), progress.doneIn ?
|
|
47
|
+
: `Encoding ${progress.frames} / ${progress.totalFrames} frames` }), progress.doneIn ? jsx_runtime_1.jsxs("div", { style: right, children: [progress.doneIn, "ms"] }) : null] }));
|
|
48
48
|
};
|
|
49
49
|
const DownloadsProgress = ({ downloads }) => {
|
|
50
50
|
const allHaveProgress = downloads.every((a) => a.totalBytes);
|
|
@@ -57,7 +57,8 @@ const DownloadsProgress = ({ downloads }) => {
|
|
|
57
57
|
const progress = allHaveProgress
|
|
58
58
|
? downloaded / totalBytes
|
|
59
59
|
: 0.1;
|
|
60
|
-
return (
|
|
60
|
+
return (jsx_runtime_1.jsxs("div", { style: progressItem, children: [progress === 1 ? (jsx_runtime_1.jsx(SuccessIcon_1.SuccessIcon, {})) : (jsx_runtime_1.jsx(CircularProgress_1.CircularProgress, { progress: progress })), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsxs("div", { style: label, children: ["Downloading ", downloads.length, " file", downloads.length === 1 ? '' : 's'] })
|
|
61
|
+
] }));
|
|
61
62
|
};
|
|
62
63
|
const OpenFile = ({ job }) => {
|
|
63
64
|
const labelStyle = (0, react_1.useMemo)(() => {
|
|
@@ -74,12 +75,16 @@ const OpenFile = ({ job }) => {
|
|
|
74
75
|
const onClick = (0, react_1.useCallback)(() => {
|
|
75
76
|
(0, actions_1.openInFileExplorer)({ directory: job.outName });
|
|
76
77
|
}, [job.outName]);
|
|
77
|
-
return (
|
|
78
|
+
return (jsx_runtime_1.jsxs("div", { style: progressItem, children: [
|
|
79
|
+
jsx_runtime_1.jsx(SuccessIcon_1.SuccessIcon, {}), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx("button", { style: labelStyle, type: "button", onClick: onClick, children: job.outName }), jsx_runtime_1.jsx("div", { style: right, children: jsx_runtime_1.jsx(RenderQueueOpenInFolder_1.RenderQueueOpenInFinderItem, { job: job }) })
|
|
80
|
+
] }));
|
|
78
81
|
};
|
|
79
82
|
const GuiRenderStatus = ({ job }) => {
|
|
80
83
|
if (job.status === 'idle' || job.status === 'failed') {
|
|
81
84
|
throw new Error('This component should not be rendered when the job is idle');
|
|
82
85
|
}
|
|
83
|
-
return (
|
|
86
|
+
return (jsx_runtime_1.jsxs("div", { children: [
|
|
87
|
+
jsx_runtime_1.jsx(layout_1.Spacing, { y: 0.5 }), jsx_runtime_1.jsx(BrowserSetupProgress, { ...job.progress.browser, startedBundling: Boolean(job.progress.bundling) }), job.progress.bundling && (jsx_runtime_1.jsx(BundlingProgress, { progress: job.progress.bundling.progress, doneIn: job.progress.bundling.doneIn })), job.progress.rendering ? (jsx_runtime_1.jsx(RenderingProgress, { progress: job.progress.rendering })) : null, job.progress.stitching ? (jsx_runtime_1.jsx(StitchingProgress, { progress: job.progress.stitching })) : null, job.progress.downloads.length > 0 ? (jsx_runtime_1.jsx(DownloadsProgress, { downloads: job.progress.downloads })) : null, job.status === 'done' ? jsx_runtime_1.jsx(OpenFile, { job: job }) : null, jsx_runtime_1.jsx(layout_1.Spacing, { y: 1 })
|
|
88
|
+
] }));
|
|
84
89
|
};
|
|
85
90
|
exports.GuiRenderStatus = GuiRenderStatus;
|
|
@@ -110,8 +110,9 @@ const InfoBubble = ({ title, children }) => {
|
|
|
110
110
|
padding: 6,
|
|
111
111
|
};
|
|
112
112
|
}, []);
|
|
113
|
-
return (
|
|
114
|
-
|
|
113
|
+
return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
114
|
+
jsx_runtime_1.jsx("button", { ref: ref, tabIndex: tabIndex, style: style, title: title, type: "button", children: jsx_runtime_1.jsx("svg", { style: icon, viewBox: "0 0 512 512", children: jsx_runtime_1.jsx("path", { fill: hovered ? 'white' : colors_1.LIGHT_TEXT, d: "M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24h-8V248c0-13.3-10.7-24-24-24H216c-13.3 0-24 10.7-24 24s10.7 24 24 24h24v64H216zm40-144a32 32 0 1 0 0-64 32 32 0 1 0 0 64z" }) }) }), portalStyle
|
|
115
|
+
? react_dom_1.default.createPortal(jsx_runtime_1.jsx("div", { style: styles_1.outerPortal, className: "css-reset", children: jsx_runtime_1.jsx(z_index_1.HigherZIndex, { onOutsideClick: onHide, onEscape: onHide, children: jsx_runtime_1.jsx("div", { style: portalStyle, children: jsx_runtime_1.jsx(InfoTooltip_1.InfoTooltip, { backgroundColor: colors_1.INPUT_BACKGROUND, arrowDirection: layout, children: children }) }) }) }), (0, portals_1.getPortal)(currentZIndex))
|
|
115
116
|
: null] }));
|
|
116
117
|
};
|
|
117
118
|
exports.InfoBubble = InfoBubble;
|
|
@@ -32,10 +32,11 @@ const InfoTooltip = ({ children, arrowDirection, backgroundColor }) => {
|
|
|
32
32
|
borderRadius: '4px',
|
|
33
33
|
};
|
|
34
34
|
}, [arrowDirection, backgroundColor]);
|
|
35
|
-
return (
|
|
35
|
+
return (jsx_runtime_1.jsxs("div", { style: {
|
|
36
36
|
display: 'flex',
|
|
37
37
|
flexDirection: arrowDirection === 'up' ? 'column-reverse' : 'column',
|
|
38
38
|
alignItems: 'flex-start',
|
|
39
|
-
}, children: [
|
|
39
|
+
}, children: [
|
|
40
|
+
jsx_runtime_1.jsx("div", { style: container, className: is_menu_item_1.VERTICAL_SCROLLBAR_CLASSNAME, children: children }), arrowDirection === 'down' ? (jsx_runtime_1.jsx("svg", { viewBox: "0 0 14 7", style: arrowDown, children: jsx_runtime_1.jsx("path", { d: `M 14 0 L 7 7 L 0 0`, fill: backgroundColor, strokeLinecap: "butt", stroke: colors_1.BORDER_COLOR, strokeWidth: 0.5 }) })) : null, arrowDirection === 'up' ? (jsx_runtime_1.jsx("svg", { viewBox: "0 0 14 7", style: arrowUp, children: jsx_runtime_1.jsx("path", { d: `M 0 7 L 7 0 L 14 7`, fill: backgroundColor, strokeLinecap: "butt", stroke: colors_1.BORDER_COLOR, strokeWidth: 0.5 }) })) : null] }));
|
|
40
41
|
};
|
|
41
42
|
exports.InfoTooltip = InfoTooltip;
|
|
@@ -10,8 +10,8 @@ const clearIcon = {
|
|
|
10
10
|
};
|
|
11
11
|
const InlineEyeButton = ({ onClick, enabled }) => {
|
|
12
12
|
const renderAction = (0, react_1.useCallback)((color) => {
|
|
13
|
-
return enabled ? (
|
|
13
|
+
return enabled ? (jsx_runtime_1.jsx("svg", { style: clearIcon, viewBox: "0 0 640 512", children: jsx_runtime_1.jsx("path", { fill: color, d: "M25.9 3.4C19-2 8.9-.8 3.4 6.1S-.8 23.1 6.1 28.6l608 480c6.9 5.5 17 4.3 22.5-2.6s4.3-17-2.6-22.5L25.9 3.4zM605.5 268.3c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-51.2 0-96 14.8-133.9 36.8l27.3 21.5C244.6 74.2 280.2 64 320 64c70.4 0 127.7 32 170.8 72c43.1 40 71.9 88 85.2 120c-9.2 22.1-25.9 52-49.5 81.5l25.1 19.8c25.6-32 43.7-64.4 53.9-89zM88.4 154.7c-25.6 32-43.7 64.4-53.9 89c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c51.2 0 96-14.8 133.9-36.8l-27.3-21.5C395.4 437.8 359.8 448 320 448c-70.4 0-127.7-32-170.8-72C106.1 336 77.3 288 64 256c9.2-22.1 25.9-52 49.5-81.5L88.4 154.7zM320 384c16.7 0 32.7-3.2 47.4-9.1l-30.9-24.4c-5.4 .9-10.9 1.4-16.5 1.4c-51 0-92.8-39.8-95.8-90.1l-30.9-24.4c-.9 6-1.3 12.2-1.3 18.5c0 70.7 57.3 128 128 128zM448 256c0-70.7-57.3-128-128-128c-16.7 0-32.7 3.2-47.4 9.1l30.9 24.4c5.4-.9 10.9-1.4 16.5-1.4c51 0 92.8 39.8 95.8 90.1l30.9 24.4c.9-6 1.3-12.2 1.3-18.5z" }) })) : (jsx_runtime_1.jsx("svg", { style: clearIcon, viewBox: "0 0 576 512", children: jsx_runtime_1.jsx("path", { fill: color, d: "M117.2 136C160.3 96 217.6 64 288 64s127.7 32 170.8 72c43.1 40 71.9 88 85.2 120c-13.3 32-42.1 80-85.2 120c-43.1 40-100.4 72-170.8 72s-127.7-32-170.8-72C74.1 336 45.3 288 32 256c13.3-32 42.1-80 85.2-120zM288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM192 256a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zm224 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z" }) }));
|
|
14
14
|
}, [enabled]);
|
|
15
|
-
return
|
|
15
|
+
return jsx_runtime_1.jsx(InlineAction_1.InlineAction, { renderAction: renderAction, onClick: onClick });
|
|
16
16
|
};
|
|
17
17
|
exports.InlineEyeButton = InlineEyeButton;
|
|
@@ -10,8 +10,8 @@ const clearIcon = {
|
|
|
10
10
|
};
|
|
11
11
|
const InlineRemoveButton = ({ onClick }) => {
|
|
12
12
|
const renderAction = (0, react_1.useCallback)((color) => {
|
|
13
|
-
return (
|
|
13
|
+
return (jsx_runtime_1.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 320 512", style: clearIcon, children: jsx_runtime_1.jsx("path", { d: "M310.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 210.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L114.7 256 9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 301.3 265.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L205.3 256 310.6 150.6z", fill: color }) }));
|
|
14
14
|
}, []);
|
|
15
|
-
return
|
|
15
|
+
return jsx_runtime_1.jsx(InlineAction_1.InlineAction, { renderAction: renderAction, onClick: onClick });
|
|
16
16
|
};
|
|
17
17
|
exports.InlineRemoveButton = InlineRemoveButton;
|
|
@@ -6,6 +6,6 @@ const NumberSetting_1 = require("./NumberSetting");
|
|
|
6
6
|
const MIN_JPEG_QUALITY = 1;
|
|
7
7
|
const MAX_JPEG_QUALITY = 100;
|
|
8
8
|
const JpegQualitySetting = ({ jpegQuality, setJpegQuality }) => {
|
|
9
|
-
return (
|
|
9
|
+
return (jsx_runtime_1.jsx(NumberSetting_1.NumberSetting, { min: MIN_JPEG_QUALITY, max: MAX_JPEG_QUALITY, step: 1, name: "JPEG Quality", onValueChanged: setJpegQuality, value: jpegQuality, hint: 'jpegQualityOption' }));
|
|
10
10
|
};
|
|
11
11
|
exports.JpegQualitySetting = JpegQualitySetting;
|
|
@@ -42,6 +42,8 @@ const MultiRangeSlider = ({ min, max, start, end, step, onLeftThumbDrag, onRight
|
|
|
42
42
|
const value = Math.max(Number(event.target.value), start + 1);
|
|
43
43
|
onRightThumbDrag(value);
|
|
44
44
|
}, [onRightThumbDrag, start]);
|
|
45
|
-
return (
|
|
45
|
+
return (jsx_runtime_1.jsxs("div", { style: container, children: [
|
|
46
|
+
jsx_runtime_1.jsx("input", { type: "range", min: min, max: max, value: start, step: step, onChange: onChangeLeft, className: "__remotion_thumb" }), jsx_runtime_1.jsx("input", { type: "range", min: min, max: max, value: end, step: step, onChange: onChangeRight, className: "__remotion_thumb" }), jsx_runtime_1.jsx("div", { style: rangeStyle })
|
|
47
|
+
] }));
|
|
46
48
|
};
|
|
47
49
|
exports.MultiRangeSlider = MultiRangeSlider;
|
|
@@ -11,6 +11,10 @@ const MutedSetting = ({ muted, setMuted, enforceAudioTrack }) => {
|
|
|
11
11
|
const onMutedChanged = (0, react_1.useCallback)((e) => {
|
|
12
12
|
setMuted(e.target.checked);
|
|
13
13
|
}, [setMuted]);
|
|
14
|
-
return (
|
|
14
|
+
return (jsx_runtime_1.jsxs("div", { style: layout_2.optionRow, children: [
|
|
15
|
+
jsx_runtime_1.jsxs("div", { style: layout_2.label, children: ["Muted",
|
|
16
|
+
jsx_runtime_1.jsx(layout_1.Spacing, { x: 0.5 }), jsx_runtime_1.jsx(OptionExplainerBubble_1.OptionExplainerBubble, { id: "mutedOption" })
|
|
17
|
+
] }), jsx_runtime_1.jsx(layout_1.Spacing, { x: 0.25 }), jsx_runtime_1.jsx("div", { style: layout_2.rightRow, children: jsx_runtime_1.jsx(Checkbox_1.Checkbox, { checked: muted, disabled: enforceAudioTrack && !muted, onChange: onMutedChanged, name: "muted" }) })
|
|
18
|
+
] }));
|
|
15
19
|
};
|
|
16
20
|
exports.MutedSetting = MutedSetting;
|
|
@@ -21,6 +21,8 @@ const NumberOfLoopsSetting = ({ numberOfGifLoops, setNumberOfGifLoops }) => {
|
|
|
21
21
|
return newConcurrencyClamped;
|
|
22
22
|
});
|
|
23
23
|
}, [setNumberOfGifLoops]);
|
|
24
|
-
return (
|
|
24
|
+
return (jsx_runtime_1.jsxs("div", { style: layout_1.optionRow, children: [
|
|
25
|
+
jsx_runtime_1.jsx("div", { style: layout_1.label, children: "Number of loops" }), jsx_runtime_1.jsx("div", { style: layout_1.rightRow, children: jsx_runtime_1.jsx(RemInput_1.RightAlignInput, { children: jsx_runtime_1.jsx(InputDragger_1.InputDragger, { value: numberOfGifLoops, onTextChange: onNumberOfGifLoopsChanged, placeholder: `${min}-`, onValueChange: onNumberOfGifLoopsChangedDirectly, name: "number-of-gif-loops", step: 1, min: min, status: "ok", rightAlign: true }) }) })
|
|
26
|
+
] }));
|
|
25
27
|
};
|
|
26
28
|
exports.NumberOfLoopsSetting = NumberOfLoopsSetting;
|
|
@@ -21,8 +21,12 @@ const NumberSetting = ({ name, value, step, hint, onValueChanged, max, min, form
|
|
|
21
21
|
const onValueChange = (0, react_1.useCallback)((newConcurrency) => {
|
|
22
22
|
onValueChanged(newConcurrency);
|
|
23
23
|
}, [onValueChanged]);
|
|
24
|
-
return (
|
|
24
|
+
return (jsx_runtime_1.jsxs("div", { style: layout_2.optionRow, children: [
|
|
25
|
+
jsx_runtime_1.jsxs("div", { style: layout_2.label, children: [name, hint ? (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
26
|
+
jsx_runtime_1.jsx(layout_1.Spacing, { x: 0.5 }), jsx_runtime_1.jsx(OptionExplainerBubble_1.OptionExplainerBubble, { id: hint })
|
|
27
|
+
] })) : null] }), jsx_runtime_1.jsx("div", { style: layout_2.rightRow, children: jsx_runtime_1.jsx(RemInput_1.RightAlignInput, { children: jsx_runtime_1.jsx(InputDragger_1.InputDragger, { value: value, name: name.toLowerCase(), onTextChange: onTextChanged, onValueChange: onValueChange, step: step, placeholder: [min, max]
|
|
25
28
|
.map((f) => (f !== null && f !== undefined ? f : ''))
|
|
26
|
-
.join('-'), min: min, max: max, formatter: formatter, status: "ok", rightAlign: true }) }) })
|
|
29
|
+
.join('-'), min: min, max: max, formatter: formatter, status: "ok", rightAlign: true }) }) })
|
|
30
|
+
] }));
|
|
27
31
|
};
|
|
28
32
|
exports.NumberSetting = NumberSetting;
|
|
@@ -51,6 +51,19 @@ const copyWrapper = {
|
|
|
51
51
|
justifyContent: 'flex-end',
|
|
52
52
|
};
|
|
53
53
|
const OptionExplainer = ({ option }) => {
|
|
54
|
-
return (
|
|
54
|
+
return (jsx_runtime_1.jsxs("div", { style: container, className: "__remotion-info-button-container", children: [
|
|
55
|
+
jsx_runtime_1.jsxs("div", { style: padding, children: [
|
|
56
|
+
jsx_runtime_1.jsxs("div", { children: [
|
|
57
|
+
jsx_runtime_1.jsx("strong", { style: title, children: option.name }), option.docLink ? (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
58
|
+
jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx("a", { style: link, href: option.docLink, target: "_blank", children: "Docs" })
|
|
59
|
+
] })) : null] }), jsx_runtime_1.jsx("div", { style: description, children: option.description('ssr') })
|
|
60
|
+
] }), jsx_runtime_1.jsx(layout_1.Spacing, { y: 0.5, block: true }), jsx_runtime_1.jsx(MenuDivider_1.MenuDivider, {}), jsx_runtime_1.jsx(layout_1.Spacing, { y: 0.5, block: true }), jsx_runtime_1.jsxs("div", { children: [
|
|
61
|
+
jsx_runtime_1.jsxs("div", { style: infoRow, children: [
|
|
62
|
+
jsx_runtime_1.jsx("div", { style: infoRowLabel, children: "CLI flag" }), jsx_runtime_1.jsx("div", { style: flexSpacer }), jsx_runtime_1.jsxs("code", { children: ["--", option.cliFlag] }), jsx_runtime_1.jsx("div", { style: copyWrapper, children: jsx_runtime_1.jsx(CliCopyButton_1.CliCopyButton, { valueToCopy: option.cliFlag }) })
|
|
63
|
+
] }), option.ssrName ? (jsx_runtime_1.jsxs("div", { style: infoRow, children: [
|
|
64
|
+
jsx_runtime_1.jsx("div", { style: infoRowLabel, children: "Node.JS option" }), jsx_runtime_1.jsx("div", { style: flexSpacer }), jsx_runtime_1.jsx("code", { children: option.ssrName }), jsx_runtime_1.jsx(layout_1.Spacing, { x: 3.75 })
|
|
65
|
+
] })) : null, jsx_runtime_1.jsx("div", { style: infoRow })
|
|
66
|
+
] })
|
|
67
|
+
] }));
|
|
55
68
|
};
|
|
56
69
|
exports.OptionExplainer = OptionExplainer;
|
|
@@ -7,6 +7,6 @@ const InfoBubble_1 = require("./InfoBubble");
|
|
|
7
7
|
const OptionExplainer_1 = require("./OptionExplainer");
|
|
8
8
|
const OptionExplainerBubble = ({ id }) => {
|
|
9
9
|
const option = client_1.BrowserSafeApis.options[id];
|
|
10
|
-
return (
|
|
10
|
+
return (jsx_runtime_1.jsx(InfoBubble_1.InfoBubble, { title: "Learn more about this option", children: jsx_runtime_1.jsx(OptionExplainer_1.OptionExplainer, { option: option }) }));
|
|
11
11
|
};
|
|
12
12
|
exports.OptionExplainerBubble = OptionExplainerBubble;
|