@remotion/promo-pages 4.0.363 → 4.0.365

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 (107) hide show
  1. package/dist/Homepage.js +26 -27
  2. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/Homepage.js +26 -27
  3. package/package.json +10 -10
  4. package/.turbo/turbo-lint.log +0 -15
  5. package/.turbo/turbo-make.log +0 -5
  6. package/bundle.ts +0 -54
  7. package/eslint.config.mjs +0 -7
  8. package/server.ts +0 -26
  9. package/src/cn.ts +0 -6
  10. package/src/components/Homepage.tsx +0 -87
  11. package/src/components/TeamPicture.tsx +0 -11
  12. package/src/components/homepage/BackgroundAnimation.tsx +0 -108
  13. package/src/components/homepage/ChooseTemplate.tsx +0 -57
  14. package/src/components/homepage/CommunityStats.tsx +0 -54
  15. package/src/components/homepage/CommunityStatsItems.tsx +0 -304
  16. package/src/components/homepage/Counter.tsx +0 -120
  17. package/src/components/homepage/Demo/Card.tsx +0 -273
  18. package/src/components/homepage/Demo/Cards.tsx +0 -129
  19. package/src/components/homepage/Demo/Comp.tsx +0 -157
  20. package/src/components/homepage/Demo/CurrentCountry.tsx +0 -97
  21. package/src/components/homepage/Demo/DemoError.tsx +0 -18
  22. package/src/components/homepage/Demo/DemoErrorIcon.tsx +0 -32
  23. package/src/components/homepage/Demo/DemoRender.tsx +0 -166
  24. package/src/components/homepage/Demo/DigitWheel.tsx +0 -179
  25. package/src/components/homepage/Demo/DisplayedEmoji.tsx +0 -93
  26. package/src/components/homepage/Demo/DoneCheckmark.tsx +0 -39
  27. package/src/components/homepage/Demo/DownloadNudge.tsx +0 -62
  28. package/src/components/homepage/Demo/DragAndDropNudge.tsx +0 -57
  29. package/src/components/homepage/Demo/EmojiCard.tsx +0 -200
  30. package/src/components/homepage/Demo/Minus.tsx +0 -21
  31. package/src/components/homepage/Demo/PlayPauseButton.tsx +0 -66
  32. package/src/components/homepage/Demo/PlayerControls.tsx +0 -48
  33. package/src/components/homepage/Demo/PlayerSeekBar.tsx +0 -325
  34. package/src/components/homepage/Demo/PlayerVolume.tsx +0 -83
  35. package/src/components/homepage/Demo/Progress.tsx +0 -38
  36. package/src/components/homepage/Demo/Spinner.tsx +0 -60
  37. package/src/components/homepage/Demo/Switcher.tsx +0 -54
  38. package/src/components/homepage/Demo/Temperature.tsx +0 -44
  39. package/src/components/homepage/Demo/TemperatureNumber.tsx +0 -68
  40. package/src/components/homepage/Demo/ThemeNudge.tsx +0 -72
  41. package/src/components/homepage/Demo/TimeDisplay.tsx +0 -43
  42. package/src/components/homepage/Demo/TrendingRepos.tsx +0 -106
  43. package/src/components/homepage/Demo/icons.tsx +0 -114
  44. package/src/components/homepage/Demo/index.tsx +0 -158
  45. package/src/components/homepage/Demo/math.ts +0 -43
  46. package/src/components/homepage/Demo/types.ts +0 -6
  47. package/src/components/homepage/EditorStarterSection.tsx +0 -76
  48. package/src/components/homepage/EvaluateRemotion.tsx +0 -92
  49. package/src/components/homepage/FreePricing.tsx +0 -283
  50. package/src/components/homepage/GetStartedStrip.tsx +0 -77
  51. package/src/components/homepage/GitHubButton.tsx +0 -23
  52. package/src/components/homepage/IconForTemplate.tsx +0 -170
  53. package/src/components/homepage/IfYouKnowReact.tsx +0 -68
  54. package/src/components/homepage/InfoTooltip.tsx +0 -25
  55. package/src/components/homepage/MoreTemplatesButton.tsx +0 -29
  56. package/src/components/homepage/MoreVideoPowerSection.tsx +0 -95
  57. package/src/components/homepage/MuxVideo.tsx +0 -68
  58. package/src/components/homepage/NewsletterButton.tsx +0 -89
  59. package/src/components/homepage/ParameterizeAndEdit.tsx +0 -106
  60. package/src/components/homepage/Pricing.tsx +0 -49
  61. package/src/components/homepage/PricingBulletPoint.tsx +0 -50
  62. package/src/components/homepage/RealMp4Videos.tsx +0 -108
  63. package/src/components/homepage/Spacer.tsx +0 -5
  64. package/src/components/homepage/TemplateIcon.tsx +0 -36
  65. package/src/components/homepage/TextInput.tsx +0 -62
  66. package/src/components/homepage/TrustedByBanner.tsx +0 -145
  67. package/src/components/homepage/VideoApps.tsx +0 -231
  68. package/src/components/homepage/VideoAppsShowcase.tsx +0 -270
  69. package/src/components/homepage/VideoAppsTitle.tsx +0 -11
  70. package/src/components/homepage/VideoPlayerWithControls.tsx +0 -189
  71. package/src/components/homepage/WriteInReact.tsx +0 -34
  72. package/src/components/homepage/YouAreHere.tsx +0 -30
  73. package/src/components/homepage/layout/Button.tsx +0 -93
  74. package/src/components/homepage/layout/colors.ts +0 -17
  75. package/src/components/homepage/layout/use-color-mode.tsx +0 -44
  76. package/src/components/homepage/layout/use-el-size.ts +0 -51
  77. package/src/components/homepage/layout/use-mobile-layout.ts +0 -8
  78. package/src/components/homepage/video-player.css +0 -24
  79. package/src/components/icons/blank.tsx +0 -13
  80. package/src/components/icons/clone.tsx +0 -10
  81. package/src/components/icons/code-hike.tsx +0 -15
  82. package/src/components/icons/cubes.tsx +0 -13
  83. package/src/components/icons/js.tsx +0 -17
  84. package/src/components/icons/music.tsx +0 -9
  85. package/src/components/icons/next.tsx +0 -64
  86. package/src/components/icons/overlay.tsx +0 -24
  87. package/src/components/icons/recorder.tsx +0 -23
  88. package/src/components/icons/remix.tsx +0 -27
  89. package/src/components/icons/skia.tsx +0 -13
  90. package/src/components/icons/stargazer.tsx +0 -13
  91. package/src/components/icons/still.tsx +0 -13
  92. package/src/components/icons/tailwind.tsx +0 -22
  93. package/src/components/icons/tiktok.tsx +0 -13
  94. package/src/components/icons/ts.tsx +0 -18
  95. package/src/components/icons/tts.tsx +0 -13
  96. package/src/components/icons/undo.tsx +0 -11
  97. package/src/components/icons/waveform.tsx +0 -13
  98. package/src/components/team/TeamCards.tsx +0 -167
  99. package/src/components/team/TitleTeamCards.tsx +0 -22
  100. package/src/components/team.css +0 -22
  101. package/src/components/team.tsx +0 -51
  102. package/src/fonts.css +0 -30
  103. package/src/index.css +0 -140
  104. package/src/main.tsx +0 -12
  105. package/src/team.tsx +0 -12
  106. package/tsconfig.json +0 -11
  107. package/vite.config.ts +0 -9
