@remotion/studio 4.0.525 → 4.0.527
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/focus-default-props-path.js +7 -1
- package/dist/api/restart-studio.d.ts +1 -1
- package/dist/api/restart-studio.js +1 -1
- package/dist/components/AgentPrompt.d.ts +6 -0
- package/dist/components/AgentPrompt.js +107 -0
- package/dist/components/AssetFileIcon.js +2 -0
- package/dist/components/AssetSelectorItem.d.ts +1 -23
- package/dist/components/AssetSelectorItem.js +10 -200
- package/dist/components/Canvas.js +109 -44
- package/dist/components/CanvasCaptureDropHandler.js +63 -0
- package/dist/components/CanvasOrLoading.js +10 -2
- package/dist/components/CaptionInspector.js +9 -3
- package/dist/{error-overlay/remotion-overlay → components}/CodeFrame.d.ts +2 -0
- package/dist/components/CodeFrame.js +77 -0
- package/dist/components/CompositionSelectorItem.js +7 -17
- package/dist/components/CurrentAsset.js +6 -4
- package/dist/components/ElementInstallConfirmation.js +69 -38
- package/dist/components/FilePreview.js +4 -0
- package/dist/components/FixComputedValueModal.js +64 -96
- package/dist/components/GenerateWithAgentModal.d.ts +9 -0
- package/dist/components/GenerateWithAgentModal.js +39 -0
- package/dist/components/InitialCompositionLoader.js +1 -1
- package/dist/components/InlineDropdown.js +26 -2
- package/dist/components/InlineEditableTitle.js +3 -0
- package/dist/components/InspectorOpenInEditor.js +8 -4
- package/dist/components/InspectorPanel/CollapsibleInspectorSection.d.ts +7 -0
- package/dist/components/InspectorPanel/CollapsibleInspectorSection.js +14 -0
- package/dist/components/InspectorPanel/CollapsibleInspectorSectionHeader.d.ts +1 -1
- package/dist/components/InspectorPanel/CollapsibleInspectorSectionHeader.js +20 -8
- package/dist/components/InspectorPanel/CompositionInspector.js +32 -15
- package/dist/components/InspectorPanel/CompositionMetadata.js +7 -0
- package/dist/components/InspectorPanel/ConnectedCompositionsSection.js +6 -12
- package/dist/components/InspectorPanel/ElementLibraryButton.js +2 -0
- package/dist/components/InspectorPanel/GuideInspector.js +2 -3
- package/dist/components/InspectorPanel/KeyframeSettings.js +5 -6
- package/dist/components/InspectorPanel/MultiSequenceInspector.js +34 -2
- package/dist/components/InspectorPanel/SequenceSelectionInspector.js +45 -4
- package/dist/components/InspectorPanel/common.d.ts +4 -0
- package/dist/components/InspectorPanel/common.js +15 -2
- package/dist/components/InspectorPanel/styles.d.ts +0 -3
- package/dist/components/InspectorPanel/styles.js +3 -27
- package/dist/components/InspectorPanel/use-composition-actions.d.ts +2 -0
- package/dist/components/InspectorPanel/use-composition-actions.js +16 -0
- package/dist/components/InspectorPanel/use-inspector-section-expanded.d.ts +1 -0
- package/dist/components/InspectorPanel/use-inspector-section-expanded.js +21 -0
- package/dist/components/InspectorSequenceSection.js +44 -35
- package/dist/components/InspectorSourceLocation.js +4 -0
- package/dist/components/KeyboardShortcutsSettings.js +12 -4
- package/dist/components/LutPreview.d.ts +4 -0
- package/dist/components/LutPreview.js +192 -0
- package/dist/components/MenuBuildIndicator.js +1 -0
- package/dist/components/MenuCompositionName.js +4 -9
- package/dist/components/Modals.js +3 -6
- package/dist/components/ModelsSettings.js +15 -4
- package/dist/components/NewComposition/CancelButton.js +1 -1
- package/dist/components/Notifications/NotificationCenter.d.ts +0 -1
- package/dist/components/Notifications/NotificationCenter.js +1 -22
- package/dist/components/Preview.js +3 -0
- package/dist/components/QuickSwitcher/ExplorerQuickSwitcherTrigger.js +1 -0
- package/dist/components/QuickSwitcher/QuickSwitcherContent.js +1 -0
- package/dist/components/QuickSwitcher/QuickSwitcherResult.js +4 -9
- package/dist/components/RadioButton.js +1 -0
- package/dist/components/RenderModal/DataEditor.js +4 -1
- package/dist/components/RenderModal/SchemaEditor/scroll-to-default-props-path.d.ts +1 -0
- package/dist/components/RenderModal/SchemaEditor/scroll-to-default-props-path.js +2 -1
- package/dist/components/RenderModal/WebRenderModal.js +10 -2
- package/dist/components/RenderQueue/CaptionQueueItem.js +5 -2
- package/dist/components/RenderQueue/CaptionQueueProcessor.js +35 -8
- package/dist/components/RenderQueue/VideoMattingQueueItem.js +1 -0
- package/dist/components/RenderQueue/caption-job-types.d.ts +6 -0
- package/dist/components/RenderQueue/index.js +1 -0
- package/dist/components/RendersTab.js +4 -0
- package/dist/components/SelectedOutlineElement.js +6 -0
- package/dist/components/SelectedOutlineSnapIndicators.d.ts +6 -0
- package/dist/components/SelectedOutlineSnapIndicators.js +16 -12
- package/dist/components/SequencePropsSubscriptionProvider.d.ts +3 -0
- package/dist/components/SequencePropsSubscriptionProvider.js +8 -6
- package/dist/components/SettingsButton.js +11 -2
- package/dist/components/SettingsModal.d.ts +1 -2
- package/dist/components/SettingsModal.js +24 -6
- package/dist/components/SettingsModalFooter.js +17 -3
- package/dist/components/SkillsSettings.d.ts +5 -0
- package/dist/components/SkillsSettings.js +29 -26
- package/dist/components/Timeline/Timeline.js +10 -11
- package/dist/components/Timeline/TimelineAssetField.js +81 -51
- package/dist/components/Timeline/TimelineDeleteKeybindings.js +6 -9
- package/dist/components/Timeline/TimelineEffectItem.js +1 -0
- package/dist/components/Timeline/TimelineExpandArrowButton.js +1 -0
- package/dist/components/Timeline/TimelineExpandedRow.js +1 -0
- package/dist/components/Timeline/TimelineFieldLabel.js +1 -0
- package/dist/components/Timeline/TimelineHeightContainer.js +11 -1
- package/dist/components/Timeline/TimelineKeyframeControls.js +16 -1
- package/dist/components/Timeline/TimelineLayerChildren.d.ts +3 -3
- package/dist/components/Timeline/TimelineLayerChildren.js +11 -9
- package/dist/components/Timeline/TimelineLayerEye.d.ts +1 -1
- package/dist/components/Timeline/TimelineLayerEye.js +6 -3
- package/dist/components/Timeline/TimelineList.js +9 -3
- package/dist/components/Timeline/TimelineSchemaField.js +2 -6
- package/dist/components/Timeline/TimelineSelection.d.ts +14 -3
- package/dist/components/Timeline/TimelineSelection.js +91 -49
- package/dist/components/Timeline/TimelineSequence.js +28 -2
- package/dist/components/Timeline/TimelineSequenceFrame.js +1 -0
- package/dist/components/Timeline/TimelineSequenceItem.d.ts +2 -0
- package/dist/components/Timeline/TimelineSequenceItem.js +45 -13
- package/dist/components/Timeline/TimelineViewport.d.ts +1 -0
- package/dist/components/Timeline/TimelineViewport.js +10 -1
- package/dist/components/Timeline/TimelineVirtualization.d.ts +3 -3
- package/dist/components/Timeline/delete-selected-timeline-item.js +2 -2
- package/dist/components/Timeline/get-sequence-context-menu-items.d.ts +6 -2
- package/dist/components/Timeline/get-sequence-context-menu-items.js +143 -46
- package/dist/components/Timeline/normalize-font-weight-for-keyframe.d.ts +1 -0
- package/dist/components/Timeline/normalize-font-weight-for-keyframe.js +19 -0
- package/dist/components/Timeline/split-selected-timeline-item.d.ts +13 -10
- package/dist/components/Timeline/split-selected-timeline-item.js +58 -35
- package/dist/components/Timeline/timeline-display-groups.d.ts +9 -0
- package/dist/components/Timeline/timeline-display-groups.js +66 -0
- package/dist/components/Timeline/use-timeline-asset-drop.js +21 -21
- package/dist/components/Timeline/use-timeline-expanded-tree.d.ts +2 -1
- package/dist/components/Timeline/use-timeline-expanded-tree.js +1 -2
- package/dist/components/TimelineCombobox.js +1 -0
- package/dist/components/Transcription/TranscriptionModal.js +16 -11
- package/dist/components/Transcription/TranscriptionModalWithOptionalWhisper.js +1 -1
- package/dist/components/UpdateStatusContext.d.ts +2 -2
- package/dist/components/UpdateStatusContext.js +6 -7
- package/dist/components/UpdatesSettings.js +6 -6
- package/dist/components/WebMcp.js +41 -41
- package/dist/components/asset-context-menu.d.ts +32 -0
- package/dist/components/asset-context-menu.js +242 -0
- package/dist/components/composition-drop-preview.d.ts +9 -2
- package/dist/components/composition-drop-preview.js +7 -4
- package/dist/components/composition-menu-items.d.ts +4 -6
- package/dist/components/composition-menu-items.js +191 -75
- package/dist/components/delete-jsx-nodes-api.d.ts +2 -0
- package/dist/components/{delete-jsx-node-api.js → delete-jsx-nodes-api.js} +5 -5
- package/dist/components/get-open-in-menu-items.d.ts +6 -5
- package/dist/components/get-open-in-menu-items.js +22 -16
- package/dist/components/keyboard-shortcuts.d.ts +4 -4
- package/dist/components/keyboard-shortcuts.js +3 -1
- package/dist/components/public-output-name.d.ts +1 -0
- package/dist/components/public-output-name.js +7 -3
- package/dist/components/selected-outline-order.js +18 -12
- package/dist/components/use-open-in-menu-apps.d.ts +14 -0
- package/dist/components/use-open-in-menu-apps.js +33 -0
- package/dist/error-overlay/remotion-overlay/ErrorDisplay.js +2 -2
- package/dist/error-overlay/remotion-overlay/OpenInEditor.d.ts +1 -0
- package/dist/error-overlay/remotion-overlay/OpenInEditor.js +3 -3
- package/dist/error-overlay/remotion-overlay/StackFrame.d.ts +5 -1
- package/dist/error-overlay/remotion-overlay/StackFrame.js +26 -19
- package/dist/esm/{CaptionQueueProcessor-k0yrm3dj.mjs → CaptionQueueProcessor-npa6szn1.mjs} +39 -8
- package/dist/esm/{LazyModels-gfmpcy4h.mjs → LazyModels-nh3c8h9p.mjs} +4 -3
- package/dist/esm/{LazyModels-m1rf06wh.mjs → LazyModels-rr5v8h5y.mjs} +4 -3
- package/dist/esm/{TranscriptionModal-8pvrehg4.mjs → TranscriptionModal-79m5wgcj.mjs} +25 -17
- package/dist/esm/{VideoMattingModal-fefbzgka.mjs → VideoMattingModal-31pew0xj.mjs} +9 -6
- package/dist/esm/index-21hxsfaa.mjs +239 -0
- package/dist/esm/{index-s848rffx.mjs → index-4zen9prq.mjs} +5438 -4686
- package/dist/esm/index-5t2dwxsk.mjs +530 -0
- package/dist/esm/{index-vsxrxfpj.mjs → index-614tdz2q.mjs} +1 -1
- package/dist/esm/{index-0x13f28h.mjs → index-9xxg6218.mjs} +20 -541
- package/dist/esm/{index-hbezgbbq.mjs → index-ac5550e7.mjs} +1 -1
- package/dist/esm/{index-41kqns5c.mjs → index-e855w59j.mjs} +15 -92
- package/dist/esm/{index-tzxb8808.mjs → index-n5gmcvhz.mjs} +8 -8
- package/dist/esm/{index-ggqpre9v.mjs → index-ppspzgn9.mjs} +4963 -4178
- package/dist/esm/{index-jrw61pkj.mjs → index-r0ejh5sy.mjs} +1 -1
- package/dist/esm/index-r1gr3j3a.mjs +80 -0
- package/dist/esm/{index-mww32xc8.mjs → index-s7qa3xbw.mjs} +6 -4
- package/dist/esm/{index-1089795y.mjs → index-vxwg66ar.mjs} +7 -22
- package/dist/esm/index.mjs +13 -6
- package/dist/esm/internals.mjs +10 -7
- package/dist/esm/previewEntry.mjs +10 -7
- package/dist/esm/{resolve-composition-component-location-bt2d6qxq.mjs → resolve-composition-component-location-qrp05g62.mjs} +1 -1
- package/dist/helpers/client-id.d.ts +1 -0
- package/dist/helpers/client-id.js +8 -4
- package/dist/helpers/copy-text.js +1 -16
- package/dist/helpers/cube-lut.d.ts +12 -0
- package/dist/helpers/cube-lut.js +160 -0
- package/dist/helpers/get-preview-file-type.d.ts +1 -1
- package/dist/helpers/get-preview-file-type.js +3 -0
- package/dist/helpers/hoverable.js +2 -1
- package/dist/helpers/open-in-editor.d.ts +5 -2
- package/dist/helpers/open-in-editor.js +13 -5
- package/dist/helpers/settings-tab-availability.d.ts +14 -0
- package/dist/helpers/settings-tab-availability.js +35 -0
- package/dist/helpers/studio-runtime-config.d.ts +1 -1
- package/dist/helpers/use-keybinding.d.ts +1 -1
- package/dist/helpers/use-keyboard-shortcut-label.d.ts +2 -2
- package/dist/helpers/use-menu-structure.js +31 -21
- package/dist/icons/lut.d.ts +4 -0
- package/dist/icons/lut.js +6 -0
- package/dist/icons/sparkles.d.ts +4 -0
- package/dist/icons/sparkles.js +6 -0
- package/dist/state/modals.d.ts +17 -2
- package/dist/state/timeline-zoom.js +4 -0
- package/package.json +19 -19
- package/dist/components/delete-jsx-node-api.d.ts +0 -2
- package/dist/error-overlay/remotion-overlay/CodeFrame.js +0 -62
|
@@ -5,12 +5,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
5
5
|
const colors_1 = require("../../helpers/colors");
|
|
6
6
|
const hoverable_1 = require("../../helpers/hoverable");
|
|
7
7
|
const styles_1 = require("./styles");
|
|
8
|
-
const
|
|
9
|
-
appearance: 'none',
|
|
10
|
-
backgroundColor: 'transparent',
|
|
11
|
-
border: 'none',
|
|
12
|
-
borderRadius: 3,
|
|
13
|
-
cursor: 'default',
|
|
8
|
+
const sectionTitle = {
|
|
14
9
|
display: 'block',
|
|
15
10
|
flex: 1,
|
|
16
11
|
fontFamily: 'Arial, Helvetica, sans-serif',
|
|
@@ -24,7 +19,20 @@ const collapsibleSectionHeaderButton = {
|
|
|
24
19
|
textAlign: 'left',
|
|
25
20
|
textOverflow: 'ellipsis',
|
|
26
21
|
userSelect: 'none',
|
|
22
|
+
WebkitUserSelect: 'none',
|
|
27
23
|
whiteSpace: 'nowrap',
|
|
24
|
+
};
|
|
25
|
+
const staticSectionTitle = {
|
|
26
|
+
...sectionTitle,
|
|
27
|
+
color: colors_1.LIGHT_TEXT,
|
|
28
|
+
};
|
|
29
|
+
const collapsibleSectionHeaderButton = {
|
|
30
|
+
...sectionTitle,
|
|
31
|
+
appearance: 'none',
|
|
32
|
+
backgroundColor: 'transparent',
|
|
33
|
+
border: 'none',
|
|
34
|
+
borderRadius: 3,
|
|
35
|
+
cursor: 'default',
|
|
28
36
|
...(0, hoverable_1.hoverableStyle)({
|
|
29
37
|
idleBackground: colors_1.TRANSPARENT,
|
|
30
38
|
hoverBackground: colors_1.TRANSPARENT,
|
|
@@ -32,8 +40,12 @@ const collapsibleSectionHeaderButton = {
|
|
|
32
40
|
hoverColor: colors_1.WHITE,
|
|
33
41
|
}),
|
|
34
42
|
};
|
|
43
|
+
const stopActivationKeyPropagation = (event) => {
|
|
44
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
45
|
+
event.stopPropagation();
|
|
46
|
+
}
|
|
47
|
+
};
|
|
35
48
|
const CollapsibleInspectorSectionHeader = ({ action, expanded, label, onToggle }) => {
|
|
36
|
-
return (jsx_runtime_1.jsxs("div", { style: styles_1.sectionHeaderRow, children: [
|
|
37
|
-
jsx_runtime_1.jsx("button", { type: "button", "aria-expanded": expanded, "aria-label": `${expanded ? 'Collapse' : 'Expand'} ${label}`, className: `__remotion-inspector-section-title ${hoverable_1.HOVERABLE_CLASS_NAME}`, onClick: onToggle, style: collapsibleSectionHeaderButton, children: label }), action] }));
|
|
49
|
+
return (jsx_runtime_1.jsxs("div", { style: styles_1.sectionHeaderRow, children: [onToggle === null ? (jsx_runtime_1.jsx("div", { style: staticSectionTitle, children: label })) : (jsx_runtime_1.jsx("button", { type: "button", "aria-expanded": expanded, "aria-label": `${expanded ? 'Collapse' : 'Expand'} ${label}`, className: `__remotion-inspector-section-title ${hoverable_1.HOVERABLE_CLASS_NAME} ${hoverable_1.FOCUS_VISIBLE_ONLY_CLASS_NAME}`, onClick: onToggle, onKeyDown: stopActivationKeyPropagation, onKeyUp: stopActivationKeyPropagation, style: collapsibleSectionHeaderButton, children: label })), action] }));
|
|
38
50
|
};
|
|
39
51
|
exports.CollapsibleInspectorSectionHeader = CollapsibleInspectorSectionHeader;
|
|
@@ -11,6 +11,7 @@ const interactivity_enabled_1 = require("../../helpers/interactivity-enabled");
|
|
|
11
11
|
const cloud_download_1 = require("../../icons/cloud-download");
|
|
12
12
|
const frame_1 = require("../../icons/frame");
|
|
13
13
|
const solid_1 = require("../../icons/solid");
|
|
14
|
+
const sparkles_1 = require("../../icons/sparkles");
|
|
14
15
|
const video_1 = require("../../icons/video");
|
|
15
16
|
const VisualControls_1 = require("../../visual-controls/VisualControls");
|
|
16
17
|
const ConfirmationDialog_1 = require("../ConfirmationDialog");
|
|
@@ -22,16 +23,20 @@ const NotificationCenter_1 = require("../Notifications/NotificationCenter");
|
|
|
22
23
|
const ObserveDefaultPropsContext_1 = require("../ObserveDefaultPropsContext");
|
|
23
24
|
const DataEditor_1 = require("../RenderModal/DataEditor");
|
|
24
25
|
const infer_zod_schema_from_value_1 = require("../RenderModal/SchemaEditor/infer-zod-schema-from-value");
|
|
26
|
+
const scroll_to_default_props_path_1 = require("../RenderModal/SchemaEditor/scroll-to-default-props-path");
|
|
25
27
|
const zod_schema_type_1 = require("../RenderModal/SchemaEditor/zod-schema-type");
|
|
26
28
|
const WarningIndicatorButton_1 = require("../RenderModal/WarningIndicatorButton");
|
|
27
29
|
const SegmentedControl_1 = require("../SegmentedControl");
|
|
28
30
|
const VisualControlsContent_1 = require("../VisualControls/VisualControlsContent");
|
|
31
|
+
const CollapsibleInspectorSection_1 = require("./CollapsibleInspectorSection");
|
|
32
|
+
const CollapsibleInspectorSectionHeader_1 = require("./CollapsibleInspectorSectionHeader");
|
|
29
33
|
const common_1 = require("./common");
|
|
30
34
|
const CompositionInspectorHeader_1 = require("./CompositionInspectorHeader");
|
|
31
35
|
const CompositionMetadata_1 = require("./CompositionMetadata");
|
|
32
36
|
const ElementLibraryButton_1 = require("./ElementLibraryButton");
|
|
33
37
|
const styles_1 = require("./styles");
|
|
34
38
|
const use_composition_actions_1 = require("./use-composition-actions");
|
|
39
|
+
const use_inspector_section_expanded_1 = require("./use-inspector-section-expanded");
|
|
35
40
|
const actionIconStyle = {
|
|
36
41
|
height: 18,
|
|
37
42
|
width: 18,
|
|
@@ -53,7 +58,7 @@ const downloadLicenseLink = {
|
|
|
53
58
|
const CompositionActions = () => {
|
|
54
59
|
var _a;
|
|
55
60
|
var _b;
|
|
56
|
-
const { canInsertAsset, canInsertComposition, canInsertSolid, canShowInsertAsset, canShowInsertComposition, canShowInsertSolid, insertAsset, insertComposition, insertSolid, } = (0, use_composition_actions_1.useCompositionActions)();
|
|
61
|
+
const { canInsertAsset, canInsertComposition, canInsertSolid, canShowInsertAsset, canShowInsertComposition, canShowInsertSolid, insertAsset, insertComposition, insertSolid, generateWithAgent, canShowGenerateWithAgent, } = (0, use_composition_actions_1.useCompositionActions)();
|
|
57
62
|
const downloadProject = (_b = (_a = (0, browser_studio_operations_1.getBrowserStudioOperations)()) === null || _a === void 0 ? void 0 : _a.downloadProject) !== null && _b !== void 0 ? _b : null;
|
|
58
63
|
const confirm = (0, ConfirmationDialog_1.useConfirmationDialog)();
|
|
59
64
|
const onDownloadProject = (0, react_1.useCallback)(async () => {
|
|
@@ -84,12 +89,11 @@ const CompositionActions = () => {
|
|
|
84
89
|
if (!canShowInsertAsset &&
|
|
85
90
|
!canShowInsertComposition &&
|
|
86
91
|
!canShowInsertSolid &&
|
|
92
|
+
!canShowGenerateWithAgent &&
|
|
87
93
|
downloadProject === null) {
|
|
88
94
|
return null;
|
|
89
95
|
}
|
|
90
|
-
return (jsx_runtime_1.jsxs(jsx_runtime_1.
|
|
91
|
-
jsx_runtime_1.jsx(common_1.InspectorSectionHeader, { children: "Actions" }), 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] })
|
|
92
|
-
] }));
|
|
96
|
+
return (jsx_runtime_1.jsx(CollapsibleInspectorSection_1.CollapsibleInspectorSection, { collapsible: true, label: "Actions", sectionId: "composition-actions", children: 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, canShowGenerateWithAgent ? (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: false, onClick: generateWithAgent, renderIcon: (color) => (jsx_runtime_1.jsx(sparkles_1.SparklesIcon, { color: color, style: actionIconStyle })), children: "Generate with agent..." })) : 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] }) }));
|
|
93
97
|
};
|
|
94
98
|
const CompositionDefaultPropsSection = ({ composition, currentDefaultProps, readOnlyStudio, setDefaultProps }) => {
|
|
95
99
|
var _a;
|
|
@@ -97,6 +101,23 @@ const CompositionDefaultPropsSection = ({ composition, currentDefaultProps, read
|
|
|
97
101
|
const zodTypes = (0, get_zod_if_possible_1.useZodTypesIfPossible)();
|
|
98
102
|
const canSaveDefaultProps = (0, react_1.useContext)(ObserveDefaultPropsContext_1.ObserveDefaultPropsContext);
|
|
99
103
|
const [defaultPropsMode, setDefaultPropsMode] = (0, react_1.useState)('schema');
|
|
104
|
+
const [expanded, setExpanded] = (0, use_inspector_section_expanded_1.useInspectorSectionExpanded)('composition-default-props');
|
|
105
|
+
const pendingScroll = (0, react_1.useRef)(null);
|
|
106
|
+
(0, react_1.useImperativeHandle)(scroll_to_default_props_path_1.expandDefaultPropsEditorRef, () => (onExpanded) => {
|
|
107
|
+
if (expanded) {
|
|
108
|
+
onExpanded();
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
pendingScroll.current = onExpanded;
|
|
112
|
+
setExpanded(true);
|
|
113
|
+
}, [expanded, setExpanded]);
|
|
114
|
+
(0, react_1.useLayoutEffect)(() => {
|
|
115
|
+
if (expanded && pendingScroll.current !== null) {
|
|
116
|
+
const scroll = pendingScroll.current;
|
|
117
|
+
pendingScroll.current = null;
|
|
118
|
+
scroll();
|
|
119
|
+
}
|
|
120
|
+
}, [expanded]);
|
|
100
121
|
const compositionId = composition.id;
|
|
101
122
|
(0, react_1.useEffect)(() => {
|
|
102
123
|
setDefaultPropsMode('schema');
|
|
@@ -142,17 +163,15 @@ const CompositionDefaultPropsSection = ({ composition, currentDefaultProps, read
|
|
|
142
163
|
defaultProps: currentDefaultProps,
|
|
143
164
|
mode: defaultPropsMode,
|
|
144
165
|
propsEditType: 'default-props',
|
|
145
|
-
showCannotSaveDefaultPropsWarning: canShowDefaultPropsSection,
|
|
166
|
+
showCannotSaveDefaultPropsWarning: canShowDefaultPropsSection && !readOnlyStudio,
|
|
146
167
|
});
|
|
147
|
-
if (
|
|
168
|
+
if (!canShowDefaultPropsSection) {
|
|
148
169
|
return null;
|
|
149
170
|
}
|
|
150
171
|
return (jsx_runtime_1.jsxs("div", { style: styles_1.compositionDefaultPropsSection, children: [
|
|
151
|
-
jsx_runtime_1.jsx(common_1.InspectorSectionHeader, { children: jsx_runtime_1.jsxs("div", { style: styles_1.sectionHeaderRow, children: [
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
] }), 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 })
|
|
155
|
-
] }) }), 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)
|
|
172
|
+
jsx_runtime_1.jsx(common_1.InspectorSectionHeader, { children: jsx_runtime_1.jsx(CollapsibleInspectorSectionHeader_1.CollapsibleInspectorSectionHeader, { action: expanded ? (jsx_runtime_1.jsxs("div", { style: styles_1.sectionHeaderRow, children: [
|
|
173
|
+
jsx_runtime_1.jsx(SegmentedControl_1.SegmentedControl, { items: defaultPropsModeItems, needsWrapping: false, size: "compact" }), defaultPropsWarnings.length > 0 ? (jsx_runtime_1.jsx(WarningIndicatorButton_1.WarningIndicatorButton, { setShowWarning: setShowWarning, showWarning: showWarning, warningCount: defaultPropsWarnings.length, size: "compact" })) : null] })) : null, expanded: expanded, label: readOnlyStudio ? 'Props' : 'Default Props', onToggle: () => setExpanded(!expanded) }) }), jsx_runtime_1.jsxs(common_1.InspectorSectionBody, { expanded: expanded, children: [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)
|
|
174
|
+
] })
|
|
156
175
|
] }));
|
|
157
176
|
};
|
|
158
177
|
const CompositionVisualControlsSection = ({ readOnlyStudio }) => {
|
|
@@ -163,15 +182,13 @@ const CompositionVisualControlsSection = ({ readOnlyStudio }) => {
|
|
|
163
182
|
if (!hasVisualControls) {
|
|
164
183
|
return null;
|
|
165
184
|
}
|
|
166
|
-
return (jsx_runtime_1.
|
|
167
|
-
jsx_runtime_1.jsx(common_1.InspectorSectionHeader, { children: "Visual Controls" }), jsx_runtime_1.jsx(VisualControlsContent_1.VisualControlsContent, {})
|
|
168
|
-
] }));
|
|
185
|
+
return (jsx_runtime_1.jsx(CollapsibleInspectorSection_1.CollapsibleInspectorSection, { collapsible: true, label: "Visual Controls", sectionId: "composition-visual-controls", children: jsx_runtime_1.jsx(VisualControlsContent_1.VisualControlsContent, {}) }));
|
|
169
186
|
};
|
|
170
187
|
const CompositionInspector = ({ composition, currentDefaultProps, readOnlyStudio, setDefaultProps }) => {
|
|
171
188
|
const { previewServerState } = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx);
|
|
172
189
|
return (jsx_runtime_1.jsxs("div", { style: styles_1.scrollableContainer, className: is_menu_item_1.VERTICAL_SCROLLBAR_CLASSNAME, children: [
|
|
173
190
|
jsx_runtime_1.jsxs("div", { style: styles_1.inspectorOverviewSection, children: [
|
|
174
|
-
jsx_runtime_1.jsx(CompositionInspectorHeader_1.CompositionInspectorHeader, {}), jsx_runtime_1.jsx(
|
|
191
|
+
jsx_runtime_1.jsx(CompositionInspectorHeader_1.CompositionInspectorHeader, {}), jsx_runtime_1.jsx(CollapsibleInspectorSection_1.CollapsibleInspectorSection, { collapsible: true, label: "Metadata", sectionId: "composition-metadata", children: jsx_runtime_1.jsx(CompositionMetadata_1.CompositionMetadata, { compositionId: composition.id, disabled: readOnlyStudio || previewServerState.type !== 'connected', stack: composition.stack }) })
|
|
175
192
|
] }), 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, {})
|
|
176
193
|
] }));
|
|
177
194
|
};
|
|
@@ -31,6 +31,7 @@ const computedContainerStyle = {
|
|
|
31
31
|
...InputDragger_1.inputDraggerContainerStyle,
|
|
32
32
|
textAlign: 'right',
|
|
33
33
|
userSelect: 'none',
|
|
34
|
+
WebkitUserSelect: 'none',
|
|
34
35
|
};
|
|
35
36
|
const computedValueStyle = {
|
|
36
37
|
color: colors_1.WHITE_ALPHA_40,
|
|
@@ -38,9 +39,13 @@ const computedValueStyle = {
|
|
|
38
39
|
fontSize: 12,
|
|
39
40
|
fontStyle: 'italic',
|
|
40
41
|
lineHeight: '20px',
|
|
42
|
+
userSelect: 'none',
|
|
43
|
+
WebkitUserSelect: 'none',
|
|
41
44
|
};
|
|
42
45
|
const metadataFormatterStyle = {
|
|
43
46
|
fontSize: 13,
|
|
47
|
+
userSelect: 'none',
|
|
48
|
+
WebkitUserSelect: 'none',
|
|
44
49
|
};
|
|
45
50
|
const metadataDraggerStyles = {
|
|
46
51
|
durationInFrames: {
|
|
@@ -110,6 +115,8 @@ const metadataLabelText = {
|
|
|
110
115
|
minWidth: 0,
|
|
111
116
|
overflow: 'hidden',
|
|
112
117
|
textOverflow: 'ellipsis',
|
|
118
|
+
userSelect: 'none',
|
|
119
|
+
WebkitUserSelect: 'none',
|
|
113
120
|
whiteSpace: 'nowrap',
|
|
114
121
|
};
|
|
115
122
|
const dimensionPresets = [
|
|
@@ -4,7 +4,6 @@ exports.ConnectedCompositionsSection = exports.useConnectedCompositions = void 0
|
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const remotion_1 = require("remotion");
|
|
7
|
-
const client_id_1 = require("../../helpers/client-id");
|
|
8
7
|
const get_connected_compositions_1 = require("../../helpers/get-connected-compositions");
|
|
9
8
|
const noop_1 = require("../../helpers/noop");
|
|
10
9
|
const modals_1 = require("../../state/modals");
|
|
@@ -13,7 +12,8 @@ const CompositionOrStillIcon_1 = require("../CompositionOrStillIcon");
|
|
|
13
12
|
const ContextMenu_1 = require("../ContextMenu");
|
|
14
13
|
const InitialCompositionLoader_1 = require("../InitialCompositionLoader");
|
|
15
14
|
const use_resolved_stack_1 = require("../Timeline/use-resolved-stack");
|
|
16
|
-
const
|
|
15
|
+
const use_open_in_menu_apps_1 = require("../use-open-in-menu-apps");
|
|
16
|
+
const CollapsibleInspectorSection_1 = require("./CollapsibleInspectorSection");
|
|
17
17
|
const common_1 = require("./common");
|
|
18
18
|
const compositionIconStyle = {
|
|
19
19
|
height: 18,
|
|
@@ -36,33 +36,27 @@ const useConnectedCompositions = ({ track, }) => {
|
|
|
36
36
|
};
|
|
37
37
|
exports.useConnectedCompositions = useConnectedCompositions;
|
|
38
38
|
const ConnectedCompositionsSection = ({ connectedCompositions }) => {
|
|
39
|
-
return (jsx_runtime_1.
|
|
40
|
-
jsx_runtime_1.jsx(common_1.InspectorSectionHeader, { children: "Connected compositions" }), jsx_runtime_1.jsx("div", { style: compositionListStyle, children: connectedCompositions.map((composition) => (jsx_runtime_1.jsx(ConnectedCompositionRow, { composition: composition }, composition.id))) })
|
|
41
|
-
] }));
|
|
39
|
+
return (jsx_runtime_1.jsx(CollapsibleInspectorSection_1.CollapsibleInspectorSection, { collapsible: true, label: "Connected compositions", sectionId: "connected-compositions", children: jsx_runtime_1.jsx("div", { style: compositionListStyle, children: connectedCompositions.map((composition) => (jsx_runtime_1.jsx(ConnectedCompositionRow, { composition: composition }, composition.id))) }) }));
|
|
42
40
|
};
|
|
43
41
|
exports.ConnectedCompositionsSection = ConnectedCompositionsSection;
|
|
44
42
|
const ConnectedCompositionRow = ({ composition }) => {
|
|
45
43
|
const selectComposition = (0, InitialCompositionLoader_1.useSelectComposition)();
|
|
46
44
|
const { setSelectedModal } = (0, react_1.useContext)(modals_1.SetSelectedModalContext);
|
|
47
|
-
const connectionStatus = (0,
|
|
48
|
-
.previewServerState.type;
|
|
49
|
-
const { defaultEditorId, defaultEditorName } = (0, use_default_editor_info_1.useEditorOpening)(connectionStatus === 'connected');
|
|
45
|
+
const { connectionStatus, openInApps } = (0, use_open_in_menu_apps_1.useOpenInMenuApps)();
|
|
50
46
|
const resolvedLocation = (0, use_resolved_stack_1.useResolvedStack)(composition.stack);
|
|
51
47
|
const getContextMenuItems = (0, react_1.useCallback)(() => (0, composition_menu_items_1.getCompositionContextMenuItems)({
|
|
52
48
|
closeMenu: noop_1.noop,
|
|
53
49
|
composition,
|
|
54
50
|
connectionStatus,
|
|
55
|
-
editorId: defaultEditorId,
|
|
56
|
-
editorName: defaultEditorName,
|
|
57
51
|
includeCompositionManagementItems: false,
|
|
52
|
+
openInApps,
|
|
58
53
|
readOnlyStudio: window.remotion_isReadOnlyStudio,
|
|
59
54
|
resolvedLocation,
|
|
60
55
|
setSelectedModal,
|
|
61
56
|
}), [
|
|
62
57
|
composition,
|
|
63
58
|
connectionStatus,
|
|
64
|
-
|
|
65
|
-
defaultEditorName,
|
|
59
|
+
openInApps,
|
|
66
60
|
resolvedLocation,
|
|
67
61
|
setSelectedModal,
|
|
68
62
|
]);
|
|
@@ -6,6 +6,7 @@ const react_1 = require("react");
|
|
|
6
6
|
const editor_guides_1 = require("../../state/editor-guides");
|
|
7
7
|
const is_menu_item_1 = require("../Menu/is-menu-item");
|
|
8
8
|
const InputDragger_1 = require("../NewComposition/InputDragger");
|
|
9
|
+
const CollapsibleInspectorSection_1 = require("./CollapsibleInspectorSection");
|
|
9
10
|
const common_1 = require("./common");
|
|
10
11
|
const styles_1 = require("./styles");
|
|
11
12
|
const updateGuidePosition = ({ guideId, persist, position, setGuidesList, }) => {
|
|
@@ -48,8 +49,6 @@ const GuideInspector = ({ selection }) => {
|
|
|
48
49
|
if (!guide) {
|
|
49
50
|
return jsx_runtime_1.jsx(common_1.InspectorMessage, { children: "Guide unavailable" });
|
|
50
51
|
}
|
|
51
|
-
return (jsx_runtime_1.
|
|
52
|
-
jsx_runtime_1.jsxs(common_1.InspectorSectionHeader, { children: [guide.orientation === 'vertical' ? 'Vertical' : 'Horizontal', " guide"] }), jsx_runtime_1.jsx("div", { style: styles_1.guideDetailsContainer, children: jsx_runtime_1.jsx(common_1.InspectorDetailRow, { label: guide.orientation === 'vertical' ? 'X position' : 'Y position', children: jsx_runtime_1.jsx(InputDragger_1.InputDragger, { type: "number", value: guide.position, status: "ok", onValueChange: onValueChange, onValueChangeEnd: onValueChangeEnd, onTextChange: () => undefined, step: 1, formatter: (value) => String(Math.round(Number(value))), rightAlign: true, small: true }) }) })
|
|
53
|
-
] }));
|
|
52
|
+
return (jsx_runtime_1.jsx("div", { style: styles_1.selectedContainer, className: is_menu_item_1.VERTICAL_SCROLLBAR_CLASSNAME, children: jsx_runtime_1.jsx(CollapsibleInspectorSection_1.CollapsibleInspectorSection, { collapsible: true, label: `${guide.orientation === 'vertical' ? 'Vertical' : 'Horizontal'} guide`, sectionId: "guide", children: jsx_runtime_1.jsx("div", { style: styles_1.guideDetailsContainer, children: jsx_runtime_1.jsx(common_1.InspectorDetailRow, { label: guide.orientation === 'vertical' ? 'X position' : 'Y position', children: jsx_runtime_1.jsx(InputDragger_1.InputDragger, { type: "number", value: guide.position, status: "ok", onValueChange: onValueChange, onValueChangeEnd: onValueChangeEnd, onTextChange: () => undefined, step: 1, formatter: (value) => String(Math.round(Number(value))), rightAlign: true, small: true }) }) }) }) }));
|
|
54
53
|
};
|
|
55
54
|
exports.GuideInspector = GuideInspector;
|
|
@@ -8,6 +8,7 @@ const client_id_1 = require("../../helpers/client-id");
|
|
|
8
8
|
const ComboBox_1 = require("../NewComposition/ComboBox");
|
|
9
9
|
const InputDragger_1 = require("../NewComposition/InputDragger");
|
|
10
10
|
const call_update_keyframe_settings_1 = require("../Timeline/call-update-keyframe-settings");
|
|
11
|
+
const CollapsibleInspectorSection_1 = require("./CollapsibleInspectorSection");
|
|
11
12
|
const common_1 = require("./common");
|
|
12
13
|
const styles_1 = require("./styles");
|
|
13
14
|
const comboStyle = {
|
|
@@ -132,11 +133,9 @@ const KeyframeSettings = ({ update }) => {
|
|
|
132
133
|
const posterizeFormatter = (0, react_1.useCallback)((value) => {
|
|
133
134
|
return String(Math.round(Number(value)));
|
|
134
135
|
}, []);
|
|
135
|
-
return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
] })
|
|
140
|
-
] }));
|
|
136
|
+
return (jsx_runtime_1.jsx(CollapsibleInspectorSection_1.CollapsibleInspectorSection, { collapsible: true, label: "Keyframe settings", sectionId: "keyframe-settings", children: jsx_runtime_1.jsxs("div", { style: keyframeSettingsContainer, children: [canEditInterpolationSettings ? (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
137
|
+
jsx_runtime_1.jsx(common_1.InspectorDetailRow, { label: "Extrapolate left", children: jsx_runtime_1.jsx(ComboBox_1.Combobox, { values: leftValues, selectedId: propStatus.clamping.left, title: "Extrapolate left", style: comboStyle, size: "small" }) }), jsx_runtime_1.jsx(common_1.InspectorDetailRow, { label: "Extrapolate right", children: jsx_runtime_1.jsx(ComboBox_1.Combobox, { values: rightValues, selectedId: propStatus.clamping.right, title: "Extrapolate right", style: comboStyle, size: "small" }) }), jsx_runtime_1.jsx(common_1.InspectorDetailRow, { label: "Output", children: jsx_runtime_1.jsx(ComboBox_1.Combobox, { values: outputValues, selectedId: (_b = propStatus.output) !== null && _b !== void 0 ? _b : 'linear', title: "Output", style: comboStyle, size: "small" }) })
|
|
138
|
+
] })) : null, jsx_runtime_1.jsx(common_1.InspectorDetailRow, { label: "Posterize", children: jsx_runtime_1.jsx(InputDragger_1.InputDragger, { type: "number", value: posterize, status: "ok", onValueChange: onPosterizeChange, onValueChangeEnd: onPosterizeChangeEnd, onTextChange: () => undefined, min: 0, step: 1, formatter: posterizeFormatter, rightAlign: true, small: true, disabled: disabled }) })
|
|
139
|
+
] }) }));
|
|
141
140
|
};
|
|
142
141
|
exports.KeyframeSettings = KeyframeSettings;
|
|
@@ -7,12 +7,16 @@ const react_1 = require("react");
|
|
|
7
7
|
const remotion_1 = require("remotion");
|
|
8
8
|
const calculate_timeline_1 = require("../../helpers/calculate-timeline");
|
|
9
9
|
const colors_1 = require("../../helpers/colors");
|
|
10
|
+
const interactivity_enabled_1 = require("../../helpers/interactivity-enabled");
|
|
10
11
|
const timeline_layout_1 = require("../../helpers/timeline-layout");
|
|
12
|
+
const scissors_1 = require("../../icons/scissors");
|
|
11
13
|
const InspectorInfoHeader_1 = require("../InspectorInfoHeader");
|
|
12
14
|
const InspectorPanelLayout_1 = require("../InspectorPanelLayout");
|
|
13
15
|
const layout_1 = require("../layout");
|
|
14
16
|
const is_menu_item_1 = require("../Menu/is-menu-item");
|
|
17
|
+
const split_selected_timeline_item_1 = require("../Timeline/split-selected-timeline-item");
|
|
15
18
|
const TimelineRowLayoutContext_1 = require("../Timeline/TimelineRowLayoutContext");
|
|
19
|
+
const CollapsibleInspectorSection_1 = require("./CollapsibleInspectorSection");
|
|
16
20
|
const common_1 = require("./common");
|
|
17
21
|
const MultiSequenceField_1 = require("./MultiSequenceField");
|
|
18
22
|
const styles_1 = require("./styles");
|
|
@@ -27,8 +31,14 @@ const selectionCountStyle = {
|
|
|
27
31
|
textOverflow: 'ellipsis',
|
|
28
32
|
whiteSpace: 'nowrap',
|
|
29
33
|
};
|
|
34
|
+
const actionIconStyle = {
|
|
35
|
+
display: 'block',
|
|
36
|
+
height: 16,
|
|
37
|
+
width: 16,
|
|
38
|
+
};
|
|
30
39
|
const MultiSequenceInspector = ({ selections, readOnlyStudio }) => {
|
|
31
40
|
const { sequences } = (0, react_1.useContext)(remotion_1.Internals.SequenceManager);
|
|
41
|
+
const timelinePosition = remotion_1.Internals.Timeline.useTimelinePosition();
|
|
32
42
|
const { overrideIdToNodePathMappings } = (0, react_1.useContext)(remotion_1.Internals.OverrideIdsToNodePathsGettersContext);
|
|
33
43
|
const { propStatuses } = (0, react_1.useContext)(remotion_1.Internals.VisualModePropStatusesContext);
|
|
34
44
|
const { getDragOverrides } = (0, react_1.useContext)(remotion_1.Internals.VisualModeDragOverridesContext);
|
|
@@ -92,11 +102,33 @@ const MultiSequenceInspector = ({ selections, readOnlyStudio }) => {
|
|
|
92
102
|
});
|
|
93
103
|
return ((_a = allFields[0]) !== null && _a !== void 0 ? _a : []).filter((field) => allFields.every((candidate) => candidate.some((other) => other.key === field.key && other.fieldSchema === field.fieldSchema)));
|
|
94
104
|
}, [getDragOverrides, propStatuses, runtimeValues, targets]);
|
|
105
|
+
const canSplit = !readOnlyStudio && (0, interactivity_enabled_1.isStudioInteractivityEnabled)();
|
|
106
|
+
const onSplit = (0, react_1.useCallback)(() => {
|
|
107
|
+
var _a;
|
|
108
|
+
if (!canSplit) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
(_a = (0, split_selected_timeline_item_1.splitSelectedTimelineItems)({
|
|
112
|
+
selections,
|
|
113
|
+
sequences,
|
|
114
|
+
overrideIdsToNodePaths: overrideIdToNodePathMappings,
|
|
115
|
+
propStatuses,
|
|
116
|
+
splitFrame: timelinePosition,
|
|
117
|
+
})) === null || _a === void 0 ? void 0 : _a.catch(() => undefined);
|
|
118
|
+
}, [
|
|
119
|
+
canSplit,
|
|
120
|
+
overrideIdToNodePathMappings,
|
|
121
|
+
propStatuses,
|
|
122
|
+
selections,
|
|
123
|
+
sequences,
|
|
124
|
+
timelinePosition,
|
|
125
|
+
]);
|
|
95
126
|
return (jsx_runtime_1.jsxs("div", { style: styles_1.scrollableContainer, className: is_menu_item_1.VERTICAL_SCROLLBAR_CLASSNAME, children: [
|
|
96
127
|
jsx_runtime_1.jsx(InspectorInfoHeader_1.InspectorInfoHeader, { padding: "4px 0", children: jsx_runtime_1.jsxs("div", { style: selectionCountStyle, children: [selections.length, " sequences selected"] }) }), jsx_runtime_1.jsx("div", { role: "separator", style: styles_1.sequenceHeaderDivider }), targets === null ? (jsx_runtime_1.jsx(common_1.InspectorMessage, { children: "Sequence controls unavailable" })) : fields.length === 0 ? (jsx_runtime_1.jsx(common_1.InspectorMessage, { children: "No shared controls" })) : (jsx_runtime_1.jsx(TimelineRowLayoutContext_1.TimelineRowLayoutContext.Provider, { value: TimelineRowLayoutContext_1.INSPECTOR_TIMELINE_ROW_LAYOUT, children: timeline_layout_1.SCHEMA_FIELD_GROUPS.map((group) => {
|
|
97
128
|
const groupedFields = fields.filter((field) => field.group === group.id);
|
|
98
|
-
return groupedFields.length === 0 ? null : (jsx_runtime_1.jsx(
|
|
129
|
+
return groupedFields.length === 0 ? null : (jsx_runtime_1.jsx(CollapsibleInspectorSection_1.CollapsibleInspectorSection, { collapsible: true, label: group.label, sectionId: `multi-sequence-${group.id}`, children: groupedFields.map((field) => (jsx_runtime_1.jsx(MultiSequenceField_1.MultiSequenceField, { field: field, targets: targets, readOnlyStudio: readOnlyStudio }, JSON.stringify(targets.map((target) => target.nodePath)) +
|
|
99
130
|
field.key))) }, group.id));
|
|
100
|
-
}) }))
|
|
131
|
+
}) })), jsx_runtime_1.jsx(CollapsibleInspectorSection_1.CollapsibleInspectorSection, { collapsible: true, label: "Actions", sectionId: "multi-sequence-actions", children: jsx_runtime_1.jsx(common_1.InspectorQuickActionsSection, { children: jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: !canSplit, onClick: onSplit, title: canSplit ? undefined : 'Studio is read-only', renderIcon: (color) => (jsx_runtime_1.jsx(scissors_1.ScissorsIcon, { style: actionIconStyle, color: color })), children: "Split selected" }) }) })
|
|
132
|
+
] }));
|
|
101
133
|
};
|
|
102
134
|
exports.MultiSequenceInspector = MultiSequenceInspector;
|
|
@@ -6,15 +6,19 @@ const react_1 = require("react");
|
|
|
6
6
|
const remotion_1 = require("remotion");
|
|
7
7
|
const client_id_1 = require("../../helpers/client-id");
|
|
8
8
|
const interactivity_enabled_1 = require("../../helpers/interactivity-enabled");
|
|
9
|
+
const use_media_metadata_1 = require("../../helpers/use-media-metadata");
|
|
9
10
|
const audio_1 = require("../../icons/audio");
|
|
10
11
|
const duplicate_1 = require("../../icons/duplicate");
|
|
11
12
|
const scissors_1 = require("../../icons/scissors");
|
|
12
13
|
const snowflake_1 = require("../../icons/snowflake");
|
|
14
|
+
const transcription_1 = require("../../icons/transcription");
|
|
13
15
|
const trash_1 = require("../../icons/trash");
|
|
16
|
+
const modals_1 = require("../../state/modals");
|
|
14
17
|
const ConfirmationDialog_1 = require("../ConfirmationDialog");
|
|
15
18
|
const InspectorSequenceSection_1 = require("../InspectorSequenceSection");
|
|
16
19
|
const is_menu_item_1 = require("../Menu/is-menu-item");
|
|
17
20
|
const NotificationCenter_1 = require("../Notifications/NotificationCenter");
|
|
21
|
+
const public_output_name_1 = require("../public-output-name");
|
|
18
22
|
const split_video_from_audio_api_1 = require("../split-video-from-audio-api");
|
|
19
23
|
const duplicate_selected_timeline_item_1 = require("../Timeline/duplicate-selected-timeline-item");
|
|
20
24
|
const split_selected_timeline_item_1 = require("../Timeline/split-selected-timeline-item");
|
|
@@ -22,6 +26,7 @@ const TimelineSelection_1 = require("../Timeline/TimelineSelection");
|
|
|
22
26
|
const use_delete_timeline_items_1 = require("../Timeline/use-delete-timeline-items");
|
|
23
27
|
const use_sequence_freeze_frame_menu_item_1 = require("../Timeline/use-sequence-freeze-frame-menu-item");
|
|
24
28
|
const AlignmentControls_1 = require("./AlignmentControls");
|
|
29
|
+
const CollapsibleInspectorSection_1 = require("./CollapsibleInspectorSection");
|
|
25
30
|
const common_1 = require("./common");
|
|
26
31
|
const ConnectedCompositionsSection_1 = require("./ConnectedCompositionsSection");
|
|
27
32
|
const SequenceInspectorHeader_1 = require("./SequenceInspectorHeader");
|
|
@@ -69,8 +74,10 @@ const SplitSequenceQuickAction = ({ selection, track }) => {
|
|
|
69
74
|
return (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: !canSplit, onClick: onSplit, title: disabledReason, renderIcon: (color) => (jsx_runtime_1.jsx(scissors_1.ScissorsIcon, { style: actionIconStyle, color: color })), children: "Split clip" }));
|
|
70
75
|
};
|
|
71
76
|
const SequenceSourceQuickActions = ({ selection, track, validatedSource }) => {
|
|
77
|
+
var _a;
|
|
72
78
|
const timelinePosition = remotion_1.Internals.Timeline.useTimelinePosition();
|
|
73
79
|
const { previewServerState } = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx);
|
|
80
|
+
const { setSelectedModal } = (0, react_1.useContext)(modals_1.SetSelectedModalContext);
|
|
74
81
|
const { propStatuses } = (0, react_1.useContext)(remotion_1.Internals.VisualModePropStatusesContext);
|
|
75
82
|
const { setPropStatuses } = (0, react_1.useContext)(remotion_1.Internals.VisualModeSettersContext);
|
|
76
83
|
const confirm = (0, ConfirmationDialog_1.useConfirmationDialog)();
|
|
@@ -89,6 +96,40 @@ const SequenceSourceQuickActions = ({ selection, track, validatedSource }) => {
|
|
|
89
96
|
validatedSource,
|
|
90
97
|
});
|
|
91
98
|
const sourceActionsDisabled = previewServerState.type !== 'connected' || !(0, interactivity_enabled_1.isStudioInteractivityEnabled)();
|
|
99
|
+
const mediaSequence = track.sequence.type === 'video' || track.sequence.type === 'audio'
|
|
100
|
+
? track.sequence
|
|
101
|
+
: null;
|
|
102
|
+
const mediaMetadata = (0, use_media_metadata_1.useMediaMetadata)((_a = mediaSequence === null || mediaSequence === void 0 ? void 0 : mediaSequence.src) !== null && _a !== void 0 ? _a : null);
|
|
103
|
+
const transcriptionDisabledReason = sourceActionsDisabled
|
|
104
|
+
? 'Studio is read-only'
|
|
105
|
+
: selection.nodePathInfo.numberOfSequencesWithThisNodePath > 1
|
|
106
|
+
? 'Programmatically duplicated media cannot be transcribed from source'
|
|
107
|
+
: undefined;
|
|
108
|
+
const onGenerateCaptions = (0, react_1.useCallback)(() => {
|
|
109
|
+
if (transcriptionDisabledReason !== undefined || mediaSequence === null) {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
const nodePath = selection.nodePathInfo.sequenceSubscriptionKey;
|
|
113
|
+
setSelectedModal({
|
|
114
|
+
type: 'transcribe',
|
|
115
|
+
src: mediaSequence.src,
|
|
116
|
+
displayName: (0, public_output_name_1.getMediaFileName)(mediaSequence.src, mediaSequence.displayName),
|
|
117
|
+
audioStreamIndex: null,
|
|
118
|
+
requestInit: null,
|
|
119
|
+
target: {
|
|
120
|
+
fileName: nodePath.absolutePath,
|
|
121
|
+
nodePath,
|
|
122
|
+
durationInFrames: Number.isFinite(mediaSequence.duration)
|
|
123
|
+
? mediaSequence.duration
|
|
124
|
+
: null,
|
|
125
|
+
},
|
|
126
|
+
});
|
|
127
|
+
}, [
|
|
128
|
+
selection.nodePathInfo,
|
|
129
|
+
setSelectedModal,
|
|
130
|
+
mediaSequence,
|
|
131
|
+
transcriptionDisabledReason,
|
|
132
|
+
]);
|
|
92
133
|
const onDuplicate = (0, react_1.useCallback)(() => {
|
|
93
134
|
if (sourceActionsDisabled) {
|
|
94
135
|
return;
|
|
@@ -124,7 +165,7 @@ const SequenceSourceQuickActions = ({ selection, track, validatedSource }) => {
|
|
|
124
165
|
(0, NotificationCenter_1.showNotification)(err.message, 4000);
|
|
125
166
|
});
|
|
126
167
|
}, [selection.nodePathInfo, splitVideoFromAudioDisabledReason]);
|
|
127
|
-
return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [(freezeFrameMenuItem === null || freezeFrameMenuItem === void 0 ? void 0 : freezeFrameMenuItem.type) === 'item' ? (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: Boolean(freezeFrameMenuItem.disabled), onClick: () => freezeFrameMenuItem.onClick(freezeFrameMenuItem.id, null), renderIcon: (color) => (jsx_runtime_1.jsx(snowflake_1.SnowflakeIcon, { style: largeActionIconStyle, color: color })), children: freezeFrameMenuItem.label })) : null, track.sequence.type === 'video' ? (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: splitVideoFromAudioDisabledReason !== undefined, onClick: onSplitVideoFromAudio, title: splitVideoFromAudioDisabledReason, renderIcon: (color) => (jsx_runtime_1.jsx(audio_1.AudioIcon, { style: actionIconStyle, color: color })), children: "Split video from audio" })) : null, jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: sourceActionsDisabled, onClick: onDuplicate, renderIcon: (color) => (jsx_runtime_1.jsx(duplicate_1.DuplicateIcon, { style: largeActionIconStyle, color: color })), children: "Duplicate" }), jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: sourceActionsDisabled, onClick: onDelete, renderIcon: (color) => (jsx_runtime_1.jsx(trash_1.TrashIcon, { style: actionIconStyle, color: color })), children: "Delete" })] }));
|
|
168
|
+
return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [(freezeFrameMenuItem === null || freezeFrameMenuItem === void 0 ? void 0 : freezeFrameMenuItem.type) === 'item' ? (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: Boolean(freezeFrameMenuItem.disabled), onClick: () => freezeFrameMenuItem.onClick(freezeFrameMenuItem.id, null), renderIcon: (color) => (jsx_runtime_1.jsx(snowflake_1.SnowflakeIcon, { style: largeActionIconStyle, color: color })), children: freezeFrameMenuItem.label })) : null, track.sequence.type === 'video' ? (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: splitVideoFromAudioDisabledReason !== undefined, onClick: onSplitVideoFromAudio, title: splitVideoFromAudioDisabledReason, renderIcon: (color) => (jsx_runtime_1.jsx(audio_1.AudioIcon, { style: actionIconStyle, color: color })), children: "Split video from audio" })) : null, mediaSequence !== null && (mediaMetadata === null || mediaMetadata === void 0 ? void 0 : mediaMetadata.hasAudioTrack) !== false ? (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: transcriptionDisabledReason !== undefined, onClick: onGenerateCaptions, title: transcriptionDisabledReason, renderIcon: (color) => (jsx_runtime_1.jsx(transcription_1.TranscriptionIcon, { style: actionIconStyle, color: color })), children: "Generate captions" })) : null, jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: sourceActionsDisabled, onClick: onDuplicate, renderIcon: (color) => (jsx_runtime_1.jsx(duplicate_1.DuplicateIcon, { style: largeActionIconStyle, color: color })), children: "Duplicate" }), jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: sourceActionsDisabled, onClick: onDelete, renderIcon: (color) => (jsx_runtime_1.jsx(trash_1.TrashIcon, { style: actionIconStyle, color: color })), children: "Delete" })] }));
|
|
128
169
|
};
|
|
129
170
|
const SequenceExpandedInspector = ({ track, readOnlyStudio }) => {
|
|
130
171
|
const { previewServerState } = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx);
|
|
@@ -169,9 +210,9 @@ const SequenceExpandedInspector = ({ track, readOnlyStudio }) => {
|
|
|
169
210
|
return jsx_runtime_1.jsx(common_1.InspectorMessage, { children: "Sequence inspector unavailable" });
|
|
170
211
|
}
|
|
171
212
|
return (jsx_runtime_1.jsxs("div", { style: styles_1.selectedContainer, className: is_menu_item_1.VERTICAL_SCROLLBAR_CLASSNAME, onPointerDown: selectSequenceOnInspectorPointerDown, children: [
|
|
172
|
-
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.jsx(
|
|
173
|
-
|
|
174
|
-
|
|
213
|
+
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.jsx(CollapsibleInspectorSection_1.CollapsibleInspectorSection, { collapsible: true, label: "Actions", sectionId: "sequence-actions", children: jsx_runtime_1.jsxs(common_1.InspectorQuickActionsSection, { children: [
|
|
214
|
+
jsx_runtime_1.jsx(SplitSequenceQuickAction, { selection: sequenceSelection, track: track }), jsx_runtime_1.jsx(SequenceSourceQuickActions, { selection: sequenceSelection, track: track, validatedSource: validatedLocation.source })
|
|
215
|
+
] }) })
|
|
175
216
|
] })) : (jsx_runtime_1.jsx(common_1.InspectorMessage, { children: "Source controls unavailable" }))] }));
|
|
176
217
|
};
|
|
177
218
|
const SequenceSelectionInspector = ({ selection, readOnlyStudio }) => {
|
|
@@ -6,6 +6,10 @@ export declare const InspectorSectionHeader: React.FC<{
|
|
|
6
6
|
export declare const InspectorQuickActionsSection: React.FC<{
|
|
7
7
|
readonly children: React.ReactNode;
|
|
8
8
|
}>;
|
|
9
|
+
export declare const InspectorSectionBody: React.FC<{
|
|
10
|
+
readonly children: React.ReactNode;
|
|
11
|
+
readonly expanded: boolean;
|
|
12
|
+
}>;
|
|
9
13
|
export declare const InspectorSection: React.FC<{
|
|
10
14
|
readonly children: React.ReactNode;
|
|
11
15
|
readonly header: React.ReactNode;
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.InspectorDefaultPropsWarnings = exports.InspectorQuickAction = exports.InspectorDetailRow = exports.InspectorMessage = exports.InspectorBackAction = exports.InspectorSection = exports.InspectorQuickActionsSection = exports.InspectorSectionHeader = void 0;
|
|
6
|
+
exports.InspectorDefaultPropsWarnings = exports.InspectorQuickAction = exports.InspectorDetailRow = exports.InspectorMessage = exports.InspectorBackAction = exports.InspectorSection = exports.InspectorSectionBody = exports.InspectorQuickActionsSection = exports.InspectorSectionHeader = void 0;
|
|
7
7
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
8
|
const react_1 = __importDefault(require("react"));
|
|
9
9
|
const colors_1 = require("../../helpers/colors");
|
|
@@ -16,9 +16,21 @@ const InspectorSectionHeader = ({ children }) => jsx_runtime_1.jsx("div", { styl
|
|
|
16
16
|
exports.InspectorSectionHeader = InspectorSectionHeader;
|
|
17
17
|
const InspectorQuickActionsSection = ({ children }) => jsx_runtime_1.jsx("div", { style: styles_1.inspectorQuickActionsSection, children: children });
|
|
18
18
|
exports.InspectorQuickActionsSection = InspectorQuickActionsSection;
|
|
19
|
+
const collapsedSectionBody = {
|
|
20
|
+
...styles_1.inspectorSectionBody,
|
|
21
|
+
display: 'none',
|
|
22
|
+
};
|
|
23
|
+
const InspectorSectionBody = ({ children, expanded }) => {
|
|
24
|
+
if (children === null) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
return (jsx_runtime_1.jsx("div", { hidden: !expanded, style: expanded ? styles_1.inspectorSectionBody : collapsedSectionBody, children: children }));
|
|
28
|
+
};
|
|
29
|
+
exports.InspectorSectionBody = InspectorSectionBody;
|
|
19
30
|
const InspectorSection = ({ children, header }) => {
|
|
20
31
|
return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
21
|
-
jsx_runtime_1.jsx(exports.InspectorSectionHeader, { children: header }),
|
|
32
|
+
jsx_runtime_1.jsx(exports.InspectorSectionHeader, { children: header }), jsx_runtime_1.jsx(exports.InspectorSectionBody, { expanded: true, children: children })
|
|
33
|
+
] }));
|
|
22
34
|
};
|
|
23
35
|
exports.InspectorSection = InspectorSection;
|
|
24
36
|
const backArrowIcon = {
|
|
@@ -77,6 +89,7 @@ const inlineLabelText = {
|
|
|
77
89
|
overflow: 'hidden',
|
|
78
90
|
textOverflow: 'ellipsis',
|
|
79
91
|
userSelect: 'none',
|
|
92
|
+
WebkitUserSelect: 'none',
|
|
80
93
|
whiteSpace: 'nowrap',
|
|
81
94
|
};
|
|
82
95
|
const inlineLabelIcon = {
|
|
@@ -2,15 +2,12 @@ import type React from 'react';
|
|
|
2
2
|
export declare const container: React.CSSProperties;
|
|
3
3
|
export declare const scrollableContainer: React.CSSProperties;
|
|
4
4
|
export declare const compositionDefaultPropsSection: React.CSSProperties;
|
|
5
|
-
export declare const compositionVisualControlsSection: React.CSSProperties;
|
|
6
5
|
export declare const inspectorOverviewSection: React.CSSProperties;
|
|
7
6
|
export declare const sequenceHeaderDivider: React.CSSProperties;
|
|
8
7
|
export declare const sectionHeader: React.CSSProperties;
|
|
9
8
|
export declare const inspectorSectionBody: React.CSSProperties;
|
|
10
9
|
export declare const sequenceHeaderSubtitle: React.CSSProperties;
|
|
11
10
|
export declare const sectionHeaderRow: React.CSSProperties;
|
|
12
|
-
export declare const sectionHeaderTitle: React.CSSProperties;
|
|
13
|
-
export declare const sectionHeaderStart: React.CSSProperties;
|
|
14
11
|
export declare const sectionHeaderEnd: React.CSSProperties;
|
|
15
12
|
export declare const defaultPropsWarningContainer: React.CSSProperties;
|
|
16
13
|
export declare const defaultPropsWarningMessages: React.CSSProperties;
|