@remotion/promo-pages 4.0.501 → 4.0.502
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 +306 -44
- package/dist/design.js +1 -1
- package/dist/experts.js +1 -1
- package/dist/homepage/Pricing.js +8 -5
- package/dist/prompts/PromptsGallery.js +1 -1
- package/dist/prompts/PromptsShow.js +1 -1
- package/dist/prompts/PromptsSubmit.js +1 -1
- package/dist/team.js +1 -1
- package/dist/template-modal-content.js +1 -1
- package/dist/templates.js +2 -2
- package/package.json +13 -13
package/dist/Homepage.js
CHANGED
|
@@ -6092,7 +6092,7 @@ var Composition = (props) => {
|
|
|
6092
6092
|
...props
|
|
6093
6093
|
});
|
|
6094
6094
|
};
|
|
6095
|
-
var VERSION = "4.0.
|
|
6095
|
+
var VERSION = "4.0.502";
|
|
6096
6096
|
var checkMultipleRemotionVersions = () => {
|
|
6097
6097
|
if (typeof globalThis === "undefined") {
|
|
6098
6098
|
return;
|
|
@@ -29452,14 +29452,16 @@ import { jsx as jsx48, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
|
29452
29452
|
var container3 = {
|
|
29453
29453
|
display: "flex",
|
|
29454
29454
|
flexDirection: "row",
|
|
29455
|
-
alignItems: "
|
|
29455
|
+
alignItems: "flex-start",
|
|
29456
29456
|
gap: "10px"
|
|
29457
29457
|
};
|
|
29458
29458
|
var greyCircle = {
|
|
29459
29459
|
width: 20,
|
|
29460
29460
|
height: 20,
|
|
29461
29461
|
borderRadius: 10,
|
|
29462
|
-
backgroundColor: "var(--footer-border)"
|
|
29462
|
+
backgroundColor: "var(--footer-border)",
|
|
29463
|
+
flexShrink: 0,
|
|
29464
|
+
marginTop: 4
|
|
29463
29465
|
};
|
|
29464
29466
|
var PricingBulletPoint = ({ text, checked, children }) => {
|
|
29465
29467
|
const checkmarkSVG = /* @__PURE__ */ jsxs9("svg", {
|
|
@@ -29469,7 +29471,8 @@ var PricingBulletPoint = ({ text, checked, children }) => {
|
|
|
29469
29471
|
fill: "none",
|
|
29470
29472
|
xmlns: "http://www.w3.org/2000/svg",
|
|
29471
29473
|
style: {
|
|
29472
|
-
flexShrink: 0
|
|
29474
|
+
flexShrink: 0,
|
|
29475
|
+
marginTop: 4
|
|
29473
29476
|
},
|
|
29474
29477
|
children: [
|
|
29475
29478
|
/* @__PURE__ */ jsx48("circle", {
|
|
@@ -29519,7 +29522,7 @@ var Title = ({ children }) => {
|
|
|
29519
29522
|
};
|
|
29520
29523
|
var Audience = ({ children }) => {
|
|
29521
29524
|
return /* @__PURE__ */ jsx50("div", {
|
|
29522
|
-
className: "fontbrand text-lg leading-
|
|
29525
|
+
className: "fontbrand text-lg leading-snug",
|
|
29523
29526
|
children
|
|
29524
29527
|
});
|
|
29525
29528
|
};
|
|
@@ -44013,7 +44016,7 @@ import {
|
|
|
44013
44016
|
import { BufferTarget, StreamTarget } from "mediabunny";
|
|
44014
44017
|
|
|
44015
44018
|
// ../core/dist/esm/version.mjs
|
|
44016
|
-
var VERSION2 = "4.0.
|
|
44019
|
+
var VERSION2 = "4.0.502";
|
|
44017
44020
|
|
|
44018
44021
|
// ../web-renderer/dist/esm/index.mjs
|
|
44019
44022
|
import { AudioSample, VideoSample } from "mediabunny";
|
|
@@ -45061,7 +45064,110 @@ var getRealFrameRange = (durationInFrames, frameRange) => {
|
|
|
45061
45064
|
}
|
|
45062
45065
|
return resolved;
|
|
45063
45066
|
};
|
|
45064
|
-
var
|
|
45067
|
+
var makeMaskImageLoaderState = ({
|
|
45068
|
+
signal,
|
|
45069
|
+
timeoutInMilliseconds
|
|
45070
|
+
}) => {
|
|
45071
|
+
const images = new Set;
|
|
45072
|
+
return {
|
|
45073
|
+
cache: new Map,
|
|
45074
|
+
images,
|
|
45075
|
+
signal,
|
|
45076
|
+
timeoutInMilliseconds,
|
|
45077
|
+
[Symbol.dispose]: () => {
|
|
45078
|
+
for (const image of images) {
|
|
45079
|
+
image.close();
|
|
45080
|
+
}
|
|
45081
|
+
images.clear();
|
|
45082
|
+
}
|
|
45083
|
+
};
|
|
45084
|
+
};
|
|
45085
|
+
var validateMaskImageUrl = (src) => {
|
|
45086
|
+
const url = new URL(src, document.baseURI);
|
|
45087
|
+
if (url.protocol === "data:" || url.protocol === "blob:") {
|
|
45088
|
+
return url.href;
|
|
45089
|
+
}
|
|
45090
|
+
if ((url.protocol === "http:" || url.protocol === "https:") && url.origin === window.location.origin) {
|
|
45091
|
+
return url.href;
|
|
45092
|
+
}
|
|
45093
|
+
throw new Error(`@remotion/web-renderer only supports same-origin, data:, and blob: mask-image URLs. Received: ${url.href}`);
|
|
45094
|
+
};
|
|
45095
|
+
var loadMaskImage = async ({
|
|
45096
|
+
src,
|
|
45097
|
+
state
|
|
45098
|
+
}) => {
|
|
45099
|
+
const resolvedSrc = validateMaskImageUrl(src);
|
|
45100
|
+
if (state.signal?.aborted) {
|
|
45101
|
+
throw new Error(`Loading mask-image URL was cancelled: ${resolvedSrc}`);
|
|
45102
|
+
}
|
|
45103
|
+
const controller = new AbortController;
|
|
45104
|
+
let timedOut = false;
|
|
45105
|
+
const onAbort = () => controller.abort();
|
|
45106
|
+
state.signal?.addEventListener("abort", onAbort, { once: true });
|
|
45107
|
+
const timeout = window.setTimeout(() => {
|
|
45108
|
+
timedOut = true;
|
|
45109
|
+
controller.abort();
|
|
45110
|
+
}, state.timeoutInMilliseconds);
|
|
45111
|
+
const operation = (async () => {
|
|
45112
|
+
const response = await fetch(resolvedSrc, {
|
|
45113
|
+
credentials: "same-origin",
|
|
45114
|
+
signal: controller.signal
|
|
45115
|
+
});
|
|
45116
|
+
if (!response.ok) {
|
|
45117
|
+
throw new Error(`HTTP ${response.status} ${response.statusText}`);
|
|
45118
|
+
}
|
|
45119
|
+
const blob = await response.blob();
|
|
45120
|
+
const contentType = blob.type.toLowerCase().split(";")[0];
|
|
45121
|
+
if (!contentType.startsWith("image/") || contentType === "image/svg+xml") {
|
|
45122
|
+
throw new Error(`Expected a raster image, but received Content-Type "${blob.type || "unknown"}"`);
|
|
45123
|
+
}
|
|
45124
|
+
return createImageBitmap(blob);
|
|
45125
|
+
})();
|
|
45126
|
+
operation.then((image) => {
|
|
45127
|
+
if (controller.signal.aborted) {
|
|
45128
|
+
image.close();
|
|
45129
|
+
}
|
|
45130
|
+
}, () => {
|
|
45131
|
+
return;
|
|
45132
|
+
});
|
|
45133
|
+
const aborted = new Promise((_, reject) => {
|
|
45134
|
+
controller.signal.addEventListener("abort", () => reject(new Error("Mask image loading was aborted")), { once: true });
|
|
45135
|
+
});
|
|
45136
|
+
try {
|
|
45137
|
+
const image = await Promise.race([operation, aborted]);
|
|
45138
|
+
state.images.add(image);
|
|
45139
|
+
return image;
|
|
45140
|
+
} catch (error2) {
|
|
45141
|
+
if (timedOut) {
|
|
45142
|
+
throw new Error(`Timed out loading mask-image URL after ${state.timeoutInMilliseconds}ms: ${resolvedSrc}`);
|
|
45143
|
+
}
|
|
45144
|
+
if (state.signal?.aborted) {
|
|
45145
|
+
throw new Error(`Loading mask-image URL was cancelled: ${resolvedSrc}`);
|
|
45146
|
+
}
|
|
45147
|
+
const detail = error2 instanceof Error ? error2.message : String(error2);
|
|
45148
|
+
throw new Error(`Could not load mask-image URL ${resolvedSrc}: ${detail}`);
|
|
45149
|
+
} finally {
|
|
45150
|
+
window.clearTimeout(timeout);
|
|
45151
|
+
state.signal?.removeEventListener("abort", onAbort);
|
|
45152
|
+
}
|
|
45153
|
+
};
|
|
45154
|
+
var getMaskImage = ({
|
|
45155
|
+
src,
|
|
45156
|
+
state
|
|
45157
|
+
}) => {
|
|
45158
|
+
const cached = state.cache.get(src);
|
|
45159
|
+
if (cached) {
|
|
45160
|
+
return cached;
|
|
45161
|
+
}
|
|
45162
|
+
const promise = loadMaskImage({ src, state });
|
|
45163
|
+
state.cache.set(src, promise);
|
|
45164
|
+
promise.catch(() => state.cache.delete(src));
|
|
45165
|
+
return promise;
|
|
45166
|
+
};
|
|
45167
|
+
var makeInternalState = ({
|
|
45168
|
+
signal = null,
|
|
45169
|
+
maskImageTimeoutInMilliseconds = 30000
|
|
45170
|
+
} = {}) => {
|
|
45065
45171
|
let drawnPrecomposedPixels = 0;
|
|
45066
45172
|
let precomposedTextures = 0;
|
|
45067
45173
|
let waitForReadyTime = 0;
|
|
@@ -45071,6 +45177,10 @@ var makeInternalState = () => {
|
|
|
45071
45177
|
const helperCanvasState = {
|
|
45072
45178
|
current: null
|
|
45073
45179
|
};
|
|
45180
|
+
const maskImageLoaderState = makeMaskImageLoaderState({
|
|
45181
|
+
signal,
|
|
45182
|
+
timeoutInMilliseconds: maskImageTimeoutInMilliseconds
|
|
45183
|
+
});
|
|
45074
45184
|
return {
|
|
45075
45185
|
getDrawn3dPixels: () => drawnPrecomposedPixels,
|
|
45076
45186
|
getPrecomposedTiles: () => precomposedTextures,
|
|
@@ -45082,10 +45192,12 @@ var makeInternalState = () => {
|
|
|
45082
45192
|
precomposedTextures++;
|
|
45083
45193
|
},
|
|
45084
45194
|
helperCanvasState,
|
|
45195
|
+
maskImageLoaderState,
|
|
45085
45196
|
[Symbol.dispose]: () => {
|
|
45086
45197
|
if (helperCanvasState.current) {
|
|
45087
45198
|
helperCanvasState.current.cleanup();
|
|
45088
45199
|
}
|
|
45200
|
+
maskImageLoaderState[Symbol.dispose]();
|
|
45089
45201
|
},
|
|
45090
45202
|
getWaitForReadyTime: () => waitForReadyTime,
|
|
45091
45203
|
addWaitForReadyTime: (time) => {
|
|
@@ -45977,8 +46089,133 @@ var getMaskImageValue = (computedStyle) => {
|
|
|
45977
46089
|
}
|
|
45978
46090
|
return value;
|
|
45979
46091
|
};
|
|
46092
|
+
var parseUrlFunction = (value) => {
|
|
46093
|
+
const trimmed = value.trim();
|
|
46094
|
+
if (!trimmed.toLowerCase().startsWith("url(")) {
|
|
46095
|
+
return null;
|
|
46096
|
+
}
|
|
46097
|
+
let index2 = 4;
|
|
46098
|
+
while (/\s/.test(trimmed[index2] ?? "")) {
|
|
46099
|
+
index2++;
|
|
46100
|
+
}
|
|
46101
|
+
const quote = trimmed[index2] === '"' || trimmed[index2] === "'" ? trimmed[index2] : null;
|
|
46102
|
+
if (quote) {
|
|
46103
|
+
index2++;
|
|
46104
|
+
}
|
|
46105
|
+
let url = "";
|
|
46106
|
+
let closedQuote = quote === null;
|
|
46107
|
+
for (;index2 < trimmed.length; index2++) {
|
|
46108
|
+
const char = trimmed[index2];
|
|
46109
|
+
if (char === "\\") {
|
|
46110
|
+
const next = trimmed[index2 + 1];
|
|
46111
|
+
if (next === undefined) {
|
|
46112
|
+
return null;
|
|
46113
|
+
}
|
|
46114
|
+
url += next;
|
|
46115
|
+
index2++;
|
|
46116
|
+
continue;
|
|
46117
|
+
}
|
|
46118
|
+
if (quote && char === quote) {
|
|
46119
|
+
closedQuote = true;
|
|
46120
|
+
index2++;
|
|
46121
|
+
break;
|
|
46122
|
+
}
|
|
46123
|
+
if (!quote && char === ")") {
|
|
46124
|
+
break;
|
|
46125
|
+
}
|
|
46126
|
+
url += char;
|
|
46127
|
+
}
|
|
46128
|
+
if (!closedQuote) {
|
|
46129
|
+
return null;
|
|
46130
|
+
}
|
|
46131
|
+
while (/\s/.test(trimmed[index2] ?? "")) {
|
|
46132
|
+
index2++;
|
|
46133
|
+
}
|
|
46134
|
+
if (trimmed[index2] !== ")") {
|
|
46135
|
+
return null;
|
|
46136
|
+
}
|
|
46137
|
+
index2++;
|
|
46138
|
+
while (/\s/.test(trimmed[index2] ?? "")) {
|
|
46139
|
+
index2++;
|
|
46140
|
+
}
|
|
46141
|
+
if (index2 !== trimmed.length) {
|
|
46142
|
+
return null;
|
|
46143
|
+
}
|
|
46144
|
+
return url.trim();
|
|
46145
|
+
};
|
|
46146
|
+
var getMaskProperty = ({
|
|
46147
|
+
standard,
|
|
46148
|
+
prefixed
|
|
46149
|
+
}) => standard || prefixed;
|
|
46150
|
+
var normalizeCssValue = (value) => value.trim().toLowerCase().replace(/\s+/g, " ");
|
|
46151
|
+
var validateUrlMaskImageStyle = (computedStyle) => {
|
|
46152
|
+
const maskSize = normalizeCssValue(getMaskProperty({
|
|
46153
|
+
standard: computedStyle.maskSize,
|
|
46154
|
+
prefixed: computedStyle.webkitMaskSize
|
|
46155
|
+
}));
|
|
46156
|
+
const maskPosition = normalizeCssValue(getMaskProperty({
|
|
46157
|
+
standard: computedStyle.maskPosition,
|
|
46158
|
+
prefixed: computedStyle.webkitMaskPosition
|
|
46159
|
+
}));
|
|
46160
|
+
const maskRepeat = normalizeCssValue(getMaskProperty({
|
|
46161
|
+
standard: computedStyle.maskRepeat,
|
|
46162
|
+
prefixed: computedStyle.webkitMaskRepeat
|
|
46163
|
+
}));
|
|
46164
|
+
const maskMode = normalizeCssValue(computedStyle.maskMode);
|
|
46165
|
+
const maskOrigin = normalizeCssValue(getMaskProperty({
|
|
46166
|
+
standard: computedStyle.maskOrigin,
|
|
46167
|
+
prefixed: computedStyle.webkitMaskOrigin
|
|
46168
|
+
}));
|
|
46169
|
+
const maskClip = normalizeCssValue(getMaskProperty({
|
|
46170
|
+
standard: computedStyle.maskClip,
|
|
46171
|
+
prefixed: computedStyle.webkitMaskClip
|
|
46172
|
+
}));
|
|
46173
|
+
const isSupportedPosition = maskPosition === "0% 0%" || maskPosition === "0px 0px" || maskPosition === "left top";
|
|
46174
|
+
const unsupportedProperties = [
|
|
46175
|
+
maskSize !== "100% 100%" ? `mask-size: ${maskSize}` : null,
|
|
46176
|
+
!isSupportedPosition ? `mask-position: ${maskPosition}` : null,
|
|
46177
|
+
maskRepeat !== "no-repeat" ? `mask-repeat: ${maskRepeat}` : null,
|
|
46178
|
+
maskMode !== "" && maskMode !== "alpha" && maskMode !== "match-source" ? `mask-mode: ${maskMode}` : null,
|
|
46179
|
+
maskOrigin !== "border-box" ? `mask-origin: ${maskOrigin}` : null,
|
|
46180
|
+
maskClip !== "border-box" ? `mask-clip: ${maskClip}` : null
|
|
46181
|
+
].filter((property) => property !== null);
|
|
46182
|
+
if (unsupportedProperties.length > 0) {
|
|
46183
|
+
throw new Error(`@remotion/web-renderer only supports URL masks with mask-size: 100% 100%, mask-position: 0% 0%, mask-repeat: no-repeat, the border box as origin and clip, and alpha semantics. Unsupported value${unsupportedProperties.length === 1 ? "" : "s"}: ${unsupportedProperties.join(", ")}`);
|
|
46184
|
+
}
|
|
46185
|
+
};
|
|
45980
46186
|
var parseMaskImage = (maskImageValue) => {
|
|
45981
|
-
|
|
46187
|
+
const gradientInfo = parseLinearGradient(maskImageValue);
|
|
46188
|
+
if (gradientInfo) {
|
|
46189
|
+
return { type: "linear-gradient", gradientInfo };
|
|
46190
|
+
}
|
|
46191
|
+
const url = parseUrlFunction(maskImageValue);
|
|
46192
|
+
if (url !== null) {
|
|
46193
|
+
if (!url) {
|
|
46194
|
+
throw new Error("mask-image: url() must contain a URL");
|
|
46195
|
+
}
|
|
46196
|
+
return { type: "url", src: new URL(url, document.baseURI).href };
|
|
46197
|
+
}
|
|
46198
|
+
if (maskImageValue.trim().toLowerCase().startsWith("url(")) {
|
|
46199
|
+
throw new Error("@remotion/web-renderer only supports a single mask-image: url() layer");
|
|
46200
|
+
}
|
|
46201
|
+
return null;
|
|
46202
|
+
};
|
|
46203
|
+
var elementHasUrlMaskImage = (element) => {
|
|
46204
|
+
const value = getMaskImageValue(getComputedStyle(element));
|
|
46205
|
+
return value?.trim().toLowerCase().startsWith("url(") ?? false;
|
|
46206
|
+
};
|
|
46207
|
+
var containsUrlMaskImage = (element) => {
|
|
46208
|
+
if (elementHasUrlMaskImage(element)) {
|
|
46209
|
+
return true;
|
|
46210
|
+
}
|
|
46211
|
+
const children = element.querySelectorAll("*");
|
|
46212
|
+
for (let index2 = 0;index2 < children.length; index2++) {
|
|
46213
|
+
const child = children[index2];
|
|
46214
|
+
if (elementHasUrlMaskImage(child)) {
|
|
46215
|
+
return true;
|
|
46216
|
+
}
|
|
46217
|
+
}
|
|
46218
|
+
return false;
|
|
45982
46219
|
};
|
|
45983
46220
|
var parseTransformOrigin = (transformOrigin2) => {
|
|
45984
46221
|
if (transformOrigin2.trim() === "") {
|
|
@@ -46083,6 +46320,9 @@ var calculateTransforms = ({
|
|
|
46083
46320
|
opacity2 = parseFloat(computedStyle.opacity);
|
|
46084
46321
|
const maskImageValue = getMaskImageValue(computedStyle);
|
|
46085
46322
|
maskImageInfo = maskImageValue ? parseMaskImage(maskImageValue) : null;
|
|
46323
|
+
if (maskImageInfo?.type === "url") {
|
|
46324
|
+
validateUrlMaskImageStyle(computedStyle);
|
|
46325
|
+
}
|
|
46086
46326
|
filterForPrecompositing = filterRequiresPrecompositing(computedStyle.filter);
|
|
46087
46327
|
const originalMaskImage = parent.style.maskImage;
|
|
46088
46328
|
const originalWebkitMaskImage = parent.style.webkitMaskImage;
|
|
@@ -47914,24 +48154,34 @@ var getPrecomposeRectForMask = (element) => {
|
|
|
47914
48154
|
const boundingRect = getBiggestBoundingClientRect(element);
|
|
47915
48155
|
return boundingRect;
|
|
47916
48156
|
};
|
|
47917
|
-
var handleMask = ({
|
|
47918
|
-
|
|
48157
|
+
var handleMask = async ({
|
|
48158
|
+
maskImageInfo,
|
|
47919
48159
|
maskRect,
|
|
47920
48160
|
precomposeRect,
|
|
47921
48161
|
tempContext,
|
|
47922
|
-
scale
|
|
48162
|
+
scale,
|
|
48163
|
+
internalState
|
|
47923
48164
|
}) => {
|
|
47924
48165
|
const rectToFill = new DOMRect((maskRect.left - precomposeRect.left) * scale, (maskRect.top - precomposeRect.top) * scale, maskRect.width * scale, maskRect.height * scale);
|
|
47925
|
-
|
|
47926
|
-
|
|
47927
|
-
|
|
47928
|
-
|
|
47929
|
-
|
|
47930
|
-
|
|
48166
|
+
if (maskImageInfo.type === "linear-gradient") {
|
|
48167
|
+
const gradient = createCanvasGradient({
|
|
48168
|
+
ctx: tempContext,
|
|
48169
|
+
rect: rectToFill,
|
|
48170
|
+
gradientInfo: maskImageInfo.gradientInfo,
|
|
48171
|
+
offsetLeft: 0,
|
|
48172
|
+
offsetTop: 0
|
|
48173
|
+
});
|
|
48174
|
+
tempContext.globalCompositeOperation = "destination-in";
|
|
48175
|
+
tempContext.fillStyle = gradient;
|
|
48176
|
+
tempContext.fillRect(rectToFill.left, rectToFill.top, rectToFill.width, rectToFill.height);
|
|
48177
|
+
return;
|
|
48178
|
+
}
|
|
48179
|
+
const image = await getMaskImage({
|
|
48180
|
+
src: maskImageInfo.src,
|
|
48181
|
+
state: internalState.maskImageLoaderState
|
|
47931
48182
|
});
|
|
47932
48183
|
tempContext.globalCompositeOperation = "destination-in";
|
|
47933
|
-
tempContext.
|
|
47934
|
-
tempContext.fillRect(rectToFill.left, rectToFill.top, rectToFill.width, rectToFill.height);
|
|
48184
|
+
tempContext.drawImage(image, rectToFill.left, rectToFill.top, rectToFill.width, rectToFill.height);
|
|
47935
48185
|
};
|
|
47936
48186
|
var scaleRect = ({
|
|
47937
48187
|
rect,
|
|
@@ -48048,12 +48298,13 @@ var processNode = async ({
|
|
|
48048
48298
|
})
|
|
48049
48299
|
}));
|
|
48050
48300
|
if (precompositing.needsMaskImage) {
|
|
48051
|
-
handleMask({
|
|
48052
|
-
|
|
48301
|
+
await handleMask({
|
|
48302
|
+
maskImageInfo: precompositing.needsMaskImage,
|
|
48053
48303
|
maskRect: dimensions,
|
|
48054
48304
|
precomposeRect,
|
|
48055
48305
|
tempContext,
|
|
48056
|
-
scale
|
|
48306
|
+
scale,
|
|
48307
|
+
internalState
|
|
48057
48308
|
});
|
|
48058
48309
|
if (waitForPageResponsiveness !== null) {
|
|
48059
48310
|
await waitForPageResponsiveness();
|
|
@@ -48654,26 +48905,34 @@ var createLayer = async ({
|
|
|
48654
48905
|
const scaledWidth = Math.ceil(cutout.width * scale);
|
|
48655
48906
|
const scaledHeight = Math.ceil(cutout.height * scale);
|
|
48656
48907
|
if (!onlyBackgroundClipText && element instanceof HTMLElement && htmlInCanvasContext && onHtmlInCanvasLayerOutcome) {
|
|
48657
|
-
|
|
48658
|
-
try {
|
|
48659
|
-
const offCtx = await drawWithHtmlInCanvas({
|
|
48660
|
-
htmlInCanvasContext,
|
|
48661
|
-
element,
|
|
48662
|
-
scaledWidth,
|
|
48663
|
-
scaledHeight,
|
|
48664
|
-
waitForRenderReady,
|
|
48665
|
-
useElementImage: hasNestedHtmlInCanvas
|
|
48666
|
-
});
|
|
48667
|
-
onHtmlInCanvasLayerOutcome({ native: true });
|
|
48668
|
-
return offCtx;
|
|
48669
|
-
} catch (err) {
|
|
48670
|
-
const detail = err instanceof Error ? err.message : JSON.stringify(err);
|
|
48908
|
+
if (containsUrlMaskImage(element)) {
|
|
48671
48909
|
onHtmlInCanvasLayerOutcome({
|
|
48672
48910
|
native: false,
|
|
48673
|
-
reason:
|
|
48674
|
-
shouldWarn:
|
|
48911
|
+
reason: "URL masks are loaded by the built-in DOM composer to guarantee deterministic rendering.",
|
|
48912
|
+
shouldWarn: false
|
|
48675
48913
|
});
|
|
48676
|
-
|
|
48914
|
+
} else {
|
|
48915
|
+
const hasNestedHtmlInCanvas = containsLayoutSubtreeCanvas(element);
|
|
48916
|
+
try {
|
|
48917
|
+
const offCtx = await drawWithHtmlInCanvas({
|
|
48918
|
+
htmlInCanvasContext,
|
|
48919
|
+
element,
|
|
48920
|
+
scaledWidth,
|
|
48921
|
+
scaledHeight,
|
|
48922
|
+
waitForRenderReady,
|
|
48923
|
+
useElementImage: hasNestedHtmlInCanvas
|
|
48924
|
+
});
|
|
48925
|
+
onHtmlInCanvasLayerOutcome({ native: true });
|
|
48926
|
+
return offCtx;
|
|
48927
|
+
} catch (err) {
|
|
48928
|
+
const detail = err instanceof Error ? err.message : JSON.stringify(err);
|
|
48929
|
+
onHtmlInCanvasLayerOutcome({
|
|
48930
|
+
native: false,
|
|
48931
|
+
reason: `drawElementImage failed (${detail}); falling back to the built-in DOM composer.`,
|
|
48932
|
+
shouldWarn: true
|
|
48933
|
+
});
|
|
48934
|
+
Internals.Log.verbose({ logLevel, tag: "@remotion/web-renderer" }, "HTML-in-canvas capture failed, falling back to software compose", err);
|
|
48935
|
+
}
|
|
48677
48936
|
}
|
|
48678
48937
|
}
|
|
48679
48938
|
const canvas = new OffscreenCanvas(scaledWidth, scaledHeight);
|
|
@@ -49005,7 +49264,10 @@ var internalRenderMediaOnWeb = async ({
|
|
|
49005
49264
|
errorHolder,
|
|
49006
49265
|
htmlInCanvasContext
|
|
49007
49266
|
} = scaffold;
|
|
49008
|
-
const internalState = __using2(__stack2, makeInternalState(
|
|
49267
|
+
const internalState = __using2(__stack2, makeInternalState({
|
|
49268
|
+
signal,
|
|
49269
|
+
maskImageTimeoutInMilliseconds: delayRenderTimeoutInMilliseconds
|
|
49270
|
+
}), 0);
|
|
49009
49271
|
const pageResponsivenessController = createPageResponsivenessController({
|
|
49010
49272
|
intervalInMilliseconds: pageResponsivenessIntervalInMilliseconds,
|
|
49011
49273
|
now: () => performance.now(),
|
|
@@ -50638,7 +50900,7 @@ var useTransparentVideoSource = ({
|
|
|
50638
50900
|
fallbackVideoSrc,
|
|
50639
50901
|
videoSrc
|
|
50640
50902
|
}) => {
|
|
50641
|
-
const [src, setSrc] = useState59(
|
|
50903
|
+
const [src, setSrc] = useState59(null);
|
|
50642
50904
|
useEffect60(() => {
|
|
50643
50905
|
setSrc(isWebkit() ? fallbackVideoSrc : videoSrc);
|
|
50644
50906
|
}, [fallbackVideoSrc, videoSrc]);
|
|
@@ -50694,7 +50956,7 @@ var MakeVideosAgentically = ({
|
|
|
50694
50956
|
children: [
|
|
50695
50957
|
/* @__PURE__ */ jsx121("div", {
|
|
50696
50958
|
className: "flex aspect-square w-full items-start",
|
|
50697
|
-
children: showVideo ? /* @__PURE__ */ jsx121("video", {
|
|
50959
|
+
children: showVideo && src ? /* @__PURE__ */ jsx121("video", {
|
|
50698
50960
|
ref: videoRef,
|
|
50699
50961
|
src,
|
|
50700
50962
|
muted: true,
|
|
@@ -50761,7 +51023,7 @@ var MakeVideosInteractively = ({
|
|
|
50761
51023
|
children: [
|
|
50762
51024
|
/* @__PURE__ */ jsx125("div", {
|
|
50763
51025
|
className: "flex aspect-square w-full items-start",
|
|
50764
|
-
children: showVideo ? /* @__PURE__ */ jsx125("video", {
|
|
51026
|
+
children: showVideo && src ? /* @__PURE__ */ jsx125("video", {
|
|
50765
51027
|
src,
|
|
50766
51028
|
autoPlay: true,
|
|
50767
51029
|
muted: true,
|
|
@@ -50824,7 +51086,7 @@ var MakeVideosProgrammatically = ({
|
|
|
50824
51086
|
children: [
|
|
50825
51087
|
/* @__PURE__ */ jsx127("div", {
|
|
50826
51088
|
className: "flex aspect-square w-full items-start",
|
|
50827
|
-
children: showVideo ? /* @__PURE__ */ jsx127("video", {
|
|
51089
|
+
children: showVideo && src ? /* @__PURE__ */ jsx127("video", {
|
|
50828
51090
|
src,
|
|
50829
51091
|
muted: true,
|
|
50830
51092
|
autoPlay: true,
|
package/dist/design.js
CHANGED
package/dist/experts.js
CHANGED
package/dist/homepage/Pricing.js
CHANGED
|
@@ -9325,7 +9325,7 @@ var Composition = (props) => {
|
|
|
9325
9325
|
...props
|
|
9326
9326
|
});
|
|
9327
9327
|
};
|
|
9328
|
-
var VERSION = "4.0.
|
|
9328
|
+
var VERSION = "4.0.502";
|
|
9329
9329
|
var checkMultipleRemotionVersions = () => {
|
|
9330
9330
|
if (typeof globalThis === "undefined") {
|
|
9331
9331
|
return;
|
|
@@ -28136,14 +28136,16 @@ import { jsx as jsx45, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
|
28136
28136
|
var container3 = {
|
|
28137
28137
|
display: "flex",
|
|
28138
28138
|
flexDirection: "row",
|
|
28139
|
-
alignItems: "
|
|
28139
|
+
alignItems: "flex-start",
|
|
28140
28140
|
gap: "10px"
|
|
28141
28141
|
};
|
|
28142
28142
|
var greyCircle = {
|
|
28143
28143
|
width: 20,
|
|
28144
28144
|
height: 20,
|
|
28145
28145
|
borderRadius: 10,
|
|
28146
|
-
backgroundColor: "var(--footer-border)"
|
|
28146
|
+
backgroundColor: "var(--footer-border)",
|
|
28147
|
+
flexShrink: 0,
|
|
28148
|
+
marginTop: 4
|
|
28147
28149
|
};
|
|
28148
28150
|
var PricingBulletPoint = ({ text, checked, children }) => {
|
|
28149
28151
|
const checkmarkSVG = /* @__PURE__ */ jsxs7("svg", {
|
|
@@ -28153,7 +28155,8 @@ var PricingBulletPoint = ({ text, checked, children }) => {
|
|
|
28153
28155
|
fill: "none",
|
|
28154
28156
|
xmlns: "http://www.w3.org/2000/svg",
|
|
28155
28157
|
style: {
|
|
28156
|
-
flexShrink: 0
|
|
28158
|
+
flexShrink: 0,
|
|
28159
|
+
marginTop: 4
|
|
28157
28160
|
},
|
|
28158
28161
|
children: [
|
|
28159
28162
|
/* @__PURE__ */ jsx45("circle", {
|
|
@@ -28203,7 +28206,7 @@ var Title = ({ children }) => {
|
|
|
28203
28206
|
};
|
|
28204
28207
|
var Audience = ({ children }) => {
|
|
28205
28208
|
return /* @__PURE__ */ jsx47("div", {
|
|
28206
|
-
className: "fontbrand text-lg leading-
|
|
28209
|
+
className: "fontbrand text-lg leading-snug",
|
|
28207
28210
|
children
|
|
28208
28211
|
});
|
|
28209
28212
|
};
|
|
@@ -26656,7 +26656,7 @@ var Composition = (props) => {
|
|
|
26656
26656
|
...props
|
|
26657
26657
|
});
|
|
26658
26658
|
};
|
|
26659
|
-
var VERSION = "4.0.
|
|
26659
|
+
var VERSION = "4.0.502";
|
|
26660
26660
|
var checkMultipleRemotionVersions = () => {
|
|
26661
26661
|
if (typeof globalThis === "undefined") {
|
|
26662
26662
|
return;
|
package/dist/team.js
CHANGED
package/dist/templates.js
CHANGED
|
@@ -9322,7 +9322,7 @@ var Composition = (props) => {
|
|
|
9322
9322
|
...props
|
|
9323
9323
|
});
|
|
9324
9324
|
};
|
|
9325
|
-
var VERSION = "4.0.
|
|
9325
|
+
var VERSION = "4.0.502";
|
|
9326
9326
|
var checkMultipleRemotionVersions = () => {
|
|
9327
9327
|
if (typeof globalThis === "undefined") {
|
|
9328
9328
|
return;
|
|
@@ -26906,7 +26906,7 @@ var listOfRemotionPackages = [
|
|
|
26906
26906
|
"@remotion/remotion-media",
|
|
26907
26907
|
"@remotion/web-renderer",
|
|
26908
26908
|
"@remotion/design",
|
|
26909
|
-
"@remotion/
|
|
26909
|
+
"@remotion/studio-protocol",
|
|
26910
26910
|
"@remotion/light-leaks",
|
|
26911
26911
|
"@remotion/rough-notation",
|
|
26912
26912
|
"@remotion/starburst",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remotion/promo-pages",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.502",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -11,19 +11,19 @@
|
|
|
11
11
|
},
|
|
12
12
|
"type": "module",
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@remotion/animated-emoji": "4.0.
|
|
15
|
-
"@remotion/design": "4.0.
|
|
16
|
-
"@remotion/web-renderer": "4.0.
|
|
17
|
-
"@remotion/lottie": "4.0.
|
|
18
|
-
"@remotion/paths": "4.0.
|
|
19
|
-
"@remotion/player": "4.0.
|
|
20
|
-
"@remotion/shapes": "4.0.
|
|
21
|
-
"@remotion/media": "4.0.
|
|
22
|
-
"@remotion/svg-3d-engine": "4.0.
|
|
23
|
-
"create-video": "4.0.
|
|
14
|
+
"@remotion/animated-emoji": "4.0.502",
|
|
15
|
+
"@remotion/design": "4.0.502",
|
|
16
|
+
"@remotion/web-renderer": "4.0.502",
|
|
17
|
+
"@remotion/lottie": "4.0.502",
|
|
18
|
+
"@remotion/paths": "4.0.502",
|
|
19
|
+
"@remotion/player": "4.0.502",
|
|
20
|
+
"@remotion/shapes": "4.0.502",
|
|
21
|
+
"@remotion/media": "4.0.502",
|
|
22
|
+
"@remotion/svg-3d-engine": "4.0.502",
|
|
23
|
+
"create-video": "4.0.502",
|
|
24
24
|
"hls.js": "1.5.19",
|
|
25
25
|
"polished": "4.3.1",
|
|
26
|
-
"remotion": "4.0.
|
|
26
|
+
"remotion": "4.0.502",
|
|
27
27
|
"zod": "4.4.3",
|
|
28
28
|
"@mux/upchunk": "3.5.0",
|
|
29
29
|
"@vidstack/react": "1.12.13",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"@mediabunny/mp3-encoder": "1.50.8"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@remotion/eslint-config-internal": "4.0.
|
|
37
|
+
"@remotion/eslint-config-internal": "4.0.502",
|
|
38
38
|
"@eslint/eslintrc": "3.1.0",
|
|
39
39
|
"@types/react": "19.2.7",
|
|
40
40
|
"@types/react-dom": "19.2.3",
|