@remotion/studio 4.0.222 → 4.0.225

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.
@@ -1,5 +1,5 @@
1
1
 
2
2
  
3
- > @remotion/studio@4.0.221 make /Users/jonathanburger/remotion/packages/studio
3
+ > @remotion/studio@4.0.224 make /Users/jonathanburger/remotion/packages/studio
4
4
  > bun --env-file=../.env.bundle bundle.ts
5
5
 
package/dist/Studio.js CHANGED
@@ -15,13 +15,13 @@ const getServerDisconnectedDomElement = () => {
15
15
  const Studio = ({ rootComponent, readOnly }) => {
16
16
  (0, react_1.useLayoutEffect)(() => {
17
17
  window.remotion_isStudio = true;
18
- window.remotion_isReadOnlyStudio = true;
18
+ window.remotion_isReadOnlyStudio = readOnly;
19
19
  remotion_1.Internals.enableSequenceStackTraces();
20
20
  return () => {
21
21
  window.remotion_isStudio = false;
22
22
  window.remotion_isReadOnlyStudio = false;
23
23
  };
24
- }, []);
24
+ }, [readOnly]);
25
25
  (0, react_1.useLayoutEffect)(() => {
26
26
  (0, inject_css_1.injectCSS)();
27
27
  }, []);
@@ -12,6 +12,6 @@ export declare const getInputBorderColor: ({ status, isFocused, isHovered, }: {
12
12
  status: "error" | "warning" | "ok";
13
13
  isFocused: boolean;
14
14
  isHovered: boolean;
15
- }) => "#ff3232" | "hsla(0, 0%, 100%, 0.15)" | "#f1c40f" | "rgba(255, 255, 255, 0.05)" | "rgba(0, 0, 0, 0.6)";
15
+ }) => "hsla(0, 0%, 100%, 0.15)" | "#f1c40f" | "rgba(0, 0, 0, 0.6)" | "rgba(255, 255, 255, 0.05)" | "#ff3232";
16
16
  export declare const RemotionInput: React.ForwardRefExoticComponent<Omit<Props, "ref"> & React.RefAttributes<HTMLInputElement>>;
17
17
  export {};
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RenderQueueCopyToClipboard = exports.supportsCopyingToClipboard = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
+ const get_asset_metadata_1 = require("../../helpers/get-asset-metadata");
6
7
  const clipboard_1 = require("../../icons/clipboard");
7
8
  const InlineAction_1 = require("../InlineAction");
8
9
  const NotificationCenter_1 = require("../Notifications/NotificationCenter");
