@remotion/studio 4.0.462 → 4.0.463
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/components/AssetSelector.js +2 -6
- package/dist/components/CompSelectorRef.js +2 -6
- package/dist/components/ExpandedTracksProvider.js +5 -20
- package/dist/components/Timeline/SubscribeToNodePaths.js +1 -6
- package/dist/components/Timeline/TimelineColorField.js +1 -1
- package/dist/components/Timeline/TimelineEffectFieldRow.js +21 -31
- package/dist/components/Timeline/TimelineEffectGroupRow.d.ts +17 -0
- package/dist/components/Timeline/TimelineEffectGroupRow.js +73 -0
- package/dist/components/Timeline/TimelineExpandedRow.js +4 -0
- package/dist/components/Timeline/TimelineFieldRow.js +5 -39
- package/dist/components/Timeline/TimelineLayerEye.d.ts +5 -3
- package/dist/components/Timeline/TimelineLayerEye.js +18 -1
- package/dist/components/Timeline/TimelineListItem.js +57 -14
- package/dist/components/Timeline/save-effect-prop.d.ts +12 -0
- package/dist/components/Timeline/save-effect-prop.js +42 -0
- package/dist/components/Timeline/save-prop-queue.d.ts +12 -0
- package/dist/components/Timeline/save-prop-queue.js +63 -0
- package/dist/components/Timeline/save-sequence-prop.d.ts +11 -0
- package/dist/components/Timeline/save-sequence-prop.js +38 -0
- package/dist/esm/chunk-5gtx3pza.js +9 -0
- package/dist/esm/{chunk-yvg1f56k.js → chunk-b0m62frw.js} +2327 -2028
- package/dist/esm/index.mjs +0 -16
- package/dist/esm/internals.mjs +2325 -2041
- package/dist/esm/previewEntry.mjs +2335 -2051
- package/dist/esm/renderEntry.mjs +3 -4
- package/dist/helpers/persist-boolean-map.d.ts +5 -0
- package/dist/helpers/persist-boolean-map.js +56 -0
- package/dist/helpers/persist-open-folders.d.ts +4 -3
- package/dist/helpers/persist-open-folders.js +4 -7
- package/dist/helpers/timeline-layout.d.ts +6 -1
- package/dist/helpers/timeline-layout.js +2 -0
- package/package.json +10 -10
- package/dist/esm/chunk-6jf1natv.js +0 -25
package/dist/esm/renderEntry.mjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
|
-
__require
|
|
3
|
-
|
|
4
|
-
} from "./chunk-6jf1natv.js";
|
|
2
|
+
__require
|
|
3
|
+
} from "./chunk-5gtx3pza.js";
|
|
5
4
|
|
|
6
5
|
// src/renderEntry.tsx
|
|
7
6
|
import { useContext, useEffect, useRef, useState } from "react";
|
|
@@ -207,7 +206,7 @@ var renderContent = (Root) => {
|
|
|
207
206
|
renderToDOM(/* @__PURE__ */ jsx("div", {
|
|
208
207
|
children: /* @__PURE__ */ jsx(DelayedSpinner, {})
|
|
209
208
|
}));
|
|
210
|
-
import("./chunk-
|
|
209
|
+
import("./chunk-b0m62frw.js").then(({ StudioInternals }) => {
|
|
211
210
|
window.remotion_isStudio = true;
|
|
212
211
|
window.remotion_isReadOnlyStudio = true;
|
|
213
212
|
window.remotion_inputProps = "{}";
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type BooleanMap = Record<string, boolean>;
|
|
2
|
+
export declare const onlyExpandedBooleanMapValues: (state: BooleanMap) => BooleanMap;
|
|
3
|
+
export declare const toggleBooleanMapKey: (state: BooleanMap, key: string) => BooleanMap;
|
|
4
|
+
export declare const loadPersistedBooleanMap: (sessionStorageKey: string) => BooleanMap;
|
|
5
|
+
export declare const persistBooleanMap: (sessionStorageKey: string, state: BooleanMap) => void;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.persistBooleanMap = exports.loadPersistedBooleanMap = exports.toggleBooleanMapKey = exports.onlyExpandedBooleanMapValues = void 0;
|
|
4
|
+
const onlyExpandedBooleanMapValues = (state) => {
|
|
5
|
+
const result = {};
|
|
6
|
+
for (const [key, value] of Object.entries(state)) {
|
|
7
|
+
if (value) {
|
|
8
|
+
result[key] = true;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
return result;
|
|
12
|
+
};
|
|
13
|
+
exports.onlyExpandedBooleanMapValues = onlyExpandedBooleanMapValues;
|
|
14
|
+
const toggleBooleanMapKey = (state, key) => {
|
|
15
|
+
const next = { ...state };
|
|
16
|
+
if (next[key]) {
|
|
17
|
+
delete next[key];
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
next[key] = true;
|
|
21
|
+
}
|
|
22
|
+
return next;
|
|
23
|
+
};
|
|
24
|
+
exports.toggleBooleanMapKey = toggleBooleanMapKey;
|
|
25
|
+
const loadPersistedBooleanMap = (sessionStorageKey) => {
|
|
26
|
+
if (typeof window === 'undefined') {
|
|
27
|
+
return {};
|
|
28
|
+
}
|
|
29
|
+
try {
|
|
30
|
+
const raw = window.sessionStorage.getItem(sessionStorageKey);
|
|
31
|
+
if (raw === null) {
|
|
32
|
+
return {};
|
|
33
|
+
}
|
|
34
|
+
const parsed = JSON.parse(raw);
|
|
35
|
+
if (!parsed || typeof parsed !== 'object') {
|
|
36
|
+
return {};
|
|
37
|
+
}
|
|
38
|
+
return (0, exports.onlyExpandedBooleanMapValues)(parsed);
|
|
39
|
+
}
|
|
40
|
+
catch (_a) {
|
|
41
|
+
return {};
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
exports.loadPersistedBooleanMap = loadPersistedBooleanMap;
|
|
45
|
+
const persistBooleanMap = (sessionStorageKey, state) => {
|
|
46
|
+
if (typeof window === 'undefined') {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
window.sessionStorage.setItem(sessionStorageKey, JSON.stringify((0, exports.onlyExpandedBooleanMapValues)(state)));
|
|
51
|
+
}
|
|
52
|
+
catch (_a) {
|
|
53
|
+
// Ignore quota errors or disabled storage.
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
exports.persistBooleanMap = persistBooleanMap;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
import { type BooleanMap } from './persist-boolean-map';
|
|
1
2
|
export declare const openFolderKey: ({ folderName, parentName, }: {
|
|
2
3
|
folderName: string;
|
|
3
4
|
parentName: string | null;
|
|
4
5
|
}) => string;
|
|
5
|
-
export type ExpandedFoldersState =
|
|
6
|
+
export type ExpandedFoldersState = BooleanMap;
|
|
6
7
|
type PersistanceType = 'assets' | 'compositions';
|
|
7
|
-
export declare const persistExpandedFolders: (type: PersistanceType, state:
|
|
8
|
-
export declare const loadExpandedFolders: (type: PersistanceType) =>
|
|
8
|
+
export declare const persistExpandedFolders: (type: PersistanceType, state: BooleanMap) => void;
|
|
9
|
+
export declare const loadExpandedFolders: (type: PersistanceType) => BooleanMap;
|
|
9
10
|
export type ExpandedFoldersRef = {
|
|
10
11
|
toggleFolder: (folderName: string, parentName: string | null) => void;
|
|
11
12
|
foldersExpanded: ExpandedFoldersState;
|
|
@@ -2,23 +2,20 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ExpandedFoldersContext = exports.loadExpandedFolders = exports.persistExpandedFolders = exports.openFolderKey = void 0;
|
|
4
4
|
const react_1 = require("react");
|
|
5
|
+
const persist_boolean_map_1 = require("./persist-boolean-map");
|
|
5
6
|
const openFolderKey = ({ folderName, parentName, }) => {
|
|
6
7
|
return [parentName !== null && parentName !== void 0 ? parentName : 'no-parent', folderName].join('/');
|
|
7
8
|
};
|
|
8
9
|
exports.openFolderKey = openFolderKey;
|
|
9
|
-
const
|
|
10
|
+
const sessionStorageKey = (type) => type === 'compositions'
|
|
10
11
|
? 'remotion.expandedFolders'
|
|
11
12
|
: 'remotion.expandedAssetFolders';
|
|
12
13
|
const persistExpandedFolders = (type, state) => {
|
|
13
|
-
|
|
14
|
+
(0, persist_boolean_map_1.persistBooleanMap)(sessionStorageKey(type), state);
|
|
14
15
|
};
|
|
15
16
|
exports.persistExpandedFolders = persistExpandedFolders;
|
|
16
17
|
const loadExpandedFolders = (type) => {
|
|
17
|
-
|
|
18
|
-
if (item === null) {
|
|
19
|
-
return {};
|
|
20
|
-
}
|
|
21
|
-
return JSON.parse(item);
|
|
18
|
+
return (0, persist_boolean_map_1.loadPersistedBooleanMap)(sessionStorageKey(type));
|
|
22
19
|
};
|
|
23
20
|
exports.loadExpandedFolders = loadExpandedFolders;
|
|
24
21
|
exports.ExpandedFoldersContext = (0, react_1.createContext)({
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type AnySchemaFieldInfo, type CodeValues, type DragOverrides, type EffectSchemaFieldInfo, type SchemaFieldInfo, type SequenceControls, type SequenceSchemaFieldInfo } from '@remotion/studio-shared';
|
|
2
|
-
import type { GetDragOverrides, TSequence } from 'remotion';
|
|
2
|
+
import type { GetDragOverrides, SequenceSchema as SequenceSchemaShape, TSequence } from 'remotion';
|
|
3
3
|
import type { GetIsExpanded } from '../components/ExpandedTracksProvider';
|
|
4
4
|
import type { SequenceNodePathInfo } from './get-timeline-sequence-sort-key';
|
|
5
5
|
export type { AnySchemaFieldInfo, CodeValues, DragOverrides, EffectSchemaFieldInfo, SchemaFieldInfo, SequenceControls, SequenceSchemaFieldInfo, };
|
|
@@ -13,11 +13,16 @@ export declare const EXPANDED_SECTION_PADDING_LEFT = 28;
|
|
|
13
13
|
export declare const EXPANDED_SECTION_PADDING_RIGHT = 10;
|
|
14
14
|
export type TimelineFieldOnSave = (value: unknown) => Promise<void>;
|
|
15
15
|
export type TimelineFieldOnDragValueChange = (value: unknown) => void;
|
|
16
|
+
export type TimelineEffectGroupInfo = {
|
|
17
|
+
readonly effectIndex: number;
|
|
18
|
+
readonly effectSchema: SequenceSchemaShape;
|
|
19
|
+
};
|
|
16
20
|
export type TimelineTreeNode = {
|
|
17
21
|
readonly kind: 'group';
|
|
18
22
|
readonly nodePathInfo: SequenceNodePathInfo;
|
|
19
23
|
readonly label: string;
|
|
20
24
|
readonly children: TimelineTreeNode[];
|
|
25
|
+
readonly effectInfo: TimelineEffectGroupInfo | null;
|
|
21
26
|
} | {
|
|
22
27
|
readonly kind: 'field';
|
|
23
28
|
readonly nodePathInfo: SequenceNodePathInfo;
|
|
@@ -27,6 +27,7 @@ const buildTimelineTree = ({ sequence, nodePathInfo, getDragOverrides, codeValue
|
|
|
27
27
|
numberOfSequencesWithThisNodePath: 0,
|
|
28
28
|
},
|
|
29
29
|
label: 'Effects',
|
|
30
|
+
effectInfo: null,
|
|
30
31
|
children: sequence.effects.map((effect, i) => {
|
|
31
32
|
const effectFields = (0, studio_shared_1.getEffectFieldsToShow)(effect, i);
|
|
32
33
|
return {
|
|
@@ -38,6 +39,7 @@ const buildTimelineTree = ({ sequence, nodePathInfo, getDragOverrides, codeValue
|
|
|
38
39
|
numberOfSequencesWithThisNodePath: 0,
|
|
39
40
|
},
|
|
40
41
|
label: effect.label,
|
|
42
|
+
effectInfo: { effectIndex: i, effectSchema: effect.schema },
|
|
41
43
|
children: effectFields.map((f) => {
|
|
42
44
|
var _a;
|
|
43
45
|
return ({
|
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.
|
|
6
|
+
"version": "4.0.463",
|
|
7
7
|
"description": "APIs for interacting with the Remotion Studio",
|
|
8
8
|
"main": "dist",
|
|
9
9
|
"scripts": {
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"semver": "7.5.3",
|
|
28
|
-
"remotion": "4.0.
|
|
29
|
-
"@remotion/player": "4.0.
|
|
30
|
-
"@remotion/media-utils": "4.0.
|
|
31
|
-
"@remotion/renderer": "4.0.
|
|
32
|
-
"@remotion/web-renderer": "4.0.
|
|
33
|
-
"@remotion/studio-shared": "4.0.
|
|
34
|
-
"@remotion/timeline-utils": "4.0.
|
|
35
|
-
"@remotion/zod-types": "4.0.
|
|
28
|
+
"remotion": "4.0.463",
|
|
29
|
+
"@remotion/player": "4.0.463",
|
|
30
|
+
"@remotion/media-utils": "4.0.463",
|
|
31
|
+
"@remotion/renderer": "4.0.463",
|
|
32
|
+
"@remotion/web-renderer": "4.0.463",
|
|
33
|
+
"@remotion/studio-shared": "4.0.463",
|
|
34
|
+
"@remotion/timeline-utils": "4.0.463",
|
|
35
|
+
"@remotion/zod-types": "4.0.463",
|
|
36
36
|
"@jridgewell/trace-mapping": "0.3.31",
|
|
37
37
|
"mediabunny": "1.45.0",
|
|
38
38
|
"memfs": "3.4.3",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"react": "19.2.3",
|
|
44
44
|
"react-dom": "19.2.3",
|
|
45
45
|
"@types/semver": "7.5.3",
|
|
46
|
-
"@remotion/eslint-config-internal": "4.0.
|
|
46
|
+
"@remotion/eslint-config-internal": "4.0.463",
|
|
47
47
|
"eslint": "9.19.0",
|
|
48
48
|
"@typescript/native-preview": "7.0.0-dev.20260217.1"
|
|
49
49
|
},
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
var __create = Object.create;
|
|
2
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __toESM = (mod, isNodeMode, target) => {
|
|
7
|
-
target = mod != null ? __create(__getProtoOf(mod)) : {};
|
|
8
|
-
const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
|
|
9
|
-
for (let key of __getOwnPropNames(mod))
|
|
10
|
-
if (!__hasOwnProp.call(to, key))
|
|
11
|
-
__defProp(to, key, {
|
|
12
|
-
get: () => mod[key],
|
|
13
|
-
enumerable: true
|
|
14
|
-
});
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
18
|
-
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
19
|
-
}) : x)(function(x) {
|
|
20
|
-
if (typeof require !== "undefined")
|
|
21
|
-
return require.apply(this, arguments);
|
|
22
|
-
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
export { __toESM, __require };
|