@remotion/studio 4.0.528 → 4.0.529
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/Studio.js +2 -0
- package/dist/components/AgentPrompt.js +2 -2
- package/dist/components/AppLaunchButton.d.ts +0 -1
- package/dist/components/AppLaunchButton.js +2 -5
- package/dist/components/AssetAudioVolume.js +2 -2
- package/dist/components/AssetSelectorItem.js +5 -5
- package/dist/components/Button.d.ts +1 -1
- package/dist/components/Button.js +2 -2
- package/dist/components/CaptionInspector.js +1 -1
- package/dist/components/CaptionTextEditor.js +1 -1
- package/dist/components/CheckboardToggle.js +1 -1
- package/dist/components/CodingAgentButton.js +1 -1
- package/dist/components/ColorPicker/ColorPicker.d.ts +1 -1
- package/dist/components/ColorPicker/ColorPicker.js +2 -2
- package/dist/components/ColorPicker/ColorPickerPopup.js +1 -1
- package/dist/components/CompactExplanation.js +3 -3
- package/dist/components/CompositionSelectorItem.js +2 -2
- package/dist/components/ConfigSelect.js +1 -1
- package/dist/components/ConfigureDefaultEditorModal.js +2 -2
- package/dist/components/ControlButton.d.ts +0 -1
- package/dist/components/ControlButton.js +2 -2
- package/dist/components/CurrentAsset.js +1 -1
- package/dist/components/ElementLibrariesSettings.js +1 -1
- package/dist/components/ElementLibraryModal.js +1 -1
- package/dist/components/FramePersistor.js +3 -3
- package/dist/components/FullscreenToggle.js +1 -1
- package/dist/components/InitialCompositionLoader.js +3 -3
- package/dist/components/InlineAction.d.ts +2 -2
- package/dist/components/InlineAction.js +2 -3
- package/dist/components/InlineEditableTitle.d.ts +1 -1
- package/dist/components/InlineEditableTitle.js +3 -3
- package/dist/components/InspectorLocationCopy.js +1 -1
- package/dist/components/InspectorOpenInEditor.js +1 -3
- package/dist/components/InspectorPanel/AlignmentControls.js +3 -3
- package/dist/components/InspectorPanel/CompositionInspector.js +1 -5
- package/dist/components/InspectorPanel/CompositionMetadata.js +4 -4
- package/dist/components/InspectorPanel/EasingInspector.js +1 -1
- package/dist/components/InspectorPanel/ElementLibraryButton.js +3 -14
- package/dist/components/InspectorPanel/KeyframeEasingNavigator.js +6 -8
- package/dist/components/InspectorPanel/KeyframeInspector.js +1 -1
- package/dist/components/InspectorPanel/KeyframeSettings.js +16 -11
- package/dist/components/InspectorPanel/MultiSequenceField.js +1 -1
- package/dist/components/InspectorPanel/MultiSequenceInspector.js +2 -7
- package/dist/components/InspectorPanel/MultiSequenceNumberField.js +2 -2
- package/dist/components/InspectorPanel/SequenceInspectorHeader.js +1 -1
- package/dist/components/InspectorPanel/SequenceSelectionInspector.js +4 -13
- package/dist/components/InspectorPanel/SequenceWrapAction.js +6 -14
- package/dist/components/InspectorPanel/common.d.ts +6 -2
- package/dist/components/InspectorPanel/common.js +25 -9
- package/dist/components/InspectorSequenceSection.js +5 -5
- package/dist/components/InspectorSourceLocation.js +2 -2
- package/dist/components/KeyboardShortcutsSettings.js +1 -1
- package/dist/components/LicenseKeyValidation.js +2 -2
- package/dist/components/LoopToggle.js +1 -1
- package/dist/components/Menu/MenuSubItem.js +4 -2
- package/dist/components/MenuBuildIndicator.js +1 -1
- package/dist/components/MenuCompositionName.js +1 -1
- package/dist/components/ModelManager.js +1 -1
- package/dist/components/MuteToggle.js +1 -1
- package/dist/components/NewComposition/ComboBox.d.ts +1 -1
- package/dist/components/NewComposition/ComboBox.js +2 -2
- package/dist/components/NewComposition/DuplicateComposition.js +1 -1
- package/dist/components/NewComposition/InputDragger.d.ts +1 -1
- package/dist/components/NewComposition/InputDragger.js +1 -1
- package/dist/components/NewComposition/NewComposition.js +1 -1
- package/dist/components/OpenIssueButton.js +1 -1
- package/dist/components/OutlineToggle.js +1 -1
- package/dist/components/PlayPause.js +1 -1
- package/dist/components/PlaybackRateSelector.js +1 -1
- package/dist/components/Preview.js +2 -3
- package/dist/components/PreviewToolbarOverflowButton.js +1 -1
- package/dist/components/QuickSwitcher/ExplorerQuickSwitcherTrigger.js +1 -1
- package/dist/components/RenderButton.js +2 -4
- package/dist/components/RenderModal/InfoBubble.d.ts +1 -1
- package/dist/components/RenderModal/InfoBubble.js +2 -2
- package/dist/components/RenderModal/NumberSetting.js +1 -1
- package/dist/components/RenderModal/OptionExplainerBubble.js +2 -2
- package/dist/components/RenderModal/RenderModalAdvanced.js +2 -2
- package/dist/components/RenderModal/RenderModalAudio.js +2 -2
- package/dist/components/RenderModal/RenderModalBasic.js +3 -3
- package/dist/components/RenderModal/RenderModalEncoding.js +4 -4
- package/dist/components/RenderModal/RenderModalOutputName.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/SchemaLabel.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodDiscriminatedUnionEditor.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodEnumEditor.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodFieldValidation.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodStaticFileEditor.js +1 -1
- package/dist/components/RenderModal/WebRenderModalAdvanced.js +2 -2
- package/dist/components/RenderModal/WebRenderModalAudio.js +2 -2
- package/dist/components/RenderModal/WebRenderModalBasic.js +3 -3
- package/dist/components/RenderModal/WebRenderModalPicture.js +1 -1
- package/dist/components/RenderQueue/CaptionQueueItem.js +1 -1
- package/dist/components/RenderQueue/QueueJobError.js +1 -1
- package/dist/components/RenderQueue/RenderQueueError.js +1 -1
- package/dist/components/RenderQueue/RenderQueueOutputName.js +1 -1
- package/dist/components/RenderQueue/RenderQueueProgressMessage.js +1 -1
- package/dist/components/RenderQueue/VideoMattingQueueItem.js +1 -1
- package/dist/components/RenderingSettings.js +6 -6
- package/dist/components/RulersAndGuidesToggle.js +1 -1
- package/dist/components/SegmentedButton.d.ts +0 -2
- package/dist/components/SegmentedButton.js +6 -6
- package/dist/components/SelectedOutlineOverlay.js +15 -2
- package/dist/components/SelectedOutlinePathPoints.js +45 -21
- package/dist/components/SelectedOutlineRenderer.js +1 -1
- package/dist/components/SettingsButton.js +1 -1
- package/dist/components/SettingsModalFooter.js +1 -1
- package/dist/components/SizeSelector.js +1 -1
- package/dist/components/SkillsSettings.js +2 -2
- package/dist/components/SnappingToggle.js +1 -1
- package/dist/components/StudioSettings.js +2 -2
- package/dist/components/TimeValue.js +1 -3
- package/dist/components/Timeline/EasingEditorModal.js +3 -3
- package/dist/components/Timeline/TimelineArrayField.js +2 -2
- package/dist/components/Timeline/TimelineAssetField.js +3 -3
- package/dist/components/Timeline/TimelineColorField.js +2 -2
- package/dist/components/Timeline/TimelineDragHandler.js +3 -3
- package/dist/components/Timeline/TimelineDuplicateCount.js +1 -1
- package/dist/components/Timeline/TimelineEffectItem.js +1 -1
- package/dist/components/Timeline/TimelineEnumField.js +1 -1
- package/dist/components/Timeline/TimelineFieldLabel.js +1 -1
- package/dist/components/Timeline/TimelineFontFamilyField.js +2 -2
- package/dist/components/Timeline/TimelineFontWeightField.js +1 -1
- package/dist/components/Timeline/TimelineKeyframeControls.js +4 -4
- package/dist/components/Timeline/TimelineKeyframeDiamond.js +1 -1
- package/dist/components/Timeline/TimelineKeyframeEasingLine.js +1 -1
- package/dist/components/Timeline/TimelineLayerChildren.js +1 -1
- package/dist/components/Timeline/TimelineList.js +15 -7
- package/dist/components/Timeline/TimelineMediaInfo.js +1 -1
- package/dist/components/Timeline/TimelineScaleField.js +1 -1
- package/dist/components/Timeline/TimelineSchemaField.js +2 -2
- package/dist/components/Timeline/TimelineSequence.js +1 -1
- package/dist/components/Timeline/TimelineSequenceItem.js +34 -16
- package/dist/components/Timeline/TimelineSequenceName.d.ts +1 -0
- package/dist/components/Timeline/TimelineSequenceName.js +38 -6
- package/dist/components/Timeline/TimelineSequencePropItem.js +6 -4
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.js +2 -2
- package/dist/components/Timeline/TimelineZoomControls.js +2 -2
- package/dist/components/Timeline/get-sequence-split-menu-item.js +2 -2
- package/dist/components/Timeline/use-timeline-expanded-tree.d.ts +1 -1
- package/dist/components/Timeline/use-timeline-expanded-tree.js +3 -0
- package/dist/components/TimelineCombobox.d.ts +1 -1
- package/dist/components/TimelineCombobox.js +5 -6
- package/dist/components/TimelineInOutToggle.js +1 -1
- package/dist/components/Transcription/TranscriptionModal.js +6 -6
- package/dist/components/UndoRedoButtons.js +1 -1
- package/dist/components/UpdatesSettings.js +2 -2
- package/dist/components/VideoMatting/VideoMattingModal.js +4 -4
- package/dist/components/selected-outline-types.d.ts +2 -0
- package/dist/error-overlay/remotion-overlay/CompositionIdListItem.js +1 -1
- package/dist/error-overlay/remotion-overlay/OpenInEditor.js +1 -1
- package/dist/error-overlay/remotion-overlay/StackFrame.js +1 -1
- package/dist/esm/{CaptionQueueProcessor-nr7hjcga.mjs → CaptionQueueProcessor-qj37c6r2.mjs} +2 -2
- package/dist/esm/{LazyModels-ajkn7fs3.mjs → LazyModels-rjsrgap5.mjs} +4 -4
- package/dist/esm/{LazyModels-g1g7cf4e.mjs → LazyModels-rnbjx98t.mjs} +4 -4
- package/dist/esm/{TranscriptionModal-e18bzbkb.mjs → TranscriptionModal-y7zeqj2d.mjs} +15 -15
- package/dist/esm/{VideoMattingModal-5bz2s4rs.mjs → VideoMattingModal-jzrkhah1.mjs} +13 -13
- package/dist/esm/{index-s6qya2gg.mjs → index-19d05w9e.mjs} +1 -1
- package/dist/esm/{index-t7tbt980.mjs → index-24wge6y5.mjs} +2 -3
- package/dist/esm/{index-wqc43mw0.mjs → index-3qb54r5j.mjs} +4 -5
- package/dist/esm/{index-c2wabcdt.mjs → index-cakcjjy2.mjs} +6 -6
- package/dist/esm/{index-9q9w8v9p.mjs → index-f9hxt5yh.mjs} +1 -1
- package/dist/esm/{index-8nt6a0mw.mjs → index-jc22b2wb.mjs} +1 -1
- package/dist/esm/{index-890dd9b3.mjs → index-m01zjph7.mjs} +3 -5
- package/dist/esm/{index-x6r9bn12.mjs → index-m2a95v3p.mjs} +925 -237
- package/dist/esm/{index-xac20sv4.mjs → index-r9bj4tta.mjs} +7 -7
- package/dist/esm/{index-t7xnxdf8.mjs → index-vnc2wdfd.mjs} +4 -5
- package/dist/esm/{index-dh3zk2hv.mjs → index-vtr5qzam.mjs} +1 -1
- package/dist/esm/{index-dpyss74p.mjs → index-x7kg7jqv.mjs} +814 -723
- package/dist/esm/index.mjs +2 -2
- package/dist/esm/internals.mjs +9 -9
- package/dist/esm/previewEntry.mjs +9 -9
- package/dist/esm/renderEntry.mjs +2 -2
- package/dist/helpers/checkerboard-background.d.ts +2 -2
- package/dist/helpers/checkerboard-background.js +1 -1
- package/dist/helpers/colors.d.ts +1 -2
- package/dist/helpers/colors.js +7 -8
- package/dist/helpers/studio-css-variables.d.ts +1 -1
- package/dist/helpers/studio-css-variables.js +2 -3
- package/dist/icons/snowflake.js +1 -3
- package/dist/icons/{scissors.d.ts → split.d.ts} +1 -1
- package/dist/icons/split.js +8 -0
- package/dist/icons/trash.js +2 -2
- package/dist/icons/wrap.js +1 -1
- package/package.json +20 -20
- package/dist/icons/scissors.js +0 -8
|
@@ -44,8 +44,8 @@ const verticalSpacer = {
|
|
|
44
44
|
height: 16,
|
|
45
45
|
margin: '0 8px',
|
|
46
46
|
};
|
|
47
|
-
const AlignmentButton = ({ onClick,
|
|
48
|
-
return (jsx_runtime_1.jsx(InlineAction_1.InlineAction, { variant: null,
|
|
47
|
+
const AlignmentButton = ({ onClick, 'aria-label': ariaLabel, Icon, disabled }) => {
|
|
48
|
+
return (jsx_runtime_1.jsx(InlineAction_1.InlineAction, { variant: null, "aria-label": ariaLabel, onClick: onClick, renderAction: (color) => jsx_runtime_1.jsx(Icon, { style: iconStyle, color: color }), disabled: disabled }));
|
|
49
49
|
};
|
|
50
50
|
const AlignmentControls = ({ track }) => {
|
|
51
51
|
var _a;
|
|
@@ -236,7 +236,7 @@ const AlignmentControls = ({ track }) => {
|
|
|
236
236
|
}
|
|
237
237
|
const alignmentDisabled = !isPropStatusDraggable(renderPropStatus);
|
|
238
238
|
return (jsx_runtime_1.jsxs("div", { style: container, children: [
|
|
239
|
-
jsx_runtime_1.jsx(AlignmentButton, {
|
|
239
|
+
jsx_runtime_1.jsx(AlignmentButton, { "aria-label": "Align left", onClick: () => handleAlign('left'), Icon: align_left_1.AlignLeftIcon, disabled: alignmentDisabled }), jsx_runtime_1.jsx(AlignmentButton, { "aria-label": "Align center horizontally", onClick: () => handleAlign('center-h'), Icon: align_center_horizontal_1.AlignCenterHorizontalIcon, disabled: alignmentDisabled }), jsx_runtime_1.jsx(AlignmentButton, { "aria-label": "Align right", onClick: () => handleAlign('right'), Icon: align_right_1.AlignRightIcon, disabled: alignmentDisabled }), jsx_runtime_1.jsx("div", { style: verticalSpacer }), jsx_runtime_1.jsx(AlignmentButton, { "aria-label": "Align top", onClick: () => handleAlign('top'), Icon: align_top_1.AlignTopIcon, disabled: alignmentDisabled }), jsx_runtime_1.jsx(AlignmentButton, { "aria-label": "Align center vertically", onClick: () => handleAlign('center-v'), Icon: align_center_vertical_1.AlignCenterVerticalIcon, disabled: alignmentDisabled }), jsx_runtime_1.jsx(AlignmentButton, { "aria-label": "Align bottom", onClick: () => handleAlign('bottom'), Icon: align_bottom_1.AlignBottomIcon, disabled: alignmentDisabled })
|
|
240
240
|
] }));
|
|
241
241
|
};
|
|
242
242
|
exports.AlignmentControls = AlignmentControls;
|
|
@@ -37,10 +37,6 @@ const ElementLibraryButton_1 = require("./ElementLibraryButton");
|
|
|
37
37
|
const styles_1 = require("./styles");
|
|
38
38
|
const use_composition_actions_1 = require("./use-composition-actions");
|
|
39
39
|
const use_inspector_section_expanded_1 = require("./use-inspector-section-expanded");
|
|
40
|
-
const actionIconStyle = {
|
|
41
|
-
height: 18,
|
|
42
|
-
width: 18,
|
|
43
|
-
};
|
|
44
40
|
const downloadLicenseAgreement = {
|
|
45
41
|
color: colors_1.LIGHT_TEXT,
|
|
46
42
|
fontFamily: 'sans-serif',
|
|
@@ -93,7 +89,7 @@ const CompositionActions = () => {
|
|
|
93
89
|
downloadProject === null) {
|
|
94
90
|
return null;
|
|
95
91
|
}
|
|
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:
|
|
92
|
+
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: common_1.inspectorActionIconStyle })), 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: common_1.inspectorActionIconStyle })), 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: common_1.inspectorActionIconStyle })), children: "Add composition..." })) : null, canShowGenerateWithAgent ? (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: false, iconContainerStyle: common_1.largeInspectorActionIconContainerStyle, onClick: generateWithAgent, renderIcon: (color) => (jsx_runtime_1.jsx(sparkles_1.SparklesIcon, { color: color, style: common_1.largeInspectorActionIconStyle })), 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: common_1.inspectorActionIconStyle })), children: "Download project" })) : null] }) }));
|
|
97
93
|
};
|
|
98
94
|
const CompositionDefaultPropsSection = ({ composition, currentDefaultProps, readOnlyStudio, setDefaultProps }) => {
|
|
99
95
|
var _a;
|
|
@@ -127,14 +127,14 @@ const dimensionPresets = [
|
|
|
127
127
|
{ height: 1080, label: 'Square', width: 1080 },
|
|
128
128
|
];
|
|
129
129
|
const frameRatePresets = [23.976, 24, 25, 29.97, 30, 50, 60];
|
|
130
|
-
const PresetDropdown = ({ disabled,
|
|
130
|
+
const PresetDropdown = ({ disabled, 'aria-label': ariaLabel, values, visible }) => {
|
|
131
131
|
const renderAction = (0, react_1.useCallback)((color) => {
|
|
132
132
|
return (jsx_runtime_1.jsx("span", { style: presetButtonIcon, children: jsx_runtime_1.jsx(caret_1.CaretDown, { color: color }) }));
|
|
133
133
|
}, []);
|
|
134
134
|
return (jsx_runtime_1.jsx("div", { style: {
|
|
135
135
|
...presetDropdownContainer,
|
|
136
136
|
visibility: visible ? 'visible' : 'hidden',
|
|
137
|
-
}, children: jsx_runtime_1.jsx(InlineDropdown_1.InlineDropdown, { disabled: disabled, renderAction: renderAction,
|
|
137
|
+
}, children: jsx_runtime_1.jsx(InlineDropdown_1.InlineDropdown, { disabled: disabled, renderAction: renderAction, "aria-label": ariaLabel, values: values, variant: "compact" }) }));
|
|
138
138
|
};
|
|
139
139
|
const CompositionMetadataValue = ({ computed, disabled, field, onSave, pendingValue, value }) => {
|
|
140
140
|
var _a;
|
|
@@ -324,10 +324,10 @@ const CompositionMetadata = ({ compositionId, disabled, stack }) => {
|
|
|
324
324
|
}));
|
|
325
325
|
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: [
|
|
326
326
|
jsx_runtime_1.jsx("span", { style: metadataLabelText, children: "Dimensions" }), disabled || widthIsComputed || heightIsComputed ? null : (jsx_runtime_1.jsx(PresetDropdown, { disabled: pendingValues.width !== undefined ||
|
|
327
|
-
pendingValues.height !== undefined,
|
|
327
|
+
pendingValues.height !== undefined, "aria-label": "Choose dimension preset", values: dimensionPresetValues, visible: hovered }))] })), children: jsx_runtime_1.jsxs("div", { style: dimensionsControls, children: [
|
|
328
328
|
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 })
|
|
329
329
|
] }) }), 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: [
|
|
330
|
-
jsx_runtime_1.jsx("span", { style: metadataLabelText, children: "Frame rate" }), disabled || fpsIsComputed ? null : (jsx_runtime_1.jsx(PresetDropdown, { disabled: pendingValues.fps !== undefined,
|
|
330
|
+
jsx_runtime_1.jsx("span", { style: metadataLabelText, children: "Frame rate" }), disabled || fpsIsComputed ? null : (jsx_runtime_1.jsx(PresetDropdown, { disabled: pendingValues.fps !== undefined, "aria-label": "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 }) })
|
|
331
331
|
] }))] }));
|
|
332
332
|
};
|
|
333
333
|
exports.CompositionMetadata = CompositionMetadata;
|
|
@@ -209,7 +209,7 @@ const EasingInspector = ({ selection }) => {
|
|
|
209
209
|
easingKeyframeDisplayOffset,
|
|
210
210
|
]);
|
|
211
211
|
const renderHeader = (0, react_1.useCallback)(() => (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
212
|
-
jsx_runtime_1.jsx(common_1.InspectorBackAction, { disabled: parentSelection === null, onClick: onSelectParent,
|
|
212
|
+
jsx_runtime_1.jsx(common_1.InspectorBackAction, { disabled: parentSelection === null, onClick: onSelectParent, "aria-label": "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) => ({
|
|
213
213
|
...keyframe,
|
|
214
214
|
frame: keyframe.frame / track.keyframePlaybackRate +
|
|
215
215
|
easingKeyframeDisplayOffset,
|
|
@@ -12,16 +12,6 @@ const SegmentedButton_1 = require("../SegmentedButton");
|
|
|
12
12
|
const SettingsContext_1 = require("../SettingsContext");
|
|
13
13
|
const common_1 = require("./common");
|
|
14
14
|
const noElementLibraries = [];
|
|
15
|
-
const browseElementsIconStyle = {
|
|
16
|
-
height: 22,
|
|
17
|
-
width: 22,
|
|
18
|
-
};
|
|
19
|
-
const browseElementsIconContainerStyle = {
|
|
20
|
-
height: 22,
|
|
21
|
-
marginLeft: -2,
|
|
22
|
-
marginRight: -2,
|
|
23
|
-
width: 22,
|
|
24
|
-
};
|
|
25
15
|
const elementLibraryDropdownStyle = {
|
|
26
16
|
borderRadius: 4,
|
|
27
17
|
height: 28,
|
|
@@ -77,12 +67,11 @@ const ElementLibraryButton = () => {
|
|
|
77
67
|
leaveLeftSpace: false,
|
|
78
68
|
onOpenChange: null,
|
|
79
69
|
renderContent: (color) => (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
80
|
-
jsx_runtime_1.jsx("span", { style:
|
|
70
|
+
jsx_runtime_1.jsx("span", { style: common_1.largeInspectorActionIconContainerStyle, children: jsx_runtime_1.jsx(browse_elements_1.BrowseElementsIcon, { color: color, style: common_1.largeInspectorActionIconStyle }) }), 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 }) })
|
|
81
71
|
] })),
|
|
82
72
|
segmentId: 'element-library',
|
|
83
73
|
selectedId: null,
|
|
84
74
|
style: elementLibraryDropdownSegmentStyle,
|
|
85
|
-
title: 'Choose an Element Library to browse inside Studio.',
|
|
86
75
|
tooltipLabel: null,
|
|
87
76
|
type: 'menu',
|
|
88
77
|
values: [
|
|
@@ -120,8 +109,8 @@ const ElementLibraryButton = () => {
|
|
|
120
109
|
},
|
|
121
110
|
], [elementLibraries, openElementLibrary, openElementsLibrary]);
|
|
122
111
|
if (elementLibraries.length > 0) {
|
|
123
|
-
return (jsx_runtime_1.jsx(SegmentedButton_1.SegmentedButton, { segments: elementLibraryDropdownSegments, style: elementLibraryDropdownStyle
|
|
112
|
+
return (jsx_runtime_1.jsx(SegmentedButton_1.SegmentedButton, { segments: elementLibraryDropdownSegments, style: elementLibraryDropdownStyle }));
|
|
124
113
|
}
|
|
125
|
-
return (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: false, iconContainerStyle:
|
|
114
|
+
return (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: false, iconContainerStyle: common_1.largeInspectorActionIconContainerStyle, onClick: openElementsLibrary, renderIcon: (color) => (jsx_runtime_1.jsx(browse_elements_1.BrowseElementsIcon, { color: color, style: common_1.largeInspectorActionIconStyle })), "aria-label": "Browse the Remotion Elements library inside Studio.", children: "Browse Elements" }));
|
|
126
115
|
};
|
|
127
116
|
exports.ElementLibraryButton = ElementLibraryButton;
|
|
@@ -90,15 +90,13 @@ const TimelineNavigatorItem = ({ extendLineLeft, extendLineRight, item, onSelect
|
|
|
90
90
|
extendLeft: extendLineLeft,
|
|
91
91
|
extendRight: extendLineRight,
|
|
92
92
|
});
|
|
93
|
-
return (jsx_runtime_1.jsx("button", { type: "button", style: buttonStyle, onClick: onClick,
|
|
94
|
-
? `Keyframe at frame ${item.selection.frame}`
|
|
95
|
-
: `Easing from frame ${item.selection.fromFrame} to ${item.selection.toFrame}`, "aria-label": item.type === 'keyframe'
|
|
93
|
+
return (jsx_runtime_1.jsx("button", { type: "button", style: buttonStyle, onClick: onClick, "aria-label": item.type === 'keyframe'
|
|
96
94
|
? `Select keyframe at frame ${item.selection.frame}`
|
|
97
95
|
: `Select easing from frame ${item.selection.fromFrame} to ${item.selection.toFrame}`, children: item.type === 'keyframe' ? (jsx_runtime_1.jsx(TimelineKeyframeDiamondIcon_1.TimelineKeyframeDiamondIcon, { color: colors_1.LIGHT_TEXT, selected: selected, size: 12 })) : (jsx_runtime_1.jsx("div", { style: easingItem, children: jsx_runtime_1.jsx("div", { style: lineUnderlayStyle, children: jsx_runtime_1.jsx(TimelineKeyframeEasingLine_1.TimelineKeyframeEasingLineVisual, { selected: selected }) }) })) }));
|
|
98
96
|
};
|
|
99
97
|
const KeyframeEasingNavigator = ({ currentSelection, includeEasings, keyframes, nodePathInfo }) => {
|
|
100
98
|
const { isSelected, selectItems } = (0, TimelineSelection_1.useTimelineSelection)();
|
|
101
|
-
const
|
|
99
|
+
const seekFrame = remotion_1.Internals.Timeline.useTimelineSeekFrame();
|
|
102
100
|
const videoConfig = (0, remotion_1.useVideoConfig)();
|
|
103
101
|
const items = (0, react_1.useMemo)(() => (0, keyframe_easing_navigator_items_1.getKeyframeEasingNavigatorItems)({
|
|
104
102
|
includeEasings,
|
|
@@ -117,7 +115,7 @@ const KeyframeEasingNavigator = ({ currentSelection, includeEasings, keyframes,
|
|
|
117
115
|
}, [selectItems]);
|
|
118
116
|
const seekToItem = (0, react_1.useCallback)((item, direction) => {
|
|
119
117
|
const frame = (0, keyframe_easing_navigator_items_1.getNavigatorItemPlayheadFrame)(item);
|
|
120
|
-
|
|
118
|
+
seekFrame((current) => {
|
|
121
119
|
const next = { ...current, [videoConfig.id]: frame };
|
|
122
120
|
remotion_1.Internals.persistCurrentFrame(next);
|
|
123
121
|
return next;
|
|
@@ -127,7 +125,7 @@ const KeyframeEasingNavigator = ({ currentSelection, includeEasings, keyframes,
|
|
|
127
125
|
durationInFrames: videoConfig.durationInFrames,
|
|
128
126
|
frame,
|
|
129
127
|
});
|
|
130
|
-
}, [
|
|
128
|
+
}, [seekFrame, videoConfig.durationInFrames, videoConfig.id]);
|
|
131
129
|
const selectPrevious = (0, react_1.useCallback)(() => {
|
|
132
130
|
if (previousItem === null) {
|
|
133
131
|
return;
|
|
@@ -145,8 +143,8 @@ const KeyframeEasingNavigator = ({ currentSelection, includeEasings, keyframes,
|
|
|
145
143
|
if (currentItem === null) {
|
|
146
144
|
return null;
|
|
147
145
|
}
|
|
148
|
-
return (jsx_runtime_1.jsxs("div", { style: navigatorContainer, children: [jsx_runtime_1.jsx(InlineAction_1.InlineAction, { variant: null, disabled: previousItem === null, onClick: selectPrevious,
|
|
146
|
+
return (jsx_runtime_1.jsxs("div", { style: navigatorContainer, children: [jsx_runtime_1.jsx(InlineAction_1.InlineAction, { variant: null, disabled: previousItem === null, onClick: selectPrevious, "aria-label": "Previous animation item", renderAction: (color) => (jsx_runtime_1.jsx(NavigationChevron, { color: previousItem === null ? disabledChevronColor : color, direction: "left" })) }), jsx_runtime_1.jsxs("div", { style: itemStrip, children: [
|
|
149
147
|
jsx_runtime_1.jsx(TimelineNavigatorItem, { extendLineLeft: false, extendLineRight: currentItem.type === 'keyframe', item: previousItem, onSelect: selectItem, selected: previousItem === null ? false : isSelected(previousItem.selection) }), jsx_runtime_1.jsx(TimelineNavigatorItem, { extendLineLeft: (previousItem === null || previousItem === void 0 ? void 0 : previousItem.type) === 'keyframe', extendLineRight: (nextItem === null || nextItem === void 0 ? void 0 : nextItem.type) === 'keyframe', item: currentItem, onSelect: selectItem, selected: isSelected(currentItem.selection) }), jsx_runtime_1.jsx(TimelineNavigatorItem, { extendLineLeft: currentItem.type === 'keyframe', extendLineRight: false, item: nextItem, onSelect: selectItem, selected: nextItem === null ? false : isSelected(nextItem.selection) })
|
|
150
|
-
] }), jsx_runtime_1.jsx(InlineAction_1.InlineAction, { variant: null, disabled: nextItem === null, onClick: selectNext,
|
|
148
|
+
] }), jsx_runtime_1.jsx(InlineAction_1.InlineAction, { variant: null, disabled: nextItem === null, onClick: selectNext, "aria-label": "Next animation item", renderAction: (color) => (jsx_runtime_1.jsx(NavigationChevron, { color: nextItem === null ? disabledChevronColor : color, direction: "right" })) })] }));
|
|
151
149
|
};
|
|
152
150
|
exports.KeyframeEasingNavigator = KeyframeEasingNavigator;
|
|
@@ -341,7 +341,7 @@ const KeyframeInspector = ({ selection }) => {
|
|
|
341
341
|
return jsx_runtime_1.jsx(common_1.InspectorMessage, { children: "Keyframe unavailable" });
|
|
342
342
|
}
|
|
343
343
|
return (jsx_runtime_1.jsxs("div", { style: styles_1.selectedContainer, className: is_menu_item_1.VERTICAL_SCROLLBAR_CLASSNAME, children: [
|
|
344
|
-
jsx_runtime_1.jsx(SequenceInspectorHeader_1.SequenceInspectorSections, { track: track }), jsx_runtime_1.jsx(common_1.InspectorBackAction, { disabled: parentSelection === null, onClick: onSelectParent,
|
|
344
|
+
jsx_runtime_1.jsx(SequenceInspectorHeader_1.SequenceInspectorSections, { track: track }), jsx_runtime_1.jsx(common_1.InspectorBackAction, { disabled: parentSelection === null, onClick: onSelectParent, "aria-label": "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) => ({
|
|
345
345
|
...keyframe,
|
|
346
346
|
frame: keyframe.frame / details.keyframePlaybackRate +
|
|
347
347
|
details.keyframeDisplayOffset,
|
|
@@ -25,8 +25,10 @@ const extrapolateOptions = [
|
|
|
25
25
|
'wrap',
|
|
26
26
|
];
|
|
27
27
|
const labelForExtrapolate = (value) => value[0].toUpperCase() + value.slice(1);
|
|
28
|
-
const getExtrapolateValues = (onSelect, disabled) => {
|
|
29
|
-
return extrapolateOptions
|
|
28
|
+
const getExtrapolateValues = (onSelect, disabled, allowIdentity) => {
|
|
29
|
+
return extrapolateOptions
|
|
30
|
+
.filter((value) => allowIdentity || value !== 'identity')
|
|
31
|
+
.map((value) => ({
|
|
30
32
|
type: 'item',
|
|
31
33
|
id: value,
|
|
32
34
|
keyHint: null,
|
|
@@ -66,7 +68,9 @@ const KeyframeSettings = ({ update }) => {
|
|
|
66
68
|
const { previewServerState } = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx);
|
|
67
69
|
const { propStatus } = update;
|
|
68
70
|
const [posterize, setPosterize] = (0, react_1.useState)((_a = propStatus.posterize) !== null && _a !== void 0 ? _a : 0);
|
|
69
|
-
const
|
|
71
|
+
const canEditExtrapolation = propStatus.interpolationFunction === 'interpolate' ||
|
|
72
|
+
propStatus.interpolationFunction === 'interpolatePaths';
|
|
73
|
+
const canEditOutput = propStatus.interpolationFunction === 'interpolate';
|
|
70
74
|
const disabled = previewServerState.type !== 'connected';
|
|
71
75
|
(0, react_1.useEffect)(() => {
|
|
72
76
|
var _a;
|
|
@@ -104,12 +108,13 @@ const KeyframeSettings = ({ update }) => {
|
|
|
104
108
|
var { left = propStatus.clamping.left, output = (_b = propStatus.output) !== null && _b !== void 0 ? _b : 'linear', posterize: nextPosterize = (_c = propStatus.posterize) !== null && _c !== void 0 ? _c : 0, right = propStatus.clamping.right, } = _a;
|
|
105
109
|
save({
|
|
106
110
|
type: 'settings',
|
|
107
|
-
clamping:
|
|
108
|
-
output:
|
|
111
|
+
clamping: canEditExtrapolation ? { left, right } : undefined,
|
|
112
|
+
output: canEditOutput ? output : undefined,
|
|
109
113
|
posterize: nextPosterize <= 0 ? undefined : nextPosterize,
|
|
110
114
|
});
|
|
111
115
|
}, [
|
|
112
|
-
|
|
116
|
+
canEditExtrapolation,
|
|
117
|
+
canEditOutput,
|
|
113
118
|
propStatus.clamping.left,
|
|
114
119
|
propStatus.clamping.right,
|
|
115
120
|
propStatus.output,
|
|
@@ -119,8 +124,8 @@ const KeyframeSettings = ({ update }) => {
|
|
|
119
124
|
const onSelectLeft = (0, react_1.useCallback)((left) => saveSettings({ left }), [saveSettings]);
|
|
120
125
|
const onSelectRight = (0, react_1.useCallback)((right) => saveSettings({ right }), [saveSettings]);
|
|
121
126
|
const onSelectOutput = (0, react_1.useCallback)((output) => saveSettings({ output }), [saveSettings]);
|
|
122
|
-
const leftValues = (0, react_1.useMemo)(() => getExtrapolateValues(onSelectLeft, disabled), [disabled, onSelectLeft]);
|
|
123
|
-
const rightValues = (0, react_1.useMemo)(() => getExtrapolateValues(onSelectRight, disabled), [disabled, onSelectRight]);
|
|
127
|
+
const leftValues = (0, react_1.useMemo)(() => getExtrapolateValues(onSelectLeft, disabled, canEditOutput), [canEditOutput, disabled, onSelectLeft]);
|
|
128
|
+
const rightValues = (0, react_1.useMemo)(() => getExtrapolateValues(onSelectRight, disabled, canEditOutput), [canEditOutput, disabled, onSelectRight]);
|
|
124
129
|
const outputValues = (0, react_1.useMemo)(() => getOutputValues(onSelectOutput, disabled), [disabled, onSelectOutput]);
|
|
125
130
|
const onPosterizeChange = (0, react_1.useCallback)((value) => {
|
|
126
131
|
setPosterize(Math.max(0, Math.round(value)));
|
|
@@ -133,9 +138,9 @@ const KeyframeSettings = ({ update }) => {
|
|
|
133
138
|
const posterizeFormatter = (0, react_1.useCallback)((value) => {
|
|
134
139
|
return String(Math.round(Number(value)));
|
|
135
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: [
|
|
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,
|
|
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 }) })
|
|
141
|
+
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: [canEditExtrapolation ? (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
142
|
+
jsx_runtime_1.jsx(common_1.InspectorDetailRow, { label: "Extrapolate left", children: jsx_runtime_1.jsx(ComboBox_1.Combobox, { values: leftValues, selectedId: propStatus.clamping.left, "aria-label": "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, "aria-label": "Extrapolate right", style: comboStyle, size: "small" }) })
|
|
143
|
+
] })) : null, canEditOutput ? (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', "aria-label": "Output", style: comboStyle, size: "small" }) })) : 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
144
|
] }) }));
|
|
140
145
|
};
|
|
141
146
|
exports.KeyframeSettings = KeyframeSettings;
|
|
@@ -116,7 +116,7 @@ const MultiSequenceField = ({ field, targets, readOnlyStudio }) => {
|
|
|
116
116
|
color: colors_1.BLUE,
|
|
117
117
|
fontSize: 12,
|
|
118
118
|
padding: 0,
|
|
119
|
-
},
|
|
119
|
+
}, "aria-label": "Set a value for all selected sequences", onClick: () => setEditingMixed(true), children: "Mixed" }));
|
|
120
120
|
}
|
|
121
121
|
else {
|
|
122
122
|
content = (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [mixed ? jsx_runtime_1.jsx("span", { style: { fontSize: 12 }, children: "Mixed \u00B7 " }) : null, jsx_runtime_1.jsx(TimelineSchemaField_1.TimelineFieldValue, { field: field, effectiveValue: values[0], propStatus: {
|
|
@@ -9,7 +9,7 @@ const calculate_timeline_1 = require("../../helpers/calculate-timeline");
|
|
|
9
9
|
const colors_1 = require("../../helpers/colors");
|
|
10
10
|
const interactivity_enabled_1 = require("../../helpers/interactivity-enabled");
|
|
11
11
|
const timeline_layout_1 = require("../../helpers/timeline-layout");
|
|
12
|
-
const
|
|
12
|
+
const split_1 = require("../../icons/split");
|
|
13
13
|
const InspectorInfoHeader_1 = require("../InspectorInfoHeader");
|
|
14
14
|
const InspectorPanelLayout_1 = require("../InspectorPanelLayout");
|
|
15
15
|
const layout_1 = require("../layout");
|
|
@@ -31,11 +31,6 @@ const selectionCountStyle = {
|
|
|
31
31
|
textOverflow: 'ellipsis',
|
|
32
32
|
whiteSpace: 'nowrap',
|
|
33
33
|
};
|
|
34
|
-
const actionIconStyle = {
|
|
35
|
-
display: 'block',
|
|
36
|
-
height: 16,
|
|
37
|
-
width: 16,
|
|
38
|
-
};
|
|
39
34
|
const MultiSequenceInspector = ({ selections, readOnlyStudio }) => {
|
|
40
35
|
const { sequences } = (0, react_1.useContext)(remotion_1.Internals.SequenceManager);
|
|
41
36
|
const timelinePosition = remotion_1.Internals.Timeline.useTimelinePosition();
|
|
@@ -128,7 +123,7 @@ const MultiSequenceInspector = ({ selections, readOnlyStudio }) => {
|
|
|
128
123
|
const groupedFields = fields.filter((field) => field.group === group.id);
|
|
129
124
|
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)) +
|
|
130
125
|
field.key))) }, group.id));
|
|
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,
|
|
126
|
+
}) })), 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, iconContainerStyle: common_1.largeInspectorActionIconContainerStyle, onClick: onSplit, "aria-label": canSplit ? undefined : 'Studio is read-only', renderIcon: (color) => (jsx_runtime_1.jsx(split_1.SplitIcon, { style: common_1.largeInspectorActionIconStyle, color: color })), children: "Split selected" }) }) })
|
|
132
127
|
] }));
|
|
133
128
|
};
|
|
134
129
|
exports.MultiSequenceInspector = MultiSequenceInspector;
|
|
@@ -61,9 +61,9 @@ const NumericAxis = ({ field, values, axis, onPreview, onSave, onClear }) => {
|
|
|
61
61
|
event.target.value.trim() === '') {
|
|
62
62
|
clear();
|
|
63
63
|
}
|
|
64
|
-
}, children: jsx_runtime_1.jsx(InputDragger_1.InputDragger, { type: "number", value: dragValue !== null && dragValue !== void 0 ? dragValue : coordinates[0], "aria-label": axis === null
|
|
64
|
+
}, children: jsx_runtime_1.jsx(InputDragger_1.InputDragger, { type: "number", "aria-description": "Type to set all values; drag to adjust each value", value: dragValue !== null && dragValue !== void 0 ? dragValue : coordinates[0], "aria-label": axis === null
|
|
65
65
|
? ((_d = field.description) !== null && _d !== void 0 ? _d : field.key)
|
|
66
|
-
: `Offset ${['X', 'Y', 'Z'][axis]}`,
|
|
66
|
+
: `Offset ${['X', 'Y', 'Z'][axis]}`, status: "ok", small: true, rightAlign: false, min: min, max: max, step: step, allowStepMismatch: true, integerOnly: schema.type === 'number' && schema.integer === true, snapToStep: axis === null, dragDecimalPlaces: decimalPlaces, dragSensitivity: axis === null ? 1 : 3, buttonStyle: { paddingLeft: 0 }, style: { width: 70 }, formatter: (value) => mixed && dragValue === null
|
|
67
67
|
? 'Mixed'
|
|
68
68
|
: (0, timeline_field_display_utils_1.formatTimelineFieldValueForDisplay)({ fieldSchema: schema, value }), onTextChange: noop_1.noop, onValueChange: (value, source) => {
|
|
69
69
|
var _a;
|
|
@@ -101,7 +101,7 @@ const SequenceInspectorHeader = ({ sourceLocation, track }) => {
|
|
|
101
101
|
saveName(newName).catch(() => undefined);
|
|
102
102
|
}, [saveName]);
|
|
103
103
|
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: [
|
|
104
|
-
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,
|
|
104
|
+
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, "aria-label": "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" }) })
|
|
105
105
|
] })) : (jsx_runtime_1.jsx("div", { style: subtitleStyle, children: componentName })), jsx_runtime_1.jsx(InspectorSourceLocation_1.InspectorSourceLocation, { location: sourceLocation.validatedLocation, canOpen: sourceLocation.canOpen, onOpen: sourceLocation.openFileLocation, renderIcon: renderReactIcon, size: "quick-action" })
|
|
106
106
|
] }) }));
|
|
107
107
|
};
|
|
@@ -10,8 +10,8 @@ const use_media_metadata_1 = require("../../helpers/use-media-metadata");
|
|
|
10
10
|
const audio_1 = require("../../icons/audio");
|
|
11
11
|
const background_removal_1 = require("../../icons/background-removal");
|
|
12
12
|
const duplicate_1 = require("../../icons/duplicate");
|
|
13
|
-
const scissors_1 = require("../../icons/scissors");
|
|
14
13
|
const snowflake_1 = require("../../icons/snowflake");
|
|
14
|
+
const split_1 = require("../../icons/split");
|
|
15
15
|
const transcription_1 = require("../../icons/transcription");
|
|
16
16
|
const trash_1 = require("../../icons/trash");
|
|
17
17
|
const modals_1 = require("../../state/modals");
|
|
@@ -34,16 +34,6 @@ const SequenceInspectorHeader_1 = require("./SequenceInspectorHeader");
|
|
|
34
34
|
const SequenceWrapAction_1 = require("./SequenceWrapAction");
|
|
35
35
|
const styles_1 = require("./styles");
|
|
36
36
|
const use_track_for_selection_1 = require("./use-track-for-selection");
|
|
37
|
-
const actionIconStyle = {
|
|
38
|
-
display: 'block',
|
|
39
|
-
height: 16,
|
|
40
|
-
width: 16,
|
|
41
|
-
};
|
|
42
|
-
const largeActionIconStyle = {
|
|
43
|
-
...actionIconStyle,
|
|
44
|
-
height: 20,
|
|
45
|
-
width: 20,
|
|
46
|
-
};
|
|
47
37
|
const SplitSequenceQuickAction = ({ selection, track }) => {
|
|
48
38
|
const timelinePosition = remotion_1.Internals.Timeline.useTimelinePosition();
|
|
49
39
|
const { propStatuses } = (0, react_1.useContext)(remotion_1.Internals.VisualModePropStatusesContext);
|
|
@@ -73,7 +63,7 @@ const SplitSequenceQuickAction = ({ selection, track }) => {
|
|
|
73
63
|
: eligibility.canSplit
|
|
74
64
|
? undefined
|
|
75
65
|
: eligibility.reason;
|
|
76
|
-
return (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: !canSplit, onClick: onSplit,
|
|
66
|
+
return (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: !canSplit, iconContainerStyle: common_1.largeInspectorActionIconContainerStyle, onClick: onSplit, "aria-label": disabledReason, renderIcon: (color) => (jsx_runtime_1.jsx(split_1.SplitIcon, { style: common_1.largeInspectorActionIconStyle, color: color })), children: "Split clip" }));
|
|
77
67
|
};
|
|
78
68
|
const SequenceSourceQuickActions = ({ selection, track, validatedSource }) => {
|
|
79
69
|
var _a;
|
|
@@ -193,7 +183,8 @@ const SequenceSourceQuickActions = ({ selection, track, validatedSource }) => {
|
|
|
193
183
|
(0, NotificationCenter_1.showNotification)(err.message, 4000);
|
|
194
184
|
});
|
|
195
185
|
}, [selection.nodePathInfo, splitVideoFromAudioDisabledReason]);
|
|
196
|
-
|
|
186
|
+
// Pad the larger SVG glyphs so they have similar visible bounds at 22px.
|
|
187
|
+
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), iconContainerStyle: common_1.largeInspectorActionIconContainerStyle, onClick: () => freezeFrameMenuItem.onClick(freezeFrameMenuItem.id, null), renderIcon: (color) => (jsx_runtime_1.jsx(snowflake_1.SnowflakeIcon, { style: common_1.largeInspectorActionIconStyle, color: color })), children: freezeFrameMenuItem.label })) : null, track.sequence.type === 'video' ? (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: videoMattingDisabledReason !== undefined, iconContainerStyle: common_1.largeInspectorActionIconContainerStyle, onClick: onRemoveBackground, "aria-label": videoMattingDisabledReason, renderIcon: (color) => (jsx_runtime_1.jsx(background_removal_1.BackgroundRemovalIcon, { style: common_1.largeInspectorActionIconStyle, color: color, viewBox: "-32 -32 704 704" })), children: "Remove background" })) : null, track.sequence.type === 'video' ? (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: splitVideoFromAudioDisabledReason !== undefined, iconContainerStyle: common_1.largeInspectorActionIconContainerStyle, onClick: onSplitVideoFromAudio, "aria-label": splitVideoFromAudioDisabledReason, renderIcon: (color) => (jsx_runtime_1.jsx(audio_1.AudioIcon, { style: common_1.largeInspectorActionIconStyle, color: color, viewBox: "-96 -64 704 640", preserveAspectRatio: "none" })), 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, iconContainerStyle: common_1.largeInspectorActionIconContainerStyle, onClick: onGenerateCaptions, "aria-label": transcriptionDisabledReason, renderIcon: (color) => (jsx_runtime_1.jsx(transcription_1.TranscriptionIcon, { style: common_1.largeInspectorActionIconStyle, color: color, viewBox: "-96 -16 704 544", preserveAspectRatio: "none" })), children: "Generate captions" })) : null, jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: sourceActionsDisabled, iconContainerStyle: common_1.largeInspectorActionIconContainerStyle, onClick: onDuplicate, renderIcon: (color) => (jsx_runtime_1.jsx(duplicate_1.DuplicateIcon, { style: common_1.largeInspectorActionIconStyle, color: color, viewBox: "-32 -32 704 704" })), children: "Duplicate" }), jsx_runtime_1.jsx(SequenceWrapAction_1.SequenceWrapAction, { nodePathInfo: selection.nodePathInfo, sequence: track.sequence, sourceActionsDisabled: sourceActionsDisabled }), jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: sourceActionsDisabled, iconContainerStyle: common_1.largeInspectorActionIconContainerStyle, onClick: onDelete, renderIcon: (color) => (jsx_runtime_1.jsx(trash_1.TrashIcon, { style: common_1.largeInspectorActionIconStyle, color: color, viewBox: "-120 -96 688 688" })), children: "Delete" })] }));
|
|
197
188
|
};
|
|
198
189
|
const SequenceExpandedInspector = ({ track, readOnlyStudio }) => {
|
|
199
190
|
const { previewServerState } = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx);
|
|
@@ -11,6 +11,7 @@ const InspectorPanelLayout_1 = require("../InspectorPanelLayout");
|
|
|
11
11
|
const NotificationCenter_1 = require("../Notifications/NotificationCenter");
|
|
12
12
|
const SegmentedButton_1 = require("../SegmentedButton");
|
|
13
13
|
const wrap_jsx_node_api_1 = require("../wrap-jsx-node-api");
|
|
14
|
+
const common_1 = require("./common");
|
|
14
15
|
const wrapperNames = ['AbsoluteFill', 'Sequence', 'HtmlInCanvas'];
|
|
15
16
|
const buttonStyle = {
|
|
16
17
|
borderRadius: 4,
|
|
@@ -25,14 +26,6 @@ const segmentStyle = {
|
|
|
25
26
|
padding: `0 ${InspectorPanelLayout_1.INSPECTOR_PANEL_HORIZONTAL_PADDING - 4}px`,
|
|
26
27
|
width: '100%',
|
|
27
28
|
};
|
|
28
|
-
const iconStyle = { height: 22, width: 22 };
|
|
29
|
-
const iconContainerStyle = {
|
|
30
|
-
flexShrink: 0,
|
|
31
|
-
height: 22,
|
|
32
|
-
marginLeft: -2,
|
|
33
|
-
marginRight: -2,
|
|
34
|
-
width: 22,
|
|
35
|
-
};
|
|
36
29
|
const labelStyle = {
|
|
37
30
|
flex: 1,
|
|
38
31
|
fontFamily: 'sans-serif',
|
|
@@ -123,21 +116,20 @@ const SequenceWrapAction = ({ nodePathInfo, sequence, sourceActionsDisabled }) =
|
|
|
123
116
|
})), [busy, eligibility, onWrap]);
|
|
124
117
|
const segments = (0, react_1.useMemo)(() => [
|
|
125
118
|
{
|
|
126
|
-
ariaLabel:
|
|
119
|
+
ariaLabel: nodePathInfo.numberOfSequencesWithThisNodePath > 1
|
|
120
|
+
? `Wrap all ${nodePathInfo.numberOfSequencesWithThisNodePath} instances of this JSX element`
|
|
121
|
+
: 'Wrap this JSX element',
|
|
127
122
|
buttonId: null,
|
|
128
123
|
disabled: busy,
|
|
129
124
|
idleColor: colors_1.LIGHT_TEXT,
|
|
130
125
|
leaveLeftSpace: false,
|
|
131
126
|
onOpenChange: null,
|
|
132
127
|
renderContent: (color) => (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
133
|
-
jsx_runtime_1.jsx("span", { style:
|
|
128
|
+
jsx_runtime_1.jsx("span", { style: common_1.largeInspectorActionIconContainerStyle, children: jsx_runtime_1.jsx(wrap_1.WrapIcon, { color: color, style: common_1.largeInspectorActionIconStyle }) }), jsx_runtime_1.jsx("span", { style: labelStyle, children: "Wrap" }), jsx_runtime_1.jsx("span", { style: caretStyle, children: jsx_runtime_1.jsx(caret_1.CaretDown, { color: color }) })
|
|
134
129
|
] })),
|
|
135
130
|
segmentId: 'wrap',
|
|
136
131
|
selectedId: null,
|
|
137
132
|
style: segmentStyle,
|
|
138
|
-
title: nodePathInfo.numberOfSequencesWithThisNodePath > 1
|
|
139
|
-
? `Wrap all ${nodePathInfo.numberOfSequencesWithThisNodePath} instances of this JSX element`
|
|
140
|
-
: 'Wrap this JSX element',
|
|
141
133
|
tooltipLabel: null,
|
|
142
134
|
type: 'menu',
|
|
143
135
|
values,
|
|
@@ -146,6 +138,6 @@ const SequenceWrapAction = ({ nodePathInfo, sequence, sourceActionsDisabled }) =
|
|
|
146
138
|
if (!(eligibility === null || eligibility === void 0 ? void 0 : eligibility.canWrap) || sourceActionsDisabled) {
|
|
147
139
|
return null;
|
|
148
140
|
}
|
|
149
|
-
return
|
|
141
|
+
return jsx_runtime_1.jsx(SegmentedButton_1.SegmentedButton, { segments: segments, style: buttonStyle });
|
|
150
142
|
};
|
|
151
143
|
exports.SequenceWrapAction = SequenceWrapAction;
|
|
@@ -18,7 +18,7 @@ export declare const InspectorBackAction: React.FC<{
|
|
|
18
18
|
readonly children: React.ReactNode;
|
|
19
19
|
readonly disabled: boolean;
|
|
20
20
|
readonly onClick: React.MouseEventHandler<HTMLButtonElement>;
|
|
21
|
-
readonly
|
|
21
|
+
readonly 'aria-label': string;
|
|
22
22
|
}>;
|
|
23
23
|
export declare const InspectorMessage: React.FC<{
|
|
24
24
|
readonly children: React.ReactNode;
|
|
@@ -27,6 +27,10 @@ export declare const InspectorDetailRow: React.FC<{
|
|
|
27
27
|
readonly label: React.ReactNode | ((hovered: boolean) => React.ReactNode);
|
|
28
28
|
readonly children: React.ReactNode;
|
|
29
29
|
}>;
|
|
30
|
+
export declare const inspectorActionIconStyle: React.CSSProperties;
|
|
31
|
+
export declare const inspectorActionIconContainerStyle: React.CSSProperties;
|
|
32
|
+
export declare const largeInspectorActionIconStyle: React.CSSProperties;
|
|
33
|
+
export declare const largeInspectorActionIconContainerStyle: React.CSSProperties;
|
|
30
34
|
export type InspectorQuickActionProps = {
|
|
31
35
|
readonly children: React.ReactNode;
|
|
32
36
|
readonly disabled: boolean;
|
|
@@ -35,7 +39,7 @@ export type InspectorQuickActionProps = {
|
|
|
35
39
|
readonly renderIcon?: (color: string) => React.ReactNode;
|
|
36
40
|
readonly size?: 'default' | 'compact';
|
|
37
41
|
readonly style?: React.CSSProperties;
|
|
38
|
-
readonly
|
|
42
|
+
readonly 'aria-label'?: string;
|
|
39
43
|
};
|
|
40
44
|
export declare const InspectorQuickAction: React.FC<InspectorQuickActionProps>;
|
|
41
45
|
export declare const InspectorDefaultPropsWarnings: React.FC<{
|
|
@@ -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.InspectorSectionBody = exports.InspectorQuickActionsSection = exports.InspectorSectionHeader = void 0;
|
|
6
|
+
exports.InspectorDefaultPropsWarnings = exports.InspectorQuickAction = exports.largeInspectorActionIconContainerStyle = exports.largeInspectorActionIconStyle = exports.inspectorActionIconContainerStyle = exports.inspectorActionIconStyle = 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");
|
|
@@ -41,8 +41,8 @@ const backArrowIcon = {
|
|
|
41
41
|
const BackArrow = ({ color }) => {
|
|
42
42
|
return (jsx_runtime_1.jsx("svg", { viewBox: "0 0 512 512", style: backArrowIcon, children: jsx_runtime_1.jsx("path", { d: "M7 239c-9.4 9.4-9.4 24.6 0 33.9L175 441c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L81.9 280 488 280c13.3 0 24-10.7 24-24s-10.7-24-24-24L81.9 232 209 105c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L7 239z", fill: color }) }));
|
|
43
43
|
};
|
|
44
|
-
const InspectorBackAction = ({ children, disabled, onClick,
|
|
45
|
-
return (jsx_runtime_1.jsx("div", { style: styles_1.inspectorQuickActionsSection, children: jsx_runtime_1.jsx(exports.InspectorQuickAction, { disabled: disabled, onClick: onClick, renderIcon: (color) => jsx_runtime_1.jsx(BackArrow, { color: color }),
|
|
44
|
+
const InspectorBackAction = ({ children, disabled, onClick, 'aria-label': ariaLabel }) => {
|
|
45
|
+
return (jsx_runtime_1.jsx("div", { style: styles_1.inspectorQuickActionsSection, children: jsx_runtime_1.jsx(exports.InspectorQuickAction, { disabled: disabled, onClick: onClick, renderIcon: (color) => jsx_runtime_1.jsx(BackArrow, { color: color }), "aria-label": ariaLabel, children: children }) }));
|
|
46
46
|
};
|
|
47
47
|
exports.InspectorBackAction = InspectorBackAction;
|
|
48
48
|
const InspectorMessage = ({ children }) => jsx_runtime_1.jsx("div", { style: styles_1.centeredMessage, children: children });
|
|
@@ -92,15 +92,31 @@ const inlineLabelText = {
|
|
|
92
92
|
WebkitUserSelect: 'none',
|
|
93
93
|
whiteSpace: 'nowrap',
|
|
94
94
|
};
|
|
95
|
-
const
|
|
95
|
+
const INSPECTOR_ACTION_ICON_SIZE = 18;
|
|
96
|
+
exports.inspectorActionIconStyle = {
|
|
97
|
+
display: 'block',
|
|
98
|
+
height: INSPECTOR_ACTION_ICON_SIZE,
|
|
99
|
+
width: INSPECTOR_ACTION_ICON_SIZE,
|
|
100
|
+
};
|
|
101
|
+
exports.inspectorActionIconContainerStyle = {
|
|
96
102
|
alignItems: 'center',
|
|
97
103
|
display: 'flex',
|
|
98
104
|
flexShrink: 0,
|
|
99
|
-
height:
|
|
105
|
+
height: INSPECTOR_ACTION_ICON_SIZE,
|
|
100
106
|
justifyContent: 'center',
|
|
101
|
-
width:
|
|
107
|
+
width: INSPECTOR_ACTION_ICON_SIZE,
|
|
108
|
+
};
|
|
109
|
+
exports.largeInspectorActionIconStyle = {
|
|
110
|
+
height: 22,
|
|
111
|
+
width: 22,
|
|
112
|
+
};
|
|
113
|
+
exports.largeInspectorActionIconContainerStyle = {
|
|
114
|
+
height: 22,
|
|
115
|
+
marginLeft: -2,
|
|
116
|
+
marginRight: -2,
|
|
117
|
+
width: 22,
|
|
102
118
|
};
|
|
103
|
-
const InspectorQuickAction = ({ children, disabled, iconContainerStyle, onClick, renderIcon, size = 'default', style,
|
|
119
|
+
const InspectorQuickAction = ({ children, disabled, iconContainerStyle, onClick, renderIcon, size = 'default', style, 'aria-label': ariaLabel, }) => {
|
|
104
120
|
const showsHover = !disabled && onClick !== null;
|
|
105
121
|
const buttonStyle = react_1.default.useMemo(() => ({
|
|
106
122
|
...(disabled ? inlineLabelButtonDisabled : inlineLabelButton),
|
|
@@ -115,9 +131,9 @@ const InspectorQuickAction = ({ children, disabled, iconContainerStyle, onClick,
|
|
|
115
131
|
...(size === 'compact' ? compactInlineLabelButton : null),
|
|
116
132
|
...style,
|
|
117
133
|
}), [disabled, showsHover, size, style]);
|
|
118
|
-
const mainContent = (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [renderIcon ? (jsx_runtime_1.jsx("span", { style: { ...
|
|
134
|
+
const mainContent = (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [renderIcon ? (jsx_runtime_1.jsx("span", { style: { ...exports.inspectorActionIconContainerStyle, ...iconContainerStyle }, children: renderIcon(colors_1.CURRENT_COLOR) })) : null, jsx_runtime_1.jsx("span", { style: inlineLabelText, children: children })
|
|
119
135
|
] }));
|
|
120
|
-
const mainAction = onClick ? (jsx_runtime_1.jsx("button", { className: `__remotion-inspector-quick-action ${hoverable_1.HOVERABLE_CLASS_NAME}`, type: "button", disabled: disabled, style: buttonStyle,
|
|
136
|
+
const mainAction = onClick ? (jsx_runtime_1.jsx("button", { className: `__remotion-inspector-quick-action ${hoverable_1.HOVERABLE_CLASS_NAME}`, type: "button", disabled: disabled, style: buttonStyle, "aria-label": ariaLabel, onClick: onClick, children: mainContent })) : (jsx_runtime_1.jsx("div", { className: hoverable_1.HOVERABLE_CLASS_NAME, style: buttonStyle, "aria-label": ariaLabel, role: "group", children: mainContent }));
|
|
121
137
|
return mainAction;
|
|
122
138
|
};
|
|
123
139
|
exports.InspectorQuickAction = InspectorQuickAction;
|
|
@@ -248,7 +248,7 @@ const InspectorSequenceSection = ({ sequence, readOnlyStudio, validatedLocation,
|
|
|
248
248
|
disabled: false,
|
|
249
249
|
onClick: () => (0, timeline_asset_link_1.openTimelineAssetLink)(linkInfo, selectAsset),
|
|
250
250
|
renderIcon: (color) => (jsx_runtime_1.jsx(AssetFileIcon_1.AssetFileIcon, { color: color, fileType: (0, get_preview_file_type_1.getPreviewFileType)(linkInfo.assetPath), style: assetSelectorIcon })),
|
|
251
|
-
|
|
251
|
+
'aria-label': linkInfo.assetPath,
|
|
252
252
|
};
|
|
253
253
|
}
|
|
254
254
|
if ((linkInfo === null || linkInfo === void 0 ? void 0 : linkInfo.kind) === 'remote') {
|
|
@@ -259,7 +259,7 @@ const InspectorSequenceSection = ({ sequence, readOnlyStudio, validatedLocation,
|
|
|
259
259
|
] })),
|
|
260
260
|
disabled: false,
|
|
261
261
|
onClick: () => (0, timeline_asset_link_1.openTimelineAssetLink)(linkInfo, selectAsset),
|
|
262
|
-
|
|
262
|
+
'aria-label': linkInfo.href,
|
|
263
263
|
};
|
|
264
264
|
}
|
|
265
265
|
return null;
|
|
@@ -563,19 +563,19 @@ const InspectorSequenceSection = ({ sequence, readOnlyStudio, validatedLocation,
|
|
|
563
563
|
validatedLocation.source,
|
|
564
564
|
]);
|
|
565
565
|
const borderRadiusAction = borderRadiusGroup ? (jsx_runtime_1.jsx(InlineAction_1.InlineAction, { variant: null, disabled: borderRadiusConversion === null ||
|
|
566
|
-
previewServerState.type !== 'connected', onClick: onConvertBorderRadius,
|
|
566
|
+
previewServerState.type !== 'connected', onClick: onConvertBorderRadius, "aria-label": borderRadiusConversion === null
|
|
567
567
|
? borderRadiusUsesShorthand
|
|
568
568
|
? 'A static border radius is required to use individual corners'
|
|
569
569
|
: 'All four corners must have the same static value'
|
|
570
570
|
: borderRadiusUsesShorthand
|
|
571
571
|
? 'Use individual corner radii'
|
|
572
572
|
: 'Use one border radius value', renderAction: (color) => borderRadiusUsesShorthand ? (jsx_runtime_1.jsx(fullscreen_1.FullscreenIcon, { color: color, style: borderRadiusToggleIcon })) : (jsx_runtime_1.jsx(border_radius_1.BorderRadiusIcon, { color: color, style: borderRadiusToggleIcon })) })) : null;
|
|
573
|
-
const transform3DAction = (jsx_runtime_1.jsx(InlineAction_1.InlineAction, { variant: null, disabled: automaticallyEnabled3DTransform, onClick: onToggle3DTransform,
|
|
573
|
+
const transform3DAction = (jsx_runtime_1.jsx(InlineAction_1.InlineAction, { variant: null, disabled: automaticallyEnabled3DTransform, onClick: onToggle3DTransform, "aria-label": automaticallyEnabled3DTransform
|
|
574
574
|
? '3D controls are required by the current transform values'
|
|
575
575
|
: show3DTransformControls
|
|
576
576
|
? 'Hide 3D transform controls'
|
|
577
577
|
: 'Show 3D transform controls', hoveredColor: show3DTransformControls ? colors_1.BLUE : undefined, unhoveredColor: show3DTransformControls ? colors_1.BLUE : colors_1.LIGHT_TEXT, renderAction: (color) => (jsx_runtime_1.jsx(cube_1.CubeIcon, { color: color, style: transform3DToggleIcon })) }));
|
|
578
|
-
const effectsHeader = (jsx_runtime_1.jsx(CollapsibleInspectorSectionHeader_1.CollapsibleInspectorSectionHeader, { action: jsx_runtime_1.jsx(InlineAction_1.InlineAction, { variant: null, disabled: !canAddEffect, onClick: onAddEffect,
|
|
578
|
+
const effectsHeader = (jsx_runtime_1.jsx(CollapsibleInspectorSectionHeader_1.CollapsibleInspectorSectionHeader, { action: jsx_runtime_1.jsx(InlineAction_1.InlineAction, { variant: null, disabled: !canAddEffect, onClick: onAddEffect, "aria-label": canAddEffect ? 'Add effect' : undefined, renderAction: (color) => jsx_runtime_1.jsx(plus_1.Plus, { color: color, style: plusIcon }) }), expanded: effectsExpanded, label: "Effects", onToggle: hasEffects ? () => toggleAdditionalSection('effects') : null }));
|
|
579
579
|
const renderRow = ({ node, depth }) => {
|
|
580
580
|
return (jsx_runtime_1.jsx(TimelineRowLayoutContext_1.TimelineRowLayoutContext.Provider, { value: TimelineRowLayoutContext_1.INSPECTOR_TIMELINE_ROW_LAYOUT, children: jsx_runtime_1.jsx(TimelineExpandedRow_1.TimelineExpandedRow, { node: node, depth: depth, nestedDepth: 0, rowDepthBase: 0, getIsExpanded: getIsExpanded, toggleTrack: toggleTrack, validatedLocation: validatedLocation, nodePath: nodePathInfo.sequenceSubscriptionKey, schema: schema, keyframeDisplayOffset: keyframeDisplayOffset, keyframePlaybackRate: keyframePlaybackRate, keyframeControlsMode: "inspector" }) }, JSON.stringify(node.nodePathInfo)));
|
|
581
581
|
};
|