9
- const actions_1 = require("./actions");
10
10
  const revealIconStyle = {
11
11
  height: 12,
12
12
  color: 'currentColor',
@@ -31,19 +31,27 @@ const RenderQueueCopyToClipboard = ({ job }) => {
31
31
  const renderCopyAction = (0, react_1.useCallback)((color) => {
32
32
  return (0, jsx_runtime_1.jsx)(clipboard_1.ClipboardIcon, { style: revealIconStyle, color: color });
33
33
  }, []);
34
- const onClick = (0, react_1.useCallback)((e) => {
34
+ const onClick = (0, react_1.useCallback)(async (e) => {
35
35
  e.stopPropagation();
36
- (0, actions_1.copyToClipboard)({
37
- outName: job.outName,
38
- binariesDirectory: job.binariesDirectory,
39
- })
40
- .catch((err) => {
36
+ try {
37
+ const src = `${get_asset_metadata_1.remotion_outputsBase}/${job.outName}`;
38
+ const content = await fetch(src);
39
+ const contentType = content.headers.get('content-type');
40
+ if (!contentType) {
41
+ throw new Error('Expected content-type header');
42
+ }
43
+ const blob = await content.blob();
44
+ await navigator.clipboard.write([
45
+ new ClipboardItem({
46
+ [contentType]: blob,
47
+ }),
48
+ ]);
49
+ (0, NotificationCenter_1.showNotification)('Copied to clipboard!', 1000);
50
+ }
51
+ catch (err) {
41
52
  (0, NotificationCenter_1.showNotification)(`Could not copy to clipboard: ${err.message}`, 2000);
42
- })
43
- .then(() => {
44
- (0, NotificationCenter_1.showNotification)('Copied to clipboard', 1000);
45
- });
46
- }, [job.binariesDirectory, job.outName]);
53
+ }
54
+ }, [job.outName]);
47
55
  return ((0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { title: "Copy to clipboard", renderAction: renderCopyAction, onClick: onClick }));
48
56
  };
49
57
  exports.RenderQueueCopyToClipboard = RenderQueueCopyToClipboard;
@@ -87,10 +87,6 @@ export declare const subscribeToFileExistenceWatcher: ({ file, clientId, }: {
87
87
  export declare const openInFileExplorer: ({ directory }: {
88
88
  directory: string;
89
89
  }) => Promise<void>;
90
- export declare const copyToClipboard: ({ outName, binariesDirectory, }: {
91
- outName: string;
92
- binariesDirectory: string | null;
93
- }) => Promise<void>;
94
90
  export declare const applyCodemod: ({ codemod, dryRun, signal, }: {
95
91
  codemod: RecastCodemod;
96
92
  dryRun: boolean;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.canUpdateDefaultProps = exports.callUpdateDefaultPropsApi = exports.getProjectInfo = exports.updateAvailable = exports.cancelRenderJob = exports.removeRenderJob = exports.applyCodemod = exports.copyToClipboard = exports.openInFileExplorer = exports.subscribeToFileExistenceWatcher = exports.unsubscribeFromFileExistenceWatcher = exports.addVideoRenderJob = exports.addSequenceRenderJob = exports.addStillRenderJob = void 0;
3
+ exports.canUpdateDefaultProps = exports.callUpdateDefaultPropsApi = exports.getProjectInfo = exports.updateAvailable = exports.cancelRenderJob = exports.removeRenderJob = exports.applyCodemod = exports.openInFileExplorer = exports.subscribeToFileExistenceWatcher = exports.unsubscribeFromFileExistenceWatcher = exports.addVideoRenderJob = exports.addSequenceRenderJob = exports.addStillRenderJob = void 0;
4
4
  const no_react_1 = require("remotion/no-react");
5
5
  const call_api_1 = require("../call-api");
6
6
  const addStillRenderJob = ({ compositionId, outName, imageFormat, jpegQuality, frame, scale, logLevel, chromiumOptions, delayRenderTimeout, envVariables, inputProps, offthreadVideoCacheSizeInBytes, multiProcessOnLinux, beepOnFinish, metadata, }) => {
@@ -122,14 +122,6 @@ const openInFileExplorer = ({ directory }) => {
122
122
  return (0, call_api_1.callApi)('/api/open-in-file-explorer', body);
123
123
  };
124
124
  exports.openInFileExplorer = openInFileExplorer;
125
- const copyToClipboard = ({ outName, binariesDirectory, }) => {
126
- const body = {
127
- outName,
128
- binariesDirectory,
129
- };
130
- return (0, call_api_1.callApi)('/api/copy-still-to-clipboard', body);
131
- };
132
- exports.copyToClipboard = copyToClipboard;
133
125
  const applyCodemod = ({ codemod, dryRun, signal, }) => {
134
126
  const body = {
135
127
  codemod,
@@ -3386,16 +3386,6 @@ var openInFileExplorer = ({ directory }) => {
3386
3386
  };
3387
3387
  return callApi("/api/open-in-file-explorer", body);
3388
3388
  };
3389
- var copyToClipboard = ({
3390
- outName,
3391
- binariesDirectory
3392
- }) => {
3393
- const body = {
3394
- outName,
3395
- binariesDirectory
3396
- };
3397
- return callApi("/api/copy-still-to-clipboard", body);
3398
- };
3399
3389
  var applyCodemod = ({
3400
3390
  codemod,
3401
3391
  dryRun,
@@ -3684,7 +3674,7 @@ var AssetSelectorItem = ({ item, tabIndex, level, parentFolder }) => {
3684
3674
  showNotification(`Could not open file: ${err.message}`, 2000);
3685
3675
  });
3686
3676
  }, [item.name, parentFolder]);
3687
- const copyToClipboard2 = useCallback17((e) => {
3677
+ const copyToClipboard = useCallback17((e) => {
3688
3678
  e.stopPropagation();
3689
3679
  const content = `staticFile("${[parentFolder, item.name].join("/")}")`;
3690
3680
  copyText(content).then(() => {
@@ -3722,7 +3712,7 @@ var AssetSelectorItem = ({ item, tabIndex, level, parentFolder }) => {
3722
3712
  /* @__PURE__ */ jsx35(InlineAction, {
3723
3713
  title: "Copy staticFile() name",
3724
3714
  renderAction: renderCopyAction,
3725
- onClick: copyToClipboard2
3715
+ onClick: copyToClipboard
3726
3716
  }),
3727
3717
  /* @__PURE__ */ jsx35(Spacing, {
3728
3718
  x: 0.5
@@ -14555,17 +14545,26 @@ var RenderQueueCopyToClipboard = ({ job }) => {
14555
14545
  color
14556
14546
  });
14557
14547
  }, []);
14558
- const onClick = useCallback64((e) => {
14548
+ const onClick = useCallback64(async (e) => {
14559
14549
  e.stopPropagation();
14560
- copyToClipboard({
14561
- outName: job.outName,
14562
- binariesDirectory: job.binariesDirectory
14563
- }).catch((err) => {
14550
+ try {
14551
+ const src = `${remotion_outputsBase}/${job.outName}`;
14552
+ const content = await fetch(src);
14553
+ const contentType = content.headers.get("content-type");
14554
+ if (!contentType) {
14555
+ throw new Error("Expected content-type header");
14556
+ }
14557
+ const blob = await content.blob();
14558
+ await navigator.clipboard.write([
14559
+ new ClipboardItem({
14560
+ [contentType]: blob
14561
+ })
14562
+ ]);
14563
+ showNotification("Copied to clipboard!", 1000);
14564
+ } catch (err) {
14564
14565
  showNotification(`Could not copy to clipboard: ${err.message}`, 2000);
14565
- }).then(() => {
14566
- showNotification("Copied to clipboard", 1000);
14567
- });
14568
- }, [job.binariesDirectory, job.outName]);
14566
+ }
14567
+ }, [job.outName]);
14569
14568
  return /* @__PURE__ */ jsx133(InlineAction, {
14570
14569
  title: "Copy to clipboard",
14571
14570
  renderAction: renderCopyAction,
@@ -27190,13 +27189,13 @@ var getServerDisconnectedDomElement = () => {
27190
27189
  var Studio = ({ rootComponent, readOnly }) => {
27191
27190
  useLayoutEffect2(() => {
27192
27191
  window.remotion_isStudio = true;
27193
- window.remotion_isReadOnlyStudio = true;
27192
+ window.remotion_isReadOnlyStudio = readOnly;
27194
27193
  Internals61.enableSequenceStackTraces();
27195
27194
  return () => {
27196
27195
  window.remotion_isStudio = false;
27197
27196
  window.remotion_isReadOnlyStudio = false;
27198
27197
  };
27199
- }, []);
27198
+ }, [readOnly]);
27200
27199
  useLayoutEffect2(() => {
27201
27200
  injectCSS();
27202
27201
  }, []);
@@ -1,4 +1,4 @@
1
1
  export declare const getCheckerboardBackgroundSize: (size: number) => string;
2
2
  export declare const getCheckerboardBackgroundPos: (size: number) => string;
3
- export declare const checkerboardBackgroundColor: (checkerboard: boolean) => "white" | "black";
3
+ export declare const checkerboardBackgroundColor: (checkerboard: boolean) => "black" | "white";
4
4
  export declare const checkerboardBackgroundImage: (checkerboard: boolean) => "\n linear-gradient(\n 45deg,\n rgba(0, 0, 0, 0.1) 25%,\n transparent 25%\n ),\n linear-gradient(135deg, rgba(0, 0, 0, 0.1) 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, rgba(0, 0, 0, 0.1) 75%),\n linear-gradient(135deg, transparent 75%, rgba(0, 0, 0, 0.1) 75%)\n " | undefined;
@@ -24,4 +24,4 @@ export declare const TIMELINE_TRACK_SEPARATOR = "rgba(0, 0, 0, 0.3)";
24
24
  export declare const getBackgroundFromHoverState: ({ selected, hovered, }: {
25
25
  selected: boolean;
26
26
  hovered: boolean;
27
- }) => "transparent" | "hsla(0, 0%, 100%, 0.25)" | "hsla(0, 0%, 100%, 0.15)" | "rgba(255, 255, 255, 0.06)";
27
+ }) => "transparent" | "rgba(255, 255, 255, 0.06)" | "hsla(0, 0%, 100%, 0.15)" | "hsla(0, 0%, 100%, 0.25)";
@@ -1,2 +1,2 @@
1
1
  import type { X264Preset } from '@remotion/renderer';
2
- export declare const labelx264Preset: (profile: X264Preset) => "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
2
+ export declare const labelx264Preset: (profile: X264Preset) => "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/studio"
4
4
  },
5
5
  "name": "@remotion/studio",
6
- "version": "4.0.222",
6
+ "version": "4.0.225",
7
7
  "description": "APIs for interacting with the Remotion Studio",
8
8
  "main": "dist",
9
9
  "sideEffects": false,
@@ -18,18 +18,18 @@
18
18
  "memfs": "3.4.3",
19
19
  "source-map": "0.7.3",
20
20
  "open": "^8.4.2",
21
- "remotion": "4.0.222",
22
- "@remotion/player": "4.0.222",
23
- "@remotion/media-utils": "4.0.222",
24
- "@remotion/renderer": "4.0.222",
25
- "@remotion/studio-shared": "4.0.222"
21
+ "@remotion/player": "4.0.225",
22
+ "@remotion/media-utils": "4.0.225",
23
+ "@remotion/renderer": "4.0.225",
24
+ "@remotion/studio-shared": "4.0.225",
25
+ "remotion": "4.0.225"
26
26
  },
27
27
  "devDependencies": {
28
28
  "react": "18.3.1",
29
29
  "react-dom": "18.3.1",
30
30
  "@types/semver": "^7.3.4",
31
31
  "zod": "3.22.3",
32
- "@remotion/zod-types": "4.0.222"
32
+ "@remotion/zod-types": "4.0.225"
33
33
  },
34
34
  "publishConfig": {
35
35
  "access": "public"