@remotion/promo-pages 4.0.364 → 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 +7 -3
  2. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/Homepage.js +7 -3
  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.364", 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, {
@@ -7116,7 +7119,8 @@ var init_esm = __esm(() => {
7116
7119
  getInputPropsOverride,
7117
7120
  setInputPropsOverride,
7118
7121
  useVideoEnabled,
7119
- useAudioEnabled
7122
+ useAudioEnabled,
7123
+ useIsPlayerBuffering
7120
7124
  };
7121
7125
  PERCENTAGE = NUMBER + "%";
7122
7126
  IsInsideSeriesContext = createContext20(false);
@@ -745,7 +745,7 @@ var __defProp2, __export2 = (target, all) => {
745
745
  });
746
746
  }, useIsPlayer = () => {
747
747
  return useContext(IsPlayerContext);
748
- }, VERSION = "4.0.364", 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, {
@@ -7116,7 +7119,8 @@ var init_esm = __esm(() => {
7116
7119
  getInputPropsOverride,
7117
7120
  setInputPropsOverride,
7118
7121
  useVideoEnabled,
7119
- useAudioEnabled
7122
+ useAudioEnabled,
7123
+ useIsPlayerBuffering
7120
7124
  };
7121
7125
  PERCENTAGE = NUMBER + "%";
7122
7126
  IsInsideSeriesContext = createContext20(false);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remotion/promo-pages",
3
- "version": "4.0.364",
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.364",
15
- "@remotion/lambda": "4.0.364",
16
- "@remotion/lottie": "4.0.364",
17
- "@remotion/paths": "4.0.364",
18
- "@remotion/player": "4.0.364",
19
- "@remotion/shapes": "4.0.364",
20
- "create-video": "4.0.364",
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.364",
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.364",
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 28ms
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
- };
@@ -1,54 +0,0 @@
1
- import React from 'react';
2
- import {
3
- Contributors,
4
- DiscordMembers,
5
- GitHubStars,
6
- InstallsPerMonth,
7
- PagesOfDocs,
8
- TemplatesAndExamples,
9
- } from './CommunityStatsItems';
10
- import {SectionTitle} from './VideoAppsTitle';
11
-
12
- const SectionLink: React.FC<{
13
- readonly href: string;
14
- readonly children: React.ReactNode;
15
- }> = ({href, children}) => (
16
- <a
17
- target="_blank"
18
- href={href}
19
- className={'no-underline text-inherit contents'}
20
- >
21
- {children}
22
- </a>
23
- );
24
-
25
- const CommunityStats: React.FC = () => (
26
- <div className={'m-auto max-w-[700px] text-center'}>
27
- <SectionTitle>Never build alone</SectionTitle>
28
- <div className={'fontbrand text-center mb-10 -mt-4'}>
29
- Join a thriving community of developers.
30
- </div>
31
- <div className={'flex flex-wrap justify-between gap-4 w-full items-center'}>
32
- <SectionLink href="https://www.npmjs.com/package/remotion">
33
- <InstallsPerMonth />
34
- </SectionLink>
35
- <SectionLink href="https://www.remotion.dev/docs/">
36
- <PagesOfDocs />
37
- </SectionLink>
38
- <SectionLink href="https://www.remotion.dev/templates">
39
- <TemplatesAndExamples />
40
- </SectionLink>
41
- <SectionLink href="https://github.com/remotion-dev/remotion">
42
- <GitHubStars />
43
- </SectionLink>
44
- <SectionLink href="https://remotion.dev/discord">
45
- <DiscordMembers />
46
- </SectionLink>
47
- <SectionLink href="https://github.com/remotion-dev/remotion/graphs/contributors">
48
- <Contributors />
49
- </SectionLink>
50
- </div>
51
- </div>
52
- );
53
-
54
- export default CommunityStats;