@remotion/cli 4.1.0-alpha11 → 4.1.0-alpha12
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/codemods/update-default-props.js +5 -0
- package/dist/config/image-format.d.ts +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/editor/components/AssetSelector.d.ts +2 -0
- package/dist/editor/components/AssetSelector.js +85 -0
- package/dist/editor/components/AssetSelectorItem.d.ts +6 -0
- package/dist/editor/components/AssetSelectorItem.js +125 -0
- package/dist/editor/components/CompositionSelector.js +3 -3
- package/dist/editor/components/CopyButton.js +8 -2
- package/dist/editor/components/CurrentCompositionSideEffects.js +9 -5
- package/dist/editor/components/ExplorerPanel.d.ts +8 -0
- package/dist/editor/components/ExplorerPanel.js +67 -0
- package/dist/editor/components/FullscreenToggle.js +23 -1
- package/dist/editor/components/InlineAction.d.ts +1 -0
- package/dist/editor/components/InlineAction.js +2 -2
- package/dist/editor/components/KeyboardShortcutsExplainer.js +1 -1
- package/dist/editor/components/NewComposition/RemInput.d.ts +2 -2
- package/dist/editor/components/NewComposition/RemInputTypeColor.d.ts +1 -1
- package/dist/editor/components/OptionsPanel.d.ts +8 -0
- package/dist/editor/components/OptionsPanel.js +112 -0
- package/dist/editor/components/RenderModal/CliCopyButton.js +2 -1
- package/dist/editor/components/RenderModal/MultiRangeSlider.js +4 -7
- package/dist/editor/components/RenderModal/RenderModal.js +7 -7
- package/dist/editor/components/RenderModal/RenderModalJSONPropsEditor.js +4 -0
- package/dist/editor/components/RenderModal/SchemaEditor/SchemaEditor.js +5 -1
- package/dist/editor/components/RenderModal/SchemaEditor/ZodDiscriminatedUnionEditor.d.ts +17 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodDiscriminatedUnionEditor.js +83 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodObjectEditor.d.ts +5 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodObjectEditor.js +5 -1
- package/dist/editor/components/RenderModal/SchemaEditor/ZodOrNullishEditor.js +1 -1
- package/dist/editor/components/RenderModal/SchemaEditor/ZodSwitch.js +5 -1
- package/dist/editor/components/RenderQueue/RenderQueueOpenInFolder.js +2 -1
- package/dist/editor/components/TopPanel.js +4 -8
- package/dist/editor/components/UpdateModal/UpdateModal.js +4 -1
- package/dist/editor/helpers/colors.d.ts +1 -1
- package/dist/editor/helpers/copy-text.d.ts +1 -1
- package/dist/editor/helpers/copy-text.js +15 -10
- package/dist/editor/helpers/document-title.d.ts +4 -0
- package/dist/editor/helpers/document-title.js +60 -0
- package/dist/editor/helpers/pick-color.js +12 -7
- package/dist/editor/helpers/render-modal-sections.d.ts +0 -1
- package/dist/editor/icons/clipboard.d.ts +4 -0
- package/dist/editor/icons/clipboard.js +6 -0
- package/dist/editor/icons/file.d.ts +3 -1
- package/dist/editor/icons/file.js +1 -1
- package/dist/editor/icons/folder.d.ts +3 -0
- package/dist/editor/icons/folder.js +5 -1
- package/dist/event-source-events.d.ts +1 -0
- package/dist/event-source.js +1 -0
- package/dist/get-cli-options.d.ts +1 -1
- package/dist/get-input-props.js +2 -1
- package/dist/handle-common-errors.js +2 -2
- package/dist/index.d.ts +6 -5
- package/dist/index.js +1 -1
- package/dist/make-on-download.d.ts +12 -0
- package/dist/make-on-download.js +40 -0
- package/dist/parse-command-line.d.ts +1 -0
- package/dist/preview-server/public-folder.js +3 -0
- package/dist/preview-server/render-queue/process-still.js +1 -1
- package/dist/preview-server/routes.d.ts +0 -1
- package/dist/preview-server/routes.js +1 -0
- package/dist/progress-bar.js +2 -7
- package/dist/render-flows/render.js +17 -25
- package/dist/render-flows/still.d.ts +2 -2
- package/dist/render-flows/still.js +30 -40
- package/dist/still.js +1 -1
- package/dist/studio.js +8 -1
- package/dist/upgrade.d.ts +1 -1
- package/dist/upgrade.js +11 -4
- package/package.json +8 -8
- package/styles/styles.css +7 -17
|
@@ -16,6 +16,7 @@ const determine_image_format_1 = require("../determine-image-format");
|
|
|
16
16
|
const get_cli_options_1 = require("../get-cli-options");
|
|
17
17
|
const get_composition_with_dimension_override_1 = require("../get-composition-with-dimension-override");
|
|
18
18
|
const log_1 = require("../log");
|
|
19
|
+
const make_on_download_1 = require("../make-on-download");
|
|
19
20
|
const parse_command_line_1 = require("../parse-command-line");
|
|
20
21
|
const progress_bar_1 = require("../progress-bar");
|
|
21
22
|
const progress_types_1 = require("../progress-types");
|
|
@@ -23,36 +24,40 @@ const setup_cache_1 = require("../setup-cache");
|
|
|
23
24
|
const should_use_non_overlaying_logger_1 = require("../should-use-non-overlaying-logger");
|
|
24
25
|
const truthy_1 = require("../truthy");
|
|
25
26
|
const user_passed_output_location_1 = require("../user-passed-output-location");
|
|
26
|
-
const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason, remainingArgs, browser, browserExecutable, chromiumOptions, envVariables, height, serializedInputPropsWithCustomSchema, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, width, compositionIdFromUi, imageFormatFromUi, logLevel, onProgress,
|
|
27
|
+
const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason, remainingArgs, browser, browserExecutable, chromiumOptions, envVariables, height, serializedInputPropsWithCustomSchema, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, width, compositionIdFromUi, imageFormatFromUi, logLevel, onProgress, indent, addCleanupCallback, cancelSignal, outputLocationFromUi, }) => {
|
|
27
28
|
var _a, _b;
|
|
28
|
-
const downloads = [];
|
|
29
29
|
const aggregate = (0, progress_types_1.initialAggregateRenderProgress)();
|
|
30
30
|
const updatesDontOverwrite = (0, should_use_non_overlaying_logger_1.shouldUseNonOverlayingLogger)({ logLevel });
|
|
31
|
-
|
|
31
|
+
const renderProgress = (0, progress_bar_1.createOverwriteableCliOutput)({
|
|
32
|
+
quiet: (0, parse_command_line_1.quietFlagProvided)(),
|
|
33
|
+
cancelSignal,
|
|
34
|
+
updatesDontOverwrite: (0, should_use_non_overlaying_logger_1.shouldUseNonOverlayingLogger)({ logLevel }),
|
|
35
|
+
indent,
|
|
36
|
+
});
|
|
32
37
|
const steps = [
|
|
33
38
|
renderer_1.RenderInternals.isServeUrl(fullEntryPoint) ? null : 'bundling',
|
|
34
39
|
'rendering',
|
|
35
40
|
].filter(truthy_1.truthy);
|
|
36
|
-
const
|
|
41
|
+
const updateRenderProgress = ({ newline, printToConsole, }) => {
|
|
37
42
|
const { output, progress, message } = (0, progress_bar_1.makeRenderingAndStitchingProgress)({
|
|
38
43
|
prog: aggregate,
|
|
39
44
|
steps: steps.length,
|
|
40
45
|
stitchingStep: steps.indexOf('stitching'),
|
|
41
46
|
});
|
|
42
|
-
if (
|
|
47
|
+
if (printToConsole) {
|
|
43
48
|
renderProgress.update(updatesDontOverwrite ? message : output, newline);
|
|
44
49
|
}
|
|
45
50
|
onProgress({ message, value: progress, ...aggregate });
|
|
46
51
|
};
|
|
47
52
|
if (browserExecutable) {
|
|
48
|
-
log_1.Log.verboseAdvanced({ indent
|
|
53
|
+
log_1.Log.verboseAdvanced({ indent, logLevel }, 'Browser executable: ', browserExecutable);
|
|
49
54
|
}
|
|
50
55
|
const browserInstance = renderer_1.RenderInternals.internalOpenBrowser({
|
|
51
56
|
browser,
|
|
52
57
|
browserExecutable,
|
|
53
58
|
chromiumOptions,
|
|
54
59
|
forceDeviceScaleFactor: scale,
|
|
55
|
-
indent
|
|
60
|
+
indent,
|
|
56
61
|
viewport: null,
|
|
57
62
|
logLevel,
|
|
58
63
|
});
|
|
@@ -64,9 +69,9 @@ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason,
|
|
|
64
69
|
onProgress: ({ copying, bundling }) => {
|
|
65
70
|
aggregate.bundling = bundling;
|
|
66
71
|
aggregate.copyingState = copying;
|
|
67
|
-
|
|
72
|
+
updateRenderProgress({ newline: false, printToConsole: true });
|
|
68
73
|
},
|
|
69
|
-
indentOutput,
|
|
74
|
+
indentOutput: indent,
|
|
70
75
|
logLevel,
|
|
71
76
|
bundlingStep: steps.indexOf('bundling'),
|
|
72
77
|
onDirectoryCreated: (dir) => {
|
|
@@ -78,7 +83,7 @@ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason,
|
|
|
78
83
|
});
|
|
79
84
|
const server = await renderer_1.RenderInternals.prepareServer({
|
|
80
85
|
concurrency: 1,
|
|
81
|
-
indent
|
|
86
|
+
indent,
|
|
82
87
|
port,
|
|
83
88
|
remotionRoot,
|
|
84
89
|
logLevel,
|
|
@@ -87,7 +92,7 @@ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason,
|
|
|
87
92
|
addCleanupCallback(() => server.closeServer(false));
|
|
88
93
|
addCleanupCallback(() => cleanupBundle());
|
|
89
94
|
const puppeteerInstance = await browserInstance;
|
|
90
|
-
addCleanupCallback(() => puppeteerInstance.close(false, logLevel,
|
|
95
|
+
addCleanupCallback(() => puppeteerInstance.close(false, logLevel, indent));
|
|
91
96
|
const { compositionId, config, reason, argsAfterComposition } = await (0, get_composition_with_dimension_override_1.getCompositionWithDimensionOverride)({
|
|
92
97
|
height,
|
|
93
98
|
width,
|
|
@@ -96,7 +101,7 @@ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason,
|
|
|
96
101
|
browserExecutable,
|
|
97
102
|
chromiumOptions,
|
|
98
103
|
envVariables,
|
|
99
|
-
indent
|
|
104
|
+
indent,
|
|
100
105
|
serializedInputPropsWithCustomSchema,
|
|
101
106
|
port,
|
|
102
107
|
puppeteerInstance,
|
|
@@ -125,14 +130,8 @@ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason,
|
|
|
125
130
|
(0, node_fs_1.mkdirSync)(node_path_1.default.join(absoluteOutputLocation, '..'), {
|
|
126
131
|
recursive: true,
|
|
127
132
|
});
|
|
128
|
-
log_1.Log.verboseAdvanced({ indent
|
|
129
|
-
log_1.Log.infoAdvanced({ indent
|
|
130
|
-
renderProgress = (0, progress_bar_1.createOverwriteableCliOutput)({
|
|
131
|
-
quiet: (0, parse_command_line_1.quietFlagProvided)(),
|
|
132
|
-
cancelSignal,
|
|
133
|
-
updatesDontOverwrite: (0, should_use_non_overlaying_logger_1.shouldUseNonOverlayingLogger)({ logLevel }),
|
|
134
|
-
indent: indentOutput,
|
|
135
|
-
});
|
|
133
|
+
log_1.Log.verboseAdvanced({ indent, logLevel }, chalk_1.chalk.gray(`Entry point = ${fullEntryPoint} (${entryPointReason})`));
|
|
134
|
+
log_1.Log.infoAdvanced({ indent, logLevel }, chalk_1.chalk.gray(`Composition = ${compositionId} (${reason}), Format = ${imageFormat} (${source}), Output = ${relativeOutputLocation}`));
|
|
136
135
|
const renderStart = Date.now();
|
|
137
136
|
aggregate.rendering = {
|
|
138
137
|
frames: 0,
|
|
@@ -141,23 +140,14 @@ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason,
|
|
|
141
140
|
steps,
|
|
142
141
|
totalFrames: 1,
|
|
143
142
|
};
|
|
144
|
-
|
|
145
|
-
const onDownload = (
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
totalBytes: null,
|
|
153
|
-
};
|
|
154
|
-
downloads.push(download);
|
|
155
|
-
updateProgress(false);
|
|
156
|
-
return ({ percent }) => {
|
|
157
|
-
download.progress = percent;
|
|
158
|
-
updateProgress(false);
|
|
159
|
-
};
|
|
160
|
-
};
|
|
143
|
+
updateRenderProgress({ newline: false, printToConsole: true });
|
|
144
|
+
const onDownload = (0, make_on_download_1.makeOnDownload)({
|
|
145
|
+
downloads: aggregate.downloads,
|
|
146
|
+
indent,
|
|
147
|
+
logLevel,
|
|
148
|
+
updateRenderProgress,
|
|
149
|
+
updatesDontOverwrite,
|
|
150
|
+
});
|
|
161
151
|
await renderer_1.RenderInternals.internalRenderStill({
|
|
162
152
|
composition: config,
|
|
163
153
|
frame: stillFrame,
|
|
@@ -177,7 +167,7 @@ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason,
|
|
|
177
167
|
puppeteerInstance,
|
|
178
168
|
server: await server,
|
|
179
169
|
cancelSignal,
|
|
180
|
-
indent
|
|
170
|
+
indent,
|
|
181
171
|
onBrowserLog: null,
|
|
182
172
|
logLevel,
|
|
183
173
|
serializedResolvedPropsWithCustomSchema: remotion_1.Internals.serializeJSONWithDate({
|
|
@@ -193,7 +183,7 @@ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason,
|
|
|
193
183
|
steps,
|
|
194
184
|
totalFrames: 1,
|
|
195
185
|
};
|
|
196
|
-
|
|
197
|
-
log_1.Log.infoAdvanced({ indent
|
|
186
|
+
updateRenderProgress({ newline: true, printToConsole: true });
|
|
187
|
+
log_1.Log.infoAdvanced({ indent, logLevel }, chalk_1.chalk.blue(`${exists ? '○' : '+'} ${absoluteOutputLocation}`));
|
|
198
188
|
};
|
|
199
189
|
exports.renderStillFlow = renderStillFlow;
|
package/dist/still.js
CHANGED
package/dist/studio.js
CHANGED
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.studioCommand = void 0;
|
|
7
7
|
const node_crypto_1 = __importDefault(require("node:crypto"));
|
|
8
|
+
const node_fs_1 = require("node:fs");
|
|
8
9
|
const node_path_1 = __importDefault(require("node:path"));
|
|
9
10
|
const better_opn_1 = require("./better-opn");
|
|
10
11
|
const chalk_1 = require("./chalk");
|
|
@@ -92,9 +93,15 @@ const studioCommand = async (remotionRoot, args) => {
|
|
|
92
93
|
remotionRoot,
|
|
93
94
|
onUpdate: () => {
|
|
94
95
|
(0, live_events_1.waitForLiveEventsListener)().then((listener) => {
|
|
96
|
+
const files = (0, public_folder_1.getFiles)();
|
|
95
97
|
listener.sendEventToClient({
|
|
96
98
|
type: 'new-public-folder',
|
|
97
|
-
files
|
|
99
|
+
files,
|
|
100
|
+
folderExists: files.length > 0
|
|
101
|
+
? publicDir
|
|
102
|
+
: (0, node_fs_1.existsSync)(publicDir)
|
|
103
|
+
? publicDir
|
|
104
|
+
: null,
|
|
98
105
|
});
|
|
99
106
|
});
|
|
100
107
|
},
|
package/dist/upgrade.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const upgrade: (remotionRoot: string, packageManager: string | undefined) => Promise<void>;
|
|
1
|
+
export declare const upgrade: (remotionRoot: string, packageManager: string | undefined, version: string | undefined) => Promise<void>;
|
package/dist/upgrade.js
CHANGED
|
@@ -20,7 +20,7 @@ const getUpgradeCommand = ({ manager, packages, version, }) => {
|
|
|
20
20
|
};
|
|
21
21
|
return commands[manager];
|
|
22
22
|
};
|
|
23
|
-
const upgrade = async (remotionRoot, packageManager) => {
|
|
23
|
+
const upgrade = async (remotionRoot, packageManager, version) => {
|
|
24
24
|
var _a, _b, _c, _d;
|
|
25
25
|
const packageJsonFilePath = node_path_1.default.join(remotionRoot, 'package.json');
|
|
26
26
|
const packageJson = require(packageJsonFilePath);
|
|
@@ -28,8 +28,15 @@ const upgrade = async (remotionRoot, packageManager) => {
|
|
|
28
28
|
const devDependencies = Object.keys((_a = packageJson.devDependencies) !== null && _a !== void 0 ? _a : {});
|
|
29
29
|
const optionalDependencies = Object.keys((_b = packageJson.optionalDependencies) !== null && _b !== void 0 ? _b : {});
|
|
30
30
|
const peerDependencies = Object.keys((_c = packageJson.peerDependencies) !== null && _c !== void 0 ? _c : {});
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
let targetVersion;
|
|
32
|
+
if (version) {
|
|
33
|
+
targetVersion = version;
|
|
34
|
+
log_1.Log.info('Upgrading to specified version: ' + version);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
targetVersion = await (0, get_latest_remotion_version_1.getLatestRemotionVersion)();
|
|
38
|
+
log_1.Log.info('Newest Remotion version is', targetVersion);
|
|
39
|
+
}
|
|
33
40
|
const manager = (0, get_package_manager_1.getPackageManager)(remotionRoot, packageManager);
|
|
34
41
|
if (manager === 'unknown') {
|
|
35
42
|
throw new Error(`No lockfile was found in your project (one of ${get_package_manager_1.lockFilePaths
|
|
@@ -43,7 +50,7 @@ const upgrade = async (remotionRoot, packageManager) => {
|
|
|
43
50
|
const prom = renderer_1.RenderInternals.execa(manager.manager, getUpgradeCommand({
|
|
44
51
|
manager: manager.manager,
|
|
45
52
|
packages: toUpgrade,
|
|
46
|
-
version:
|
|
53
|
+
version: targetVersion,
|
|
47
54
|
}), {
|
|
48
55
|
stdio: 'inherit',
|
|
49
56
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remotion/cli",
|
|
3
|
-
"version": "4.1.0-
|
|
3
|
+
"version": "4.1.0-alpha12",
|
|
4
4
|
"description": "CLI for Remotion",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -35,11 +35,11 @@
|
|
|
35
35
|
"prompts": "2.4.1",
|
|
36
36
|
"semver": "7.5.3",
|
|
37
37
|
"source-map": "0.6.1",
|
|
38
|
-
"@remotion/bundler": "4.1.0-
|
|
39
|
-
"@remotion/media-utils": "4.1.0-
|
|
40
|
-
"remotion": "4.1.0-
|
|
41
|
-
"@remotion/renderer": "4.1.0-
|
|
42
|
-
"@remotion/player": "4.1.0-
|
|
38
|
+
"@remotion/bundler": "4.1.0-alpha12",
|
|
39
|
+
"@remotion/media-utils": "4.1.0-alpha12",
|
|
40
|
+
"remotion": "4.1.0-alpha12",
|
|
41
|
+
"@remotion/renderer": "4.1.0-alpha12",
|
|
42
|
+
"@remotion/player": "4.1.0-alpha12"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
45
|
"react": ">=16.8.0",
|
|
@@ -65,8 +65,8 @@
|
|
|
65
65
|
"typescript": "4.9.5",
|
|
66
66
|
"vitest": "0.31.1",
|
|
67
67
|
"zod": "^3.21.4",
|
|
68
|
-
"@remotion/zod-types": "4.1.0-
|
|
69
|
-
"@remotion/tailwind": "4.1.0-
|
|
68
|
+
"@remotion/zod-types": "4.1.0-alpha12",
|
|
69
|
+
"@remotion/tailwind": "4.1.0-alpha12"
|
|
70
70
|
},
|
|
71
71
|
"keywords": [
|
|
72
72
|
"remotion",
|
package/styles/styles.css
CHANGED
|
@@ -54,17 +54,18 @@ input[type='color'].__remotion_color_picker::-webkit-color-swatch {
|
|
|
54
54
|
position: absolute;
|
|
55
55
|
height: 0;
|
|
56
56
|
outline: none;
|
|
57
|
-
top:
|
|
58
|
-
width:
|
|
57
|
+
top: 15.5px;
|
|
58
|
+
width: 221px;
|
|
59
|
+
margin-left: -2px;
|
|
59
60
|
z-index: 2;
|
|
60
61
|
}
|
|
61
62
|
|
|
62
63
|
/* For Firefox browsers */
|
|
63
64
|
.__remotion_thumb::-moz-range-thumb {
|
|
64
|
-
border:
|
|
65
|
-
border-radius:
|
|
65
|
+
border: 1px solid black;
|
|
66
|
+
border-radius: 2px;
|
|
66
67
|
cursor: pointer;
|
|
67
|
-
height:
|
|
68
|
+
height: 37px;
|
|
68
69
|
width: 10px;
|
|
69
70
|
pointer-events: all;
|
|
70
71
|
border-color: black;
|
|
@@ -72,26 +73,15 @@ input[type='color'].__remotion_color_picker::-webkit-color-swatch {
|
|
|
72
73
|
position: relative;
|
|
73
74
|
}
|
|
74
75
|
|
|
75
|
-
.__remotion_thumb::-moz-range-thumb {
|
|
76
|
-
border-width: 1px;
|
|
77
|
-
border-style: solid;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
76
|
/* For Chrome browsers */
|
|
81
77
|
.__remotion_thumb::-webkit-slider-thumb {
|
|
82
78
|
border: 1px solid black;
|
|
83
79
|
border-radius: 2px;
|
|
84
80
|
cursor: pointer;
|
|
85
|
-
height:
|
|
81
|
+
height: 39px;
|
|
86
82
|
width: 10px;
|
|
87
83
|
pointer-events: all;
|
|
88
84
|
border-color: black;
|
|
89
85
|
background-color: white;
|
|
90
86
|
position: relative;
|
|
91
87
|
}
|
|
92
|
-
|
|
93
|
-
.__remotion_thumb::-webkit-slider-thumb {
|
|
94
|
-
border-width: 1px;
|
|
95
|
-
border-style: solid;
|
|
96
|
-
border-color: black;
|
|
97
|
-
}
|