@remotion/studio 4.0.499 → 4.0.501
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 +1 -1
- package/dist/api/delete-static-file.js +8 -3
- package/dist/api/rename-static-file.js +8 -0
- package/dist/api/watch-public-folder.js +2 -1
- package/dist/api/watch-static-file.js +2 -1
- package/dist/api/write-static-file.js +8 -3
- package/dist/components/AssetSelector.js +11 -7
- package/dist/components/AssetSelectorItem.d.ts +25 -0
- package/dist/components/AssetSelectorItem.js +116 -80
- package/dist/components/Canvas.js +6 -1
- package/dist/components/CaptionInspector.d.ts +10 -0
- package/dist/components/CaptionInspector.js +24 -0
- package/dist/components/CaptionTextEditor.d.ts +9 -0
- package/dist/components/CaptionTextEditor.js +132 -0
- package/dist/components/CompositionSelector.js +2 -32
- package/dist/components/ControlButton.js +1 -0
- package/dist/components/CurrentAsset.js +3 -2
- package/dist/components/EditorContexts.d.ts +0 -1
- package/dist/components/EditorContexts.js +2 -2
- package/dist/components/ExplorerPanel.js +2 -1
- package/dist/components/ExplorerPanelRef.d.ts +2 -0
- package/dist/components/FpsCounter.js +3 -3
- package/dist/components/FullscreenToggle.js +2 -1
- package/dist/components/GlobalKeybindings.js +9 -1
- package/dist/components/InitialCompositionLoader.d.ts +1 -1
- package/dist/components/InlineAction.d.ts +2 -1
- package/dist/components/InlineAction.js +3 -2
- package/dist/components/InlineCaptionInspector.d.ts +11 -0
- package/dist/components/InlineCaptionInspector.js +108 -0
- package/dist/components/InlineDropdown.d.ts +1 -1
- package/dist/components/InlineDropdown.js +3 -2
- package/dist/components/InspectorPanel/AlignmentControls.d.ts +2 -2
- package/dist/components/InspectorPanel/AlignmentControls.js +5 -2
- package/dist/components/InspectorPanel/CompositionInspector.js +12 -9
- package/dist/components/InspectorPanel/CompositionMetadata.js +170 -57
- package/dist/components/InspectorPanel/ConnectedCompositionsSection.d.ts +2 -2
- package/dist/components/InspectorPanel/SelectedInspector.d.ts +1 -0
- package/dist/components/InspectorPanel/SelectedInspector.js +2 -2
- package/dist/components/InspectorPanel/SequenceInspectorHeader.d.ts +3 -3
- package/dist/components/InspectorPanel/SequenceSelectionInspector.d.ts +1 -0
- package/dist/components/InspectorPanel/SequenceSelectionInspector.js +10 -10
- package/dist/components/InspectorPanel/common.d.ts +17 -4
- package/dist/components/InspectorPanel/common.js +60 -6
- package/dist/components/InspectorPanel/inspector-section-collapse.d.ts +22 -0
- package/dist/components/InspectorPanel/inspector-section-collapse.js +165 -0
- package/dist/components/InspectorPanel/styles.js +7 -1
- package/dist/components/InspectorPanel/use-composition-actions.d.ts +3 -0
- package/dist/components/InspectorPanel/use-composition-actions.js +91 -5
- package/dist/components/InspectorPanel/use-track-for-selection.d.ts +1 -1
- package/dist/components/InspectorPanel.js +2 -2
- package/dist/components/InspectorSequenceSection.d.ts +2 -1
- package/dist/components/InspectorSequenceSection.js +279 -25
- package/dist/components/KeyboardShortcutsExplainer.js +4 -2
- package/dist/components/Menu/MenuItem.js +2 -1
- package/dist/components/MenuCompositionName.js +30 -7
- package/dist/components/MenuToolbar.d.ts +0 -1
- package/dist/components/MenuToolbar.js +15 -7
- package/dist/components/MobilePanel.d.ts +2 -1
- package/dist/components/MobilePanel.js +29 -25
- package/dist/components/ModalContainer.d.ts +1 -0
- package/dist/components/ModalContainer.js +2 -2
- package/dist/components/Modals.js +1 -1
- package/dist/components/NewComposition/DismissableModal.d.ts +1 -0
- package/dist/components/NewComposition/DismissableModal.js +2 -2
- package/dist/components/NewComposition/InputDragger.d.ts +7 -0
- package/dist/components/NewComposition/InputDragger.js +119 -8
- package/dist/components/OutlineToggle.d.ts +1 -3
- package/dist/components/OutlineToggle.js +2 -2
- package/dist/components/PreviewToolbar.js +10 -4
- package/dist/components/QuickSwitcher/ExplorerQuickSwitcherTrigger.d.ts +7 -0
- package/dist/components/QuickSwitcher/ExplorerQuickSwitcherTrigger.js +45 -0
- package/dist/components/QuickSwitcher/NoResults.d.ts +1 -1
- package/dist/components/QuickSwitcher/NoResults.js +1 -0
- package/dist/components/QuickSwitcher/QuickSwitcher.d.ts +10 -0
- package/dist/components/QuickSwitcher/QuickSwitcher.js +6 -2
- package/dist/components/QuickSwitcher/QuickSwitcherContent.d.ts +10 -0
- package/dist/components/QuickSwitcher/QuickSwitcherContent.js +95 -13
- package/dist/components/QuickSwitcher/QuickSwitcherResult.d.ts +4 -0
- package/dist/components/QuickSwitcher/QuickSwitcherResult.js +11 -8
- package/dist/components/QuickSwitcher/asset-search.d.ts +9 -0
- package/dist/components/QuickSwitcher/asset-search.js +42 -0
- package/dist/components/RenderQueue/ClientRenderQueueProcessor.d.ts +0 -1
- package/dist/components/RenderQueue/ClientRenderQueueProcessor.js +3 -14
- package/dist/components/RenderQueue/RenderQueueDownloadItem.js +2 -2
- package/dist/components/SelectedOutlineCropControls.d.ts +8 -0
- package/dist/components/SelectedOutlineCropControls.js +299 -0
- package/dist/components/SelectedOutlineElement.js +84 -47
- package/dist/components/SelectedOutlineOverlay.d.ts +2 -2
- package/dist/components/SelectedOutlineOverlay.js +147 -16
- package/dist/components/SequencePropsSubscriptionProvider.d.ts +2 -0
- package/dist/components/SequencePropsSubscriptionProvider.js +31 -3
- package/dist/components/ShowOutlinesProvider.js +4 -1
- package/dist/components/SidebarCollapserControls.d.ts +3 -1
- package/dist/components/SidebarCollapserControls.js +34 -29
- package/dist/components/SnappingToggle.d.ts +1 -3
- package/dist/components/SnappingToggle.js +2 -2
- package/dist/components/Timeline/Timeline.js +19 -5
- package/dist/components/Timeline/TimelineAssetField.d.ts +9 -1
- package/dist/components/Timeline/TimelineAssetField.js +53 -100
- package/dist/components/Timeline/TimelineClipboardKeybindings.d.ts +7 -3
- package/dist/components/Timeline/TimelineClipboardKeybindings.js +65 -38
- package/dist/components/Timeline/TimelineColorField.js +20 -1
- package/dist/components/Timeline/TimelineEffectPropItem.js +8 -77
- package/dist/components/Timeline/TimelineExpandedKeyframeRow.js +8 -1
- package/dist/components/Timeline/TimelineHeightContainer.d.ts +2 -2
- package/dist/components/Timeline/TimelineKeyframeTracksContext.d.ts +3 -3
- package/dist/components/Timeline/TimelineList.d.ts +2 -2
- package/dist/components/Timeline/TimelinePrimitiveFieldValue.d.ts +7 -2
- package/dist/components/Timeline/TimelinePrimitiveFieldValue.js +10 -2
- package/dist/components/Timeline/TimelineRowChrome.d.ts +3 -0
- package/dist/components/Timeline/TimelineRowChrome.js +4 -3
- package/dist/components/Timeline/TimelineSelection.d.ts +9 -7
- package/dist/components/Timeline/TimelineSelection.js +17 -12
- package/dist/components/Timeline/TimelineSequence.js +2 -9
- package/dist/components/Timeline/TimelineSequenceItem.js +61 -15
- package/dist/components/Timeline/TimelineSequencePropItem.js +36 -85
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.js +0 -1
- package/dist/components/Timeline/TimelineTrack.d.ts +2 -2
- package/dist/components/Timeline/TimelineTrack.js +4 -2
- package/dist/components/Timeline/TimelineTracks.d.ts +2 -2
- package/dist/components/Timeline/border-radius-representation.d.ts +16 -0
- package/dist/components/Timeline/border-radius-representation.js +60 -0
- package/dist/components/Timeline/delete-selected-timeline-item.js +1 -6
- package/dist/components/Timeline/find-track-for-node-path-info.d.ts +1 -1
- package/dist/components/Timeline/get-sequence-context-menu-items.js +14 -12
- package/dist/components/Timeline/get-sequence-prop-reset-changes.d.ts +10 -0
- package/dist/components/Timeline/get-sequence-prop-reset-changes.js +33 -0
- package/dist/components/Timeline/reset-selected-timeline-props.js +20 -18
- package/dist/components/Timeline/save-effect-prop.d.ts +10 -0
- package/dist/components/Timeline/save-effect-prop.js +52 -1
- package/dist/components/Timeline/save-sequence-prop.d.ts +12 -1
- package/dist/components/Timeline/save-sequence-prop.js +25 -1
- package/dist/components/Timeline/should-show-track-in-timeline.d.ts +2 -2
- package/dist/components/Timeline/timeline-asset-link.js +17 -1
- package/dist/components/Timeline/timeline-field-display-utils.js +1 -0
- package/dist/components/Timeline/use-sequence-freeze-frame-menu-item.d.ts +4 -0
- package/dist/components/Timeline/use-sequence-freeze-frame-menu-item.js +9 -3
- package/dist/components/Timeline/use-timeline-asset-drop.js +4 -0
- package/dist/components/Timeline/use-timeline-height.d.ts +2 -2
- package/dist/components/TopPanel.js +2 -2
- package/dist/components/UndoRedoButtons.js +42 -11
- package/dist/components/composition-drop-preview.js +1 -0
- package/dist/components/handle-drop.d.ts +3 -2
- package/dist/components/handle-drop.js +2 -1
- package/dist/components/import-assets.d.ts +4 -2
- package/dist/components/import-assets.js +20 -7
- package/dist/components/menu-toolbar-height.d.ts +1 -0
- package/dist/components/menu-toolbar-height.js +4 -0
- package/dist/components/selected-outline-drag.d.ts +41 -4
- package/dist/components/selected-outline-drag.js +179 -2
- package/dist/components/selected-outline-geometry.d.ts +1 -0
- package/dist/components/selected-outline-measurement.d.ts +11 -0
- package/dist/components/selected-outline-measurement.js +64 -3
- package/dist/components/selected-outline-types.d.ts +44 -1
- package/dist/components/selected-outline-types.js +21 -1
- package/dist/components/use-element-overwrite-confirmation.d.ts +2 -0
- package/dist/components/use-element-overwrite-confirmation.js +73 -0
- package/dist/components/use-static-files.js +7 -2
- package/dist/error-overlay/react-overlay/effects/resolve-file-source.js +13 -2
- package/dist/error-overlay/remotion-overlay/Overlay.js +3 -3
- package/dist/error-overlay/remotion-overlay/ShortcutHint.js +2 -3
- package/dist/esm/{chunk-pk1zwsn1.js → chunk-n1kj09yv.js} +10618 -8002
- package/dist/esm/index.mjs +24 -8
- package/dist/esm/internals.mjs +10618 -8002
- package/dist/esm/previewEntry.mjs +40002 -37388
- package/dist/esm/renderEntry.mjs +1 -1
- package/dist/helpers/browser-studio-operations.d.ts +3 -0
- package/dist/helpers/browser-studio-operations.js +14 -0
- package/dist/helpers/calculate-timeline.d.ts +2 -2
- package/dist/helpers/calculate-timeline.js +8 -28
- package/dist/helpers/client-id.d.ts +0 -1
- package/dist/helpers/client-id.js +15 -10
- package/dist/helpers/download-blob.d.ts +1 -0
- package/dist/helpers/download-blob.js +15 -0
- package/dist/helpers/get-timeline-sequence-sort-key.d.ts +3 -10
- package/dist/helpers/get-timeline-sequence-sort-key.js +5 -13
- package/dist/helpers/inject-css.js +5 -3
- package/dist/helpers/interactivity-enabled.d.ts +1 -0
- package/dist/helpers/interactivity-enabled.js +7 -2
- package/dist/helpers/is-mac.d.ts +1 -0
- package/dist/helpers/is-mac.js +4 -0
- package/dist/helpers/open-in-editor.d.ts +5 -1
- package/dist/helpers/open-in-editor.js +39 -4
- package/dist/helpers/preview-server-events.js +46 -9
- package/dist/helpers/sort-by-nonce-history.js +97 -19
- package/dist/helpers/use-create-composition.js +8 -6
- package/dist/helpers/use-keybinding.js +2 -3
- package/dist/helpers/use-menu-structure.js +39 -1
- package/dist/hot-middleware-client/client.js +3 -3
- package/dist/icons/border-radius.d.ts +4 -0
- package/dist/icons/border-radius.js +8 -0
- package/dist/icons/caret.d.ts +1 -0
- package/dist/icons/caret.js +2 -2
- package/dist/icons/fullscreen.d.ts +4 -0
- package/dist/icons/fullscreen.js +6 -0
- package/dist/icons/pen.d.ts +5 -0
- package/dist/icons/pen.js +8 -0
- package/dist/previewEntry.js +1 -1
- package/dist/state/modals.d.ts +9 -0
- package/dist/state/timeline-sequence-hover.d.ts +17 -0
- package/dist/state/timeline-sequence-hover.js +33 -0
- package/package.json +13 -12
- package/dist/helpers/get-timeline-sequence-hash.d.ts +0 -6
- package/dist/helpers/get-timeline-sequence-hash.js +0 -33
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useElementOverwriteConfirmation = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const ConfirmationDialog_1 = require("./ConfirmationDialog");
|
|
7
|
+
const filePathStyle = {
|
|
8
|
+
color: 'inherit',
|
|
9
|
+
fontFamily: 'monospace',
|
|
10
|
+
fontSize: 13,
|
|
11
|
+
lineHeight: 1.4,
|
|
12
|
+
};
|
|
13
|
+
const warningStyle = {
|
|
14
|
+
color: 'inherit',
|
|
15
|
+
fontFamily: 'sans-serif',
|
|
16
|
+
fontSize: 14,
|
|
17
|
+
lineHeight: 1.4,
|
|
18
|
+
marginTop: 12,
|
|
19
|
+
};
|
|
20
|
+
const sourceDetailsStyle = {
|
|
21
|
+
color: 'inherit',
|
|
22
|
+
fontFamily: 'sans-serif',
|
|
23
|
+
fontSize: 13,
|
|
24
|
+
lineHeight: 1.4,
|
|
25
|
+
marginTop: 12,
|
|
26
|
+
};
|
|
27
|
+
const sourceSummaryStyle = {
|
|
28
|
+
color: 'inherit',
|
|
29
|
+
cursor: 'pointer',
|
|
30
|
+
fontFamily: 'sans-serif',
|
|
31
|
+
fontSize: 13,
|
|
32
|
+
fontWeight: 500,
|
|
33
|
+
lineHeight: 1.4,
|
|
34
|
+
};
|
|
35
|
+
const sourceCodeBlockStyle = {
|
|
36
|
+
backgroundColor: 'rgba(255, 255, 255, 0.06)',
|
|
37
|
+
borderRadius: 6,
|
|
38
|
+
color: 'inherit',
|
|
39
|
+
fontFamily: 'monospace',
|
|
40
|
+
fontSize: 12,
|
|
41
|
+
lineHeight: 1.5,
|
|
42
|
+
marginBottom: 0,
|
|
43
|
+
marginTop: 8,
|
|
44
|
+
maxHeight: 200,
|
|
45
|
+
overflow: 'auto',
|
|
46
|
+
padding: 12,
|
|
47
|
+
whiteSpace: 'pre',
|
|
48
|
+
};
|
|
49
|
+
const sourceCodeStyle = {
|
|
50
|
+
color: 'inherit',
|
|
51
|
+
fontFamily: 'monospace',
|
|
52
|
+
fontSize: 12,
|
|
53
|
+
lineHeight: 1.5,
|
|
54
|
+
};
|
|
55
|
+
const useElementOverwriteConfirmation = () => {
|
|
56
|
+
const confirm = (0, ConfirmationDialog_1.useConfirmationDialog)();
|
|
57
|
+
return (0, react_1.useCallback)((conflict) => {
|
|
58
|
+
return confirm({
|
|
59
|
+
title: 'Overwrite Element file?',
|
|
60
|
+
message: (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: ["The Element file", ' ', jsx_runtime_1.jsx("code", { style: filePathStyle, children: conflict.filePath }),
|
|
61
|
+
" already exists with different contents.",
|
|
62
|
+
jsx_runtime_1.jsx("div", { style: warningStyle, children: "Overwriting will replace local changes in this file. The composition will only be updated if you choose Overwrite." }), jsx_runtime_1.jsxs("details", { style: sourceDetailsStyle, open: true, children: [
|
|
63
|
+
jsx_runtime_1.jsx("summary", { style: sourceSummaryStyle, children: "Existing source" }), jsx_runtime_1.jsx("pre", { style: sourceCodeBlockStyle, children: jsx_runtime_1.jsx("code", { style: sourceCodeStyle, children: conflict.existingSource }) })
|
|
64
|
+
] }), jsx_runtime_1.jsxs("details", { style: sourceDetailsStyle, children: [
|
|
65
|
+
jsx_runtime_1.jsx("summary", { style: sourceSummaryStyle, children: "Incoming source" }), jsx_runtime_1.jsx("pre", { style: sourceCodeBlockStyle, children: jsx_runtime_1.jsx("code", { style: sourceCodeStyle, children: conflict.incomingSource }) })
|
|
66
|
+
] })
|
|
67
|
+
] })),
|
|
68
|
+
confirmLabel: 'Overwrite',
|
|
69
|
+
cancelLabel: 'Cancel',
|
|
70
|
+
});
|
|
71
|
+
}, [confirm]);
|
|
72
|
+
};
|
|
73
|
+
exports.useElementOverwriteConfirmation = useElementOverwriteConfirmation;
|
|
@@ -38,22 +38,27 @@ const react_1 = __importStar(require("react"));
|
|
|
38
38
|
const remotion_1 = require("remotion");
|
|
39
39
|
const get_static_files_1 = require("../api/get-static-files");
|
|
40
40
|
const watch_public_folder_1 = require("../api/watch-public-folder");
|
|
41
|
+
const browser_studio_operations_1 = require("../helpers/browser-studio-operations");
|
|
42
|
+
const client_id_1 = require("../helpers/client-id");
|
|
41
43
|
const StaticFilesContext = (0, react_1.createContext)([]);
|
|
42
44
|
const StaticFilesProvider = ({ children }) => {
|
|
43
45
|
const [files, setFiles] = (0, react_1.useState)(() => (0, get_static_files_1.getStaticFiles)());
|
|
44
46
|
const env = (0, remotion_1.useRemotionEnvironment)();
|
|
47
|
+
const { previewServerState } = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx);
|
|
48
|
+
const browserStudioCanWatch = previewServerState.type === 'connected' &&
|
|
49
|
+
(0, browser_studio_operations_1.getBrowserStudioOperations)() !== null;
|
|
45
50
|
(0, react_1.useEffect)(() => {
|
|
46
51
|
if (!env.isStudio) {
|
|
47
52
|
return;
|
|
48
53
|
}
|
|
49
|
-
if (env.isReadOnlyStudio) {
|
|
54
|
+
if (env.isReadOnlyStudio && !browserStudioCanWatch) {
|
|
50
55
|
return;
|
|
51
56
|
}
|
|
52
57
|
const { cancel } = (0, watch_public_folder_1.watchPublicFolder)((newFiles) => {
|
|
53
58
|
setFiles(newFiles);
|
|
54
59
|
});
|
|
55
60
|
return cancel;
|
|
56
|
-
}, [env.isStudio, env.isReadOnlyStudio]);
|
|
61
|
+
}, [browserStudioCanWatch, env.isStudio, env.isReadOnlyStudio]);
|
|
57
62
|
return react_1.default.createElement(StaticFilesContext.Provider, { value: files }, children);
|
|
58
63
|
};
|
|
59
64
|
exports.StaticFilesProvider = StaticFilesProvider;
|
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.resolveFileSource = void 0;
|
|
4
|
+
const browser_studio_operations_1 = require("../../../helpers/browser-studio-operations");
|
|
4
5
|
const resolveFileSource = async (location, contextLines) => {
|
|
5
|
-
const
|
|
6
|
-
|
|
6
|
+
const browserStudioOperations = (0, browser_studio_operations_1.getBrowserStudioOperations)();
|
|
7
|
+
let text;
|
|
8
|
+
if (browserStudioOperations) {
|
|
9
|
+
const browserSource = await browserStudioOperations.getFileSource(location.fileName);
|
|
10
|
+
if (browserSource === null) {
|
|
11
|
+
throw new Error(`Could not find ${location.fileName}`);
|
|
12
|
+
}
|
|
13
|
+
text = browserSource;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
text = await (await fetch(`/api/file-source?f=${encodeURIComponent(location.fileName)}`)).text();
|
|
17
|
+
}
|
|
7
18
|
const lines = text
|
|
8
19
|
.split('\n')
|
|
9
20
|
.map((l, i) => {
|
|
@@ -4,7 +4,7 @@ exports.Overlay = exports.setErrorsRef = 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
|
|
7
|
+
const menu_toolbar_height_1 = require("../../components/menu-toolbar-height");
|
|
8
8
|
const colors_1 = require("../../helpers/colors");
|
|
9
9
|
const keybindings_1 = require("../../state/keybindings");
|
|
10
10
|
const ErrorLoader_1 = require("./ErrorLoader");
|
|
@@ -45,8 +45,8 @@ const Overlay = () => {
|
|
|
45
45
|
backgroundColor: BACKGROUND_COLOR,
|
|
46
46
|
overflow: 'auto',
|
|
47
47
|
color: colors_1.WHITE,
|
|
48
|
-
top:
|
|
49
|
-
height: `calc(100% - ${
|
|
48
|
+
top: menu_toolbar_height_1.MENU_TOOLBAR_HEIGHT,
|
|
49
|
+
height: `calc(100% - ${menu_toolbar_height_1.MENU_TOOLBAR_HEIGHT}px)`,
|
|
50
50
|
}, children: errors.errors.map((err, i) => {
|
|
51
51
|
var _a;
|
|
52
52
|
return (jsx_runtime_1.jsx(ErrorLoader_1.ErrorLoader
|
|
@@ -3,10 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ShortcutHint = exports.cmdOrCtrlCharacter = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("react");
|
|
6
|
+
const is_mac_1 = require("../../helpers/is-mac");
|
|
6
7
|
const use_keybinding_1 = require("../../helpers/use-keybinding");
|
|
7
|
-
exports.cmdOrCtrlCharacter =
|
|
8
|
-
? '⌘'
|
|
9
|
-
: 'Ctrl';
|
|
8
|
+
exports.cmdOrCtrlCharacter = is_mac_1.isMac ? '⌘' : 'Ctrl';
|
|
10
9
|
const container = {
|
|
11
10
|
display: 'inline-block',
|
|
12
11
|
marginLeft: 6,
|