@remotion/promo-pages 4.0.466 → 4.0.467
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/Homepage.js +1776 -1306
- package/dist/design.js +829 -484
- package/dist/experts/experts-data.js +5 -16
- package/dist/experts.js +667 -322
- package/dist/homepage/Pricing.js +766 -421
- package/dist/prompts/PromptsGallery.js +730 -385
- package/dist/prompts/PromptsShow.js +887 -542
- package/dist/prompts/PromptsSubmit.js +908 -563
- package/dist/team.js +755 -410
- package/dist/template-modal-content.js +808 -463
- package/dist/templates.js +826 -481
- package/package.json +13 -13
- package/dist/prompts/PromptsShow.css +0 -2578
- package/dist/template-modal-content.css +0 -35
package/dist/experts.js
CHANGED
|
@@ -1,26 +1,15 @@
|
|
|
1
|
-
var __create = Object.create;
|
|
2
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
3
1
|
var __defProp = Object.defineProperty;
|
|
4
|
-
var
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
};
|
|
2
|
+
var __returnValue = (v) => v;
|
|
3
|
+
function __exportSetter(name, newValue) {
|
|
4
|
+
this[name] = __returnValue.bind(null, newValue);
|
|
5
|
+
}
|
|
17
6
|
var __export = (target, all) => {
|
|
18
7
|
for (var name in all)
|
|
19
8
|
__defProp(target, name, {
|
|
20
9
|
get: all[name],
|
|
21
10
|
enumerable: true,
|
|
22
11
|
configurable: true,
|
|
23
|
-
set: (
|
|
12
|
+
set: __exportSetter.bind(all, name)
|
|
24
13
|
});
|
|
25
14
|
};
|
|
26
15
|
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
@@ -911,7 +900,7 @@ var experts = [
|
|
|
911
900
|
}
|
|
912
901
|
];
|
|
913
902
|
// src/components/experts/ExpertsPage.tsx
|
|
914
|
-
import { useMemo as
|
|
903
|
+
import { useMemo as useMemo40 } from "react";
|
|
915
904
|
|
|
916
905
|
// ../core/dist/esm/index.mjs
|
|
917
906
|
import { createContext } from "react";
|
|
@@ -1081,84 +1070,97 @@ import {
|
|
|
1081
1070
|
} from "react";
|
|
1082
1071
|
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
1083
1072
|
import { jsx as jsx24 } from "react/jsx-runtime";
|
|
1084
|
-
import { forwardRef as forwardRef10, useCallback as useCallback16, useState as useState16 } from "react";
|
|
1085
|
-
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
1086
1073
|
import {
|
|
1074
|
+
forwardRef as forwardRef10,
|
|
1087
1075
|
useCallback as useCallback17,
|
|
1076
|
+
useContext as useContext33,
|
|
1077
|
+
useEffect as useEffect16,
|
|
1078
|
+
useMemo as useMemo31,
|
|
1079
|
+
useState as useState16
|
|
1080
|
+
} from "react";
|
|
1081
|
+
import {
|
|
1082
|
+
useCallback as useCallback16,
|
|
1088
1083
|
useContext as useContext32,
|
|
1089
1084
|
useImperativeHandle as useImperativeHandle6,
|
|
1090
1085
|
useLayoutEffect as useLayoutEffect10,
|
|
1091
1086
|
useRef as useRef21
|
|
1092
1087
|
} from "react";
|
|
1088
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
1093
1089
|
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
1090
|
+
import { forwardRef as forwardRef11, useCallback as useCallback18, useState as useState17 } from "react";
|
|
1091
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
1094
1092
|
import { createRef as createRef3 } from "react";
|
|
1095
1093
|
import React28 from "react";
|
|
1096
1094
|
import {
|
|
1097
|
-
useCallback as
|
|
1095
|
+
useCallback as useCallback19,
|
|
1098
1096
|
useImperativeHandle as useImperativeHandle7,
|
|
1099
|
-
useMemo as
|
|
1097
|
+
useMemo as useMemo32,
|
|
1100
1098
|
useRef as useRef22,
|
|
1101
|
-
useState as
|
|
1099
|
+
useState as useState18
|
|
1102
1100
|
} from "react";
|
|
1103
|
-
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
1104
|
-
import React29 from "react";
|
|
1105
|
-
import { useMemo as useMemo33 } from "react";
|
|
1106
|
-
import { createContext as createContext23, useContext as useContext33, useMemo as useMemo32 } from "react";
|
|
1107
1101
|
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
1102
|
+
import React29 from "react";
|
|
1103
|
+
import { useMemo as useMemo34 } from "react";
|
|
1104
|
+
import { createContext as createContext23, useContext as useContext34, useMemo as useMemo33 } from "react";
|
|
1108
1105
|
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
1106
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
1109
1107
|
import React31 from "react";
|
|
1110
1108
|
import React32, { createContext as createContext24 } from "react";
|
|
1111
|
-
import { useCallback as
|
|
1109
|
+
import { useCallback as useCallback22 } from "react";
|
|
1112
1110
|
import {
|
|
1113
|
-
useCallback as
|
|
1114
|
-
useContext as
|
|
1115
|
-
useEffect as
|
|
1111
|
+
useCallback as useCallback20,
|
|
1112
|
+
useContext as useContext35,
|
|
1113
|
+
useEffect as useEffect17,
|
|
1116
1114
|
useLayoutEffect as useLayoutEffect11,
|
|
1117
|
-
useMemo as
|
|
1118
|
-
useState as
|
|
1115
|
+
useMemo as useMemo35,
|
|
1116
|
+
useState as useState19
|
|
1119
1117
|
} from "react";
|
|
1120
|
-
import { jsx as
|
|
1118
|
+
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
1121
1119
|
import React34, {
|
|
1122
|
-
forwardRef as
|
|
1123
|
-
useContext as
|
|
1124
|
-
useEffect as
|
|
1120
|
+
forwardRef as forwardRef12,
|
|
1121
|
+
useContext as useContext36,
|
|
1122
|
+
useEffect as useEffect19,
|
|
1125
1123
|
useImperativeHandle as useImperativeHandle8,
|
|
1126
|
-
useMemo as
|
|
1124
|
+
useMemo as useMemo36,
|
|
1127
1125
|
useRef as useRef23,
|
|
1128
|
-
useState as
|
|
1129
|
-
useCallback as
|
|
1126
|
+
useState as useState20,
|
|
1127
|
+
useCallback as useCallback21
|
|
1130
1128
|
} from "react";
|
|
1131
|
-
import { useEffect as
|
|
1132
|
-
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
1129
|
+
import { useEffect as useEffect18 } from "react";
|
|
1133
1130
|
import { jsx as jsx32 } from "react/jsx-runtime";
|
|
1134
|
-
import React36, { useMemo as useMemo36 } from "react";
|
|
1135
1131
|
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
1136
|
-
import
|
|
1132
|
+
import React36, { useMemo as useMemo37 } from "react";
|
|
1133
|
+
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
1134
|
+
import { Children, forwardRef as forwardRef13, useMemo as useMemo38 } from "react";
|
|
1137
1135
|
import React37 from "react";
|
|
1138
1136
|
import React38, { createContext as createContext25 } from "react";
|
|
1139
|
-
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
1140
1137
|
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
1138
|
+
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
1141
1139
|
import React40 from "react";
|
|
1142
|
-
import { forwardRef as
|
|
1140
|
+
import { forwardRef as forwardRef15, useCallback as useCallback23, useContext as useContext38 } from "react";
|
|
1143
1141
|
import {
|
|
1144
|
-
forwardRef as
|
|
1145
|
-
useContext as
|
|
1146
|
-
useEffect as
|
|
1142
|
+
forwardRef as forwardRef14,
|
|
1143
|
+
useContext as useContext37,
|
|
1144
|
+
useEffect as useEffect20,
|
|
1147
1145
|
useImperativeHandle as useImperativeHandle9,
|
|
1148
1146
|
useLayoutEffect as useLayoutEffect12,
|
|
1149
|
-
useMemo as
|
|
1147
|
+
useMemo as useMemo39,
|
|
1150
1148
|
useRef as useRef24
|
|
1151
1149
|
} from "react";
|
|
1152
|
-
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
1153
1150
|
import { jsx as jsx37 } from "react/jsx-runtime";
|
|
1151
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
1154
1152
|
var __defProp2 = Object.defineProperty;
|
|
1153
|
+
var __returnValue2 = (v) => v;
|
|
1154
|
+
function __exportSetter2(name, newValue) {
|
|
1155
|
+
this[name] = __returnValue2.bind(null, newValue);
|
|
1156
|
+
}
|
|
1155
1157
|
var __export2 = (target, all) => {
|
|
1156
1158
|
for (var name in all)
|
|
1157
1159
|
__defProp2(target, name, {
|
|
1158
1160
|
get: all[name],
|
|
1159
1161
|
enumerable: true,
|
|
1160
1162
|
configurable: true,
|
|
1161
|
-
set: (
|
|
1163
|
+
set: __exportSetter2.bind(all, name)
|
|
1162
1164
|
});
|
|
1163
1165
|
};
|
|
1164
1166
|
if (typeof createContext !== "function") {
|
|
@@ -2273,7 +2275,7 @@ var getComponentsToAddStacksTo = () => componentsToAddStacksTo;
|
|
|
2273
2275
|
var addSequenceStackTraces = (component) => {
|
|
2274
2276
|
componentsToAddStacksTo.push(component);
|
|
2275
2277
|
};
|
|
2276
|
-
var VERSION = "4.0.
|
|
2278
|
+
var VERSION = "4.0.467";
|
|
2277
2279
|
var checkMultipleRemotionVersions = () => {
|
|
2278
2280
|
if (typeof globalThis === "undefined") {
|
|
2279
2281
|
return;
|
|
@@ -3595,6 +3597,54 @@ var SequenceRefForwardingFunction = (props, ref) => {
|
|
|
3595
3597
|
};
|
|
3596
3598
|
var SequenceInner = forwardRef3(SequenceRefForwardingFunction);
|
|
3597
3599
|
var Sequence = wrapInSchema(SequenceInner, sequenceSchema);
|
|
3600
|
+
var calculateImageFit = (fit, imageSize, canvasSize) => {
|
|
3601
|
+
switch (fit) {
|
|
3602
|
+
case "fill": {
|
|
3603
|
+
return [
|
|
3604
|
+
0,
|
|
3605
|
+
0,
|
|
3606
|
+
imageSize.width,
|
|
3607
|
+
imageSize.height,
|
|
3608
|
+
0,
|
|
3609
|
+
0,
|
|
3610
|
+
canvasSize.width,
|
|
3611
|
+
canvasSize.height
|
|
3612
|
+
];
|
|
3613
|
+
}
|
|
3614
|
+
case "contain": {
|
|
3615
|
+
const ratio = Math.min(canvasSize.width / imageSize.width, canvasSize.height / imageSize.height);
|
|
3616
|
+
const centerX = (canvasSize.width - imageSize.width * ratio) / 2;
|
|
3617
|
+
const centerY = (canvasSize.height - imageSize.height * ratio) / 2;
|
|
3618
|
+
return [
|
|
3619
|
+
0,
|
|
3620
|
+
0,
|
|
3621
|
+
imageSize.width,
|
|
3622
|
+
imageSize.height,
|
|
3623
|
+
centerX,
|
|
3624
|
+
centerY,
|
|
3625
|
+
imageSize.width * ratio,
|
|
3626
|
+
imageSize.height * ratio
|
|
3627
|
+
];
|
|
3628
|
+
}
|
|
3629
|
+
case "cover": {
|
|
3630
|
+
const ratio = Math.max(canvasSize.width / imageSize.width, canvasSize.height / imageSize.height);
|
|
3631
|
+
const centerX = (canvasSize.width - imageSize.width * ratio) / 2;
|
|
3632
|
+
const centerY = (canvasSize.height - imageSize.height * ratio) / 2;
|
|
3633
|
+
return [
|
|
3634
|
+
0,
|
|
3635
|
+
0,
|
|
3636
|
+
imageSize.width,
|
|
3637
|
+
imageSize.height,
|
|
3638
|
+
centerX,
|
|
3639
|
+
centerY,
|
|
3640
|
+
imageSize.width * ratio,
|
|
3641
|
+
imageSize.height * ratio
|
|
3642
|
+
];
|
|
3643
|
+
}
|
|
3644
|
+
default:
|
|
3645
|
+
throw new Error("Unknown fit: " + fit);
|
|
3646
|
+
}
|
|
3647
|
+
};
|
|
3598
3648
|
var WEBGL_CONTEXT_DOCS_URL = "https://remotion.dev/docs/troubleshooting/webgl2-context";
|
|
3599
3649
|
var webGlContextErrorMessage = (versionLabel, effectName) => `Failed to acquire ${versionLabel} context for ${effectName}. ` + 'Pass --gl=angle when using the CLI, set chromiumOptions: { gl: "angle" } when using SSR APIs, ' + 'or set "OpenGL render backend" to "angle" in the Advanced section when rendering in the Studio. ' + `See ${WEBGL_CONTEXT_DOCS_URL}`;
|
|
3600
3650
|
var createWebGLContextError = (effectName) => new Error(webGlContextErrorMessage("WebGL", effectName));
|
|
@@ -3847,54 +3897,6 @@ var useEffectChainState = () => {
|
|
|
3847
3897
|
}
|
|
3848
3898
|
}), []);
|
|
3849
3899
|
};
|
|
3850
|
-
var calcArgs = (fit, frameSize, canvasSize) => {
|
|
3851
|
-
switch (fit) {
|
|
3852
|
-
case "fill": {
|
|
3853
|
-
return [
|
|
3854
|
-
0,
|
|
3855
|
-
0,
|
|
3856
|
-
frameSize.width,
|
|
3857
|
-
frameSize.height,
|
|
3858
|
-
0,
|
|
3859
|
-
0,
|
|
3860
|
-
canvasSize.width,
|
|
3861
|
-
canvasSize.height
|
|
3862
|
-
];
|
|
3863
|
-
}
|
|
3864
|
-
case "contain": {
|
|
3865
|
-
const ratio = Math.min(canvasSize.width / frameSize.width, canvasSize.height / frameSize.height);
|
|
3866
|
-
const centerX = (canvasSize.width - frameSize.width * ratio) / 2;
|
|
3867
|
-
const centerY = (canvasSize.height - frameSize.height * ratio) / 2;
|
|
3868
|
-
return [
|
|
3869
|
-
0,
|
|
3870
|
-
0,
|
|
3871
|
-
frameSize.width,
|
|
3872
|
-
frameSize.height,
|
|
3873
|
-
centerX,
|
|
3874
|
-
centerY,
|
|
3875
|
-
frameSize.width * ratio,
|
|
3876
|
-
frameSize.height * ratio
|
|
3877
|
-
];
|
|
3878
|
-
}
|
|
3879
|
-
case "cover": {
|
|
3880
|
-
const ratio = Math.max(canvasSize.width / frameSize.width, canvasSize.height / frameSize.height);
|
|
3881
|
-
const centerX = (canvasSize.width - frameSize.width * ratio) / 2;
|
|
3882
|
-
const centerY = (canvasSize.height - frameSize.height * ratio) / 2;
|
|
3883
|
-
return [
|
|
3884
|
-
0,
|
|
3885
|
-
0,
|
|
3886
|
-
frameSize.width,
|
|
3887
|
-
frameSize.height,
|
|
3888
|
-
centerX,
|
|
3889
|
-
centerY,
|
|
3890
|
-
frameSize.width * ratio,
|
|
3891
|
-
frameSize.height * ratio
|
|
3892
|
-
];
|
|
3893
|
-
}
|
|
3894
|
-
default:
|
|
3895
|
-
throw new Error("Unknown fit: " + fit);
|
|
3896
|
-
}
|
|
3897
|
-
};
|
|
3898
3900
|
var CanvasRefForwardingFunction = ({ width, height, fit, className, style, effects }, ref) => {
|
|
3899
3901
|
const canvasRef = useRef8(null);
|
|
3900
3902
|
const chainState = useEffectChainState();
|
|
@@ -3904,7 +3906,7 @@ var CanvasRefForwardingFunction = ({ width, height, fit, className, style, effec
|
|
|
3904
3906
|
}
|
|
3905
3907
|
return document.createElement("canvas");
|
|
3906
3908
|
}, []);
|
|
3907
|
-
const draw = useCallback6(
|
|
3909
|
+
const draw = useCallback6((imageData) => {
|
|
3908
3910
|
const canvas = canvasRef.current;
|
|
3909
3911
|
const canvasWidth = width ?? imageData.displayWidth;
|
|
3910
3912
|
const canvasHeight = height ?? imageData.displayHeight;
|
|
@@ -3920,7 +3922,7 @@ var CanvasRefForwardingFunction = ({ width, height, fit, className, style, effec
|
|
|
3920
3922
|
if (!sourceCtx) {
|
|
3921
3923
|
throw new Error("Could not get 2d context for source canvas");
|
|
3922
3924
|
}
|
|
3923
|
-
sourceCtx.drawImage(imageData, ...
|
|
3925
|
+
sourceCtx.drawImage(imageData, ...calculateImageFit(fit, {
|
|
3924
3926
|
height: imageData.displayHeight,
|
|
3925
3927
|
width: imageData.displayWidth
|
|
3926
3928
|
}, {
|
|
@@ -5428,9 +5430,43 @@ var useSingletonAudioContext = ({
|
|
|
5428
5430
|
gainNode.connect(audioContext.destination);
|
|
5429
5431
|
Log.trace({ logLevel, tag: "audio" }, "Creating new audio context");
|
|
5430
5432
|
audioContext.suspend();
|
|
5433
|
+
let transitionTarget = null;
|
|
5434
|
+
const getState = () => {
|
|
5435
|
+
const nativeState = audioContext.state;
|
|
5436
|
+
if (transitionTarget === "running" && nativeState !== "running") {
|
|
5437
|
+
return "suspended-to-running";
|
|
5438
|
+
}
|
|
5439
|
+
if (transitionTarget === "suspended" && nativeState !== "suspended") {
|
|
5440
|
+
return "running-to-suspended";
|
|
5441
|
+
}
|
|
5442
|
+
return nativeState;
|
|
5443
|
+
};
|
|
5444
|
+
const resume = () => {
|
|
5445
|
+
transitionTarget = "running";
|
|
5446
|
+
const promise = audioContext.resume();
|
|
5447
|
+
promise.finally(() => {
|
|
5448
|
+
if (transitionTarget === "running") {
|
|
5449
|
+
transitionTarget = null;
|
|
5450
|
+
}
|
|
5451
|
+
});
|
|
5452
|
+
return promise;
|
|
5453
|
+
};
|
|
5454
|
+
const suspend = () => {
|
|
5455
|
+
transitionTarget = "suspended";
|
|
5456
|
+
const promise = audioContext.suspend();
|
|
5457
|
+
promise.finally(() => {
|
|
5458
|
+
if (transitionTarget === "suspended") {
|
|
5459
|
+
transitionTarget = null;
|
|
5460
|
+
}
|
|
5461
|
+
});
|
|
5462
|
+
return promise;
|
|
5463
|
+
};
|
|
5431
5464
|
return {
|
|
5432
5465
|
audioContext,
|
|
5433
|
-
gainNode
|
|
5466
|
+
gainNode,
|
|
5467
|
+
getState,
|
|
5468
|
+
resume,
|
|
5469
|
+
suspend
|
|
5434
5470
|
};
|
|
5435
5471
|
}, [logLevel, latencyHint, env.isRendering, audioEnabled]);
|
|
5436
5472
|
return context;
|
|
@@ -5483,6 +5519,15 @@ var didPropChange = (key, newProp, prevProp) => {
|
|
|
5483
5519
|
};
|
|
5484
5520
|
var SharedAudioContext = createContext21(null);
|
|
5485
5521
|
var SharedAudioTagsContext = createContext21(null);
|
|
5522
|
+
var shouldSaveForLater = (state) => {
|
|
5523
|
+
if (state === "suspended" || state === "running-to-suspended" || state === "interrupted") {
|
|
5524
|
+
return true;
|
|
5525
|
+
}
|
|
5526
|
+
if (state === "running" || state === "suspended-to-running") {
|
|
5527
|
+
return false;
|
|
5528
|
+
}
|
|
5529
|
+
throw new Error(`Unexpected audio context state: ${state}`);
|
|
5530
|
+
};
|
|
5486
5531
|
var SharedAudioContextProvider = ({ children, audioLatencyHint, audioEnabled }) => {
|
|
5487
5532
|
const logLevel = useLogLevel();
|
|
5488
5533
|
const ctxAndGain = useSingletonAudioContext({
|
|
@@ -5518,7 +5563,6 @@ var SharedAudioContextProvider = ({ children, audioLatencyHint, audioEnabled })
|
|
|
5518
5563
|
return ({
|
|
5519
5564
|
node,
|
|
5520
5565
|
mediaTimestamp,
|
|
5521
|
-
currentTime,
|
|
5522
5566
|
scheduledTime,
|
|
5523
5567
|
duration,
|
|
5524
5568
|
offset,
|
|
@@ -5527,7 +5571,14 @@ var SharedAudioContextProvider = ({ children, audioLatencyHint, audioEnabled })
|
|
|
5527
5571
|
if (!ctxAndGain) {
|
|
5528
5572
|
throw new Error("Audio context not found");
|
|
5529
5573
|
}
|
|
5530
|
-
const
|
|
5574
|
+
const currentState = ctxAndGain.getState();
|
|
5575
|
+
if (currentState === "closed") {
|
|
5576
|
+
return {
|
|
5577
|
+
type: "not-started",
|
|
5578
|
+
reason: "audio context is closed"
|
|
5579
|
+
};
|
|
5580
|
+
}
|
|
5581
|
+
const saveForLater = shouldSaveForLater(currentState);
|
|
5531
5582
|
if (duration > 0) {
|
|
5532
5583
|
if (saveForLater) {
|
|
5533
5584
|
nodesToResume.current.set(node, {
|
|
@@ -5547,7 +5598,7 @@ var SharedAudioContextProvider = ({ children, audioLatencyHint, audioEnabled })
|
|
|
5547
5598
|
const prev = prevEndTimes.current;
|
|
5548
5599
|
const scheduledMismatch = prev.scheduledEndTime !== null && Math.abs(scheduledTime - prev.scheduledEndTime) > 0.001;
|
|
5549
5600
|
const mediaMismatch = prev.mediaEndTime !== null && Math.abs(mediaTime - prev.mediaEndTime) > 0.001;
|
|
5550
|
-
Log.verbose({ logLevel, tag: "audio-scheduling" }, "scheduled %c%s%c %s %c%s%c %s %c%s%c %s %s %s %s %s", scheduledMismatch ? "color: red; font-weight: bold" : "", scheduledTime.toFixed(4), "", scheduledEndTime.toFixed(4), mediaMismatch ? "color: red; font-weight: bold" : "", mediaTime.toFixed(4), "", mediaEndTime.toFixed(4), duration < 0 ? "color: red; font-weight: bold" : timeDiff < 0 ? "color: red; font-weight: bold" : "color: blue; font-weight: bold", duration < 0 ? "missed " + Math.abs(offset).toFixed(2) + "s" : Math.abs(timeDiff).toFixed(2) + (timeDiff < 0 ? " delay" : " ahead"), "", "current=" +
|
|
5601
|
+
Log.verbose({ logLevel, tag: "audio-scheduling" }, "scheduled %c%s%c %s %c%s%c %s %c%s%c %s %s %s %s %s", scheduledMismatch ? "color: red; font-weight: bold" : "", scheduledTime.toFixed(4), "", scheduledEndTime.toFixed(4), mediaMismatch ? "color: red; font-weight: bold" : "", mediaTime.toFixed(4), "", mediaEndTime.toFixed(4), duration < 0 ? "color: red; font-weight: bold" : timeDiff < 0 ? "color: red; font-weight: bold" : "color: blue; font-weight: bold", duration < 0 ? "missed " + Math.abs(offset).toFixed(2) + "s" : Math.abs(timeDiff).toFixed(2) + (timeDiff < 0 ? " delay" : " ahead"), "", "current=" + ctxAndGain.audioContext.currentTime.toFixed(4), "offset=" + offset.toFixed(4), "latency=" + latency.toFixed(4), "state=" + ctxAndGain.audioContext.state, originalUnloopedMediaTimestamp !== mediaTime ? "original_ts=" + originalUnloopedMediaTimestamp.toFixed(4) : "", "action=" + (saveForLater ? "schedule" : "start"), "");
|
|
5551
5602
|
prev.scheduledEndTime = scheduledEndTime;
|
|
5552
5603
|
prev.mediaEndTime = mediaEndTime;
|
|
5553
5604
|
return duration > 0 ? {
|
|
@@ -5574,7 +5625,7 @@ var SharedAudioContextProvider = ({ children, audioLatencyHint, audioEnabled })
|
|
|
5574
5625
|
node.start(r.scheduledTime, r.offset, r.duration);
|
|
5575
5626
|
});
|
|
5576
5627
|
nodesToResume.current.clear();
|
|
5577
|
-
const resumePromise = ctxAndGain.
|
|
5628
|
+
const resumePromise = ctxAndGain.resume();
|
|
5578
5629
|
isResuming.current = new Promise((resolve) => {
|
|
5579
5630
|
waitUntilActuallyResumed(ctxAndGain.audioContext, logLevel).then(resolve);
|
|
5580
5631
|
resumePromise.catch((err) => {
|
|
@@ -5591,17 +5642,18 @@ var SharedAudioContextProvider = ({ children, audioLatencyHint, audioEnabled })
|
|
|
5591
5642
|
}, []);
|
|
5592
5643
|
const suspend = useCallback10(() => {
|
|
5593
5644
|
if (!ctxAndGain) {
|
|
5594
|
-
return;
|
|
5645
|
+
return Promise.resolve();
|
|
5595
5646
|
}
|
|
5596
5647
|
if (!audioContextIsPlayingEventually.current) {
|
|
5597
|
-
return;
|
|
5648
|
+
return Promise.resolve();
|
|
5598
5649
|
}
|
|
5599
5650
|
audioContextIsPlayingEventually.current = false;
|
|
5600
|
-
ctxAndGain.
|
|
5651
|
+
return ctxAndGain.suspend();
|
|
5601
5652
|
}, [ctxAndGain]);
|
|
5602
5653
|
const audioContextValue = useMemo23(() => {
|
|
5603
5654
|
return {
|
|
5604
5655
|
audioContext: ctxAndGain?.audioContext ?? null,
|
|
5656
|
+
getAudioContextState: () => ctxAndGain?.getState() ?? null,
|
|
5605
5657
|
gainNode: ctxAndGain?.gainNode ?? null,
|
|
5606
5658
|
audioSyncAnchor,
|
|
5607
5659
|
audioSyncAnchorEmitter,
|
|
@@ -6093,7 +6145,8 @@ var getTimelineDuration = ({
|
|
|
6093
6145
|
trimAfter
|
|
6094
6146
|
});
|
|
6095
6147
|
if (parentSequenceDurationInFrames !== null) {
|
|
6096
|
-
|
|
6148
|
+
const cappedDuration = Math.min(parentSequenceDurationInFrames * playbackRate, mediaDuration);
|
|
6149
|
+
return Number(cappedDuration.toFixed(10));
|
|
6097
6150
|
}
|
|
6098
6151
|
return mediaDuration;
|
|
6099
6152
|
};
|
|
@@ -7696,41 +7749,6 @@ var AudioRefForwardingFunction = (props, ref) => {
|
|
|
7696
7749
|
var Html5Audio = forwardRef9(AudioRefForwardingFunction);
|
|
7697
7750
|
addSequenceStackTraces(Html5Audio);
|
|
7698
7751
|
var Audio = Html5Audio;
|
|
7699
|
-
var kSplineTableSize = 11;
|
|
7700
|
-
var kSampleStepSize = 1 / (kSplineTableSize - 1);
|
|
7701
|
-
var IFrameRefForwarding = ({
|
|
7702
|
-
onLoad,
|
|
7703
|
-
onError,
|
|
7704
|
-
delayRenderRetries,
|
|
7705
|
-
delayRenderTimeoutInMilliseconds,
|
|
7706
|
-
...props2
|
|
7707
|
-
}, ref) => {
|
|
7708
|
-
const { delayRender: delayRender2, continueRender: continueRender2 } = useDelayRender();
|
|
7709
|
-
const [handle] = useState16(() => delayRender2(`Loading <IFrame> with source ${props2.src}`, {
|
|
7710
|
-
retries: delayRenderRetries ?? undefined,
|
|
7711
|
-
timeoutInMilliseconds: delayRenderTimeoutInMilliseconds ?? undefined
|
|
7712
|
-
}));
|
|
7713
|
-
const didLoad = useCallback16((e) => {
|
|
7714
|
-
continueRender2(handle);
|
|
7715
|
-
onLoad?.(e);
|
|
7716
|
-
}, [handle, onLoad, continueRender2]);
|
|
7717
|
-
const didGetError = useCallback16((e) => {
|
|
7718
|
-
continueRender2(handle);
|
|
7719
|
-
if (onError) {
|
|
7720
|
-
onError(e);
|
|
7721
|
-
} else {
|
|
7722
|
-
console.error("Error loading iframe:", e, "Handle the event using the onError() prop to make this message disappear.");
|
|
7723
|
-
}
|
|
7724
|
-
}, [handle, onError, continueRender2]);
|
|
7725
|
-
return /* @__PURE__ */ jsx25("iframe", {
|
|
7726
|
-
referrerPolicy: "strict-origin-when-cross-origin",
|
|
7727
|
-
...props2,
|
|
7728
|
-
ref,
|
|
7729
|
-
onError: didGetError,
|
|
7730
|
-
onLoad: didLoad
|
|
7731
|
-
});
|
|
7732
|
-
};
|
|
7733
|
-
var IFrame = forwardRef10(IFrameRefForwarding);
|
|
7734
7752
|
function exponentialBackoff(errorCount) {
|
|
7735
7753
|
return 1000 * 2 ** (errorCount - 1);
|
|
7736
7754
|
}
|
|
@@ -7749,6 +7767,7 @@ var ImgContent = ({
|
|
|
7749
7767
|
delayRenderTimeoutInMilliseconds,
|
|
7750
7768
|
onImageFrame,
|
|
7751
7769
|
crossOrigin,
|
|
7770
|
+
decoding,
|
|
7752
7771
|
ref,
|
|
7753
7772
|
...props2
|
|
7754
7773
|
}) => {
|
|
@@ -7764,7 +7783,7 @@ var ImgContent = ({
|
|
|
7764
7783
|
return imageRef.current;
|
|
7765
7784
|
}, []);
|
|
7766
7785
|
const actualSrc = usePreload(src);
|
|
7767
|
-
const retryIn =
|
|
7786
|
+
const retryIn = useCallback16((timeout) => {
|
|
7768
7787
|
if (!imageRef.current) {
|
|
7769
7788
|
return;
|
|
7770
7789
|
}
|
|
@@ -7782,7 +7801,7 @@ var ImgContent = ({
|
|
|
7782
7801
|
}, timeout);
|
|
7783
7802
|
}, []);
|
|
7784
7803
|
const { delayRender: delayRender2, continueRender: continueRender2, cancelRender: cancelRender2 } = useDelayRender();
|
|
7785
|
-
const didGetError =
|
|
7804
|
+
const didGetError = useCallback16((e) => {
|
|
7786
7805
|
if (!errors.current) {
|
|
7787
7806
|
return;
|
|
7788
7807
|
}
|
|
@@ -7870,18 +7889,18 @@ var ImgContent = ({
|
|
|
7870
7889
|
delayRender2
|
|
7871
7890
|
]);
|
|
7872
7891
|
}
|
|
7873
|
-
const { isClientSideRendering } = useRemotionEnvironment();
|
|
7892
|
+
const { isClientSideRendering, isRendering } = useRemotionEnvironment();
|
|
7874
7893
|
const crossOriginValue = getCrossOriginValue({
|
|
7875
7894
|
crossOrigin,
|
|
7876
7895
|
requestsVideoFrame: false,
|
|
7877
7896
|
isClientSideRendering
|
|
7878
7897
|
});
|
|
7879
|
-
return /* @__PURE__ */
|
|
7898
|
+
return /* @__PURE__ */ jsx25("img", {
|
|
7880
7899
|
...props2,
|
|
7881
7900
|
ref: imageRef,
|
|
7882
7901
|
crossOrigin: crossOriginValue,
|
|
7883
7902
|
onError: didGetError,
|
|
7884
|
-
decoding: "sync"
|
|
7903
|
+
decoding: isRendering ? "sync" : decoding
|
|
7885
7904
|
});
|
|
7886
7905
|
};
|
|
7887
7906
|
var ImgInner = ({
|
|
@@ -7898,7 +7917,7 @@ var ImgInner = ({
|
|
|
7898
7917
|
if (!src) {
|
|
7899
7918
|
throw new Error('No "src" prop was passed to <Img>.');
|
|
7900
7919
|
}
|
|
7901
|
-
return /* @__PURE__ */
|
|
7920
|
+
return /* @__PURE__ */ jsx25(Sequence, {
|
|
7902
7921
|
layout: "none",
|
|
7903
7922
|
from: from ?? 0,
|
|
7904
7923
|
durationInFrames: durationInFrames ?? Infinity,
|
|
@@ -7909,7 +7928,7 @@ var ImgInner = ({
|
|
|
7909
7928
|
_experimentalControls: controls,
|
|
7910
7929
|
showInTimeline: showInTimeline ?? true,
|
|
7911
7930
|
hidden,
|
|
7912
|
-
children: /* @__PURE__ */
|
|
7931
|
+
children: /* @__PURE__ */ jsx25(ImgContent, {
|
|
7913
7932
|
src,
|
|
7914
7933
|
...props2
|
|
7915
7934
|
})
|
|
@@ -7921,6 +7940,331 @@ var imgSchema = {
|
|
|
7921
7940
|
};
|
|
7922
7941
|
var Img = wrapInSchema(ImgInner, imgSchema);
|
|
7923
7942
|
addSequenceStackTraces(Img);
|
|
7943
|
+
var canvasImageSchema = {
|
|
7944
|
+
fit: {
|
|
7945
|
+
type: "enum",
|
|
7946
|
+
default: "fill",
|
|
7947
|
+
description: "Fit",
|
|
7948
|
+
variants: {
|
|
7949
|
+
fill: {},
|
|
7950
|
+
contain: {},
|
|
7951
|
+
cover: {}
|
|
7952
|
+
}
|
|
7953
|
+
},
|
|
7954
|
+
...sequenceVisualStyleSchema,
|
|
7955
|
+
hidden: hiddenField
|
|
7956
|
+
};
|
|
7957
|
+
var makeAbortError = () => {
|
|
7958
|
+
if (typeof DOMException !== "undefined") {
|
|
7959
|
+
return new DOMException("Image loading was aborted", "AbortError");
|
|
7960
|
+
}
|
|
7961
|
+
const error2 = new Error("Image loading was aborted");
|
|
7962
|
+
error2.name = "AbortError";
|
|
7963
|
+
return error2;
|
|
7964
|
+
};
|
|
7965
|
+
var loadImage = ({
|
|
7966
|
+
src,
|
|
7967
|
+
signal
|
|
7968
|
+
}) => {
|
|
7969
|
+
return new Promise((resolve, reject) => {
|
|
7970
|
+
const image = new Image;
|
|
7971
|
+
let settled = false;
|
|
7972
|
+
function cleanup() {
|
|
7973
|
+
image.onload = null;
|
|
7974
|
+
image.onerror = null;
|
|
7975
|
+
}
|
|
7976
|
+
function settle(callback) {
|
|
7977
|
+
if (settled) {
|
|
7978
|
+
return;
|
|
7979
|
+
}
|
|
7980
|
+
settled = true;
|
|
7981
|
+
cleanup();
|
|
7982
|
+
callback();
|
|
7983
|
+
}
|
|
7984
|
+
function onAbort() {
|
|
7985
|
+
settle(() => reject(makeAbortError()));
|
|
7986
|
+
}
|
|
7987
|
+
image.onload = () => {
|
|
7988
|
+
Promise.resolve(image.decode?.()).catch(() => {
|
|
7989
|
+
return;
|
|
7990
|
+
}).then(() => {
|
|
7991
|
+
const imageWidth = image.naturalWidth || image.width;
|
|
7992
|
+
const imageHeight = image.naturalHeight || image.height;
|
|
7993
|
+
if (imageWidth <= 0 || imageHeight <= 0) {
|
|
7994
|
+
settle(() => reject(new Error(`Could not determine dimensions for <CanvasImage> with src="${truncateSrcForLabel(src)}"`)));
|
|
7995
|
+
return;
|
|
7996
|
+
}
|
|
7997
|
+
settle(() => resolve({ element: image, width: imageWidth, height: imageHeight }));
|
|
7998
|
+
});
|
|
7999
|
+
};
|
|
8000
|
+
image.onerror = () => {
|
|
8001
|
+
settle(() => reject(new Error(`Could not load <CanvasImage> with src="${truncateSrcForLabel(src)}"`)));
|
|
8002
|
+
};
|
|
8003
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
8004
|
+
if (signal.aborted) {
|
|
8005
|
+
onAbort();
|
|
8006
|
+
return;
|
|
8007
|
+
}
|
|
8008
|
+
image.crossOrigin = "anonymous";
|
|
8009
|
+
image.src = src;
|
|
8010
|
+
});
|
|
8011
|
+
};
|
|
8012
|
+
function exponentialBackoff2(errorCount) {
|
|
8013
|
+
return 1000 * 2 ** (errorCount - 1);
|
|
8014
|
+
}
|
|
8015
|
+
var CanvasImageContent = forwardRef10(({
|
|
8016
|
+
src,
|
|
8017
|
+
width,
|
|
8018
|
+
height,
|
|
8019
|
+
fit = "fill",
|
|
8020
|
+
effects,
|
|
8021
|
+
controls,
|
|
8022
|
+
onError,
|
|
8023
|
+
className,
|
|
8024
|
+
style,
|
|
8025
|
+
id,
|
|
8026
|
+
pauseWhenLoading,
|
|
8027
|
+
maxRetries = 2,
|
|
8028
|
+
delayRenderRetries,
|
|
8029
|
+
delayRenderTimeoutInMilliseconds
|
|
8030
|
+
}, ref) => {
|
|
8031
|
+
const { delayRender: delayRender2, continueRender: continueRender2, cancelRender: cancelRender2 } = useDelayRender();
|
|
8032
|
+
const { delayPlayback } = useBufferState();
|
|
8033
|
+
const [outputCanvas, setOutputCanvas] = useState16(null);
|
|
8034
|
+
const actualSrc = usePreload(src);
|
|
8035
|
+
const chainState = useEffectChainState();
|
|
8036
|
+
const memoizedEffects = useMemoizedEffects({
|
|
8037
|
+
effects,
|
|
8038
|
+
overrideId: controls?.overrideId ?? null
|
|
8039
|
+
});
|
|
8040
|
+
const sequenceContext = useContext33(SequenceContext);
|
|
8041
|
+
const sourceCanvas = useMemo31(() => {
|
|
8042
|
+
if (typeof document === "undefined") {
|
|
8043
|
+
return null;
|
|
8044
|
+
}
|
|
8045
|
+
return document.createElement("canvas");
|
|
8046
|
+
}, []);
|
|
8047
|
+
const canvasRef = useCallback17((canvas) => {
|
|
8048
|
+
setOutputCanvas(canvas);
|
|
8049
|
+
if (typeof ref === "function") {
|
|
8050
|
+
ref(canvas);
|
|
8051
|
+
} else if (ref) {
|
|
8052
|
+
ref.current = canvas;
|
|
8053
|
+
}
|
|
8054
|
+
}, [ref]);
|
|
8055
|
+
useEffect16(() => {
|
|
8056
|
+
if (!outputCanvas || !sourceCanvas) {
|
|
8057
|
+
return;
|
|
8058
|
+
}
|
|
8059
|
+
const isPremounting = Boolean(sequenceContext?.premounting);
|
|
8060
|
+
const isPostmounting = Boolean(sequenceContext?.postmounting);
|
|
8061
|
+
const handle = delayRender2(`Rendering <CanvasImage> with src="${truncateSrcForLabel(actualSrc)}"`, {
|
|
8062
|
+
retries: delayRenderRetries ?? undefined,
|
|
8063
|
+
timeoutInMilliseconds: delayRenderTimeoutInMilliseconds ?? undefined
|
|
8064
|
+
});
|
|
8065
|
+
const unblock = pauseWhenLoading && !isPremounting && !isPostmounting ? delayPlayback().unblock : () => {
|
|
8066
|
+
return;
|
|
8067
|
+
};
|
|
8068
|
+
const controller = new AbortController;
|
|
8069
|
+
let cancelled = false;
|
|
8070
|
+
let continued = false;
|
|
8071
|
+
let errorCount = 0;
|
|
8072
|
+
let timeoutId = null;
|
|
8073
|
+
const continueRenderOnce = () => {
|
|
8074
|
+
if (continued) {
|
|
8075
|
+
return;
|
|
8076
|
+
}
|
|
8077
|
+
continued = true;
|
|
8078
|
+
unblock();
|
|
8079
|
+
continueRender2(handle);
|
|
8080
|
+
};
|
|
8081
|
+
const attemptLoad = () => {
|
|
8082
|
+
loadImage({ src: actualSrc, signal: controller.signal }).then((image) => {
|
|
8083
|
+
if (cancelled) {
|
|
8084
|
+
return;
|
|
8085
|
+
}
|
|
8086
|
+
const canvasWidth = width ?? image.width;
|
|
8087
|
+
const canvasHeight = height ?? image.height;
|
|
8088
|
+
const sourceContext = sourceCanvas.getContext("2d", {
|
|
8089
|
+
colorSpace: "srgb"
|
|
8090
|
+
});
|
|
8091
|
+
if (!sourceContext) {
|
|
8092
|
+
throw new Error("Could not get 2D context for <CanvasImage> source canvas");
|
|
8093
|
+
}
|
|
8094
|
+
sourceCanvas.width = canvasWidth;
|
|
8095
|
+
sourceCanvas.height = canvasHeight;
|
|
8096
|
+
outputCanvas.width = canvasWidth;
|
|
8097
|
+
outputCanvas.height = canvasHeight;
|
|
8098
|
+
sourceContext.clearRect(0, 0, canvasWidth, canvasHeight);
|
|
8099
|
+
sourceContext.drawImage(image.element, ...calculateImageFit(fit, { width: image.width, height: image.height }, { width: canvasWidth, height: canvasHeight }));
|
|
8100
|
+
return runEffectChain({
|
|
8101
|
+
state: chainState.get(canvasWidth, canvasHeight),
|
|
8102
|
+
source: sourceCanvas,
|
|
8103
|
+
effects: memoizedEffects,
|
|
8104
|
+
output: outputCanvas,
|
|
8105
|
+
width: canvasWidth,
|
|
8106
|
+
height: canvasHeight
|
|
8107
|
+
});
|
|
8108
|
+
}).then((completed) => {
|
|
8109
|
+
if (completed && !cancelled) {
|
|
8110
|
+
continueRenderOnce();
|
|
8111
|
+
}
|
|
8112
|
+
}).catch((err) => {
|
|
8113
|
+
if (err.name === "AbortError") {
|
|
8114
|
+
continueRenderOnce();
|
|
8115
|
+
return;
|
|
8116
|
+
}
|
|
8117
|
+
errorCount++;
|
|
8118
|
+
if (errorCount <= maxRetries) {
|
|
8119
|
+
const backoff = exponentialBackoff2(errorCount);
|
|
8120
|
+
console.warn(`Could not load <CanvasImage> with src="${truncateSrcForLabel(actualSrc)}", retrying in ${backoff}ms`);
|
|
8121
|
+
timeoutId = setTimeout(() => {
|
|
8122
|
+
if (!cancelled) {
|
|
8123
|
+
attemptLoad();
|
|
8124
|
+
}
|
|
8125
|
+
}, backoff);
|
|
8126
|
+
} else if (onError) {
|
|
8127
|
+
onError(err);
|
|
8128
|
+
continueRenderOnce();
|
|
8129
|
+
} else {
|
|
8130
|
+
cancelRender2(err);
|
|
8131
|
+
}
|
|
8132
|
+
});
|
|
8133
|
+
};
|
|
8134
|
+
attemptLoad();
|
|
8135
|
+
return () => {
|
|
8136
|
+
cancelled = true;
|
|
8137
|
+
if (timeoutId !== null) {
|
|
8138
|
+
clearTimeout(timeoutId);
|
|
8139
|
+
}
|
|
8140
|
+
controller.abort();
|
|
8141
|
+
continueRenderOnce();
|
|
8142
|
+
};
|
|
8143
|
+
}, [
|
|
8144
|
+
actualSrc,
|
|
8145
|
+
cancelRender2,
|
|
8146
|
+
chainState,
|
|
8147
|
+
continueRender2,
|
|
8148
|
+
delayPlayback,
|
|
8149
|
+
delayRender2,
|
|
8150
|
+
delayRenderRetries,
|
|
8151
|
+
delayRenderTimeoutInMilliseconds,
|
|
8152
|
+
fit,
|
|
8153
|
+
height,
|
|
8154
|
+
maxRetries,
|
|
8155
|
+
memoizedEffects,
|
|
8156
|
+
onError,
|
|
8157
|
+
outputCanvas,
|
|
8158
|
+
pauseWhenLoading,
|
|
8159
|
+
sequenceContext?.postmounting,
|
|
8160
|
+
sequenceContext?.premounting,
|
|
8161
|
+
sourceCanvas,
|
|
8162
|
+
width
|
|
8163
|
+
]);
|
|
8164
|
+
return /* @__PURE__ */ jsx26("canvas", {
|
|
8165
|
+
ref: canvasRef,
|
|
8166
|
+
width,
|
|
8167
|
+
height,
|
|
8168
|
+
className,
|
|
8169
|
+
style,
|
|
8170
|
+
id
|
|
8171
|
+
});
|
|
8172
|
+
});
|
|
8173
|
+
CanvasImageContent.displayName = "CanvasImageContent";
|
|
8174
|
+
var CanvasImageInner = forwardRef10(({
|
|
8175
|
+
src,
|
|
8176
|
+
width,
|
|
8177
|
+
height,
|
|
8178
|
+
fit,
|
|
8179
|
+
effects = [],
|
|
8180
|
+
className,
|
|
8181
|
+
style,
|
|
8182
|
+
id,
|
|
8183
|
+
onError,
|
|
8184
|
+
pauseWhenLoading,
|
|
8185
|
+
maxRetries,
|
|
8186
|
+
delayRenderRetries,
|
|
8187
|
+
delayRenderTimeoutInMilliseconds,
|
|
8188
|
+
durationInFrames,
|
|
8189
|
+
from,
|
|
8190
|
+
hidden,
|
|
8191
|
+
name,
|
|
8192
|
+
showInTimeline,
|
|
8193
|
+
stack,
|
|
8194
|
+
_experimentalControls: controls
|
|
8195
|
+
}, ref) => {
|
|
8196
|
+
if (!src) {
|
|
8197
|
+
throw new Error('No "src" prop was passed to <CanvasImage>.');
|
|
8198
|
+
}
|
|
8199
|
+
const memoizedEffectDefinitions = useMemoizedEffectDefinitions(effects);
|
|
8200
|
+
return /* @__PURE__ */ jsx26(Sequence, {
|
|
8201
|
+
layout: "none",
|
|
8202
|
+
from: from ?? 0,
|
|
8203
|
+
durationInFrames: durationInFrames ?? Infinity,
|
|
8204
|
+
hidden,
|
|
8205
|
+
showInTimeline: showInTimeline ?? true,
|
|
8206
|
+
name: name ?? "<CanvasImage>",
|
|
8207
|
+
_experimentalControls: controls,
|
|
8208
|
+
_remotionInternalEffects: memoizedEffectDefinitions,
|
|
8209
|
+
_remotionInternalIsMedia: { type: "image", src },
|
|
8210
|
+
_remotionInternalStack: stack,
|
|
8211
|
+
children: /* @__PURE__ */ jsx26(CanvasImageContent, {
|
|
8212
|
+
ref,
|
|
8213
|
+
src,
|
|
8214
|
+
width,
|
|
8215
|
+
height,
|
|
8216
|
+
fit,
|
|
8217
|
+
effects,
|
|
8218
|
+
controls,
|
|
8219
|
+
className,
|
|
8220
|
+
style,
|
|
8221
|
+
id,
|
|
8222
|
+
onError,
|
|
8223
|
+
pauseWhenLoading,
|
|
8224
|
+
maxRetries,
|
|
8225
|
+
delayRenderRetries,
|
|
8226
|
+
delayRenderTimeoutInMilliseconds
|
|
8227
|
+
})
|
|
8228
|
+
});
|
|
8229
|
+
});
|
|
8230
|
+
var CanvasImage = wrapInSchema(CanvasImageInner, canvasImageSchema);
|
|
8231
|
+
CanvasImage.displayName = "CanvasImage";
|
|
8232
|
+
addSequenceStackTraces(CanvasImage);
|
|
8233
|
+
var kSplineTableSize = 11;
|
|
8234
|
+
var kSampleStepSize = 1 / (kSplineTableSize - 1);
|
|
8235
|
+
var IFrameRefForwarding = ({
|
|
8236
|
+
onLoad,
|
|
8237
|
+
onError,
|
|
8238
|
+
delayRenderRetries,
|
|
8239
|
+
delayRenderTimeoutInMilliseconds,
|
|
8240
|
+
...props2
|
|
8241
|
+
}, ref) => {
|
|
8242
|
+
const { delayRender: delayRender2, continueRender: continueRender2 } = useDelayRender();
|
|
8243
|
+
const [handle] = useState17(() => delayRender2(`Loading <IFrame> with source ${props2.src}`, {
|
|
8244
|
+
retries: delayRenderRetries ?? undefined,
|
|
8245
|
+
timeoutInMilliseconds: delayRenderTimeoutInMilliseconds ?? undefined
|
|
8246
|
+
}));
|
|
8247
|
+
const didLoad = useCallback18((e) => {
|
|
8248
|
+
continueRender2(handle);
|
|
8249
|
+
onLoad?.(e);
|
|
8250
|
+
}, [handle, onLoad, continueRender2]);
|
|
8251
|
+
const didGetError = useCallback18((e) => {
|
|
8252
|
+
continueRender2(handle);
|
|
8253
|
+
if (onError) {
|
|
8254
|
+
onError(e);
|
|
8255
|
+
} else {
|
|
8256
|
+
console.error("Error loading iframe:", e, "Handle the event using the onError() prop to make this message disappear.");
|
|
8257
|
+
}
|
|
8258
|
+
}, [handle, onError, continueRender2]);
|
|
8259
|
+
return /* @__PURE__ */ jsx27("iframe", {
|
|
8260
|
+
referrerPolicy: "strict-origin-when-cross-origin",
|
|
8261
|
+
...props2,
|
|
8262
|
+
ref,
|
|
8263
|
+
onError: didGetError,
|
|
8264
|
+
onLoad: didLoad
|
|
8265
|
+
});
|
|
8266
|
+
};
|
|
8267
|
+
var IFrame = forwardRef11(IFrameRefForwarding);
|
|
7924
8268
|
var compositionsRef = React28.createRef();
|
|
7925
8269
|
var CompositionManagerProvider = ({
|
|
7926
8270
|
children,
|
|
@@ -7929,18 +8273,18 @@ var CompositionManagerProvider = ({
|
|
|
7929
8273
|
initialCompositions,
|
|
7930
8274
|
initialCanvasContent
|
|
7931
8275
|
}) => {
|
|
7932
|
-
const [folders, setFolders] =
|
|
7933
|
-
const [canvasContent, setCanvasContent] =
|
|
7934
|
-
const [compositions, setCompositions] =
|
|
8276
|
+
const [folders, setFolders] = useState18([]);
|
|
8277
|
+
const [canvasContent, setCanvasContent] = useState18(initialCanvasContent);
|
|
8278
|
+
const [compositions, setCompositions] = useState18(initialCompositions);
|
|
7935
8279
|
const currentcompositionsRef = useRef22(compositions);
|
|
7936
|
-
const updateCompositions =
|
|
8280
|
+
const updateCompositions = useCallback19((updateComps) => {
|
|
7937
8281
|
setCompositions((comps) => {
|
|
7938
8282
|
const updated = updateComps(comps);
|
|
7939
8283
|
currentcompositionsRef.current = updated;
|
|
7940
8284
|
return updated;
|
|
7941
8285
|
});
|
|
7942
8286
|
}, []);
|
|
7943
|
-
const registerComposition =
|
|
8287
|
+
const registerComposition = useCallback19((comp) => {
|
|
7944
8288
|
updateCompositions((comps) => {
|
|
7945
8289
|
if (comps.find((c2) => c2.id === comp.id)) {
|
|
7946
8290
|
throw new Error(`Multiple composition with id ${comp.id} are registered.`);
|
|
@@ -7948,12 +8292,12 @@ var CompositionManagerProvider = ({
|
|
|
7948
8292
|
return [...comps, comp];
|
|
7949
8293
|
});
|
|
7950
8294
|
}, [updateCompositions]);
|
|
7951
|
-
const unregisterComposition =
|
|
8295
|
+
const unregisterComposition = useCallback19((id) => {
|
|
7952
8296
|
setCompositions((comps) => {
|
|
7953
8297
|
return comps.filter((c2) => c2.id !== id);
|
|
7954
8298
|
});
|
|
7955
8299
|
}, []);
|
|
7956
|
-
const registerFolder =
|
|
8300
|
+
const registerFolder = useCallback19((name, parent, nonce) => {
|
|
7957
8301
|
setFolders((prevFolders) => {
|
|
7958
8302
|
return [
|
|
7959
8303
|
...prevFolders,
|
|
@@ -7965,7 +8309,7 @@ var CompositionManagerProvider = ({
|
|
|
7965
8309
|
];
|
|
7966
8310
|
});
|
|
7967
8311
|
}, []);
|
|
7968
|
-
const unregisterFolder =
|
|
8312
|
+
const unregisterFolder = useCallback19((name, parent) => {
|
|
7969
8313
|
setFolders((prevFolders) => {
|
|
7970
8314
|
return prevFolders.filter((p) => !(p.name === name && p.parent === parent));
|
|
7971
8315
|
});
|
|
@@ -7975,7 +8319,7 @@ var CompositionManagerProvider = ({
|
|
|
7975
8319
|
getCompositions: () => currentcompositionsRef.current
|
|
7976
8320
|
};
|
|
7977
8321
|
}, []);
|
|
7978
|
-
const compositionManagerSetters =
|
|
8322
|
+
const compositionManagerSetters = useMemo32(() => {
|
|
7979
8323
|
return {
|
|
7980
8324
|
registerComposition,
|
|
7981
8325
|
unregisterComposition,
|
|
@@ -7991,7 +8335,7 @@ var CompositionManagerProvider = ({
|
|
|
7991
8335
|
unregisterFolder,
|
|
7992
8336
|
onlyRenderComposition
|
|
7993
8337
|
]);
|
|
7994
|
-
const compositionManagerContextValue =
|
|
8338
|
+
const compositionManagerContextValue = useMemo32(() => {
|
|
7995
8339
|
return {
|
|
7996
8340
|
compositions,
|
|
7997
8341
|
folders,
|
|
@@ -7999,9 +8343,9 @@ var CompositionManagerProvider = ({
|
|
|
7999
8343
|
canvasContent
|
|
8000
8344
|
};
|
|
8001
8345
|
}, [compositions, folders, currentCompositionMetadata, canvasContent]);
|
|
8002
|
-
return /* @__PURE__ */
|
|
8346
|
+
return /* @__PURE__ */ jsx28(CompositionManager.Provider, {
|
|
8003
8347
|
value: compositionManagerContextValue,
|
|
8004
|
-
children: /* @__PURE__ */
|
|
8348
|
+
children: /* @__PURE__ */ jsx28(CompositionSetters.Provider, {
|
|
8005
8349
|
value: compositionManagerSetters,
|
|
8006
8350
|
children
|
|
8007
8351
|
})
|
|
@@ -8119,7 +8463,7 @@ var waitForRoot = (fn) => {
|
|
|
8119
8463
|
};
|
|
8120
8464
|
var MediaEnabledContext = createContext23(null);
|
|
8121
8465
|
var useVideoEnabled = () => {
|
|
8122
|
-
const context =
|
|
8466
|
+
const context = useContext34(MediaEnabledContext);
|
|
8123
8467
|
if (!context) {
|
|
8124
8468
|
return window.remotion_videoEnabled;
|
|
8125
8469
|
}
|
|
@@ -8129,7 +8473,7 @@ var useVideoEnabled = () => {
|
|
|
8129
8473
|
return context.videoEnabled;
|
|
8130
8474
|
};
|
|
8131
8475
|
var useAudioEnabled = () => {
|
|
8132
|
-
const context =
|
|
8476
|
+
const context = useContext34(MediaEnabledContext);
|
|
8133
8477
|
if (!context) {
|
|
8134
8478
|
return window.remotion_audioEnabled;
|
|
8135
8479
|
}
|
|
@@ -8143,8 +8487,8 @@ var MediaEnabledProvider = ({
|
|
|
8143
8487
|
videoEnabled,
|
|
8144
8488
|
audioEnabled
|
|
8145
8489
|
}) => {
|
|
8146
|
-
const value =
|
|
8147
|
-
return /* @__PURE__ */
|
|
8490
|
+
const value = useMemo33(() => ({ videoEnabled, audioEnabled }), [videoEnabled, audioEnabled]);
|
|
8491
|
+
return /* @__PURE__ */ jsx29(MediaEnabledContext.Provider, {
|
|
8148
8492
|
value,
|
|
8149
8493
|
children
|
|
8150
8494
|
});
|
|
@@ -8158,33 +8502,33 @@ var RemotionRootContexts = ({
|
|
|
8158
8502
|
audioEnabled,
|
|
8159
8503
|
frameState
|
|
8160
8504
|
}) => {
|
|
8161
|
-
const nonceContext =
|
|
8505
|
+
const nonceContext = useMemo34(() => {
|
|
8162
8506
|
let counter = 0;
|
|
8163
8507
|
return {
|
|
8164
8508
|
getNonce: () => counter++
|
|
8165
8509
|
};
|
|
8166
8510
|
}, []);
|
|
8167
|
-
const logging =
|
|
8511
|
+
const logging = useMemo34(() => {
|
|
8168
8512
|
return { logLevel, mountTime: Date.now() };
|
|
8169
8513
|
}, [logLevel]);
|
|
8170
|
-
return /* @__PURE__ */
|
|
8514
|
+
return /* @__PURE__ */ jsx30(LogLevelContext.Provider, {
|
|
8171
8515
|
value: logging,
|
|
8172
|
-
children: /* @__PURE__ */
|
|
8516
|
+
children: /* @__PURE__ */ jsx30(NonceContext.Provider, {
|
|
8173
8517
|
value: nonceContext,
|
|
8174
|
-
children: /* @__PURE__ */
|
|
8518
|
+
children: /* @__PURE__ */ jsx30(TimelineContextProvider, {
|
|
8175
8519
|
frameState,
|
|
8176
|
-
children: /* @__PURE__ */
|
|
8520
|
+
children: /* @__PURE__ */ jsx30(MediaEnabledProvider, {
|
|
8177
8521
|
videoEnabled,
|
|
8178
8522
|
audioEnabled,
|
|
8179
|
-
children: /* @__PURE__ */
|
|
8180
|
-
children: /* @__PURE__ */
|
|
8181
|
-
children: /* @__PURE__ */
|
|
8182
|
-
children: /* @__PURE__ */
|
|
8183
|
-
children: /* @__PURE__ */
|
|
8184
|
-
children: /* @__PURE__ */
|
|
8523
|
+
children: /* @__PURE__ */ jsx30(EditorPropsProvider, {
|
|
8524
|
+
children: /* @__PURE__ */ jsx30(PrefetchProvider, {
|
|
8525
|
+
children: /* @__PURE__ */ jsx30(SequenceManagerProvider, {
|
|
8526
|
+
children: /* @__PURE__ */ jsx30(DurationsContextProvider, {
|
|
8527
|
+
children: /* @__PURE__ */ jsx30(BufferingProvider, {
|
|
8528
|
+
children: /* @__PURE__ */ jsx30(SharedAudioContextProvider, {
|
|
8185
8529
|
audioLatencyHint,
|
|
8186
8530
|
audioEnabled,
|
|
8187
|
-
children: /* @__PURE__ */
|
|
8531
|
+
children: /* @__PURE__ */ jsx30(SharedAudioTagsContextProvider, {
|
|
8188
8532
|
numberOfAudioTags,
|
|
8189
8533
|
children
|
|
8190
8534
|
})
|
|
@@ -8452,13 +8796,13 @@ var OffthreadVideoForRendering = ({
|
|
|
8452
8796
|
const frame = useCurrentFrame();
|
|
8453
8797
|
const volumePropsFrame = useFrameForVolumeProp(loopVolumeCurveBehavior);
|
|
8454
8798
|
const videoConfig = useUnsafeVideoConfig();
|
|
8455
|
-
const sequenceContext =
|
|
8799
|
+
const sequenceContext = useContext35(SequenceContext);
|
|
8456
8800
|
const mediaStartsAt = useMediaStartsAt();
|
|
8457
|
-
const { registerRenderAsset, unregisterRenderAsset } =
|
|
8801
|
+
const { registerRenderAsset, unregisterRenderAsset } = useContext35(RenderAssetManager);
|
|
8458
8802
|
if (!src) {
|
|
8459
8803
|
throw new TypeError("No `src` was passed to <OffthreadVideo>.");
|
|
8460
8804
|
}
|
|
8461
|
-
const id =
|
|
8805
|
+
const id = useMemo35(() => `offthreadvideo-${random(src)}-${sequenceContext?.cumulatedFrom}-${sequenceContext?.relativeFrom}-${sequenceContext?.durationInFrames}`, [
|
|
8462
8806
|
src,
|
|
8463
8807
|
sequenceContext?.cumulatedFrom,
|
|
8464
8808
|
sequenceContext?.relativeFrom,
|
|
@@ -8473,7 +8817,7 @@ var OffthreadVideoForRendering = ({
|
|
|
8473
8817
|
mediaVolume: 1
|
|
8474
8818
|
});
|
|
8475
8819
|
warnAboutTooHighVolume(volume);
|
|
8476
|
-
|
|
8820
|
+
useEffect17(() => {
|
|
8477
8821
|
if (!src) {
|
|
8478
8822
|
throw new Error("No src passed");
|
|
8479
8823
|
}
|
|
@@ -8513,14 +8857,14 @@ var OffthreadVideoForRendering = ({
|
|
|
8513
8857
|
sequenceContext?.relativeFrom,
|
|
8514
8858
|
audioStreamIndex
|
|
8515
8859
|
]);
|
|
8516
|
-
const currentTime =
|
|
8860
|
+
const currentTime = useMemo35(() => {
|
|
8517
8861
|
return getExpectedMediaFrameUncorrected({
|
|
8518
8862
|
frame,
|
|
8519
8863
|
playbackRate: playbackRate || 1,
|
|
8520
8864
|
startFrom: -mediaStartsAt
|
|
8521
8865
|
}) / videoConfig.fps;
|
|
8522
8866
|
}, [frame, mediaStartsAt, playbackRate, videoConfig.fps]);
|
|
8523
|
-
const actualSrc =
|
|
8867
|
+
const actualSrc = useMemo35(() => {
|
|
8524
8868
|
return getOffthreadVideoSource({
|
|
8525
8869
|
src,
|
|
8526
8870
|
currentTime,
|
|
@@ -8528,7 +8872,7 @@ var OffthreadVideoForRendering = ({
|
|
|
8528
8872
|
toneMapped
|
|
8529
8873
|
});
|
|
8530
8874
|
}, [toneMapped, currentTime, src, transparent]);
|
|
8531
|
-
const [imageSrc, setImageSrc] =
|
|
8875
|
+
const [imageSrc, setImageSrc] = useState19(null);
|
|
8532
8876
|
const { delayRender: delayRender2, continueRender: continueRender2 } = useDelayRender();
|
|
8533
8877
|
useLayoutEffect11(() => {
|
|
8534
8878
|
if (!window.remotion_videoEnabled) {
|
|
@@ -8601,17 +8945,17 @@ var OffthreadVideoForRendering = ({
|
|
|
8601
8945
|
continueRender2,
|
|
8602
8946
|
delayRender2
|
|
8603
8947
|
]);
|
|
8604
|
-
const onErr =
|
|
8948
|
+
const onErr = useCallback20(() => {
|
|
8605
8949
|
if (onError) {
|
|
8606
8950
|
onError?.(new Error("Failed to load image with src " + imageSrc));
|
|
8607
8951
|
} else {
|
|
8608
8952
|
cancelRender("Failed to load image with src " + imageSrc);
|
|
8609
8953
|
}
|
|
8610
8954
|
}, [imageSrc, onError]);
|
|
8611
|
-
const className =
|
|
8955
|
+
const className = useMemo35(() => {
|
|
8612
8956
|
return [OBJECTFIT_CONTAIN_CLASS_NAME, props2.className].filter(truthy).join(" ");
|
|
8613
8957
|
}, [props2.className]);
|
|
8614
|
-
const onImageFrame =
|
|
8958
|
+
const onImageFrame = useCallback20((img) => {
|
|
8615
8959
|
if (onVideoFrame) {
|
|
8616
8960
|
onVideoFrame(img);
|
|
8617
8961
|
}
|
|
@@ -8620,7 +8964,7 @@ var OffthreadVideoForRendering = ({
|
|
|
8620
8964
|
return null;
|
|
8621
8965
|
}
|
|
8622
8966
|
continueRender2(imageSrc.handle);
|
|
8623
|
-
return /* @__PURE__ */
|
|
8967
|
+
return /* @__PURE__ */ jsx31(Img, {
|
|
8624
8968
|
src: imageSrc.src,
|
|
8625
8969
|
delayRenderRetries,
|
|
8626
8970
|
delayRenderTimeoutInMilliseconds,
|
|
@@ -8634,7 +8978,7 @@ var useEmitVideoFrame = ({
|
|
|
8634
8978
|
ref,
|
|
8635
8979
|
onVideoFrame
|
|
8636
8980
|
}) => {
|
|
8637
|
-
|
|
8981
|
+
useEffect18(() => {
|
|
8638
8982
|
const { current } = ref;
|
|
8639
8983
|
if (!current) {
|
|
8640
8984
|
return;
|
|
@@ -8666,12 +9010,12 @@ class MediaPlaybackError extends Error {
|
|
|
8666
9010
|
}
|
|
8667
9011
|
}
|
|
8668
9012
|
var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
8669
|
-
const context =
|
|
9013
|
+
const context = useContext36(SharedAudioContext);
|
|
8670
9014
|
if (!context) {
|
|
8671
9015
|
throw new Error("SharedAudioContext not found");
|
|
8672
9016
|
}
|
|
8673
9017
|
const videoRef = useRef23(null);
|
|
8674
|
-
const sharedSource =
|
|
9018
|
+
const sharedSource = useMemo36(() => {
|
|
8675
9019
|
if (!context.audioContext) {
|
|
8676
9020
|
return null;
|
|
8677
9021
|
}
|
|
@@ -8723,10 +9067,10 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
8723
9067
|
}
|
|
8724
9068
|
const volumePropFrame = useFrameForVolumeProp(loopVolumeCurveBehavior ?? "repeat");
|
|
8725
9069
|
const { fps, durationInFrames } = useVideoConfig();
|
|
8726
|
-
const parentSequence =
|
|
9070
|
+
const parentSequence = useContext36(SequenceContext);
|
|
8727
9071
|
const logLevel = useLogLevel();
|
|
8728
9072
|
const mountTime = useMountTime();
|
|
8729
|
-
const [timelineId] =
|
|
9073
|
+
const [timelineId] = useState20(() => String(Math.random()));
|
|
8730
9074
|
if (typeof acceptableTimeShift !== "undefined") {
|
|
8731
9075
|
throw new Error("acceptableTimeShift has been removed. Use acceptableTimeShiftInSeconds instead.");
|
|
8732
9076
|
}
|
|
@@ -8738,7 +9082,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
8738
9082
|
mediaVolume
|
|
8739
9083
|
});
|
|
8740
9084
|
warnAboutTooHighVolume(userPreferredVolume);
|
|
8741
|
-
const getStack =
|
|
9085
|
+
const getStack = useCallback21(() => {
|
|
8742
9086
|
return _remotionInternalStack ?? null;
|
|
8743
9087
|
}, [_remotionInternalStack]);
|
|
8744
9088
|
useMediaInTimeline({
|
|
@@ -8796,13 +9140,13 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
8796
9140
|
useImperativeHandle8(ref, () => {
|
|
8797
9141
|
return videoRef.current;
|
|
8798
9142
|
}, []);
|
|
8799
|
-
|
|
9143
|
+
useState20(() => playbackLogging({
|
|
8800
9144
|
logLevel,
|
|
8801
9145
|
message: `Mounting video with source = ${actualSrc}, v=${VERSION}, user agent=${typeof navigator === "undefined" ? "server" : navigator.userAgent}`,
|
|
8802
9146
|
tag: "video",
|
|
8803
9147
|
mountTime
|
|
8804
9148
|
}));
|
|
8805
|
-
|
|
9149
|
+
useEffect19(() => {
|
|
8806
9150
|
const { current } = videoRef;
|
|
8807
9151
|
if (!current) {
|
|
8808
9152
|
return;
|
|
@@ -8845,7 +9189,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
8845
9189
|
const currentOnDurationCallback = useRef23(onDuration);
|
|
8846
9190
|
currentOnDurationCallback.current = onDuration;
|
|
8847
9191
|
useEmitVideoFrame({ ref: videoRef, onVideoFrame });
|
|
8848
|
-
|
|
9192
|
+
useEffect19(() => {
|
|
8849
9193
|
const { current } = videoRef;
|
|
8850
9194
|
if (!current) {
|
|
8851
9195
|
return;
|
|
@@ -8862,7 +9206,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
8862
9206
|
current.removeEventListener("loadedmetadata", onLoadedMetadata);
|
|
8863
9207
|
};
|
|
8864
9208
|
}, [src]);
|
|
8865
|
-
|
|
9209
|
+
useEffect19(() => {
|
|
8866
9210
|
const { current } = videoRef;
|
|
8867
9211
|
if (!current) {
|
|
8868
9212
|
return;
|
|
@@ -8873,7 +9217,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
8873
9217
|
current.preload = "auto";
|
|
8874
9218
|
}
|
|
8875
9219
|
}, []);
|
|
8876
|
-
const actualStyle =
|
|
9220
|
+
const actualStyle = useMemo36(() => {
|
|
8877
9221
|
return {
|
|
8878
9222
|
...style
|
|
8879
9223
|
};
|
|
@@ -8883,7 +9227,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
8883
9227
|
requestsVideoFrame: Boolean(onVideoFrame),
|
|
8884
9228
|
isClientSideRendering: false
|
|
8885
9229
|
});
|
|
8886
|
-
return /* @__PURE__ */
|
|
9230
|
+
return /* @__PURE__ */ jsx32("video", {
|
|
8887
9231
|
ref: videoRef,
|
|
8888
9232
|
muted: muted || mediaMuted || userPreferredVolume <= 0,
|
|
8889
9233
|
playsInline: true,
|
|
@@ -8895,7 +9239,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
8895
9239
|
...nativeProps
|
|
8896
9240
|
});
|
|
8897
9241
|
};
|
|
8898
|
-
var VideoForPreview =
|
|
9242
|
+
var VideoForPreview = forwardRef12(VideoForDevelopmentRefForwardingFunction);
|
|
8899
9243
|
var InnerOffthreadVideo = (props2) => {
|
|
8900
9244
|
const {
|
|
8901
9245
|
startFrom,
|
|
@@ -8912,7 +9256,7 @@ var InnerOffthreadVideo = (props2) => {
|
|
|
8912
9256
|
if (environment.isClientSideRendering) {
|
|
8913
9257
|
throw new Error("<OffthreadVideo> is not supported in @remotion/web-renderer. Use <Video> from @remotion/media instead. See https://remotion.dev/docs/client-side-rendering/limitations");
|
|
8914
9258
|
}
|
|
8915
|
-
const onDuration =
|
|
9259
|
+
const onDuration = useCallback22(() => {
|
|
8916
9260
|
return;
|
|
8917
9261
|
}, []);
|
|
8918
9262
|
if (typeof props2.src !== "string") {
|
|
@@ -8926,13 +9270,13 @@ var InnerOffthreadVideo = (props2) => {
|
|
|
8926
9270
|
trimAfter
|
|
8927
9271
|
});
|
|
8928
9272
|
if (typeof trimBeforeValue !== "undefined" || typeof trimAfterValue !== "undefined") {
|
|
8929
|
-
return /* @__PURE__ */
|
|
9273
|
+
return /* @__PURE__ */ jsx33(Sequence, {
|
|
8930
9274
|
layout: "none",
|
|
8931
9275
|
from: 0 - (trimBeforeValue ?? 0),
|
|
8932
9276
|
showInTimeline: false,
|
|
8933
9277
|
durationInFrames: trimAfterValue,
|
|
8934
9278
|
name,
|
|
8935
|
-
children: /* @__PURE__ */
|
|
9279
|
+
children: /* @__PURE__ */ jsx33(InnerOffthreadVideo, {
|
|
8936
9280
|
pauseWhenBuffering: pauseWhenBuffering ?? false,
|
|
8937
9281
|
...otherProps,
|
|
8938
9282
|
trimAfter: undefined,
|
|
@@ -8947,7 +9291,7 @@ var InnerOffthreadVideo = (props2) => {
|
|
|
8947
9291
|
}
|
|
8948
9292
|
validateMediaProps(props2, "Video");
|
|
8949
9293
|
if (environment.isRendering) {
|
|
8950
|
-
return /* @__PURE__ */
|
|
9294
|
+
return /* @__PURE__ */ jsx33(OffthreadVideoForRendering, {
|
|
8951
9295
|
pauseWhenBuffering: pauseWhenBuffering ?? false,
|
|
8952
9296
|
...otherProps,
|
|
8953
9297
|
trimAfter: undefined,
|
|
@@ -8969,7 +9313,7 @@ var InnerOffthreadVideo = (props2) => {
|
|
|
8969
9313
|
delayRenderTimeoutInMilliseconds,
|
|
8970
9314
|
...propsForPreview
|
|
8971
9315
|
} = otherProps;
|
|
8972
|
-
return /* @__PURE__ */
|
|
9316
|
+
return /* @__PURE__ */ jsx33(VideoForPreview, {
|
|
8973
9317
|
_remotionInternalStack: stack ?? null,
|
|
8974
9318
|
onDuration,
|
|
8975
9319
|
onlyWarnForMediaSeekingError: true,
|
|
@@ -9019,7 +9363,7 @@ var OffthreadVideo = ({
|
|
|
9019
9363
|
if (imageFormat) {
|
|
9020
9364
|
throw new TypeError(`The \`<OffthreadVideo>\` tag does no longer accept \`imageFormat\`. Use the \`transparent\` prop if you want to render a transparent video.`);
|
|
9021
9365
|
}
|
|
9022
|
-
return /* @__PURE__ */
|
|
9366
|
+
return /* @__PURE__ */ jsx33(InnerOffthreadVideo, {
|
|
9023
9367
|
acceptableTimeShiftInSeconds,
|
|
9024
9368
|
allowAmplificationDuringRender: allowAmplificationDuringRender ?? true,
|
|
9025
9369
|
audioStreamIndex: audioStreamIndex ?? 0,
|
|
@@ -9068,7 +9412,7 @@ function useRemotionContexts() {
|
|
|
9068
9412
|
const sequenceManagerContext = React36.useContext(SequenceManager);
|
|
9069
9413
|
const bufferManagerContext = React36.useContext(BufferingContextReact);
|
|
9070
9414
|
const logLevelContext = React36.useContext(LogLevelContext);
|
|
9071
|
-
return
|
|
9415
|
+
return useMemo37(() => ({
|
|
9072
9416
|
compositionManagerCtx,
|
|
9073
9417
|
timelineContext,
|
|
9074
9418
|
setTimelineContext,
|
|
@@ -9098,29 +9442,29 @@ function useRemotionContexts() {
|
|
|
9098
9442
|
}
|
|
9099
9443
|
var RemotionContextProvider = (props2) => {
|
|
9100
9444
|
const { children, contexts } = props2;
|
|
9101
|
-
return /* @__PURE__ */
|
|
9445
|
+
return /* @__PURE__ */ jsx34(LogLevelContext.Provider, {
|
|
9102
9446
|
value: contexts.logLevelContext,
|
|
9103
|
-
children: /* @__PURE__ */
|
|
9447
|
+
children: /* @__PURE__ */ jsx34(CanUseRemotionHooks.Provider, {
|
|
9104
9448
|
value: contexts.canUseRemotionHooksContext,
|
|
9105
|
-
children: /* @__PURE__ */
|
|
9449
|
+
children: /* @__PURE__ */ jsx34(NonceContext.Provider, {
|
|
9106
9450
|
value: contexts.nonceContext,
|
|
9107
|
-
children: /* @__PURE__ */
|
|
9451
|
+
children: /* @__PURE__ */ jsx34(PreloadContext.Provider, {
|
|
9108
9452
|
value: contexts.preloadContext,
|
|
9109
|
-
children: /* @__PURE__ */
|
|
9453
|
+
children: /* @__PURE__ */ jsx34(CompositionManager.Provider, {
|
|
9110
9454
|
value: contexts.compositionManagerCtx,
|
|
9111
|
-
children: /* @__PURE__ */
|
|
9455
|
+
children: /* @__PURE__ */ jsx34(SequenceManager.Provider, {
|
|
9112
9456
|
value: contexts.sequenceManagerContext,
|
|
9113
|
-
children: /* @__PURE__ */
|
|
9457
|
+
children: /* @__PURE__ */ jsx34(RenderAssetManager.Provider, {
|
|
9114
9458
|
value: contexts.renderAssetManagerContext,
|
|
9115
|
-
children: /* @__PURE__ */
|
|
9459
|
+
children: /* @__PURE__ */ jsx34(ResolveCompositionContext.Provider, {
|
|
9116
9460
|
value: contexts.resolveCompositionContext,
|
|
9117
|
-
children: /* @__PURE__ */
|
|
9461
|
+
children: /* @__PURE__ */ jsx34(TimelineContext.Provider, {
|
|
9118
9462
|
value: contexts.timelineContext,
|
|
9119
|
-
children: /* @__PURE__ */
|
|
9463
|
+
children: /* @__PURE__ */ jsx34(SetTimelineContext.Provider, {
|
|
9120
9464
|
value: contexts.setTimelineContext,
|
|
9121
|
-
children: /* @__PURE__ */
|
|
9465
|
+
children: /* @__PURE__ */ jsx34(SequenceContext.Provider, {
|
|
9122
9466
|
value: contexts.sequenceContext,
|
|
9123
|
-
children: /* @__PURE__ */
|
|
9467
|
+
children: /* @__PURE__ */ jsx34(BufferingContextReact.Provider, {
|
|
9124
9468
|
value: contexts.bufferManagerContext,
|
|
9125
9469
|
children
|
|
9126
9470
|
})
|
|
@@ -9145,6 +9489,7 @@ var Internals = {
|
|
|
9145
9489
|
useAbsoluteTimelinePosition,
|
|
9146
9490
|
evaluateVolume,
|
|
9147
9491
|
getAbsoluteSrc,
|
|
9492
|
+
getAssetDisplayName,
|
|
9148
9493
|
Timeline: exports_timeline_position_state,
|
|
9149
9494
|
validateMediaTrimProps,
|
|
9150
9495
|
validateMediaProps,
|
|
@@ -9305,13 +9650,13 @@ var flattenChildren = (children) => {
|
|
|
9305
9650
|
};
|
|
9306
9651
|
var IsInsideSeriesContext = createContext25(false);
|
|
9307
9652
|
var IsInsideSeriesContainer = ({ children }) => {
|
|
9308
|
-
return /* @__PURE__ */
|
|
9653
|
+
return /* @__PURE__ */ jsx35(IsInsideSeriesContext.Provider, {
|
|
9309
9654
|
value: true,
|
|
9310
9655
|
children
|
|
9311
9656
|
});
|
|
9312
9657
|
};
|
|
9313
9658
|
var IsNotInsideSeriesProvider = ({ children }) => {
|
|
9314
|
-
return /* @__PURE__ */
|
|
9659
|
+
return /* @__PURE__ */ jsx35(IsInsideSeriesContext.Provider, {
|
|
9315
9660
|
value: false,
|
|
9316
9661
|
children
|
|
9317
9662
|
});
|
|
@@ -9324,13 +9669,13 @@ var useRequireToBeInsideSeries = () => {
|
|
|
9324
9669
|
};
|
|
9325
9670
|
var SeriesSequenceRefForwardingFunction = ({ children }, _ref) => {
|
|
9326
9671
|
useRequireToBeInsideSeries();
|
|
9327
|
-
return /* @__PURE__ */
|
|
9672
|
+
return /* @__PURE__ */ jsx36(IsNotInsideSeriesProvider, {
|
|
9328
9673
|
children
|
|
9329
9674
|
});
|
|
9330
9675
|
};
|
|
9331
|
-
var SeriesSequence =
|
|
9676
|
+
var SeriesSequence = forwardRef13(SeriesSequenceRefForwardingFunction);
|
|
9332
9677
|
var SeriesInner = (props2) => {
|
|
9333
|
-
const childrenValue =
|
|
9678
|
+
const childrenValue = useMemo38(() => {
|
|
9334
9679
|
let startFrame = 0;
|
|
9335
9680
|
const flattenedChildren = flattenChildren(props2.children);
|
|
9336
9681
|
return Children.map(flattenedChildren, (child, i) => {
|
|
@@ -9371,7 +9716,7 @@ var SeriesInner = (props2) => {
|
|
|
9371
9716
|
}
|
|
9372
9717
|
const currentStartFrame = startFrame + offset;
|
|
9373
9718
|
startFrame += durationInFramesProp + offset;
|
|
9374
|
-
return /* @__PURE__ */
|
|
9719
|
+
return /* @__PURE__ */ jsx36(Sequence, {
|
|
9375
9720
|
name: name || "<Series.Sequence>",
|
|
9376
9721
|
_remotionInternalDocumentationLink: name ? undefined : "https://www.remotion.dev/docs/series",
|
|
9377
9722
|
from: currentStartFrame,
|
|
@@ -9382,8 +9727,8 @@ var SeriesInner = (props2) => {
|
|
|
9382
9727
|
});
|
|
9383
9728
|
});
|
|
9384
9729
|
}, [props2.children]);
|
|
9385
|
-
return /* @__PURE__ */
|
|
9386
|
-
children: /* @__PURE__ */
|
|
9730
|
+
return /* @__PURE__ */ jsx36(IsInsideSeriesContainer, {
|
|
9731
|
+
children: /* @__PURE__ */ jsx36(Sequence, {
|
|
9387
9732
|
layout: "none",
|
|
9388
9733
|
name: "<Series>",
|
|
9389
9734
|
_remotionInternalDocumentationLink: "https://www.remotion.dev/docs/series",
|
|
@@ -9863,14 +10208,14 @@ var VideoForRenderingForwardFunction = ({
|
|
|
9863
10208
|
const volumePropsFrame = useFrameForVolumeProp(loopVolumeCurveBehavior ?? "repeat");
|
|
9864
10209
|
const videoConfig = useUnsafeVideoConfig();
|
|
9865
10210
|
const videoRef = useRef24(null);
|
|
9866
|
-
const sequenceContext =
|
|
10211
|
+
const sequenceContext = useContext37(SequenceContext);
|
|
9867
10212
|
const mediaStartsAt = useMediaStartsAt();
|
|
9868
10213
|
const environment = useRemotionEnvironment();
|
|
9869
10214
|
const logLevel = useLogLevel();
|
|
9870
10215
|
const mountTime = useMountTime();
|
|
9871
10216
|
const { delayRender: delayRender2, continueRender: continueRender2 } = useDelayRender();
|
|
9872
|
-
const { registerRenderAsset, unregisterRenderAsset } =
|
|
9873
|
-
const id =
|
|
10217
|
+
const { registerRenderAsset, unregisterRenderAsset } = useContext37(RenderAssetManager);
|
|
10218
|
+
const id = useMemo39(() => `video-${random(props2.src ?? "")}-${sequenceContext?.cumulatedFrom}-${sequenceContext?.relativeFrom}-${sequenceContext?.durationInFrames}`, [
|
|
9874
10219
|
props2.src,
|
|
9875
10220
|
sequenceContext?.cumulatedFrom,
|
|
9876
10221
|
sequenceContext?.relativeFrom,
|
|
@@ -9885,7 +10230,7 @@ var VideoForRenderingForwardFunction = ({
|
|
|
9885
10230
|
mediaVolume: 1
|
|
9886
10231
|
});
|
|
9887
10232
|
warnAboutTooHighVolume(volume);
|
|
9888
|
-
|
|
10233
|
+
useEffect20(() => {
|
|
9889
10234
|
if (!props2.src) {
|
|
9890
10235
|
throw new Error("No src passed");
|
|
9891
10236
|
}
|
|
@@ -9928,7 +10273,7 @@ var VideoForRenderingForwardFunction = ({
|
|
|
9928
10273
|
useImperativeHandle9(ref, () => {
|
|
9929
10274
|
return videoRef.current;
|
|
9930
10275
|
}, []);
|
|
9931
|
-
|
|
10276
|
+
useEffect20(() => {
|
|
9932
10277
|
if (!window.remotion_videoEnabled) {
|
|
9933
10278
|
return;
|
|
9934
10279
|
}
|
|
@@ -10052,13 +10397,13 @@ var VideoForRenderingForwardFunction = ({
|
|
|
10052
10397
|
delayRender2
|
|
10053
10398
|
]);
|
|
10054
10399
|
}
|
|
10055
|
-
return /* @__PURE__ */
|
|
10400
|
+
return /* @__PURE__ */ jsx37("video", {
|
|
10056
10401
|
ref: videoRef,
|
|
10057
10402
|
disableRemotePlayback: true,
|
|
10058
10403
|
...props2
|
|
10059
10404
|
});
|
|
10060
10405
|
};
|
|
10061
|
-
var VideoForRendering =
|
|
10406
|
+
var VideoForRendering = forwardRef14(VideoForRenderingForwardFunction);
|
|
10062
10407
|
var VideoForwardingFunction = (props2, ref) => {
|
|
10063
10408
|
const {
|
|
10064
10409
|
startFrom,
|
|
@@ -10079,7 +10424,7 @@ var VideoForwardingFunction = (props2, ref) => {
|
|
|
10079
10424
|
if (environment.isClientSideRendering) {
|
|
10080
10425
|
throw new Error("<Html5Video> is not supported in @remotion/web-renderer. Use <Video> from @remotion/media instead. See https://remotion.dev/docs/client-side-rendering/limitations");
|
|
10081
10426
|
}
|
|
10082
|
-
const { durations, setDurations } =
|
|
10427
|
+
const { durations, setDurations } = useContext38(DurationsContext);
|
|
10083
10428
|
if (typeof ref === "string") {
|
|
10084
10429
|
throw new Error("string refs are not supported");
|
|
10085
10430
|
}
|
|
@@ -10087,10 +10432,10 @@ var VideoForwardingFunction = (props2, ref) => {
|
|
|
10087
10432
|
throw new TypeError(`The \`<Html5Video>\` tag requires a string for \`src\`, but got ${JSON.stringify(props2.src)} instead.`);
|
|
10088
10433
|
}
|
|
10089
10434
|
const preloadedSrc = usePreload(props2.src);
|
|
10090
|
-
const onDuration =
|
|
10435
|
+
const onDuration = useCallback23((src, durationInSeconds) => {
|
|
10091
10436
|
setDurations({ type: "got-duration", durationInSeconds, src });
|
|
10092
10437
|
}, [setDurations]);
|
|
10093
|
-
const onVideoFrame =
|
|
10438
|
+
const onVideoFrame = useCallback23(() => {}, []);
|
|
10094
10439
|
const durationFetched = durations[getAbsoluteSrc(preloadedSrc)] ?? durations[getAbsoluteSrc(props2.src)];
|
|
10095
10440
|
validateMediaTrimProps({ startFrom, endAt, trimBefore, trimAfter });
|
|
10096
10441
|
const { trimBeforeValue, trimAfterValue } = resolveTrimProps({
|
|
@@ -10101,7 +10446,7 @@ var VideoForwardingFunction = (props2, ref) => {
|
|
|
10101
10446
|
});
|
|
10102
10447
|
if (loop && durationFetched !== undefined) {
|
|
10103
10448
|
if (!Number.isFinite(durationFetched)) {
|
|
10104
|
-
return /* @__PURE__ */
|
|
10449
|
+
return /* @__PURE__ */ jsx38(Html5Video, {
|
|
10105
10450
|
...propsOtherThanLoop,
|
|
10106
10451
|
ref,
|
|
10107
10452
|
stack,
|
|
@@ -10109,7 +10454,7 @@ var VideoForwardingFunction = (props2, ref) => {
|
|
|
10109
10454
|
});
|
|
10110
10455
|
}
|
|
10111
10456
|
const mediaDuration = durationFetched * fps;
|
|
10112
|
-
return /* @__PURE__ */
|
|
10457
|
+
return /* @__PURE__ */ jsx38(Loop, {
|
|
10113
10458
|
durationInFrames: calculateMediaDuration({
|
|
10114
10459
|
trimAfter: trimAfterValue,
|
|
10115
10460
|
mediaDurationInFrames: mediaDuration,
|
|
@@ -10119,7 +10464,7 @@ var VideoForwardingFunction = (props2, ref) => {
|
|
|
10119
10464
|
layout: "none",
|
|
10120
10465
|
name,
|
|
10121
10466
|
showInTimeline: false,
|
|
10122
|
-
children: /* @__PURE__ */
|
|
10467
|
+
children: /* @__PURE__ */ jsx38(Html5Video, {
|
|
10123
10468
|
...propsOtherThanLoop,
|
|
10124
10469
|
ref,
|
|
10125
10470
|
stack,
|
|
@@ -10128,13 +10473,13 @@ var VideoForwardingFunction = (props2, ref) => {
|
|
|
10128
10473
|
});
|
|
10129
10474
|
}
|
|
10130
10475
|
if (typeof trimBeforeValue !== "undefined" || typeof trimAfterValue !== "undefined") {
|
|
10131
|
-
return /* @__PURE__ */
|
|
10476
|
+
return /* @__PURE__ */ jsx38(Sequence, {
|
|
10132
10477
|
layout: "none",
|
|
10133
10478
|
from: 0 - (trimBeforeValue ?? 0),
|
|
10134
10479
|
showInTimeline: false,
|
|
10135
10480
|
durationInFrames: trimAfterValue === undefined ? undefined : trimAfterValue / (props2.playbackRate ?? 1),
|
|
10136
10481
|
name,
|
|
10137
|
-
children: /* @__PURE__ */
|
|
10482
|
+
children: /* @__PURE__ */ jsx38(Html5Video, {
|
|
10138
10483
|
pauseWhenBuffering: pauseWhenBuffering ?? false,
|
|
10139
10484
|
...otherProps,
|
|
10140
10485
|
ref,
|
|
@@ -10148,14 +10493,14 @@ var VideoForwardingFunction = (props2, ref) => {
|
|
|
10148
10493
|
volume: props2.volume
|
|
10149
10494
|
}, "Html5Video");
|
|
10150
10495
|
if (environment.isRendering) {
|
|
10151
|
-
return /* @__PURE__ */
|
|
10496
|
+
return /* @__PURE__ */ jsx38(VideoForRendering, {
|
|
10152
10497
|
onDuration,
|
|
10153
10498
|
onVideoFrame: onVideoFrame ?? null,
|
|
10154
10499
|
...otherProps,
|
|
10155
10500
|
ref
|
|
10156
10501
|
});
|
|
10157
10502
|
}
|
|
10158
|
-
return /* @__PURE__ */
|
|
10503
|
+
return /* @__PURE__ */ jsx38(VideoForPreview, {
|
|
10159
10504
|
onlyWarnForMediaSeekingError: false,
|
|
10160
10505
|
...otherProps,
|
|
10161
10506
|
ref,
|
|
@@ -10168,7 +10513,7 @@ var VideoForwardingFunction = (props2, ref) => {
|
|
|
10168
10513
|
onAutoPlayError: onAutoPlayError ?? undefined
|
|
10169
10514
|
});
|
|
10170
10515
|
};
|
|
10171
|
-
var Html5Video =
|
|
10516
|
+
var Html5Video = forwardRef15(VideoForwardingFunction);
|
|
10172
10517
|
addSequenceStackTraces(Html5Video);
|
|
10173
10518
|
checkMultipleRemotionVersions();
|
|
10174
10519
|
var proxyObj = {};
|
|
@@ -10196,46 +10541,46 @@ addSequenceStackTraces(Sequence);
|
|
|
10196
10541
|
addSequenceStackTraces(Composition);
|
|
10197
10542
|
|
|
10198
10543
|
// src/components/team/TeamCards.tsx
|
|
10199
|
-
import { jsx as
|
|
10544
|
+
import { jsx as jsx39, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
10200
10545
|
var LinkedInLogo = () => {
|
|
10201
|
-
return /* @__PURE__ */
|
|
10546
|
+
return /* @__PURE__ */ jsx39("svg", {
|
|
10202
10547
|
xmlns: "http://www.w3.org/2000/svg",
|
|
10203
10548
|
viewBox: "0 0 1000 1000",
|
|
10204
10549
|
className: "w-[30px]",
|
|
10205
|
-
children: /* @__PURE__ */
|
|
10550
|
+
children: /* @__PURE__ */ jsx39("path", {
|
|
10206
10551
|
fill: "currentcolor",
|
|
10207
10552
|
d: "M195.877 0C88.16 0 0 88.158 0 195.877V803.718C0 911.435 88.158 999.563 195.877 999.563H803.718C911.436 999.563 999.563 911.436 999.563 803.718V195.877C999.563 88.16 911.436 0 803.718 0H195.877ZM245.143 164.948C296.791 164.948 328.604 198.854 329.586 243.423C329.586 287.008 296.789 321.867 244.144 321.867H243.175C192.51 321.867 159.763 287.01 159.763 243.423C159.763 198.855 193.501 164.948 245.142 164.948H245.143ZM690.223 373.258C789.552 373.258 864.013 438.18 864.013 577.694V838.143H713.06V595.156C713.06 534.096 691.213 492.438 636.584 492.438C594.88 492.438 570.022 520.516 559.108 547.64C555.121 557.344 554.141 570.897 554.141 584.472V838.143H403.188C403.188 838.143 405.169 426.53 403.188 383.91H554.172V448.234C574.232 417.284 610.114 373.257 690.223 373.257V373.258ZM168.667 383.943H319.62V838.145H168.667V383.943V383.943Z"
|
|
10208
10553
|
})
|
|
10209
10554
|
});
|
|
10210
10555
|
};
|
|
10211
10556
|
var TwitterLogo = () => {
|
|
10212
|
-
return /* @__PURE__ */
|
|
10557
|
+
return /* @__PURE__ */ jsx39("svg", {
|
|
10213
10558
|
xmlns: "http://www.w3.org/2000/svg",
|
|
10214
10559
|
viewBox: "0 0 530 570",
|
|
10215
10560
|
className: "w-[32px]",
|
|
10216
|
-
children: /* @__PURE__ */
|
|
10561
|
+
children: /* @__PURE__ */ jsx39("path", {
|
|
10217
10562
|
fill: "currentcolor",
|
|
10218
10563
|
d: "M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"
|
|
10219
10564
|
})
|
|
10220
10565
|
});
|
|
10221
10566
|
};
|
|
10222
10567
|
var GitHubLogo = () => {
|
|
10223
|
-
return /* @__PURE__ */
|
|
10568
|
+
return /* @__PURE__ */ jsx39("svg", {
|
|
10224
10569
|
xmlns: "http://www.w3.org/2000/svg",
|
|
10225
10570
|
viewBox: "0 0 1084 1084",
|
|
10226
10571
|
className: "w-[30px]",
|
|
10227
|
-
children: /* @__PURE__ */
|
|
10572
|
+
children: /* @__PURE__ */ jsx39("path", {
|
|
10228
10573
|
fill: "currentcolor",
|
|
10229
10574
|
d: "M542 0C242.545 0 0 242.545 0 542C0 781.835 155.147 984.408 370.592 1056.22C397.692 1060.97 407.855 1044.71 407.855 1030.48C407.855 1017.61 407.178 974.923 407.178 929.53C271 954.598 235.77 896.332 224.93 865.845C218.832 850.262 192.41 802.16 169.375 789.287C150.405 779.125 123.305 754.057 168.698 753.38C211.38 752.702 241.868 792.675 252.03 808.935C300.81 890.912 378.723 867.878 409.888 853.65C414.63 818.42 428.857 794.707 444.44 781.157C323.845 767.607 197.83 720.86 197.83 513.545C197.83 454.602 218.833 405.822 253.385 367.882C247.965 354.332 228.995 298.777 258.805 224.252C258.805 224.252 304.198 210.025 407.855 279.808C451.215 267.613 497.285 261.515 543.355 261.515C589.425 261.515 635.495 267.613 678.855 279.808C782.513 209.348 827.905 224.252 827.905 224.252C857.715 298.777 838.745 354.332 833.325 367.882C867.878 405.822 888.88 453.925 888.88 513.545C888.88 721.537 762.188 767.607 641.593 781.157C661.24 798.095 678.178 830.615 678.178 881.428C678.178 953.92 677.5 1012.19 677.5 1030.48C677.5 1044.71 687.663 1061.64 714.763 1056.22C822.365 1019.91 915.868 950.759 982.106 858.512C1048.34 766.264 1083.98 655.565 1084 542C1084 242.545 841.455 0 542 0Z"
|
|
10230
10575
|
})
|
|
10231
10576
|
});
|
|
10232
10577
|
};
|
|
10233
10578
|
var EmailLogo = () => {
|
|
10234
|
-
return /* @__PURE__ */
|
|
10579
|
+
return /* @__PURE__ */ jsx39("svg", {
|
|
10235
10580
|
xmlns: "http://www.w3.org/2000/svg",
|
|
10236
10581
|
viewBox: "0 0 1299 1299",
|
|
10237
10582
|
className: "w-[30px]",
|
|
10238
|
-
children: /* @__PURE__ */
|
|
10583
|
+
children: /* @__PURE__ */ jsx39("path", {
|
|
10239
10584
|
fill: "currentcolor",
|
|
10240
10585
|
d: "M1177.22 202.969H121.781C99.3278 202.969 81.1875 221.109 81.1875 243.562V1055.44C81.1875 1077.89 99.3278 1096.03 121.781 1096.03H1177.22C1199.67 1096.03 1217.81 1077.89 1217.81 1055.44V243.562C1217.81 221.109 1199.67 202.969 1177.22 202.969ZM1126.48 343.525V1004.7H172.523V343.525L137.511 316.251L187.366 252.189L241.66 294.432H1057.47L1111.76 252.189L1161.62 316.251L1126.48 343.525V343.525ZM1057.47 294.305L649.5 611.443L241.533 294.305L187.239 252.062L137.384 316.124L172.397 343.398L605.735 680.326C618.197 690.008 633.529 695.263 649.31 695.263C665.091 695.263 680.422 690.008 692.885 680.326L1126.48 343.525L1161.49 316.251L1111.63 252.189L1057.47 294.305Z"
|
|
10241
10586
|
})
|
|
@@ -10254,54 +10599,54 @@ var TeamMemberCard = ({
|
|
|
10254
10599
|
return /* @__PURE__ */ jsxs3("div", {
|
|
10255
10600
|
className: "flex-1 rounded-[15px] flex flex-col md:flex-row gap-2 md:gap-4",
|
|
10256
10601
|
children: [
|
|
10257
|
-
/* @__PURE__ */
|
|
10602
|
+
/* @__PURE__ */ jsx39("img", {
|
|
10258
10603
|
src: image,
|
|
10259
10604
|
className: "w-[250px] h-[250px] rounded-xl border-effect"
|
|
10260
10605
|
}),
|
|
10261
10606
|
/* @__PURE__ */ jsxs3("div", {
|
|
10262
10607
|
className: "flex flex-col border-effect px-4 py-3 bg-pane",
|
|
10263
10608
|
children: [
|
|
10264
|
-
/* @__PURE__ */
|
|
10609
|
+
/* @__PURE__ */ jsx39("h2", {
|
|
10265
10610
|
className: "ext-[1.6em] mb-1 mt-3 text-[var(--ifm-color-primary)] font-brand",
|
|
10266
10611
|
children: name
|
|
10267
10612
|
}),
|
|
10268
|
-
/* @__PURE__ */
|
|
10613
|
+
/* @__PURE__ */ jsx39("strong", {
|
|
10269
10614
|
className: "font-brand",
|
|
10270
10615
|
children: title
|
|
10271
10616
|
}),
|
|
10272
|
-
/* @__PURE__ */
|
|
10617
|
+
/* @__PURE__ */ jsx39("div", {
|
|
10273
10618
|
className: "mt-5 mb-5 leading-normal font-brand",
|
|
10274
10619
|
children: description
|
|
10275
10620
|
}),
|
|
10276
|
-
/* @__PURE__ */
|
|
10621
|
+
/* @__PURE__ */ jsx39("div", {
|
|
10277
10622
|
className: "flex-1"
|
|
10278
10623
|
}),
|
|
10279
10624
|
/* @__PURE__ */ jsxs3("div", {
|
|
10280
10625
|
className: "gap-3 flex flex-row",
|
|
10281
10626
|
children: [
|
|
10282
|
-
/* @__PURE__ */
|
|
10627
|
+
/* @__PURE__ */ jsx39("a", {
|
|
10283
10628
|
className: "no-underline text-inherit",
|
|
10284
10629
|
target: "_blank",
|
|
10285
10630
|
href: twitter,
|
|
10286
|
-
children: /* @__PURE__ */
|
|
10631
|
+
children: /* @__PURE__ */ jsx39(TwitterLogo, {})
|
|
10287
10632
|
}),
|
|
10288
|
-
/* @__PURE__ */
|
|
10633
|
+
/* @__PURE__ */ jsx39("a", {
|
|
10289
10634
|
className: "no-underline text-inherit",
|
|
10290
10635
|
target: "_blank",
|
|
10291
10636
|
href: linkedin,
|
|
10292
|
-
children: /* @__PURE__ */
|
|
10637
|
+
children: /* @__PURE__ */ jsx39(LinkedInLogo, {})
|
|
10293
10638
|
}),
|
|
10294
|
-
/* @__PURE__ */
|
|
10639
|
+
/* @__PURE__ */ jsx39("a", {
|
|
10295
10640
|
className: "no-underline text-inherit",
|
|
10296
10641
|
target: "_blank",
|
|
10297
10642
|
href: github,
|
|
10298
|
-
children: /* @__PURE__ */
|
|
10643
|
+
children: /* @__PURE__ */ jsx39(GitHubLogo, {})
|
|
10299
10644
|
}),
|
|
10300
|
-
/* @__PURE__ */
|
|
10645
|
+
/* @__PURE__ */ jsx39("a", {
|
|
10301
10646
|
className: "no-underline text-inherit",
|
|
10302
10647
|
target: "_blank",
|
|
10303
10648
|
href: `mailto:${email}`,
|
|
10304
|
-
children: /* @__PURE__ */
|
|
10649
|
+
children: /* @__PURE__ */ jsx39(EmailLogo, {})
|
|
10305
10650
|
})
|
|
10306
10651
|
]
|
|
10307
10652
|
})
|
|
@@ -10314,7 +10659,7 @@ var TeamCardsLayout = () => {
|
|
|
10314
10659
|
return /* @__PURE__ */ jsxs3("div", {
|
|
10315
10660
|
className: "flex flex-col gap-12 md:gap-4",
|
|
10316
10661
|
children: [
|
|
10317
|
-
/* @__PURE__ */
|
|
10662
|
+
/* @__PURE__ */ jsx39(TeamMemberCard, {
|
|
10318
10663
|
name: "Jonny Burger",
|
|
10319
10664
|
title: "Chief Hacker",
|
|
10320
10665
|
description: "Making cool software for myself and others and getting to know all kinds of different people - that's what makes Remotion my dream job!",
|
|
@@ -10324,7 +10669,7 @@ var TeamCardsLayout = () => {
|
|
|
10324
10669
|
github: "https://github.com/JonnyBurger",
|
|
10325
10670
|
email: "jonny@remotion.dev"
|
|
10326
10671
|
}),
|
|
10327
|
-
/* @__PURE__ */
|
|
10672
|
+
/* @__PURE__ */ jsx39(TeamMemberCard, {
|
|
10328
10673
|
name: "Mehmet Ademi",
|
|
10329
10674
|
title: "Business Manager",
|
|
10330
10675
|
description: "Transitioning from traditional business, Remotion allowed me to merge my passion for technology and business in a distinctive way.",
|
|
@@ -10334,7 +10679,7 @@ var TeamCardsLayout = () => {
|
|
|
10334
10679
|
github: "https://github.com/MehmetAdemi",
|
|
10335
10680
|
email: "mehmet@remotion.dev"
|
|
10336
10681
|
}),
|
|
10337
|
-
/* @__PURE__ */
|
|
10682
|
+
/* @__PURE__ */ jsx39(TeamMemberCard, {
|
|
10338
10683
|
name: "Igor Samokhovets",
|
|
10339
10684
|
title: "Product Engineer",
|
|
10340
10685
|
description: "With a background in music industry and a passion for coding, I've been building tools to help musicians create. Remotion is the perfect place to blend my tech skills and creativity.",
|
|
@@ -10349,29 +10694,29 @@ var TeamCardsLayout = () => {
|
|
|
10349
10694
|
};
|
|
10350
10695
|
|
|
10351
10696
|
// src/components/experts/experts-icons.tsx
|
|
10352
|
-
import { jsx as
|
|
10697
|
+
import { jsx as jsx41 } from "react/jsx-runtime";
|
|
10353
10698
|
var DiscordLogo = () => {
|
|
10354
|
-
return /* @__PURE__ */
|
|
10699
|
+
return /* @__PURE__ */ jsx41("svg", {
|
|
10355
10700
|
xmlns: "http://www.w3.org/2000/svg",
|
|
10356
10701
|
viewBox: "0 0 24 24",
|
|
10357
10702
|
style: {
|
|
10358
10703
|
width: 30,
|
|
10359
10704
|
marginRight: 10
|
|
10360
10705
|
},
|
|
10361
|
-
children: /* @__PURE__ */
|
|
10706
|
+
children: /* @__PURE__ */ jsx41("path", {
|
|
10362
10707
|
fill: "white",
|
|
10363
10708
|
d: "M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418z"
|
|
10364
10709
|
})
|
|
10365
10710
|
});
|
|
10366
10711
|
};
|
|
10367
10712
|
var PersonalWebsite = () => {
|
|
10368
|
-
return /* @__PURE__ */
|
|
10713
|
+
return /* @__PURE__ */ jsx41("svg", {
|
|
10369
10714
|
xmlns: "http://www.w3.org/2000/svg",
|
|
10370
10715
|
viewBox: "0 0 576 576",
|
|
10371
10716
|
style: {
|
|
10372
10717
|
width: 30
|
|
10373
10718
|
},
|
|
10374
|
-
children: /* @__PURE__ */
|
|
10719
|
+
children: /* @__PURE__ */ jsx41("path", {
|
|
10375
10720
|
fill: "currentcolor",
|
|
10376
10721
|
d: "M317.9 422.7C296.4 465.6 272.7 480 256 480c-7.9 0-17.3-3.2-27.3-11l-6.9 18.6c-2.9 7.8-7.7 14.7-13.9 19.9c15.6 3 31.6 4.5 48.1 4.5c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256c0 16.4 1.5 32.5 4.5 48.1c5.3-6.2 12.1-11 19.9-13.9l9.6-3.5c-1.4-10-2.1-20.2-2.1-30.6c0-22.2 3.2-43.7 9.3-64H132c-2.5 19.2-3.9 39.3-4 60l32.2-11.9c.5-16.7 1.9-32.8 4.1-48.1H347.7c2.8 20.2 4.3 41.7 4.3 64s-1.5 43.8-4.3 64H283.6l-11.8 32H342c-5.9 27-14.2 50.9-24.1 70.7zM194.1 89.3C215.6 46.4 239.3 32 256 32s40.4 14.4 61.9 57.3c9.9 19.8 18.2 43.7 24.1 70.7H170c5.9-27 14.2-50.9 24.1-70.7zM384 256c0-22.1-1.4-43.5-4-64h90.8c6 20.3 9.3 41.8 9.3 64s-3.2 43.7-9.3 64H380c2.6-20.5 4-41.9 4-64zm-9.3-96c-9.6-47.6-26.2-88-47.2-116.3c57.8 19.5 105 61.8 130.9 116.3H374.7zM53.6 160c25.9-54.5 73.1-96.9 130.9-116.3c-21 28.3-37.5 68.8-47.2 116.3H53.6zM374.7 352h83.8c-25.9 54.5-73.1 96.9-130.9 116.3c21-28.3 37.6-68.8 47.2-116.3zM271 261.5c2.2-5.9 .7-12.4-3.7-16.8s-11-5.9-16.8-3.7l-215 79.2c-6.2 2.3-10.3 8.1-10.5 14.7s3.8 12.6 9.9 15.1l74 30.5L4.7 484.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L131.5 403.1l30.5 74c2.5 6.1 8.5 10 15.1 9.9s12.4-4.3 14.7-10.5l79.2-215zM143.3 360L85.1 336 229 283 176 426.9l-24-58.2c-1.6-3.9-4.8-7.1-8.7-8.7z"
|
|
10377
10722
|
})
|
|
@@ -10379,7 +10724,7 @@ var PersonalWebsite = () => {
|
|
|
10379
10724
|
};
|
|
10380
10725
|
|
|
10381
10726
|
// src/components/experts/ExpertsPage.tsx
|
|
10382
|
-
import { jsx as
|
|
10727
|
+
import { jsx as jsx42, jsxs as jsxs4, Fragment } from "react/jsx-runtime";
|
|
10383
10728
|
var arrowIcon = {
|
|
10384
10729
|
height: 16,
|
|
10385
10730
|
marginLeft: 10
|
|
@@ -10413,10 +10758,10 @@ var ExpertCard = ({ expert, Link }) => {
|
|
|
10413
10758
|
return /* @__PURE__ */ jsxs4("div", {
|
|
10414
10759
|
className: "flex-1 rounded-[15px] flex flex-col md:flex-row gap-2 md:gap-4",
|
|
10415
10760
|
children: [
|
|
10416
|
-
/* @__PURE__ */
|
|
10761
|
+
/* @__PURE__ */ jsx42(Link, {
|
|
10417
10762
|
href: `/experts/${expert.slug}`,
|
|
10418
10763
|
className: "no-underline text-inherit",
|
|
10419
|
-
children: /* @__PURE__ */
|
|
10764
|
+
children: /* @__PURE__ */ jsx42("img", {
|
|
10420
10765
|
src: expert.image,
|
|
10421
10766
|
alt: `Profile picture of ${expert.name}`,
|
|
10422
10767
|
className: "w-[250px] h-[250px] rounded-xl border-effect object-cover"
|
|
@@ -10425,15 +10770,15 @@ var ExpertCard = ({ expert, Link }) => {
|
|
|
10425
10770
|
/* @__PURE__ */ jsxs4("div", {
|
|
10426
10771
|
className: "flex flex-col border-effect px-4 py-3 bg-pane flex-1",
|
|
10427
10772
|
children: [
|
|
10428
|
-
/* @__PURE__ */
|
|
10773
|
+
/* @__PURE__ */ jsx42(Link, {
|
|
10429
10774
|
href: `/experts/${expert.slug}`,
|
|
10430
10775
|
className: "no-underline text-inherit",
|
|
10431
|
-
children: /* @__PURE__ */
|
|
10776
|
+
children: /* @__PURE__ */ jsx42("h2", {
|
|
10432
10777
|
className: "text-[1.6em] mb-1 mt-3 text-[var(--ifm-color-primary)] font-brand",
|
|
10433
10778
|
children: expert.name
|
|
10434
10779
|
})
|
|
10435
10780
|
}),
|
|
10436
|
-
/* @__PURE__ */
|
|
10781
|
+
/* @__PURE__ */ jsx42("div", {
|
|
10437
10782
|
className: "mt-2 mb-3 leading-normal font-brand",
|
|
10438
10783
|
children: expert.description
|
|
10439
10784
|
}),
|
|
@@ -10446,11 +10791,11 @@ var ExpertCard = ({ expert, Link }) => {
|
|
|
10446
10791
|
children: [
|
|
10447
10792
|
"View profile",
|
|
10448
10793
|
" ",
|
|
10449
|
-
/* @__PURE__ */
|
|
10794
|
+
/* @__PURE__ */ jsx42("svg", {
|
|
10450
10795
|
style: arrowIcon,
|
|
10451
10796
|
xmlns: "http://www.w3.org/2000/svg",
|
|
10452
10797
|
viewBox: "0 0 448 512",
|
|
10453
|
-
children: /* @__PURE__ */
|
|
10798
|
+
children: /* @__PURE__ */ jsx42("path", {
|
|
10454
10799
|
fill: "currentColor",
|
|
10455
10800
|
d: "M438.6 278.6l-160 160C272.4 444.9 264.2 448 256 448s-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L338.8 288H32C14.33 288 .0016 273.7 .0016 256S14.33 224 32 224h306.8l-105.4-105.4c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l160 160C451.1 245.9 451.1 266.1 438.6 278.6z"
|
|
10456
10801
|
})
|
|
@@ -10459,7 +10804,7 @@ var ExpertCard = ({ expert, Link }) => {
|
|
|
10459
10804
|
}),
|
|
10460
10805
|
expert.videocall ? /* @__PURE__ */ jsxs4(Fragment, {
|
|
10461
10806
|
children: [
|
|
10462
|
-
/* @__PURE__ */
|
|
10807
|
+
/* @__PURE__ */ jsx42("br", {}),
|
|
10463
10808
|
/* @__PURE__ */ jsxs4("a", {
|
|
10464
10809
|
className: "no-underline text-brand font-brand font-bold inline-flex flex-row items-center",
|
|
10465
10810
|
target: "_blank",
|
|
@@ -10467,11 +10812,11 @@ var ExpertCard = ({ expert, Link }) => {
|
|
|
10467
10812
|
children: [
|
|
10468
10813
|
"Book a call",
|
|
10469
10814
|
" ",
|
|
10470
|
-
/* @__PURE__ */
|
|
10815
|
+
/* @__PURE__ */ jsx42("svg", {
|
|
10471
10816
|
style: arrowIcon,
|
|
10472
10817
|
xmlns: "http://www.w3.org/2000/svg",
|
|
10473
10818
|
viewBox: "0 0 448 512",
|
|
10474
|
-
children: /* @__PURE__ */
|
|
10819
|
+
children: /* @__PURE__ */ jsx42("path", {
|
|
10475
10820
|
fill: "currentColor",
|
|
10476
10821
|
d: "M438.6 278.6l-160 160C272.4 444.9 264.2 448 256 448s-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L338.8 288H32C14.33 288 .0016 273.7 .0016 256S14.33 224 32 224h306.8l-105.4-105.4c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l160 160C451.1 245.9 451.1 266.1 438.6 278.6z"
|
|
10477
10822
|
})
|
|
@@ -10482,48 +10827,48 @@ var ExpertCard = ({ expert, Link }) => {
|
|
|
10482
10827
|
}) : null
|
|
10483
10828
|
]
|
|
10484
10829
|
}),
|
|
10485
|
-
/* @__PURE__ */
|
|
10830
|
+
/* @__PURE__ */ jsx42("div", {
|
|
10486
10831
|
className: "flex-1"
|
|
10487
10832
|
}),
|
|
10488
10833
|
/* @__PURE__ */ jsxs4("div", {
|
|
10489
10834
|
className: "gap-3 flex flex-row flex-wrap",
|
|
10490
10835
|
children: [
|
|
10491
|
-
expert.website ? /* @__PURE__ */
|
|
10836
|
+
expert.website ? /* @__PURE__ */ jsx42("a", {
|
|
10492
10837
|
className: "no-underline text-inherit",
|
|
10493
10838
|
target: "_blank",
|
|
10494
10839
|
href: expert.website,
|
|
10495
|
-
children: /* @__PURE__ */
|
|
10840
|
+
children: /* @__PURE__ */ jsx42(PersonalWebsite, {})
|
|
10496
10841
|
}) : null,
|
|
10497
|
-
expert.x ? /* @__PURE__ */
|
|
10842
|
+
expert.x ? /* @__PURE__ */ jsx42("a", {
|
|
10498
10843
|
className: "no-underline text-inherit",
|
|
10499
10844
|
target: "_blank",
|
|
10500
10845
|
href: `https://x.com/${expert.x}`,
|
|
10501
|
-
children: /* @__PURE__ */
|
|
10846
|
+
children: /* @__PURE__ */ jsx42(TwitterLogo, {})
|
|
10502
10847
|
}) : null,
|
|
10503
|
-
expert.github ? /* @__PURE__ */
|
|
10848
|
+
expert.github ? /* @__PURE__ */ jsx42("a", {
|
|
10504
10849
|
className: "no-underline text-inherit",
|
|
10505
10850
|
target: "_blank",
|
|
10506
10851
|
href: `https://github.com/${expert.github}`,
|
|
10507
|
-
children: /* @__PURE__ */
|
|
10852
|
+
children: /* @__PURE__ */ jsx42(GitHubLogo, {})
|
|
10508
10853
|
}) : null,
|
|
10509
|
-
expert.linkedin ? /* @__PURE__ */
|
|
10854
|
+
expert.linkedin ? /* @__PURE__ */ jsx42("a", {
|
|
10510
10855
|
className: "no-underline text-inherit",
|
|
10511
10856
|
target: "_blank",
|
|
10512
10857
|
href: `https://www.linkedin.com/${expert.linkedin}`,
|
|
10513
|
-
children: /* @__PURE__ */
|
|
10858
|
+
children: /* @__PURE__ */ jsx42(LinkedInLogo, {})
|
|
10514
10859
|
}) : null,
|
|
10515
|
-
expert.email ? /* @__PURE__ */
|
|
10860
|
+
expert.email ? /* @__PURE__ */ jsx42("a", {
|
|
10516
10861
|
className: "no-underline text-inherit",
|
|
10517
10862
|
target: "_blank",
|
|
10518
10863
|
href: `mailto:${expert.email}`,
|
|
10519
|
-
children: /* @__PURE__ */
|
|
10864
|
+
children: /* @__PURE__ */ jsx42(EmailLogo, {})
|
|
10520
10865
|
}) : null,
|
|
10521
|
-
expert.discord ? /* @__PURE__ */
|
|
10866
|
+
expert.discord ? /* @__PURE__ */ jsx42("a", {
|
|
10522
10867
|
className: "no-underline text-inherit",
|
|
10523
10868
|
target: "_blank",
|
|
10524
10869
|
href: `https://discord.com/users/${expert.discord.userId}`,
|
|
10525
10870
|
title: `@${expert.discord.username} on Discord`,
|
|
10526
|
-
children: /* @__PURE__ */
|
|
10871
|
+
children: /* @__PURE__ */ jsx42(DiscordLogo, {})
|
|
10527
10872
|
}) : null
|
|
10528
10873
|
]
|
|
10529
10874
|
})
|
|
@@ -10533,18 +10878,18 @@ var ExpertCard = ({ expert, Link }) => {
|
|
|
10533
10878
|
});
|
|
10534
10879
|
};
|
|
10535
10880
|
var ExpertsPageContent = ({ Link }) => {
|
|
10536
|
-
const expertsInRandomOrder =
|
|
10881
|
+
const expertsInRandomOrder = useMemo40(() => {
|
|
10537
10882
|
if (typeof window === "undefined") {
|
|
10538
10883
|
return [];
|
|
10539
10884
|
}
|
|
10540
10885
|
return experts.sort((a, b) => random(a.name + todayHash) - random(b.name + todayHash));
|
|
10541
10886
|
}, []);
|
|
10542
|
-
return /* @__PURE__ */
|
|
10887
|
+
return /* @__PURE__ */ jsx42("div", {
|
|
10543
10888
|
className: "relative bg-[var(--background)]",
|
|
10544
10889
|
children: /* @__PURE__ */ jsxs4("div", {
|
|
10545
10890
|
style: wrapperStyle,
|
|
10546
10891
|
children: [
|
|
10547
|
-
/* @__PURE__ */
|
|
10892
|
+
/* @__PURE__ */ jsx42("h1", {
|
|
10548
10893
|
className: "experts-pagetitle",
|
|
10549
10894
|
children: "Find a Remotion Expert"
|
|
10550
10895
|
}),
|
|
@@ -10552,16 +10897,16 @@ var ExpertsPageContent = ({ Link }) => {
|
|
|
10552
10897
|
className: "experts-tagline",
|
|
10553
10898
|
children: [
|
|
10554
10899
|
"Get help by booking a call or hiring these freelancers to work on your Remotion project.",
|
|
10555
|
-
/* @__PURE__ */
|
|
10900
|
+
/* @__PURE__ */ jsx42("br", {}),
|
|
10556
10901
|
"They appear in random order.",
|
|
10557
10902
|
" "
|
|
10558
10903
|
]
|
|
10559
10904
|
}),
|
|
10560
|
-
/* @__PURE__ */
|
|
10905
|
+
/* @__PURE__ */ jsx42("p", {
|
|
10561
10906
|
className: "experts-tagline",
|
|
10562
|
-
children: /* @__PURE__ */
|
|
10907
|
+
children: /* @__PURE__ */ jsx42("a", {
|
|
10563
10908
|
href: "mailto:hi@remotion.dev?subject=Remotion+Experts+directory",
|
|
10564
|
-
children: /* @__PURE__ */
|
|
10909
|
+
children: /* @__PURE__ */ jsx42("strong", {
|
|
10565
10910
|
children: "Are you available for hire? Let us know!"
|
|
10566
10911
|
})
|
|
10567
10912
|
})
|
|
@@ -10578,20 +10923,20 @@ var ExpertsPageContent = ({ Link }) => {
|
|
|
10578
10923
|
/* @__PURE__ */ jsxs4("g", {
|
|
10579
10924
|
clipPath: "url(#clip0_1_2)",
|
|
10580
10925
|
children: [
|
|
10581
|
-
/* @__PURE__ */
|
|
10926
|
+
/* @__PURE__ */ jsx42("path", {
|
|
10582
10927
|
d: "M511.5 213C532.991 213 551.678 225.088 561.08 242.842C580.293 236.943 602.018 241.615 617.201 256.799C632.385 271.982 637.057 293.765 631.158 312.92C648.912 322.322 661 341.009 661 362.5C661 383.991 648.912 402.678 631.158 412.08C637.057 431.293 632.385 453.018 617.201 468.201C602.018 483.385 580.235 488.057 561.08 482.158C551.678 499.912 532.991 512 511.5 512C490.009 512 471.322 499.912 461.92 482.158C442.707 488.057 420.982 483.385 405.799 468.201C390.615 453.018 385.943 431.235 391.842 412.08C374.088 402.678 362 383.991 362 362.5C362 341.009 374.088 322.322 391.842 312.92C385.943 293.707 390.615 271.982 405.799 256.799C420.982 241.615 442.765 236.943 461.92 242.842C471.322 225.088 490.009 213 511.5 213ZM568.146 344.396L578.074 334.469L558.219 314.672L548.291 324.599L492.812 380.078L470.037 357.303L460.109 347.375L440.312 367.172L450.24 377.1L482.943 409.803L492.871 419.73L502.799 409.803L568.146 344.396Z",
|
|
10583
10928
|
fill: "currentcolor"
|
|
10584
10929
|
}),
|
|
10585
|
-
/* @__PURE__ */
|
|
10930
|
+
/* @__PURE__ */ jsx42("path", {
|
|
10586
10931
|
d: "M184 48H328C332.4 48 336 51.6 336 56V96H176V56C176 51.6 179.6 48 184 48ZM128 56V96H64C28.7 96 0 124.7 0 160V256H192H352H360.2C392.5 216.9 441.3 192 496 192C501.4 192 506.7 192.2 512 192.7V160C512 124.7 483.3 96 448 96H384V56C384 25.1 358.9 0 328 0H184C153.1 0 128 25.1 128 56ZM320 352H224C206.3 352 192 337.7 192 320V288H0V416C0 451.3 28.7 480 64 480H360.2C335.1 449.6 320 410.5 320 368C320 362.6 320.2 357.3 320.7 352H320Z",
|
|
10587
10932
|
fill: "currentcolor"
|
|
10588
10933
|
})
|
|
10589
10934
|
]
|
|
10590
10935
|
}),
|
|
10591
|
-
/* @__PURE__ */
|
|
10592
|
-
children: /* @__PURE__ */
|
|
10936
|
+
/* @__PURE__ */ jsx42("defs", {
|
|
10937
|
+
children: /* @__PURE__ */ jsx42("clipPath", {
|
|
10593
10938
|
id: "clip0_1_2",
|
|
10594
|
-
children: /* @__PURE__ */
|
|
10939
|
+
children: /* @__PURE__ */ jsx42("rect", {
|
|
10595
10940
|
width: "661",
|
|
10596
10941
|
height: "512",
|
|
10597
10942
|
fill: "white"
|
|
@@ -10605,22 +10950,22 @@ var ExpertsPageContent = ({ Link }) => {
|
|
|
10605
10950
|
children: [
|
|
10606
10951
|
"Remotion Experts are independent freelancers with proven Remotion expertise and portfolios. However,",
|
|
10607
10952
|
" ",
|
|
10608
|
-
/* @__PURE__ */
|
|
10953
|
+
/* @__PURE__ */ jsx42("strong", {
|
|
10609
10954
|
children: " perform due diligence "
|
|
10610
10955
|
}),
|
|
10611
10956
|
" before hiring. ",
|
|
10612
|
-
/* @__PURE__ */
|
|
10957
|
+
/* @__PURE__ */ jsx42("br", {}),
|
|
10613
10958
|
" ",
|
|
10614
10959
|
"Remotion does not arbitrate disputes between experts and clients."
|
|
10615
10960
|
]
|
|
10616
10961
|
})
|
|
10617
10962
|
]
|
|
10618
10963
|
}),
|
|
10619
|
-
/* @__PURE__ */
|
|
10620
|
-
/* @__PURE__ */
|
|
10964
|
+
/* @__PURE__ */ jsx42("br", {}),
|
|
10965
|
+
/* @__PURE__ */ jsx42("div", {
|
|
10621
10966
|
className: "flex flex-col gap-12 md:gap-4",
|
|
10622
10967
|
children: expertsInRandomOrder.map((e) => {
|
|
10623
|
-
return /* @__PURE__ */
|
|
10968
|
+
return /* @__PURE__ */ jsx42(ExpertCard, {
|
|
10624
10969
|
expert: e,
|
|
10625
10970
|
Link
|
|
10626
10971
|
}, e.name);
|