remotion 3.3.51 → 3.3.52
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/AbsoluteFill.d.ts +6 -0
- package/dist/AbsoluteFill.js +28 -0
- package/dist/CanUseRemotionHooks.d.ts +5 -0
- package/dist/CanUseRemotionHooks.js +10 -0
- package/dist/Clipper.d.ts +7 -0
- package/dist/Clipper.js +24 -0
- package/dist/Composition.d.ts +23 -0
- package/dist/Composition.js +113 -0
- package/dist/CompositionManager.d.ts +82 -0
- package/dist/CompositionManager.js +164 -0
- package/dist/Folder.d.ts +15 -0
- package/dist/Folder.js +33 -0
- package/dist/IFrame.d.ts +2 -0
- package/dist/IFrame.js +24 -0
- package/dist/Img.d.ts +2 -0
- package/dist/Img.js +52 -0
- package/dist/NativeLayers.d.ts +13 -0
- package/dist/NativeLayers.js +29 -0
- package/dist/Null.d.ts +2 -0
- package/dist/Null.js +25 -0
- package/dist/RemotionRoot.d.ts +5 -0
- package/dist/RemotionRoot.js +73 -0
- package/dist/Sequence.d.ts +29 -0
- package/dist/Sequence.js +131 -0
- package/dist/Still.d.ts +2 -0
- package/dist/Still.js +9 -0
- package/dist/absolute-src.d.ts +1 -0
- package/dist/absolute-src.js +7 -0
- package/dist/asset-types.d.ts +50 -0
- package/dist/asset-types.js +1 -0
- package/dist/audio/Audio.d.ts +8 -0
- package/dist/audio/Audio.js +52 -0
- package/dist/audio/AudioForDevelopment.d.ts +11 -0
- package/dist/audio/AudioForDevelopment.js +94 -0
- package/dist/audio/AudioForRendering.d.ts +10 -0
- package/dist/audio/AudioForRendering.js +111 -0
- package/dist/audio/index.d.ts +2 -0
- package/dist/audio/index.js +18 -0
- package/dist/audio/props.d.ts +12 -0
- package/dist/audio/props.js +2 -0
- package/dist/audio/shared-audio-tags.d.ts +37 -0
- package/dist/audio/shared-audio-tags.js +222 -0
- package/dist/audio/use-audio-frame.d.ts +6 -0
- package/dist/audio/use-audio-frame.js +23 -0
- package/dist/bezier.d.ts +1 -0
- package/dist/bezier.js +114 -0
- package/dist/cancel-render.d.ts +1 -0
- package/dist/cancel-render.js +43 -0
- package/dist/cjs/series/index.js +5 -2
- package/dist/cjs/test/series.test.js +32 -27
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/config/input-props.d.ts +1 -0
- package/dist/config/input-props.js +31 -0
- package/dist/config.d.ts +285 -0
- package/dist/config.js +21 -0
- package/dist/default-css.d.ts +3 -0
- package/dist/default-css.js +49 -0
- package/dist/delay-render.d.ts +14 -0
- package/dist/delay-render.js +77 -0
- package/dist/easing.d.ts +19 -0
- package/dist/easing.js +77 -0
- package/dist/esm/series/index.js +5 -2
- package/dist/esm/test/series.test.js +32 -27
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/freeze.d.ts +7 -0
- package/dist/freeze.js +34 -0
- package/dist/get-asset-file-name.d.ts +1 -0
- package/dist/get-asset-file-name.js +14 -0
- package/dist/get-environment.d.ts +3 -0
- package/dist/get-environment.js +34 -0
- package/dist/get-preview-dom-element.d.ts +1 -0
- package/dist/get-preview-dom-element.js +7 -0
- package/dist/get-static-files.d.ts +17 -0
- package/dist/get-static-files.js +31 -0
- package/dist/get-timeline-clip-name.d.ts +1 -0
- package/dist/get-timeline-clip-name.js +25 -0
- package/dist/index.d.ts +92 -0
- package/dist/index.js +73 -0
- package/dist/internals.d.ts +97 -0
- package/dist/internals.js +99 -0
- package/dist/interpolate-colors.d.ts +5 -0
- package/dist/interpolate-colors.js +401 -0
- package/dist/interpolate.d.ts +18 -0
- package/dist/interpolate.js +123 -0
- package/dist/is-approximately-the-same.d.ts +1 -0
- package/dist/is-approximately-the-same.js +8 -0
- package/dist/is-player.d.ts +3 -0
- package/dist/is-player.js +14 -0
- package/dist/loading-indicator.d.ts +2 -0
- package/dist/loading-indicator.js +35 -0
- package/dist/loop/index.d.ts +9 -0
- package/dist/loop/index.js +29 -0
- package/dist/multiple-versions-warning.d.ts +1 -0
- package/dist/multiple-versions-warning.js +32 -0
- package/dist/nonce.d.ts +7 -0
- package/dist/nonce.js +17 -0
- package/dist/play-and-handle-not-allowed-error.d.ts +2 -0
- package/dist/play-and-handle-not-allowed-error.js +44 -0
- package/dist/portal-node.d.ts +1 -0
- package/dist/portal-node.js +23 -0
- package/dist/prefetch-state.d.ts +8 -0
- package/dist/prefetch-state.js +27 -0
- package/dist/prefetch.d.ts +9 -0
- package/dist/prefetch.js +108 -0
- package/dist/random.d.ts +7 -0
- package/dist/random.js +41 -0
- package/dist/register-root.d.ts +4 -0
- package/dist/register-root.js +33 -0
- package/dist/series/flatten-children.d.ts +2 -0
- package/dist/series/flatten-children.js +19 -0
- package/dist/series/index.d.ts +13 -0
- package/dist/series/index.js +60 -0
- package/dist/setup-env-variables.d.ts +2 -0
- package/dist/setup-env-variables.js +36 -0
- package/dist/spring/index.d.ts +27 -0
- package/dist/spring/index.js +51 -0
- package/dist/spring/measure-spring.d.ts +8 -0
- package/dist/spring/measure-spring.js +64 -0
- package/dist/spring/spring-utils.d.ts +21 -0
- package/dist/spring/spring-utils.js +103 -0
- package/dist/static-file.d.ts +5 -0
- package/dist/static-file.js +33 -0
- package/dist/timeline-position-state.d.ts +29 -0
- package/dist/timeline-position-state.js +41 -0
- package/dist/truthy.d.ts +3 -0
- package/dist/truthy.js +7 -0
- package/dist/tsconfig-cjs.tsbuildinfo +1 -1
- package/dist/use-current-frame.d.ts +6 -0
- package/dist/use-current-frame.js +28 -0
- package/dist/use-lazy-component.d.ts +7 -0
- package/dist/use-lazy-component.js +49 -0
- package/dist/use-media-in-timeline.d.ts +10 -0
- package/dist/use-media-in-timeline.js +129 -0
- package/dist/use-media-playback.d.ts +10 -0
- package/dist/use-media-playback.js +77 -0
- package/dist/use-media-tag-volume.d.ts +2 -0
- package/dist/use-media-tag-volume.js +31 -0
- package/dist/use-sync-volume-with-media-tag.d.ts +10 -0
- package/dist/use-sync-volume-with-media-tag.js +21 -0
- package/dist/use-unsafe-video-config.d.ts +2 -0
- package/dist/use-unsafe-video-config.js +27 -0
- package/dist/use-video-config.d.ts +7 -0
- package/dist/use-video-config.js +29 -0
- package/dist/use-video.d.ts +12 -0
- package/dist/use-video.js +28 -0
- package/dist/validate-media-props.d.ts +4 -0
- package/dist/validate-media-props.js +24 -0
- package/dist/validate-start-from-props.d.ts +1 -0
- package/dist/validate-start-from-props.js +31 -0
- package/dist/validation/validate-composition-id.d.ts +3 -0
- package/dist/validation/validate-composition-id.js +13 -0
- package/dist/validation/validate-dimensions.d.ts +1 -0
- package/dist/validation/validate-dimensions.js +21 -0
- package/dist/validation/validate-duration-in-frames.d.ts +1 -0
- package/dist/validation/validate-duration-in-frames.js +15 -0
- package/dist/validation/validate-folder-name.d.ts +3 -0
- package/dist/validation/validate-folder-name.js +19 -0
- package/dist/validation/validate-fps.d.ts +1 -0
- package/dist/validation/validate-fps.js +21 -0
- package/dist/validation/validate-offthreadvideo-image-format.d.ts +1 -0
- package/dist/validation/validate-offthreadvideo-image-format.js +15 -0
- package/dist/validation/validation-spring-duration.d.ts +1 -0
- package/dist/validation/validation-spring-duration.js +21 -0
- package/dist/version.d.ts +1 -0
- package/dist/version.js +5 -0
- package/dist/video/OffthreadVideo.d.ts +3 -0
- package/dist/video/OffthreadVideo.js +33 -0
- package/dist/video/OffthreadVideoForRendering.d.ts +3 -0
- package/dist/video/OffthreadVideoForRendering.js +104 -0
- package/dist/video/Video.d.ts +8 -0
- package/dist/video/Video.js +50 -0
- package/dist/video/VideoForDevelopment.d.ts +11 -0
- package/dist/video/VideoForDevelopment.js +113 -0
- package/dist/video/VideoForRendering.d.ts +10 -0
- package/dist/video/VideoForRendering.js +203 -0
- package/dist/video/duration-state.d.ts +17 -0
- package/dist/video/duration-state.js +34 -0
- package/dist/video/get-current-time.d.ts +13 -0
- package/dist/video/get-current-time.js +31 -0
- package/dist/video/index.d.ts +3 -0
- package/dist/video/index.js +7 -0
- package/dist/video/props.d.ts +25 -0
- package/dist/video/props.js +2 -0
- package/dist/video/video-fragment.d.ts +12 -0
- package/dist/video/video-fragment.js +60 -0
- package/dist/video-config.d.ts +8 -0
- package/dist/video-config.js +2 -0
- package/dist/volume-position-state.d.ts +19 -0
- package/dist/volume-position-state.js +32 -0
- package/dist/volume-prop.d.ts +7 -0
- package/dist/volume-prop.js +24 -0
- package/dist/warn-about-non-seekable-media.d.ts +1 -0
- package/dist/warn-about-non-seekable-media.js +34 -0
- package/dist/wrap-remotion-context.d.ts +18 -0
- package/dist/wrap-remotion-context.js +73 -0
- package/package.json +4 -5
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* An absolutely positioned <div> element with 100% width, height, and a column flex style
|
|
4
|
+
* @link https://www.remotion.dev/docs/absolute-fill
|
|
5
|
+
*/
|
|
6
|
+
export declare const AbsoluteFill: React.ForwardRefExoticComponent<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AbsoluteFill = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const AbsoluteFillRefForwarding = (props, ref) => {
|
|
7
|
+
const { style, ...other } = props;
|
|
8
|
+
const actualStyle = (0, react_1.useMemo)(() => {
|
|
9
|
+
return {
|
|
10
|
+
position: 'absolute',
|
|
11
|
+
top: 0,
|
|
12
|
+
left: 0,
|
|
13
|
+
right: 0,
|
|
14
|
+
bottom: 0,
|
|
15
|
+
width: '100%',
|
|
16
|
+
height: '100%',
|
|
17
|
+
display: 'flex',
|
|
18
|
+
flexDirection: 'column',
|
|
19
|
+
...style,
|
|
20
|
+
};
|
|
21
|
+
}, [style]);
|
|
22
|
+
return (0, jsx_runtime_1.jsx)("div", { ref: ref, style: actualStyle, ...other });
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* An absolutely positioned <div> element with 100% width, height, and a column flex style
|
|
26
|
+
* @link https://www.remotion.dev/docs/absolute-fill
|
|
27
|
+
*/
|
|
28
|
+
exports.AbsoluteFill = (0, react_1.forwardRef)(AbsoluteFillRefForwarding);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CanUseRemotionHooksProvider = exports.CanUseRemotionHooks = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
exports.CanUseRemotionHooks = (0, react_1.createContext)(false);
|
|
7
|
+
const CanUseRemotionHooksProvider = ({ children }) => {
|
|
8
|
+
return ((0, jsx_runtime_1.jsx)(exports.CanUseRemotionHooks.Provider, { value: true, children: children }));
|
|
9
|
+
};
|
|
10
|
+
exports.CanUseRemotionHooksProvider = CanUseRemotionHooksProvider;
|
package/dist/Clipper.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Clipper = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const NativeLayers_1 = require("./NativeLayers");
|
|
6
|
+
const Clipper = ({ height, width, x, y }) => {
|
|
7
|
+
const { setClipRegion } = (0, react_1.useContext)(NativeLayers_1.NativeLayersContext);
|
|
8
|
+
(0, react_1.useEffect)(() => {
|
|
9
|
+
setClipRegion((c) => {
|
|
10
|
+
if (c === 'hide') {
|
|
11
|
+
throw new Error('Cannot render <Clipper>, because another <Null> is already rendered');
|
|
12
|
+
}
|
|
13
|
+
if (c === null) {
|
|
14
|
+
return { height, width, x, y };
|
|
15
|
+
}
|
|
16
|
+
throw new Error('Cannot render <Clipper>, because another component clipping the region was already rendered (most likely <Clipper>)');
|
|
17
|
+
});
|
|
18
|
+
return () => {
|
|
19
|
+
setClipRegion(null);
|
|
20
|
+
};
|
|
21
|
+
}, [height, setClipRegion, width, x, y]);
|
|
22
|
+
return null;
|
|
23
|
+
};
|
|
24
|
+
exports.Clipper = Clipper;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ComponentType, PropsWithChildren } from 'react';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
declare type LooseComponentType<T> = ComponentType<T> | ((props: T) => React.ReactNode);
|
|
4
|
+
export declare type CompProps<T> = {
|
|
5
|
+
lazyComponent: () => Promise<{
|
|
6
|
+
default: LooseComponentType<T>;
|
|
7
|
+
}>;
|
|
8
|
+
} | {
|
|
9
|
+
component: LooseComponentType<T>;
|
|
10
|
+
};
|
|
11
|
+
export declare type StillProps<T> = {
|
|
12
|
+
width: number;
|
|
13
|
+
height: number;
|
|
14
|
+
id: string;
|
|
15
|
+
defaultProps?: T;
|
|
16
|
+
} & CompProps<T>;
|
|
17
|
+
declare type CompositionProps<T> = StillProps<T> & {
|
|
18
|
+
fps: number;
|
|
19
|
+
durationInFrames: number;
|
|
20
|
+
};
|
|
21
|
+
export declare const Composition: <T>({ width, height, fps, durationInFrames, id, defaultProps, ...compProps }: CompositionProps<T>) => React.ReactPortal | null;
|
|
22
|
+
export declare const ClipComposition: React.FC<PropsWithChildren>;
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClipComposition = exports.Composition = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const react_dom_1 = require("react-dom");
|
|
7
|
+
const AbsoluteFill_1 = require("./AbsoluteFill");
|
|
8
|
+
const CanUseRemotionHooks_1 = require("./CanUseRemotionHooks");
|
|
9
|
+
const CompositionManager_1 = require("./CompositionManager");
|
|
10
|
+
const input_props_1 = require("./config/input-props");
|
|
11
|
+
const delay_render_1 = require("./delay-render");
|
|
12
|
+
const Folder_1 = require("./Folder");
|
|
13
|
+
const get_environment_1 = require("./get-environment");
|
|
14
|
+
const internals_1 = require("./internals");
|
|
15
|
+
const loading_indicator_1 = require("./loading-indicator");
|
|
16
|
+
const NativeLayers_1 = require("./NativeLayers");
|
|
17
|
+
const nonce_1 = require("./nonce");
|
|
18
|
+
const portal_node_1 = require("./portal-node");
|
|
19
|
+
const use_lazy_component_1 = require("./use-lazy-component");
|
|
20
|
+
const use_video_1 = require("./use-video");
|
|
21
|
+
const validate_composition_id_1 = require("./validation/validate-composition-id");
|
|
22
|
+
const validate_dimensions_1 = require("./validation/validate-dimensions");
|
|
23
|
+
const validate_duration_in_frames_1 = require("./validation/validate-duration-in-frames");
|
|
24
|
+
const validate_fps_1 = require("./validation/validate-fps");
|
|
25
|
+
const Fallback = () => {
|
|
26
|
+
(0, react_1.useEffect)(() => {
|
|
27
|
+
const fallback = (0, delay_render_1.delayRender)('Waiting for Root component to unsuspend');
|
|
28
|
+
return () => (0, delay_render_1.continueRender)(fallback);
|
|
29
|
+
}, []);
|
|
30
|
+
return null;
|
|
31
|
+
};
|
|
32
|
+
const Composition = ({ width, height, fps, durationInFrames, id, defaultProps, ...compProps }) => {
|
|
33
|
+
const { registerComposition, unregisterComposition } = (0, react_1.useContext)(CompositionManager_1.CompositionManager);
|
|
34
|
+
const video = (0, use_video_1.useVideo)();
|
|
35
|
+
const lazy = (0, use_lazy_component_1.useLazyComponent)(compProps);
|
|
36
|
+
const nonce = (0, nonce_1.useNonce)();
|
|
37
|
+
const environment = (0, get_environment_1.useRemotionEnvironment)();
|
|
38
|
+
const canUseComposition = (0, react_1.useContext)(internals_1.Internals.CanUseRemotionHooks);
|
|
39
|
+
if (canUseComposition) {
|
|
40
|
+
if (environment === 'player-development' ||
|
|
41
|
+
environment === 'player-production') {
|
|
42
|
+
throw new Error('<Composition> was mounted inside the `component` that was passed to the <Player>. See https://remotion.dev/docs/wrong-composition-mount for help.');
|
|
43
|
+
}
|
|
44
|
+
throw new Error('<Composition> mounted inside another composition. See https://remotion.dev/docs/wrong-composition-mount for help.');
|
|
45
|
+
}
|
|
46
|
+
const { folderName, parentName } = (0, react_1.useContext)(Folder_1.FolderContext);
|
|
47
|
+
(0, react_1.useEffect)(() => {
|
|
48
|
+
// Ensure it's a URL safe id
|
|
49
|
+
if (!id) {
|
|
50
|
+
throw new Error('No id for composition passed.');
|
|
51
|
+
}
|
|
52
|
+
(0, validate_composition_id_1.validateCompositionId)(id);
|
|
53
|
+
(0, validate_dimensions_1.validateDimension)(width, 'width', 'of the <Composition/> component');
|
|
54
|
+
(0, validate_dimensions_1.validateDimension)(height, 'height', 'of the <Composition/> component');
|
|
55
|
+
(0, validate_duration_in_frames_1.validateDurationInFrames)(durationInFrames, 'of the <Composition/> component');
|
|
56
|
+
(0, validate_fps_1.validateFps)(fps, 'as a prop of the <Composition/> component', false);
|
|
57
|
+
registerComposition({
|
|
58
|
+
durationInFrames,
|
|
59
|
+
fps,
|
|
60
|
+
height,
|
|
61
|
+
width,
|
|
62
|
+
id,
|
|
63
|
+
folderName,
|
|
64
|
+
component: lazy,
|
|
65
|
+
defaultProps,
|
|
66
|
+
nonce,
|
|
67
|
+
parentFolderName: parentName,
|
|
68
|
+
});
|
|
69
|
+
return () => {
|
|
70
|
+
unregisterComposition(id);
|
|
71
|
+
};
|
|
72
|
+
}, [
|
|
73
|
+
durationInFrames,
|
|
74
|
+
fps,
|
|
75
|
+
height,
|
|
76
|
+
lazy,
|
|
77
|
+
id,
|
|
78
|
+
folderName,
|
|
79
|
+
defaultProps,
|
|
80
|
+
registerComposition,
|
|
81
|
+
unregisterComposition,
|
|
82
|
+
width,
|
|
83
|
+
nonce,
|
|
84
|
+
parentName,
|
|
85
|
+
]);
|
|
86
|
+
if (environment === 'preview' && video && video.component === lazy) {
|
|
87
|
+
const Comp = lazy;
|
|
88
|
+
const inputProps = (0, input_props_1.getInputProps)();
|
|
89
|
+
return (0, react_dom_1.createPortal)((0, jsx_runtime_1.jsx)(exports.ClipComposition, { children: (0, jsx_runtime_1.jsx)(CanUseRemotionHooks_1.CanUseRemotionHooksProvider, { children: (0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: (0, jsx_runtime_1.jsx)(loading_indicator_1.Loading, {}), children: (0, jsx_runtime_1.jsx)(Comp, { ...defaultProps, ...inputProps }) }) }) }), (0, portal_node_1.portalNode)());
|
|
90
|
+
}
|
|
91
|
+
if (environment === 'rendering' && video && video.component === lazy) {
|
|
92
|
+
const Comp = lazy;
|
|
93
|
+
const inputProps = (0, input_props_1.getInputProps)();
|
|
94
|
+
return (0, react_dom_1.createPortal)((0, jsx_runtime_1.jsx)(CanUseRemotionHooks_1.CanUseRemotionHooksProvider, { children: (0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: (0, jsx_runtime_1.jsx)(Fallback, {}), children: (0, jsx_runtime_1.jsx)(Comp, { ...defaultProps, ...inputProps }) }) }), (0, portal_node_1.portalNode)());
|
|
95
|
+
}
|
|
96
|
+
return null;
|
|
97
|
+
};
|
|
98
|
+
exports.Composition = Composition;
|
|
99
|
+
const ClipComposition = ({ children }) => {
|
|
100
|
+
const { clipRegion } = (0, react_1.useContext)(NativeLayers_1.NativeLayersContext);
|
|
101
|
+
const style = (0, react_1.useMemo)(() => {
|
|
102
|
+
return {
|
|
103
|
+
display: 'flex',
|
|
104
|
+
flexDirection: 'row',
|
|
105
|
+
opacity: clipRegion === 'hide' ? 0 : 1,
|
|
106
|
+
clipPath: clipRegion && clipRegion !== 'hide'
|
|
107
|
+
? `polygon(${clipRegion.x}px ${clipRegion.y}px, ${clipRegion.x}px ${clipRegion.height + clipRegion.y}px, ${clipRegion.width + clipRegion.x}px ${clipRegion.height + clipRegion.y}px, ${clipRegion.width + clipRegion.x}px ${clipRegion.y}px)`
|
|
108
|
+
: undefined,
|
|
109
|
+
};
|
|
110
|
+
}, [clipRegion]);
|
|
111
|
+
return (0, jsx_runtime_1.jsx)(AbsoluteFill_1.AbsoluteFill, { style: style, children: children });
|
|
112
|
+
};
|
|
113
|
+
exports.ClipComposition = ClipComposition;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { ComponentType, LazyExoticComponent } from 'react';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import type { TFolder } from './Folder';
|
|
4
|
+
export declare type TComposition<T = unknown> = {
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
fps: number;
|
|
8
|
+
durationInFrames: number;
|
|
9
|
+
id: string;
|
|
10
|
+
folderName: string | null;
|
|
11
|
+
parentFolderName: string | null;
|
|
12
|
+
component: LazyExoticComponent<ComponentType<T>>;
|
|
13
|
+
defaultProps: T | undefined;
|
|
14
|
+
nonce: number;
|
|
15
|
+
};
|
|
16
|
+
export declare type TCompMetadata = Pick<TComposition, 'id' | 'height' | 'width' | 'fps' | 'durationInFrames' | 'defaultProps'>;
|
|
17
|
+
export declare type SmallTCompMetadata = Pick<TComposition, 'id' | 'height' | 'width' | 'fps' | 'durationInFrames'> & Partial<Pick<TComposition, 'defaultProps'>>;
|
|
18
|
+
declare type EnhancedTSequenceData = {
|
|
19
|
+
type: 'sequence';
|
|
20
|
+
} | {
|
|
21
|
+
type: 'audio';
|
|
22
|
+
src: string;
|
|
23
|
+
volume: string | number;
|
|
24
|
+
doesVolumeChange: boolean;
|
|
25
|
+
startMediaFrom: number;
|
|
26
|
+
playbackRate: number;
|
|
27
|
+
} | {
|
|
28
|
+
type: 'video';
|
|
29
|
+
src: string;
|
|
30
|
+
volume: string | number;
|
|
31
|
+
doesVolumeChange: boolean;
|
|
32
|
+
startMediaFrom: number;
|
|
33
|
+
playbackRate: number;
|
|
34
|
+
};
|
|
35
|
+
export declare type TSequence = {
|
|
36
|
+
from: number;
|
|
37
|
+
duration: number;
|
|
38
|
+
id: string;
|
|
39
|
+
displayName: string;
|
|
40
|
+
parent: string | null;
|
|
41
|
+
rootId: string;
|
|
42
|
+
showInTimeline: boolean;
|
|
43
|
+
nonce: number;
|
|
44
|
+
showLoopTimesInTimeline: number | undefined;
|
|
45
|
+
} & EnhancedTSequenceData;
|
|
46
|
+
export declare type TAsset = {
|
|
47
|
+
type: 'audio' | 'video';
|
|
48
|
+
src: string;
|
|
49
|
+
id: string;
|
|
50
|
+
frame: number;
|
|
51
|
+
volume: number;
|
|
52
|
+
mediaFrame: number;
|
|
53
|
+
playbackRate: number;
|
|
54
|
+
allowAmplificationDuringRender: boolean;
|
|
55
|
+
};
|
|
56
|
+
declare type BaseMetadata = Pick<TCompMetadata, 'durationInFrames' | 'fps' | 'defaultProps' | 'height' | 'width'>;
|
|
57
|
+
export declare type CompositionManagerContext = {
|
|
58
|
+
compositions: TComposition[];
|
|
59
|
+
registerComposition: <T>(comp: TComposition<T>) => void;
|
|
60
|
+
unregisterComposition: (name: string) => void;
|
|
61
|
+
registerFolder: (name: string, parent: string | null) => void;
|
|
62
|
+
unregisterFolder: (name: string, parent: string | null) => void;
|
|
63
|
+
currentComposition: string | null;
|
|
64
|
+
setCurrentComposition: (curr: string) => void;
|
|
65
|
+
setCurrentCompositionMetadata: (metadata: BaseMetadata) => void;
|
|
66
|
+
currentCompositionMetadata: BaseMetadata | null;
|
|
67
|
+
registerSequence: (seq: TSequence) => void;
|
|
68
|
+
unregisterSequence: (id: string) => void;
|
|
69
|
+
registerAsset: (asset: TAsset) => void;
|
|
70
|
+
unregisterAsset: (id: string) => void;
|
|
71
|
+
sequences: TSequence[];
|
|
72
|
+
assets: TAsset[];
|
|
73
|
+
folders: TFolder[];
|
|
74
|
+
};
|
|
75
|
+
export declare const CompositionManager: React.Context<CompositionManagerContext>;
|
|
76
|
+
export declare const compositionsRef: React.RefObject<{
|
|
77
|
+
getCompositions: () => TCompMetadata[];
|
|
78
|
+
}>;
|
|
79
|
+
export declare const CompositionManagerProvider: React.FC<{
|
|
80
|
+
children: React.ReactNode;
|
|
81
|
+
}>;
|
|
82
|
+
export {};
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.CompositionManagerProvider = exports.compositionsRef = exports.CompositionManager = void 0;
|
|
27
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
28
|
+
const react_1 = __importStar(require("react"));
|
|
29
|
+
exports.CompositionManager = (0, react_1.createContext)({
|
|
30
|
+
compositions: [],
|
|
31
|
+
registerComposition: () => undefined,
|
|
32
|
+
unregisterComposition: () => undefined,
|
|
33
|
+
registerFolder: () => undefined,
|
|
34
|
+
unregisterFolder: () => undefined,
|
|
35
|
+
currentComposition: null,
|
|
36
|
+
setCurrentComposition: () => undefined,
|
|
37
|
+
setCurrentCompositionMetadata: () => undefined,
|
|
38
|
+
registerSequence: () => undefined,
|
|
39
|
+
unregisterSequence: () => undefined,
|
|
40
|
+
registerAsset: () => undefined,
|
|
41
|
+
unregisterAsset: () => undefined,
|
|
42
|
+
sequences: [],
|
|
43
|
+
assets: [],
|
|
44
|
+
folders: [],
|
|
45
|
+
currentCompositionMetadata: null,
|
|
46
|
+
});
|
|
47
|
+
exports.compositionsRef = react_1.default.createRef();
|
|
48
|
+
const CompositionManagerProvider = ({ children }) => {
|
|
49
|
+
// Wontfix, expected to have
|
|
50
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
51
|
+
const [compositions, setCompositions] = (0, react_1.useState)([]);
|
|
52
|
+
const currentcompositionsRef = (0, react_1.useRef)(compositions);
|
|
53
|
+
const [currentComposition, setCurrentComposition] = (0, react_1.useState)(null);
|
|
54
|
+
const [assets, setAssets] = (0, react_1.useState)([]);
|
|
55
|
+
const [folders, setFolders] = (0, react_1.useState)([]);
|
|
56
|
+
const [sequences, setSequences] = (0, react_1.useState)([]);
|
|
57
|
+
const [currentCompositionMetadata, setCurrentCompositionMetadata] = (0, react_1.useState)(null);
|
|
58
|
+
const updateCompositions = (0, react_1.useCallback)(
|
|
59
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
60
|
+
(updateComps) => {
|
|
61
|
+
setCompositions((comps) => {
|
|
62
|
+
const updated = updateComps(comps);
|
|
63
|
+
currentcompositionsRef.current = updated;
|
|
64
|
+
return updated;
|
|
65
|
+
});
|
|
66
|
+
}, []);
|
|
67
|
+
const registerComposition = (0, react_1.useCallback)((comp) => {
|
|
68
|
+
updateCompositions((comps) => {
|
|
69
|
+
if (comps.find((c) => c.id === comp.id)) {
|
|
70
|
+
throw new Error(`Multiple composition with id ${comp.id} are registered.`);
|
|
71
|
+
}
|
|
72
|
+
return [...comps, comp].slice().sort((a, b) => a.nonce - b.nonce);
|
|
73
|
+
});
|
|
74
|
+
}, [updateCompositions]);
|
|
75
|
+
const registerSequence = (0, react_1.useCallback)((seq) => {
|
|
76
|
+
setSequences((seqs) => {
|
|
77
|
+
return [...seqs, seq];
|
|
78
|
+
});
|
|
79
|
+
}, []);
|
|
80
|
+
const unregisterComposition = (0, react_1.useCallback)((id) => {
|
|
81
|
+
setCompositions((comps) => {
|
|
82
|
+
return comps.filter((c) => c.id !== id);
|
|
83
|
+
});
|
|
84
|
+
}, []);
|
|
85
|
+
const unregisterSequence = (0, react_1.useCallback)((seq) => {
|
|
86
|
+
setSequences((seqs) => seqs.filter((s) => s.id !== seq));
|
|
87
|
+
}, []);
|
|
88
|
+
const registerAsset = (0, react_1.useCallback)((asset) => {
|
|
89
|
+
setAssets((assts) => {
|
|
90
|
+
return [...assts, asset];
|
|
91
|
+
});
|
|
92
|
+
}, []);
|
|
93
|
+
const unregisterAsset = (0, react_1.useCallback)((id) => {
|
|
94
|
+
setAssets((assts) => {
|
|
95
|
+
return assts.filter((a) => a.id !== id);
|
|
96
|
+
});
|
|
97
|
+
}, []);
|
|
98
|
+
const registerFolder = (0, react_1.useCallback)((name, parent) => {
|
|
99
|
+
setFolders((prevFolders) => {
|
|
100
|
+
return [
|
|
101
|
+
...prevFolders,
|
|
102
|
+
{
|
|
103
|
+
name,
|
|
104
|
+
parent,
|
|
105
|
+
},
|
|
106
|
+
];
|
|
107
|
+
});
|
|
108
|
+
}, []);
|
|
109
|
+
const unregisterFolder = (0, react_1.useCallback)((name, parent) => {
|
|
110
|
+
setFolders((prevFolders) => {
|
|
111
|
+
return prevFolders.filter((p) => !(p.name === name && p.parent === parent));
|
|
112
|
+
});
|
|
113
|
+
}, []);
|
|
114
|
+
(0, react_1.useLayoutEffect)(() => {
|
|
115
|
+
if (typeof window !== 'undefined') {
|
|
116
|
+
window.remotion_collectAssets = () => {
|
|
117
|
+
setAssets([]); // clear assets at next render
|
|
118
|
+
return assets;
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
}, [assets]);
|
|
122
|
+
(0, react_1.useImperativeHandle)(exports.compositionsRef, () => {
|
|
123
|
+
return {
|
|
124
|
+
getCompositions: () => currentcompositionsRef.current,
|
|
125
|
+
};
|
|
126
|
+
}, []);
|
|
127
|
+
const contextValue = (0, react_1.useMemo)(() => {
|
|
128
|
+
return {
|
|
129
|
+
compositions,
|
|
130
|
+
registerComposition,
|
|
131
|
+
unregisterComposition,
|
|
132
|
+
currentComposition,
|
|
133
|
+
setCurrentComposition,
|
|
134
|
+
registerSequence,
|
|
135
|
+
unregisterSequence,
|
|
136
|
+
registerAsset,
|
|
137
|
+
unregisterAsset,
|
|
138
|
+
sequences,
|
|
139
|
+
assets,
|
|
140
|
+
folders,
|
|
141
|
+
registerFolder,
|
|
142
|
+
unregisterFolder,
|
|
143
|
+
currentCompositionMetadata,
|
|
144
|
+
setCurrentCompositionMetadata,
|
|
145
|
+
};
|
|
146
|
+
}, [
|
|
147
|
+
compositions,
|
|
148
|
+
registerComposition,
|
|
149
|
+
unregisterComposition,
|
|
150
|
+
currentComposition,
|
|
151
|
+
registerSequence,
|
|
152
|
+
unregisterSequence,
|
|
153
|
+
registerAsset,
|
|
154
|
+
unregisterAsset,
|
|
155
|
+
sequences,
|
|
156
|
+
assets,
|
|
157
|
+
folders,
|
|
158
|
+
registerFolder,
|
|
159
|
+
unregisterFolder,
|
|
160
|
+
currentCompositionMetadata,
|
|
161
|
+
]);
|
|
162
|
+
return ((0, jsx_runtime_1.jsx)(exports.CompositionManager.Provider, { value: contextValue, children: children }));
|
|
163
|
+
};
|
|
164
|
+
exports.CompositionManagerProvider = CompositionManagerProvider;
|
package/dist/Folder.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { FC } from 'react';
|
|
2
|
+
export declare type TFolder = {
|
|
3
|
+
name: string;
|
|
4
|
+
parent: string | null;
|
|
5
|
+
};
|
|
6
|
+
declare type FolderContextType = {
|
|
7
|
+
folderName: string | null;
|
|
8
|
+
parentName: string | null;
|
|
9
|
+
};
|
|
10
|
+
export declare const FolderContext: import("react").Context<FolderContextType>;
|
|
11
|
+
export declare const Folder: FC<{
|
|
12
|
+
name: string;
|
|
13
|
+
children: React.ReactNode;
|
|
14
|
+
}>;
|
|
15
|
+
export {};
|
package/dist/Folder.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Folder = exports.FolderContext = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const CompositionManager_1 = require("./CompositionManager");
|
|
7
|
+
const truthy_1 = require("./truthy");
|
|
8
|
+
const validate_folder_name_1 = require("./validation/validate-folder-name");
|
|
9
|
+
exports.FolderContext = (0, react_1.createContext)({
|
|
10
|
+
folderName: null,
|
|
11
|
+
parentName: null,
|
|
12
|
+
});
|
|
13
|
+
const Folder = ({ name, children, }) => {
|
|
14
|
+
const parent = (0, react_1.useContext)(exports.FolderContext);
|
|
15
|
+
const { registerFolder, unregisterFolder } = (0, react_1.useContext)(CompositionManager_1.CompositionManager);
|
|
16
|
+
(0, validate_folder_name_1.validateFolderName)(name);
|
|
17
|
+
const parentNameArr = [parent.parentName, parent.folderName].filter(truthy_1.truthy);
|
|
18
|
+
const parentName = parentNameArr.length === 0 ? null : parentNameArr.join('/');
|
|
19
|
+
const value = (0, react_1.useMemo)(() => {
|
|
20
|
+
return {
|
|
21
|
+
folderName: name,
|
|
22
|
+
parentName,
|
|
23
|
+
};
|
|
24
|
+
}, [name, parentName]);
|
|
25
|
+
(0, react_1.useEffect)(() => {
|
|
26
|
+
registerFolder(name, parentName);
|
|
27
|
+
return () => {
|
|
28
|
+
unregisterFolder(name, parentName);
|
|
29
|
+
};
|
|
30
|
+
}, [name, parent.folderName, parentName, registerFolder, unregisterFolder]);
|
|
31
|
+
return ((0, jsx_runtime_1.jsx)(exports.FolderContext.Provider, { value: value, children: children }));
|
|
32
|
+
};
|
|
33
|
+
exports.Folder = Folder;
|
package/dist/IFrame.d.ts
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare const IFrame: React.ForwardRefExoticComponent<Pick<React.DetailedHTMLProps<React.IframeHTMLAttributes<HTMLIFrameElement>, HTMLIFrameElement>, "key" | keyof React.IframeHTMLAttributes<HTMLIFrameElement>> & React.RefAttributes<HTMLIFrameElement>>;
|
package/dist/IFrame.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IFrame = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const delay_render_1 = require("./delay-render");
|
|
7
|
+
const IFrameRefForwarding = ({ onLoad, onError, ...props }, ref) => {
|
|
8
|
+
const [handle] = (0, react_1.useState)(() => (0, delay_render_1.delayRender)(`Loading <IFrame> with source ${props.src}`));
|
|
9
|
+
const didLoad = (0, react_1.useCallback)((e) => {
|
|
10
|
+
(0, delay_render_1.continueRender)(handle);
|
|
11
|
+
onLoad === null || onLoad === void 0 ? void 0 : onLoad(e);
|
|
12
|
+
}, [handle, onLoad]);
|
|
13
|
+
const didGetError = (0, react_1.useCallback)((e) => {
|
|
14
|
+
(0, delay_render_1.continueRender)(handle);
|
|
15
|
+
if (onError) {
|
|
16
|
+
onError(e);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
console.error('Error loading iframe:', e, 'Handle the event using the onError() prop to make this message disappear.');
|
|
20
|
+
}
|
|
21
|
+
}, [handle, onError]);
|
|
22
|
+
return (0, jsx_runtime_1.jsx)("iframe", { ...props, ref: ref, onError: didGetError, onLoad: didLoad });
|
|
23
|
+
};
|
|
24
|
+
exports.IFrame = (0, react_1.forwardRef)(IFrameRefForwarding);
|
package/dist/Img.d.ts
ADDED
package/dist/Img.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Img = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const delay_render_1 = require("./delay-render");
|
|
7
|
+
const get_environment_1 = require("./get-environment");
|
|
8
|
+
const prefetch_1 = require("./prefetch");
|
|
9
|
+
const ImgRefForwarding = ({ onError, src, ...props }, ref) => {
|
|
10
|
+
const imageRef = (0, react_1.useRef)(null);
|
|
11
|
+
const environment = (0, get_environment_1.useRemotionEnvironment)();
|
|
12
|
+
(0, react_1.useImperativeHandle)(ref, () => {
|
|
13
|
+
return imageRef.current;
|
|
14
|
+
}, []);
|
|
15
|
+
const actualSrc = (0, prefetch_1.usePreload)(src);
|
|
16
|
+
const didGetError = (0, react_1.useCallback)((e) => {
|
|
17
|
+
var _a;
|
|
18
|
+
if (onError) {
|
|
19
|
+
onError(e);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
console.error('Error loading image with src:', (_a = imageRef.current) === null || _a === void 0 ? void 0 : _a.src, e, 'Handle the event using the onError() prop to make this message disappear.');
|
|
23
|
+
}
|
|
24
|
+
}, [onError]);
|
|
25
|
+
// If image source switches, make new handle
|
|
26
|
+
if (environment === 'rendering') {
|
|
27
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
28
|
+
(0, react_1.useLayoutEffect)(() => {
|
|
29
|
+
if (process.env.NODE_ENV === 'test') {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const newHandle = (0, delay_render_1.delayRender)('Loading <Img> with src=' + src);
|
|
33
|
+
const { current } = imageRef;
|
|
34
|
+
const didLoad = () => {
|
|
35
|
+
(0, delay_render_1.continueRender)(newHandle);
|
|
36
|
+
};
|
|
37
|
+
if (current === null || current === void 0 ? void 0 : current.complete) {
|
|
38
|
+
(0, delay_render_1.continueRender)(newHandle);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
current === null || current === void 0 ? void 0 : current.addEventListener('load', didLoad, { once: true });
|
|
42
|
+
}
|
|
43
|
+
// If tag gets unmounted, clear pending handles because image is not going to load
|
|
44
|
+
return () => {
|
|
45
|
+
current === null || current === void 0 ? void 0 : current.removeEventListener('load', didLoad);
|
|
46
|
+
(0, delay_render_1.continueRender)(newHandle);
|
|
47
|
+
};
|
|
48
|
+
}, [src]);
|
|
49
|
+
}
|
|
50
|
+
return ((0, jsx_runtime_1.jsx)("img", { ...props, ref: imageRef, src: actualSrc, onError: didGetError }));
|
|
51
|
+
};
|
|
52
|
+
exports.Img = (0, react_1.forwardRef)(ImgRefForwarding);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { PropsWithChildren } from 'react';
|
|
2
|
+
export declare type ClipRegion = {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
} | 'hide';
|
|
8
|
+
export declare type TNativeLayersContext = {
|
|
9
|
+
clipRegion: ClipRegion | null;
|
|
10
|
+
setClipRegion: React.Dispatch<React.SetStateAction<ClipRegion | null>>;
|
|
11
|
+
};
|
|
12
|
+
export declare const NativeLayersContext: import("react").Context<TNativeLayersContext>;
|
|
13
|
+
export declare const NativeLayersProvider: React.FC<PropsWithChildren>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NativeLayersProvider = exports.NativeLayersContext = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
exports.NativeLayersContext = (0, react_1.createContext)({
|
|
7
|
+
setClipRegion: () => {
|
|
8
|
+
throw new Error('NativeLayers not set');
|
|
9
|
+
},
|
|
10
|
+
clipRegion: null,
|
|
11
|
+
});
|
|
12
|
+
const NativeLayersProvider = ({ children, }) => {
|
|
13
|
+
const [clipRegion, setClipRegion] = (0, react_1.useState)(null);
|
|
14
|
+
const context = (0, react_1.useMemo)(() => {
|
|
15
|
+
return {
|
|
16
|
+
setClipRegion,
|
|
17
|
+
clipRegion,
|
|
18
|
+
};
|
|
19
|
+
}, [clipRegion, setClipRegion]);
|
|
20
|
+
(0, react_1.useLayoutEffect)(() => {
|
|
21
|
+
if (typeof window !== 'undefined') {
|
|
22
|
+
window.remotion_getClipRegion = () => {
|
|
23
|
+
return clipRegion;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
}, [clipRegion, setClipRegion]);
|
|
27
|
+
return ((0, jsx_runtime_1.jsx)(exports.NativeLayersContext.Provider, { value: context, children: children }));
|
|
28
|
+
};
|
|
29
|
+
exports.NativeLayersProvider = NativeLayersProvider;
|
package/dist/Null.d.ts
ADDED