@remotion/promo-pages 4.0.485 → 4.0.486

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/design.js CHANGED
@@ -1378,7 +1378,7 @@ var getDefaultConfig = () => {
1378
1378
  var twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
1379
1379
 
1380
1380
  // ../design/dist/esm/index.mjs
1381
- import React32, { useEffect as useEffect22, useMemo as useMemo42, useState as useState21 } from "react";
1381
+ import React32, { useEffect as useEffect21, useMemo as useMemo42, useState as useState21 } from "react";
1382
1382
 
1383
1383
  // ../paths/dist/esm/index.mjs
1384
1384
  var cutLInstruction = ({
@@ -3484,6 +3484,94 @@ var getBoundingBox = (d) => {
3484
3484
  const unarced = removeATSHVQInstructions(normalizeInstructions(parsed));
3485
3485
  return getBoundingBoxFromInstructions(unarced);
3486
3486
  };
3487
+ var translateSegments = (segments, x, y) => {
3488
+ return segments.map((segment) => {
3489
+ if (segment.type === "a" || segment.type === "c" || segment.type === "v" || segment.type === "s" || segment.type === "h" || segment.type === "l" || segment.type === "m" || segment.type === "q" || segment.type === "t") {
3490
+ return segment;
3491
+ }
3492
+ if (segment.type === "V") {
3493
+ return {
3494
+ type: "V",
3495
+ y: segment.y + y
3496
+ };
3497
+ }
3498
+ if (segment.type === "H") {
3499
+ return {
3500
+ type: "H",
3501
+ x: segment.x + x
3502
+ };
3503
+ }
3504
+ if (segment.type === "A") {
3505
+ return {
3506
+ type: "A",
3507
+ rx: segment.rx,
3508
+ ry: segment.ry,
3509
+ largeArcFlag: segment.largeArcFlag,
3510
+ sweepFlag: segment.sweepFlag,
3511
+ xAxisRotation: segment.xAxisRotation,
3512
+ x: segment.x + x,
3513
+ y: segment.y + y
3514
+ };
3515
+ }
3516
+ if (segment.type === "Z") {
3517
+ return segment;
3518
+ }
3519
+ if (segment.type === "C") {
3520
+ return {
3521
+ type: "C",
3522
+ cp1x: segment.cp1x + x,
3523
+ cp1y: segment.cp1y + y,
3524
+ cp2x: segment.cp2x + x,
3525
+ cp2y: segment.cp2y + y,
3526
+ x: segment.x + x,
3527
+ y: segment.y + y
3528
+ };
3529
+ }
3530
+ if (segment.type === "Q") {
3531
+ return {
3532
+ type: "Q",
3533
+ cpx: segment.cpx + x,
3534
+ cpy: segment.cpy + y,
3535
+ x: segment.x + x,
3536
+ y: segment.y + y
3537
+ };
3538
+ }
3539
+ if (segment.type === "S") {
3540
+ return {
3541
+ type: "S",
3542
+ cpx: segment.cpx + x,
3543
+ cpy: segment.cpy + y,
3544
+ x: segment.x + x,
3545
+ y: segment.y + y
3546
+ };
3547
+ }
3548
+ if (segment.type === "T") {
3549
+ return {
3550
+ type: "T",
3551
+ x: segment.x + x,
3552
+ y: segment.y + y
3553
+ };
3554
+ }
3555
+ if (segment.type === "L") {
3556
+ return {
3557
+ type: "L",
3558
+ x: segment.x + x,
3559
+ y: segment.y + y
3560
+ };
3561
+ }
3562
+ if (segment.type === "M") {
3563
+ return {
3564
+ type: "M",
3565
+ x: segment.x + x,
3566
+ y: segment.y + y
3567
+ };
3568
+ }
3569
+ throw new Error(`Unknown segment type: ${segment.type}`);
3570
+ });
3571
+ };
3572
+ var translatePath = (path, x, y) => {
3573
+ return serializeInstructions(translateSegments(parsePath(path), x, y));
3574
+ };
3487
3575
  var mod = (x, m) => {
3488
3576
  return (x % m + m) % m;
3489
3577
  };
@@ -4045,94 +4133,6 @@ var getLength = (path) => {
4045
4133
  const constructucted = construct(path);
4046
4134
  return constructucted.totalLength;
4047
4135
  };
4048
- var translateSegments = (segments, x, y) => {
4049
- return segments.map((segment) => {
4050
- if (segment.type === "a" || segment.type === "c" || segment.type === "v" || segment.type === "s" || segment.type === "h" || segment.type === "l" || segment.type === "m" || segment.type === "q" || segment.type === "t") {
4051
- return segment;
4052
- }
4053
- if (segment.type === "V") {
4054
- return {
4055
- type: "V",
4056
- y: segment.y + y
4057
- };
4058
- }
4059
- if (segment.type === "H") {
4060
- return {
4061
- type: "H",
4062
- x: segment.x + x
4063
- };
4064
- }
4065
- if (segment.type === "A") {
4066
- return {
4067
- type: "A",
4068
- rx: segment.rx,
4069
- ry: segment.ry,
4070
- largeArcFlag: segment.largeArcFlag,
4071
- sweepFlag: segment.sweepFlag,
4072
- xAxisRotation: segment.xAxisRotation,
4073
- x: segment.x + x,
4074
- y: segment.y + y
4075
- };
4076
- }
4077
- if (segment.type === "Z") {
4078
- return segment;
4079
- }
4080
- if (segment.type === "C") {
4081
- return {
4082
- type: "C",
4083
- cp1x: segment.cp1x + x,
4084
- cp1y: segment.cp1y + y,
4085
- cp2x: segment.cp2x + x,
4086
- cp2y: segment.cp2y + y,
4087
- x: segment.x + x,
4088
- y: segment.y + y
4089
- };
4090
- }
4091
- if (segment.type === "Q") {
4092
- return {
4093
- type: "Q",
4094
- cpx: segment.cpx + x,
4095
- cpy: segment.cpy + y,
4096
- x: segment.x + x,
4097
- y: segment.y + y
4098
- };
4099
- }
4100
- if (segment.type === "S") {
4101
- return {
4102
- type: "S",
4103
- cpx: segment.cpx + x,
4104
- cpy: segment.cpy + y,
4105
- x: segment.x + x,
4106
- y: segment.y + y
4107
- };
4108
- }
4109
- if (segment.type === "T") {
4110
- return {
4111
- type: "T",
4112
- x: segment.x + x,
4113
- y: segment.y + y
4114
- };
4115
- }
4116
- if (segment.type === "L") {
4117
- return {
4118
- type: "L",
4119
- x: segment.x + x,
4120
- y: segment.y + y
4121
- };
4122
- }
4123
- if (segment.type === "M") {
4124
- return {
4125
- type: "M",
4126
- x: segment.x + x,
4127
- y: segment.y + y
4128
- };
4129
- }
4130
- throw new Error(`Unknown segment type: ${segment.type}`);
4131
- });
4132
- };
4133
- var translatePath = (path, x, y) => {
4134
- return serializeInstructions(translateSegments(parsePath(path), x, y));
4135
- };
4136
4136
  var resetPath = (d) => {
4137
4137
  const box = getBoundingBox(d);
4138
4138
  return translatePath(d, -box.x1, -box.y1);
@@ -4321,8 +4321,8 @@ import {
4321
4321
  forwardRef as forwardRef10,
4322
4322
  useCallback as useCallback17,
4323
4323
  useContext as useContext32,
4324
- useEffect as useEffect17,
4325
4324
  useImperativeHandle as useImperativeHandle7,
4325
+ useLayoutEffect as useLayoutEffect10,
4326
4326
  useMemo as useMemo31,
4327
4327
  useRef as useRef23,
4328
4328
  useState as useState16
@@ -4330,7 +4330,7 @@ import {
4330
4330
  import { jsx as jsx26 } from "react/jsx-runtime";
4331
4331
  import { forwardRef as forwardRef11, useCallback as useCallback18, useState as useState17 } from "react";
4332
4332
  import { jsx as jsx27 } from "react/jsx-runtime";
4333
- import { useCallback as useCallback19, useContext as useContext33, useLayoutEffect as useLayoutEffect10, useRef as useRef24 } from "react";
4333
+ import { useCallback as useCallback19, useContext as useContext33, useLayoutEffect as useLayoutEffect11, useRef as useRef24 } from "react";
4334
4334
  import { jsx as jsx28 } from "react/jsx-runtime";
4335
4335
  import React29, { forwardRef as forwardRef12, useCallback as useCallback20, useRef as useRef25 } from "react";
4336
4336
  import { jsx as jsx29 } from "react/jsx-runtime";
@@ -4356,8 +4356,8 @@ import { useCallback as useCallback24 } from "react";
4356
4356
  import {
4357
4357
  useCallback as useCallback22,
4358
4358
  useContext as useContext36,
4359
- useEffect as useEffect18,
4360
- useLayoutEffect as useLayoutEffect11,
4359
+ useEffect as useEffect17,
4360
+ useLayoutEffect as useLayoutEffect12,
4361
4361
  useMemo as useMemo35,
4362
4362
  useState as useState19
4363
4363
  } from "react";
@@ -4366,13 +4366,13 @@ import React37, {
4366
4366
  forwardRef as forwardRef13,
4367
4367
  useCallback as useCallback23,
4368
4368
  useContext as useContext37,
4369
- useEffect as useEffect20,
4369
+ useEffect as useEffect19,
4370
4370
  useImperativeHandle as useImperativeHandle9,
4371
4371
  useMemo as useMemo36,
4372
4372
  useRef as useRef27,
4373
4373
  useState as useState20
4374
4374
  } from "react";
4375
- import { useEffect as useEffect19 } from "react";
4375
+ import { useEffect as useEffect18 } from "react";
4376
4376
  import { jsx as jsx34 } from "react/jsx-runtime";
4377
4377
  import { jsx as jsx35 } from "react/jsx-runtime";
4378
4378
  import React39, { useMemo as useMemo37 } from "react";
@@ -4389,9 +4389,9 @@ import { forwardRef as forwardRef16, useCallback as useCallback25, useContext as
4389
4389
  import {
4390
4390
  forwardRef as forwardRef15,
4391
4391
  useContext as useContext38,
4392
- useEffect as useEffect21,
4392
+ useEffect as useEffect20,
4393
4393
  useImperativeHandle as useImperativeHandle10,
4394
- useLayoutEffect as useLayoutEffect12,
4394
+ useLayoutEffect as useLayoutEffect13,
4395
4395
  useMemo as useMemo39,
4396
4396
  useRef as useRef28
4397
4397
  } from "react";
@@ -5565,7 +5565,7 @@ var getComponentsToAddStacksTo = () => componentsToAddStacksTo;
5565
5565
  var addSequenceStackTraces = (component) => {
5566
5566
  componentsToAddStacksTo.push(component);
5567
5567
  };
5568
- var VERSION = "4.0.485";
5568
+ var VERSION = "4.0.486";
5569
5569
  var checkMultipleRemotionVersions = () => {
5570
5570
  if (typeof globalThis === "undefined") {
5571
5571
  return;
@@ -5971,6 +5971,12 @@ var textSchema = {
5971
5971
  default: undefined,
5972
5972
  description: "Color"
5973
5973
  },
5974
+ "style.fontFamily": {
5975
+ type: "font-family",
5976
+ default: undefined,
5977
+ description: "Font family",
5978
+ keyframable: false
5979
+ },
5974
5980
  "style.fontSize": {
5975
5981
  type: "number",
5976
5982
  default: undefined,
@@ -13301,6 +13307,18 @@ var loadImage = ({
13301
13307
  function exponentialBackoff(errorCount) {
13302
13308
  return 1000 * 2 ** (errorCount - 1);
13303
13309
  }
13310
+ var waitForNextFrame = ({
13311
+ onFrame
13312
+ }) => {
13313
+ if (typeof requestAnimationFrame === "undefined") {
13314
+ onFrame();
13315
+ return () => {
13316
+ return;
13317
+ };
13318
+ }
13319
+ const frame = requestAnimationFrame(onFrame);
13320
+ return () => cancelAnimationFrame(frame);
13321
+ };
13304
13322
  var CanvasImageContent = forwardRef10(({
13305
13323
  src,
13306
13324
  width,
@@ -13330,6 +13348,17 @@ var CanvasImageContent = forwardRef10(({
13330
13348
  overrideId: controls?.overrideId ?? null
13331
13349
  });
13332
13350
  const sequenceContext = useContext32(SequenceContext);
13351
+ const pendingLoadDelayRef = useRef23(null);
13352
+ const continuePendingLoadDelay = useCallback17(() => {
13353
+ const pending = pendingLoadDelayRef.current;
13354
+ if (!pending || pending.continued) {
13355
+ return;
13356
+ }
13357
+ pending.continued = true;
13358
+ pending.unblock();
13359
+ continueRender2(pending.handle);
13360
+ pendingLoadDelayRef.current = null;
13361
+ }, [continueRender2]);
13333
13362
  const sourceCanvas = useMemo31(() => {
13334
13363
  if (typeof document === "undefined") {
13335
13364
  return null;
@@ -13347,7 +13376,7 @@ var CanvasImageContent = forwardRef10(({
13347
13376
  ref.current = canvas;
13348
13377
  }
13349
13378
  }, [ref, refForOutline]);
13350
- useEffect17(() => {
13379
+ useLayoutEffect10(() => {
13351
13380
  const isPremounting = Boolean(sequenceContext?.premounting);
13352
13381
  const isPostmounting = Boolean(sequenceContext?.postmounting);
13353
13382
  const handle = delayRender2(`Rendering <CanvasImage> with src="${truncateSrcForLabel(actualSrc)}"`, {
@@ -13359,17 +13388,13 @@ var CanvasImageContent = forwardRef10(({
13359
13388
  };
13360
13389
  const controller = new AbortController;
13361
13390
  let cancelled = false;
13362
- let continued = false;
13363
13391
  let errorCount = 0;
13364
13392
  let timeoutId = null;
13365
13393
  setLoadedImage(null);
13366
- const continueRenderOnce = () => {
13367
- if (continued) {
13368
- return;
13369
- }
13370
- continued = true;
13371
- unblock();
13372
- continueRender2(handle);
13394
+ pendingLoadDelayRef.current = {
13395
+ handle,
13396
+ unblock,
13397
+ continued: false
13373
13398
  };
13374
13399
  const attemptLoad = () => {
13375
13400
  loadImage({ src: actualSrc, signal: controller.signal }).then((image) => {
@@ -13377,13 +13402,9 @@ var CanvasImageContent = forwardRef10(({
13377
13402
  return;
13378
13403
  }
13379
13404
  setLoadedImage(image);
13380
- }).then(() => {
13381
- if (!cancelled) {
13382
- continueRenderOnce();
13383
- }
13384
13405
  }).catch((err) => {
13385
13406
  if (err.name === "AbortError") {
13386
- continueRenderOnce();
13407
+ continuePendingLoadDelay();
13387
13408
  return;
13388
13409
  }
13389
13410
  errorCount++;
@@ -13397,7 +13418,7 @@ var CanvasImageContent = forwardRef10(({
13397
13418
  }, backoff);
13398
13419
  } else if (onError) {
13399
13420
  onError(err);
13400
- continueRenderOnce();
13421
+ continuePendingLoadDelay();
13401
13422
  } else {
13402
13423
  cancelRender2(err);
13403
13424
  }
@@ -13410,12 +13431,12 @@ var CanvasImageContent = forwardRef10(({
13410
13431
  clearTimeout(timeoutId);
13411
13432
  }
13412
13433
  controller.abort();
13413
- continueRenderOnce();
13434
+ continuePendingLoadDelay();
13414
13435
  };
13415
13436
  }, [
13416
13437
  actualSrc,
13417
13438
  cancelRender2,
13418
- continueRender2,
13439
+ continuePendingLoadDelay,
13419
13440
  delayPlayback,
13420
13441
  delayRender2,
13421
13442
  delayRenderRetries,
@@ -13426,13 +13447,16 @@ var CanvasImageContent = forwardRef10(({
13426
13447
  sequenceContext?.postmounting,
13427
13448
  sequenceContext?.premounting
13428
13449
  ]);
13429
- useEffect17(() => {
13450
+ useLayoutEffect10(() => {
13430
13451
  if (!loadedImage || !outputCanvas || !sourceCanvas) {
13431
13452
  return;
13432
13453
  }
13433
13454
  const handle = delayRender2(`Applying effects to <CanvasImage> with src="${truncateSrcForLabel(actualSrc)}"`);
13434
13455
  let cancelled = false;
13435
13456
  let continued = false;
13457
+ let cancelWaitForNextFrame = () => {
13458
+ return;
13459
+ };
13436
13460
  const continueRenderOnce = () => {
13437
13461
  if (continued) {
13438
13462
  return;
@@ -13467,7 +13491,15 @@ var CanvasImageContent = forwardRef10(({
13467
13491
  height: canvasHeight
13468
13492
  }).then((completed) => {
13469
13493
  if (completed && !cancelled) {
13470
- continueRenderOnce();
13494
+ cancelWaitForNextFrame = waitForNextFrame({
13495
+ onFrame: () => {
13496
+ if (cancelled) {
13497
+ return;
13498
+ }
13499
+ continueRenderOnce();
13500
+ continuePendingLoadDelay();
13501
+ }
13502
+ });
13471
13503
  }
13472
13504
  }).catch((err) => {
13473
13505
  if (cancelled) {
@@ -13476,12 +13508,14 @@ var CanvasImageContent = forwardRef10(({
13476
13508
  if (onError) {
13477
13509
  onError(err);
13478
13510
  continueRenderOnce();
13511
+ continuePendingLoadDelay();
13479
13512
  } else {
13480
13513
  cancelRender2(err);
13481
13514
  }
13482
13515
  });
13483
13516
  return () => {
13484
13517
  cancelled = true;
13518
+ cancelWaitForNextFrame();
13485
13519
  continueRenderOnce();
13486
13520
  };
13487
13521
  }, [
@@ -13489,6 +13523,7 @@ var CanvasImageContent = forwardRef10(({
13489
13523
  cancelRender2,
13490
13524
  chainState,
13491
13525
  continueRender2,
13526
+ continuePendingLoadDelay,
13492
13527
  delayRender2,
13493
13528
  fit,
13494
13529
  height,
@@ -13698,7 +13733,7 @@ var ImgContent = ({
13698
13733
  if (typeof window !== "undefined") {
13699
13734
  const isPremounting = Boolean(sequenceContext?.premounting);
13700
13735
  const isPostmounting = Boolean(sequenceContext?.postmounting);
13701
- useLayoutEffect10(() => {
13736
+ useLayoutEffect11(() => {
13702
13737
  if (window.process?.env?.NODE_ENV === "test") {
13703
13738
  if (imageRef.current) {
13704
13739
  imageRef.current.src = actualSrc;
@@ -14594,7 +14629,7 @@ var OffthreadVideoForRendering = ({
14594
14629
  mediaVolume: 1
14595
14630
  });
14596
14631
  warnAboutTooHighVolume(volume);
14597
- useEffect18(() => {
14632
+ useEffect17(() => {
14598
14633
  if (!src) {
14599
14634
  throw new Error("No src passed");
14600
14635
  }
@@ -14651,7 +14686,7 @@ var OffthreadVideoForRendering = ({
14651
14686
  }, [toneMapped, currentTime, src, transparent]);
14652
14687
  const [imageSrc, setImageSrc] = useState19(null);
14653
14688
  const { delayRender: delayRender2, continueRender: continueRender2 } = useDelayRender();
14654
- useLayoutEffect11(() => {
14689
+ useLayoutEffect12(() => {
14655
14690
  if (!window.remotion_videoEnabled) {
14656
14691
  return;
14657
14692
  }
@@ -14755,7 +14790,7 @@ var useEmitVideoFrame = ({
14755
14790
  ref,
14756
14791
  onVideoFrame
14757
14792
  }) => {
14758
- useEffect19(() => {
14793
+ useEffect18(() => {
14759
14794
  const { current } = ref;
14760
14795
  if (!current) {
14761
14796
  return;
@@ -14930,7 +14965,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
14930
14965
  tag: "video",
14931
14966
  mountTime
14932
14967
  }));
14933
- useEffect20(() => {
14968
+ useEffect19(() => {
14934
14969
  const { current } = videoRef;
14935
14970
  if (!current) {
14936
14971
  return;
@@ -14973,7 +15008,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
14973
15008
  const currentOnDurationCallback = useRef27(onDuration);
14974
15009
  currentOnDurationCallback.current = onDuration;
14975
15010
  useEmitVideoFrame({ ref: videoRef, onVideoFrame });
14976
- useEffect20(() => {
15011
+ useEffect19(() => {
14977
15012
  const { current } = videoRef;
14978
15013
  if (!current) {
14979
15014
  return;
@@ -14990,7 +15025,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
14990
15025
  current.removeEventListener("loadedmetadata", onLoadedMetadata);
14991
15026
  };
14992
15027
  }, [src]);
14993
- useEffect20(() => {
15028
+ useEffect19(() => {
14994
15029
  const { current } = videoRef;
14995
15030
  if (!current) {
14996
15031
  return;
@@ -15771,7 +15806,7 @@ var VideoForRenderingForwardFunction = ({
15771
15806
  mediaVolume: 1
15772
15807
  });
15773
15808
  warnAboutTooHighVolume(volume);
15774
- useEffect21(() => {
15809
+ useEffect20(() => {
15775
15810
  if (!props2.src) {
15776
15811
  throw new Error("No src passed");
15777
15812
  }
@@ -15815,7 +15850,7 @@ var VideoForRenderingForwardFunction = ({
15815
15850
  return videoRef.current;
15816
15851
  }, []);
15817
15852
  useEmitVideoFrame({ ref: videoRef, onVideoFrame });
15818
- useEffect21(() => {
15853
+ useEffect20(() => {
15819
15854
  if (!window.remotion_videoEnabled) {
15820
15855
  return;
15821
15856
  }
@@ -15905,7 +15940,7 @@ var VideoForRenderingForwardFunction = ({
15905
15940
  ]);
15906
15941
  const { src } = props2;
15907
15942
  if (environment.isRendering) {
15908
- useLayoutEffect12(() => {
15943
+ useLayoutEffect13(() => {
15909
15944
  if (window.process?.env?.NODE_ENV === "test") {
15910
15945
  return;
15911
15946
  }
@@ -19009,7 +19044,7 @@ var extrudeAndTransformElement = (options) => {
19009
19044
  // ../design/dist/esm/index.mjs
19010
19045
  import { jsx as jsx212, Fragment as Fragment3 } from "react/jsx-runtime";
19011
19046
  import { jsx as jsx312, jsxs as jsxs5 } from "react/jsx-runtime";
19012
- import { useEffect as useEffect23, useMemo as useMemo210, useRef as useRef31 } from "react";
19047
+ import { useEffect as useEffect22, useMemo as useMemo210, useRef as useRef31 } from "react";
19013
19048
  import { jsx as jsx44 } from "react/jsx-runtime";
19014
19049
  import { jsx as jsx53, jsxs as jsxs22 } from "react/jsx-runtime";
19015
19050
  import React62 from "react";
@@ -19264,7 +19299,7 @@ var useHoverTransforms = (ref, disabled) => {
19264
19299
  isActive: false
19265
19300
  });
19266
19301
  const eventTarget = useMemo42(() => new EventTarget, []);
19267
- useEffect22(() => {
19302
+ useEffect21(() => {
19268
19303
  if (disabled) {
19269
19304
  eventTarget.dispatchEvent(new Event("disabled"));
19270
19305
  } else {
@@ -19411,7 +19446,7 @@ var getAngle = (ref, coordinates) => {
19411
19446
  var lastCoordinates = null;
19412
19447
  var useMousePosition = (ref) => {
19413
19448
  const [angle, setAngle] = useState21(getAngle(ref.current, lastCoordinates));
19414
- useEffect22(() => {
19449
+ useEffect21(() => {
19415
19450
  const element = ref.current;
19416
19451
  if (!element) {
19417
19452
  return;
@@ -19532,7 +19567,7 @@ var Spinner = ({ size, duration }) => {
19532
19567
  };
19533
19568
  }, [size]);
19534
19569
  const pathsRef = useRef31([]);
19535
- useEffect23(() => {
19570
+ useEffect22(() => {
19536
19571
  const animate = () => {
19537
19572
  const now = performance.now();
19538
19573
  for (let index = 0;index < lines; index++) {