@remotion/promo-pages 4.0.474 → 4.0.475

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/experts.js CHANGED
@@ -1101,69 +1101,71 @@ import { forwardRef as forwardRef11, useCallback as useCallback17, useState as u
1101
1101
  import { jsx as jsx27 } from "react/jsx-runtime";
1102
1102
  import { useCallback as useCallback18, useContext as useContext33, useLayoutEffect as useLayoutEffect10, useRef as useRef24 } from "react";
1103
1103
  import { jsx as jsx28 } from "react/jsx-runtime";
1104
+ import React29, { forwardRef as forwardRef12, useCallback as useCallback19, useRef as useRef25 } from "react";
1105
+ import { jsx as jsx29 } from "react/jsx-runtime";
1104
1106
  import { createRef as createRef3 } from "react";
1105
- import React29 from "react";
1107
+ import React30 from "react";
1106
1108
  import {
1107
- useCallback as useCallback19,
1109
+ useCallback as useCallback20,
1108
1110
  useImperativeHandle as useImperativeHandle8,
1109
1111
  useMemo as useMemo32,
1110
- useRef as useRef25,
1112
+ useRef as useRef26,
1111
1113
  useState as useState18
1112
1114
  } from "react";
1113
- import { jsx as jsx29 } from "react/jsx-runtime";
1114
- import React30 from "react";
1115
+ import { jsx as jsx30 } from "react/jsx-runtime";
1116
+ import React31 from "react";
1115
1117
  import { useMemo as useMemo34 } from "react";
1116
1118
  import { createContext as createContext24, useContext as useContext34, useMemo as useMemo33 } from "react";
1117
- import { jsx as jsx30 } from "react/jsx-runtime";
1118
1119
  import { jsx as jsx31 } from "react/jsx-runtime";
1119
- import React32 from "react";
1120
- import React33, { createContext as createContext25 } from "react";
1121
- import React34, { useContext as useContext35 } from "react";
1122
- import { useCallback as useCallback22 } from "react";
1120
+ import { jsx as jsx32 } from "react/jsx-runtime";
1121
+ import React33 from "react";
1122
+ import React34, { createContext as createContext25 } from "react";
1123
+ import React35, { useContext as useContext35 } from "react";
1124
+ import { useCallback as useCallback23 } from "react";
1123
1125
  import {
1124
- useCallback as useCallback20,
1126
+ useCallback as useCallback21,
1125
1127
  useContext as useContext36,
1126
1128
  useEffect as useEffect18,
1127
1129
  useLayoutEffect as useLayoutEffect11,
1128
1130
  useMemo as useMemo35,
1129
1131
  useState as useState19
1130
1132
  } from "react";
1131
- import { jsx as jsx32 } from "react/jsx-runtime";
1132
- import React36, {
1133
- forwardRef as forwardRef12,
1134
- useCallback as useCallback21,
1133
+ import { jsx as jsx33 } from "react/jsx-runtime";
1134
+ import React37, {
1135
+ forwardRef as forwardRef13,
1136
+ useCallback as useCallback22,
1135
1137
  useContext as useContext37,
1136
1138
  useEffect as useEffect20,
1137
1139
  useImperativeHandle as useImperativeHandle9,
1138
1140
  useMemo as useMemo36,
1139
- useRef as useRef26,
1141
+ useRef as useRef27,
1140
1142
  useState as useState20
1141
1143
  } from "react";
1142
1144
  import { useEffect as useEffect19 } from "react";
1143
- import { jsx as jsx33 } from "react/jsx-runtime";
1144
1145
  import { jsx as jsx34 } from "react/jsx-runtime";
1145
- import React38, { useMemo as useMemo37 } from "react";
1146
1146
  import { jsx as jsx35 } from "react/jsx-runtime";
1147
+ import React39, { useMemo as useMemo37 } from "react";
1148
+ import { jsx as jsx36 } from "react/jsx-runtime";
1147
1149
  import {
1148
1150
  Children,
1149
- forwardRef as forwardRef13,
1151
+ forwardRef as forwardRef14,
1150
1152
  useMemo as useMemo38
1151
1153
  } from "react";
1152
- import React39 from "react";
1153
- import { jsx as jsx36 } from "react/jsx-runtime";
1154
- import React41 from "react";
1155
- import { forwardRef as forwardRef15, useCallback as useCallback23, useContext as useContext39 } from "react";
1154
+ import React40 from "react";
1155
+ import { jsx as jsx37 } from "react/jsx-runtime";
1156
+ import React42 from "react";
1157
+ import { forwardRef as forwardRef16, useCallback as useCallback24, useContext as useContext39 } from "react";
1156
1158
  import {
1157
- forwardRef as forwardRef14,
1159
+ forwardRef as forwardRef15,
1158
1160
  useContext as useContext38,
1159
1161
  useEffect as useEffect21,
1160
1162
  useImperativeHandle as useImperativeHandle10,
1161
1163
  useLayoutEffect as useLayoutEffect12,
1162
1164
  useMemo as useMemo39,
1163
- useRef as useRef27
1165
+ useRef as useRef28
1164
1166
  } from "react";
1165
- import { jsx as jsx37 } from "react/jsx-runtime";
1166
1167
  import { jsx as jsx38 } from "react/jsx-runtime";
1168
+ import { jsx as jsx39 } from "react/jsx-runtime";
1167
1169
  var __defProp2 = Object.defineProperty;
1168
1170
  var __export2 = (target, all) => {
1169
1171
  for (var name in all)
@@ -2332,7 +2334,7 @@ var getComponentsToAddStacksTo = () => componentsToAddStacksTo;
2332
2334
  var addSequenceStackTraces = (component) => {
2333
2335
  componentsToAddStacksTo.push(component);
2334
2336
  };
2335
- var VERSION = "4.0.474";
2337
+ var VERSION = "4.0.475";
2336
2338
  var checkMultipleRemotionVersions = () => {
2337
2339
  if (typeof globalThis === "undefined") {
2338
2340
  return;
@@ -2699,6 +2701,12 @@ var PremountContext = createContext14({
2699
2701
  premountFramesRemaining: 0
2700
2702
  });
2701
2703
  var sequenceVisualStyleSchema = {
2704
+ "style.transformOrigin": {
2705
+ type: "transform-origin",
2706
+ step: 1,
2707
+ default: "50% 50%",
2708
+ description: "Transform origin"
2709
+ },
2702
2710
  "style.translate": {
2703
2711
  type: "translate",
2704
2712
  step: 1,
@@ -3251,6 +3259,32 @@ var lengthUnits = new Set([
3251
3259
  "vw"
3252
3260
  ]);
3253
3261
  var cssNumberRegex = /^([+-]?(?:\d+\.?\d*|\.\d+))([a-zA-Z%]+)?$/;
3262
+ var transformOriginKeywords = new Set([
3263
+ "left",
3264
+ "center",
3265
+ "right",
3266
+ "top",
3267
+ "bottom"
3268
+ ]);
3269
+ var transformOriginKeywordOptions = (keyword) => {
3270
+ if (keyword === "left") {
3271
+ return [{ axis: "x", value: { value: 0, unit: "%" } }];
3272
+ }
3273
+ if (keyword === "right") {
3274
+ return [{ axis: "x", value: { value: 100, unit: "%" } }];
3275
+ }
3276
+ if (keyword === "top") {
3277
+ return [{ axis: "y", value: { value: 0, unit: "%" } }];
3278
+ }
3279
+ if (keyword === "bottom") {
3280
+ return [{ axis: "y", value: { value: 100, unit: "%" } }];
3281
+ }
3282
+ return [
3283
+ { axis: "x", value: { value: 50, unit: "%" } },
3284
+ { axis: "y", value: { value: 50, unit: "%" } }
3285
+ ];
3286
+ };
3287
+ var transformOriginCenter = { value: 50, unit: "%" };
3254
3288
  var stringifyNumber = (value) => {
3255
3289
  return String(normalizeNumber(value));
3256
3290
  };
@@ -3275,6 +3309,110 @@ var parseStringInterpolationComponent = (component, value) => {
3275
3309
  }
3276
3310
  throw new TypeError(`Cannot interpolate "${value}" because "${unit}" is not a supported translate or rotate unit`);
3277
3311
  };
3312
+ var parseTransformOriginLengthPercentage = ({
3313
+ component,
3314
+ value,
3315
+ allowPercentage
3316
+ }) => {
3317
+ const match = cssNumberRegex.exec(component);
3318
+ if (match === null) {
3319
+ throw new TypeError(`Cannot interpolate "${value}" because "${component}" is not a supported transform-origin ${allowPercentage ? "length-percentage" : "z length"}`);
3320
+ }
3321
+ const unit = match[2] ?? null;
3322
+ const numberValue = Number(match[1]);
3323
+ if (!Number.isFinite(numberValue)) {
3324
+ throw new TypeError(`Cannot interpolate "${value}" because "${component}" is not finite`);
3325
+ }
3326
+ if (unit === null || !lengthUnits.has(unit) || !allowPercentage && unit === "%") {
3327
+ throw new TypeError(`Cannot interpolate "${value}" because "${component}" is not a supported transform-origin ${allowPercentage ? "length-percentage" : "z length"}`);
3328
+ }
3329
+ return { value: numberValue, unit };
3330
+ };
3331
+ var parseTransformOriginToken = (component, value) => {
3332
+ const lower = component.toLowerCase();
3333
+ if (transformOriginKeywords.has(lower)) {
3334
+ return { type: "keyword", keyword: lower };
3335
+ }
3336
+ return {
3337
+ type: "length-percentage",
3338
+ parsed: parseTransformOriginLengthPercentage({
3339
+ component,
3340
+ value,
3341
+ allowPercentage: true
3342
+ })
3343
+ };
3344
+ };
3345
+ var parseTwoTransformOriginKeywords = (first, second, value) => {
3346
+ const candidates = [];
3347
+ for (const firstOption of transformOriginKeywordOptions(first)) {
3348
+ for (const secondOption of transformOriginKeywordOptions(second)) {
3349
+ if (firstOption.axis === secondOption.axis) {
3350
+ continue;
3351
+ }
3352
+ candidates.push(firstOption.axis === "x" ? [firstOption.value, secondOption.value] : [secondOption.value, firstOption.value]);
3353
+ }
3354
+ }
3355
+ if (candidates.length === 0) {
3356
+ throw new TypeError(`Cannot interpolate "${value}" because "${first} ${second}" is not a valid transform-origin keyword pair`);
3357
+ }
3358
+ return candidates[0];
3359
+ };
3360
+ var parseTransformOriginXY = (parts, value) => {
3361
+ if (parts.length === 1) {
3362
+ const token = parseTransformOriginToken(parts[0], value);
3363
+ if (token.type === "length-percentage") {
3364
+ return [token.parsed, transformOriginCenter];
3365
+ }
3366
+ if (token.keyword === "top" || token.keyword === "bottom") {
3367
+ return [
3368
+ transformOriginCenter,
3369
+ transformOriginKeywordOptions(token.keyword)[0].value
3370
+ ];
3371
+ }
3372
+ return [
3373
+ transformOriginKeywordOptions(token.keyword)[0].value,
3374
+ transformOriginCenter
3375
+ ];
3376
+ }
3377
+ const first = parseTransformOriginToken(parts[0], value);
3378
+ const second = parseTransformOriginToken(parts[1], value);
3379
+ if (first.type === "length-percentage" && second.type === "length-percentage") {
3380
+ return [first.parsed, second.parsed];
3381
+ }
3382
+ if (first.type === "keyword" && second.type === "keyword") {
3383
+ return parseTwoTransformOriginKeywords(first.keyword, second.keyword, value);
3384
+ }
3385
+ const keyword = first.type === "keyword" ? first : second.type === "keyword" ? second : null;
3386
+ const length = first.type === "length-percentage" ? first.parsed : second.type === "length-percentage" ? second.parsed : null;
3387
+ if (keyword === null || length === null) {
3388
+ throw new Error("Expected a keyword and a length-percentage value");
3389
+ }
3390
+ const keywordIsFirst = first.type === "keyword";
3391
+ if (keyword.keyword === "left" || keyword.keyword === "right") {
3392
+ if (!keywordIsFirst) {
3393
+ throw new TypeError(`Cannot interpolate "${value}" because horizontal transform-origin keywords must come before a length-percentage value`);
3394
+ }
3395
+ return [transformOriginKeywordOptions(keyword.keyword)[0].value, length];
3396
+ }
3397
+ if (keyword.keyword === "top" || keyword.keyword === "bottom") {
3398
+ return [length, transformOriginKeywordOptions(keyword.keyword)[0].value];
3399
+ }
3400
+ return keywordIsFirst ? [transformOriginCenter, length] : [length, transformOriginCenter];
3401
+ };
3402
+ var parseTransformOriginValue = (output, parts) => {
3403
+ const [x, y] = parseTransformOriginXY(parts.slice(0, 2), output);
3404
+ const z = parts[2] === undefined ? { value: 0, unit: null } : parseTransformOriginLengthPercentage({
3405
+ component: parts[2],
3406
+ value: output,
3407
+ allowPercentage: false
3408
+ });
3409
+ return {
3410
+ kind: "translate",
3411
+ values: [x.value, y.value, z.value],
3412
+ units: [x.unit, y.unit, z.unit],
3413
+ dimensions: parts[2] === undefined ? 2 : 3
3414
+ };
3415
+ };
3278
3416
  var parseStringInterpolationValue = (output) => {
3279
3417
  if (typeof output === "number") {
3280
3418
  if (!Number.isFinite(output)) {
@@ -3291,6 +3429,9 @@ var parseStringInterpolationValue = (output) => {
3291
3429
  if (parts.length < 1 || parts.length > 3 || parts[0] === "") {
3292
3430
  throw new TypeError(`String outputRange values must contain 1 to 3 components, but got "${output}"`);
3293
3431
  }
3432
+ if (parts.some((part) => transformOriginKeywords.has(part.toLowerCase()))) {
3433
+ return parseTransformOriginValue(output, parts);
3434
+ }
3294
3435
  const parsed = parts.map((part) => parseStringInterpolationComponent(part, output));
3295
3436
  const [{ kind }] = parsed;
3296
3437
  for (const part of parsed) {
@@ -4046,6 +4187,7 @@ function processColor(color) {
4046
4187
  var interpolateColorsRGB = (value, inputRange, colors, options) => {
4047
4188
  const [r, g, b2, a2] = [red, green, blue, opacity].map((f) => {
4048
4189
  const unrounded = interpolate(value, inputRange, colors.map((c2) => f(c2)), {
4190
+ easing: options?.easing,
4049
4191
  extrapolateLeft: "clamp",
4050
4192
  extrapolateRight: "clamp",
4051
4193
  posterize: options?.posterize
@@ -4099,6 +4241,7 @@ var interpolateKeyframedStatus = ({
4099
4241
  }
4100
4242
  try {
4101
4243
  return interpolateColors(frame, inputRange, outputs, {
4244
+ easing: easing.map(easingToFn),
4102
4245
  posterize: status.posterize
4103
4246
  });
4104
4247
  } catch {
@@ -5505,7 +5648,7 @@ var animatedImageSchema = {
5505
5648
  max: 10,
5506
5649
  step: 0.1,
5507
5650
  default: 1,
5508
- description: "Playback Rate",
5651
+ description: "Playback rate",
5509
5652
  hiddenFromList: false,
5510
5653
  keyframable: false
5511
5654
  },
@@ -9836,7 +9979,100 @@ var Img = wrapInSchema({
9836
9979
  supportsEffects: true
9837
9980
  });
9838
9981
  addSequenceStackTraces(Img);
9839
- var compositionsRef = React29.createRef();
9982
+ var interactiveElementSchema = {
9983
+ durationInFrames: durationInFramesField,
9984
+ from: fromField,
9985
+ ...sequenceVisualStyleSchema,
9986
+ hidden: hiddenField
9987
+ };
9988
+ var setRef = (ref, value) => {
9989
+ if (typeof ref === "function") {
9990
+ ref(value);
9991
+ } else if (ref) {
9992
+ ref.current = value;
9993
+ }
9994
+ };
9995
+ var makeInteractiveElement = (tag, displayName) => {
9996
+ const Inner = forwardRef12((propsWithControls, ref) => {
9997
+ const {
9998
+ durationInFrames,
9999
+ from,
10000
+ hidden,
10001
+ name,
10002
+ showInTimeline,
10003
+ stack,
10004
+ _experimentalControls,
10005
+ ...props2
10006
+ } = propsWithControls;
10007
+ const refForOutline = useRef25(null);
10008
+ const callbackRef = useCallback19((element) => {
10009
+ refForOutline.current = element;
10010
+ setRef(ref, element);
10011
+ }, [ref]);
10012
+ return /* @__PURE__ */ jsx29(Sequence, {
10013
+ layout: "none",
10014
+ from: from ?? 0,
10015
+ durationInFrames: durationInFrames ?? Infinity,
10016
+ hidden,
10017
+ name: name ?? displayName,
10018
+ showInTimeline: showInTimeline ?? true,
10019
+ _experimentalControls,
10020
+ _remotionInternalStack: stack,
10021
+ _remotionInternalRefForOutline: refForOutline,
10022
+ children: React29.createElement(tag, {
10023
+ ...props2,
10024
+ ref: callbackRef
10025
+ })
10026
+ });
10027
+ });
10028
+ Inner.displayName = displayName;
10029
+ const Wrapped = wrapInSchema({
10030
+ Component: Inner,
10031
+ schema: interactiveElementSchema,
10032
+ supportsEffects: false
10033
+ });
10034
+ Wrapped.displayName = displayName;
10035
+ addSequenceStackTraces(Wrapped);
10036
+ return Wrapped;
10037
+ };
10038
+ var Interactive = {
10039
+ A: makeInteractiveElement("a", "<Interactive.A>"),
10040
+ Article: makeInteractiveElement("article", "<Interactive.Article>"),
10041
+ Aside: makeInteractiveElement("aside", "<Interactive.Aside>"),
10042
+ Button: makeInteractiveElement("button", "<Interactive.Button>"),
10043
+ Circle: makeInteractiveElement("circle", "<Interactive.Circle>"),
10044
+ Code: makeInteractiveElement("code", "<Interactive.Code>"),
10045
+ Div: makeInteractiveElement("div", "<Interactive.Div>"),
10046
+ Ellipse: makeInteractiveElement("ellipse", "<Interactive.Ellipse>"),
10047
+ Em: makeInteractiveElement("em", "<Interactive.Em>"),
10048
+ Footer: makeInteractiveElement("footer", "<Interactive.Footer>"),
10049
+ G: makeInteractiveElement("g", "<Interactive.G>"),
10050
+ H1: makeInteractiveElement("h1", "<Interactive.H1>"),
10051
+ H2: makeInteractiveElement("h2", "<Interactive.H2>"),
10052
+ H3: makeInteractiveElement("h3", "<Interactive.H3>"),
10053
+ H4: makeInteractiveElement("h4", "<Interactive.H4>"),
10054
+ H5: makeInteractiveElement("h5", "<Interactive.H5>"),
10055
+ H6: makeInteractiveElement("h6", "<Interactive.H6>"),
10056
+ Header: makeInteractiveElement("header", "<Interactive.Header>"),
10057
+ Label: makeInteractiveElement("label", "<Interactive.Label>"),
10058
+ Li: makeInteractiveElement("li", "<Interactive.Li>"),
10059
+ Line: makeInteractiveElement("line", "<Interactive.Line>"),
10060
+ Main: makeInteractiveElement("main", "<Interactive.Main>"),
10061
+ Nav: makeInteractiveElement("nav", "<Interactive.Nav>"),
10062
+ Ol: makeInteractiveElement("ol", "<Interactive.Ol>"),
10063
+ P: makeInteractiveElement("p", "<Interactive.P>"),
10064
+ Path: makeInteractiveElement("path", "<Interactive.Path>"),
10065
+ Pre: makeInteractiveElement("pre", "<Interactive.Pre>"),
10066
+ Rect: makeInteractiveElement("rect", "<Interactive.Rect>"),
10067
+ Section: makeInteractiveElement("section", "<Interactive.Section>"),
10068
+ Small: makeInteractiveElement("small", "<Interactive.Small>"),
10069
+ Span: makeInteractiveElement("span", "<Interactive.Span>"),
10070
+ Strong: makeInteractiveElement("strong", "<Interactive.Strong>"),
10071
+ Svg: makeInteractiveElement("svg", "<Interactive.Svg>"),
10072
+ Text: makeInteractiveElement("text", "<Interactive.Text>"),
10073
+ Ul: makeInteractiveElement("ul", "<Interactive.Ul>")
10074
+ };
10075
+ var compositionsRef = React30.createRef();
9840
10076
  var CompositionManagerProvider = ({
9841
10077
  children,
9842
10078
  onlyRenderComposition,
@@ -9847,15 +10083,15 @@ var CompositionManagerProvider = ({
9847
10083
  const [folders, setFolders] = useState18([]);
9848
10084
  const [canvasContent, setCanvasContent] = useState18(initialCanvasContent);
9849
10085
  const [compositions, setCompositions] = useState18(initialCompositions);
9850
- const currentcompositionsRef = useRef25(compositions);
9851
- const updateCompositions = useCallback19((updateComps) => {
10086
+ const currentcompositionsRef = useRef26(compositions);
10087
+ const updateCompositions = useCallback20((updateComps) => {
9852
10088
  setCompositions((comps) => {
9853
10089
  const updated = updateComps(comps);
9854
10090
  currentcompositionsRef.current = updated;
9855
10091
  return updated;
9856
10092
  });
9857
10093
  }, []);
9858
- const registerComposition = useCallback19((comp) => {
10094
+ const registerComposition = useCallback20((comp) => {
9859
10095
  updateCompositions((comps) => {
9860
10096
  if (comps.find((c2) => c2.id === comp.id)) {
9861
10097
  throw new Error(`Multiple composition with id ${comp.id} are registered.`);
@@ -9863,12 +10099,12 @@ var CompositionManagerProvider = ({
9863
10099
  return [...comps, comp];
9864
10100
  });
9865
10101
  }, [updateCompositions]);
9866
- const unregisterComposition = useCallback19((id) => {
10102
+ const unregisterComposition = useCallback20((id) => {
9867
10103
  setCompositions((comps) => {
9868
10104
  return comps.filter((c2) => c2.id !== id);
9869
10105
  });
9870
10106
  }, []);
9871
- const registerFolder = useCallback19((name, parent, nonce, stack) => {
10107
+ const registerFolder = useCallback20((name, parent, nonce, stack) => {
9872
10108
  setFolders((prevFolders) => {
9873
10109
  return [
9874
10110
  ...prevFolders,
@@ -9881,7 +10117,7 @@ var CompositionManagerProvider = ({
9881
10117
  ];
9882
10118
  });
9883
10119
  }, []);
9884
- const unregisterFolder = useCallback19((name, parent) => {
10120
+ const unregisterFolder = useCallback20((name, parent) => {
9885
10121
  setFolders((prevFolders) => {
9886
10122
  return prevFolders.filter((p) => !(p.name === name && p.parent === parent));
9887
10123
  });
@@ -9915,9 +10151,9 @@ var CompositionManagerProvider = ({
9915
10151
  canvasContent
9916
10152
  };
9917
10153
  }, [compositions, folders, currentCompositionMetadata, canvasContent]);
9918
- return /* @__PURE__ */ jsx29(CompositionManager.Provider, {
10154
+ return /* @__PURE__ */ jsx30(CompositionManager.Provider, {
9919
10155
  value: compositionManagerContextValue,
9920
- children: /* @__PURE__ */ jsx29(CompositionSetters.Provider, {
10156
+ children: /* @__PURE__ */ jsx30(CompositionSetters.Provider, {
9921
10157
  value: compositionManagerSetters,
9922
10158
  children
9923
10159
  })
@@ -10015,7 +10251,7 @@ var REMOTION_STUDIO_CONTAINER_ELEMENT = "__remotion-studio-container";
10015
10251
  var getPreviewDomElement = () => {
10016
10252
  return document.getElementById(REMOTION_STUDIO_CONTAINER_ELEMENT);
10017
10253
  };
10018
- var MaxMediaCacheSizeContext = React30.createContext(null);
10254
+ var MaxMediaCacheSizeContext = React31.createContext(null);
10019
10255
  var Root = null;
10020
10256
  var listeners = [];
10021
10257
  var getRoot = () => {
@@ -10060,7 +10296,7 @@ var MediaEnabledProvider = ({
10060
10296
  audioEnabled
10061
10297
  }) => {
10062
10298
  const value = useMemo33(() => ({ videoEnabled, audioEnabled }), [videoEnabled, audioEnabled]);
10063
- return /* @__PURE__ */ jsx30(MediaEnabledContext.Provider, {
10299
+ return /* @__PURE__ */ jsx31(MediaEnabledContext.Provider, {
10064
10300
  value,
10065
10301
  children
10066
10302
  });
@@ -10084,25 +10320,25 @@ var RemotionRootContexts = ({
10084
10320
  const logging = useMemo34(() => {
10085
10321
  return { logLevel, mountTime: Date.now() };
10086
10322
  }, [logLevel]);
10087
- return /* @__PURE__ */ jsx31(LogLevelContext.Provider, {
10323
+ return /* @__PURE__ */ jsx32(LogLevelContext.Provider, {
10088
10324
  value: logging,
10089
- children: /* @__PURE__ */ jsx31(NonceContext.Provider, {
10325
+ children: /* @__PURE__ */ jsx32(NonceContext.Provider, {
10090
10326
  value: nonceContext,
10091
- children: /* @__PURE__ */ jsx31(TimelineContextProvider, {
10327
+ children: /* @__PURE__ */ jsx32(TimelineContextProvider, {
10092
10328
  frameState,
10093
- children: /* @__PURE__ */ jsx31(MediaEnabledProvider, {
10329
+ children: /* @__PURE__ */ jsx32(MediaEnabledProvider, {
10094
10330
  videoEnabled,
10095
10331
  audioEnabled,
10096
- children: /* @__PURE__ */ jsx31(EditorPropsProvider, {
10097
- children: /* @__PURE__ */ jsx31(PrefetchProvider, {
10098
- children: /* @__PURE__ */ jsx31(SequenceManagerProvider, {
10099
- children: /* @__PURE__ */ jsx31(DurationsContextProvider, {
10100
- children: /* @__PURE__ */ jsx31(BufferingProvider, {
10101
- children: /* @__PURE__ */ jsx31(SharedAudioContextProvider, {
10332
+ children: /* @__PURE__ */ jsx32(EditorPropsProvider, {
10333
+ children: /* @__PURE__ */ jsx32(PrefetchProvider, {
10334
+ children: /* @__PURE__ */ jsx32(SequenceManagerProvider, {
10335
+ children: /* @__PURE__ */ jsx32(DurationsContextProvider, {
10336
+ children: /* @__PURE__ */ jsx32(BufferingProvider, {
10337
+ children: /* @__PURE__ */ jsx32(SharedAudioContextProvider, {
10102
10338
  audioLatencyHint,
10103
10339
  audioEnabled,
10104
10340
  previewSampleRate,
10105
- children: /* @__PURE__ */ jsx31(SharedAudioTagsContextProvider, {
10341
+ children: /* @__PURE__ */ jsx32(SharedAudioTagsContextProvider, {
10106
10342
  numberOfAudioTags,
10107
10343
  children
10108
10344
  })
@@ -10288,7 +10524,7 @@ var resolveVideoConfigOrCatch = (params) => {
10288
10524
  };
10289
10525
  }
10290
10526
  };
10291
- var SequenceStackTracesUpdateContext = React32.createContext(() => {});
10527
+ var SequenceStackTracesUpdateContext = React33.createContext(() => {});
10292
10528
  var getEnvVariables = () => {
10293
10529
  if (getRemotionEnvironment().isRendering) {
10294
10530
  const param = window.remotion_envVariables;
@@ -10314,7 +10550,7 @@ var setupEnvVariables = () => {
10314
10550
  window.process.env[key] = env[key];
10315
10551
  });
10316
10552
  };
10317
- var CurrentScaleContext = React33.createContext(null);
10553
+ var CurrentScaleContext = React34.createContext(null);
10318
10554
  var PreviewSizeContext = createContext25({
10319
10555
  setSize: () => {
10320
10556
  return;
@@ -10338,7 +10574,7 @@ var calculateScale = ({
10338
10574
  }
10339
10575
  return Number(previewSize);
10340
10576
  };
10341
- var PixelDensityContext = React34.createContext(null);
10577
+ var PixelDensityContext = React35.createContext(null);
10342
10578
  var getOffthreadVideoSource = ({
10343
10579
  src,
10344
10580
  transparent,
@@ -10520,7 +10756,7 @@ var OffthreadVideoForRendering = ({
10520
10756
  continueRender2,
10521
10757
  delayRender2
10522
10758
  ]);
10523
- const onErr = useCallback20(() => {
10759
+ const onErr = useCallback21(() => {
10524
10760
  if (onError) {
10525
10761
  onError?.(new Error("Failed to load image with src " + imageSrc));
10526
10762
  } else {
@@ -10530,7 +10766,7 @@ var OffthreadVideoForRendering = ({
10530
10766
  const className = useMemo35(() => {
10531
10767
  return [OBJECTFIT_CONTAIN_CLASS_NAME, props2.className].filter(truthy).join(" ");
10532
10768
  }, [props2.className]);
10533
- const onImageFrame = useCallback20((img) => {
10769
+ const onImageFrame = useCallback21((img) => {
10534
10770
  if (onVideoFrame) {
10535
10771
  onVideoFrame(img);
10536
10772
  }
@@ -10539,7 +10775,7 @@ var OffthreadVideoForRendering = ({
10539
10775
  return null;
10540
10776
  }
10541
10777
  continueRender2(imageSrc.handle);
10542
- return /* @__PURE__ */ jsx32(Img, {
10778
+ return /* @__PURE__ */ jsx33(Img, {
10543
10779
  src: imageSrc.src,
10544
10780
  delayRenderRetries,
10545
10781
  delayRenderTimeoutInMilliseconds,
@@ -10595,7 +10831,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
10595
10831
  if (!context) {
10596
10832
  throw new Error("SharedAudioContext not found");
10597
10833
  }
10598
- const videoRef = useRef26(null);
10834
+ const videoRef = useRef27(null);
10599
10835
  const sharedSource = useMemo36(() => {
10600
10836
  if (!context.audioContext) {
10601
10837
  return null;
@@ -10605,7 +10841,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
10605
10841
  ref: videoRef
10606
10842
  });
10607
10843
  }, [context.audioContext]);
10608
- const effectToUse = React36.useInsertionEffect ?? React36.useLayoutEffect;
10844
+ const effectToUse = React37.useInsertionEffect ?? React37.useLayoutEffect;
10609
10845
  effectToUse(() => {
10610
10846
  return () => {
10611
10847
  requestAnimationFrame(() => {
@@ -10663,7 +10899,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
10663
10899
  mediaVolume
10664
10900
  });
10665
10901
  warnAboutTooHighVolume(userPreferredVolume);
10666
- const getStack = useCallback21(() => {
10902
+ const getStack = useCallback22(() => {
10667
10903
  return _remotionInternalStack ?? null;
10668
10904
  }, [_remotionInternalStack]);
10669
10905
  useMediaInTimeline({
@@ -10768,7 +11004,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
10768
11004
  current.removeEventListener("error", errorHandler);
10769
11005
  };
10770
11006
  }, [onError, src]);
10771
- const currentOnDurationCallback = useRef26(onDuration);
11007
+ const currentOnDurationCallback = useRef27(onDuration);
10772
11008
  currentOnDurationCallback.current = onDuration;
10773
11009
  useEmitVideoFrame({ ref: videoRef, onVideoFrame });
10774
11010
  useEffect20(() => {
@@ -10809,7 +11045,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
10809
11045
  requestsVideoFrame: Boolean(onVideoFrame),
10810
11046
  isClientSideRendering: false
10811
11047
  });
10812
- return /* @__PURE__ */ jsx33("video", {
11048
+ return /* @__PURE__ */ jsx34("video", {
10813
11049
  ref: videoRef,
10814
11050
  muted: muted || mediaMuted || userPreferredVolume <= 0,
10815
11051
  playsInline: true,
@@ -10821,7 +11057,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
10821
11057
  ...nativeProps
10822
11058
  });
10823
11059
  };
10824
- var VideoForPreview = forwardRef12(VideoForDevelopmentRefForwardingFunction);
11060
+ var VideoForPreview = forwardRef13(VideoForDevelopmentRefForwardingFunction);
10825
11061
  var InnerOffthreadVideo = (props2) => {
10826
11062
  const {
10827
11063
  startFrom,
@@ -10838,7 +11074,7 @@ var InnerOffthreadVideo = (props2) => {
10838
11074
  if (environment.isClientSideRendering) {
10839
11075
  throw new Error("<OffthreadVideo> is not supported in @remotion/web-renderer. Use <Video> from @remotion/media instead. See https://remotion.dev/docs/client-side-rendering/limitations");
10840
11076
  }
10841
- const onDuration = useCallback22(() => {
11077
+ const onDuration = useCallback23(() => {
10842
11078
  return;
10843
11079
  }, []);
10844
11080
  if (typeof props2.src !== "string") {
@@ -10852,13 +11088,13 @@ var InnerOffthreadVideo = (props2) => {
10852
11088
  trimAfter
10853
11089
  });
10854
11090
  if (typeof trimBeforeValue !== "undefined" || typeof trimAfterValue !== "undefined") {
10855
- return /* @__PURE__ */ jsx34(Sequence, {
11091
+ return /* @__PURE__ */ jsx35(Sequence, {
10856
11092
  layout: "none",
10857
11093
  from: 0 - (trimBeforeValue ?? 0),
10858
11094
  showInTimeline: false,
10859
11095
  durationInFrames: trimAfterValue,
10860
11096
  name,
10861
- children: /* @__PURE__ */ jsx34(InnerOffthreadVideo, {
11097
+ children: /* @__PURE__ */ jsx35(InnerOffthreadVideo, {
10862
11098
  pauseWhenBuffering: pauseWhenBuffering ?? false,
10863
11099
  ...otherProps,
10864
11100
  trimAfter: undefined,
@@ -10873,7 +11109,7 @@ var InnerOffthreadVideo = (props2) => {
10873
11109
  }
10874
11110
  validateMediaProps(props2, "Video");
10875
11111
  if (environment.isRendering) {
10876
- return /* @__PURE__ */ jsx34(OffthreadVideoForRendering, {
11112
+ return /* @__PURE__ */ jsx35(OffthreadVideoForRendering, {
10877
11113
  pauseWhenBuffering: pauseWhenBuffering ?? false,
10878
11114
  ...otherProps,
10879
11115
  trimAfter: undefined,
@@ -10895,7 +11131,7 @@ var InnerOffthreadVideo = (props2) => {
10895
11131
  delayRenderTimeoutInMilliseconds,
10896
11132
  ...propsForPreview
10897
11133
  } = otherProps;
10898
- return /* @__PURE__ */ jsx34(VideoForPreview, {
11134
+ return /* @__PURE__ */ jsx35(VideoForPreview, {
10899
11135
  _remotionInternalStack: stack ?? null,
10900
11136
  onDuration,
10901
11137
  onlyWarnForMediaSeekingError: true,
@@ -10944,7 +11180,7 @@ var OffthreadVideo = ({
10944
11180
  if (imageFormat) {
10945
11181
  throw new TypeError(`The \`<OffthreadVideo>\` tag does no longer accept \`imageFormat\`. Use the \`transparent\` prop if you want to render a transparent video.`);
10946
11182
  }
10947
- return /* @__PURE__ */ jsx34(InnerOffthreadVideo, {
11183
+ return /* @__PURE__ */ jsx35(InnerOffthreadVideo, {
10948
11184
  acceptableTimeShiftInSeconds,
10949
11185
  allowAmplificationDuringRender: allowAmplificationDuringRender ?? true,
10950
11186
  audioStreamIndex: audioStreamIndex ?? 0,
@@ -10980,20 +11216,20 @@ var OffthreadVideo = ({
10980
11216
  addSequenceStackTraces(OffthreadVideo);
10981
11217
  var WATCH_REMOTION_STATIC_FILES = "remotion_staticFilesChanged";
10982
11218
  function useRemotionContexts() {
10983
- const compositionManagerCtx = React38.useContext(CompositionManager);
10984
- const timelineContext = React38.useContext(TimelineContext);
10985
- const setTimelineContext = React38.useContext(SetTimelineContext);
10986
- const sequenceContext = React38.useContext(SequenceContext);
10987
- const nonceContext = React38.useContext(NonceContext);
10988
- const canUseRemotionHooksContext = React38.useContext(CanUseRemotionHooks);
10989
- const preloadContext = React38.useContext(PreloadContext);
10990
- const resolveCompositionContext = React38.useContext(ResolveCompositionContext);
10991
- const renderAssetManagerContext = React38.useContext(RenderAssetManager);
10992
- const sequenceManagerContext = React38.useContext(SequenceManager);
10993
- const sequenceManagerRefContext = React38.useContext(SequenceManagerRefContext);
10994
- const visualModePropStatusesRefContext = React38.useContext(VisualModePropStatusesRefContext);
10995
- const bufferManagerContext = React38.useContext(BufferingContextReact);
10996
- const logLevelContext = React38.useContext(LogLevelContext);
11219
+ const compositionManagerCtx = React39.useContext(CompositionManager);
11220
+ const timelineContext = React39.useContext(TimelineContext);
11221
+ const setTimelineContext = React39.useContext(SetTimelineContext);
11222
+ const sequenceContext = React39.useContext(SequenceContext);
11223
+ const nonceContext = React39.useContext(NonceContext);
11224
+ const canUseRemotionHooksContext = React39.useContext(CanUseRemotionHooks);
11225
+ const preloadContext = React39.useContext(PreloadContext);
11226
+ const resolveCompositionContext = React39.useContext(ResolveCompositionContext);
11227
+ const renderAssetManagerContext = React39.useContext(RenderAssetManager);
11228
+ const sequenceManagerContext = React39.useContext(SequenceManager);
11229
+ const sequenceManagerRefContext = React39.useContext(SequenceManagerRefContext);
11230
+ const visualModePropStatusesRefContext = React39.useContext(VisualModePropStatusesRefContext);
11231
+ const bufferManagerContext = React39.useContext(BufferingContextReact);
11232
+ const logLevelContext = React39.useContext(LogLevelContext);
10997
11233
  return useMemo37(() => ({
10998
11234
  compositionManagerCtx,
10999
11235
  timelineContext,
@@ -11028,33 +11264,33 @@ function useRemotionContexts() {
11028
11264
  }
11029
11265
  var RemotionContextProvider = (props2) => {
11030
11266
  const { children, contexts } = props2;
11031
- return /* @__PURE__ */ jsx35(LogLevelContext.Provider, {
11267
+ return /* @__PURE__ */ jsx36(LogLevelContext.Provider, {
11032
11268
  value: contexts.logLevelContext,
11033
- children: /* @__PURE__ */ jsx35(CanUseRemotionHooks.Provider, {
11269
+ children: /* @__PURE__ */ jsx36(CanUseRemotionHooks.Provider, {
11034
11270
  value: contexts.canUseRemotionHooksContext,
11035
- children: /* @__PURE__ */ jsx35(NonceContext.Provider, {
11271
+ children: /* @__PURE__ */ jsx36(NonceContext.Provider, {
11036
11272
  value: contexts.nonceContext,
11037
- children: /* @__PURE__ */ jsx35(PreloadContext.Provider, {
11273
+ children: /* @__PURE__ */ jsx36(PreloadContext.Provider, {
11038
11274
  value: contexts.preloadContext,
11039
- children: /* @__PURE__ */ jsx35(CompositionManager.Provider, {
11275
+ children: /* @__PURE__ */ jsx36(CompositionManager.Provider, {
11040
11276
  value: contexts.compositionManagerCtx,
11041
- children: /* @__PURE__ */ jsx35(SequenceManagerRefContext.Provider, {
11277
+ children: /* @__PURE__ */ jsx36(SequenceManagerRefContext.Provider, {
11042
11278
  value: contexts.sequenceManagerRefContext,
11043
- children: /* @__PURE__ */ jsx35(SequenceManager.Provider, {
11279
+ children: /* @__PURE__ */ jsx36(SequenceManager.Provider, {
11044
11280
  value: contexts.sequenceManagerContext,
11045
- children: /* @__PURE__ */ jsx35(VisualModePropStatusesRefContext.Provider, {
11281
+ children: /* @__PURE__ */ jsx36(VisualModePropStatusesRefContext.Provider, {
11046
11282
  value: contexts.visualModePropStatusesRefContext,
11047
- children: /* @__PURE__ */ jsx35(RenderAssetManager.Provider, {
11283
+ children: /* @__PURE__ */ jsx36(RenderAssetManager.Provider, {
11048
11284
  value: contexts.renderAssetManagerContext,
11049
- children: /* @__PURE__ */ jsx35(ResolveCompositionContext.Provider, {
11285
+ children: /* @__PURE__ */ jsx36(ResolveCompositionContext.Provider, {
11050
11286
  value: contexts.resolveCompositionContext,
11051
- children: /* @__PURE__ */ jsx35(TimelineContext.Provider, {
11287
+ children: /* @__PURE__ */ jsx36(TimelineContext.Provider, {
11052
11288
  value: contexts.timelineContext,
11053
- children: /* @__PURE__ */ jsx35(SetTimelineContext.Provider, {
11289
+ children: /* @__PURE__ */ jsx36(SetTimelineContext.Provider, {
11054
11290
  value: contexts.setTimelineContext,
11055
- children: /* @__PURE__ */ jsx35(SequenceContext.Provider, {
11291
+ children: /* @__PURE__ */ jsx36(SequenceContext.Provider, {
11056
11292
  value: contexts.sequenceContext,
11057
- children: /* @__PURE__ */ jsx35(BufferingContextReact.Provider, {
11293
+ children: /* @__PURE__ */ jsx36(BufferingContextReact.Provider, {
11058
11294
  value: contexts.bufferManagerContext,
11059
11295
  children
11060
11296
  })
@@ -11244,9 +11480,9 @@ var validateFrame = ({
11244
11480
  }
11245
11481
  };
11246
11482
  var flattenChildren = (children) => {
11247
- const childrenArray = React39.Children.toArray(children);
11483
+ const childrenArray = React40.Children.toArray(children);
11248
11484
  return childrenArray.reduce((flatChildren, child) => {
11249
- if (child.type === React39.Fragment) {
11485
+ if (child.type === React40.Fragment) {
11250
11486
  return flatChildren.concat(flattenChildren(child.props.children));
11251
11487
  }
11252
11488
  flatChildren.push(child);
@@ -11255,11 +11491,11 @@ var flattenChildren = (children) => {
11255
11491
  };
11256
11492
  var SeriesSequenceRefForwardingFunction = ({ children }, _ref) => {
11257
11493
  useRequireToBeInsideSeries();
11258
- return /* @__PURE__ */ jsx36(IsNotInsideSeriesProvider, {
11494
+ return /* @__PURE__ */ jsx37(IsNotInsideSeriesProvider, {
11259
11495
  children
11260
11496
  });
11261
11497
  };
11262
- var SeriesSequence = forwardRef13(SeriesSequenceRefForwardingFunction);
11498
+ var SeriesSequence = forwardRef14(SeriesSequenceRefForwardingFunction);
11263
11499
  var SequenceWithoutSchemaWithRef = SequenceWithoutSchema;
11264
11500
  var SeriesInner = (props2) => {
11265
11501
  const childrenValue = useMemo38(() => {
@@ -11303,7 +11539,7 @@ var SeriesInner = (props2) => {
11303
11539
  }
11304
11540
  const currentStartFrame = startFrame + offset;
11305
11541
  startFrame += durationInFramesProp + offset;
11306
- return /* @__PURE__ */ jsx36(SequenceWithoutSchemaWithRef, {
11542
+ return /* @__PURE__ */ jsx37(SequenceWithoutSchemaWithRef, {
11307
11543
  ref: castedChild.ref,
11308
11544
  name: name || "<Series.Sequence>",
11309
11545
  _remotionInternalDocumentationLink: name ? undefined : "https://www.remotion.dev/docs/series",
@@ -11314,8 +11550,8 @@ var SeriesInner = (props2) => {
11314
11550
  });
11315
11551
  });
11316
11552
  }, [props2.children]);
11317
- return /* @__PURE__ */ jsx36(IsInsideSeriesContainer, {
11318
- children: /* @__PURE__ */ jsx36(Sequence, {
11553
+ return /* @__PURE__ */ jsx37(IsInsideSeriesContainer, {
11554
+ children: /* @__PURE__ */ jsx37(Sequence, {
11319
11555
  layout: "none",
11320
11556
  name: "<Series>",
11321
11557
  _remotionInternalDocumentationLink: "https://www.remotion.dev/docs/series",
@@ -11797,7 +12033,7 @@ var VideoForRenderingForwardFunction = ({
11797
12033
  const frame = useCurrentFrame();
11798
12034
  const volumePropsFrame = useFrameForVolumeProp(loopVolumeCurveBehavior ?? "repeat");
11799
12035
  const videoConfig = useUnsafeVideoConfig();
11800
- const videoRef = useRef27(null);
12036
+ const videoRef = useRef28(null);
11801
12037
  const sequenceContext = useContext38(SequenceContext);
11802
12038
  const mediaStartsAt = useMediaStartsAt();
11803
12039
  const environment = useRemotionEnvironment();
@@ -11988,13 +12224,13 @@ var VideoForRenderingForwardFunction = ({
11988
12224
  delayRender2
11989
12225
  ]);
11990
12226
  }
11991
- return /* @__PURE__ */ jsx37("video", {
12227
+ return /* @__PURE__ */ jsx38("video", {
11992
12228
  ref: videoRef,
11993
12229
  disableRemotePlayback: true,
11994
12230
  ...props2
11995
12231
  });
11996
12232
  };
11997
- var VideoForRendering = forwardRef14(VideoForRenderingForwardFunction);
12233
+ var VideoForRendering = forwardRef15(VideoForRenderingForwardFunction);
11998
12234
  var VideoForwardingFunction = (props2, ref) => {
11999
12235
  const {
12000
12236
  startFrom,
@@ -12024,7 +12260,7 @@ var VideoForwardingFunction = (props2, ref) => {
12024
12260
  throw new TypeError(`The \`<Html5Video>\` tag requires a string for \`src\`, but got ${JSON.stringify(props2.src)} instead.`);
12025
12261
  }
12026
12262
  const preloadedSrc = usePreload(props2.src);
12027
- const onDuration = useCallback23((src, durationInSeconds) => {
12263
+ const onDuration = useCallback24((src, durationInSeconds) => {
12028
12264
  setDurations({ type: "got-duration", durationInSeconds, src });
12029
12265
  }, [setDurations]);
12030
12266
  const durationFetched = durations[getAbsoluteSrc(preloadedSrc)] ?? durations[getAbsoluteSrc(props2.src)];
@@ -12037,7 +12273,7 @@ var VideoForwardingFunction = (props2, ref) => {
12037
12273
  });
12038
12274
  if (loop && durationFetched !== undefined) {
12039
12275
  if (!Number.isFinite(durationFetched)) {
12040
- return /* @__PURE__ */ jsx38(Html5Video, {
12276
+ return /* @__PURE__ */ jsx39(Html5Video, {
12041
12277
  ...propsOtherThanLoop,
12042
12278
  ref,
12043
12279
  stack,
@@ -12045,7 +12281,7 @@ var VideoForwardingFunction = (props2, ref) => {
12045
12281
  });
12046
12282
  }
12047
12283
  const mediaDuration = durationFetched * fps;
12048
- return /* @__PURE__ */ jsx38(Loop, {
12284
+ return /* @__PURE__ */ jsx39(Loop, {
12049
12285
  durationInFrames: calculateMediaDuration({
12050
12286
  trimAfter: trimAfterValue,
12051
12287
  mediaDurationInFrames: mediaDuration,
@@ -12055,7 +12291,7 @@ var VideoForwardingFunction = (props2, ref) => {
12055
12291
  layout: "none",
12056
12292
  name,
12057
12293
  showInTimeline: false,
12058
- children: /* @__PURE__ */ jsx38(Html5Video, {
12294
+ children: /* @__PURE__ */ jsx39(Html5Video, {
12059
12295
  ...propsOtherThanLoop,
12060
12296
  ref,
12061
12297
  stack,
@@ -12064,13 +12300,13 @@ var VideoForwardingFunction = (props2, ref) => {
12064
12300
  });
12065
12301
  }
12066
12302
  if (typeof trimBeforeValue !== "undefined" || typeof trimAfterValue !== "undefined") {
12067
- return /* @__PURE__ */ jsx38(Sequence, {
12303
+ return /* @__PURE__ */ jsx39(Sequence, {
12068
12304
  layout: "none",
12069
12305
  from: 0 - (trimBeforeValue ?? 0),
12070
12306
  showInTimeline: false,
12071
12307
  durationInFrames: trimAfterValue === undefined ? undefined : trimAfterValue / (props2.playbackRate ?? 1),
12072
12308
  name,
12073
- children: /* @__PURE__ */ jsx38(Html5Video, {
12309
+ children: /* @__PURE__ */ jsx39(Html5Video, {
12074
12310
  pauseWhenBuffering: pauseWhenBuffering ?? false,
12075
12311
  onVideoFrame,
12076
12312
  ...otherProps,
@@ -12085,14 +12321,14 @@ var VideoForwardingFunction = (props2, ref) => {
12085
12321
  volume: props2.volume
12086
12322
  }, "Html5Video");
12087
12323
  if (environment.isRendering) {
12088
- return /* @__PURE__ */ jsx38(VideoForRendering, {
12324
+ return /* @__PURE__ */ jsx39(VideoForRendering, {
12089
12325
  onDuration,
12090
12326
  onVideoFrame: onVideoFrame ?? null,
12091
12327
  ...otherProps,
12092
12328
  ref
12093
12329
  });
12094
12330
  }
12095
- return /* @__PURE__ */ jsx38(VideoForPreview, {
12331
+ return /* @__PURE__ */ jsx39(VideoForPreview, {
12096
12332
  onlyWarnForMediaSeekingError: false,
12097
12333
  ...otherProps,
12098
12334
  ref,
@@ -12105,7 +12341,7 @@ var VideoForwardingFunction = (props2, ref) => {
12105
12341
  onAutoPlayError: onAutoPlayError ?? undefined
12106
12342
  });
12107
12343
  };
12108
- var Html5Video = forwardRef15(VideoForwardingFunction);
12344
+ var Html5Video = forwardRef16(VideoForwardingFunction);
12109
12345
  addSequenceStackTraces(Html5Video);
12110
12346
  checkMultipleRemotionVersions();
12111
12347
  var proxyObj = {};
@@ -12134,46 +12370,46 @@ addSequenceStackTraces(Composition);
12134
12370
  addSequenceStackTraces(Folder);
12135
12371
 
12136
12372
  // src/components/team/TeamCards.tsx
12137
- import { jsx as jsx39, jsxs as jsxs3 } from "react/jsx-runtime";
12373
+ import { jsx as jsx40, jsxs as jsxs3 } from "react/jsx-runtime";
12138
12374
  var LinkedInLogo = () => {
12139
- return /* @__PURE__ */ jsx39("svg", {
12375
+ return /* @__PURE__ */ jsx40("svg", {
12140
12376
  xmlns: "http://www.w3.org/2000/svg",
12141
12377
  viewBox: "0 0 1000 1000",
12142
12378
  className: "w-[30px]",
12143
- children: /* @__PURE__ */ jsx39("path", {
12379
+ children: /* @__PURE__ */ jsx40("path", {
12144
12380
  fill: "currentcolor",
12145
12381
  d: "M195.877 0C88.16 0 0 88.158 0 195.877V803.718C0 911.435 88.158 999.563 195.877 999.563H803.718C911.436 999.563 999.563 911.436 999.563 803.718V195.877C999.563 88.16 911.436 0 803.718 0H195.877ZM245.143 164.948C296.791 164.948 328.604 198.854 329.586 243.423C329.586 287.008 296.789 321.867 244.144 321.867H243.175C192.51 321.867 159.763 287.01 159.763 243.423C159.763 198.855 193.501 164.948 245.142 164.948H245.143ZM690.223 373.258C789.552 373.258 864.013 438.18 864.013 577.694V838.143H713.06V595.156C713.06 534.096 691.213 492.438 636.584 492.438C594.88 492.438 570.022 520.516 559.108 547.64C555.121 557.344 554.141 570.897 554.141 584.472V838.143H403.188C403.188 838.143 405.169 426.53 403.188 383.91H554.172V448.234C574.232 417.284 610.114 373.257 690.223 373.257V373.258ZM168.667 383.943H319.62V838.145H168.667V383.943V383.943Z"
12146
12382
  })
12147
12383
  });
12148
12384
  };
12149
12385
  var TwitterLogo = () => {
12150
- return /* @__PURE__ */ jsx39("svg", {
12386
+ return /* @__PURE__ */ jsx40("svg", {
12151
12387
  xmlns: "http://www.w3.org/2000/svg",
12152
12388
  viewBox: "0 0 530 570",
12153
12389
  className: "w-[32px]",
12154
- children: /* @__PURE__ */ jsx39("path", {
12390
+ children: /* @__PURE__ */ jsx40("path", {
12155
12391
  fill: "currentcolor",
12156
12392
  d: "M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"
12157
12393
  })
12158
12394
  });
12159
12395
  };
12160
12396
  var GitHubLogo = () => {
12161
- return /* @__PURE__ */ jsx39("svg", {
12397
+ return /* @__PURE__ */ jsx40("svg", {
12162
12398
  xmlns: "http://www.w3.org/2000/svg",
12163
12399
  viewBox: "0 0 1084 1084",
12164
12400
  className: "w-[30px]",
12165
- children: /* @__PURE__ */ jsx39("path", {
12401
+ children: /* @__PURE__ */ jsx40("path", {
12166
12402
  fill: "currentcolor",
12167
12403
  d: "M542 0C242.545 0 0 242.545 0 542C0 781.835 155.147 984.408 370.592 1056.22C397.692 1060.97 407.855 1044.71 407.855 1030.48C407.855 1017.61 407.178 974.923 407.178 929.53C271 954.598 235.77 896.332 224.93 865.845C218.832 850.262 192.41 802.16 169.375 789.287C150.405 779.125 123.305 754.057 168.698 753.38C211.38 752.702 241.868 792.675 252.03 808.935C300.81 890.912 378.723 867.878 409.888 853.65C414.63 818.42 428.857 794.707 444.44 781.157C323.845 767.607 197.83 720.86 197.83 513.545C197.83 454.602 218.833 405.822 253.385 367.882C247.965 354.332 228.995 298.777 258.805 224.252C258.805 224.252 304.198 210.025 407.855 279.808C451.215 267.613 497.285 261.515 543.355 261.515C589.425 261.515 635.495 267.613 678.855 279.808C782.513 209.348 827.905 224.252 827.905 224.252C857.715 298.777 838.745 354.332 833.325 367.882C867.878 405.822 888.88 453.925 888.88 513.545C888.88 721.537 762.188 767.607 641.593 781.157C661.24 798.095 678.178 830.615 678.178 881.428C678.178 953.92 677.5 1012.19 677.5 1030.48C677.5 1044.71 687.663 1061.64 714.763 1056.22C822.365 1019.91 915.868 950.759 982.106 858.512C1048.34 766.264 1083.98 655.565 1084 542C1084 242.545 841.455 0 542 0Z"
12168
12404
  })
12169
12405
  });
12170
12406
  };
12171
12407
  var EmailLogo = () => {
12172
- return /* @__PURE__ */ jsx39("svg", {
12408
+ return /* @__PURE__ */ jsx40("svg", {
12173
12409
  xmlns: "http://www.w3.org/2000/svg",
12174
12410
  viewBox: "0 0 1299 1299",
12175
12411
  className: "w-[30px]",
12176
- children: /* @__PURE__ */ jsx39("path", {
12412
+ children: /* @__PURE__ */ jsx40("path", {
12177
12413
  fill: "currentcolor",
12178
12414
  d: "M1177.22 202.969H121.781C99.3278 202.969 81.1875 221.109 81.1875 243.562V1055.44C81.1875 1077.89 99.3278 1096.03 121.781 1096.03H1177.22C1199.67 1096.03 1217.81 1077.89 1217.81 1055.44V243.562C1217.81 221.109 1199.67 202.969 1177.22 202.969ZM1126.48 343.525V1004.7H172.523V343.525L137.511 316.251L187.366 252.189L241.66 294.432H1057.47L1111.76 252.189L1161.62 316.251L1126.48 343.525V343.525ZM1057.47 294.305L649.5 611.443L241.533 294.305L187.239 252.062L137.384 316.124L172.397 343.398L605.735 680.326C618.197 690.008 633.529 695.263 649.31 695.263C665.091 695.263 680.422 690.008 692.885 680.326L1126.48 343.525L1161.49 316.251L1111.63 252.189L1057.47 294.305Z"
12179
12415
  })
@@ -12192,54 +12428,54 @@ var TeamMemberCard = ({
12192
12428
  return /* @__PURE__ */ jsxs3("div", {
12193
12429
  className: "flex-1 rounded-[15px] flex flex-col md:flex-row gap-2 md:gap-4",
12194
12430
  children: [
12195
- /* @__PURE__ */ jsx39("img", {
12431
+ /* @__PURE__ */ jsx40("img", {
12196
12432
  src: image,
12197
12433
  className: "w-[250px] h-[250px] rounded-xl border-effect"
12198
12434
  }),
12199
12435
  /* @__PURE__ */ jsxs3("div", {
12200
12436
  className: "flex flex-col border-effect px-4 py-3 bg-pane",
12201
12437
  children: [
12202
- /* @__PURE__ */ jsx39("h2", {
12438
+ /* @__PURE__ */ jsx40("h2", {
12203
12439
  className: "ext-[1.6em] mb-1 mt-3 text-[var(--ifm-color-primary)] font-brand",
12204
12440
  children: name
12205
12441
  }),
12206
- /* @__PURE__ */ jsx39("strong", {
12442
+ /* @__PURE__ */ jsx40("strong", {
12207
12443
  className: "font-brand",
12208
12444
  children: title
12209
12445
  }),
12210
- /* @__PURE__ */ jsx39("div", {
12446
+ /* @__PURE__ */ jsx40("div", {
12211
12447
  className: "mt-5 mb-5 leading-normal font-brand",
12212
12448
  children: description
12213
12449
  }),
12214
- /* @__PURE__ */ jsx39("div", {
12450
+ /* @__PURE__ */ jsx40("div", {
12215
12451
  className: "flex-1"
12216
12452
  }),
12217
12453
  /* @__PURE__ */ jsxs3("div", {
12218
12454
  className: "gap-3 flex flex-row",
12219
12455
  children: [
12220
- /* @__PURE__ */ jsx39("a", {
12456
+ /* @__PURE__ */ jsx40("a", {
12221
12457
  className: "no-underline text-inherit",
12222
12458
  target: "_blank",
12223
12459
  href: twitter,
12224
- children: /* @__PURE__ */ jsx39(TwitterLogo, {})
12460
+ children: /* @__PURE__ */ jsx40(TwitterLogo, {})
12225
12461
  }),
12226
- /* @__PURE__ */ jsx39("a", {
12462
+ /* @__PURE__ */ jsx40("a", {
12227
12463
  className: "no-underline text-inherit",
12228
12464
  target: "_blank",
12229
12465
  href: linkedin,
12230
- children: /* @__PURE__ */ jsx39(LinkedInLogo, {})
12466
+ children: /* @__PURE__ */ jsx40(LinkedInLogo, {})
12231
12467
  }),
12232
- /* @__PURE__ */ jsx39("a", {
12468
+ /* @__PURE__ */ jsx40("a", {
12233
12469
  className: "no-underline text-inherit",
12234
12470
  target: "_blank",
12235
12471
  href: github,
12236
- children: /* @__PURE__ */ jsx39(GitHubLogo, {})
12472
+ children: /* @__PURE__ */ jsx40(GitHubLogo, {})
12237
12473
  }),
12238
- /* @__PURE__ */ jsx39("a", {
12474
+ /* @__PURE__ */ jsx40("a", {
12239
12475
  className: "no-underline text-inherit",
12240
12476
  target: "_blank",
12241
12477
  href: `mailto:${email}`,
12242
- children: /* @__PURE__ */ jsx39(EmailLogo, {})
12478
+ children: /* @__PURE__ */ jsx40(EmailLogo, {})
12243
12479
  })
12244
12480
  ]
12245
12481
  })
@@ -12252,7 +12488,7 @@ var TeamCardsLayout = () => {
12252
12488
  return /* @__PURE__ */ jsxs3("div", {
12253
12489
  className: "flex flex-col gap-12 md:gap-4",
12254
12490
  children: [
12255
- /* @__PURE__ */ jsx39(TeamMemberCard, {
12491
+ /* @__PURE__ */ jsx40(TeamMemberCard, {
12256
12492
  name: "Jonny Burger",
12257
12493
  title: "Chief Hacker",
12258
12494
  description: "Making cool software for myself and others and getting to know all kinds of different people - that's what makes Remotion my dream job!",
@@ -12262,7 +12498,7 @@ var TeamCardsLayout = () => {
12262
12498
  github: "https://github.com/JonnyBurger",
12263
12499
  email: "jonny@remotion.dev"
12264
12500
  }),
12265
- /* @__PURE__ */ jsx39(TeamMemberCard, {
12501
+ /* @__PURE__ */ jsx40(TeamMemberCard, {
12266
12502
  name: "Mehmet Ademi",
12267
12503
  title: "Business Manager",
12268
12504
  description: "Transitioning from traditional business, Remotion allowed me to merge my passion for technology and business in a distinctive way.",
@@ -12272,7 +12508,7 @@ var TeamCardsLayout = () => {
12272
12508
  github: "https://github.com/MehmetAdemi",
12273
12509
  email: "mehmet@remotion.dev"
12274
12510
  }),
12275
- /* @__PURE__ */ jsx39(TeamMemberCard, {
12511
+ /* @__PURE__ */ jsx40(TeamMemberCard, {
12276
12512
  name: "Igor Samokhovets",
12277
12513
  title: "Product Engineer",
12278
12514
  description: "With a background in music industry and a passion for coding, I've been building tools to help musicians create. Remotion is the perfect place to blend my tech skills and creativity.",
@@ -12287,29 +12523,29 @@ var TeamCardsLayout = () => {
12287
12523
  };
12288
12524
 
12289
12525
  // src/components/experts/experts-icons.tsx
12290
- import { jsx as jsx41 } from "react/jsx-runtime";
12526
+ import { jsx as jsx42 } from "react/jsx-runtime";
12291
12527
  var DiscordLogo = () => {
12292
- return /* @__PURE__ */ jsx41("svg", {
12528
+ return /* @__PURE__ */ jsx42("svg", {
12293
12529
  xmlns: "http://www.w3.org/2000/svg",
12294
12530
  viewBox: "0 0 24 24",
12295
12531
  style: {
12296
12532
  width: 30,
12297
12533
  marginRight: 10
12298
12534
  },
12299
- children: /* @__PURE__ */ jsx41("path", {
12535
+ children: /* @__PURE__ */ jsx42("path", {
12300
12536
  fill: "white",
12301
12537
  d: "M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418z"
12302
12538
  })
12303
12539
  });
12304
12540
  };
12305
12541
  var PersonalWebsite = () => {
12306
- return /* @__PURE__ */ jsx41("svg", {
12542
+ return /* @__PURE__ */ jsx42("svg", {
12307
12543
  xmlns: "http://www.w3.org/2000/svg",
12308
12544
  viewBox: "0 0 576 576",
12309
12545
  style: {
12310
12546
  width: 30
12311
12547
  },
12312
- children: /* @__PURE__ */ jsx41("path", {
12548
+ children: /* @__PURE__ */ jsx42("path", {
12313
12549
  fill: "currentcolor",
12314
12550
  d: "M317.9 422.7C296.4 465.6 272.7 480 256 480c-7.9 0-17.3-3.2-27.3-11l-6.9 18.6c-2.9 7.8-7.7 14.7-13.9 19.9c15.6 3 31.6 4.5 48.1 4.5c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256c0 16.4 1.5 32.5 4.5 48.1c5.3-6.2 12.1-11 19.9-13.9l9.6-3.5c-1.4-10-2.1-20.2-2.1-30.6c0-22.2 3.2-43.7 9.3-64H132c-2.5 19.2-3.9 39.3-4 60l32.2-11.9c.5-16.7 1.9-32.8 4.1-48.1H347.7c2.8 20.2 4.3 41.7 4.3 64s-1.5 43.8-4.3 64H283.6l-11.8 32H342c-5.9 27-14.2 50.9-24.1 70.7zM194.1 89.3C215.6 46.4 239.3 32 256 32s40.4 14.4 61.9 57.3c9.9 19.8 18.2 43.7 24.1 70.7H170c5.9-27 14.2-50.9 24.1-70.7zM384 256c0-22.1-1.4-43.5-4-64h90.8c6 20.3 9.3 41.8 9.3 64s-3.2 43.7-9.3 64H380c2.6-20.5 4-41.9 4-64zm-9.3-96c-9.6-47.6-26.2-88-47.2-116.3c57.8 19.5 105 61.8 130.9 116.3H374.7zM53.6 160c25.9-54.5 73.1-96.9 130.9-116.3c-21 28.3-37.5 68.8-47.2 116.3H53.6zM374.7 352h83.8c-25.9 54.5-73.1 96.9-130.9 116.3c21-28.3 37.6-68.8 47.2-116.3zM271 261.5c2.2-5.9 .7-12.4-3.7-16.8s-11-5.9-16.8-3.7l-215 79.2c-6.2 2.3-10.3 8.1-10.5 14.7s3.8 12.6 9.9 15.1l74 30.5L4.7 484.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L131.5 403.1l30.5 74c2.5 6.1 8.5 10 15.1 9.9s12.4-4.3 14.7-10.5l79.2-215zM143.3 360L85.1 336 229 283 176 426.9l-24-58.2c-1.6-3.9-4.8-7.1-8.7-8.7z"
12315
12551
  })
@@ -12317,7 +12553,7 @@ var PersonalWebsite = () => {
12317
12553
  };
12318
12554
 
12319
12555
  // src/components/experts/ExpertsPage.tsx
12320
- import { jsx as jsx42, jsxs as jsxs4, Fragment } from "react/jsx-runtime";
12556
+ import { jsx as jsx43, jsxs as jsxs4, Fragment } from "react/jsx-runtime";
12321
12557
  var arrowIcon = {
12322
12558
  height: 16,
12323
12559
  marginLeft: 10
@@ -12351,10 +12587,10 @@ var ExpertCard = ({ expert, Link }) => {
12351
12587
  return /* @__PURE__ */ jsxs4("div", {
12352
12588
  className: "flex-1 rounded-[15px] flex flex-col md:flex-row gap-2 md:gap-4",
12353
12589
  children: [
12354
- /* @__PURE__ */ jsx42(Link, {
12590
+ /* @__PURE__ */ jsx43(Link, {
12355
12591
  href: `/experts/${expert.slug}`,
12356
12592
  className: "no-underline text-inherit",
12357
- children: /* @__PURE__ */ jsx42("img", {
12593
+ children: /* @__PURE__ */ jsx43("img", {
12358
12594
  src: expert.image,
12359
12595
  alt: `Profile picture of ${expert.name}`,
12360
12596
  className: "w-[250px] h-[250px] rounded-xl border-effect object-cover"
@@ -12363,15 +12599,15 @@ var ExpertCard = ({ expert, Link }) => {
12363
12599
  /* @__PURE__ */ jsxs4("div", {
12364
12600
  className: "flex flex-col border-effect px-4 py-3 bg-pane flex-1",
12365
12601
  children: [
12366
- /* @__PURE__ */ jsx42(Link, {
12602
+ /* @__PURE__ */ jsx43(Link, {
12367
12603
  href: `/experts/${expert.slug}`,
12368
12604
  className: "no-underline text-inherit",
12369
- children: /* @__PURE__ */ jsx42("h2", {
12605
+ children: /* @__PURE__ */ jsx43("h2", {
12370
12606
  className: "text-[1.6em] mb-1 mt-3 text-[var(--ifm-color-primary)] font-brand",
12371
12607
  children: expert.name
12372
12608
  })
12373
12609
  }),
12374
- /* @__PURE__ */ jsx42("div", {
12610
+ /* @__PURE__ */ jsx43("div", {
12375
12611
  className: "mt-2 mb-3 leading-normal font-brand",
12376
12612
  children: expert.description
12377
12613
  }),
@@ -12384,11 +12620,11 @@ var ExpertCard = ({ expert, Link }) => {
12384
12620
  children: [
12385
12621
  "View profile",
12386
12622
  " ",
12387
- /* @__PURE__ */ jsx42("svg", {
12623
+ /* @__PURE__ */ jsx43("svg", {
12388
12624
  style: arrowIcon,
12389
12625
  xmlns: "http://www.w3.org/2000/svg",
12390
12626
  viewBox: "0 0 448 512",
12391
- children: /* @__PURE__ */ jsx42("path", {
12627
+ children: /* @__PURE__ */ jsx43("path", {
12392
12628
  fill: "currentColor",
12393
12629
  d: "M438.6 278.6l-160 160C272.4 444.9 264.2 448 256 448s-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L338.8 288H32C14.33 288 .0016 273.7 .0016 256S14.33 224 32 224h306.8l-105.4-105.4c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l160 160C451.1 245.9 451.1 266.1 438.6 278.6z"
12394
12630
  })
@@ -12397,7 +12633,7 @@ var ExpertCard = ({ expert, Link }) => {
12397
12633
  }),
12398
12634
  expert.videocall ? /* @__PURE__ */ jsxs4(Fragment, {
12399
12635
  children: [
12400
- /* @__PURE__ */ jsx42("br", {}),
12636
+ /* @__PURE__ */ jsx43("br", {}),
12401
12637
  /* @__PURE__ */ jsxs4("a", {
12402
12638
  className: "no-underline text-brand font-brand font-bold inline-flex flex-row items-center",
12403
12639
  target: "_blank",
@@ -12405,11 +12641,11 @@ var ExpertCard = ({ expert, Link }) => {
12405
12641
  children: [
12406
12642
  "Book a call",
12407
12643
  " ",
12408
- /* @__PURE__ */ jsx42("svg", {
12644
+ /* @__PURE__ */ jsx43("svg", {
12409
12645
  style: arrowIcon,
12410
12646
  xmlns: "http://www.w3.org/2000/svg",
12411
12647
  viewBox: "0 0 448 512",
12412
- children: /* @__PURE__ */ jsx42("path", {
12648
+ children: /* @__PURE__ */ jsx43("path", {
12413
12649
  fill: "currentColor",
12414
12650
  d: "M438.6 278.6l-160 160C272.4 444.9 264.2 448 256 448s-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L338.8 288H32C14.33 288 .0016 273.7 .0016 256S14.33 224 32 224h306.8l-105.4-105.4c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l160 160C451.1 245.9 451.1 266.1 438.6 278.6z"
12415
12651
  })
@@ -12420,48 +12656,48 @@ var ExpertCard = ({ expert, Link }) => {
12420
12656
  }) : null
12421
12657
  ]
12422
12658
  }),
12423
- /* @__PURE__ */ jsx42("div", {
12659
+ /* @__PURE__ */ jsx43("div", {
12424
12660
  className: "flex-1"
12425
12661
  }),
12426
12662
  /* @__PURE__ */ jsxs4("div", {
12427
12663
  className: "gap-3 flex flex-row flex-wrap",
12428
12664
  children: [
12429
- expert.website ? /* @__PURE__ */ jsx42("a", {
12665
+ expert.website ? /* @__PURE__ */ jsx43("a", {
12430
12666
  className: "no-underline text-inherit",
12431
12667
  target: "_blank",
12432
12668
  href: expert.website,
12433
- children: /* @__PURE__ */ jsx42(PersonalWebsite, {})
12669
+ children: /* @__PURE__ */ jsx43(PersonalWebsite, {})
12434
12670
  }) : null,
12435
- expert.x ? /* @__PURE__ */ jsx42("a", {
12671
+ expert.x ? /* @__PURE__ */ jsx43("a", {
12436
12672
  className: "no-underline text-inherit",
12437
12673
  target: "_blank",
12438
12674
  href: `https://x.com/${expert.x}`,
12439
- children: /* @__PURE__ */ jsx42(TwitterLogo, {})
12675
+ children: /* @__PURE__ */ jsx43(TwitterLogo, {})
12440
12676
  }) : null,
12441
- expert.github ? /* @__PURE__ */ jsx42("a", {
12677
+ expert.github ? /* @__PURE__ */ jsx43("a", {
12442
12678
  className: "no-underline text-inherit",
12443
12679
  target: "_blank",
12444
12680
  href: `https://github.com/${expert.github}`,
12445
- children: /* @__PURE__ */ jsx42(GitHubLogo, {})
12681
+ children: /* @__PURE__ */ jsx43(GitHubLogo, {})
12446
12682
  }) : null,
12447
- expert.linkedin ? /* @__PURE__ */ jsx42("a", {
12683
+ expert.linkedin ? /* @__PURE__ */ jsx43("a", {
12448
12684
  className: "no-underline text-inherit",
12449
12685
  target: "_blank",
12450
12686
  href: `https://www.linkedin.com/${expert.linkedin}`,
12451
- children: /* @__PURE__ */ jsx42(LinkedInLogo, {})
12687
+ children: /* @__PURE__ */ jsx43(LinkedInLogo, {})
12452
12688
  }) : null,
12453
- expert.email ? /* @__PURE__ */ jsx42("a", {
12689
+ expert.email ? /* @__PURE__ */ jsx43("a", {
12454
12690
  className: "no-underline text-inherit",
12455
12691
  target: "_blank",
12456
12692
  href: `mailto:${expert.email}`,
12457
- children: /* @__PURE__ */ jsx42(EmailLogo, {})
12693
+ children: /* @__PURE__ */ jsx43(EmailLogo, {})
12458
12694
  }) : null,
12459
- expert.discord ? /* @__PURE__ */ jsx42("a", {
12695
+ expert.discord ? /* @__PURE__ */ jsx43("a", {
12460
12696
  className: "no-underline text-inherit",
12461
12697
  target: "_blank",
12462
12698
  href: `https://discord.com/users/${expert.discord.userId}`,
12463
12699
  title: `@${expert.discord.username} on Discord`,
12464
- children: /* @__PURE__ */ jsx42(DiscordLogo, {})
12700
+ children: /* @__PURE__ */ jsx43(DiscordLogo, {})
12465
12701
  }) : null
12466
12702
  ]
12467
12703
  })
@@ -12477,12 +12713,12 @@ var ExpertsPageContent = ({ Link }) => {
12477
12713
  }
12478
12714
  return experts.sort((a2, b2) => random(a2.name + todayHash) - random(b2.name + todayHash));
12479
12715
  }, []);
12480
- return /* @__PURE__ */ jsx42("div", {
12716
+ return /* @__PURE__ */ jsx43("div", {
12481
12717
  className: "relative bg-[var(--background)]",
12482
12718
  children: /* @__PURE__ */ jsxs4("div", {
12483
12719
  style: wrapperStyle,
12484
12720
  children: [
12485
- /* @__PURE__ */ jsx42("h1", {
12721
+ /* @__PURE__ */ jsx43("h1", {
12486
12722
  className: "experts-pagetitle",
12487
12723
  children: "Find a Remotion Expert"
12488
12724
  }),
@@ -12490,16 +12726,16 @@ var ExpertsPageContent = ({ Link }) => {
12490
12726
  className: "experts-tagline",
12491
12727
  children: [
12492
12728
  "Get help by booking a call or hiring these freelancers to work on your Remotion project.",
12493
- /* @__PURE__ */ jsx42("br", {}),
12729
+ /* @__PURE__ */ jsx43("br", {}),
12494
12730
  "They appear in random order.",
12495
12731
  " "
12496
12732
  ]
12497
12733
  }),
12498
- /* @__PURE__ */ jsx42("p", {
12734
+ /* @__PURE__ */ jsx43("p", {
12499
12735
  className: "experts-tagline",
12500
- children: /* @__PURE__ */ jsx42("a", {
12736
+ children: /* @__PURE__ */ jsx43("a", {
12501
12737
  href: "mailto:hi@remotion.dev?subject=Remotion+Experts+directory",
12502
- children: /* @__PURE__ */ jsx42("strong", {
12738
+ children: /* @__PURE__ */ jsx43("strong", {
12503
12739
  children: "Are you available for hire? Let us know!"
12504
12740
  })
12505
12741
  })
@@ -12516,20 +12752,20 @@ var ExpertsPageContent = ({ Link }) => {
12516
12752
  /* @__PURE__ */ jsxs4("g", {
12517
12753
  clipPath: "url(#clip0_1_2)",
12518
12754
  children: [
12519
- /* @__PURE__ */ jsx42("path", {
12755
+ /* @__PURE__ */ jsx43("path", {
12520
12756
  d: "M511.5 213C532.991 213 551.678 225.088 561.08 242.842C580.293 236.943 602.018 241.615 617.201 256.799C632.385 271.982 637.057 293.765 631.158 312.92C648.912 322.322 661 341.009 661 362.5C661 383.991 648.912 402.678 631.158 412.08C637.057 431.293 632.385 453.018 617.201 468.201C602.018 483.385 580.235 488.057 561.08 482.158C551.678 499.912 532.991 512 511.5 512C490.009 512 471.322 499.912 461.92 482.158C442.707 488.057 420.982 483.385 405.799 468.201C390.615 453.018 385.943 431.235 391.842 412.08C374.088 402.678 362 383.991 362 362.5C362 341.009 374.088 322.322 391.842 312.92C385.943 293.707 390.615 271.982 405.799 256.799C420.982 241.615 442.765 236.943 461.92 242.842C471.322 225.088 490.009 213 511.5 213ZM568.146 344.396L578.074 334.469L558.219 314.672L548.291 324.599L492.812 380.078L470.037 357.303L460.109 347.375L440.312 367.172L450.24 377.1L482.943 409.803L492.871 419.73L502.799 409.803L568.146 344.396Z",
12521
12757
  fill: "currentcolor"
12522
12758
  }),
12523
- /* @__PURE__ */ jsx42("path", {
12759
+ /* @__PURE__ */ jsx43("path", {
12524
12760
  d: "M184 48H328C332.4 48 336 51.6 336 56V96H176V56C176 51.6 179.6 48 184 48ZM128 56V96H64C28.7 96 0 124.7 0 160V256H192H352H360.2C392.5 216.9 441.3 192 496 192C501.4 192 506.7 192.2 512 192.7V160C512 124.7 483.3 96 448 96H384V56C384 25.1 358.9 0 328 0H184C153.1 0 128 25.1 128 56ZM320 352H224C206.3 352 192 337.7 192 320V288H0V416C0 451.3 28.7 480 64 480H360.2C335.1 449.6 320 410.5 320 368C320 362.6 320.2 357.3 320.7 352H320Z",
12525
12761
  fill: "currentcolor"
12526
12762
  })
12527
12763
  ]
12528
12764
  }),
12529
- /* @__PURE__ */ jsx42("defs", {
12530
- children: /* @__PURE__ */ jsx42("clipPath", {
12765
+ /* @__PURE__ */ jsx43("defs", {
12766
+ children: /* @__PURE__ */ jsx43("clipPath", {
12531
12767
  id: "clip0_1_2",
12532
- children: /* @__PURE__ */ jsx42("rect", {
12768
+ children: /* @__PURE__ */ jsx43("rect", {
12533
12769
  width: "661",
12534
12770
  height: "512",
12535
12771
  fill: "white"
@@ -12543,22 +12779,22 @@ var ExpertsPageContent = ({ Link }) => {
12543
12779
  children: [
12544
12780
  "Remotion Experts are independent freelancers with proven Remotion expertise and portfolios. However,",
12545
12781
  " ",
12546
- /* @__PURE__ */ jsx42("strong", {
12782
+ /* @__PURE__ */ jsx43("strong", {
12547
12783
  children: " perform due diligence "
12548
12784
  }),
12549
12785
  " before hiring. ",
12550
- /* @__PURE__ */ jsx42("br", {}),
12786
+ /* @__PURE__ */ jsx43("br", {}),
12551
12787
  " ",
12552
12788
  "Remotion does not arbitrate disputes between experts and clients."
12553
12789
  ]
12554
12790
  })
12555
12791
  ]
12556
12792
  }),
12557
- /* @__PURE__ */ jsx42("br", {}),
12558
- /* @__PURE__ */ jsx42("div", {
12793
+ /* @__PURE__ */ jsx43("br", {}),
12794
+ /* @__PURE__ */ jsx43("div", {
12559
12795
  className: "flex flex-col gap-12 md:gap-4",
12560
12796
  children: expertsInRandomOrder.map((e) => {
12561
- return /* @__PURE__ */ jsx42(ExpertCard, {
12797
+ return /* @__PURE__ */ jsx43(ExpertCard, {
12562
12798
  expert: e,
12563
12799
  Link
12564
12800
  }, e.name);