@remotion/promo-pages 4.0.487 → 4.0.488

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.
Files changed (33) hide show
  1. package/dist/Homepage.js +246 -196
  2. package/dist/components/Homepage.js +21 -5
  3. package/dist/components/homepage/CanvasSectionTitle.d.ts +4 -0
  4. package/dist/components/homepage/CanvasSectionTitle.js +14 -0
  5. package/dist/components/homepage/CommunityStatsItems.js +2 -2
  6. package/dist/components/homepage/Demo/DemoRender.d.ts +1 -1
  7. package/dist/components/homepage/Demo/DisplayedEmoji.js +3 -5
  8. package/dist/components/homepage/Demo/math.d.ts +1 -1
  9. package/dist/components/homepage/EditorStarterSection.d.ts +3 -0
  10. package/dist/components/homepage/EditorStarterSection.js +8 -0
  11. package/dist/components/homepage/GitHubButton.js +1 -1
  12. package/dist/components/homepage/MakeVideosAgentically.d.ts +10 -0
  13. package/dist/components/homepage/MakeVideosAgentically.js +37 -0
  14. package/dist/components/homepage/MakeVideosInteractively.d.ts +9 -0
  15. package/dist/components/homepage/MakeVideosInteractively.js +16 -0
  16. package/dist/components/homepage/MakeVideosLinks.d.ts +9 -0
  17. package/dist/components/homepage/MakeVideosLinks.js +17 -0
  18. package/dist/components/homepage/MakeVideosProgrammatically.d.ts +9 -0
  19. package/dist/components/homepage/MakeVideosProgrammatically.js +8 -0
  20. package/dist/components/homepage/Pricing.d.ts +1 -3
  21. package/dist/components/homepage/Pricing.js +2 -6
  22. package/dist/components/homepage/WriteInReact.js +1 -2
  23. package/dist/components/team/TrustSection.js +1 -1
  24. package/dist/design.js +89 -55
  25. package/dist/experts.js +78 -44
  26. package/dist/homepage/Pricing.js +80 -46
  27. package/dist/prompts/PromptsGallery.js +89 -55
  28. package/dist/prompts/PromptsShow.js +95 -61
  29. package/dist/prompts/PromptsSubmit.js +80 -46
  30. package/dist/team.js +80 -46
  31. package/dist/template-modal-content.js +86 -52
  32. package/dist/templates.js +80 -46
  33. package/package.json +17 -17
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 useEffect21, useMemo as useMemo42, useState as useState21 } from "react";
1381
+ import React32, { useEffect as useEffect21, useMemo as useMemo42, useState as useState23 } from "react";
1382
1382
 
1383
1383
  // ../paths/dist/esm/index.mjs
1384
1384
  var cutLInstruction = ({
@@ -4330,7 +4330,13 @@ 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 useLayoutEffect11, useRef as useRef24 } from "react";
4333
+ import {
4334
+ useCallback as useCallback19,
4335
+ useContext as useContext33,
4336
+ useLayoutEffect as useLayoutEffect11,
4337
+ useRef as useRef24,
4338
+ useState as useState18
4339
+ } from "react";
4334
4340
  import { jsx as jsx28 } from "react/jsx-runtime";
4335
4341
  import React29, { forwardRef as forwardRef12, useCallback as useCallback20, useRef as useRef25 } from "react";
4336
4342
  import { jsx as jsx29 } from "react/jsx-runtime";
@@ -4341,7 +4347,7 @@ import {
4341
4347
  useImperativeHandle as useImperativeHandle8,
4342
4348
  useMemo as useMemo32,
4343
4349
  useRef as useRef26,
4344
- useState as useState18
4350
+ useState as useState19
4345
4351
  } from "react";
4346
4352
  import { jsx as jsx30 } from "react/jsx-runtime";
4347
4353
  import React31 from "react";
@@ -4359,7 +4365,7 @@ import {
4359
4365
  useEffect as useEffect17,
4360
4366
  useLayoutEffect as useLayoutEffect12,
4361
4367
  useMemo as useMemo35,
4362
- useState as useState19
4368
+ useState as useState20
4363
4369
  } from "react";
4364
4370
  import { jsx as jsx33 } from "react/jsx-runtime";
4365
4371
  import React37, {
@@ -4370,7 +4376,7 @@ import React37, {
4370
4376
  useImperativeHandle as useImperativeHandle9,
4371
4377
  useMemo as useMemo36,
4372
4378
  useRef as useRef27,
4373
- useState as useState20
4379
+ useState as useState21
4374
4380
  } from "react";
4375
4381
  import { useEffect as useEffect18 } from "react";
4376
4382
  import { jsx as jsx34 } from "react/jsx-runtime";
@@ -5565,7 +5571,7 @@ var getComponentsToAddStacksTo = () => componentsToAddStacksTo;
5565
5571
  var addSequenceStackTraces = (component) => {
5566
5572
  componentsToAddStacksTo.push(component);
5567
5573
  };
5568
- var VERSION = "4.0.487";
5574
+ var VERSION = "4.0.488";
5569
5575
  var checkMultipleRemotionVersions = () => {
5570
5576
  if (typeof globalThis === "undefined") {
5571
5577
  return;
@@ -9249,7 +9255,7 @@ var useEffectChainState = () => {
9249
9255
  }
9250
9256
  }), []);
9251
9257
  };