package/dist/Homepage.js CHANGED
@@ -745,7 +745,7 @@ var __defProp2, __export2 = (target, all) => {
745
745
  });
746
746
  }, useIsPlayer = () => {
747
747
  return useContext(IsPlayerContext);
748
- }, VERSION = "4.0.363", checkMultipleRemotionVersions = () => {
748
+ }, VERSION = "4.0.365", checkMultipleRemotionVersions = () => {
749
749
  if (typeof globalThis === "undefined") {
750
750
  return;
751
751
  }
@@ -1674,12 +1674,15 @@ Check that all your Remotion packages are on the same version. If your dependenc
1674
1674
  if (!sequenceContext) {
1675
1675
  return null;
1676
1676
  }
1677
+ if (!isActive) {
1678
+ return sequenceContext;
1679
+ }
1677
1680
  return {
1678
1681
  ...sequenceContext,
1679
1682
  relativeFrom: 0,
1680
1683
  cumulatedFrom: 0
1681
1684
  };
1682
- }, [sequenceContext]);
1685
+ }, [sequenceContext, isActive]);
1683
1686
  return /* @__PURE__ */ jsx72(TimelineContext.Provider, {
1684
1687
  value: timelineValue,
1685
1688
  children: /* @__PURE__ */ jsx72(SequenceContext.Provider, {
@@ -2717,7 +2720,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
2717
2720
  throw new TypeError(`trimAfter must be a positive number, instead got ${trimAfter}.`);
2718
2721
  }
2719
2722
  }
2720
- if (trimAfter < trimBefore) {
2723
+ if (trimAfter <= trimBefore) {
2721
2724
  throw new TypeError("trimAfter prop must be greater than trimBefore prop.");
2722
2725
  }
2723
2726
  }, validateMediaTrimProps = ({
@@ -5033,27 +5036,21 @@ Check that all your Remotion packages are on the same version. If your dependenc
5033
5036
  onImageFrame?.(current);
5034
5037
  }
5035
5038
  unblock();
5036
- requestAnimationFrame(() => {
5037
- continueRender2(newHandle);
5038
- });
5039
+ continueRender2(newHandle);
5039
5040
  };
5040
5041
  if (!imageRef.current) {
5041
5042
  onComplete();
5042
5043
  return;
5043
5044
  }
5044
5045
  current.src = actualSrc;
5045
- if (current.complete) {
5046
- onComplete();
5047
- } else {
5048
- current.decode().then(onComplete).catch((err) => {
5049
- console.warn(err);
5050
- if (current.complete) {
5051
- onComplete();
5052
- } else {
5053
- current.addEventListener("load", onComplete);
5054
- }
5055
- });
5056
- }
5046
+ current.decode().then(onComplete).catch((err) => {
5047
+ console.warn(err);
5048
+ if (current.complete) {
5049
+ onComplete();
5050
+ } else {
5051
+ current.addEventListener("load", onComplete);
5052
+ }
5053
+ });
5057
5054
  return () => {
5058
5055
  unmounted = true;
5059
5056
  current.removeEventListener("load", onComplete);
@@ -5081,7 +5078,8 @@ Check that all your Remotion packages are on the same version. If your dependenc
5081
5078
  ...props2,
5082
5079
  ref: imageRef,
5083
5080
  crossOrigin: crossOriginValue,
5084
- onError: didGetError
5081
+ onError: didGetError,
5082
+ decoding: "sync"
5085
5083
  });
5086
5084
  }, Img, compositionsRef, CompositionManagerProvider = ({
5087
5085
  children,
@@ -6832,12 +6830,12 @@ var init_esm = __esm(() => {
6832
6830
  warn,
6833
6831
  error
6834
6832
  };
6835
- if (typeof window !== "undefined") {
6836
- window.remotion_renderReady = false;
6837
- }
6838
6833
  handles = [];
6839
6834
  if (typeof window !== "undefined") {
6840
- window.remotion_delayRenderTimeouts = {};
6835
+ window.remotion_renderReady = false;
6836
+ if (!window.remotion_delayRenderTimeouts) {
6837
+ window.remotion_delayRenderTimeouts = {};
6838
+ }
6841
6839
  }
6842
6840
  Canvas = React9.forwardRef(CanvasRefForwardingFunction);
6843
6841
  AnimatedImage = forwardRef3(({
@@ -7121,7 +7119,8 @@ var init_esm = __esm(() => {
7121
7119
  getInputPropsOverride,
7122
7120
  setInputPropsOverride,
7123
7121
  useVideoEnabled,
7124
- useAudioEnabled
7122
+ useAudioEnabled,
7123
+ useIsPlayerBuffering
7125
7124
  };
7126
7125
  PERCENTAGE = NUMBER + "%";
7127
7126
  IsInsideSeriesContext = createContext20(false);
@@ -12434,9 +12433,9 @@ function truthy2(value) {
12434
12433
  }
12435
12434
  if (typeof window !== "undefined") {
12436
12435
  window.remotion_renderReady = false;
12437
- }
12438
- if (typeof window !== "undefined") {
12439
- window.remotion_delayRenderTimeouts = {};
12436
+ if (!window.remotion_delayRenderTimeouts) {
12437
+ window.remotion_delayRenderTimeouts = {};
12438
+ }
12440
12439
  }
12441
12440
  var DELAY_RENDER_CALLSTACK_TOKEN2 = "The delayRender was called:";
12442
12441
  var DELAY_RENDER_RETRIES_LEFT2 = "Retries left: ";
@@ -745,7 +745,7 @@ var __defProp2, __export2 = (target, all) => {
745
745
  });
746
746
  }, useIsPlayer = () => {
747
747
  return useContext(IsPlayerContext);
748
- }, VERSION = "4.0.363", checkMultipleRemotionVersions = () => {
748
+ }, VERSION = "4.0.365", checkMultipleRemotionVersions = () => {
749
749
  if (typeof globalThis === "undefined") {
750
750
  return;
751
751
  }
@@ -1674,12 +1674,15 @@ Check that all your Remotion packages are on the same version. If your dependenc
1674
1674
  if (!sequenceContext) {
1675
1675
  return null;
1676
1676
  }
1677
+ if (!isActive) {
1678
+ return sequenceContext;
1679
+ }
1677
1680
  return {
1678
1681
  ...sequenceContext,
1679
1682
  relativeFrom: 0,
1680
1683
  cumulatedFrom: 0
1681
1684
  };
1682
- }, [sequenceContext]);
1685
+ }, [sequenceContext, isActive]);
1683
1686
  return /* @__PURE__ */ jsx72(TimelineContext.Provider, {
1684
1687
  value: timelineValue,
1685
1688
  children: /* @__PURE__ */ jsx72(SequenceContext.Provider, {
@@ -2717,7 +2720,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
2717
2720
  throw new TypeError(`trimAfter must be a positive number, instead got ${trimAfter}.`);
2718
2721
  }
2719
2722
  }
2720
- if (trimAfter < trimBefore) {
2723
+ if (trimAfter <= trimBefore) {
2721
2724
  throw new TypeError("trimAfter prop must be greater than trimBefore prop.");
2722
2725
  }
2723
2726
  }, validateMediaTrimProps = ({
@@ -5033,27 +5036,21 @@ Check that all your Remotion packages are on the same version. If your dependenc
5033
5036
  onImageFrame?.(current);
5034
5037
  }
5035
5038
  unblock();
5036
- requestAnimationFrame(() => {
5037
- continueRender2(newHandle);
5038
- });
5039
+ continueRender2(newHandle);
5039
5040
  };
5040
5041
  if (!imageRef.current) {
5041
5042
  onComplete();
5042
5043
  return;
5043
5044
  }
5044
5045
  current.src = actualSrc;
5045
- if (current.complete) {
5046
- onComplete();
5047
- } else {
5048
- current.decode().then(onComplete).catch((err) => {
5049
- console.warn(err);
5050
- if (current.complete) {
5051
- onComplete();
5052
- } else {
5053
- current.addEventListener("load", onComplete);
5054
- }
5055
- });
5056
- }
5046
+ current.decode().then(onComplete).catch((err) => {
5047
+ console.warn(err);
5048
+ if (current.complete) {
5049
+ onComplete();
5050
+ } else {
5051
+ current.addEventListener("load", onComplete);
5052
+ }
5053
+ });
5057
5054
  return () => {
5058
5055
  unmounted = true;
5059
5056
  current.removeEventListener("load", onComplete);
@@ -5081,7 +5078,8 @@ Check that all your Remotion packages are on the same version. If your dependenc
5081
5078
  ...props2,
5082
5079
  ref: imageRef,
5083
5080
  crossOrigin: crossOriginValue,
5084
- onError: didGetError
5081
+ onError: didGetError,
5082
+ decoding: "sync"
5085
5083
  });
5086
5084
  }, Img, compositionsRef, CompositionManagerProvider = ({
5087
5085
  children,
@@ -6832,12 +6830,12 @@ var init_esm = __esm(() => {
6832
6830
  warn,
6833
6831
  error
6834
6832
  };
6835
- if (typeof window !== "undefined") {
6836
- window.remotion_renderReady = false;
6837
- }
6838
6833
  handles = [];
6839
6834
  if (typeof window !== "undefined") {
6840
- window.remotion_delayRenderTimeouts = {};
6835
+ window.remotion_renderReady = false;
6836
+ if (!window.remotion_delayRenderTimeouts) {
6837
+ window.remotion_delayRenderTimeouts = {};
6838
+ }
6841
6839
  }
6842
6840
  Canvas = React9.forwardRef(CanvasRefForwardingFunction);
6843
6841
  AnimatedImage = forwardRef3(({
@@ -7121,7 +7119,8 @@ var init_esm = __esm(() => {
7121
7119
  getInputPropsOverride,
7122
7120
  setInputPropsOverride,
7123
7121
  useVideoEnabled,
7124
- useAudioEnabled
7122
+ useAudioEnabled,
7123
+ useIsPlayerBuffering
7125
7124
  };
7126
7125
  PERCENTAGE = NUMBER + "%";
7127
7126
  IsInsideSeriesContext = createContext20(false);
@@ -12434,9 +12433,9 @@ function truthy2(value) {
12434
12433
  }
12435
12434
  if (typeof window !== "undefined") {
12436
12435
  window.remotion_renderReady = false;
12437
- }
12438
- if (typeof window !== "undefined") {
12439
- window.remotion_delayRenderTimeouts = {};
12436
+ if (!window.remotion_delayRenderTimeouts) {
12437
+ window.remotion_delayRenderTimeouts = {};
12438
+ }
12440
12439
  }
12441
12440
  var DELAY_RENDER_CALLSTACK_TOKEN2 = "The delayRender was called:";
12442
12441
  var DELAY_RENDER_RETRIES_LEFT2 = "Retries left: ";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remotion/promo-pages",
3
- "version": "4.0.363",
3
+ "version": "4.0.365",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -11,21 +11,21 @@
11
11
  },
12
12
  "type": "module",
13
13
  "dependencies": {
14
- "@remotion/animated-emoji": "4.0.363",
15
- "@remotion/lambda": "4.0.363",
16
- "@remotion/lottie": "4.0.363",
17
- "@remotion/paths": "4.0.363",
18
- "@remotion/player": "4.0.363",
19
- "@remotion/shapes": "4.0.363",
20
- "create-video": "4.0.363",
14
+ "@remotion/animated-emoji": "4.0.365",
15
+ "@remotion/lambda": "4.0.365",
16
+ "@remotion/lottie": "4.0.365",
17
+ "@remotion/paths": "4.0.365",
18
+ "@remotion/player": "4.0.365",
19
+ "@remotion/shapes": "4.0.365",
20
+ "create-video": "4.0.365",
21
21
  "hls.js": "1.5.19",
22
22
  "polished": "4.3.1",
23
- "remotion": "4.0.363",
23
+ "remotion": "4.0.365",
24
24
  "zod": "3.22.3",
25
25
  "bun-plugin-tailwind": "0.0.15"
26
26
  },
27
27
  "devDependencies": {
28
- "@remotion/eslint-config-internal": "4.0.363",
28
+ "@remotion/eslint-config-internal": "4.0.365",
29
29
  "@eslint/eslintrc": "3.1.0",
30
30
  "@types/react": "19.0.0",
31
31
  "@types/react-dom": "19.0.0",
@@ -1,15 +0,0 @@
1
-
2
- $ tsc && eslint src
3
- =============
4
-
5
- WARNING: You are currently running a version of TypeScript which is not officially supported by @typescript-eslint/typescript-estree.
6
-
7
- You may find that it works just fine, or you may not.
8
-
9
- SUPPORTED TYPESCRIPT VERSIONS: >=4.7.4 <5.7.0
10
-
11
- YOUR TYPESCRIPT VERSION: 5.8.2
12
-
13
- Please only submit bug reports when using the officially supported version.
14
-
15
- =============
@@ -1,5 +0,0 @@
1
-
2
- $ bun --env-file=../.env.bundle bundle.ts
3
- ≈ tailwindcss v4.1.1
4
-
5
- Done in 27ms
package/bundle.ts DELETED
@@ -1,54 +0,0 @@
1
- import {$, build} from 'bun';
2
-
3
- import {NoReactInternals} from 'remotion/no-react';
4
-
5
- if (process.env.NODE_ENV !== 'production') {
6
- throw new Error('This script must be run using NODE_ENV=production');
7
- }
8
-
9
- const nodeVersion =
10
- await $`node -e "console.log(typeof structuredClone)"`.text();
11
- if (nodeVersion.trim() === 'undefined') {
12
- if (NoReactInternals.ENABLE_V5_BREAKING_CHANGES) {
13
- throw new Error(
14
- 'Error: You are using Node.js without structuredClone. Please upgrade to Node.js 17 or newer.',
15
- );
16
- } else {
17
- console.log(
18
- 'Node does not have structuredClone. Passing because we are not building the site.',
19
- );
20
- process.exit(0);
21
- }
22
- }
23
-
24
- await $`bunx tailwindcss -i src/index.css -o dist/tailwind.css`;
25
-
26
- const result = await build({
27
- entrypoints: [
28
- './src/components/Homepage.tsx',
29
- './src/components/homepage/Pricing.tsx',
30
- './src/components/team.tsx',
31
- ],
32
- outdir: 'dist',
33
- format: 'esm',
34
- external: [
35
- 'react',
36
- 'react/jsx-runtime',
37
- 'react-dom',
38
- 'lottie-web',
39
- 'hls.js',
40
- 'plyr',
41
- 'zod',
42
- ],
43
- });
44
-
45
- if (!result.success) {
46
- console.log(result.logs.join('\n'));
47
- process.exit(1);
48
- }
49
-
50
- for (const output of result.outputs) {
51
- await Bun.write('dist/' + output.path, await output.text());
52
- }
53
-
54
- export {};
package/eslint.config.mjs DELETED
@@ -1,7 +0,0 @@
1
- import {remotionFlatConfig} from '@remotion/eslint-config-internal';
2
-
3
- const config = remotionFlatConfig({react: true});
4
-
5
- export default {
6
- ...config,
7
- };
package/server.ts DELETED
@@ -1,26 +0,0 @@
1
- import {serve} from 'bun';
2
- import homepage from './homepage.html';
3
- import team from './team.html';
4
-
5
- const server = serve({
6
- routes: {
7
- '/': homepage,
8
- '/about': team,
9
- },
10
- development: true,
11
- async fetch(req) {
12
- try {
13
- const url = new URL(req.url);
14
- const file = Bun.file(`./public${url.pathname}`);
15
- const exists = await file.exists();
16
- if (!exists) {
17
- return new Response('Not Found', {status: 404});
18
- }
19
- return new Response(file);
20
- } catch (e) {
21
- return new Response('Server Error', {status: 500});
22
- }
23
- },
24
- });
25
-
26
- console.log(`Listening on ${server.url}`);
package/src/cn.ts DELETED
@@ -1,6 +0,0 @@
1
- import {clsx, type ClassValue} from 'clsx';
2
- import {twMerge} from 'tailwind-merge';
3
-
4
- export function cn(...inputs: ClassValue[]) {
5
- return twMerge(clsx(inputs));
6
- }
@@ -1,87 +0,0 @@
1
- 'use client';
2
-
3
- import React from 'react';
4
- import {BackgroundAnimation} from './homepage/BackgroundAnimation';
5
- import CommunityStats from './homepage/CommunityStats';
6
- import {Demo} from './homepage/Demo';
7
- import EditorStarterSection from './homepage/EditorStarterSection';
8
- import EvaluateRemotionSection from './homepage/EvaluateRemotion';
9
- import {IfYouKnowReact} from './homepage/IfYouKnowReact';
10
- import type {ColorMode} from './homepage/layout/use-color-mode';
11
- import {ColorModeProvider} from './homepage/layout/use-color-mode';
12
- import {MoreVideoPowerSection} from './homepage/MoreVideoPowerSection';
13
- import {NewsletterButton} from './homepage/NewsletterButton';
14
- import {ParameterizeAndEdit} from './homepage/ParameterizeAndEdit';
15
- import {Pricing} from './homepage/Pricing';
16
- import {RealMP4Videos} from './homepage/RealMp4Videos';
17
- import TrustedByBanner from './homepage/TrustedByBanner';
18
- import VideoAppsShowcase from './homepage/VideoAppsShowcase';
19
- import {SectionTitle} from './homepage/VideoAppsTitle';
20
- import {WriteInReact} from './homepage/WriteInReact';
21
-
22
- export const NewLanding: React.FC<{
23
- readonly colorMode: ColorMode;
24
- readonly setColorMode: (colorMode: ColorMode) => void;
25
- }> = ({colorMode, setColorMode}) => {
26
- return (
27
- <ColorModeProvider colorMode={colorMode} setColorMode={setColorMode}>
28
- <div className="bg-[var(--background)] relative">
29
- <div style={{overflow: 'hidden'}}>
30
- <div>
31
- <BackgroundAnimation />
32
- </div>
33
- <br />
34
- <br />
35
- <br />
36
- <br />
37
- <div className="max-w-[500px] lg:max-w-[1000px] m-auto pl-5 pr-5 overflow-x-clip md:overflow-x-visible relative">
38
- <WriteInReact />
39
- <br />
40
- <IfYouKnowReact />
41
- <ParameterizeAndEdit />
42
- <RealMP4Videos />
43
- <br />
44
- <br />
45
- <br />
46
- <VideoAppsShowcase />
47
- <br />
48
- <br />
49
- <Demo />
50
- <br />
51
- <br />
52
- <br />
53
- <SectionTitle>Pricing</SectionTitle>
54
- <Pricing />
55
- <TrustedByBanner />
56
- <br />
57
- <EvaluateRemotionSection />
58
- <br />
59
- <br />
60
- <br />
61
- <CommunityStats />
62
- <br />
63
- <br />
64
- <br />
65
- <EditorStarterSection />
66
- <br />
67
- <br />
68
- <br />
69
-
70
- <SectionTitle>Even more power to developers</SectionTitle>
71
- <div className={'fontbrand text-center mb-10 -mt-4'}>
72
- Innovative video products that you might enjoy.
73
- </div>
74
- <MoreVideoPowerSection />
75
- <br />
76
- <br />
77
- <br />
78
- <NewsletterButton />
79
- <br />
80
- <br />
81
- <br />
82
- </div>
83
- </div>
84
- </div>
85
- </ColorModeProvider>
86
- );
87
- };
@@ -1,11 +0,0 @@
1
- export const TeamPicture = () => {
2
- return (
3
- <div className="border-effect overflow-hidden mb-10 lg:mb-4">
4
- <img
5
- src="/img/team/team.jpeg"
6
- style={{aspectRatio: '1024 / 616'}}
7
- className="w-full mb-0 float-left "
8
- />
9
- </div>
10
- );
11
- };
@@ -1,108 +0,0 @@
1
- 'use client';
2
-
3
- import {getLength} from '@remotion/paths';
4
- import React, {useEffect} from 'react';
5
-
6
- const rx = 0.2;
7
- const ry = 0.45;
8
-
9
- function ellipseToPath(cx: number, cy: number): string {
10
- let output = 'M' + (cx - rx).toString() + ',' + cy.toString();
11
- output +=
12
- 'a' +
13
- rx.toString() +
14
- ',' +
15
- ry.toString() +
16
- ' 0 1,0 ' +
17
- (2 * rx).toString() +
18
- ',0';
19
- output +=
20
- 'a' +
21
- rx.toString() +
22
- ',' +
23
- ry.toString() +
24
- ' 0 1,0 ' +
25
- (-2 * rx).toString() +
26
- ',0';
27
- return output;
28
- }
29
-
30
- const strokeWidth = 0.035;
31
-
32
- export const BackgroundAnimation: React.FC = () => {
33
- const d = ellipseToPath(0.5, 0.5);
34
- const length = getLength(d);
35
-
36
- const css = `
37
- @keyframes bganimation {
38
- from {
39
- stroke-dashoffset: 0
40
- }
41
-
42
- to {
43
- stroke-dashoffset: ${length};
44
- }
45
- }
46
- `;
47
-
48
- useEffect(() => {
49
- const _style = document.createElement('style');
50
- _style.innerHTML = css;
51
- document.head.appendChild(_style);
52
- }, [css]);
53
-
54
- return (
55
- <div className=" w-full h-full min-w-0 m-auto lg:relative lg:min-w-[700px] lg:max-w-[1200px] lg:ml-auto lg:left-auto pointer-events-none">
56
- <svg
57
- className="translate-y-[-30%] lg:translate-y-[-50%]"
58
- viewBox="0 0 1 1"
59
- style={{
60
- width: '100%',
61
- position: 'absolute',
62
- }}
63
- >
64
- <path
65
- d={d}
66
- fill="none"
67
- stroke="var(--ifm-color-primary)"
68
- strokeLinecap="round"
69
- className="stroke-[0.04] lg:stroke-[0.035]"
70
- style={{
71
- transformOrigin: 'center center',
72
- transform: `rotate(120deg)`,
73
- animation: `bganimation 20s linear infinite`,
74
- strokeDasharray: `${length * 0.2} ${length * 0.8}`,
75
- }}
76
- />
77
- <path
78
- d={d}
79
- fill="none"
80
- stroke="var(--ifm-color-primary)"
81
- strokeLinecap="round"
82
- strokeWidth={strokeWidth}
83
- className="stroke-[0.04] lg:stroke-[0.035]"
84
- style={{
85
- transformOrigin: 'center center',
86
- transform: `rotate(0deg)`,
87
- animation: `bganimation 20s linear infinite`,
88
- strokeDasharray: `${length * 0.2} ${length * 0.8}`,
89
- }}
90
- />
91
- <path
92
- d={d}
93
- fill="none"
94
- stroke="var(--ifm-color-primary)"
95
- strokeLinecap="round"
96
- strokeWidth={strokeWidth}
97
- className="stroke-[0.04] lg:stroke-[0.035]"
98
- style={{
99
- transformOrigin: 'center center',
100
- transform: `rotate(240deg)`,
101
- animation: `bganimation 20s linear infinite`,
102
- strokeDasharray: `${length * 0.2} ${length * 0.8}`,
103
- }}
104
- />
105
- </svg>
106
- </div>
107
- );
108
- };
@@ -1,57 +0,0 @@
1
- import {CreateVideoInternals} from 'create-video';
2
- import React from 'react';
3
-
4
- import {IconForTemplate} from './IconForTemplate';
5
- import {MoreTemplatesButton} from './MoreTemplatesButton';
6
- import {TemplateIcon} from './TemplateIcon';
7
-
8
- export const ChooseTemplate: React.FC = () => {
9
- return (
10
- <div
11
- style={{
12
- display: 'flex',
13
- flexDirection: 'column',
14
- }}
15
- >
16
- <div
17
- style={{
18
- position: 'relative',
19
- textAlign: 'center',
20
- }}
21
- >
22
- <div
23
- className="no-scroll-bar"
24
- style={{
25
- backgroundColor: 'var(--plain-button)',
26
- display: 'inline-flex',
27
- flexDirection: 'row',
28
- justifyContent: 'space-around',
29
- boxShadow: '0 0 4px 0px var(--ifm-color-emphasis-200)',
30
- borderRadius: 50,
31
- alignItems: 'center',
32
- padding: 8,
33
- width: '100%',
34
- maxWidth: '550px',
35
- }}
36
- >
37
- {CreateVideoInternals.FEATURED_TEMPLATES.filter(
38
- (f) => f.featuredOnHomePage,
39
- ).map((template) => {
40
- return (
41
- <a
42
- key={template.cliId}
43
- className="text-inherit no-underline"
44
- href={`/templates/${template.cliId}`}
45
- >
46
- <TemplateIcon label={template.featuredOnHomePage!}>
47
- <IconForTemplate scale={0.7} template={template} />
48
- </TemplateIcon>
49
- </a>
50
- );
51
- })}
52
- <MoreTemplatesButton />
53
- </div>
54
- </div>
55
- </div>
56
- );
57
- };