@remotion/promo-pages 4.0.369 → 4.0.371

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 (205) hide show
  1. package/dist/Homepage.js +6258 -3166
  2. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/Homepage.js +6258 -3166
  3. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/design.js +13314 -0
  4. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/homepage/Pricing.js +13422 -402
  5. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/template-modal-content.css +32 -0
  6. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/template-modal-content.js +15290 -0
  7. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/templates.css +43 -0
  8. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/templates.js +14501 -0
  9. package/dist/design.js +13314 -0
  10. package/dist/homepage/Pricing.js +13422 -402
  11. package/dist/tailwind.css +151 -76
  12. package/dist/template-modal-content.css +32 -0
  13. package/dist/template-modal-content.js +15290 -0
  14. package/dist/templates.css +43 -0
  15. package/dist/templates.js +14501 -0
  16. package/package.json +13 -12
  17. package/public/img/freelancers/andrei.png +0 -0
  18. package/dist/cn.d.ts +0 -2
  19. package/dist/cn.js +0 -5
  20. package/dist/components/Homepage.d.ts +0 -6
  21. package/dist/components/Homepage.js +0 -21
  22. package/dist/components/TeamPicture.d.ts +0 -1
  23. package/dist/components/TeamPicture.js +0 -4
  24. package/dist/components/homepage/BackgroundAnimation.d.ts +0 -2
  25. package/dist/components/homepage/BackgroundAnimation.js +0 -66
  26. package/dist/components/homepage/ChooseTemplate.d.ts +0 -2
  27. package/dist/components/homepage/ChooseTemplate.js +0 -27
  28. package/dist/components/homepage/CommunityStats.d.ts +0 -3
  29. package/dist/components/homepage/CommunityStats.js +0 -6
  30. package/dist/components/homepage/CommunityStatsItems.d.ts +0 -7
  31. package/dist/components/homepage/CommunityStatsItems.js +0 -58
  32. package/dist/components/homepage/Counter.d.ts +0 -9
  33. package/dist/components/homepage/Counter.js +0 -55
  34. package/dist/components/homepage/Demo/Card.d.ts +0 -15
  35. package/dist/components/homepage/Demo/Card.js +0 -174
  36. package/dist/components/homepage/Demo/Cards.d.ts +0 -15
  37. package/dist/components/homepage/Demo/Cards.js +0 -57
  38. package/dist/components/homepage/Demo/Comp.d.ts +0 -38
  39. package/dist/components/homepage/Demo/Comp.js +0 -71
  40. package/dist/components/homepage/Demo/CurrentCountry.d.ts +0 -9
  41. package/dist/components/homepage/Demo/CurrentCountry.js +0 -48
  42. package/dist/components/homepage/Demo/DemoError.d.ts +0 -2
  43. package/dist/components/homepage/Demo/DemoError.js +0 -10
  44. package/dist/components/homepage/Demo/DemoErrorIcon.d.ts +0 -2
  45. package/dist/components/homepage/Demo/DemoErrorIcon.js +0 -16
  46. package/dist/components/homepage/Demo/DemoRender.d.ts +0 -102
  47. package/dist/components/homepage/Demo/DemoRender.js +0 -95
  48. package/dist/components/homepage/Demo/DigitWheel.d.ts +0 -9
  49. package/dist/components/homepage/Demo/DigitWheel.js +0 -94
  50. package/dist/components/homepage/Demo/DisplayedEmoji.d.ts +0 -5
  51. package/dist/components/homepage/Demo/DisplayedEmoji.js +0 -64
  52. package/dist/components/homepage/Demo/DoneCheckmark.d.ts +0 -2
  53. package/dist/components/homepage/Demo/DoneCheckmark.js +0 -20
  54. package/dist/components/homepage/Demo/DownloadNudge.d.ts +0 -2
  55. package/dist/components/homepage/Demo/DownloadNudge.js +0 -27
  56. package/dist/components/homepage/Demo/DragAndDropNudge.d.ts +0 -3
  57. package/dist/components/homepage/Demo/DragAndDropNudge.js +0 -26
  58. package/dist/components/homepage/Demo/EmojiCard.d.ts +0 -10
  59. package/dist/components/homepage/Demo/EmojiCard.js +0 -120
  60. package/dist/components/homepage/Demo/Minus.d.ts +0 -5
  61. package/dist/components/homepage/Demo/Minus.js +0 -11
  62. package/dist/components/homepage/Demo/PlayPauseButton.d.ts +0 -5
  63. package/dist/components/homepage/Demo/PlayPauseButton.js +0 -47
  64. package/dist/components/homepage/Demo/PlayerControls.d.ts +0 -8
  65. package/dist/components/homepage/Demo/PlayerControls.js +0 -15
  66. package/dist/components/homepage/Demo/PlayerSeekBar.d.ts +0 -11
  67. package/dist/components/homepage/Demo/PlayerSeekBar.js +0 -216
  68. package/dist/components/homepage/Demo/PlayerVolume.d.ts +0 -5
  69. package/dist/components/homepage/Demo/PlayerVolume.js +0 -53
  70. package/dist/components/homepage/Demo/Progress.d.ts +0 -4
  71. package/dist/components/homepage/Demo/Progress.js +0 -14
  72. package/dist/components/homepage/Demo/Spinner.d.ts +0 -5
  73. package/dist/components/homepage/Demo/Spinner.js +0 -37
  74. package/dist/components/homepage/Demo/Switcher.d.ts +0 -6
  75. package/dist/components/homepage/Demo/Switcher.js +0 -25
  76. package/dist/components/homepage/Demo/Temperature.d.ts +0 -6
  77. package/dist/components/homepage/Demo/Temperature.js +0 -21
  78. package/dist/components/homepage/Demo/TemperatureNumber.d.ts +0 -5
  79. package/dist/components/homepage/Demo/TemperatureNumber.js +0 -36
  80. package/dist/components/homepage/Demo/ThemeNudge.d.ts +0 -3
  81. package/dist/components/homepage/Demo/ThemeNudge.js +0 -35
  82. package/dist/components/homepage/Demo/TimeDisplay.d.ts +0 -6
  83. package/dist/components/homepage/Demo/TimeDisplay.js +0 -27
  84. package/dist/components/homepage/Demo/TrendingRepos.d.ts +0 -6
  85. package/dist/components/homepage/Demo/TrendingRepos.js +0 -65
  86. package/dist/components/homepage/Demo/icons.d.ts +0 -10
  87. package/dist/components/homepage/Demo/icons.js +0 -22
  88. package/dist/components/homepage/Demo/index.d.ts +0 -2
  89. package/dist/components/homepage/Demo/index.js +0 -95
  90. package/dist/components/homepage/Demo/math.d.ts +0 -10
  91. package/dist/components/homepage/Demo/math.js +0 -29
  92. package/dist/components/homepage/Demo/types.d.ts +0 -6
  93. package/dist/components/homepage/Demo/types.js +0 -0
  94. package/dist/components/homepage/EditorStarterSection.d.ts +0 -3
  95. package/dist/components/homepage/EditorStarterSection.js +0 -8
  96. package/dist/components/homepage/EvaluateRemotion.d.ts +0 -3
  97. package/dist/components/homepage/EvaluateRemotion.js +0 -38
  98. package/dist/components/homepage/FreePricing.d.ts +0 -4
  99. package/dist/components/homepage/FreePricing.js +0 -69
  100. package/dist/components/homepage/GetStartedStrip.d.ts +0 -2
  101. package/dist/components/homepage/GetStartedStrip.js +0 -14
  102. package/dist/components/homepage/GitHubButton.d.ts +0 -2
  103. package/dist/components/homepage/GitHubButton.js +0 -7
  104. package/dist/components/homepage/IconForTemplate.d.ts +0 -6
  105. package/dist/components/homepage/IconForTemplate.js +0 -98
  106. package/dist/components/homepage/IfYouKnowReact.d.ts +0 -3
  107. package/dist/components/homepage/IfYouKnowReact.js +0 -23
  108. package/dist/components/homepage/InfoTooltip.d.ts +0 -6
  109. package/dist/components/homepage/InfoTooltip.js +0 -6
  110. package/dist/components/homepage/MoreTemplatesButton.d.ts +0 -2
  111. package/dist/components/homepage/MoreTemplatesButton.js +0 -10
  112. package/dist/components/homepage/MoreVideoPowerSection.d.ts +0 -2
  113. package/dist/components/homepage/MoreVideoPowerSection.js +0 -16
  114. package/dist/components/homepage/MuxVideo.d.ts +0 -7
  115. package/dist/components/homepage/MuxVideo.js +0 -45
  116. package/dist/components/homepage/NewsletterButton.d.ts +0 -2
  117. package/dist/components/homepage/NewsletterButton.js +0 -39
  118. package/dist/components/homepage/ParameterizeAndEdit.d.ts +0 -2
  119. package/dist/components/homepage/ParameterizeAndEdit.js +0 -22
  120. package/dist/components/homepage/Pricing.d.ts +0 -2
  121. package/dist/components/homepage/Pricing.js +0 -15
  122. package/dist/components/homepage/PricingBulletPoint.d.ts +0 -6
  123. package/dist/components/homepage/PricingBulletPoint.js +0 -19
  124. package/dist/components/homepage/RealMp4Videos.d.ts +0 -2
  125. package/dist/components/homepage/RealMp4Videos.js +0 -41
  126. package/dist/components/homepage/Spacer.d.ts +0 -2
  127. package/dist/components/homepage/Spacer.js +0 -4
  128. package/dist/components/homepage/TemplateIcon.d.ts +0 -5
  129. package/dist/components/homepage/TemplateIcon.js +0 -24
  130. package/dist/components/homepage/TextInput.d.ts +0 -7
  131. package/dist/components/homepage/TextInput.js +0 -34
  132. package/dist/components/homepage/TrustedByBanner.d.ts +0 -2
  133. package/dist/components/homepage/TrustedByBanner.js +0 -27
  134. package/dist/components/homepage/VideoApps.d.ts +0 -4
  135. package/dist/components/homepage/VideoApps.js +0 -72
  136. package/dist/components/homepage/VideoAppsShowcase.d.ts +0 -3
  137. package/dist/components/homepage/VideoAppsShowcase.js +0 -133
  138. package/dist/components/homepage/VideoAppsTitle.d.ts +0 -4
  139. package/dist/components/homepage/VideoAppsTitle.js +0 -4
  140. package/dist/components/homepage/VideoPlayerWithControls.d.ts +0 -20
  141. package/dist/components/homepage/VideoPlayerWithControls.js +0 -105
  142. package/dist/components/homepage/WriteInReact.d.ts +0 -2
  143. package/dist/components/homepage/WriteInReact.js +0 -10
  144. package/dist/components/homepage/YouAreHere.d.ts +0 -2
  145. package/dist/components/homepage/YouAreHere.js +0 -23
  146. package/dist/components/homepage/layout/Button.d.ts +0 -19
  147. package/dist/components/homepage/layout/Button.js +0 -29
  148. package/dist/components/homepage/layout/colors.d.ts +0 -13
  149. package/dist/components/homepage/layout/colors.js +0 -14
  150. package/dist/components/homepage/layout/use-color-mode.d.ts +0 -21
  151. package/dist/components/homepage/layout/use-color-mode.js +0 -22
  152. package/dist/components/homepage/layout/use-el-size.d.ts +0 -5
  153. package/dist/components/homepage/layout/use-el-size.js +0 -40
  154. package/dist/components/homepage/layout/use-mobile-layout.d.ts +0 -1
  155. package/dist/components/homepage/layout/use-mobile-layout.js +0 -6
  156. package/dist/components/icons/blank.d.ts +0 -3
  157. package/dist/components/icons/blank.js +0 -4
  158. package/dist/components/icons/clone.d.ts +0 -2
  159. package/dist/components/icons/clone.js +0 -2
  160. package/dist/components/icons/code-hike.d.ts +0 -3
  161. package/dist/components/icons/code-hike.js +0 -4
  162. package/dist/components/icons/cubes.d.ts +0 -3
  163. package/dist/components/icons/cubes.js +0 -4
  164. package/dist/components/icons/js.d.ts +0 -3
  165. package/dist/components/icons/js.js +0 -4
  166. package/dist/components/icons/music.d.ts +0 -2
  167. package/dist/components/icons/music.js +0 -4
  168. package/dist/components/icons/next.d.ts +0 -4
  169. package/dist/components/icons/next.js +0 -4
  170. package/dist/components/icons/overlay.d.ts +0 -3
  171. package/dist/components/icons/overlay.js +0 -4
  172. package/dist/components/icons/recorder.d.ts +0 -3
  173. package/dist/components/icons/recorder.js +0 -4
  174. package/dist/components/icons/remix.d.ts +0 -3
  175. package/dist/components/icons/remix.js +0 -4
  176. package/dist/components/icons/skia.d.ts +0 -3
  177. package/dist/components/icons/skia.js +0 -4
  178. package/dist/components/icons/stargazer.d.ts +0 -3
  179. package/dist/components/icons/stargazer.js +0 -4
  180. package/dist/components/icons/still.d.ts +0 -3
  181. package/dist/components/icons/still.js +0 -4
  182. package/dist/components/icons/tailwind.d.ts +0 -3
  183. package/dist/components/icons/tailwind.js +0 -4
  184. package/dist/components/icons/tiktok.d.ts +0 -3
  185. package/dist/components/icons/tiktok.js +0 -4
  186. package/dist/components/icons/ts.d.ts +0 -3
  187. package/dist/components/icons/ts.js +0 -4
  188. package/dist/components/icons/tts.d.ts +0 -3
  189. package/dist/components/icons/tts.js +0 -4
  190. package/dist/components/icons/undo.d.ts +0 -3
  191. package/dist/components/icons/undo.js +0 -2
  192. package/dist/components/icons/waveform.d.ts +0 -3
  193. package/dist/components/icons/waveform.js +0 -4
  194. package/dist/components/team/TeamCards.d.ts +0 -6
  195. package/dist/components/team/TeamCards.js +0 -19
  196. package/dist/components/team/TitleTeamCards.d.ts +0 -2
  197. package/dist/components/team/TitleTeamCards.js +0 -6
  198. package/dist/components/team.d.ts +0 -3
  199. package/dist/components/team.js +0 -14
  200. package/dist/main.d.ts +0 -1
  201. package/dist/main.js +0 -6
  202. package/dist/team.d.ts +0 -1
  203. package/public/img/media-parser.png +0 -0
  204. package/public/img/recorder.png +0 -0
  205. package/public/img/webcodecs.png +0 -0
