@remotion/studio 4.0.515 → 4.0.517
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/restart-studio.js +4 -0
- package/dist/components/AssetSelector.js +4 -10
- package/dist/components/AssetSelectorItem.d.ts +2 -1
- package/dist/components/AssetSelectorItem.js +24 -29
- package/dist/components/Canvas.js +21 -15
- package/dist/components/CanvasCaptureDropHandler.d.ts +4 -0
- package/dist/components/CanvasCaptureDropHandler.js +42 -0
- package/dist/components/CanvasOrLoading.js +4 -3
- package/dist/components/CaptionInspector.d.ts +2 -0
- package/dist/components/CaptionInspector.js +3 -5
- package/dist/components/CheckboardToggle.js +1 -1
- package/dist/components/Checkbox.d.ts +0 -1
- package/dist/components/Checkbox.js +2 -19
- package/dist/components/CompositionSelector.js +6 -3
- package/dist/components/CompositionSelectorItem.js +9 -10
- package/dist/components/ConfigSelect.d.ts +17 -0
- package/dist/components/ConfigSelect.js +50 -0
- package/dist/components/ConfigureLicenseModal.js +79 -46
- package/dist/components/CurrentAsset.d.ts +10 -2
- package/dist/components/CurrentAsset.js +143 -45
- package/dist/components/Editor.js +2 -1
- package/dist/components/EditorContent.js +5 -2
- package/dist/components/EditorContexts.js +2 -1
- package/dist/components/EditorRuler/Ruler.d.ts +1 -0
- package/dist/components/EditorRuler/Ruler.js +9 -8
- package/dist/components/EditorRuler/index.d.ts +1 -0
- package/dist/components/EditorRuler/index.js +3 -4
- package/dist/components/EditorRuler/use-is-ruler-visible.d.ts +1 -1
- package/dist/components/EditorRuler/use-is-ruler-visible.js +8 -2
- package/dist/components/ElementLibraryModal.d.ts +5 -0
- package/dist/components/ElementLibraryModal.js +38 -0
- package/dist/components/FilePreview.js +71 -0
- package/dist/components/FixComputedValueModal.js +54 -51
- package/dist/components/GlobalKeybindings.js +5 -5
- package/dist/components/InlineAction.d.ts +1 -1
- package/dist/components/InlineAction.js +12 -2
- package/dist/components/InlineCaptionInspector.d.ts +2 -0
- package/dist/components/InlineCaptionInspector.js +2 -2
- package/dist/components/InlineCompositionName.js +1 -1
- package/dist/components/InlineEditableTitle.js +5 -4
- package/dist/components/InspectorInfoHeader.js +1 -1
- package/dist/components/InspectorOpenInEditor.js +48 -72
- package/dist/components/InspectorPanel/AlignmentControls.js +2 -3
- package/dist/components/InspectorPanel/CollapsibleInspectorSectionHeader.d.ts +7 -0
- package/dist/components/InspectorPanel/CollapsibleInspectorSectionHeader.js +39 -0
- package/dist/components/InspectorPanel/CompositionInspector.js +25 -45
- package/dist/components/InspectorPanel/CompositionInspectorHeader.js +2 -2
- package/dist/components/InspectorPanel/CompositionMetadata.js +11 -4
- package/dist/components/InspectorPanel/EasingInspector.js +2 -2
- package/dist/components/InspectorPanel/ElementLibraryButton.d.ts +2 -0
- package/dist/components/InspectorPanel/ElementLibraryButton.js +139 -0
- package/dist/components/InspectorPanel/KeyframeEasingNavigator.js +10 -4
- package/dist/components/InspectorPanel/KeyframeInspector.js +1 -1
- package/dist/components/InspectorPanel/SequenceInspectorHeader.js +14 -6
- package/dist/components/InspectorPanel/SequenceSelectionInspector.js +2 -7
- package/dist/components/InspectorPanel/common.d.ts +0 -13
- package/dist/components/InspectorPanel/common.js +6 -59
- package/dist/components/InspectorPanel/inspector-selection.d.ts +2 -2
- package/dist/components/InspectorPanel/styles.d.ts +0 -1
- package/dist/components/InspectorPanel/styles.js +3 -4
- package/dist/components/InspectorPanel/use-composition-actions.js +0 -1
- package/dist/components/InspectorPanel/use-track-for-selection.d.ts +1 -2
- package/dist/components/InspectorPanelLayout.d.ts +1 -1
- package/dist/components/InspectorPanelLayout.js +1 -1
- package/dist/components/InspectorSequenceSection.d.ts +1 -2
- package/dist/components/InspectorSequenceSection.js +40 -54
- package/dist/components/InspectorSourceLocation.js +1 -1
- package/dist/components/InstallPackage.d.ts +2 -1
- package/dist/components/InstallPackage.js +60 -30
- package/dist/components/InstallablePackage.js +37 -11
- package/dist/components/KeyboardShortcutsSettings.d.ts +2 -0
- package/dist/components/KeyboardShortcutsSettings.js +177 -0
- package/dist/components/Menu/MenuItem.js +15 -6
- package/dist/components/MenuBuildIndicator.js +1 -1
- package/dist/components/MenuToolbar.js +7 -3
- package/dist/components/Modals.js +7 -5
- package/dist/components/NewComposition/CodemodFooter.d.ts +0 -1
- package/dist/components/NewComposition/CodemodFooter.js +2 -8
- package/dist/components/NewComposition/DeleteComposition.js +1 -1
- package/dist/components/NewComposition/DeleteFolder.js +1 -1
- package/dist/components/NewComposition/DuplicateComposition.js +1 -1
- package/dist/components/NewComposition/InputDragger.js +27 -4
- package/dist/components/NewComposition/NewComposition.js +1 -1
- package/dist/components/NewComposition/NewFolder.js +1 -3
- package/dist/components/NewComposition/RenameComposition.js +1 -1
- package/dist/components/NewComposition/RenameFolder.js +1 -1
- package/dist/components/NewComposition/use-rename-static-file.js +1 -1
- package/dist/components/Notifications/NotificationCenter.d.ts +1 -0
- package/dist/components/Notifications/NotificationCenter.js +5 -0
- package/dist/components/OptionsPanel.js +9 -12
- package/dist/components/PlaybackRateSelector.js +1 -1
- package/dist/components/Preview.js +83 -5
- package/dist/components/PreviewToolbar.js +12 -3
- package/dist/components/PreviewToolbarOverflowButton.d.ts +1 -0
- package/dist/components/PreviewToolbarOverflowButton.js +39 -2
- package/dist/components/QuickSwitcher/ExplorerQuickSwitcherTrigger.js +2 -2
- package/dist/components/QuickSwitcher/QuickSwitcherContent.js +14 -30
- package/dist/components/RadioButton.d.ts +6 -0
- package/dist/components/RadioButton.js +62 -0
- package/dist/components/RenderButton.js +68 -184
- package/dist/components/RenderModal/DataEditor.js +15 -12
- package/dist/components/RenderModal/RenderStatusModal.js +0 -1
- package/dist/components/RenderModal/SchemaEditor/ZodSwitch.js +3 -1
- package/dist/components/RenderModal/SchemaEditor/infer-zod-schema-from-value.d.ts +15 -0
- package/dist/components/RenderModal/SchemaEditor/infer-zod-schema-from-value.js +95 -0
- package/dist/components/RenderQueue/RenderQueueRemoveItem.js +1 -6
- package/dist/components/RenderingSettings.js +7 -4
- package/dist/components/RulersAndGuidesToggle.d.ts +4 -0
- package/dist/components/RulersAndGuidesToggle.js +34 -0
- package/dist/components/SegmentedButton.d.ts +29 -0
- package/dist/components/SegmentedButton.js +226 -0
- package/dist/components/SelectedOutlineEditingHandles.d.ts +16 -0
- package/dist/components/SelectedOutlineEditingHandles.js +66 -0
- package/dist/components/SelectedOutlineElement.d.ts +2 -4
- package/dist/components/SelectedOutlineElement.js +15 -54
- package/dist/components/SelectedOutlineOverlay.js +32 -6
- package/dist/components/SelectedOutlinePolygon.d.ts +4 -6
- package/dist/components/SelectedOutlinePolygon.js +18 -16
- package/dist/components/SelectedOutlineRenderer.d.ts +1 -2
- package/dist/components/SelectedOutlineRenderer.js +66 -14
- package/dist/components/SelectedOutlineUvControls.d.ts +1 -1
- package/dist/components/SettingsModal.d.ts +1 -1
- package/dist/components/SettingsModal.js +30 -7
- package/dist/components/SettingsModalFooter.d.ts +3 -1
- package/dist/components/SettingsModalFooter.js +20 -4
- package/dist/components/ShowPixelGridProvider.d.ts +4 -0
- package/dist/components/ShowPixelGridProvider.js +24 -0
- package/dist/components/SidebarCollapserControls.js +2 -2
- package/dist/components/SkillsSettings.d.ts +2 -0
- package/dist/components/SkillsSettings.js +129 -0
- package/dist/components/StaticFilePreview.js +7 -1
- package/dist/components/StudioSettings.js +7 -48
- package/dist/components/Tabs/index.js +1 -1
- package/dist/components/Timeline/Timeline.js +41 -1
- package/dist/components/Timeline/TimelineAssetField.d.ts +1 -1
- package/dist/components/Timeline/TimelineAssetField.js +15 -9
- package/dist/components/Timeline/TimelineBooleanField.js +1 -4
- package/dist/components/Timeline/TimelineClipboardKeybindings.d.ts +6 -7
- package/dist/components/Timeline/TimelineClipboardKeybindings.js +7 -10
- package/dist/components/Timeline/TimelineDragHandler.js +11 -4
- package/dist/components/Timeline/TimelineEffectItem.d.ts +1 -0
- package/dist/components/Timeline/TimelineEffectItem.js +23 -10
- package/dist/components/Timeline/TimelineEffectPropItem.js +15 -2
- package/dist/components/Timeline/TimelineExpandedRow.js +5 -4
- package/dist/components/Timeline/TimelineFieldLabel.js +4 -2
- package/dist/components/Timeline/TimelineFieldRowContent.d.ts +1 -2
- package/dist/components/Timeline/TimelineFieldRowContent.js +8 -21
- package/dist/components/Timeline/TimelineImageInfo.d.ts +0 -1
- package/dist/components/Timeline/TimelineImageInfo.js +13 -32
- package/dist/components/Timeline/TimelineKeyframeControls.d.ts +1 -2
- package/dist/components/Timeline/TimelineKeyframeControls.js +10 -4
- package/dist/components/Timeline/TimelinePlayCursorSyncer.js +4 -2
- package/dist/components/Timeline/TimelinePrimitiveFieldValue.js +1 -1
- package/dist/components/Timeline/TimelineRotationField.js +0 -2
- package/dist/components/Timeline/TimelineRowChrome.d.ts +0 -1
- package/dist/components/Timeline/TimelineRowChrome.js +3 -4
- package/dist/components/Timeline/TimelineRowLayoutContext.d.ts +0 -1
- package/dist/components/Timeline/TimelineRowLayoutContext.js +1 -4
- package/dist/components/Timeline/TimelineScaleField.js +2 -6
- package/dist/components/Timeline/TimelineSchemaField.js +9 -3
- package/dist/components/Timeline/TimelineSelection.d.ts +29 -66
- package/dist/components/Timeline/TimelineSelection.js +31 -171
- package/dist/components/Timeline/TimelineSequence.d.ts +2 -0
- package/dist/components/Timeline/TimelineSequence.js +110 -19
- package/dist/components/Timeline/TimelineSequenceItem.d.ts +1 -0
- package/dist/components/Timeline/TimelineSequenceItem.js +13 -11
- package/dist/components/Timeline/TimelineSequencePropItem.js +15 -2
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.d.ts +7 -6
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.js +85 -91
- package/dist/components/Timeline/TimelineTrack.js +1 -1
- package/dist/components/Timeline/TimelineTransformOriginField.js +0 -4
- package/dist/components/Timeline/TimelineTranslateField.js +0 -4
- package/dist/components/Timeline/TimelineVirtualization.js +3 -1
- package/dist/components/Timeline/delete-selected-timeline-item.d.ts +3 -4
- package/dist/components/Timeline/duplicate-selected-timeline-item.d.ts +3 -4
- package/dist/components/Timeline/duplicate-selected-timeline-item.js +3 -12
- package/dist/components/Timeline/find-track-for-node-path-info.d.ts +1 -1
- package/dist/components/Timeline/get-copy-context-for-agents-menu-item.d.ts +4 -0
- package/dist/components/Timeline/get-copy-context-for-agents-menu-item.js +26 -0
- package/dist/components/Timeline/get-sequence-context-menu-items.js +2 -19
- package/dist/components/Timeline/get-timeline-sequence-visible-layout.d.ts +6 -1
- package/dist/components/Timeline/get-timeline-sequence-visible-layout.js +11 -4
- package/dist/components/Timeline/keyframe-clipboard.d.ts +2 -3
- package/dist/components/Timeline/reset-selected-timeline-props.d.ts +2 -3
- package/dist/components/Timeline/sequence-prop-clipboard.d.ts +2 -3
- package/dist/components/Timeline/split-selected-timeline-item.d.ts +2 -3
- package/dist/components/Timeline/split-selected-timeline-item.js +0 -1
- package/dist/components/Timeline/timeline-expanded-filter.d.ts +1 -2
- package/dist/components/Timeline/timeline-field-row-layout.d.ts +1 -1
- package/dist/components/Timeline/timeline-field-row-layout.js +4 -7
- package/dist/components/Timeline/timeline-field-utils.js +0 -2
- package/dist/components/Timeline/timeline-scroll-logic.d.ts +7 -5
- package/dist/components/Timeline/timeline-scroll-logic.js +12 -7
- package/dist/components/Timeline/update-selected-easing.d.ts +7 -7
- package/dist/components/Timeline/use-timeline-asset-drop.js +24 -0
- package/dist/components/Timeline/use-timeline-keyframe-drag.d.ts +6 -7
- package/dist/components/TimelineCombobox.js +25 -160
- package/dist/components/TimelineInOutToggle.js +4 -1
- package/dist/components/canvas-capture-drop.d.ts +4 -0
- package/dist/components/canvas-capture-drop.js +22 -0
- package/dist/components/duplicate-jsx-node-api.d.ts +2 -0
- package/dist/components/duplicate-jsx-node-api.js +12 -0
- package/dist/components/effect-drag-and-drop.js +1 -4
- package/dist/components/handle-drop.d.ts +2 -1
- package/dist/components/handle-drop.js +3 -3
- package/dist/components/import-assets.js +9 -65
- package/dist/components/keyboard-shortcuts.d.ts +10 -0
- package/dist/components/keyboard-shortcuts.js +135 -0
- package/dist/components/selected-outline-control-layout.js +2 -6
- package/dist/components/selected-outline-measurement.d.ts +8 -9
- package/dist/components/selected-outline-measurement.js +16 -3
- package/dist/components/use-delete-asset.d.ts +1 -0
- package/dist/components/use-delete-asset.js +40 -0
- package/dist/components/use-selected-outline-control-target.d.ts +11 -0
- package/dist/components/use-selected-outline-control-target.js +79 -0
- package/dist/esm/{chunk-s6k99gh2.js → chunk-4bxz1d3g.js} +3 -2
- package/dist/esm/{chunk-v5a8vpv4.js → chunk-gzqm3g2m.js} +47432 -40444
- package/dist/esm/index.mjs +3 -0
- package/dist/esm/internals.mjs +47431 -40443
- package/dist/esm/previewEntry.mjs +47169 -40181
- package/dist/esm/renderEntry.mjs +2 -2
- package/dist/helpers/add-asset-cache-bust.d.ts +4 -0
- package/dist/helpers/add-asset-cache-bust.js +10 -0
- package/dist/helpers/calculate-timeline.d.ts +1 -7
- package/dist/helpers/calculate-timeline.js +2 -145
- package/dist/helpers/colors.d.ts +2 -0
- package/dist/helpers/colors.js +6 -2
- package/dist/helpers/drag-aware-double-click.d.ts +6 -0
- package/dist/helpers/drag-aware-double-click.js +20 -0
- package/dist/helpers/editor-ruler.js +6 -5
- package/dist/helpers/get-asset-metadata.d.ts +19 -0
- package/dist/helpers/get-asset-metadata.js +75 -21
- package/dist/helpers/get-connected-compositions.d.ts +1 -6
- package/dist/helpers/get-connected-compositions.js +2 -8
- package/dist/helpers/get-sequence-double-click-action.d.ts +2 -1
- package/dist/helpers/get-sequence-double-click-action.js +7 -1
- package/dist/helpers/get-sequence-visible-range.d.ts +1 -5
- package/dist/helpers/get-sequence-visible-range.js +6 -51
- package/dist/helpers/get-timeline-nestedness.d.ts +1 -2
- package/dist/helpers/get-timeline-nestedness.js +2 -12
- package/dist/helpers/get-timeline-sequence-layout.d.ts +4 -1
- package/dist/helpers/get-timeline-sequence-layout.js +15 -6
- package/dist/helpers/get-timeline-sequence-sort-key.d.ts +2 -21
- package/dist/helpers/get-timeline-sequence-sort-key.js +2 -16
- package/dist/helpers/hoverable.d.ts +1 -0
- package/dist/helpers/hoverable.js +2 -1
- package/dist/helpers/inject-css.js +3 -1
- package/dist/helpers/is-current-selected-still.js +4 -2
- package/dist/helpers/open-in-remotion-convert.d.ts +7 -0
- package/dist/helpers/open-in-remotion-convert.js +18 -0
- package/dist/helpers/sort-by-nonce-history.d.ts +1 -5
- package/dist/helpers/sort-by-nonce-history.js +3 -148
- package/dist/helpers/timeline-node-path-key.d.ts +1 -2
- package/dist/helpers/timeline-node-path-key.js +2 -2
- package/dist/helpers/use-media-metadata.d.ts +2 -1
- package/dist/helpers/use-media-metadata.js +12 -5
- package/dist/helpers/use-menu-structure.js +52 -32
- package/dist/icons/align-center-horizontal.js +1 -1
- package/dist/icons/align-left.js +1 -1
- package/dist/icons/align-right.js +1 -1
- package/dist/icons/keyboard.d.ts +4 -0
- package/dist/icons/keyboard.js +10 -0
- package/dist/icons/license.d.ts +4 -0
- package/dist/icons/license.js +8 -0
- package/dist/icons/package.d.ts +4 -0
- package/dist/icons/package.js +8 -0
- package/dist/icons/react.js +1 -1
- package/dist/icons/remotion-convert.d.ts +4 -0
- package/dist/icons/remotion-convert.js +10 -0
- package/dist/icons/skills.d.ts +4 -0
- package/dist/icons/skills.js +10 -0
- package/dist/state/editor-pixel-grid.d.ts +8 -0
- package/dist/state/editor-pixel-grid.js +18 -0
- package/dist/state/modals.d.ts +6 -5
- package/package.json +14 -12
- package/dist/components/KeyboardShortcutsExplainer.d.ts +0 -2
- package/dist/components/KeyboardShortcutsExplainer.js +0 -194
|
@@ -5,10 +5,8 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const browser_studio_operations_1 = require("../../helpers/browser-studio-operations");
|
|
7
7
|
const client_id_1 = require("../../helpers/client-id");
|
|
8
|
-
const colors_1 = require("../../helpers/colors");
|
|
9
8
|
const download_blob_1 = require("../../helpers/download-blob");
|
|
10
9
|
const interactivity_enabled_1 = require("../../helpers/interactivity-enabled");
|
|
11
|
-
const browse_elements_1 = require("../../icons/browse-elements");
|
|
12
10
|
const cloud_download_1 = require("../../icons/cloud-download");
|
|
13
11
|
const frame_1 = require("../../icons/frame");
|
|
14
12
|
const solid_1 = require("../../icons/solid");
|
|
@@ -20,6 +18,7 @@ const is_menu_item_1 = require("../Menu/is-menu-item");
|
|
|
20
18
|
const NotificationCenter_1 = require("../Notifications/NotificationCenter");
|
|
21
19
|
const ObserveDefaultPropsContext_1 = require("../ObserveDefaultPropsContext");
|
|
22
20
|
const DataEditor_1 = require("../RenderModal/DataEditor");
|
|
21
|
+
const infer_zod_schema_from_value_1 = require("../RenderModal/SchemaEditor/infer-zod-schema-from-value");
|
|
23
22
|
const zod_schema_type_1 = require("../RenderModal/SchemaEditor/zod-schema-type");
|
|
24
23
|
const WarningIndicatorButton_1 = require("../RenderModal/WarningIndicatorButton");
|
|
25
24
|
const SegmentedControl_1 = require("../SegmentedControl");
|
|
@@ -27,29 +26,13 @@ const VisualControlsContent_1 = require("../VisualControls/VisualControlsContent
|
|
|
27
26
|
const common_1 = require("./common");
|
|
28
27
|
const CompositionInspectorHeader_1 = require("./CompositionInspectorHeader");
|
|
29
28
|
const CompositionMetadata_1 = require("./CompositionMetadata");
|
|
29
|
+
const ElementLibraryButton_1 = require("./ElementLibraryButton");
|
|
30
30
|
const styles_1 = require("./styles");
|
|
31
31
|
const use_composition_actions_1 = require("./use-composition-actions");
|
|
32
32
|
const actionIconStyle = {
|
|
33
33
|
height: 18,
|
|
34
34
|
width: 18,
|
|
35
35
|
};
|
|
36
|
-
const browseElementsIconStyle = {
|
|
37
|
-
height: 22,
|
|
38
|
-
width: 22,
|
|
39
|
-
};
|
|
40
|
-
const browseElementsIconContainerStyle = {
|
|
41
|
-
height: 22,
|
|
42
|
-
marginLeft: -2,
|
|
43
|
-
marginRight: -2,
|
|
44
|
-
width: 22,
|
|
45
|
-
};
|
|
46
|
-
const browseElementsArrowStyle = {
|
|
47
|
-
display: 'inline-block',
|
|
48
|
-
height: 12,
|
|
49
|
-
marginLeft: 4,
|
|
50
|
-
verticalAlign: -2,
|
|
51
|
-
width: 12,
|
|
52
|
-
};
|
|
53
36
|
const CompositionActions = () => {
|
|
54
37
|
var _a;
|
|
55
38
|
var _b;
|
|
@@ -68,22 +51,18 @@ const CompositionActions = () => {
|
|
|
68
51
|
(0, NotificationCenter_1.showNotification)(`Could not download project: ${error instanceof Error ? error.message : String(error)}`, 2000);
|
|
69
52
|
}
|
|
70
53
|
}, [downloadProject]);
|
|
71
|
-
const openElementsLibrary = (0, react_1.useCallback)(() => {
|
|
72
|
-
window.open('https://www.remotion.dev/elements', '_blank', 'noopener,noreferrer');
|
|
73
|
-
}, []);
|
|
74
54
|
if (!canShowInsertAsset &&
|
|
75
55
|
!canShowInsertComposition &&
|
|
76
56
|
!canShowInsertSolid &&
|
|
77
57
|
downloadProject === null) {
|
|
78
58
|
return null;
|
|
79
59
|
}
|
|
80
|
-
return (jsx_runtime_1.jsxs(common_1.InspectorQuickActionsSection, { children: [canShowInsertSolid ? (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: !canInsertSolid, onClick: insertSolid, renderIcon: (color) => (jsx_runtime_1.jsx(solid_1.SolidIcon, { color: color, style: actionIconStyle })), children: "Add Solid" })) : null, canShowInsertAsset ? (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: !canInsertAsset, onClick: insertAsset, renderIcon: (color) => (jsx_runtime_1.jsx(frame_1.PicIcon, { color: color, style: actionIconStyle })), children: "Add asset..." })) : null, canShowInsertComposition ? (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: !canInsertComposition, onClick: insertComposition, renderIcon: (color) => (jsx_runtime_1.jsx(video_1.FilmIcon, { color: color, style: actionIconStyle })), children: "Add composition..." })) : null, canShowInsertAsset ? (jsx_runtime_1.
|
|
81
|
-
jsx_runtime_1.jsx("svg", { "aria-hidden": "true", viewBox: "0 0 16 16", style: browseElementsArrowStyle, children: jsx_runtime_1.jsx("path", { d: "M4 12 12 4M6 4h6v6", fill: "none", stroke: colors_1.CURRENT_COLOR, strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "1.5" }) })
|
|
82
|
-
] })) : null, downloadProject ? (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: false, onClick: onDownloadProject, renderIcon: (color) => (jsx_runtime_1.jsx(cloud_download_1.CloudDownloadIcon, { color: color, style: actionIconStyle })), children: "Download project" })) : null] }));
|
|
60
|
+
return (jsx_runtime_1.jsxs(common_1.InspectorQuickActionsSection, { children: [canShowInsertSolid ? (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: !canInsertSolid, onClick: insertSolid, renderIcon: (color) => (jsx_runtime_1.jsx(solid_1.SolidIcon, { color: color, style: actionIconStyle })), children: "Add Solid" })) : null, canShowInsertAsset ? (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: !canInsertAsset, onClick: insertAsset, renderIcon: (color) => (jsx_runtime_1.jsx(frame_1.PicIcon, { color: color, style: actionIconStyle })), children: "Add asset..." })) : null, canShowInsertComposition ? (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: !canInsertComposition, onClick: insertComposition, renderIcon: (color) => (jsx_runtime_1.jsx(video_1.FilmIcon, { color: color, style: actionIconStyle })), children: "Add composition..." })) : null, canShowInsertAsset ? jsx_runtime_1.jsx(ElementLibraryButton_1.ElementLibraryButton, {}) : null, downloadProject ? (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: false, onClick: onDownloadProject, renderIcon: (color) => (jsx_runtime_1.jsx(cloud_download_1.CloudDownloadIcon, { color: color, style: actionIconStyle })), children: "Download project" })) : null] }));
|
|
83
61
|
};
|
|
84
62
|
const CompositionDefaultPropsSection = ({ composition, currentDefaultProps, readOnlyStudio, setDefaultProps }) => {
|
|
85
63
|
var _a;
|
|
86
64
|
const z = (0, get_zod_if_possible_1.useZodIfPossible)();
|
|
65
|
+
const zodTypes = (0, get_zod_if_possible_1.useZodTypesIfPossible)();
|
|
87
66
|
const canSaveDefaultProps = (0, react_1.useContext)(ObserveDefaultPropsContext_1.ObserveDefaultPropsContext);
|
|
88
67
|
const [defaultPropsMode, setDefaultPropsMode] = (0, react_1.useState)('schema');
|
|
89
68
|
const compositionId = composition.id;
|
|
@@ -110,16 +89,21 @@ const CompositionDefaultPropsSection = ({ composition, currentDefaultProps, read
|
|
|
110
89
|
},
|
|
111
90
|
];
|
|
112
91
|
}, [defaultPropsMode]);
|
|
92
|
+
const schema = (0, react_1.useMemo)(() => {
|
|
93
|
+
var _a;
|
|
94
|
+
return (0, infer_zod_schema_from_value_1.resolveCompositionSchema)({
|
|
95
|
+
explicitSchema: composition.schema,
|
|
96
|
+
defaultProps: (_a = composition.defaultProps) !== null && _a !== void 0 ? _a : {},
|
|
97
|
+
z,
|
|
98
|
+
zodTypes,
|
|
99
|
+
});
|
|
100
|
+
}, [composition.defaultProps, composition.schema, z, zodTypes]);
|
|
113
101
|
const canShowDefaultPropsSection = (0, react_1.useMemo)(() => {
|
|
114
|
-
if (
|
|
115
|
-
return false;
|
|
116
|
-
}
|
|
117
|
-
if (!(typeof composition.schema.safeParse ===
|
|
118
|
-
'function')) {
|
|
102
|
+
if (schema === 'no-schema' || schema === 'no-zod') {
|
|
119
103
|
return false;
|
|
120
104
|
}
|
|
121
|
-
return (0, zod_schema_type_1.getZodSchemaType)(
|
|
122
|
-
}, [
|
|
105
|
+
return (0, zod_schema_type_1.getZodSchemaType)(schema) !== 'any';
|
|
106
|
+
}, [schema]);
|
|
123
107
|
const { setShowWarning, showWarning } = (0, DataEditor_1.useDataEditorWarningVisibility)();
|
|
124
108
|
const { warnings: defaultPropsWarnings } = (0, DataEditor_1.useDataEditorWarnings)({
|
|
125
109
|
canSaveDefaultProps: (_a = canSaveDefaultProps === null || canSaveDefaultProps === void 0 ? void 0 : canSaveDefaultProps.canSaveDefaultProps) !== null && _a !== void 0 ? _a : null,
|
|
@@ -131,14 +115,12 @@ const CompositionDefaultPropsSection = ({ composition, currentDefaultProps, read
|
|
|
131
115
|
if (readOnlyStudio || !canShowDefaultPropsSection) {
|
|
132
116
|
return null;
|
|
133
117
|
}
|
|
134
|
-
return (jsx_runtime_1.jsxs(
|
|
135
|
-
jsx_runtime_1.jsx(common_1.
|
|
136
|
-
|
|
137
|
-
jsx_runtime_1.
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
] }) }), defaultPropsWarnings.length > 0 && showWarning ? (jsx_runtime_1.jsx("div", { style: styles_1.defaultPropsWarningContainer, children: jsx_runtime_1.jsx(common_1.InspectorDefaultPropsWarnings, { warnings: defaultPropsWarnings }) })) : null, jsx_runtime_1.jsx(DefaultPropsEditor_1.DefaultPropsEditor, { unresolvedComposition: composition, defaultProps: currentDefaultProps, setDefaultProps: setDefaultProps, propsEditType: "default-props", schemaErrorMode: "compact", layout: "inspector", mode: defaultPropsMode, onModeChange: setDefaultPropsMode, hideModeControls: canShowDefaultPropsSection, warnings: defaultPropsWarnings, showWarning: false, setShowWarning: setShowWarning, hideWarningButton: true }, composition.id)
|
|
141
|
-
] })
|
|
118
|
+
return (jsx_runtime_1.jsxs("div", { style: styles_1.compositionDefaultPropsSection, children: [
|
|
119
|
+
jsx_runtime_1.jsx(common_1.InspectorSectionHeader, { children: jsx_runtime_1.jsxs("div", { style: styles_1.sectionHeaderRow, children: [
|
|
120
|
+
jsx_runtime_1.jsxs("div", { style: styles_1.sectionHeaderStart, children: [
|
|
121
|
+
jsx_runtime_1.jsx("span", { style: styles_1.sectionHeaderTitle, children: "Default Props" }), jsx_runtime_1.jsx(SegmentedControl_1.SegmentedControl, { items: defaultPropsModeItems, needsWrapping: false, size: "compact" })
|
|
122
|
+
] }), jsx_runtime_1.jsx("div", { style: styles_1.sectionHeaderEnd, children: defaultPropsWarnings.length > 0 ? (jsx_runtime_1.jsx(WarningIndicatorButton_1.WarningIndicatorButton, { setShowWarning: setShowWarning, showWarning: showWarning, warningCount: defaultPropsWarnings.length, size: "compact" })) : null })
|
|
123
|
+
] }) }), defaultPropsWarnings.length > 0 && showWarning ? (jsx_runtime_1.jsx("div", { style: styles_1.defaultPropsWarningContainer, children: jsx_runtime_1.jsx(common_1.InspectorDefaultPropsWarnings, { warnings: defaultPropsWarnings }) })) : null, jsx_runtime_1.jsx(DefaultPropsEditor_1.DefaultPropsEditor, { unresolvedComposition: composition, defaultProps: currentDefaultProps, setDefaultProps: setDefaultProps, propsEditType: "default-props", schemaErrorMode: "compact", layout: "inspector", mode: defaultPropsMode, onModeChange: setDefaultPropsMode, hideModeControls: canShowDefaultPropsSection, warnings: defaultPropsWarnings, showWarning: false, setShowWarning: setShowWarning, hideWarningButton: true }, composition.id)
|
|
142
124
|
] }));
|
|
143
125
|
};
|
|
144
126
|
const CompositionVisualControlsSection = ({ readOnlyStudio }) => {
|
|
@@ -149,17 +131,15 @@ const CompositionVisualControlsSection = ({ readOnlyStudio }) => {
|
|
|
149
131
|
if (!hasVisualControls) {
|
|
150
132
|
return null;
|
|
151
133
|
}
|
|
152
|
-
return (jsx_runtime_1.jsxs(
|
|
153
|
-
jsx_runtime_1.jsx(common_1.
|
|
154
|
-
jsx_runtime_1.jsx(common_1.InspectorSectionHeader, { children: "Visual Controls" }), jsx_runtime_1.jsx(VisualControlsContent_1.VisualControlsContent, {})
|
|
155
|
-
] })
|
|
134
|
+
return (jsx_runtime_1.jsxs("div", { style: styles_1.compositionVisualControlsSection, children: [
|
|
135
|
+
jsx_runtime_1.jsx(common_1.InspectorSectionHeader, { children: "Visual Controls" }), jsx_runtime_1.jsx(VisualControlsContent_1.VisualControlsContent, {})
|
|
156
136
|
] }));
|
|
157
137
|
};
|
|
158
138
|
const CompositionInspector = ({ composition, currentDefaultProps, readOnlyStudio, setDefaultProps }) => {
|
|
159
139
|
const { previewServerState } = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx);
|
|
160
140
|
return (jsx_runtime_1.jsxs("div", { style: styles_1.scrollableContainer, className: is_menu_item_1.VERTICAL_SCROLLBAR_CLASSNAME, children: [
|
|
161
141
|
jsx_runtime_1.jsxs("div", { style: styles_1.inspectorOverviewSection, children: [
|
|
162
|
-
jsx_runtime_1.jsx(CompositionInspectorHeader_1.CompositionInspectorHeader, {}), jsx_runtime_1.jsx(
|
|
142
|
+
jsx_runtime_1.jsx(CompositionInspectorHeader_1.CompositionInspectorHeader, {}), jsx_runtime_1.jsx(CompositionMetadata_1.CompositionMetadata, { compositionId: composition.id, disabled: readOnlyStudio || previewServerState.type !== 'connected', stack: composition.stack })
|
|
163
143
|
] }), jsx_runtime_1.jsx(CompositionDefaultPropsSection, { composition: composition, currentDefaultProps: currentDefaultProps, readOnlyStudio: readOnlyStudio, setDefaultProps: setDefaultProps }), jsx_runtime_1.jsx(CompositionVisualControlsSection, { readOnlyStudio: readOnlyStudio }), jsx_runtime_1.jsx(CompositionActions, {})
|
|
164
144
|
] }));
|
|
165
145
|
};
|
|
@@ -18,7 +18,7 @@ const layout_1 = require("../layout");
|
|
|
18
18
|
const NotificationCenter_1 = require("../Notifications/NotificationCenter");
|
|
19
19
|
const use_resolved_stack_1 = require("../Timeline/use-resolved-stack");
|
|
20
20
|
const use_default_editor_info_1 = require("../use-default-editor-info");
|
|
21
|
-
const COMPOSITION_INSPECTOR_HEADER_HEIGHT =
|
|
21
|
+
const COMPOSITION_INSPECTOR_HEADER_HEIGHT = layout_1.COMPACT_CONTROL_ROW_HEIGHT * 3;
|
|
22
22
|
const sourceLocationIconStyle = {
|
|
23
23
|
flexShrink: 0,
|
|
24
24
|
height: 18,
|
|
@@ -26,7 +26,7 @@ const sourceLocationIconStyle = {
|
|
|
26
26
|
};
|
|
27
27
|
const componentLocationPlaceholder = {
|
|
28
28
|
flexShrink: 0,
|
|
29
|
-
height: layout_1.
|
|
29
|
+
height: layout_1.COMPACT_CONTROL_ROW_HEIGHT,
|
|
30
30
|
};
|
|
31
31
|
const renderReactIcon = (color) => {
|
|
32
32
|
return jsx_runtime_1.jsx(react_2.ReactIcon, { color: color, style: sourceLocationIconStyle });
|
|
@@ -39,23 +39,30 @@ const computedValueStyle = {
|
|
|
39
39
|
fontStyle: 'italic',
|
|
40
40
|
lineHeight: '20px',
|
|
41
41
|
};
|
|
42
|
+
const metadataFormatterStyle = {
|
|
43
|
+
fontSize: 13,
|
|
44
|
+
};
|
|
42
45
|
const metadataDraggerStyles = {
|
|
43
46
|
durationInFrames: {
|
|
47
|
+
fontSize: 13,
|
|
44
48
|
padding: '2px 0 2px 6px',
|
|
45
49
|
textAlign: 'right',
|
|
46
|
-
width:
|
|
50
|
+
width: 104,
|
|
47
51
|
},
|
|
48
52
|
fps: {
|
|
53
|
+
fontSize: 13,
|
|
49
54
|
padding: '2px 0 2px 6px',
|
|
50
55
|
textAlign: 'right',
|
|
51
56
|
width: 72,
|
|
52
57
|
},
|
|
53
58
|
height: {
|
|
59
|
+
fontSize: 13,
|
|
54
60
|
padding: '2px 0 2px 6px',
|
|
55
61
|
textAlign: 'right',
|
|
56
62
|
width: 52,
|
|
57
63
|
},
|
|
58
64
|
width: {
|
|
65
|
+
fontSize: 13,
|
|
59
66
|
padding: '2px 0 2px 6px',
|
|
60
67
|
textAlign: 'right',
|
|
61
68
|
width: 52,
|
|
@@ -115,7 +122,7 @@ const dimensionPresets = [
|
|
|
115
122
|
const frameRatePresets = [23.976, 24, 25, 29.97, 30, 50, 60];
|
|
116
123
|
const PresetDropdown = ({ disabled, title, values, visible }) => {
|
|
117
124
|
const renderAction = (0, react_1.useCallback)((color) => {
|
|
118
|
-
return (jsx_runtime_1.jsx("span", { style: presetButtonIcon, children: jsx_runtime_1.jsx(caret_1.CaretDown, { color: color
|
|
125
|
+
return (jsx_runtime_1.jsx("span", { style: presetButtonIcon, children: jsx_runtime_1.jsx(caret_1.CaretDown, { color: color }) }));
|
|
119
126
|
}, []);
|
|
120
127
|
return (jsx_runtime_1.jsx("div", { style: {
|
|
121
128
|
...presetDropdownContainer,
|
|
@@ -146,7 +153,7 @@ const CompositionMetadataValue = ({ computed, disabled, field, onSave, pendingVa
|
|
|
146
153
|
}
|
|
147
154
|
return String(roundedValue);
|
|
148
155
|
}, [field]);
|
|
149
|
-
return computed ? (jsx_runtime_1.jsx("span", { style: computedContainerStyle, children: jsx_runtime_1.jsx("span", { style: computedValueStyle, children: formatValue(value) }) })) :
|
|
156
|
+
return computed || disabled ? (jsx_runtime_1.jsx("span", { style: computedContainerStyle, children: jsx_runtime_1.jsx("span", { style: computedValueStyle, children: formatValue(value) }) })) : (jsx_runtime_1.jsx(InputDragger_1.InputDragger, { "aria-label": fieldLabels[field], buttonStyle: metadataDraggerStyles[field], type: "number", value: (_a = dragValue !== null && dragValue !== void 0 ? dragValue : pendingValue === null || pendingValue === void 0 ? void 0 : pendingValue.value) !== null && _a !== void 0 ? _a : value, disabled: pendingValue !== null, status: "ok", onValueChange: setDragValue, onValueChangeEnd: save, onTextChange: () => undefined, min: isFps ? 0.01 : 1, step: isFps ? 0.01 : 1, dragDecimalPlaces: isFps ? 2 : 0, formatter: formatValue, formatterStyle: metadataFormatterStyle, rightAlign: true, style: metadataDraggerStyles[field] }));
|
|
150
157
|
};
|
|
151
158
|
const CompositionMetadata = ({ compositionId, disabled, stack }) => {
|
|
152
159
|
var _a, _b, _c, _d;
|
|
@@ -310,7 +317,7 @@ const CompositionMetadata = ({ compositionId, disabled, stack }) => {
|
|
|
310
317
|
return (jsx_runtime_1.jsxs("div", { style: compositionMetadataContainer, children: [jsx_runtime_1.jsx(common_1.InspectorDetailRow, { label: (hovered) => (jsx_runtime_1.jsxs("div", { style: metadataLabelControls, children: [
|
|
311
318
|
jsx_runtime_1.jsx("span", { style: metadataLabelText, children: "Dimensions" }), disabled || widthIsComputed || heightIsComputed ? null : (jsx_runtime_1.jsx(PresetDropdown, { disabled: pendingValues.width !== undefined ||
|
|
312
319
|
pendingValues.height !== undefined, title: "Choose dimension preset", values: dimensionPresetValues, visible: hovered }))] })), children: jsx_runtime_1.jsxs("div", { style: dimensionsControls, children: [
|
|
313
|
-
jsx_runtime_1.jsx(CompositionMetadataValue, { computed: widthIsComputed, disabled: disabled, field: "width", onSave: saveMetadata, pendingValue: (_a = pendingValues.width) !== null && _a !== void 0 ? _a : null, value: video.width }),
|
|
320
|
+
jsx_runtime_1.jsx(CompositionMetadataValue, { computed: widthIsComputed, disabled: disabled, field: "width", onSave: saveMetadata, pendingValue: (_a = pendingValues.width) !== null && _a !== void 0 ? _a : null, value: video.width }), jsx_runtime_1.jsx(CompositionMetadataValue, { computed: heightIsComputed, disabled: disabled, field: "height", onSave: saveMetadata, pendingValue: (_b = pendingValues.height) !== null && _b !== void 0 ? _b : null, value: video.height })
|
|
314
321
|
] }) }), isStill ? null : (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [jsx_runtime_1.jsx(common_1.InspectorDetailRow, { label: (hovered) => (jsx_runtime_1.jsxs("div", { style: metadataLabelControls, children: [
|
|
315
322
|
jsx_runtime_1.jsx("span", { style: metadataLabelText, children: "Frame rate" }), disabled || fpsIsComputed ? null : (jsx_runtime_1.jsx(PresetDropdown, { disabled: pendingValues.fps !== undefined, title: "Choose frame rate preset", values: frameRatePresetValues, visible: hovered }))] })), children: jsx_runtime_1.jsx("div", { style: dimensionsControls, children: jsx_runtime_1.jsx(CompositionMetadataValue, { computed: fpsIsComputed, disabled: disabled, field: "fps", onSave: saveMetadata, pendingValue: (_c = pendingValues.fps) !== null && _c !== void 0 ? _c : null, value: video.fps }) }) }), jsx_runtime_1.jsx(common_1.InspectorDetailRow, { label: "Duration", children: jsx_runtime_1.jsx(CompositionMetadataValue, { computed: durationIsComputed, disabled: disabled, field: "durationInFrames", onSave: saveMetadata, pendingValue: (_d = pendingValues.durationInFrames) !== null && _d !== void 0 ? _d : null, value: video.durationInFrames }) })
|
|
316
323
|
] }))] }));
|
|
@@ -206,7 +206,7 @@ const EasingInspector = ({ selection }) => {
|
|
|
206
206
|
easingKeyframeDisplayOffset,
|
|
207
207
|
]);
|
|
208
208
|
const renderHeader = (0, react_1.useCallback)(() => (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
209
|
-
jsx_runtime_1.jsx(common_1.InspectorBackAction, { disabled: parentSelection === null, onClick: onSelectParent, title: "Back to property", children: fieldLabel }),
|
|
209
|
+
jsx_runtime_1.jsx(common_1.InspectorBackAction, { disabled: parentSelection === null, onClick: onSelectParent, title: "Back to property", children: fieldLabel }), easingUpdate === null || track === null ? null : (jsx_runtime_1.jsx(KeyframeEasingNavigator_1.KeyframeEasingNavigator, { currentSelection: currentEasingSelection !== null && currentEasingSelection !== void 0 ? currentEasingSelection : selection, includeEasings: true, keyframes: easingUpdate.propStatus.keyframes.map((keyframe) => ({
|
|
210
210
|
...keyframe,
|
|
211
211
|
frame: keyframe.frame + easingKeyframeDisplayOffset,
|
|
212
212
|
})), nodePathInfo: selection.nodePathInfo }))] })), [
|
|
@@ -226,6 +226,6 @@ const EasingInspector = ({ selection }) => {
|
|
|
226
226
|
return jsx_runtime_1.jsx(common_1.InspectorMessage, { children: "Easing unavailable" });
|
|
227
227
|
}
|
|
228
228
|
return (jsx_runtime_1.jsxs("div", { style: styles_1.selectedContainer, className: is_menu_item_1.VERTICAL_SCROLLBAR_CLASSNAME, children: [
|
|
229
|
-
jsx_runtime_1.jsx(SequenceInspectorHeader_1.SequenceInspectorSections, { track: track }), jsx_runtime_1.jsx(
|
|
229
|
+
jsx_runtime_1.jsx(SequenceInspectorHeader_1.SequenceInspectorSections, { track: track }), jsx_runtime_1.jsx(EasingEditorModal_1.EasingEditor, { state: state, renderHeader: renderHeader }, (0, TimelineSelection_1.getTimelineSelectionKey)(currentEasingSelection)), jsx_runtime_1.jsx(KeyframeSettings_1.KeyframeSettings, { update: easingUpdate }), canAddKeyframeAtPlayhead ? (jsx_runtime_1.jsx(common_1.InspectorQuickActionsSection, { children: jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: addKeyframeDisabled, onClick: onAddKeyframeAtPlayhead, renderIcon: (color) => (jsx_runtime_1.jsx(plus_1.Plus, { color: color, style: addKeyframeIcon })), children: `Add keyframe at ${addKeyframeTime}` }) })) : null] }));
|
|
230
230
|
};
|
|
231
231
|
exports.EasingInspector = EasingInspector;
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ElementLibraryButton = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const browser_studio_operations_1 = require("../../helpers/browser-studio-operations");
|
|
7
|
+
const colors_1 = require("../../helpers/colors");
|
|
8
|
+
const browse_elements_1 = require("../../icons/browse-elements");
|
|
9
|
+
const caret_1 = require("../../icons/caret");
|
|
10
|
+
const modals_1 = require("../../state/modals");
|
|
11
|
+
const InspectorPanelLayout_1 = require("../InspectorPanelLayout");
|
|
12
|
+
const SegmentedButton_1 = require("../SegmentedButton");
|
|
13
|
+
const SettingsContext_1 = require("../SettingsContext");
|
|
14
|
+
const common_1 = require("./common");
|
|
15
|
+
const noElementLibraries = [];
|
|
16
|
+
const browseElementsIconStyle = {
|
|
17
|
+
height: 22,
|
|
18
|
+
width: 22,
|
|
19
|
+
};
|
|
20
|
+
const browseElementsIconContainerStyle = {
|
|
21
|
+
height: 22,
|
|
22
|
+
marginLeft: -2,
|
|
23
|
+
marginRight: -2,
|
|
24
|
+
width: 22,
|
|
25
|
+
};
|
|
26
|
+
const browseElementsArrowStyle = {
|
|
27
|
+
display: 'inline-block',
|
|
28
|
+
height: 12,
|
|
29
|
+
marginLeft: 4,
|
|
30
|
+
verticalAlign: -2,
|
|
31
|
+
width: 12,
|
|
32
|
+
};
|
|
33
|
+
const elementLibraryDropdownStyle = {
|
|
34
|
+
borderRadius: 4,
|
|
35
|
+
height: 28,
|
|
36
|
+
margin: '0 4px',
|
|
37
|
+
width: 'calc(100% - 8px)',
|
|
38
|
+
};
|
|
39
|
+
const elementLibraryDropdownSegmentStyle = {
|
|
40
|
+
fontSize: 13,
|
|
41
|
+
gap: 8,
|
|
42
|
+
justifyContent: 'flex-start',
|
|
43
|
+
padding: `0 ${InspectorPanelLayout_1.INSPECTOR_PANEL_HORIZONTAL_PADDING - 4}px`,
|
|
44
|
+
width: '100%',
|
|
45
|
+
};
|
|
46
|
+
const elementLibraryDropdownLabelStyle = {
|
|
47
|
+
flex: 1,
|
|
48
|
+
fontFamily: 'sans-serif',
|
|
49
|
+
fontSize: 13,
|
|
50
|
+
lineHeight: '18px',
|
|
51
|
+
minWidth: 0,
|
|
52
|
+
overflow: 'hidden',
|
|
53
|
+
textAlign: 'left',
|
|
54
|
+
textOverflow: 'ellipsis',
|
|
55
|
+
whiteSpace: 'nowrap',
|
|
56
|
+
};
|
|
57
|
+
const elementLibraryDropdownCaretStyle = {
|
|
58
|
+
display: 'flex',
|
|
59
|
+
height: 12,
|
|
60
|
+
width: 12,
|
|
61
|
+
};
|
|
62
|
+
const ElementLibraryButton = () => {
|
|
63
|
+
var _a;
|
|
64
|
+
const { setSelectedModal } = (0, react_1.useContext)(modals_1.SetSelectedModalContext);
|
|
65
|
+
const { studioRuntimeConfig } = (0, SettingsContext_1.useSettings)();
|
|
66
|
+
const isBrowserStudio = (0, browser_studio_operations_1.getBrowserStudioOperations)() !== null;
|
|
67
|
+
const elementLibraries = (_a = studioRuntimeConfig === null || studioRuntimeConfig === void 0 ? void 0 : studioRuntimeConfig.elementLibraries) !== null && _a !== void 0 ? _a : noElementLibraries;
|
|
68
|
+
const openElementLibrary = (0, react_1.useCallback)((name, url) => {
|
|
69
|
+
if (isBrowserStudio) {
|
|
70
|
+
window.open(url, '_blank', 'noopener,noreferrer');
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
setSelectedModal({
|
|
74
|
+
type: 'element-library',
|
|
75
|
+
name,
|
|
76
|
+
url,
|
|
77
|
+
});
|
|
78
|
+
}, [isBrowserStudio, setSelectedModal]);
|
|
79
|
+
const openElementsLibrary = (0, react_1.useCallback)(() => {
|
|
80
|
+
openElementLibrary('Remotion Elements', 'https://www.remotion.dev/elements');
|
|
81
|
+
}, [openElementLibrary]);
|
|
82
|
+
const elementLibraryDropdownSegments = (0, react_1.useMemo)(() => [
|
|
83
|
+
{
|
|
84
|
+
ariaLabel: 'Browse Elements',
|
|
85
|
+
buttonId: null,
|
|
86
|
+
disabled: false,
|
|
87
|
+
idleColor: colors_1.LIGHT_TEXT,
|
|
88
|
+
leaveLeftSpace: false,
|
|
89
|
+
onOpenChange: null,
|
|
90
|
+
renderContent: (color) => (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
91
|
+
jsx_runtime_1.jsx("span", { style: browseElementsIconContainerStyle, children: jsx_runtime_1.jsx(browse_elements_1.BrowseElementsIcon, { color: color, style: browseElementsIconStyle }) }), jsx_runtime_1.jsx("span", { style: elementLibraryDropdownLabelStyle, children: "Browse Elements" }), jsx_runtime_1.jsx("span", { style: elementLibraryDropdownCaretStyle, children: jsx_runtime_1.jsx(caret_1.CaretDown, { color: color }) })
|
|
92
|
+
] })),
|
|
93
|
+
segmentId: 'element-library',
|
|
94
|
+
selectedId: null,
|
|
95
|
+
style: elementLibraryDropdownSegmentStyle,
|
|
96
|
+
title: 'Choose an Element library to browse inside Studio.',
|
|
97
|
+
type: 'menu',
|
|
98
|
+
values: [
|
|
99
|
+
{
|
|
100
|
+
disabled: false,
|
|
101
|
+
id: 'remotion-elements',
|
|
102
|
+
keyHint: null,
|
|
103
|
+
label: 'Remotion Elements',
|
|
104
|
+
leftItem: null,
|
|
105
|
+
onClick: openElementsLibrary,
|
|
106
|
+
quickSwitcherLabel: null,
|
|
107
|
+
subMenu: null,
|
|
108
|
+
type: 'item',
|
|
109
|
+
value: 'https://www.remotion.dev/elements',
|
|
110
|
+
},
|
|
111
|
+
...elementLibraries.map((library, index) => {
|
|
112
|
+
var _a;
|
|
113
|
+
const parsedUrl = new URL(library.url);
|
|
114
|
+
const pathname = parsedUrl.pathname.replace(/\/$/, '');
|
|
115
|
+
const label = (_a = library.displayName) !== null && _a !== void 0 ? _a : `${parsedUrl.host}${pathname}`;
|
|
116
|
+
return {
|
|
117
|
+
disabled: false,
|
|
118
|
+
id: `external-element-library-${index}`,
|
|
119
|
+
keyHint: null,
|
|
120
|
+
label,
|
|
121
|
+
leftItem: null,
|
|
122
|
+
onClick: () => openElementLibrary(label, library.url),
|
|
123
|
+
quickSwitcherLabel: null,
|
|
124
|
+
subMenu: null,
|
|
125
|
+
type: 'item',
|
|
126
|
+
value: library.url,
|
|
127
|
+
};
|
|
128
|
+
}),
|
|
129
|
+
],
|
|
130
|
+
},
|
|
131
|
+
], [elementLibraries, openElementLibrary, openElementsLibrary]);
|
|
132
|
+
if (elementLibraries.length > 0 && !isBrowserStudio) {
|
|
133
|
+
return (jsx_runtime_1.jsx(SegmentedButton_1.SegmentedButton, { segments: elementLibraryDropdownSegments, style: elementLibraryDropdownStyle, title: null }));
|
|
134
|
+
}
|
|
135
|
+
return (jsx_runtime_1.jsxs(common_1.InspectorQuickAction, { disabled: false, iconContainerStyle: browseElementsIconContainerStyle, onClick: openElementsLibrary, renderIcon: (color) => (jsx_runtime_1.jsx(browse_elements_1.BrowseElementsIcon, { color: color, style: browseElementsIconStyle })), title: isBrowserStudio
|
|
136
|
+
? 'Open the Remotion Elements library in a new tab. Install an Element there to send it to this composition.'
|
|
137
|
+
: 'Browse the Remotion Elements library inside Studio.', children: ["Browse Elements", isBrowserStudio ? (jsx_runtime_1.jsx("svg", { "aria-hidden": "true", viewBox: "0 0 16 16", style: browseElementsArrowStyle, children: jsx_runtime_1.jsx("path", { d: "M4 12 12 4M6 4h6v6", fill: "none", stroke: colors_1.CURRENT_COLOR, strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "1.5" }) })) : null] }));
|
|
138
|
+
};
|
|
139
|
+
exports.ElementLibraryButton = ElementLibraryButton;
|
|
@@ -7,6 +7,7 @@ const remotion_1 = require("remotion");
|
|
|
7
7
|
const colors_1 = require("../../helpers/colors");
|
|
8
8
|
const InlineAction_1 = require("../InlineAction");
|
|
9
9
|
const InspectorPanelLayout_1 = require("../InspectorPanelLayout");
|
|
10
|
+
const timeline_scroll_logic_1 = require("../Timeline/timeline-scroll-logic");
|
|
10
11
|
const TimelineKeyframeDiamondIcon_1 = require("../Timeline/TimelineKeyframeDiamondIcon");
|
|
11
12
|
const TimelineKeyframeEasingLine_1 = require("../Timeline/TimelineKeyframeEasingLine");
|
|
12
13
|
const TimelineSelection_1 = require("../Timeline/TimelineSelection");
|
|
@@ -114,26 +115,31 @@ const KeyframeEasingNavigator = ({ currentSelection, includeEasings, keyframes,
|
|
|
114
115
|
const selectItem = (0, react_1.useCallback)((item) => {
|
|
115
116
|
selectItems([item.selection], { reveal: true });
|
|
116
117
|
}, [selectItems]);
|
|
117
|
-
const seekToItem = (0, react_1.useCallback)((item) => {
|
|
118
|
+
const seekToItem = (0, react_1.useCallback)((item, direction) => {
|
|
118
119
|
const frame = (0, keyframe_easing_navigator_items_1.getNavigatorItemPlayheadFrame)(item);
|
|
119
120
|
setFrame((current) => {
|
|
120
121
|
const next = { ...current, [videoConfig.id]: frame };
|
|
121
122
|
remotion_1.Internals.persistCurrentFrame(next);
|
|
122
123
|
return next;
|
|
123
124
|
});
|
|
124
|
-
|
|
125
|
+
(0, timeline_scroll_logic_1.ensureFrameIsInViewport)({
|
|
126
|
+
direction,
|
|
127
|
+
durationInFrames: videoConfig.durationInFrames,
|
|
128
|
+
frame,
|
|
129
|
+
});
|
|
130
|
+
}, [setFrame, videoConfig.durationInFrames, videoConfig.id]);
|
|
125
131
|
const selectPrevious = (0, react_1.useCallback)(() => {
|
|
126
132
|
if (previousItem === null) {
|
|
127
133
|
return;
|
|
128
134
|
}
|
|
129
|
-
seekToItem(previousItem);
|
|
135
|
+
seekToItem(previousItem, 'fit-left');
|
|
130
136
|
selectItem(previousItem);
|
|
131
137
|
}, [previousItem, seekToItem, selectItem]);
|
|
132
138
|
const selectNext = (0, react_1.useCallback)(() => {
|
|
133
139
|
if (nextItem === null) {
|
|
134
140
|
return;
|
|
135
141
|
}
|
|
136
|
-
seekToItem(nextItem);
|
|
142
|
+
seekToItem(nextItem, 'fit-right');
|
|
137
143
|
selectItem(nextItem);
|
|
138
144
|
}, [nextItem, seekToItem, selectItem]);
|
|
139
145
|
if (currentItem === null) {
|
|
@@ -338,7 +338,7 @@ const KeyframeInspector = ({ selection }) => {
|
|
|
338
338
|
return jsx_runtime_1.jsx(common_1.InspectorMessage, { children: "Keyframe unavailable" });
|
|
339
339
|
}
|
|
340
340
|
return (jsx_runtime_1.jsxs("div", { style: styles_1.selectedContainer, className: is_menu_item_1.VERTICAL_SCROLLBAR_CLASSNAME, children: [
|
|
341
|
-
jsx_runtime_1.jsx(SequenceInspectorHeader_1.SequenceInspectorSections, { track: track }), jsx_runtime_1.jsx(common_1.
|
|
341
|
+
jsx_runtime_1.jsx(SequenceInspectorHeader_1.SequenceInspectorSections, { track: track }), jsx_runtime_1.jsx(common_1.InspectorBackAction, { disabled: parentSelection === null, onClick: onSelectParent, title: "Back to property", children: details.fieldLabel }), jsx_runtime_1.jsx(KeyframeEasingNavigator_1.KeyframeEasingNavigator, { currentSelection: selection, includeEasings: (0, update_selected_easing_1.canEditEasingForInterpolationFunction)(details.propStatus.interpolationFunction), keyframes: details.propStatus.keyframes.map((keyframe) => ({
|
|
342
342
|
...keyframe,
|
|
343
343
|
frame: keyframe.frame + details.keyframeDisplayOffset,
|
|
344
344
|
})), nodePathInfo: selection.nodePathInfo }), jsx_runtime_1.jsxs("div", { style: styles_1.detailsWithInlineAction, children: [
|
|
@@ -4,10 +4,12 @@ exports.SequenceInspectorSections = exports.SequenceInspectorDuplicationSection
|
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const client_id_1 = require("../../helpers/client-id");
|
|
7
|
+
const colors_1 = require("../../helpers/colors");
|
|
7
8
|
const react_2 = require("../../icons/react");
|
|
8
9
|
const InlineEditableTitle_1 = require("../InlineEditableTitle");
|
|
9
10
|
const InspectorInfoHeader_1 = require("../InspectorInfoHeader");
|
|
10
11
|
const InspectorLocationCopy_1 = require("../InspectorLocationCopy");
|
|
12
|
+
const InspectorPanelLayout_1 = require("../InspectorPanelLayout");
|
|
11
13
|
const InspectorSourceLocation_1 = require("../InspectorSourceLocation");
|
|
12
14
|
const layout_1 = require("../layout");
|
|
13
15
|
const use_open_sequence_in_apps_1 = require("../Timeline/use-open-sequence-in-apps");
|
|
@@ -28,15 +30,22 @@ const sequenceInspectorSubtitle = {
|
|
|
28
30
|
alignItems: 'center',
|
|
29
31
|
boxSizing: 'border-box',
|
|
30
32
|
fontSize: 13,
|
|
31
|
-
height: layout_1.
|
|
33
|
+
height: layout_1.COMPACT_CONTROL_ROW_HEIGHT,
|
|
32
34
|
lineHeight: '18px',
|
|
33
35
|
margin: '0 4px',
|
|
34
|
-
padding:
|
|
36
|
+
padding: `0 ${InspectorPanelLayout_1.INSPECTOR_PANEL_HORIZONTAL_PADDING - 4}px`,
|
|
35
37
|
width: 'calc(100% - 8px)',
|
|
36
38
|
};
|
|
37
39
|
const defaultCursor = {
|
|
38
40
|
cursor: 'default',
|
|
39
41
|
};
|
|
42
|
+
const externalTabIndicatorStyle = {
|
|
43
|
+
display: 'inline-block',
|
|
44
|
+
height: 12,
|
|
45
|
+
marginLeft: 4,
|
|
46
|
+
verticalAlign: -2,
|
|
47
|
+
width: 12,
|
|
48
|
+
};
|
|
40
49
|
const useSequenceInspectorSourceLocation = (sequence) => {
|
|
41
50
|
const { canOpenInEditor, openInEditor, originalLocation } = (0, use_open_sequence_in_apps_1.useOpenSequenceInApps)(sequence);
|
|
42
51
|
const validatedLocation = (0, react_1.useMemo)(() => {
|
|
@@ -95,7 +104,8 @@ const SequenceInspectorHeader = ({ sourceLocation, track }) => {
|
|
|
95
104
|
saveName(newName).catch(() => undefined);
|
|
96
105
|
}, [saveName]);
|
|
97
106
|
return (jsx_runtime_1.jsx(InspectorInfoHeader_1.InspectorInfoHeader, { contentSized: true, padding: "4px 0", children: jsx_runtime_1.jsxs(InspectorLocationCopy_1.InspectorLocationCopy, { location: sourceLocation.validatedLocation, name: componentName !== null && componentName !== void 0 ? componentName : null, openInEditorLocation: sourceLocation.validatedLocation, children: [
|
|
98
|
-
jsx_runtime_1.jsx(InlineEditableTitle_1.InlineEditableTitle, { value: sequenceDisplayName, canRename: canRename, onCommit: onRename, size: "inspector" }), documentationLink ? (jsx_runtime_1.
|
|
107
|
+
jsx_runtime_1.jsx(InlineEditableTitle_1.InlineEditableTitle, { value: sequenceDisplayName, canRename: canRename, onCommit: onRename, size: "inspector" }), documentationLink ? (jsx_runtime_1.jsxs(common_1.InspectorQuickAction, { disabled: false, style: defaultCursor, title: "Open component docs", onClick: openDocumentationLink, children: [componentName, jsx_runtime_1.jsx("svg", { "aria-hidden": "true", viewBox: "0 0 16 16", style: externalTabIndicatorStyle, children: jsx_runtime_1.jsx("path", { d: "M4 12 12 4M6 4h6v6", fill: "none", stroke: colors_1.CURRENT_COLOR, strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "1.5" }) })
|
|
108
|
+
] })) : (jsx_runtime_1.jsx("div", { style: subtitleStyle, children: componentName })), jsx_runtime_1.jsx(InspectorSourceLocation_1.InspectorSourceLocation, { location: sourceLocation.validatedLocation, canOpen: sourceLocation.canOpenInEditor, onOpen: sourceLocation.openFileLocation, renderIcon: renderReactIcon, size: "quick-action" })
|
|
99
109
|
] }) }));
|
|
100
110
|
};
|
|
101
111
|
exports.SequenceInspectorHeader = SequenceInspectorHeader;
|
|
@@ -121,8 +131,6 @@ const SequenceInspectorSections = ({ track }) => {
|
|
|
121
131
|
const sourceLocation = (0, exports.useSequenceInspectorSourceLocation)(track.sequence);
|
|
122
132
|
const connectedCompositions = (0, ConnectedCompositionsSection_1.useConnectedCompositions)({ track });
|
|
123
133
|
return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
124
|
-
jsx_runtime_1.jsx(exports.SequenceInspectorHeader, { sourceLocation: sourceLocation, track: track }), jsx_runtime_1.jsx(exports.SequenceInspectorDuplicationSection, { track: track }), connectedCompositions.length > 0 ? (jsx_runtime_1.
|
|
125
|
-
jsx_runtime_1.jsx(common_1.InspectorSectionDivider, {}), jsx_runtime_1.jsx(ConnectedCompositionsSection_1.ConnectedCompositionsSection, { connectedCompositions: connectedCompositions })
|
|
126
|
-
] })) : null] }));
|
|
134
|
+
jsx_runtime_1.jsx(exports.SequenceInspectorHeader, { sourceLocation: sourceLocation, track: track }), jsx_runtime_1.jsx(exports.SequenceInspectorDuplicationSection, { track: track }), connectedCompositions.length > 0 ? (jsx_runtime_1.jsx(ConnectedCompositionsSection_1.ConnectedCompositionsSection, { connectedCompositions: connectedCompositions })) : null] }));
|
|
127
135
|
};
|
|
128
136
|
exports.SequenceInspectorSections = SequenceInspectorSections;
|
|
@@ -115,10 +115,7 @@ const SequenceSourceQuickActions = ({ selection, track, validatedSource }) => {
|
|
|
115
115
|
nodePath: nodePath.nodePath,
|
|
116
116
|
})
|
|
117
117
|
.then((result) => {
|
|
118
|
-
if (result.success) {
|
|
119
|
-
(0, NotificationCenter_1.showNotification)('Split video from audio', 2000);
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
118
|
+
if (!result.success) {
|
|
122
119
|
(0, NotificationCenter_1.showNotification)(result.reason, 4000);
|
|
123
120
|
}
|
|
124
121
|
})
|
|
@@ -171,9 +168,7 @@ const SequenceExpandedInspector = ({ track, readOnlyStudio }) => {
|
|
|
171
168
|
return jsx_runtime_1.jsx(common_1.InspectorMessage, { children: "Sequence inspector unavailable" });
|
|
172
169
|
}
|
|
173
170
|
return (jsx_runtime_1.jsxs("div", { style: styles_1.selectedContainer, className: is_menu_item_1.VERTICAL_SCROLLBAR_CLASSNAME, onPointerDown: selectSequenceOnInspectorPointerDown, children: [
|
|
174
|
-
jsx_runtime_1.jsx(SequenceInspectorHeader_1.SequenceInspectorHeader, { sourceLocation: sourceLocation, track: track }, stackKey !== null && stackKey !== void 0 ? stackKey : track.sequence.id), jsx_runtime_1.jsx(SequenceInspectorHeader_1.SequenceInspectorDuplicationSection, { track: track }), connectedCompositions.length > 0 ? (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
175
|
-
jsx_runtime_1.jsx(common_1.InspectorSectionDivider, {}), jsx_runtime_1.jsx(ConnectedCompositionsSection_1.ConnectedCompositionsSection, { connectedCompositions: connectedCompositions })
|
|
176
|
-
] })) : null, validatedLocation ? (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [jsx_runtime_1.jsx(InspectorSequenceSection_1.InspectorSequenceSection, { sequence: track.sequence, readOnlyStudio: readOnlyStudio, validatedLocation: validatedLocation, nodePathInfo: track.nodePathInfo, keyframeDisplayOffset: track.keyframeDisplayOffset, renderTransformControls: () => jsx_runtime_1.jsx(AlignmentControls_1.AlignmentControls, { track: track }) }), jsx_runtime_1.jsxs(common_1.InspectorQuickActionsSection, { children: [
|
|
171
|
+
jsx_runtime_1.jsx(SequenceInspectorHeader_1.SequenceInspectorHeader, { sourceLocation: sourceLocation, track: track }, stackKey !== null && stackKey !== void 0 ? stackKey : track.sequence.id), jsx_runtime_1.jsx(SequenceInspectorHeader_1.SequenceInspectorDuplicationSection, { track: track }), connectedCompositions.length > 0 ? (jsx_runtime_1.jsx(ConnectedCompositionsSection_1.ConnectedCompositionsSection, { connectedCompositions: connectedCompositions })) : null, validatedLocation ? (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [jsx_runtime_1.jsx(InspectorSequenceSection_1.InspectorSequenceSection, { sequence: track.sequence, readOnlyStudio: readOnlyStudio, validatedLocation: validatedLocation, nodePathInfo: track.nodePathInfo, keyframeDisplayOffset: track.keyframeDisplayOffset, renderTransformControls: () => jsx_runtime_1.jsx(AlignmentControls_1.AlignmentControls, { track: track }) }), jsx_runtime_1.jsxs(common_1.InspectorQuickActionsSection, { children: [
|
|
177
172
|
jsx_runtime_1.jsx(SplitSequenceQuickAction, { selection: sequenceSelection, track: track }), jsx_runtime_1.jsx(SequenceSourceQuickActions, { selection: sequenceSelection, track: track, validatedSource: validatedLocation.source })
|
|
178
173
|
] })
|
|
179
174
|
] })) : (jsx_runtime_1.jsx(common_1.InspectorMessage, { children: "Source controls unavailable" }))] }));
|
|
@@ -3,7 +3,6 @@ import type { RenderModalWarning } from '../RenderModal/DataEditor';
|
|
|
3
3
|
export declare const InspectorSectionHeader: React.FC<{
|
|
4
4
|
readonly children: React.ReactNode;
|
|
5
5
|
}>;
|
|
6
|
-
export declare const InspectorSectionDivider: React.FC;
|
|
7
6
|
export declare const InspectorQuickActionsSection: React.FC<{
|
|
8
7
|
readonly children: React.ReactNode;
|
|
9
8
|
}>;
|
|
@@ -24,12 +23,6 @@ export declare const InspectorDetailRow: React.FC<{
|
|
|
24
23
|
readonly label: React.ReactNode | ((hovered: boolean) => React.ReactNode);
|
|
25
24
|
readonly children: React.ReactNode;
|
|
26
25
|
}>;
|
|
27
|
-
export type InspectorQuickActionSegment = {
|
|
28
|
-
readonly disabled: boolean;
|
|
29
|
-
readonly onClick: React.MouseEventHandler<HTMLButtonElement>;
|
|
30
|
-
readonly renderIcon: (color: string) => React.ReactNode;
|
|
31
|
-
readonly title?: string;
|
|
32
|
-
};
|
|
33
26
|
export type InspectorQuickActionProps = {
|
|
34
27
|
readonly children: React.ReactNode;
|
|
35
28
|
readonly disabled: boolean;
|
|
@@ -39,12 +32,6 @@ export type InspectorQuickActionProps = {
|
|
|
39
32
|
readonly size?: 'default' | 'compact';
|
|
40
33
|
readonly style?: React.CSSProperties;
|
|
41
34
|
readonly title?: string;
|
|
42
|
-
readonly variant?: {
|
|
43
|
-
readonly type: 'single';
|
|
44
|
-
} | {
|
|
45
|
-
readonly type: 'segmented';
|
|
46
|
-
readonly trailing: InspectorQuickActionSegment;
|
|
47
|
-
};
|
|
48
35
|
};
|
|
49
36
|
export declare const InspectorQuickAction: React.FC<InspectorQuickActionProps>;
|
|
50
37
|
export declare const InspectorDefaultPropsWarnings: React.FC<{
|