9252
- var CanvasRefForwardingFunction = ({ width, height, fit, className, style, effects }, ref) => {
9258
+ var CanvasRefForwardingFunction = ({ width, height, fit, className, style, effects, ...props }, ref) => {
9253
9259
  const canvasRef = useRef8(null);
9254
9260
  const chainState = useEffectChainState();
9255
9261
  const sourceCanvas = useMemo16(() => {
@@ -9313,7 +9319,8 @@ var CanvasRefForwardingFunction = ({ width, height, fit, className, style, effec
9313
9319
  return /* @__PURE__ */ jsx13("canvas", {
9314
9320
  ref: canvasRef,
9315
9321
  className,
9316
- style
9322
+ style,
9323
+ ...props
9317
9324
  });
9318
9325
  };
9319
9326
  var Canvas = React15.forwardRef(CanvasRefForwardingFunction);
@@ -9490,6 +9497,16 @@ var animatedImageSchema = {
9490
9497
  },
9491
9498
  ...transformSchema
9492
9499
  };
9500
+ var getCanvasPropsFromSequenceProps = (props) => {
9501
+ const canvasProps = {};
9502
+ const mutableCanvasProps = canvasProps;
9503
+ for (const key in props) {
9504
+ if (Object.prototype.hasOwnProperty.call(props, key) && (key.startsWith("data-") || key.startsWith("aria-"))) {
9505
+ mutableCanvasProps[key] = props[key];
9506
+ }
9507
+ }
9508
+ return canvasProps;
9509
+ };
9493
9510
  var AnimatedImageContent = forwardRef4(({
9494
9511
  src,
9495
9512
  width,
@@ -9644,6 +9661,7 @@ var AnimatedImageInner = ({
9644
9661
  useImperativeHandle2(ref, () => {
9645
9662
  return actualRef.current;
9646
9663
  }, []);
9664
+ const canvasProps = getCanvasPropsFromSequenceProps(sequenceProps);
9647
9665
  const animatedImageProps = {
9648
9666
  src,
9649
9667
  width,
@@ -9655,7 +9673,8 @@ var AnimatedImageInner = ({
9655
9673
  id,
9656
9674
  className,
9657
9675
  style,
9658
- requestInit
9676
+ requestInit,
9677
+ ...canvasProps
9659
9678
  };
9660
9679
  return /* @__PURE__ */ jsx14(Sequence, {
9661
9680
  layout: "none",
@@ -10592,6 +10611,7 @@ var SharedAudioContextProvider = ({ children, audioLatencyHint, audioEnabled, pr
10592
10611
  return ({
10593
10612
  node,
10594
10613
  mediaTimestamp,
10614
+ sourceOffset,
10595
10615
  scheduledTime,
10596
10616
  duration,
10597
10617
  offset,
@@ -10620,7 +10640,7 @@ var SharedAudioContextProvider = ({ children, audioLatencyHint, audioEnabled, pr
10620
10640
  }
10621
10641
  }
10622
10642
  const scheduledEndTime = scheduledTime + duration / node.playbackRate.value;
10623
- const mediaTime = mediaTimestamp + offset;
10643
+ const mediaTime = mediaTimestamp + offset - sourceOffset;
10624
10644
  const mediaEndTime = mediaTime + duration;
10625
10645
  const latency = ctxAndGain.audioContext.baseLatency + ctxAndGain.audioContext.outputLatency;
10626
10646
  const timeDiff = scheduledTime - ctxAndGain.audioContext.currentTime;
@@ -13417,13 +13437,18 @@ var CanvasImageContent = forwardRef10(({
13417
13437
  });
13418
13438
  const sequenceContext = useContext32(SequenceContext);
13419
13439
  const pendingLoadDelayRef = useRef23(null);
13420
- const continuePendingLoadDelay = useCallback17(() => {
13440
+ const [isLoadPending, setIsLoadPending] = useState16(false);
13441
+ const isPremounting = Boolean(sequenceContext?.premounting);
13442
+ const isPostmounting = Boolean(sequenceContext?.postmounting);
13443
+ const continuePendingLoadDelay = useCallback17(({ markAsReady }) => {
13421
13444
  const pending = pendingLoadDelayRef.current;
13422
13445
  if (!pending || pending.continued) {
13423
13446
  return;
13424
13447
  }
13425
13448
  pending.continued = true;
13426
- pending.unblock();
13449
+ if (markAsReady) {
13450
+ setIsLoadPending(false);
13451
+ }
13427
13452
  continueRender2(pending.handle);
13428
13453
  pendingLoadDelayRef.current = null;
13429
13454
  }, [continueRender2]);
@@ -13445,23 +13470,30 @@ var CanvasImageContent = forwardRef10(({
13445
13470
  }
13446
13471
  }, [ref, refForOutline]);
13447
13472
  useLayoutEffect10(() => {
13448
- const isPremounting = Boolean(sequenceContext?.premounting);
13449
- const isPostmounting = Boolean(sequenceContext?.postmounting);
13473
+ if (!pauseWhenLoading || !isLoadPending || isPremounting || isPostmounting) {
13474
+ return;
13475
+ }
13476
+ return delayPlayback().unblock;
13477
+ }, [
13478
+ delayPlayback,
13479
+ isLoadPending,
13480
+ isPostmounting,
13481
+ isPremounting,
13482
+ pauseWhenLoading
13483
+ ]);
13484
+ useLayoutEffect10(() => {
13450
13485
  const handle = delayRender2(`Rendering <CanvasImage> with src="${truncateSrcForLabel(actualSrc)}"`, {
13451
13486
  retries: delayRenderRetries ?? undefined,
13452
13487
  timeoutInMilliseconds: delayRenderTimeoutInMilliseconds ?? undefined
13453
13488
  });
13454
- const unblock = pauseWhenLoading && !isPremounting && !isPostmounting ? delayPlayback().unblock : () => {
13455
- return;
13456
- };
13457
13489
  const controller = new AbortController;
13458
13490
  let cancelled = false;
13459
13491
  let errorCount = 0;
13460
13492
  let timeoutId = null;
13461
13493
  setLoadedImage(null);
13494
+ setIsLoadPending(true);
13462
13495
  pendingLoadDelayRef.current = {
13463
13496
  handle,
13464
- unblock,
13465
13497
  continued: false
13466
13498
  };
13467
13499
  const attemptLoad = () => {
@@ -13472,7 +13504,7 @@ var CanvasImageContent = forwardRef10(({
13472
13504
  setLoadedImage(image);
13473
13505
  }).catch((err) => {
13474
13506
  if (err.name === "AbortError") {
13475
- continuePendingLoadDelay();
13507
+ continuePendingLoadDelay({ markAsReady: false });
13476
13508
  return;
13477
13509
  }
13478
13510
  errorCount++;
@@ -13486,7 +13518,7 @@ var CanvasImageContent = forwardRef10(({
13486
13518
  }, backoff);
13487
13519
  } else if (onError) {
13488
13520
  onError(err);
13489
- continuePendingLoadDelay();
13521
+ continuePendingLoadDelay({ markAsReady: true });
13490
13522
  } else {
13491
13523
  cancelRender2(err);
13492
13524
  }
@@ -13499,21 +13531,17 @@ var CanvasImageContent = forwardRef10(({
13499
13531
  clearTimeout(timeoutId);
13500
13532
  }
13501
13533
  controller.abort();
13502
- continuePendingLoadDelay();
13534
+ continuePendingLoadDelay({ markAsReady: false });
13503
13535
  };
13504
13536
  }, [
13505
13537
  actualSrc,
13506
13538
  cancelRender2,
13507
13539
  continuePendingLoadDelay,
13508
- delayPlayback,
13509
13540
  delayRender2,
13510
13541
  delayRenderRetries,
13511
13542
  delayRenderTimeoutInMilliseconds,
13512
13543
  maxRetries,
13513
- onError,
13514
- pauseWhenLoading,
13515
- sequenceContext?.postmounting,
13516
- sequenceContext?.premounting
13544
+ onError
13517
13545
  ]);
13518
13546
  useLayoutEffect10(() => {
13519
13547
  if (!loadedImage || !outputCanvas || !sourceCanvas) {
@@ -13565,7 +13593,7 @@ var CanvasImageContent = forwardRef10(({
13565
13593
  return;
13566
13594
  }
13567
13595
  continueRenderOnce();
13568
- continuePendingLoadDelay();
13596
+ continuePendingLoadDelay({ markAsReady: true });
13569
13597
  }
13570
13598
  });
13571
13599
  }
@@ -13576,7 +13604,7 @@ var CanvasImageContent = forwardRef10(({
13576
13604
  if (onError) {
13577
13605
  onError(err);
13578
13606
  continueRenderOnce();
13579
- continuePendingLoadDelay();
13607
+ continuePendingLoadDelay({ markAsReady: true });
13580
13608
  } else {
13581
13609
  cancelRender2(err);
13582
13610
  }
@@ -13747,6 +13775,7 @@ var ImgContent = ({
13747
13775
  const errors = useRef24({});
13748
13776
  const { delayPlayback } = useBufferState();
13749
13777
  const sequenceContext = useContext33(SequenceContext);
13778
+ const [isLoading, setIsLoading] = useState18(false);
13750
13779
  const _propsValid = true;
13751
13780
  if (!_propsValid) {
13752
13781
  throw new Error("typecheck error");
@@ -13779,6 +13808,8 @@ var ImgContent = ({
13779
13808
  }, timeout);
13780
13809
  }, []);
13781
13810
  const { delayRender: delayRender2, continueRender: continueRender2, cancelRender: cancelRender2 } = useDelayRender();
13811
+ const isPremounting = Boolean(sequenceContext?.premounting);
13812
+ const isPostmounting = Boolean(sequenceContext?.postmounting);
13782
13813
  const didGetError = useCallback19((e) => {
13783
13814
  if (!errors.current) {
13784
13815
  return;
@@ -13799,8 +13830,18 @@ var ImgContent = ({
13799
13830
  } catch {}
13800
13831
  }, [cancelRender2, maxRetries, onError, retryIn]);
13801
13832
  if (typeof window !== "undefined") {
13802
- const isPremounting = Boolean(sequenceContext?.premounting);
13803
- const isPostmounting = Boolean(sequenceContext?.postmounting);
13833
+ useLayoutEffect11(() => {
13834
+ if (!pauseWhenLoading || !isLoading || isPremounting || isPostmounting) {
13835
+ return;
13836
+ }
13837
+ return delayPlayback().unblock;
13838
+ }, [
13839
+ delayPlayback,
13840
+ isLoading,
13841
+ isPostmounting,
13842
+ isPremounting,
13843
+ pauseWhenLoading
13844
+ ]);
13804
13845
  useLayoutEffect11(() => {
13805
13846
  if (window.process?.env?.NODE_ENV === "test") {
13806
13847
  if (imageRef.current) {
@@ -13812,13 +13853,11 @@ var ImgContent = ({
13812
13853
  if (!current) {
13813
13854
  return;
13814
13855
  }
13856
+ setIsLoading(true);
13815
13857
  const newHandle = delayRender2("Loading <Img> with src=" + truncateSrcForLabel(actualSrc), {
13816
13858
  retries: delayRenderRetries ?? undefined,
13817
13859
  timeoutInMilliseconds: delayRenderTimeoutInMilliseconds ?? undefined
13818
13860
  });
13819
- const unblock = pauseWhenLoading && !isPremounting && !isPostmounting ? delayPlayback().unblock : () => {
13820
- return;
13821
- };
13822
13861
  let unmounted = false;
13823
13862
  const onComplete = () => {
13824
13863
  if (unmounted) {
@@ -13832,7 +13871,7 @@ var ImgContent = ({
13832
13871
  if (current) {
13833
13872
  onImageFrame?.(current);
13834
13873
  }
13835
- unblock();
13874
+ setIsLoading(false);
13836
13875
  continueRender2(newHandle);
13837
13876
  };
13838
13877
  if (!imageRef.current) {
@@ -13851,17 +13890,12 @@ var ImgContent = ({
13851
13890
  return () => {
13852
13891
  unmounted = true;
13853
13892
  current.removeEventListener("load", onComplete);
13854
- unblock();
13855
13893
  continueRender2(newHandle);
13856
13894
  };
13857
13895
  }, [
13858
13896
  actualSrc,
13859
- delayPlayback,
13860
13897
  delayRenderRetries,
13861
13898
  delayRenderTimeoutInMilliseconds,
13862
- pauseWhenLoading,
13863
- isPremounting,
13864
- isPostmounting,
13865
13899
  onImageFrame,
13866
13900
  continueRender2,
13867
13901
  delayRender2
@@ -14179,9 +14213,9 @@ var CompositionManagerProvider = ({
14179
14213
  initialCompositions,
14180
14214
  initialCanvasContent
14181
14215
  }) => {
14182
- const [folders, setFolders] = useState18([]);
14183
- const [canvasContent, setCanvasContent] = useState18(initialCanvasContent);
14184
- const [compositions, setCompositions] = useState18(initialCompositions);
14216
+ const [folders, setFolders] = useState19([]);
14217
+ const [canvasContent, setCanvasContent] = useState19(initialCanvasContent);
14218
+ const [compositions, setCompositions] = useState19(initialCompositions);
14185
14219
  const currentcompositionsRef = useRef26(compositions);
14186
14220
  const updateCompositions = useCallback21((updateComps) => {
14187
14221
  setCompositions((comps) => {
@@ -14752,7 +14786,7 @@ var OffthreadVideoForRendering = ({
14752
14786
  toneMapped
14753
14787
  });
14754
14788
  }, [toneMapped, currentTime, src, transparent]);
14755
- const [imageSrc, setImageSrc] = useState19(null);
14789
+ const [imageSrc, setImageSrc] = useState20(null);
14756
14790
  const { delayRender: delayRender2, continueRender: continueRender2 } = useDelayRender();
14757
14791
  useLayoutEffect12(() => {
14758
14792
  if (!window.remotion_videoEnabled) {
@@ -14956,7 +14990,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
14956
14990
  const parentSequence = useContext37(SequenceContext);
14957
14991
  const logLevel = useLogLevel();
14958
14992
  const mountTime = useMountTime();
14959
- const [timelineId] = useState20(() => String(Math.random()));
14993
+ const [timelineId] = useState21(() => String(Math.random()));
14960
14994
  if (typeof acceptableTimeShift !== "undefined") {
14961
14995
  throw new Error("acceptableTimeShift has been removed. Use acceptableTimeShiftInSeconds instead.");
14962
14996
  }
@@ -15027,7 +15061,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
15027
15061
  useImperativeHandle9(ref, () => {
15028
15062
  return videoRef.current;
15029
15063
  }, []);
15030
- useState20(() => playbackLogging({
15064
+ useState21(() => playbackLogging({
15031
15065
  logLevel,
15032
15066
  message: `Mounting video with source = ${actualSrc}, v=${VERSION}, user agent=${typeof navigator === "undefined" ? "server" : navigator.userAgent}`,
15033
15067
  tag: "video",
@@ -19522,7 +19556,7 @@ var getAngle = (ref, coordinates) => {
19522
19556
  };
19523
19557
  var lastCoordinates = null;
19524
19558
  var useMousePosition = (ref) => {
19525
- const [angle, setAngle] = useState21(getAngle(ref.current, lastCoordinates));
19559
+ const [angle, setAngle] = useState23(getAngle(ref.current, lastCoordinates));
19526
19560
  useEffect21(() => {
19527
19561
  const element = ref.current;
19528
19562
  if (!element) {
@@ -25822,10 +25856,10 @@ var Triangle22 = (props) => {
25822
25856
  };
25823
25857
 
25824
25858
  // src/components/design.tsx
25825
- import { useCallback as useCallback39, useState as useState39 } from "react";
25859
+ import { useCallback as useCallback39, useState as useState41 } from "react";
25826
25860
 
25827
25861
  // src/components/ManageTeamMembers.tsx
25828
- import React53, { useCallback as useCallback38, useState as useState38 } from "react";
25862
+ import React53, { useCallback as useCallback38, useState as useState40 } from "react";
25829
25863
  import { jsx as jsx45, jsxs as jsxs6, Fragment as Fragment9 } from "react/jsx-runtime";
25830
25864
  function generateId() {
25831
25865
  return Math.random().toString(36).substr(2, 9);
@@ -25869,7 +25903,7 @@ var Row = ({ value, onChange, onDelete, disableDelete }) => {
25869
25903
  });
25870
25904
  };
25871
25905
  var ManageTeamMembers = () => {
25872
- const [members, setMembers] = useState38(initialMembers);
25906
+ const [members, setMembers] = useState40(initialMembers);
25873
25907
  const displayedMembers = [...members, { id: "NEW", name: "" }];
25874
25908
  const updateMember = useCallback38((idx, value) => {
25875
25909
  if (idx === members.length) {
@@ -25883,7 +25917,7 @@ var ManageTeamMembers = () => {
25883
25917
  const deleteMember = useCallback38((idx) => {
25884
25918
  setMembers((prev) => prev.filter((_, i) => i !== idx));
25885
25919
  }, []);
25886
- const [loading, setLoading] = useState38(false);
25920
+ const [loading, setLoading] = useState40(false);
25887
25921
  const save = useCallback38(() => {
25888
25922
  setLoading(true);
25889
25923
  setTimeout(() => {
@@ -25939,10 +25973,10 @@ var Explainer = ({ children }) => {
25939
25973
  });
25940
25974
  };
25941
25975
  var DesignPage = () => {
25942
- const [count4, setCount] = useState39(10);
25943
- const [active, setActive] = useState39(false);
25944
- const [submitButtonActive, setSubmitButtonActive] = useState39(true);
25945
- const [submitButtonPrimaryActive, setSubmitButtonPrimaryActive] = useState39(true);
25976
+ const [count4, setCount] = useState41(10);
25977
+ const [active, setActive] = useState41(false);
25978
+ const [submitButtonActive, setSubmitButtonActive] = useState41(true);
25979
+ const [submitButtonPrimaryActive, setSubmitButtonPrimaryActive] = useState41(true);
25946
25980
  const onClick = useCallback39(() => {
25947
25981
  setSubmitButtonActive(false);
25948
25982
  setTimeout(() => {
@@ -25955,7 +25989,7 @@ var DesignPage = () => {
25955
25989
  setSubmitButtonPrimaryActive(true);
25956
25990
  }, 1000);
25957
25991
  }, []);
25958
- const [saving, setSaving] = useState39(false);
25992
+ const [saving, setSaving] = useState41(false);
25959
25993
  const save = useCallback39(() => {
25960
25994
  setSaving(true);
25961
25995
  setTimeout(() => {