@@ -1,26 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { FONTS, PALETTE } from '../layout/colors';
3
- const origWidth = 37;
4
- const scale = 0.4;
5
- export const Icon = () => {
6
- return (_jsx("svg", { style: {
7
- width: origWidth * scale,
8
- overflow: 'visible',
9
- }, viewBox: "0 0 37 59", fill: "none", children: _jsx("path", { d: "M5.00003 5C5.00002 36.5 16 44 32.0002 54", stroke: PALETTE.TEXT_COLOR, strokeWidth: "8", strokeLinecap: "round" }) }));
10
- };
11
- export const DragAndDropNudge = () => {
12
- return (_jsx("div", { style: {
13
- position: 'absolute',
14
- flexDirection: 'row',
15
- display: 'flex',
16
- justifyContent: 'flex-start',
17
- paddingBottom: 5,
18
- marginTop: 50,
19
- }, className: 'ml-4 lg:-ml-5', children: _jsxs("div", { children: [_jsx("div", { style: {
20
- fontFamily: FONTS.GTPLANAR,
21
- fontSize: 15,
22
- width: 280,
23
- paddingBottom: 8,
24
- textWrap: 'balance',
25
- }, className: '-ml-3 lg:-ml-5', children: "Drag and drop the cards to reorder them." }), _jsx(Icon, {})] }) }));
26
- };
@@ -1,10 +0,0 @@
1
- import type { EmojiName } from '@remotion/animated-emoji';
2
- import React from 'react';
3
- export type EmojiCardRef = {
4
- onLeft: () => void;
5
- onRight: () => void;
6
- };
7
- export type EmojiCardProps = {
8
- readonly emojiIndex: EmojiName;
9
- };
10
- export declare const EmojiCard: React.ForwardRefExoticComponent<EmojiCardProps & React.RefAttributes<EmojiCardRef>>;
@@ -1,120 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { forwardRef, useCallback, useEffect, useImperativeHandle, useRef, } from 'react';
3
- import { AbsoluteFill, useRemotionEnvironment } from 'remotion';
4
- import { DisplayedEmoji } from './DisplayedEmoji';
5
- const applyTransforms = ({ ref1, ref2, ref3, transforms }) => {
6
- ref1.style.transform = `translateX(${transforms[0]}%)`;
7
- ref2.style.transform = `translateX(${transforms[1]}%)`;
8
- ref3.style.transform = `translateX(${transforms[2]}%)`;
9
- };
10
- const waitForRaq = async () => {
11
- await new Promise((resolve) => {
12
- requestAnimationFrame(resolve);
13
- });
14
- };
15
- const moveLeft = async ({ ref1, ref2, ref3, transforms }) => {
16
- for (let i = 0; i < 20; i++) {
17
- for (const idx in transforms) {
18
- transforms[idx] -= 5;
19
- if (transforms[idx] <= -200) {
20
- transforms[idx] += 300;
21
- }
22
- }
23
- applyTransforms({ ref1, ref2, ref3, transforms });
24
- await waitForRaq();
25
- }
26
- };
27
- const moveRight = async ({ ref1, ref2, ref3, transforms }) => {
28
- for (let i = 0; i < 20; i++) {
29
- for (const idx in transforms) {
30
- transforms[idx] += 5;
31
- if (transforms[idx] >= 100) {
32
- transforms[idx] -= 300;
33
- }
34
- }
35
- applyTransforms({ ref1, ref2, ref3, transforms });
36
- await waitForRaq();
37
- }
38
- };
39
- const emojiStyle = {
40
- width: '100%',
41
- position: 'absolute',
42
- top: 'calc(50% - 50px)',
43
- };
44
- const EmojiCardRefFn = ({ emojiIndex }, ref) => {
45
- const ref1 = useRef(null);
46
- const ref2 = useRef(null);
47
- const ref3 = useRef(null);
48
- const transforms = useRef([-100, 0, 100]);
49
- const onLeft = useCallback(() => {
50
- if (!ref1.current || !ref2.current || !ref3.current) {
51
- return;
52
- }
53
- moveLeft({
54
- ref1: ref1.current,
55
- ref2: ref2.current,
56
- ref3: ref3.current,
57
- transforms: transforms.current,
58
- });
59
- }, []);
60
- const onRight = useCallback(() => {
61
- if (!ref1.current || !ref2.current || !ref3.current) {
62
- return;
63
- }
64
- moveRight({
65
- ref1: ref1.current,
66
- ref2: ref2.current,
67
- ref3: ref3.current,
68
- transforms: transforms.current,
69
- });
70
- }, []);
71
- useEffect(() => {
72
- if (!ref1.current || !ref2.current || !ref3.current) {
73
- return;
74
- }
75
- applyTransforms({
76
- ref1: ref1.current,
77
- ref2: ref2.current,
78
- ref3: ref3.current,
79
- transforms: transforms.current,
80
- });
81
- }, []);
82
- useImperativeHandle(ref, () => {
83
- return {
84
- onLeft,
85
- onRight,
86
- };
87
- }, [onLeft, onRight]);
88
- useEffect(() => {
89
- if (!ref1.current || !ref2.current || !ref3.current) {
90
- return;
91
- }
92
- applyTransforms({
93
- ref1: ref1.current,
94
- ref2: ref2.current,
95
- ref3: ref3.current,
96
- transforms: transforms.current,
97
- });
98
- }, []);
99
- const env = useRemotionEnvironment();
100
- return (_jsxs(AbsoluteFill, { style: {
101
- justifyContent: 'center',
102
- alignItems: 'center',
103
- overflow: 'hidden',
104
- }, children: [_jsx("div", { style: {
105
- color: '#0b84f3',
106
- fontFamily: 'GTPlanar',
107
- fontWeight: '500',
108
- fontSize: 13,
109
- textAlign: 'center',
110
- position: 'absolute',
111
- marginTop: -90,
112
- }, children: "Choose an emoji" }), _jsx("div", { style: {
113
- position: 'absolute',
114
- width: '100%',
115
- display: 'flex',
116
- whiteSpace: 'nowrap',
117
- height: '100%',
118
- }, children: env.isRendering ? (_jsx("div", { style: emojiStyle, children: _jsx(DisplayedEmoji, { emoji: emojiIndex }) })) : (_jsxs(_Fragment, { children: [_jsx("div", { ref: ref1, style: emojiStyle, children: _jsx(DisplayedEmoji, { emoji: 'melting' }) }), _jsx("div", { ref: ref2, style: emojiStyle, children: _jsx(DisplayedEmoji, { emoji: 'partying-face' }) }), _jsx("div", { ref: ref3, style: emojiStyle, children: _jsx(DisplayedEmoji, { emoji: 'fire' }) })] })) })] }));
119
- };
120
- export const EmojiCard = forwardRef(EmojiCardRefFn);
@@ -1,5 +0,0 @@
1
- import React from 'react';
2
- export declare const Minus: React.FC<{
3
- readonly leftOffset: number;
4
- readonly minusSignOpacity: number;
5
- }>;
@@ -1,11 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- export const Minus = ({ leftOffset, minusSignOpacity }) => {
3
- return (_jsx("div", { style: {
4
- position: 'relative',
5
- marginLeft: -40 - leftOffset,
6
- marginTop: 5,
7
- width: 40,
8
- opacity: minusSignOpacity,
9
- textAlign: 'right',
10
- }, children: "-" }));
11
- };
@@ -1,5 +0,0 @@
1
- import type { PlayerRef } from '@remotion/player';
2
- import React from 'react';
3
- export declare const PlayPauseButton: React.FC<{
4
- readonly playerRef: React.RefObject<PlayerRef | null>;
5
- }>;
@@ -1,47 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import React, { useCallback, useEffect } from 'react';
3
- import { PALETTE } from '../layout/colors';
4
- import { PausedIcon, PlayingIcon } from './icons';
5
- const playerButtonStyle = {
6
- appearance: 'none',
7
- border: 'none',
8
- borderRadius: 0,
9
- background: 'none',
10
- display: 'flex',
11
- justifyContent: 'center',
12
- alignItems: 'center',
13
- paddingRight: 20,
14
- paddingLeft: 20,
15
- cursor: 'pointer',
16
- height: 50,
17
- color: PALETTE.TEXT_COLOR,
18
- };
19
- export const PlayPauseButton = ({ playerRef }) => {
20
- const [playing, setPlaying] = React.useState(true);
21
- useEffect(() => {
22
- const { current } = playerRef;
23
- if (!current) {
24
- return;
25
- }
26
- const onPlay = () => {
27
- setPlaying(true);
28
- };
29
- const onPause = () => {
30
- setPlaying(false);
31
- };
32
- current.addEventListener('play', onPlay);
33
- current.addEventListener('pause', onPause);
34
- return () => {
35
- current.removeEventListener('play', onPlay);
36
- current.removeEventListener('pause', onPause);
37
- };
38
- }, [playerRef]);
39
- const onToggle = useCallback(() => {
40
- var _a;
41
- (_a = playerRef.current) === null || _a === void 0 ? void 0 : _a.toggle();
42
- }, [playerRef]);
43
- const playPauseIconStyle = {
44
- width: 15,
45
- };
46
- return (_jsx("button", { type: "button", style: playerButtonStyle, onClick: onToggle, children: playing ? (_jsx(PlayingIcon, { style: playPauseIconStyle })) : (_jsx(PausedIcon, { style: playPauseIconStyle })) }));
47
- };
@@ -1,8 +0,0 @@
1
- import type { PlayerRef } from '@remotion/player';
2
- import React from 'react';
3
- export declare const PlayerControls: React.FC<{
4
- readonly playerRef: React.RefObject<PlayerRef | null>;
5
- readonly durationInFrames: number;
6
- readonly fps: number;
7
- readonly children: React.ReactNode;
8
- }>;
@@ -1,15 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { PALETTE } from '../layout/colors';
3
- import { PlayerSeekBar } from './PlayerSeekBar';
4
- import { PlayerVolume } from './PlayerVolume';
5
- import { PlayPauseButton } from './PlayPauseButton';
6
- import { TimeDisplay } from './TimeDisplay';
7
- const Separator = () => {
8
- return (_jsx("div", { style: {
9
- borderRight: `2px solid ${PALETTE.BOX_STROKE}`,
10
- height: 50,
11
- } }));
12
- };
13
- export const PlayerControls = ({ playerRef, durationInFrames, fps, children }) => {
14
- return (_jsxs("div", { className: 'flex flex-row items-center bg-pane', children: [_jsx(PlayPauseButton, { playerRef: playerRef }), _jsx(Separator, {}), _jsx(PlayerVolume, { playerRef: playerRef }), _jsx(Separator, {}), _jsx("div", { style: { width: 15 } }), _jsx(TimeDisplay, { playerRef: playerRef, fps: fps }), _jsx("div", { style: { width: 15 } }), _jsx(PlayerSeekBar, { durationInFrames: durationInFrames, playerRef: playerRef, inFrame: null, outFrame: null, onSeekEnd: () => undefined, onSeekStart: () => undefined }), _jsx("div", { style: { width: 20 } }), _jsx(Separator, {}), children] }));
15
- };
@@ -1,11 +0,0 @@
1
- import type { PlayerRef } from '@remotion/player';
2
- import React from 'react';
3
- export declare const useHoverState: (ref: React.RefObject<HTMLDivElement | null>, hideControlsWhenPointerDoesntMove: boolean | number) => boolean;
4
- export declare const PlayerSeekBar: React.FC<{
5
- readonly durationInFrames: number;
6
- readonly onSeekStart: () => void;
7
- readonly onSeekEnd: () => void;
8
- readonly inFrame: number | null;
9
- readonly outFrame: number | null;
10
- readonly playerRef: React.RefObject<PlayerRef | null>;
11
- }>;
@@ -1,216 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
3
- import { interpolate } from 'remotion';
4
- import { useElementSize } from '../layout/use-el-size';
5
- const getFrameFromX = (clientX, durationInFrames, width) => {
6
- const pos = clientX;
7
- const frame = Math.round(interpolate(pos, [0, width], [0, durationInFrames - 1], {
8
- extrapolateLeft: 'clamp',
9
- extrapolateRight: 'clamp',
10
- }));
11
- return frame;
12
- };
13
- const BAR_HEIGHT = 5;
14
- const KNOB_SIZE = 12;
15
- const VERTICAL_PADDING = 4;
16
- const containerStyle = {
17
- userSelect: 'none',
18
- WebkitUserSelect: 'none',
19
- paddingTop: VERTICAL_PADDING,
20
- paddingBottom: VERTICAL_PADDING,
21
- boxSizing: 'border-box',
22
- cursor: 'pointer',
23
- position: 'relative',
24
- touchAction: 'none',
25
- flex: 1,
26
- };
27
- const barBackground = {
28
- height: BAR_HEIGHT,
29
- backgroundColor: 'rgba(0, 0, 0, 0.25)',
30
- width: '100%',
31
- borderRadius: BAR_HEIGHT / 2,
32
- };
33
- const findBodyInWhichDivIsLocated = (div) => {
34
- let current = div;
35
- while (current.parentElement) {
36
- current = current.parentElement;
37
- }
38
- return current;
39
- };
40
- export const useHoverState = (ref, hideControlsWhenPointerDoesntMove) => {
41
- const [hovered, setHovered] = useState(false);
42
- useEffect(() => {
43
- const { current } = ref;
44
- if (!current) {
45
- return;
46
- }
47
- let hoverTimeout;
48
- const addHoverTimeout = () => {
49
- if (hideControlsWhenPointerDoesntMove) {
50
- clearTimeout(hoverTimeout);
51
- hoverTimeout = setTimeout(() => {
52
- setHovered(false);
53
- }, hideControlsWhenPointerDoesntMove === true
54
- ? 3000
55
- : hideControlsWhenPointerDoesntMove);
56
- }
57
- };
58
- const onHover = () => {
59
- setHovered(true);
60
- addHoverTimeout();
61
- };
62
- const onLeave = () => {
63
- setHovered(false);
64
- clearTimeout(hoverTimeout);
65
- };
66
- const onMove = () => {
67
- setHovered(true);
68
- addHoverTimeout();
69
- };
70
- current.addEventListener('mouseenter', onHover);
71
- current.addEventListener('mouseleave', onLeave);
72
- current.addEventListener('mousemove', onMove);
73
- return () => {
74
- current.removeEventListener('mouseenter', onHover);
75
- current.removeEventListener('mouseleave', onLeave);
76
- current.removeEventListener('mousemove', onMove);
77
- clearTimeout(hoverTimeout);
78
- };
79
- }, [hideControlsWhenPointerDoesntMove, ref]);
80
- return hovered;
81
- };
82
- export const PlayerSeekBar = ({ durationInFrames, onSeekEnd, onSeekStart, inFrame, outFrame, playerRef, }) => {
83
- var _a;
84
- const containerRef = useRef(null);
85
- const barHovered = useHoverState(containerRef, false);
86
- const size = useElementSize(containerRef.current);
87
- const [playing, setPlaying] = useState(false);
88
- const [frame, setFrame] = useState(0);
89
- useEffect(() => {
90
- const { current } = playerRef;
91
- if (!current) {
92
- return;
93
- }
94
- const onFrameUpdate = () => {
95
- setFrame(playerRef.current.getCurrentFrame());
96
- };
97
- current.addEventListener('frameupdate', onFrameUpdate);
98
- return () => {
99
- current.removeEventListener('frameupdate', onFrameUpdate);
100
- };
101
- }, [playerRef]);
102
- useEffect(() => {
103
- const { current } = playerRef;
104
- if (!current) {
105
- return;
106
- }
107
- const onPlay = () => {
108
- setPlaying(true);
109
- };
110
- const onPause = () => {
111
- setPlaying(false);
112
- };
113
- current.addEventListener('play', onPlay);
114
- current.addEventListener('pause', onPause);
115
- return () => {
116
- current.removeEventListener('play', onPlay);
117
- current.removeEventListener('pause', onPause);
118
- };
119
- }, [playerRef]);
120
- const [dragging, setDragging] = useState({
121
- dragging: false,
122
- });
123
- const width = (_a = size === null || size === void 0 ? void 0 : size.width) !== null && _a !== void 0 ? _a : 0;
124
- const onPointerDown = useCallback((e) => {
125
- var _a;
126
- if (e.button !== 0) {
127
- return;
128
- }
129
- const posLeft = (_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().left;
130
- const _frame = getFrameFromX(e.clientX - posLeft, durationInFrames, width);
131
- playerRef.current.pause();
132
- playerRef.current.seekTo(_frame);
133
- setDragging({
134
- dragging: true,
135
- wasPlaying: playing,
136
- });
137
- onSeekStart();
138
- }, [durationInFrames, width, playerRef, playing, onSeekStart]);
139
- const onPointerMove = useCallback((e) => {
140
- var _a;
141
- if (!size) {
142
- throw new Error('Player has no size');
143
- }
144
- if (!dragging.dragging) {
145
- return;
146
- }
147
- const posLeft = (_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().left;
148
- const _frame = getFrameFromX(e.clientX - posLeft, durationInFrames, size.width);
149
- playerRef.current.seekTo(_frame);
150
- }, [dragging.dragging, durationInFrames, playerRef, size]);
151
- const onPointerUp = useCallback(() => {
152
- setDragging({
153
- dragging: false,
154
- });
155
- if (!dragging.dragging) {
156
- return;
157
- }
158
- if (dragging.wasPlaying) {
159
- playerRef.current.play();
160
- }
161
- else {
162
- playerRef.current.pause();
163
- }
164
- onSeekEnd();
165
- }, [dragging, onSeekEnd, playerRef]);
166
- useEffect(() => {
167
- if (!dragging.dragging) {
168
- return;
169
- }
170
- const body = findBodyInWhichDivIsLocated(containerRef.current);
171
- body.addEventListener('pointermove', onPointerMove);
172
- body.addEventListener('pointerup', onPointerUp);
173
- return () => {
174
- body.removeEventListener('pointermove', onPointerMove);
175
- body.removeEventListener('pointerup', onPointerUp);
176
- };
177
- }, [dragging.dragging, onPointerMove, onPointerUp]);
178
- const knobStyle = useMemo(() => {
179
- return {
180
- height: KNOB_SIZE,
181
- width: KNOB_SIZE,
182
- borderRadius: KNOB_SIZE / 2,
183
- position: 'absolute',
184
- top: VERTICAL_PADDING - KNOB_SIZE / 2 + 5 / 2,
185
- backgroundColor: 'var(--ifm-font-color-base)',
186
- left: Math.max(0, (frame / Math.max(1, durationInFrames - 1)) * width - KNOB_SIZE / 2),
187
- outline: '2px solid var(--ifm-background-color)',
188
- opacity: Number(barHovered),
189
- transition: 'opacity 0.s ease',
190
- };
191
- }, [barHovered, durationInFrames, frame, width]);
192
- const fillStyle = useMemo(() => {
193
- return {
194
- height: BAR_HEIGHT,
195
- backgroundColor: 'var(--ifm-font-color-base)',
196
- width: ((frame - (inFrame !== null && inFrame !== void 0 ? inFrame : 0)) / (durationInFrames - 1)) * 100 + '%',
197
- marginLeft: ((inFrame !== null && inFrame !== void 0 ? inFrame : 0) / (durationInFrames - 1)) * 100 + '%',
198
- borderRadius: BAR_HEIGHT / 2,
199
- };
200
- }, [durationInFrames, frame, inFrame]);
201
- const active = useMemo(() => {
202
- return {
203
- height: BAR_HEIGHT,
204
- backgroundColor: 'var(--ifm-font-color-base)',
205
- opacity: 0.2,
206
- width: (((outFrame !== null && outFrame !== void 0 ? outFrame : durationInFrames - 1) - (inFrame !== null && inFrame !== void 0 ? inFrame : 0)) /
207
- (durationInFrames - 1)) *
208
- 100 +
209
- '%',
210
- marginLeft: ((inFrame !== null && inFrame !== void 0 ? inFrame : 0) / (durationInFrames - 1)) * 100 + '%',
211
- borderRadius: BAR_HEIGHT / 2,
212
- position: 'absolute',
213
- };
214
- }, [durationInFrames, inFrame, outFrame]);
215
- return (_jsxs("div", { ref: containerRef, onPointerDown: onPointerDown, style: containerStyle, children: [_jsxs("div", { style: barBackground, children: [_jsx("div", { style: active }), _jsx("div", { style: fillStyle })] }), _jsx("div", { style: knobStyle })] }));
216
- };
@@ -1,5 +0,0 @@
1
- import type { PlayerRef } from '@remotion/player';
2
- import React from 'react';
3
- export declare const PlayerVolume: React.FC<{
4
- readonly playerRef: React.RefObject<PlayerRef | null>;
5
- }>;
@@ -1,53 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useCallback, useEffect, useRef, useState } from 'react';
3
- import { PALETTE } from '../layout/colors';
4
- import { IsMutedIcon, NotMutedIcon } from './icons';
5
- export const PlayerVolume = ({ playerRef }) => {
6
- const [muted, setIsMuted] = useState(() => { var _a, _b; return (_b = (_a = playerRef.current) === null || _a === void 0 ? void 0 : _a.isMuted()) !== null && _b !== void 0 ? _b : true; });
7
- const [isHovered, setIsHovered] = useState(false);
8
- const timerRef = useRef(null);
9
- useEffect(() => {
10
- const { current } = playerRef;
11
- if (!current) {
12
- return;
13
- }
14
- const onMutedChange = (e) => {
15
- setIsMuted(e.detail.isMuted);
16
- };
17
- current.addEventListener('mutechange', onMutedChange);
18
- return () => {
19
- current.removeEventListener('mutechange', onMutedChange);
20
- };
21
- }, [playerRef]);
22
- useEffect(() => {
23
- if (isHovered) {
24
- document.body.style.userSelect = 'none';
25
- }
26
- else {
27
- document.body.style.userSelect = 'auto';
28
- }
29
- }, [isHovered]);
30
- const onClick = useCallback(() => {
31
- if (timerRef.current !== null) {
32
- clearTimeout(timerRef.current);
33
- timerRef.current = null;
34
- }
35
- if (playerRef.current.isMuted()) {
36
- playerRef.current.unmute();
37
- }
38
- else {
39
- playerRef.current.mute();
40
- }
41
- }, [playerRef]);
42
- return (_jsx("div", { className: 'relative cursor-pointer block pl-4 pr-4 h-full', onMouseEnter: () => setIsHovered(true), children: _jsx("button", { type: "button", onClick: onClick, style: {
43
- background: 'transparent',
44
- border: 0,
45
- cursor: 'pointer',
46
- padding: 0,
47
- display: 'flex',
48
- height: 50,
49
- justifyContent: 'center',
50
- alignItems: 'center',
51
- color: PALETTE.TEXT_COLOR,
52
- }, children: muted ? (_jsx(IsMutedIcon, { style: { height: 20 } })) : (_jsx(NotMutedIcon, { style: { height: 20 } })) }) }));
53
- };
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- export declare const Progress: React.FC<{
3
- readonly progress: number;
4
- }>;
@@ -1,14 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { makeCircle, makePie } from '@remotion/shapes';
3
- import { PALETTE } from '../layout/colors';
4
- export const Progress = ({ progress }) => {
5
- const inner = makeCircle({
6
- radius: 10,
7
- });
8
- const outer = makePie({
9
- progress,
10
- closePath: false,
11
- radius: 10,
12
- });
13
- return (_jsxs("svg", { viewBox: `0 0 ${inner.width} ${inner.height}`, style: { overflow: 'visible', height: 22 }, children: [_jsx("path", { d: inner.path, stroke: PALETTE.BORDER_COLOR, strokeWidth: 4, fill: "transparent" }), _jsx("path", { d: outer.path, stroke: PALETTE.BRAND, strokeWidth: 4, fill: "transparent", strokeLinecap: "round" })] }));
14
- };
@@ -1,5 +0,0 @@
1
- import React from 'react';
2
- export declare const Spinner: React.FC<{
3
- readonly size: number;
4
- readonly duration: number;
5
- }>;
@@ -1,37 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useMemo } from 'react';
3
- import { PALETTE } from '../layout/colors';
4
- const viewBox = 100;
5
- const lines = 8;
6
- const className = '__remotion_spinner_line';
7
- const remotionSpinnerAnimation = '__remotion_spinner_animation';
8
- // Generated from https://github.com/remotion-dev/template-next/commit/9282c93f7c51ada31a42e18a94680fa09a14eee3
9
- const translated = 'M 44 0 L 50 0 a 6 6 0 0 1 6 6 L 56 26 a 6 6 0 0 1 -6 6 L 50 32 a 6 6 0 0 1 -6 -6 L 44 6 a 6 6 0 0 1 6 -6 Z';
10
- export const Spinner = ({ size, duration }) => {
11
- const style = useMemo(() => {
12
- return {
13
- width: size,
14
- height: size,
15
- };
16
- }, [size]);
17
- return (_jsxs(_Fragment, { children: [_jsx("style", { type: "text/css", children: `
18
- @keyframes ${remotionSpinnerAnimation} {
19
- 0% {
20
- opacity: 1;
21
- }
22
- 100% {
23
- opacity: 0.15;
24
- }
25
- }
26
-
27
- .${className} {
28
- animation: ${remotionSpinnerAnimation} ${duration}s linear infinite;
29
- }
30
- ` }), _jsx("svg", { style: style, viewBox: `0 0 ${viewBox} ${viewBox}`, children: new Array(lines).fill(true).map((_, index) => {
31
- return (_jsx("path", { className: className, style: {
32
- rotate: `${(index * Math.PI * 2) / lines}rad`,
33
- transformOrigin: 'center center',
34
- animationDelay: `${index * (duration / lines) - duration}s`,
35
- }, d: translated, fill: PALETTE.TEXT_COLOR }, index));
36
- }) })] }));
37
- };
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- export declare const Switcher: React.FC<{
3
- readonly type: 'left' | 'right';
4
- readonly theme: 'dark' | 'light';
5
- readonly onTap: () => void;
6
- }>;
@@ -1,25 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useCallback } from 'react';
3
- export const Switcher = ({ type, theme, onTap }) => {
4
- const onPointerDown = useCallback((e) => {
5
- e.stopPropagation();
6
- onTap();
7
- }, [onTap]);
8
- const switcherSize = 40;
9
- return (_jsx("div", { onPointerDown: onPointerDown, style: {
10
- height: switcherSize,
11
- width: switcherSize,
12
- borderRadius: switcherSize / 2,
13
- position: 'absolute',
14
- marginLeft: -switcherSize / 2,
15
- top: '50%',
16
- left: type === 'left' ? 0 : '100%',
17
- marginTop: -switcherSize / 2,
18
- backgroundColor: theme === 'dark' ? '#222' : '#fafafa',
19
- color: theme === 'dark' ? 'white' : '#222',
20
- cursor: 'pointer',
21
- justifyContent: 'center',
22
- alignItems: 'center',
23
- display: 'flex',
24
- }, children: _jsxs("svg", { style: { height: switcherSize / 2 }, viewBox: "0 0 320 512", children: [type === 'left' ? (_jsx("path", { fill: "currentcolor", d: "M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z" })) : null, type === 'right' ? (_jsx("path", { fill: "currentcolor", d: "M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z" })) : null] }) }));
25
- };
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- export declare const Temperature: React.FC<{
3
- readonly theme: 'dark' | 'light';
4
- readonly city: string | null;
5
- readonly temperatureInCelsius: number | null;
6
- }>;