@remotion/promo-pages 4.0.489 → 4.0.491
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 +1018 -556
- package/dist/components/Homepage.js +5 -17
- package/dist/components/homepage/CommunityStatsItems.js +1 -1
- package/dist/components/homepage/Demo/Card.d.ts +3 -3
- package/dist/components/homepage/Demo/DemoRender.d.ts +1 -1
- package/dist/components/homepage/Demo/DisplayedEmoji.js +12 -4
- package/dist/components/homepage/Demo/math.d.ts +1 -1
- package/dist/components/homepage/GitHubButton.js +1 -1
- package/dist/components/homepage/MakeVideosAgentically.d.ts +1 -0
- package/dist/components/homepage/MakeVideosAgentically.js +4 -6
- package/dist/components/homepage/MakeVideosInteractively.d.ts +2 -0
- package/dist/components/homepage/MakeVideosInteractively.js +3 -6
- package/dist/components/homepage/MakeVideosLinks.js +1 -1
- package/dist/components/homepage/MakeVideosProgrammatically.d.ts +2 -0
- package/dist/components/homepage/MakeVideosProgrammatically.js +2 -5
- package/dist/components/homepage/Pricing.d.ts +6 -1
- package/dist/components/homepage/Pricing.js +12 -2
- package/dist/components/homepage/WriteInReact.js +1 -1
- package/dist/components/team/TrustSection.js +1 -1
- package/dist/design.js +355 -194
- package/dist/experts.js +340 -168
- package/dist/homepage/Pricing.js +372 -211
- package/dist/prompts/PromptsGallery.js +352 -191
- package/dist/prompts/PromptsShow.js +358 -197
- package/dist/prompts/PromptsSubmit.js +344 -183
- package/dist/team.js +329 -168
- package/dist/template-modal-content.js +372 -211
- package/dist/templates.js +373 -209
- package/package.json +13 -13
package/dist/homepage/Pricing.js
CHANGED
|
@@ -38,7 +38,7 @@ import { useMemo as useMemo52 } from "react";
|
|
|
38
38
|
// ../design/dist/esm/index.mjs
|
|
39
39
|
import * as React23 from "react";
|
|
40
40
|
import * as React3 from "react";
|
|
41
|
-
import { Fragment as
|
|
41
|
+
import { Fragment as Fragment22, jsx as jsx43 } from "react/jsx-runtime";
|
|
42
42
|
import React52, { useCallback as useCallback27, useRef as useRef210, useState as useState22 } from "react";
|
|
43
43
|
|
|
44
44
|
// ../../node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
|
|
@@ -4386,13 +4386,12 @@ import { jsx as jsx34 } from "react/jsx-runtime";
|
|
|
4386
4386
|
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
4387
4387
|
import React39, { useMemo as useMemo37 } from "react";
|
|
4388
4388
|
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
4389
|
-
import {
|
|
4390
|
-
Children,
|
|
4389
|
+
import React41, {
|
|
4391
4390
|
forwardRef as forwardRef14,
|
|
4392
4391
|
useMemo as useMemo38
|
|
4393
4392
|
} from "react";
|
|
4394
4393
|
import React40 from "react";
|
|
4395
|
-
import { jsx as jsx37 } from "react/jsx-runtime";
|
|
4394
|
+
import { jsx as jsx37, jsxs as jsxs3, Fragment } from "react/jsx-runtime";
|
|
4396
4395
|
import React42 from "react";
|
|
4397
4396
|
import { forwardRef as forwardRef16, useCallback as useCallback25, useContext as useContext39 } from "react";
|
|
4398
4397
|
import {
|
|
@@ -5282,26 +5281,20 @@ var continueRenderInternal = ({
|
|
|
5282
5281
|
if (typeof handle !== "number") {
|
|
5283
5282
|
throw new TypeError("The parameter passed into continueRender() must be the return value of delayRender() which is a number. Got: " + JSON.stringify(handle));
|
|
5284
5283
|
}
|
|
5285
|
-
|
|
5286
|
-
|
|
5287
|
-
|
|
5288
|
-
|
|
5289
|
-
|
|
5290
|
-
|
|
5291
|
-
|
|
5292
|
-
|
|
5293
|
-
|
|
5294
|
-
|
|
5295
|
-
|
|
5296
|
-
|
|
5297
|
-
|
|
5298
|
-
|
|
5299
|
-
delete scope.remotion_delayRenderTimeouts[handle];
|
|
5300
|
-
}
|
|
5301
|
-
return false;
|
|
5302
|
-
}
|
|
5303
|
-
return true;
|
|
5304
|
-
});
|
|
5284
|
+
const handleExists = scope.remotion_delayRenderHandles.includes(handle);
|
|
5285
|
+
const timeoutEntry = scope.remotion_delayRenderTimeouts[handle];
|
|
5286
|
+
if (handleExists && environment.isRendering && timeoutEntry) {
|
|
5287
|
+
const { label: label2, startTime, timeout } = timeoutEntry;
|
|
5288
|
+
clearTimeout(timeout);
|
|
5289
|
+
const message = [
|
|
5290
|
+
label2 ? `"${label2}"` : "A handle",
|
|
5291
|
+
DELAY_RENDER_CLEAR_TOKEN,
|
|
5292
|
+
`${Date.now() - startTime}ms`
|
|
5293
|
+
].filter(truthy).join(" ");
|
|
5294
|
+
Log.verbose({ logLevel, tag: "delayRender()" }, message);
|
|
5295
|
+
delete scope.remotion_delayRenderTimeouts[handle];
|
|
5296
|
+
}
|
|
5297
|
+
scope.remotion_delayRenderHandles = scope.remotion_delayRenderHandles.filter((h) => h !== handle);
|
|
5305
5298
|
if (scope.remotion_delayRenderHandles.length === 0) {
|
|
5306
5299
|
scope.remotion_renderReady = true;
|
|
5307
5300
|
}
|
|
@@ -5574,7 +5567,7 @@ var getComponentsToAddStacksTo = () => componentsToAddStacksTo;
|
|
|
5574
5567
|
var addSequenceStackTraces = (component) => {
|
|
5575
5568
|
componentsToAddStacksTo.push(component);
|
|
5576
5569
|
};
|
|
5577
|
-
var VERSION = "4.0.
|
|
5570
|
+
var VERSION = "4.0.491";
|
|
5578
5571
|
var checkMultipleRemotionVersions = () => {
|
|
5579
5572
|
if (typeof globalThis === "undefined") {
|
|
5580
5573
|
return;
|
|
@@ -5955,7 +5948,8 @@ var transformSchema = {
|
|
|
5955
5948
|
max: 100,
|
|
5956
5949
|
step: 0.01,
|
|
5957
5950
|
default: 1,
|
|
5958
|
-
description: "Scale"
|
|
5951
|
+
description: "Scale",
|
|
5952
|
+
defaultKeyframeOutput: "perceptual-scale"
|
|
5959
5953
|
},
|
|
5960
5954
|
"style.rotate": {
|
|
5961
5955
|
type: "rotation-css",
|
|
@@ -6186,7 +6180,7 @@ var SequenceManagerRefContext = React11.createContext({
|
|
|
6186
6180
|
current: []
|
|
6187
6181
|
});
|
|
6188
6182
|
var makeSequencePropsSubscriptionKey = (key) => {
|
|
6189
|
-
return `${key.nodePath.join(".")}
|
|
6183
|
+
return `${key.absolutePath}\x00${key.nodePath.join(".")}\x00${key.sequenceKeys.join(".")}\x00${key.effectKeys.map((keys) => keys.join(".")).join(".")}`;
|
|
6190
6184
|
};
|
|
6191
6185
|
var VisualModePropStatusesContext = React11.createContext({
|
|
6192
6186
|
propStatuses: {}
|
|
@@ -6759,8 +6753,20 @@ var serializeStringInterpolationValue = ({
|
|
|
6759
6753
|
}
|
|
6760
6754
|
return values.slice(0, dimensions).map((value, index) => `${stringifyNumber(value)}${units[index]}`).join(" ");
|
|
6761
6755
|
};
|
|
6756
|
+
var toSignedArea = (scale) => {
|
|
6757
|
+
if (scale === 0) {
|
|
6758
|
+
return 0;
|
|
6759
|
+
}
|
|
6760
|
+
return Math.sign(scale) * scale * scale;
|
|
6761
|
+
};
|
|
6762
|
+
var fromSignedArea = (area) => {
|
|
6763
|
+
if (area === 0) {
|
|
6764
|
+
return 0;
|
|
6765
|
+
}
|
|
6766
|
+
return Math.sign(area) * Math.sqrt(Math.abs(area));
|
|
6767
|
+
};
|
|
6762
6768
|
function interpolateFunction(input, inputRange, outputRange, options) {
|
|
6763
|
-
const { extrapolateLeft, extrapolateRight, easing } = options;
|
|
6769
|
+
const { extrapolateLeft, extrapolateRight, easing, output } = options;
|
|
6764
6770
|
let result = input;
|
|
6765
6771
|
const [inputMin, inputMax] = inputRange;
|
|
6766
6772
|
const [outputMin, outputMax] = outputRange;
|
|
@@ -6791,7 +6797,13 @@ function interpolateFunction(input, inputRange, outputRange, options) {
|
|
|
6791
6797
|
}
|
|
6792
6798
|
result = (result - inputMin) / (inputMax - inputMin);
|
|
6793
6799
|
result = easing(result);
|
|
6794
|
-
|
|
6800
|
+
if (output === "perceptual-scale") {
|
|
6801
|
+
const signedAreaMin = toSignedArea(outputMin);
|
|
6802
|
+
const signedAreaMax = toSignedArea(outputMax);
|
|
6803
|
+
result = fromSignedArea(result * (signedAreaMax - signedAreaMin) + signedAreaMin);
|
|
6804
|
+
} else {
|
|
6805
|
+
result = result * (outputMax - outputMin) + outputMin;
|
|
6806
|
+
}
|
|
6795
6807
|
return result;
|
|
6796
6808
|
}
|
|
6797
6809
|
function findRange(input, inputRange) {
|
|
@@ -6804,6 +6816,9 @@ function findRange(input, inputRange) {
|
|
|
6804
6816
|
return i - 1;
|
|
6805
6817
|
}
|
|
6806
6818
|
var defaultEasing = (num) => num;
|
|
6819
|
+
var resolveOutputOption = (output) => {
|
|
6820
|
+
return output ?? "linear";
|
|
6821
|
+
};
|
|
6807
6822
|
var shouldExtendRightForEasing = (easing) => {
|
|
6808
6823
|
return easing.remotionShouldExtendRight === true;
|
|
6809
6824
|
};
|
|
@@ -6825,12 +6840,14 @@ var interpolateSegment = ({
|
|
|
6825
6840
|
outputRange,
|
|
6826
6841
|
easing,
|
|
6827
6842
|
extrapolateLeft,
|
|
6828
|
-
extrapolateRight
|
|
6843
|
+
extrapolateRight,
|
|
6844
|
+
output
|
|
6829
6845
|
}) => {
|
|
6830
6846
|
return interpolateFunction(input, inputRange, outputRange, {
|
|
6831
6847
|
easing,
|
|
6832
6848
|
extrapolateLeft,
|
|
6833
|
-
extrapolateRight: input > inputRange[1] && extrapolateRight === "clamp" && shouldExtendRightForEasing(easing) ? "extend" : extrapolateRight
|
|
6849
|
+
extrapolateRight: input > inputRange[1] && extrapolateRight === "clamp" && shouldExtendRightForEasing(easing) ? "extend" : extrapolateRight,
|
|
6850
|
+
output
|
|
6834
6851
|
});
|
|
6835
6852
|
};
|
|
6836
6853
|
var interpolateNumber = ({
|
|
@@ -6839,6 +6856,7 @@ var interpolateNumber = ({
|
|
|
6839
6856
|
outputRange,
|
|
6840
6857
|
options
|
|
6841
6858
|
}) => {
|
|
6859
|
+
const output = resolveOutputOption(options?.output);
|
|
6842
6860
|
if (inputRange.length === 1) {
|
|
6843
6861
|
return outputRange[0];
|
|
6844
6862
|
}
|
|
@@ -6863,7 +6881,8 @@ var interpolateNumber = ({
|
|
|
6863
6881
|
outputRange: [outputRange[range], outputRange[range + 1]],
|
|
6864
6882
|
easing,
|
|
6865
6883
|
extrapolateLeft,
|
|
6866
|
-
extrapolateRight
|
|
6884
|
+
extrapolateRight,
|
|
6885
|
+
output
|
|
6867
6886
|
});
|
|
6868
6887
|
for (let segmentIndex = 0;segmentIndex < range; segmentIndex++) {
|
|
6869
6888
|
const previousEasing = resolveEasingForSegment({
|
|
@@ -6883,7 +6902,8 @@ var interpolateNumber = ({
|
|
|
6883
6902
|
outputRange: [outputRange[segmentIndex], outputRange[segmentIndex + 1]],
|
|
6884
6903
|
easing: previousEasing,
|
|
6885
6904
|
extrapolateLeft,
|
|
6886
|
-
extrapolateRight: "extend"
|
|
6905
|
+
extrapolateRight: "extend",
|
|
6906
|
+
output
|
|
6887
6907
|
});
|
|
6888
6908
|
result += continuedSegmentValue - outputRange[segmentIndex + 1];
|
|
6889
6909
|
}
|
|
@@ -6931,14 +6951,18 @@ var interpolateString = ({
|
|
|
6931
6951
|
}
|
|
6932
6952
|
}
|
|
6933
6953
|
}
|
|
6934
|
-
|
|
6935
|
-
|
|
6936
|
-
values
|
|
6954
|
+
const values = [0, 0, 0];
|
|
6955
|
+
for (let axis = 0;axis < dimensions; axis++) {
|
|
6956
|
+
values[axis] = interpolateNumber({
|
|
6937
6957
|
input,
|
|
6938
6958
|
inputRange,
|
|
6939
6959
|
outputRange: parsedOutputRange.map((parsed) => parsed.values[axis]),
|
|
6940
6960
|
options
|
|
6941
|
-
})
|
|
6961
|
+
});
|
|
6962
|
+
}
|
|
6963
|
+
return serializeStringInterpolationValue({
|
|
6964
|
+
kind,
|
|
6965
|
+
values,
|
|
6942
6966
|
units,
|
|
6943
6967
|
dimensions
|
|
6944
6968
|
});
|
|
@@ -7022,6 +7046,12 @@ function assertValidInterpolatePosterizeOption(posterize) {
|
|
|
7022
7046
|
throw new Error(`posterize must be a positive finite number, but got ${posterize}`);
|
|
7023
7047
|
}
|
|
7024
7048
|
}
|
|
7049
|
+
function assertValidInterpolateOutputOption(output) {
|
|
7050
|
+
if (output === undefined || output === "linear" || output === "perceptual-scale") {
|
|
7051
|
+
return;
|
|
7052
|
+
}
|
|
7053
|
+
throw new Error(`output must be "linear" or "perceptual-scale", but got ${String(output)}`);
|
|
7054
|
+
}
|
|
7025
7055
|
function interpolate(input, inputRange, outputRange, options) {
|
|
7026
7056
|
if (typeof input === "undefined") {
|
|
7027
7057
|
throw new Error("input can not be undefined");
|
|
@@ -7039,6 +7069,7 @@ function interpolate(input, inputRange, outputRange, options) {
|
|
|
7039
7069
|
checkValidInputRange(inputRange);
|
|
7040
7070
|
assertValidInterpolateEasingOption(options?.easing, inputRange.length);
|
|
7041
7071
|
assertValidInterpolatePosterizeOption(options?.posterize);
|
|
7072
|
+
assertValidInterpolateOutputOption(options?.output);
|
|
7042
7073
|
if (typeof input !== "number") {
|
|
7043
7074
|
throw new TypeError("Cannot interpolate an input which is not a number");
|
|
7044
7075
|
}
|
|
@@ -7983,6 +8014,7 @@ var interpolateKeyframedStatus = ({
|
|
|
7983
8014
|
easing: easing.map((e) => easingToFn({ easing: e, forceSpringAllowTail })),
|
|
7984
8015
|
extrapolateLeft: clamping.left,
|
|
7985
8016
|
extrapolateRight: clamping.right,
|
|
8017
|
+
output: status.output,
|
|
7986
8018
|
posterize: status.posterize
|
|
7987
8019
|
});
|
|
7988
8020
|
} catch {
|
|
@@ -8223,7 +8255,7 @@ var getFlatSchemaWithAllKeys = (schema) => {
|
|
|
8223
8255
|
const out = {};
|
|
8224
8256
|
const addKey = (key, field) => {
|
|
8225
8257
|
if (key in out) {
|
|
8226
|
-
|
|
8258
|
+
return;
|
|
8227
8259
|
}
|
|
8228
8260
|
out[key] = field;
|
|
8229
8261
|
};
|
|
@@ -8761,6 +8793,7 @@ var RegularSequenceRefForwardingFunction = ({
|
|
|
8761
8793
|
src: isMedia.data.src,
|
|
8762
8794
|
getStack: () => stackRef.current,
|
|
8763
8795
|
startMediaFrom: startMediaFrom ?? isMedia.data.startMediaFrom,
|
|
8796
|
+
mediaFrameAtSequenceZero,
|
|
8764
8797
|
volume: isMedia.data.volumes,
|
|
8765
8798
|
refForOutline: refForOutline ?? null,
|
|
8766
8799
|
isInsideSeries,
|
|
@@ -8824,6 +8857,7 @@ var RegularSequenceRefForwardingFunction = ({
|
|
|
8824
8857
|
isInsideSeries,
|
|
8825
8858
|
registeredFrozenFrame,
|
|
8826
8859
|
startMediaFrom,
|
|
8860
|
+
mediaFrameAtSequenceZero,
|
|
8827
8861
|
frozenMediaFrame
|
|
8828
8862
|
]);
|
|
8829
8863
|
const endThreshold = Math.ceil(cumulatedFrom + from + durationInFrames - 1);
|
|
@@ -10774,7 +10808,9 @@ var SharedAudioTagsContextProvider = ({ children, numberOfAudioTags }) => {
|
|
|
10774
10808
|
return;
|
|
10775
10809
|
}
|
|
10776
10810
|
if (data === undefined) {
|
|
10777
|
-
current.src
|
|
10811
|
+
if (current.src !== EMPTY_AUDIO) {
|
|
10812
|
+
current.src = EMPTY_AUDIO;
|
|
10813
|
+
}
|
|
10778
10814
|
return;
|
|
10779
10815
|
}
|
|
10780
10816
|
if (!data) {
|
|
@@ -10843,7 +10879,7 @@ var SharedAudioTagsContextProvider = ({ children, numberOfAudioTags }) => {
|
|
|
10843
10879
|
if (prevA.id === id) {
|
|
10844
10880
|
const isTheSame = compareProps(aud, prevA.props) && prevA.premounting === premounting && prevA.postmounting === postmounting;
|
|
10845
10881
|
if (isTheSame) {
|
|
10846
|
-
return prevA;
|
|
10882
|
+
return prevA.audioMounted === audioMounted ? prevA : { ...prevA, audioMounted };
|
|
10847
10883
|
}
|
|
10848
10884
|
changed = true;
|
|
10849
10885
|
return {
|
|
@@ -10855,7 +10891,7 @@ var SharedAudioTagsContextProvider = ({ children, numberOfAudioTags }) => {
|
|
|
10855
10891
|
audioMounted
|
|
10856
10892
|
};
|
|
10857
10893
|
}
|
|
10858
|
-
return prevA;
|
|
10894
|
+
return prevA.audioMounted === audioMounted ? prevA : { ...prevA, audioMounted };
|
|
10859
10895
|
});
|
|
10860
10896
|
if (changed) {
|
|
10861
10897
|
rerenderAudios();
|
|
@@ -10894,16 +10930,19 @@ var SharedAudioTagsContextProvider = ({ children, numberOfAudioTags }) => {
|
|
|
10894
10930
|
unregisterAudio,
|
|
10895
10931
|
updateAudio
|
|
10896
10932
|
]);
|
|
10933
|
+
const sharedAudioTagElements = useMemo21(() => {
|
|
10934
|
+
return refs.map(({ id, ref }) => {
|
|
10935
|
+
return /* @__PURE__ */ jsx19("audio", {
|
|
10936
|
+
ref,
|
|
10937
|
+
preload: "metadata",
|
|
10938
|
+
src: EMPTY_AUDIO
|
|
10939
|
+
}, id);
|
|
10940
|
+
});
|
|
10941
|
+
}, [refs]);
|
|
10897
10942
|
return /* @__PURE__ */ jsxs2(SharedAudioTagsContext.Provider, {
|
|
10898
10943
|
value: audioTagsValue,
|
|
10899
10944
|
children: [
|
|
10900
|
-
|
|
10901
|
-
return /* @__PURE__ */ jsx19("audio", {
|
|
10902
|
-
ref,
|
|
10903
|
-
preload: "metadata",
|
|
10904
|
-
src: EMPTY_AUDIO
|
|
10905
|
-
}, id);
|
|
10906
|
-
}),
|
|
10945
|
+
sharedAudioTagElements,
|
|
10907
10946
|
children
|
|
10908
10947
|
]
|
|
10909
10948
|
});
|
|
@@ -11364,6 +11403,7 @@ var useMediaInTimeline = ({
|
|
|
11364
11403
|
showInTimeline: true,
|
|
11365
11404
|
nonce: nonce.get(),
|
|
11366
11405
|
startMediaFrom: 0 - startsAt,
|
|
11406
|
+
mediaFrameAtSequenceZero: null,
|
|
11367
11407
|
doesVolumeChange,
|
|
11368
11408
|
loopDisplay,
|
|
11369
11409
|
playbackRate,
|
|
@@ -12997,16 +13037,16 @@ var isMissingPaintRecordError = (error2) => {
|
|
|
12997
13037
|
return error2 instanceof DOMException && error2.name === "InvalidStateError";
|
|
12998
13038
|
};
|
|
12999
13039
|
var missingPaintRecordMessage = "HtmlInCanvas: Expected the element to be inside the viewport during rendering, but Chrome had no cached paint record for it.";
|
|
13000
|
-
var
|
|
13001
|
-
|
|
13040
|
+
var resizePaintTarget = ({
|
|
13041
|
+
target,
|
|
13002
13042
|
width,
|
|
13003
13043
|
height
|
|
13004
13044
|
}) => {
|
|
13005
|
-
if (
|
|
13006
|
-
|
|
13045
|
+
if (target.width !== width) {
|
|
13046
|
+
target.width = width;
|
|
13007
13047
|
}
|
|
13008
|
-
if (
|
|
13009
|
-
|
|
13048
|
+
if (target.height !== height) {
|
|
13049
|
+
target.height = height;
|
|
13010
13050
|
}
|
|
13011
13051
|
};
|
|
13012
13052
|
var defaultOnPaint = ({
|
|
@@ -13022,7 +13062,7 @@ var defaultOnPaint = ({
|
|
|
13022
13062
|
const transform = ctx.drawElementImage(elementImage, 0, 0);
|
|
13023
13063
|
element.style.transform = transform.toString();
|
|
13024
13064
|
};
|
|
13025
|
-
var HtmlInCanvasAncestorContext = createContext23(
|
|
13065
|
+
var HtmlInCanvasAncestorContext = createContext23(null);
|
|
13026
13066
|
var HtmlInCanvasContent = forwardRef9(({
|
|
13027
13067
|
width,
|
|
13028
13068
|
height,
|
|
@@ -13034,20 +13074,22 @@ var HtmlInCanvasContent = forwardRef9(({
|
|
|
13034
13074
|
controls,
|
|
13035
13075
|
style
|
|
13036
13076
|
}, ref) => {
|
|
13037
|
-
const
|
|
13077
|
+
const ancestor = useContext31(HtmlInCanvasAncestorContext);
|
|
13038
13078
|
assertHtmlInCanvasDimensions(width, height);
|
|
13039
13079
|
const resolvedPixelDensity = resolveHtmlInCanvasPixelDensity(pixelDensity);
|
|
13040
13080
|
const canvasWidth = Math.ceil(width * resolvedPixelDensity);
|
|
13041
13081
|
const canvasHeight = Math.ceil(height * resolvedPixelDensity);
|
|
13042
13082
|
const { continueRender: continueRender2, cancelRender: cancelRender2 } = useDelayRender();
|
|
13043
|
-
const { isRendering } = useRemotionEnvironment();
|
|
13083
|
+
const { isClientSideRendering, isRendering } = useRemotionEnvironment();
|
|
13084
|
+
const canRetryMissingPaintRecord = !isRendering || isClientSideRendering;
|
|
13085
|
+
const usesDirectLayoutCanvas = onPaint === undefined && onInit === undefined;
|
|
13044
13086
|
if (!isHtmlInCanvasSupported()) {
|
|
13045
13087
|
cancelRender2(new Error(HTML_IN_CANVAS_UNSUPPORTED_MESSAGE));
|
|
13046
13088
|
}
|
|
13047
13089
|
const canvas2dRef = useRef22(null);
|
|
13048
|
-
const
|
|
13090
|
+
const paintTargetRef = useRef22(null);
|
|
13049
13091
|
const divRef = useRef22(null);
|
|
13050
|
-
const canvasSizeKey = `${width}x${height}@${resolvedPixelDensity}`;
|
|
13092
|
+
const canvasSizeKey = `${width}x${height}@${resolvedPixelDensity}-${usesDirectLayoutCanvas ? "direct" : "offscreen"}`;
|
|
13051
13093
|
const setLayoutCanvasRef = useCallback16((node) => {
|
|
13052
13094
|
canvas2dRef.current = node;
|
|
13053
13095
|
if (typeof ref === "function") {
|
|
@@ -13070,17 +13112,19 @@ var HtmlInCanvasContent = forwardRef9(({
|
|
|
13070
13112
|
const initializedRef = useRef22(false);
|
|
13071
13113
|
const onInitCleanupRef = useRef22(null);
|
|
13072
13114
|
const unmountedRef = useRef22(false);
|
|
13115
|
+
const ancestorRef = useRef22(ancestor);
|
|
13116
|
+
ancestorRef.current = ancestor;
|
|
13073
13117
|
const onPaintCb = useCallback16(async () => {
|
|
13074
13118
|
const element = divRef.current;
|
|
13075
13119
|
if (!element) {
|
|
13076
13120
|
throw new Error("Canvas or scene element not found");
|
|
13077
13121
|
}
|
|
13078
|
-
const
|
|
13079
|
-
if (!
|
|
13080
|
-
throw new Error("HtmlInCanvas:
|
|
13122
|
+
const paintTarget = paintTargetRef.current;
|
|
13123
|
+
if (!paintTarget) {
|
|
13124
|
+
throw new Error("HtmlInCanvas: paint target is not ready because the canvas is remounting");
|
|
13081
13125
|
}
|
|
13082
|
-
|
|
13083
|
-
|
|
13126
|
+
resizePaintTarget({
|
|
13127
|
+
target: paintTarget,
|
|
13084
13128
|
width: canvasWidth,
|
|
13085
13129
|
height: canvasHeight
|
|
13086
13130
|
});
|
|
@@ -13091,22 +13135,30 @@ var HtmlInCanvasContent = forwardRef9(({
|
|
|
13091
13135
|
}
|
|
13092
13136
|
const handle = delayRender("onPaint");
|
|
13093
13137
|
if (!initializedRef.current) {
|
|
13094
|
-
|
|
13095
|
-
|
|
13096
|
-
|
|
13097
|
-
}
|
|
13098
|
-
|
|
13099
|
-
|
|
13100
|
-
|
|
13138
|
+
const currentOnInit = onInitRef.current;
|
|
13139
|
+
if (!currentOnInit) {
|
|
13140
|
+
initializedRef.current = true;
|
|
13141
|
+
} else {
|
|
13142
|
+
let initImage;
|
|
13143
|
+
try {
|
|
13144
|
+
initImage = placeholderCanvas.captureElementImage(element);
|
|
13145
|
+
} catch (error2) {
|
|
13146
|
+
if (isMissingPaintRecordError(error2) && canRetryMissingPaintRecord) {
|
|
13147
|
+
continueRender2(handle);
|
|
13148
|
+
return;
|
|
13149
|
+
}
|
|
13150
|
+
if (isMissingPaintRecordError(error2)) {
|
|
13151
|
+
throw new Error(missingPaintRecordMessage);
|
|
13152
|
+
}
|
|
13101
13153
|
throw error2;
|
|
13102
13154
|
}
|
|
13103
|
-
}
|
|
13104
|
-
if (initImage) {
|
|
13105
13155
|
initializedRef.current = true;
|
|
13106
|
-
|
|
13107
|
-
|
|
13156
|
+
try {
|
|
13157
|
+
if (paintTarget instanceof HTMLCanvasElement) {
|
|
13158
|
+
throw new Error("HtmlInCanvas: onInit requires an OffscreenCanvas paint target");
|
|
13159
|
+
}
|
|
13108
13160
|
const cleanup = await currentOnInit({
|
|
13109
|
-
canvas:
|
|
13161
|
+
canvas: paintTarget,
|
|
13110
13162
|
element,
|
|
13111
13163
|
elementImage: initImage,
|
|
13112
13164
|
pixelDensity: resolvedPixelDensity
|
|
@@ -13119,15 +13171,16 @@ var HtmlInCanvasContent = forwardRef9(({
|
|
|
13119
13171
|
} else {
|
|
13120
13172
|
onInitCleanupRef.current = cleanup;
|
|
13121
13173
|
}
|
|
13174
|
+
} finally {
|
|
13175
|
+
initImage.close();
|
|
13122
13176
|
}
|
|
13123
13177
|
}
|
|
13124
13178
|
}
|
|
13125
|
-
const handler = onPaintRef.current ?? defaultOnPaint;
|
|
13126
13179
|
let elImage;
|
|
13127
13180
|
try {
|
|
13128
13181
|
elImage = placeholderCanvas.captureElementImage(element);
|
|
13129
13182
|
} catch (error2) {
|
|
13130
|
-
if (isMissingPaintRecordError(error2) &&
|
|
13183
|
+
if (isMissingPaintRecordError(error2) && canRetryMissingPaintRecord) {
|
|
13131
13184
|
continueRender2(handle);
|
|
13132
13185
|
return;
|
|
13133
13186
|
}
|
|
@@ -13136,20 +13189,41 @@ var HtmlInCanvasContent = forwardRef9(({
|
|
|
13136
13189
|
}
|
|
13137
13190
|
throw error2;
|
|
13138
13191
|
}
|
|
13139
|
-
|
|
13140
|
-
|
|
13141
|
-
|
|
13142
|
-
|
|
13143
|
-
|
|
13144
|
-
|
|
13145
|
-
|
|
13146
|
-
|
|
13147
|
-
|
|
13148
|
-
|
|
13149
|
-
|
|
13150
|
-
|
|
13151
|
-
|
|
13152
|
-
|
|
13192
|
+
try {
|
|
13193
|
+
const currentOnPaint = onPaintRef.current;
|
|
13194
|
+
if (currentOnPaint) {
|
|
13195
|
+
if (paintTarget instanceof HTMLCanvasElement) {
|
|
13196
|
+
throw new Error("HtmlInCanvas: onPaint requires an OffscreenCanvas paint target");
|
|
13197
|
+
}
|
|
13198
|
+
const paintResult = currentOnPaint({
|
|
13199
|
+
canvas: paintTarget,
|
|
13200
|
+
element,
|
|
13201
|
+
elementImage: elImage,
|
|
13202
|
+
pixelDensity: resolvedPixelDensity
|
|
13203
|
+
});
|
|
13204
|
+
if (paintResult) {
|
|
13205
|
+
await paintResult;
|
|
13206
|
+
}
|
|
13207
|
+
} else {
|
|
13208
|
+
defaultOnPaint({
|
|
13209
|
+
canvas: paintTarget,
|
|
13210
|
+
element,
|
|
13211
|
+
elementImage: elImage,
|
|
13212
|
+
pixelDensity: resolvedPixelDensity
|
|
13213
|
+
});
|
|
13214
|
+
}
|
|
13215
|
+
await runEffectChain({
|
|
13216
|
+
state: chainState.get(canvasWidth, canvasHeight),
|
|
13217
|
+
source: paintTarget,
|
|
13218
|
+
effects: effectsRef.current,
|
|
13219
|
+
output: paintTarget,
|
|
13220
|
+
width: canvasWidth,
|
|
13221
|
+
height: canvasHeight
|
|
13222
|
+
});
|
|
13223
|
+
} finally {
|
|
13224
|
+
elImage.close();
|
|
13225
|
+
}
|
|
13226
|
+
ancestorRef.current?.requestParentPaint();
|
|
13153
13227
|
continueRender2(handle);
|
|
13154
13228
|
} catch (error2) {
|
|
13155
13229
|
cancelRender2(error2);
|
|
@@ -13161,7 +13235,7 @@ var HtmlInCanvasContent = forwardRef9(({
|
|
|
13161
13235
|
continueRender2,
|
|
13162
13236
|
cancelRender2,
|
|
13163
13237
|
resolvedPixelDensity,
|
|
13164
|
-
|
|
13238
|
+
canRetryMissingPaintRecord
|
|
13165
13239
|
]);
|
|
13166
13240
|
useLayoutEffect9(() => {
|
|
13167
13241
|
const placeholder = canvas2dRef.current;
|
|
@@ -13169,10 +13243,10 @@ var HtmlInCanvasContent = forwardRef9(({
|
|
|
13169
13243
|
throw new Error("Canvas not found");
|
|
13170
13244
|
}
|
|
13171
13245
|
placeholder.layoutSubtree = true;
|
|
13172
|
-
const
|
|
13173
|
-
|
|
13174
|
-
|
|
13175
|
-
|
|
13246
|
+
const paintTarget = usesDirectLayoutCanvas ? placeholder : placeholder.transferControlToOffscreen();
|
|
13247
|
+
paintTargetRef.current = paintTarget;
|
|
13248
|
+
resizePaintTarget({
|
|
13249
|
+
target: paintTarget,
|
|
13176
13250
|
width: canvasWidth,
|
|
13177
13251
|
height: canvasHeight
|
|
13178
13252
|
});
|
|
@@ -13181,13 +13255,19 @@ var HtmlInCanvasContent = forwardRef9(({
|
|
|
13181
13255
|
placeholder.addEventListener("paint", onPaintCb);
|
|
13182
13256
|
return () => {
|
|
13183
13257
|
placeholder.removeEventListener("paint", onPaintCb);
|
|
13184
|
-
|
|
13258
|
+
paintTargetRef.current = null;
|
|
13185
13259
|
initializedRef.current = false;
|
|
13186
13260
|
unmountedRef.current = true;
|
|
13187
13261
|
onInitCleanupRef.current?.();
|
|
13188
13262
|
onInitCleanupRef.current = null;
|
|
13189
13263
|
};
|
|
13190
|
-
}, [
|
|
13264
|
+
}, [
|
|
13265
|
+
onPaintCb,
|
|
13266
|
+
cancelRender2,
|
|
13267
|
+
canvasWidth,
|
|
13268
|
+
canvasHeight,
|
|
13269
|
+
usesDirectLayoutCanvas
|
|
13270
|
+
]);
|
|
13191
13271
|
const onPaintChangedRef = useRef22(false);
|
|
13192
13272
|
useLayoutEffect9(() => {
|
|
13193
13273
|
if (!onPaintChangedRef.current) {
|
|
@@ -13226,11 +13306,15 @@ var HtmlInCanvasContent = forwardRef9(({
|
|
|
13226
13306
|
...style ?? {}
|
|
13227
13307
|
};
|
|
13228
13308
|
}, [height, style, width]);
|
|
13229
|
-
|
|
13230
|
-
|
|
13231
|
-
|
|
13309
|
+
const ancestorValue = useMemo30(() => {
|
|
13310
|
+
return {
|
|
13311
|
+
requestParentPaint: () => {
|
|
13312
|
+
canvas2dRef.current?.requestPaint?.();
|
|
13313
|
+
}
|
|
13314
|
+
};
|
|
13315
|
+
}, []);
|
|
13232
13316
|
return /* @__PURE__ */ jsx25(HtmlInCanvasAncestorContext.Provider, {
|
|
13233
|
-
value:
|
|
13317
|
+
value: ancestorValue,
|
|
13234
13318
|
children: /* @__PURE__ */ jsx25("canvas", {
|
|
13235
13319
|
ref: setLayoutCanvasRef,
|
|
13236
13320
|
width: canvasWidth,
|
|
@@ -14102,6 +14186,22 @@ var Img = withInteractivitySchema({
|
|
|
14102
14186
|
supportsEffects: true
|
|
14103
14187
|
});
|
|
14104
14188
|
addSequenceStackTraces(Img);
|
|
14189
|
+
var sourcePathToIdentityPrefix = (packageName) => {
|
|
14190
|
+
if (packageName === "remotion") {
|
|
14191
|
+
return "dev.remotion.remotion";
|
|
14192
|
+
}
|
|
14193
|
+
if (packageName.startsWith("@remotion/")) {
|
|
14194
|
+
const normalizedPackageName = packageName.slice("@remotion/".length).replace(/-([a-z])/g, (_, char) => char.toUpperCase());
|
|
14195
|
+
return `dev.remotion.${normalizedPackageName}`;
|
|
14196
|
+
}
|
|
14197
|
+
throw new Error(`Unsupported Remotion package name: ${packageName}`);
|
|
14198
|
+
};
|
|
14199
|
+
var makeRemotionComponentIdentity = ({
|
|
14200
|
+
packageName,
|
|
14201
|
+
componentName
|
|
14202
|
+
}) => {
|
|
14203
|
+
return `${sourcePathToIdentityPrefix(packageName)}.${componentName}`;
|
|
14204
|
+
};
|
|
14105
14205
|
var interactiveElementSchema = {
|
|
14106
14206
|
...baseSchema,
|
|
14107
14207
|
...transformSchema,
|
|
@@ -14115,6 +14215,11 @@ var setRef = (ref, value) => {
|
|
|
14115
14215
|
ref.current = value;
|
|
14116
14216
|
}
|
|
14117
14217
|
};
|
|
14218
|
+
var withSchema = (options) => {
|
|
14219
|
+
const Wrapped = withInteractivitySchema(options);
|
|
14220
|
+
addSequenceStackTraces(Wrapped);
|
|
14221
|
+
return Wrapped;
|
|
14222
|
+
};
|
|
14118
14223
|
var makeInteractiveElement = (tag, displayName) => {
|
|
14119
14224
|
const Inner = forwardRef12((propsWithControls, ref) => {
|
|
14120
14225
|
const {
|
|
@@ -14154,15 +14259,17 @@ var makeInteractiveElement = (tag, displayName) => {
|
|
|
14154
14259
|
});
|
|
14155
14260
|
});
|
|
14156
14261
|
Inner.displayName = displayName;
|
|
14157
|
-
const Wrapped =
|
|
14262
|
+
const Wrapped = withSchema({
|
|
14158
14263
|
Component: Inner,
|
|
14159
14264
|
componentName: displayName,
|
|
14160
|
-
componentIdentity:
|
|
14265
|
+
componentIdentity: makeRemotionComponentIdentity({
|
|
14266
|
+
packageName: "remotion",
|
|
14267
|
+
componentName: displayName.slice(1, -1)
|
|
14268
|
+
}),
|
|
14161
14269
|
schema: interactiveElementSchema,
|
|
14162
14270
|
supportsEffects: false
|
|
14163
14271
|
});
|
|
14164
14272
|
Wrapped.displayName = displayName;
|
|
14165
|
-
addSequenceStackTraces(Wrapped);
|
|
14166
14273
|
return Wrapped;
|
|
14167
14274
|
};
|
|
14168
14275
|
var Interactive = {
|
|
@@ -14171,7 +14278,8 @@ var Interactive = {
|
|
|
14171
14278
|
textSchema,
|
|
14172
14279
|
premountSchema,
|
|
14173
14280
|
sequenceSchema,
|
|
14174
|
-
withSchema
|
|
14281
|
+
withSchema,
|
|
14282
|
+
_internalMakeRemotionComponentIdentity: makeRemotionComponentIdentity,
|
|
14175
14283
|
A: makeInteractiveElement("a", "<Interactive.A>"),
|
|
14176
14284
|
Article: makeInteractiveElement("article", "<Interactive.Article>"),
|
|
14177
14285
|
Aside: makeInteractiveElement("aside", "<Interactive.Aside>"),
|
|
@@ -15576,66 +15684,130 @@ var flattenChildren = (children) => {
|
|
|
15576
15684
|
return flatChildren;
|
|
15577
15685
|
}, []);
|
|
15578
15686
|
};
|
|
15579
|
-
var
|
|
15687
|
+
var seriesSequenceSchema = {
|
|
15688
|
+
durationInFrames: Interactive.baseSchema.durationInFrames,
|
|
15689
|
+
name: Interactive.sequenceSchema.name,
|
|
15690
|
+
hidden: Interactive.sequenceSchema.hidden,
|
|
15691
|
+
showInTimeline: Interactive.sequenceSchema.showInTimeline,
|
|
15692
|
+
freeze: Interactive.baseSchema.freeze,
|
|
15693
|
+
layout: Interactive.sequenceSchema.layout
|
|
15694
|
+
};
|
|
15695
|
+
var SeriesSequenceInner = forwardRef14(({
|
|
15696
|
+
offset = 0,
|
|
15697
|
+
className = "",
|
|
15698
|
+
stack = null,
|
|
15699
|
+
_remotionInternalRender = null,
|
|
15700
|
+
...props2
|
|
15701
|
+
}, ref) => {
|
|
15580
15702
|
useRequireToBeInsideSeries();
|
|
15703
|
+
if (_remotionInternalRender) {
|
|
15704
|
+
return _remotionInternalRender({ ...props2, offset, className: className || undefined, stack }, ref);
|
|
15705
|
+
}
|
|
15581
15706
|
return /* @__PURE__ */ jsx37(IsNotInsideSeriesProvider, {
|
|
15582
|
-
children
|
|
15707
|
+
children: props2.children
|
|
15583
15708
|
});
|
|
15584
|
-
};
|
|
15585
|
-
var SeriesSequence =
|
|
15709
|
+
});
|
|
15710
|
+
var SeriesSequence = Interactive.withSchema({
|
|
15711
|
+
Component: SeriesSequenceInner,
|
|
15712
|
+
componentName: "<Series.Sequence>",
|
|
15713
|
+
componentIdentity: "dev.remotion.remotion.Series.Sequence",
|
|
15714
|
+
schema: seriesSequenceSchema,
|
|
15715
|
+
supportsEffects: false
|
|
15716
|
+
});
|
|
15586
15717
|
var SequenceWithoutSchemaWithRef = SequenceWithoutSchema;
|
|
15718
|
+
var validateSeriesSequenceProps = ({
|
|
15719
|
+
durationInFrames,
|
|
15720
|
+
offset: offsetProp,
|
|
15721
|
+
index,
|
|
15722
|
+
childrenLength
|
|
15723
|
+
}) => {
|
|
15724
|
+
const debugInfo = `index = ${index}, duration = ${durationInFrames}`;
|
|
15725
|
+
if (index !== childrenLength - 1 || durationInFrames !== Infinity) {
|
|
15726
|
+
validateDurationInFrames(durationInFrames, {
|
|
15727
|
+
component: `of a <Series.Sequence /> component`,
|
|
15728
|
+
allowFloats: true
|
|
15729
|
+
});
|
|
15730
|
+
}
|
|
15731
|
+
const offset = offsetProp ?? 0;
|
|
15732
|
+
if (Number.isNaN(offset)) {
|
|
15733
|
+
throw new TypeError(`The "offset" property of a <Series.Sequence /> must not be NaN, but got NaN (${debugInfo}).`);
|
|
15734
|
+
}
|
|
15735
|
+
if (!Number.isFinite(offset)) {
|
|
15736
|
+
throw new TypeError(`The "offset" property of a <Series.Sequence /> must be finite, but got ${offset} (${debugInfo}).`);
|
|
15737
|
+
}
|
|
15738
|
+
if (offset % 1 !== 0) {
|
|
15739
|
+
throw new TypeError(`The "offset" property of a <Series.Sequence /> must be finite, but got ${offset} (${debugInfo}).`);
|
|
15740
|
+
}
|
|
15741
|
+
return offset;
|
|
15742
|
+
};
|
|
15587
15743
|
var SeriesInner = (props2) => {
|
|
15588
15744
|
const childrenValue = useMemo38(() => {
|
|
15589
|
-
let startFrame = 0;
|
|
15590
15745
|
const flattenedChildren = flattenChildren(props2.children);
|
|
15591
|
-
|
|
15746
|
+
const renderChildren = (i, startFrame) => {
|
|
15747
|
+
if (i === flattenedChildren.length) {
|
|
15748
|
+
return null;
|
|
15749
|
+
}
|
|
15750
|
+
const child = flattenedChildren[i];
|
|
15592
15751
|
const castedChild = child;
|
|
15593
15752
|
if (typeof castedChild === "string") {
|
|
15594
15753
|
if (castedChild.trim() === "") {
|
|
15595
|
-
return
|
|
15754
|
+
return renderChildren(i + 1, startFrame);
|
|
15596
15755
|
}
|
|
15597
15756
|
throw new TypeError(`The <Series /> component only accepts a list of <Series.Sequence /> components as its children, but you passed a string "${castedChild}"`);
|
|
15598
15757
|
}
|
|
15599
15758
|
if (castedChild.type !== SeriesSequence) {
|
|
15600
15759
|
throw new TypeError(`The <Series /> component only accepts a list of <Series.Sequence /> components as its children, but got ${castedChild} instead`);
|
|
15601
15760
|
}
|
|
15602
|
-
const
|
|
15603
|
-
|
|
15604
|
-
|
|
15605
|
-
|
|
15606
|
-
|
|
15607
|
-
|
|
15608
|
-
name,
|
|
15609
|
-
...passedProps
|
|
15610
|
-
} = castedChild.props;
|
|
15611
|
-
if (i !== flattenedChildren.length - 1 || durationInFramesProp !== Infinity) {
|
|
15612
|
-
validateDurationInFrames(durationInFramesProp, {
|
|
15613
|
-
component: `of a <Series.Sequence /> component`,
|
|
15614
|
-
allowFloats: true
|
|
15615
|
-
});
|
|
15616
|
-
}
|
|
15617
|
-
const offset = castedChild.props.offset ?? 0;
|
|
15618
|
-
if (Number.isNaN(offset)) {
|
|
15619
|
-
throw new TypeError(`The "offset" property of a <Series.Sequence /> must not be NaN, but got NaN (${debugInfo}).`);
|
|
15620
|
-
}
|
|
15621
|
-
if (!Number.isFinite(offset)) {
|
|
15622
|
-
throw new TypeError(`The "offset" property of a <Series.Sequence /> must be finite, but got ${offset} (${debugInfo}).`);
|
|
15623
|
-
}
|
|
15624
|
-
if (offset % 1 !== 0) {
|
|
15625
|
-
throw new TypeError(`The "offset" property of a <Series.Sequence /> must be finite, but got ${offset} (${debugInfo}).`);
|
|
15626
|
-
}
|
|
15627
|
-
const currentStartFrame = startFrame + offset;
|
|
15628
|
-
startFrame += durationInFramesProp + offset;
|
|
15629
|
-
return /* @__PURE__ */ jsx37(SequenceWithoutSchemaWithRef, {
|
|
15630
|
-
ref: castedChild.ref,
|
|
15631
|
-
name: name || "<Series.Sequence>",
|
|
15632
|
-
_remotionInternalDocumentationLink: name ? undefined : "https://www.remotion.dev/docs/series",
|
|
15633
|
-
from: currentStartFrame,
|
|
15634
|
-
durationInFrames: durationInFramesProp,
|
|
15635
|
-
...passedProps,
|
|
15636
|
-
children: child
|
|
15761
|
+
const castedElement = castedChild;
|
|
15762
|
+
validateSeriesSequenceProps({
|
|
15763
|
+
durationInFrames: castedElement.props.durationInFrames,
|
|
15764
|
+
offset: castedElement.props.offset,
|
|
15765
|
+
index: i,
|
|
15766
|
+
childrenLength: flattenedChildren.length
|
|
15637
15767
|
});
|
|
15638
|
-
|
|
15768
|
+
return React41.cloneElement(castedElement, {
|
|
15769
|
+
_remotionInternalRender: (resolvedProps, ref) => {
|
|
15770
|
+
const durationInFramesProp = resolvedProps.durationInFrames;
|
|
15771
|
+
const {
|
|
15772
|
+
durationInFrames: _durationInFrames,
|
|
15773
|
+
children: sequenceChildren,
|
|
15774
|
+
offset: offsetProp,
|
|
15775
|
+
controls,
|
|
15776
|
+
stack,
|
|
15777
|
+
from: _from,
|
|
15778
|
+
name,
|
|
15779
|
+
...passedProps
|
|
15780
|
+
} = resolvedProps;
|
|
15781
|
+
const offset = validateSeriesSequenceProps({
|
|
15782
|
+
durationInFrames: durationInFramesProp,
|
|
15783
|
+
offset: offsetProp,
|
|
15784
|
+
index: i,
|
|
15785
|
+
childrenLength: flattenedChildren.length
|
|
15786
|
+
});
|
|
15787
|
+
const currentStartFrame = startFrame + offset;
|
|
15788
|
+
const nextStartFrame = startFrame + durationInFramesProp + offset;
|
|
15789
|
+
return /* @__PURE__ */ jsxs3(Fragment, {
|
|
15790
|
+
children: [
|
|
15791
|
+
/* @__PURE__ */ jsx37(SequenceWithoutSchemaWithRef, {
|
|
15792
|
+
ref,
|
|
15793
|
+
name: name || "<Series.Sequence>",
|
|
15794
|
+
_remotionInternalDocumentationLink: name ? undefined : "https://www.remotion.dev/docs/series",
|
|
15795
|
+
_remotionInternalStack: stack ?? undefined,
|
|
15796
|
+
controls: controls ?? undefined,
|
|
15797
|
+
from: currentStartFrame,
|
|
15798
|
+
durationInFrames: durationInFramesProp,
|
|
15799
|
+
...passedProps,
|
|
15800
|
+
children: /* @__PURE__ */ jsx37(IsNotInsideSeriesProvider, {
|
|
15801
|
+
children: sequenceChildren
|
|
15802
|
+
})
|
|
15803
|
+
}),
|
|
15804
|
+
renderChildren(i + 1, nextStartFrame)
|
|
15805
|
+
]
|
|
15806
|
+
});
|
|
15807
|
+
}
|
|
15808
|
+
});
|
|
15809
|
+
};
|
|
15810
|
+
return renderChildren(0, 0);
|
|
15639
15811
|
}, [props2.children]);
|
|
15640
15812
|
return /* @__PURE__ */ jsx37(IsInsideSeriesContainer, {
|
|
15641
15813
|
children: /* @__PURE__ */ jsx37(Sequence, {
|
|
@@ -16236,7 +16408,7 @@ addSequenceStackTraces(Folder);
|
|
|
16236
16408
|
// ../shapes/dist/esm/index.mjs
|
|
16237
16409
|
import React, { useCallback as useCallback26, useMemo as useMemo40, useRef as useRef29 } from "react";
|
|
16238
16410
|
import { version } from "react-dom";
|
|
16239
|
-
import { jsx as jsx40, jsxs as
|
|
16411
|
+
import { jsx as jsx40, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
16240
16412
|
import { jsx as jsx210 } from "react/jsx-runtime";
|
|
16241
16413
|
import { jsx as jsx310 } from "react/jsx-runtime";
|
|
16242
16414
|
import { jsx as jsx42 } from "react/jsx-runtime";
|
|
@@ -16438,7 +16610,7 @@ var RenderSvg = ({
|
|
|
16438
16610
|
const memoizedEffectDefinitions = Internals.useMemoizedEffectDefinitions(effects);
|
|
16439
16611
|
const videoConfig = Internals.useUnsafeVideoConfig();
|
|
16440
16612
|
const reactSupportsTransformOrigin = doesReactSupportTransformOriginProperty(version);
|
|
16441
|
-
const svg = /* @__PURE__ */
|
|
16613
|
+
const svg = /* @__PURE__ */ jsxs4("svg", {
|
|
16442
16614
|
ref: effects.length === 0 || !videoConfig ? setSvgRef : undefined,
|
|
16443
16615
|
width,
|
|
16444
16616
|
height,
|
|
@@ -16464,7 +16636,7 @@ var RenderSvg = ({
|
|
|
16464
16636
|
}
|
|
16465
16637
|
const prevX = prevInstruction.x;
|
|
16466
16638
|
const prevY = prevInstruction.y;
|
|
16467
|
-
return /* @__PURE__ */
|
|
16639
|
+
return /* @__PURE__ */ jsxs4(React.Fragment, {
|
|
16468
16640
|
children: [
|
|
16469
16641
|
/* @__PURE__ */ jsx40("path", {
|
|
16470
16642
|
d: `M ${prevX} ${prevY} ${i.cp1x} ${i.cp1y}`,
|
|
@@ -16654,7 +16826,6 @@ var Arrow = Interactive.withSchema({
|
|
|
16654
16826
|
schema: arrowSchema,
|
|
16655
16827
|
supportsEffects: true
|
|
16656
16828
|
});
|
|
16657
|
-
Internals.addSequenceStackTraces(Arrow);
|
|
16658
16829
|
var shortenVector = (vector, radius) => {
|
|
16659
16830
|
const [x, y] = vector;
|
|
16660
16831
|
const currentLength = Math.sqrt(x * x + y * y);
|
|
@@ -17079,7 +17250,6 @@ var Callout = Interactive.withSchema({
|
|
|
17079
17250
|
schema: calloutSchema,
|
|
17080
17251
|
supportsEffects: true
|
|
17081
17252
|
});
|
|
17082
|
-
Internals.addSequenceStackTraces(Callout);
|
|
17083
17253
|
var makeCircle = ({ radius }) => {
|
|
17084
17254
|
const instructions = [
|
|
17085
17255
|
{
|
|
@@ -17142,7 +17312,6 @@ var Circle = Interactive.withSchema({
|
|
|
17142
17312
|
schema: circleSchema,
|
|
17143
17313
|
supportsEffects: true
|
|
17144
17314
|
});
|
|
17145
|
-
Internals.addSequenceStackTraces(Circle);
|
|
17146
17315
|
var makeEllipse = ({ rx, ry }) => {
|
|
17147
17316
|
const instructions = [
|
|
17148
17317
|
{
|
|
@@ -17200,7 +17369,6 @@ var Ellipse = Interactive.withSchema({
|
|
|
17200
17369
|
schema: ellipseSchema,
|
|
17201
17370
|
supportsEffects: true
|
|
17202
17371
|
});
|
|
17203
|
-
Internals.addSequenceStackTraces(Ellipse);
|
|
17204
17372
|
var makeHeart = ({
|
|
17205
17373
|
height,
|
|
17206
17374
|
aspectRatio = 1.1,
|
|
@@ -17339,7 +17507,6 @@ var Heart = Interactive.withSchema({
|
|
|
17339
17507
|
schema: heartSchema,
|
|
17340
17508
|
supportsEffects: true
|
|
17341
17509
|
});
|
|
17342
|
-
Internals.addSequenceStackTraces(Heart);
|
|
17343
17510
|
var getCoord = ({
|
|
17344
17511
|
counterClockwise,
|
|
17345
17512
|
actualProgress,
|
|
@@ -17494,7 +17661,6 @@ var Pie = Interactive.withSchema({
|
|
|
17494
17661
|
schema: pieSchema,
|
|
17495
17662
|
supportsEffects: true
|
|
17496
17663
|
});
|
|
17497
|
-
Internals.addSequenceStackTraces(Pie);
|
|
17498
17664
|
function polygon({
|
|
17499
17665
|
points,
|
|
17500
17666
|
radius,
|
|
@@ -17594,7 +17760,6 @@ var Polygon = Interactive.withSchema({
|
|
|
17594
17760
|
schema: polygonSchema,
|
|
17595
17761
|
supportsEffects: true
|
|
17596
17762
|
});
|
|
17597
|
-
Internals.addSequenceStackTraces(Polygon);
|
|
17598
17763
|
var makeRect = ({
|
|
17599
17764
|
width,
|
|
17600
17765
|
height,
|
|
@@ -17661,7 +17826,6 @@ var Rect = Interactive.withSchema({
|
|
|
17661
17826
|
schema: rectSchema,
|
|
17662
17827
|
supportsEffects: true
|
|
17663
17828
|
});
|
|
17664
|
-
Internals.addSequenceStackTraces(Rect);
|
|
17665
17829
|
var KAPPA = 0.5522847498307936;
|
|
17666
17830
|
var CAP_HANDLE = 4 / 3;
|
|
17667
17831
|
var curve = ({
|
|
@@ -17873,7 +18037,6 @@ var Spark = Interactive.withSchema({
|
|
|
17873
18037
|
schema: sparkSchema,
|
|
17874
18038
|
supportsEffects: true
|
|
17875
18039
|
});
|
|
17876
|
-
Internals.addSequenceStackTraces(Spark);
|
|
17877
18040
|
var star = ({
|
|
17878
18041
|
centerX,
|
|
17879
18042
|
centerY,
|
|
@@ -17984,7 +18147,6 @@ var Star = Interactive.withSchema({
|
|
|
17984
18147
|
schema: starSchema,
|
|
17985
18148
|
supportsEffects: true
|
|
17986
18149
|
});
|
|
17987
|
-
Internals.addSequenceStackTraces(Star);
|
|
17988
18150
|
var makeTriangle = ({
|
|
17989
18151
|
length: length2,
|
|
17990
18152
|
direction = "right",
|
|
@@ -18091,7 +18253,6 @@ var Triangle = Interactive.withSchema({
|
|
|
18091
18253
|
schema: triangleSchema,
|
|
18092
18254
|
supportsEffects: true
|
|
18093
18255
|
});
|
|
18094
|
-
Internals.addSequenceStackTraces(Triangle);
|
|
18095
18256
|
|
|
18096
18257
|
// ../svg-3d-engine/dist/esm/index.mjs
|
|
18097
18258
|
function truthy2(value) {
|
|
@@ -19157,7 +19318,7 @@ var extrudeAndTransformElement = (options) => {
|
|
|
19157
19318
|
|
|
19158
19319
|
// ../design/dist/esm/index.mjs
|
|
19159
19320
|
import { jsx as jsx212, Fragment as Fragment3 } from "react/jsx-runtime";
|
|
19160
|
-
import { jsx as jsx312, jsxs as
|
|
19321
|
+
import { jsx as jsx312, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
19161
19322
|
import { useEffect as useEffect22, useMemo as useMemo210, useRef as useRef31 } from "react";
|
|
19162
19323
|
import { jsx as jsx44 } from "react/jsx-runtime";
|
|
19163
19324
|
import { jsx as jsx53, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
@@ -19216,11 +19377,11 @@ import * as React302 from "react";
|
|
|
19216
19377
|
import * as React342 from "react";
|
|
19217
19378
|
import * as React332 from "react";
|
|
19218
19379
|
import * as React322 from "react";
|
|
19219
|
-
import { Fragment as Fragment8, jsx as jsx242, jsxs as
|
|
19380
|
+
import { Fragment as Fragment8, jsx as jsx242, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
19220
19381
|
import { forwardRef as forwardRef142, createElement as createElement7 } from "react";
|
|
19221
19382
|
import { forwardRef as forwardRef132, createElement as createElement6 } from "react";
|
|
19222
19383
|
import * as React372 from "react";
|
|
19223
|
-
import { jsx as jsx252, jsxs as
|
|
19384
|
+
import { jsx as jsx252, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
19224
19385
|
import { jsx as jsx262 } from "react/jsx-runtime";
|
|
19225
19386
|
import * as React49 from "react";
|
|
19226
19387
|
import * as React38 from "react";
|
|
@@ -19228,12 +19389,12 @@ import { jsx as jsx272 } from "react/jsx-runtime";
|
|
|
19228
19389
|
import * as React47 from "react";
|
|
19229
19390
|
import React402 from "react";
|
|
19230
19391
|
import * as React392 from "react";
|
|
19231
|
-
import { Fragment as
|
|
19392
|
+
import { Fragment as Fragment222, jsx as jsx282 } from "react/jsx-runtime";
|
|
19232
19393
|
import { jsx as jsx292 } from "react/jsx-runtime";
|
|
19233
19394
|
import React210 from "react";
|
|
19234
19395
|
import { jsx as jsx2102 } from "react/jsx-runtime";
|
|
19235
19396
|
import * as React422 from "react";
|
|
19236
|
-
import * as
|
|
19397
|
+
import * as React412 from "react";
|
|
19237
19398
|
import * as React43 from "react";
|
|
19238
19399
|
import * as ReactDOM5 from "react-dom";
|
|
19239
19400
|
import { jsx as jsx302 } from "react/jsx-runtime";
|
|
@@ -19343,7 +19504,7 @@ function createSlotClone(ownerName) {
|
|
|
19343
19504
|
var SLOTTABLE_IDENTIFIER = Symbol("radix.slottable");
|
|
19344
19505
|
function createSlottable(ownerName) {
|
|
19345
19506
|
const Slottable2 = ({ children }) => {
|
|
19346
|
-
return /* @__PURE__ */ jsx43(
|
|
19507
|
+
return /* @__PURE__ */ jsx43(Fragment22, { children });
|
|
19347
19508
|
};
|
|
19348
19509
|
Slottable2.displayName = `${ownerName}.Slottable`;
|
|
19349
19510
|
Slottable2.__radixId = SLOTTABLE_IDENTIFIER;
|
|
@@ -19640,7 +19801,7 @@ var Outer = ({
|
|
|
19640
19801
|
description: "rect",
|
|
19641
19802
|
transformations: centerOriented
|
|
19642
19803
|
});
|
|
19643
|
-
return /* @__PURE__ */
|
|
19804
|
+
return /* @__PURE__ */ jsxs6("div", {
|
|
19644
19805
|
className: "relative",
|
|
19645
19806
|
style: { width, height },
|
|
19646
19807
|
children: [
|
|
@@ -23688,7 +23849,7 @@ var Select = (props) => {
|
|
|
23688
23849
|
const isFormControl = trigger ? Boolean(trigger.closest("form")) : true;
|
|
23689
23850
|
const [nativeOptionsSet, setNativeOptionsSet] = React36.useState(/* @__PURE__ */ new Set);
|
|
23690
23851
|
const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(";");
|
|
23691
|
-
return /* @__PURE__ */ jsx242(Root22, { ...popperScope, children: /* @__PURE__ */
|
|
23852
|
+
return /* @__PURE__ */ jsx242(Root22, { ...popperScope, children: /* @__PURE__ */ jsxs42(SelectProvider, {
|
|
23692
23853
|
required,
|
|
23693
23854
|
scope: __scopeSelect,
|
|
23694
23855
|
trigger,
|
|
@@ -23720,7 +23881,7 @@ var Select = (props) => {
|
|
|
23720
23881
|
}, []),
|
|
23721
23882
|
children
|
|
23722
23883
|
}) }),
|
|
23723
|
-
isFormControl ? /* @__PURE__ */
|
|
23884
|
+
isFormControl ? /* @__PURE__ */ jsxs42(BubbleSelect, {
|
|
23724
23885
|
"aria-hidden": true,
|
|
23725
23886
|
required,
|
|
23726
23887
|
tabIndex: -1,
|
|
@@ -24228,7 +24389,7 @@ var SelectViewport = React36.forwardRef((props, forwardedRef) => {
|
|
|
24228
24389
|
const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);
|
|
24229
24390
|
const composedRefs = useComposedRefs2(forwardedRef, contentContext.onViewportChange);
|
|
24230
24391
|
const prevScrollTopRef = React36.useRef(0);
|
|
24231
|
-
return /* @__PURE__ */
|
|
24392
|
+
return /* @__PURE__ */ jsxs42(Fragment8, { children: [
|
|
24232
24393
|
/* @__PURE__ */ jsx242("style", {
|
|
24233
24394
|
dangerouslySetInnerHTML: {
|
|
24234
24395
|
__html: `[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`
|
|
@@ -24385,7 +24546,7 @@ var SelectItemText = React36.forwardRef((props, forwardedRef) => {
|
|
|
24385
24546
|
onNativeOptionAdd(nativeOption);
|
|
24386
24547
|
return () => onNativeOptionRemove(nativeOption);
|
|
24387
24548
|
}, [onNativeOptionAdd, onNativeOptionRemove, nativeOption]);
|
|
24388
|
-
return /* @__PURE__ */
|
|
24549
|
+
return /* @__PURE__ */ jsxs42(Fragment8, { children: [
|
|
24389
24550
|
/* @__PURE__ */ jsx242(Primitive.span, { id: itemContext.textId, ...itemTextProps, ref: composedRefs }),
|
|
24390
24551
|
itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren ? ReactDOM4.createPortal(itemTextProps.children, context.valueNode) : null
|
|
24391
24552
|
] });
|
|
@@ -24644,7 +24805,7 @@ var ChevronDown = createLucideIcon("ChevronDown", [
|
|
|
24644
24805
|
var ChevronUp = createLucideIcon("ChevronUp", [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]]);
|
|
24645
24806
|
var Select2 = Root222;
|
|
24646
24807
|
var SelectValue2 = Value;
|
|
24647
|
-
var SelectTrigger2 = React372.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
24808
|
+
var SelectTrigger2 = React372.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs5(Trigger, {
|
|
24648
24809
|
ref,
|
|
24649
24810
|
className: cn("flex h-10 w-full items-center justify-between rounded-md border-black border-2 border-b-4 bg-card-bg px-3 py-5 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1 font-brand", className),
|
|
24650
24811
|
...props,
|
|
@@ -24678,7 +24839,7 @@ var SelectScrollDownButton2 = React372.forwardRef(({ className, ...props }, ref)
|
|
|
24678
24839
|
}));
|
|
24679
24840
|
SelectScrollDownButton2.displayName = ScrollDownButton.displayName;
|
|
24680
24841
|
var SelectContent2 = React372.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx252(Portal2, {
|
|
24681
|
-
children: /* @__PURE__ */
|
|
24842
|
+
children: /* @__PURE__ */ jsxs5(Content2, {
|
|
24682
24843
|
ref,
|
|
24683
24844
|
className: cn(" border-2 border-black relative z-50 max-h-96 min-w-32 overflow-hidden rounded-md font-brand bg-card-bg text-text shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", className),
|
|
24684
24845
|
position,
|
|
@@ -24700,7 +24861,7 @@ var SelectLabel2 = React372.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
24700
24861
|
...props
|
|
24701
24862
|
}));
|
|
24702
24863
|
SelectLabel2.displayName = Label.displayName;
|
|
24703
|
-
var SelectItem2 = React372.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
24864
|
+
var SelectItem2 = React372.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs5(Item, {
|
|
24704
24865
|
ref,
|
|
24705
24866
|
className: cn("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden focus:bg-slate-200 dark:focus:bg-white/10 data-disabled:pointer-events-none data-disabled:opacity-50 font-brand", className),
|
|
24706
24867
|
...props,
|
|
@@ -25242,7 +25403,7 @@ function toSafeIndex(array, index2) {
|
|
|
25242
25403
|
function toSafeInteger(number) {
|
|
25243
25404
|
return number !== number || number === 0 ? 0 : Math.trunc(number);
|
|
25244
25405
|
}
|
|
25245
|
-
var useLayoutEffect222 = globalThis?.document ?
|
|
25406
|
+
var useLayoutEffect222 = globalThis?.document ? React412.useLayoutEffect : () => {};
|
|
25246
25407
|
var useReactId2 = React422[" useId ".trim().toString()] || (() => {
|
|
25247
25408
|
return;
|
|
25248
25409
|
});
|
|
@@ -27178,7 +27339,7 @@ function cn2(...inputs) {
|
|
|
27178
27339
|
}
|
|
27179
27340
|
|
|
27180
27341
|
// src/components/homepage/PricingBulletPoint.tsx
|
|
27181
|
-
import { jsx as jsx45, jsxs as
|
|
27342
|
+
import { jsx as jsx45, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
27182
27343
|
var container3 = {
|
|
27183
27344
|
display: "flex",
|
|
27184
27345
|
flexDirection: "row",
|
|
@@ -27192,7 +27353,7 @@ var greyCircle = {
|
|
|
27192
27353
|
backgroundColor: "var(--footer-border)"
|
|
27193
27354
|
};
|
|
27194
27355
|
var PricingBulletPoint = ({ text, checked, children }) => {
|
|
27195
|
-
const checkmarkSVG = /* @__PURE__ */
|
|
27356
|
+
const checkmarkSVG = /* @__PURE__ */ jsxs7("svg", {
|
|
27196
27357
|
width: "20",
|
|
27197
27358
|
height: "20",
|
|
27198
27359
|
viewBox: "0 0 20 20",
|
|
@@ -27214,13 +27375,13 @@ var PricingBulletPoint = ({ text, checked, children }) => {
|
|
|
27214
27375
|
})
|
|
27215
27376
|
]
|
|
27216
27377
|
});
|
|
27217
|
-
return /* @__PURE__ */
|
|
27378
|
+
return /* @__PURE__ */ jsxs7("div", {
|
|
27218
27379
|
style: container3,
|
|
27219
27380
|
children: [
|
|
27220
27381
|
checked ? checkmarkSVG : /* @__PURE__ */ jsx45("div", {
|
|
27221
27382
|
style: greyCircle
|
|
27222
27383
|
}),
|
|
27223
|
-
/* @__PURE__ */
|
|
27384
|
+
/* @__PURE__ */ jsxs7("div", {
|
|
27224
27385
|
className: "fontbrand text-lg\t",
|
|
27225
27386
|
children: [
|
|
27226
27387
|
text,
|
|
@@ -27232,7 +27393,7 @@ var PricingBulletPoint = ({ text, checked, children }) => {
|
|
|
27232
27393
|
};
|
|
27233
27394
|
|
|
27234
27395
|
// src/components/homepage/FreePricing.tsx
|
|
27235
|
-
import { jsx as jsx46, jsxs as
|
|
27396
|
+
import { jsx as jsx46, jsxs as jsxs8, Fragment as Fragment9 } from "react/jsx-runtime";
|
|
27236
27397
|
var Container = ({
|
|
27237
27398
|
children
|
|
27238
27399
|
}) => {
|
|
@@ -27276,7 +27437,7 @@ var icon = {
|
|
|
27276
27437
|
};
|
|
27277
27438
|
var PricingSlider = ({ value, onChange, min: min2, max: max2, step = 1, "aria-label": ariaLabel }) => {
|
|
27278
27439
|
const percentage = (value - min2) / (max2 - min2) * 100;
|
|
27279
|
-
return /* @__PURE__ */
|
|
27440
|
+
return /* @__PURE__ */ jsxs8(Fragment9, {
|
|
27280
27441
|
children: [
|
|
27281
27442
|
/* @__PURE__ */ jsx46("style", {
|
|
27282
27443
|
children: `
|
|
@@ -27333,7 +27494,7 @@ var textUnitWrapper = {
|
|
|
27333
27494
|
flexDirection: "column"
|
|
27334
27495
|
};
|
|
27335
27496
|
var FreePricing = () => {
|
|
27336
|
-
return /* @__PURE__ */
|
|
27497
|
+
return /* @__PURE__ */ jsxs8(Container, {
|
|
27337
27498
|
children: [
|
|
27338
27499
|
/* @__PURE__ */ jsx46(Audience, {
|
|
27339
27500
|
children: "For individuals and companies of up to 3 people"
|
|
@@ -27364,7 +27525,7 @@ var FreePricing = () => {
|
|
|
27364
27525
|
...textUnitWrapper,
|
|
27365
27526
|
alignItems: "flex-end"
|
|
27366
27527
|
},
|
|
27367
|
-
children: /* @__PURE__ */
|
|
27528
|
+
children: /* @__PURE__ */ jsxs8("a", {
|
|
27368
27529
|
target: "_blank",
|
|
27369
27530
|
href: "https://www.remotion.dev/docs",
|
|
27370
27531
|
className: "font-brand text-brand flex flex-row items-center gap-1 no-underline",
|
|
@@ -27388,7 +27549,7 @@ var FreePricing = () => {
|
|
|
27388
27549
|
});
|
|
27389
27550
|
};
|
|
27390
27551
|
var EnterpriseLicense = () => {
|
|
27391
|
-
return /* @__PURE__ */
|
|
27552
|
+
return /* @__PURE__ */ jsxs8(Container, {
|
|
27392
27553
|
children: [
|
|
27393
27554
|
/* @__PURE__ */ jsx46(Audience, {
|
|
27394
27555
|
children: "For advanced needs"
|
|
@@ -27421,7 +27582,7 @@ var EnterpriseLicense = () => {
|
|
|
27421
27582
|
checked: true
|
|
27422
27583
|
}),
|
|
27423
27584
|
/* @__PURE__ */ jsx46(PricingBulletPoint, {
|
|
27424
|
-
text: /* @__PURE__ */
|
|
27585
|
+
text: /* @__PURE__ */ jsxs8("span", {
|
|
27425
27586
|
children: [
|
|
27426
27587
|
/* @__PURE__ */ jsx46("a", {
|
|
27427
27588
|
href: "https://www.remotion.dev/editor-starter",
|
|
@@ -27439,7 +27600,7 @@ var EnterpriseLicense = () => {
|
|
|
27439
27600
|
}),
|
|
27440
27601
|
/* @__PURE__ */ jsx46("div", {
|
|
27441
27602
|
className: "flex flex-row justify-end",
|
|
27442
|
-
children: /* @__PURE__ */
|
|
27603
|
+
children: /* @__PURE__ */ jsxs8("div", {
|
|
27443
27604
|
style: {
|
|
27444
27605
|
...textUnitWrapper,
|
|
27445
27606
|
alignItems: "flex-end"
|
|
@@ -27466,7 +27627,7 @@ var EnterpriseLicense = () => {
|
|
|
27466
27627
|
var SEAT_PRICE = 25;
|
|
27467
27628
|
var RENDER_UNIT_PRICE = 10;
|
|
27468
27629
|
var SectionCheckbox = ({ checked, onChange, title, subtitle, children }) => {
|
|
27469
|
-
return /* @__PURE__ */
|
|
27630
|
+
return /* @__PURE__ */ jsxs8("div", {
|
|
27470
27631
|
className: "flex flex-row gap-3 cursor-pointer select-none items-center",
|
|
27471
27632
|
onClick: () => onChange(!checked),
|
|
27472
27633
|
children: [
|
|
@@ -27475,10 +27636,10 @@ var SectionCheckbox = ({ checked, onChange, title, subtitle, children }) => {
|
|
|
27475
27636
|
onToggle: () => onChange(!checked),
|
|
27476
27637
|
"aria-label": title
|
|
27477
27638
|
}),
|
|
27478
|
-
/* @__PURE__ */
|
|
27639
|
+
/* @__PURE__ */ jsxs8("div", {
|
|
27479
27640
|
className: "flex flex-col",
|
|
27480
27641
|
children: [
|
|
27481
|
-
/* @__PURE__ */
|
|
27642
|
+
/* @__PURE__ */ jsxs8("div", {
|
|
27482
27643
|
className: "fontbrand font-bold text-lg flex flex-row items-center gap-1",
|
|
27483
27644
|
children: [
|
|
27484
27645
|
title,
|
|
@@ -27528,7 +27689,7 @@ var CompanyPricing = () => {
|
|
|
27528
27689
|
}, [formatPrice, totalPrice]);
|
|
27529
27690
|
const showMinimumMessage = automatorsSelected && creatorsPrice + automatorsPrice < 100;
|
|
27530
27691
|
const showEnterpriseMessage = totalPrice >= 500;
|
|
27531
|
-
return /* @__PURE__ */
|
|
27692
|
+
return /* @__PURE__ */ jsxs8(Container, {
|
|
27532
27693
|
children: [
|
|
27533
27694
|
/* @__PURE__ */ jsx46(Audience, {
|
|
27534
27695
|
children: "For collaborations and companies of 4+ people"
|
|
@@ -27571,14 +27732,14 @@ var CompanyPricing = () => {
|
|
|
27571
27732
|
transition: automatorsSelected ? "grid-template-rows 150ms ease-out, opacity 150ms ease-out 75ms" : "opacity 150ms ease-out, grid-template-rows 150ms ease-out 75ms"
|
|
27572
27733
|
},
|
|
27573
27734
|
inert: !automatorsSelected,
|
|
27574
|
-
children: /* @__PURE__ */
|
|
27735
|
+
children: /* @__PURE__ */ jsxs8("div", {
|
|
27575
27736
|
className: "overflow-hidden",
|
|
27576
27737
|
children: [
|
|
27577
27738
|
/* @__PURE__ */ jsx46("p", {
|
|
27578
27739
|
className: "text-sm text-muted fontbrand pt-3 pb-1",
|
|
27579
27740
|
children: "Intended for companies launching applications and systems; such as video editors, prompt-to-video apps, embedding the Remotion Player, or any other automated video creation. A $100/mo Minimum Spend applies. Developers working on automation projects do not require a Seat."
|
|
27580
27741
|
}),
|
|
27581
|
-
/* @__PURE__ */
|
|
27742
|
+
/* @__PURE__ */ jsxs8("div", {
|
|
27582
27743
|
className: "flex flex-row items-center gap-3 sm:gap-4 w-full pt-3 pb-1",
|
|
27583
27744
|
children: [
|
|
27584
27745
|
/* @__PURE__ */ jsx46("div", {
|
|
@@ -27592,14 +27753,14 @@ var CompanyPricing = () => {
|
|
|
27592
27753
|
"aria-label": "Number of renders"
|
|
27593
27754
|
})
|
|
27594
27755
|
}),
|
|
27595
|
-
/* @__PURE__ */
|
|
27756
|
+
/* @__PURE__ */ jsxs8("div", {
|
|
27596
27757
|
className: "fontbrand shrink-0 whitespace-nowrap w-[135px] sm:w-[150px] text-right tabular-nums",
|
|
27597
27758
|
children: [
|
|
27598
27759
|
new Intl.NumberFormat("en-US").format(cloudRenders),
|
|
27599
27760
|
" Renders"
|
|
27600
27761
|
]
|
|
27601
27762
|
}),
|
|
27602
|
-
/* @__PURE__ */
|
|
27763
|
+
/* @__PURE__ */ jsxs8("div", {
|
|
27603
27764
|
className: "fontbrand font-bold min-w-[60px] text-right shrink-0 whitespace-nowrap tabular-nums",
|
|
27604
27765
|
children: [
|
|
27605
27766
|
"$",
|
|
@@ -27628,14 +27789,14 @@ var CompanyPricing = () => {
|
|
|
27628
27789
|
transition: creatorsSelected ? "grid-template-rows 150ms ease-out, opacity 150ms ease-out 75ms" : "opacity 150ms ease-out, grid-template-rows 150ms ease-out 75ms"
|
|
27629
27790
|
},
|
|
27630
27791
|
inert: !creatorsSelected,
|
|
27631
|
-
children: /* @__PURE__ */
|
|
27792
|
+
children: /* @__PURE__ */ jsxs8("div", {
|
|
27632
27793
|
className: "overflow-hidden",
|
|
27633
27794
|
children: [
|
|
27634
27795
|
/* @__PURE__ */ jsx46("p", {
|
|
27635
27796
|
className: "text-sm text-muted fontbrand pt-3 pb-1",
|
|
27636
27797
|
children: "Intended for low volume video creations through coding and prompting, and building motion design systems in a local environment. Get 1 Seat per user."
|
|
27637
27798
|
}),
|
|
27638
|
-
/* @__PURE__ */
|
|
27799
|
+
/* @__PURE__ */ jsxs8("div", {
|
|
27639
27800
|
className: "flex flex-row items-center gap-3 sm:gap-4 w-full pt-3 pb-1",
|
|
27640
27801
|
children: [
|
|
27641
27802
|
/* @__PURE__ */ jsx46("div", {
|
|
@@ -27648,7 +27809,7 @@ var CompanyPricing = () => {
|
|
|
27648
27809
|
"aria-label": "Number of seats"
|
|
27649
27810
|
})
|
|
27650
27811
|
}),
|
|
27651
|
-
/* @__PURE__ */
|
|
27812
|
+
/* @__PURE__ */ jsxs8("div", {
|
|
27652
27813
|
className: "fontbrand shrink-0 whitespace-nowrap w-[135px] sm:w-[150px] text-center tabular-nums",
|
|
27653
27814
|
children: [
|
|
27654
27815
|
devSeatCount,
|
|
@@ -27656,7 +27817,7 @@ var CompanyPricing = () => {
|
|
|
27656
27817
|
devSeatCount === 1 ? "Seat" : "Seats"
|
|
27657
27818
|
]
|
|
27658
27819
|
}),
|
|
27659
|
-
/* @__PURE__ */
|
|
27820
|
+
/* @__PURE__ */ jsxs8("div", {
|
|
27660
27821
|
className: "fontbrand font-bold min-w-[60px] text-right shrink-0 whitespace-nowrap tabular-nums",
|
|
27661
27822
|
children: [
|
|
27662
27823
|
"$",
|
|
@@ -27673,14 +27834,14 @@ var CompanyPricing = () => {
|
|
|
27673
27834
|
/* @__PURE__ */ jsx46("div", {
|
|
27674
27835
|
style: { height: 14 }
|
|
27675
27836
|
}),
|
|
27676
|
-
/* @__PURE__ */
|
|
27837
|
+
/* @__PURE__ */ jsxs8("div", {
|
|
27677
27838
|
className: "flex flex-row items-baseline justify-end gap-2",
|
|
27678
27839
|
children: [
|
|
27679
27840
|
/* @__PURE__ */ jsx46("div", {
|
|
27680
27841
|
className: "fontbrand text-muted text-sm",
|
|
27681
27842
|
children: "Total"
|
|
27682
27843
|
}),
|
|
27683
|
-
/* @__PURE__ */
|
|
27844
|
+
/* @__PURE__ */ jsxs8(PriceTag, {
|
|
27684
27845
|
children: [
|
|
27685
27846
|
totalPriceString,
|
|
27686
27847
|
"/month"
|
|
@@ -27688,7 +27849,7 @@ var CompanyPricing = () => {
|
|
|
27688
27849
|
})
|
|
27689
27850
|
]
|
|
27690
27851
|
}),
|
|
27691
|
-
/* @__PURE__ */
|
|
27852
|
+
/* @__PURE__ */ jsxs8("div", {
|
|
27692
27853
|
className: "flex flex-col items-end",
|
|
27693
27854
|
children: [
|
|
27694
27855
|
/* @__PURE__ */ jsx46(BottomInfo, {
|
|
@@ -27696,7 +27857,7 @@ var CompanyPricing = () => {
|
|
|
27696
27857
|
className: "opacity-0 data-[visible=true]:opacity-100 transition-opacity mt-1",
|
|
27697
27858
|
children: "The minimum is $100 per month for Remotion for Automators"
|
|
27698
27859
|
}),
|
|
27699
|
-
/* @__PURE__ */
|
|
27860
|
+
/* @__PURE__ */ jsxs8(BottomInfo, {
|
|
27700
27861
|
"data-visible": showEnterpriseMessage,
|
|
27701
27862
|
className: "opacity-0 data-[visible=true]:opacity-100 transition-opacity mt-1",
|
|
27702
27863
|
children: [
|
|
@@ -27722,7 +27883,7 @@ var CompanyPricing = () => {
|
|
|
27722
27883
|
...textUnitWrapper,
|
|
27723
27884
|
alignItems: "flex-end"
|
|
27724
27885
|
},
|
|
27725
|
-
children: /* @__PURE__ */
|
|
27886
|
+
children: /* @__PURE__ */ jsxs8("a", {
|
|
27726
27887
|
href: "https://remotion.pro/dashboard",
|
|
27727
27888
|
className: "font-brand text-brand flex flex-row items-center gap-1 no-underline",
|
|
27728
27889
|
children: [
|
|
@@ -27746,12 +27907,12 @@ var CompanyPricing = () => {
|
|
|
27746
27907
|
};
|
|
27747
27908
|
|
|
27748
27909
|
// src/components/homepage/Pricing.tsx
|
|
27749
|
-
import { jsx as jsx47, jsxs as
|
|
27910
|
+
import { jsx as jsx47, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
27750
27911
|
var Pricing = ({
|
|
27751
27912
|
faqHref = "/docs/license/faq",
|
|
27752
27913
|
faqLabel = "License FAQ",
|
|
27753
27914
|
licenseHref = "https://github.com/remotion-dev/remotion/blob/main/LICENSE.md",
|
|
27754
|
-
termsHref = "
|
|
27915
|
+
termsHref = "/docs/license/terms"
|
|
27755
27916
|
}) => {
|
|
27756
27917
|
const faqLinkTarget = useMemo52(() => {
|
|
27757
27918
|
return faqHref.startsWith("http") ? "_blank" : undefined;
|
|
@@ -27762,7 +27923,7 @@ var Pricing = ({
|
|
|
27762
27923
|
const termsLinkTarget = useMemo52(() => {
|
|
27763
27924
|
return termsHref.startsWith("http") ? "_blank" : undefined;
|
|
27764
27925
|
}, [termsHref]);
|
|
27765
|
-
return /* @__PURE__ */
|
|
27926
|
+
return /* @__PURE__ */ jsxs9("div", {
|
|
27766
27927
|
style: {
|
|
27767
27928
|
display: "flex",
|
|
27768
27929
|
flexDirection: "column",
|
|
@@ -27778,7 +27939,7 @@ var Pricing = ({
|
|
|
27778
27939
|
justifyContent: "center",
|
|
27779
27940
|
display: "flex"
|
|
27780
27941
|
},
|
|
27781
|
-
children: /* @__PURE__ */
|
|
27942
|
+
children: /* @__PURE__ */ jsxs9("div", {
|
|
27782
27943
|
style: {
|
|
27783
27944
|
fontFamily: "GTPlanar"
|
|
27784
27945
|
},
|