@remotion/promo-pages 4.0.321 → 4.0.323

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 (181) hide show
  1. package/.turbo/turbo-make.log +2 -2
  2. package/dist/Homepage.js +28 -23
  3. package/dist/homepage/Pricing.js +2 -2
  4. package/dist/tailwind.css +6 -0
  5. package/package.json +10 -10
  6. package/src/components/homepage/Counter.tsx +3 -3
  7. package/.turbo/turbo-lint.log +0 -5
  8. package/dist/cn.d.ts +0 -2
  9. package/dist/cn.js +0 -5
  10. package/dist/components/Homepage.d.ts +0 -6
  11. package/dist/components/Homepage.js +0 -20
  12. package/dist/components/homepage/BackgroundAnimation.d.ts +0 -2
  13. package/dist/components/homepage/BackgroundAnimation.js +0 -66
  14. package/dist/components/homepage/ChooseTemplate.d.ts +0 -2
  15. package/dist/components/homepage/ChooseTemplate.js +0 -27
  16. package/dist/components/homepage/CommunityStats.d.ts +0 -3
  17. package/dist/components/homepage/CommunityStats.js +0 -6
  18. package/dist/components/homepage/CommunityStatsItems.d.ts +0 -7
  19. package/dist/components/homepage/CommunityStatsItems.js +0 -58
  20. package/dist/components/homepage/Counter.d.ts +0 -9
  21. package/dist/components/homepage/Counter.js +0 -55
  22. package/dist/components/homepage/Demo/Card.d.ts +0 -15
  23. package/dist/components/homepage/Demo/Card.js +0 -174
  24. package/dist/components/homepage/Demo/Cards.d.ts +0 -15
  25. package/dist/components/homepage/Demo/Cards.js +0 -57
  26. package/dist/components/homepage/Demo/Comp.d.ts +0 -38
  27. package/dist/components/homepage/Demo/Comp.js +0 -71
  28. package/dist/components/homepage/Demo/CurrentCountry.d.ts +0 -9
  29. package/dist/components/homepage/Demo/CurrentCountry.js +0 -48
  30. package/dist/components/homepage/Demo/DemoError.d.ts +0 -2
  31. package/dist/components/homepage/Demo/DemoError.js +0 -10
  32. package/dist/components/homepage/Demo/DemoErrorIcon.d.ts +0 -2
  33. package/dist/components/homepage/Demo/DemoErrorIcon.js +0 -16
  34. package/dist/components/homepage/Demo/DemoRender.d.ts +0 -102
  35. package/dist/components/homepage/Demo/DemoRender.js +0 -95
  36. package/dist/components/homepage/Demo/DigitWheel.d.ts +0 -9
  37. package/dist/components/homepage/Demo/DigitWheel.js +0 -94
  38. package/dist/components/homepage/Demo/DisplayedEmoji.d.ts +0 -5
  39. package/dist/components/homepage/Demo/DisplayedEmoji.js +0 -63
  40. package/dist/components/homepage/Demo/DoneCheckmark.d.ts +0 -2
  41. package/dist/components/homepage/Demo/DoneCheckmark.js +0 -20
  42. package/dist/components/homepage/Demo/DownloadNudge.d.ts +0 -2
  43. package/dist/components/homepage/Demo/DownloadNudge.js +0 -27
  44. package/dist/components/homepage/Demo/DragAndDropNudge.d.ts +0 -3
  45. package/dist/components/homepage/Demo/DragAndDropNudge.js +0 -26
  46. package/dist/components/homepage/Demo/EmojiCard.d.ts +0 -10
  47. package/dist/components/homepage/Demo/EmojiCard.js +0 -119
  48. package/dist/components/homepage/Demo/Minus.d.ts +0 -5
  49. package/dist/components/homepage/Demo/Minus.js +0 -11
  50. package/dist/components/homepage/Demo/PlayPauseButton.d.ts +0 -5
  51. package/dist/components/homepage/Demo/PlayPauseButton.js +0 -47
  52. package/dist/components/homepage/Demo/PlayerControls.d.ts +0 -8
  53. package/dist/components/homepage/Demo/PlayerControls.js +0 -15
  54. package/dist/components/homepage/Demo/PlayerSeekBar.d.ts +0 -11
  55. package/dist/components/homepage/Demo/PlayerSeekBar.js +0 -216
  56. package/dist/components/homepage/Demo/PlayerVolume.d.ts +0 -5
  57. package/dist/components/homepage/Demo/PlayerVolume.js +0 -53
  58. package/dist/components/homepage/Demo/Progress.d.ts +0 -4
  59. package/dist/components/homepage/Demo/Progress.js +0 -14
  60. package/dist/components/homepage/Demo/Spinner.d.ts +0 -5
  61. package/dist/components/homepage/Demo/Spinner.js +0 -37
  62. package/dist/components/homepage/Demo/Switcher.d.ts +0 -6
  63. package/dist/components/homepage/Demo/Switcher.js +0 -25
  64. package/dist/components/homepage/Demo/Temperature.d.ts +0 -6
  65. package/dist/components/homepage/Demo/Temperature.js +0 -21
  66. package/dist/components/homepage/Demo/TemperatureNumber.d.ts +0 -5
  67. package/dist/components/homepage/Demo/TemperatureNumber.js +0 -36
  68. package/dist/components/homepage/Demo/ThemeNudge.d.ts +0 -3
  69. package/dist/components/homepage/Demo/ThemeNudge.js +0 -35
  70. package/dist/components/homepage/Demo/TimeDisplay.d.ts +0 -6
  71. package/dist/components/homepage/Demo/TimeDisplay.js +0 -27
  72. package/dist/components/homepage/Demo/TrendingRepos.d.ts +0 -6
  73. package/dist/components/homepage/Demo/TrendingRepos.js +0 -65
  74. package/dist/components/homepage/Demo/icons.d.ts +0 -10
  75. package/dist/components/homepage/Demo/icons.js +0 -22
  76. package/dist/components/homepage/Demo/index.d.ts +0 -2
  77. package/dist/components/homepage/Demo/index.js +0 -95
  78. package/dist/components/homepage/Demo/math.d.ts +0 -10
  79. package/dist/components/homepage/Demo/math.js +0 -29
  80. package/dist/components/homepage/Demo/types.d.ts +0 -6
  81. package/dist/components/homepage/Demo/types.js +0 -0
  82. package/dist/components/homepage/EvaluateRemotion.d.ts +0 -3
  83. package/dist/components/homepage/EvaluateRemotion.js +0 -39
  84. package/dist/components/homepage/FreePricing.d.ts +0 -4
  85. package/dist/components/homepage/FreePricing.js +0 -75
  86. package/dist/components/homepage/GetStartedStrip.d.ts +0 -2
  87. package/dist/components/homepage/GetStartedStrip.js +0 -14
  88. package/dist/components/homepage/GitHubButton.d.ts +0 -2
  89. package/dist/components/homepage/GitHubButton.js +0 -7
  90. package/dist/components/homepage/IconForTemplate.d.ts +0 -6
  91. package/dist/components/homepage/IconForTemplate.js +0 -98
  92. package/dist/components/homepage/IfYouKnowReact.d.ts +0 -3
  93. package/dist/components/homepage/IfYouKnowReact.js +0 -23
  94. package/dist/components/homepage/InfoTooltip.d.ts +0 -6
  95. package/dist/components/homepage/InfoTooltip.js +0 -6
  96. package/dist/components/homepage/MoreTemplatesButton.d.ts +0 -2
  97. package/dist/components/homepage/MoreTemplatesButton.js +0 -10
  98. package/dist/components/homepage/MoreVideoPowerSection.d.ts +0 -2
  99. package/dist/components/homepage/MoreVideoPowerSection.js +0 -16
  100. package/dist/components/homepage/MuxVideo.d.ts +0 -7
  101. package/dist/components/homepage/MuxVideo.js +0 -45
  102. package/dist/components/homepage/NewsletterButton.d.ts +0 -2
  103. package/dist/components/homepage/NewsletterButton.js +0 -39
  104. package/dist/components/homepage/ParameterizeAndEdit.d.ts +0 -2
  105. package/dist/components/homepage/ParameterizeAndEdit.js +0 -22
  106. package/dist/components/homepage/Pricing.d.ts +0 -2
  107. package/dist/components/homepage/Pricing.js +0 -15
  108. package/dist/components/homepage/PricingBulletPoint.d.ts +0 -6
  109. package/dist/components/homepage/PricingBulletPoint.js +0 -19
  110. package/dist/components/homepage/RealMp4Videos.d.ts +0 -2
  111. package/dist/components/homepage/RealMp4Videos.js +0 -41
  112. package/dist/components/homepage/Spacer.d.ts +0 -2
  113. package/dist/components/homepage/Spacer.js +0 -4
  114. package/dist/components/homepage/TemplateIcon.d.ts +0 -5
  115. package/dist/components/homepage/TemplateIcon.js +0 -24
  116. package/dist/components/homepage/TextInput.d.ts +0 -7
  117. package/dist/components/homepage/TextInput.js +0 -34
  118. package/dist/components/homepage/TrustedByBanner.d.ts +0 -2
  119. package/dist/components/homepage/TrustedByBanner.js +0 -32
  120. package/dist/components/homepage/VideoApps.d.ts +0 -4
  121. package/dist/components/homepage/VideoApps.js +0 -72
  122. package/dist/components/homepage/VideoAppsShowcase.d.ts +0 -3
  123. package/dist/components/homepage/VideoAppsShowcase.js +0 -163
  124. package/dist/components/homepage/VideoAppsTitle.d.ts +0 -4
  125. package/dist/components/homepage/VideoAppsTitle.js +0 -4
  126. package/dist/components/homepage/VideoPlayerWithControls.d.ts +0 -20
  127. package/dist/components/homepage/VideoPlayerWithControls.js +0 -104
  128. package/dist/components/homepage/WriteInReact.d.ts +0 -2
  129. package/dist/components/homepage/WriteInReact.js +0 -10
  130. package/dist/components/homepage/YouAreHere.d.ts +0 -2
  131. package/dist/components/homepage/YouAreHere.js +0 -23
  132. package/dist/components/homepage/layout/Button.d.ts +0 -19
  133. package/dist/components/homepage/layout/Button.js +0 -29
  134. package/dist/components/homepage/layout/colors.d.ts +0 -13
  135. package/dist/components/homepage/layout/colors.js +0 -14
  136. package/dist/components/homepage/layout/use-color-mode.d.ts +0 -21
  137. package/dist/components/homepage/layout/use-color-mode.js +0 -22
  138. package/dist/components/homepage/layout/use-el-size.d.ts +0 -5
  139. package/dist/components/homepage/layout/use-el-size.js +0 -40
  140. package/dist/components/homepage/layout/use-mobile-layout.d.ts +0 -1
  141. package/dist/components/homepage/layout/use-mobile-layout.js +0 -6
  142. package/dist/components/icons/blank.d.ts +0 -3
  143. package/dist/components/icons/blank.js +0 -4
  144. package/dist/components/icons/clone.d.ts +0 -2
  145. package/dist/components/icons/clone.js +0 -2
  146. package/dist/components/icons/code-hike.d.ts +0 -3
  147. package/dist/components/icons/code-hike.js +0 -4
  148. package/dist/components/icons/cubes.d.ts +0 -3
  149. package/dist/components/icons/cubes.js +0 -4
  150. package/dist/components/icons/js.d.ts +0 -3
  151. package/dist/components/icons/js.js +0 -4
  152. package/dist/components/icons/music.d.ts +0 -2
  153. package/dist/components/icons/music.js +0 -4
  154. package/dist/components/icons/next.d.ts +0 -4
  155. package/dist/components/icons/next.js +0 -4
  156. package/dist/components/icons/overlay.d.ts +0 -3
  157. package/dist/components/icons/overlay.js +0 -4
  158. package/dist/components/icons/recorder.d.ts +0 -3
  159. package/dist/components/icons/recorder.js +0 -4
  160. package/dist/components/icons/remix.d.ts +0 -3
  161. package/dist/components/icons/remix.js +0 -4
  162. package/dist/components/icons/skia.d.ts +0 -3
  163. package/dist/components/icons/skia.js +0 -4
  164. package/dist/components/icons/stargazer.d.ts +0 -3
  165. package/dist/components/icons/stargazer.js +0 -4
  166. package/dist/components/icons/still.d.ts +0 -3
  167. package/dist/components/icons/still.js +0 -4
  168. package/dist/components/icons/tailwind.d.ts +0 -3
  169. package/dist/components/icons/tailwind.js +0 -4
  170. package/dist/components/icons/tiktok.d.ts +0 -3
  171. package/dist/components/icons/tiktok.js +0 -4
  172. package/dist/components/icons/ts.d.ts +0 -3
  173. package/dist/components/icons/ts.js +0 -4
  174. package/dist/components/icons/tts.d.ts +0 -3
  175. package/dist/components/icons/tts.js +0 -4
  176. package/dist/components/icons/undo.d.ts +0 -3
  177. package/dist/components/icons/undo.js +0 -2
  178. package/dist/components/icons/waveform.d.ts +0 -3
  179. package/dist/components/icons/waveform.js +0 -4
  180. package/dist/main.d.ts +0 -1
  181. package/dist/main.js +0 -6
@@ -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
- }>;
@@ -1,21 +0,0 @@
1
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
- import { AbsoluteFill } from 'remotion';
3
- import { TemperatureNumber } from './TemperatureNumber';
4
- export const Temperature = ({ theme, city, temperatureInCelsius }) => {
5
- if (temperatureInCelsius === null) {
6
- return null;
7
- }
8
- return (_jsx(AbsoluteFill, { children: _jsxs(AbsoluteFill, { style: {
9
- alignItems: 'center',
10
- justifyContent: 'center',
11
- paddingLeft: 20,
12
- paddingRight: 20,
13
- }, children: [_jsxs("div", { style: {
14
- color: '#0b84f3',
15
- fontFamily: 'GTPlanar',
16
- fontWeight: '500',
17
- fontSize: 13,
18
- textAlign: 'center',
19
- marginTop: 5,
20
- }, children: ["Temperature in ", city] }), _jsx(TemperatureNumber, { theme: theme, temperatureInCelsius: temperatureInCelsius })] }) }));
21
- };
@@ -1,5 +0,0 @@
1
- import React from 'react';
2
- export declare const TemperatureNumber: React.FC<{
3
- readonly theme: 'dark' | 'light';
4
- readonly temperatureInCelsius: number;
5
- }>;
@@ -1,36 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Wheel } from './DigitWheel';
3
- export const TemperatureNumber = ({ theme, temperatureInCelsius }) => {
4
- const temperatureInFahrenheit = (temperatureInCelsius * 9) / 5 + 32;
5
- const celsiusDegree = Math.abs(temperatureInCelsius);
6
- const fahrenheitDegree = Math.abs(temperatureInFahrenheit);
7
- const paddedCelsiusDegree = String(celsiusDegree)
8
- .padStart(fahrenheitDegree.toFixed(0).length, '0')
9
- .split('');
10
- const paddedFahrenheitDegree = fahrenheitDegree
11
- .toFixed(0)
12
- .padStart(paddedCelsiusDegree.length, '0')
13
- .split('');
14
- return (_jsxs("div", { style: {
15
- lineHeight: 1.1,
16
- fontFamily: 'GTPlanar',
17
- textAlign: 'center',
18
- fontWeight: 'bold',
19
- fontSize: 60,
20
- color: theme === 'dark' ? 'white' : 'black',
21
- fontVariantNumeric: 'tabular-nums',
22
- display: 'flex',
23
- flexDirection: 'row',
24
- alignItems: 'center',
25
- }, children: [paddedCelsiusDegree.map((digit, i) => (_jsx(Wheel
26
- // eslint-disable-next-line react/no-array-index-key
27
- , { delay: i * 4, renderDigit: (_i) => 9 - _i, digits: [
28
- Number(paddedFahrenheitDegree[i]),
29
- Number(digit),
30
- Number(paddedFahrenheitDegree[i]),
31
- ], isNegative: [
32
- temperatureInFahrenheit < 0,
33
- temperatureInCelsius < 0,
34
- temperatureInFahrenheit < 0,
35
- ], isLeadingDigit: i === 0 }, i))), _jsx("div", { style: { width: 8 } }), "\u00B0", _jsx(Wheel, { delay: paddedCelsiusDegree.length * 4 - 2, digits: [0, 1, 0], renderDigit: (_i) => _i % 2 === 0 ? 'C' : _jsx("span", { style: { marginLeft: -5 }, children: "F" }), isLeadingDigit: false, isNegative: [false, false, false] })] }));
36
- };
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- export declare const Icon: React.FC;
3
- export declare const ThemeNudge: React.FC;
@@ -1,35 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React from 'react';
3
- import { FONTS } from '../layout/colors';
4
- import { useColorMode } from '../layout/use-color-mode';
5
- const origWidth = 21;
6
- const scale = 0.4;
7
- export const Icon = () => {
8
- return (_jsx("svg", { style: {
9
- width: origWidth * scale,
10
- }, viewBox: "0 0 21 161", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { d: "M5 5C23 59.5 14.5 120.5 5.00005 156", stroke: "currentColor", strokeWidth: "8", strokeLinecap: "round" }) }));
11
- };
12
- export const ThemeNudge = () => {
13
- const { colorMode, setColorMode } = useColorMode();
14
- const toggleTheme = React.useCallback((e) => {
15
- e.preventDefault();
16
- setColorMode(colorMode === 'dark' ? 'light' : 'dark');
17
- }, [colorMode, setColorMode]);
18
- return (_jsx("div", { style: {
19
- flexDirection: 'row',
20
- display: 'flex',
21
- justifyContent: 'flex-start',
22
- paddingBottom: 5,
23
- textAlign: 'right',
24
- position: 'absolute',
25
- right: 0,
26
- }, children: _jsxs("div", { children: [_jsxs("div", { style: {
27
- fontFamily: FONTS.GTPLANAR,
28
- fontSize: 15,
29
- width: 280,
30
- paddingBottom: 8,
31
- marginLeft: -15,
32
- textWrap: 'balance',
33
- marginTop: 5,
34
- }, children: [_jsxs("a", { href: "#", onClick: toggleTheme, className: "bluelink", children: ["Switch to ", colorMode === 'dark' ? 'light' : 'dark', " mode"] }), ' ', "and see the video adjust!", ' '] }), _jsx(Icon, {})] }) }));
35
- };
@@ -1,6 +0,0 @@
1
- import type { PlayerRef } from '@remotion/player';
2
- import React from 'react';
3
- export declare const TimeDisplay: React.FC<{
4
- readonly fps: number;
5
- readonly playerRef: React.RefObject<PlayerRef | null>;
6
- }>;
@@ -1,27 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import React, { useEffect } from 'react';
3
- const formatTime = (timeInSeconds) => {
4
- const minutes = Math.floor(timeInSeconds / 60);
5
- const seconds = Math.floor(timeInSeconds - minutes * 60);
6
- return `${String(minutes)}:${String(seconds).padStart(2, '0')}`;
7
- };
8
- export const TimeDisplay = ({ fps, playerRef }) => {
9
- const [time, setTime] = React.useState(0);
10
- useEffect(() => {
11
- const { current } = playerRef;
12
- if (!current) {
13
- return;
14
- }
15
- const onTimeUpdate = () => {
16
- setTime(current.getCurrentFrame());
17
- };
18
- current.addEventListener('frameupdate', onTimeUpdate);
19
- return () => {
20
- current.removeEventListener('frameupdate', onTimeUpdate);
21
- };
22
- }, [playerRef]);
23
- return (_jsx("div", { style: {
24
- fontSize: 16,
25
- fontVariantNumeric: 'tabular-nums',
26
- }, children: _jsx("span", { children: formatTime(time / fps) }) }));
27
- };
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- import type { RemoteData } from './Comp';
3
- export declare const TrendingRepos: React.FC<{
4
- readonly theme: 'dark' | 'light';
5
- readonly trending: RemoteData | null;
6
- }>;
@@ -1,65 +0,0 @@
1
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
- import { useMemo } from 'react';
3
- import { AbsoluteFill, spring, useCurrentFrame, useVideoConfig } from 'remotion';
4
- const TrendingRepoItem = ({ repo, theme, number }) => {
5
- const frame = useCurrentFrame();
6
- const { fps } = useVideoConfig();
7
- const progress = spring({
8
- fps,
9
- frame,
10
- config: {
11
- damping: 200,
12
- },
13
- delay: number * 10 + 20,
14
- });
15
- const item = useMemo(() => {
16
- return {
17
- lineHeight: 1.1,
18
- fontFamily: 'GTPlanar',
19
- fontWeight: '500',
20
- color: theme === 'dark' ? 'white' : 'black',
21
- fontFeatureSettings: "'ss03' 1",
22
- opacity: progress,
23
- };
24
- }, [progress, theme]);
25
- return (_jsxs("div", { style: item, children: [number, ". ", repo] }));
26
- };
27
- export const TrendingRepos = ({ theme, trending }) => {
28
- const fill = theme === 'light' ? '#666' : '#999';
29
- const frame = useCurrentFrame();
30
- const { fps } = useVideoConfig();
31
- const progress1 = spring({
32
- fps,
33
- frame,
34
- config: {
35
- damping: 200,
36
- },
37
- delay: 0,
38
- });
39
- if (trending === null) {
40
- return null;
41
- }
42
- return (_jsx(AbsoluteFill, { children: _jsx(AbsoluteFill, { style: {
43
- justifyContent: 'center',
44
- paddingLeft: 20,
45
- paddingRight: 20,
46
- }, children: _jsxs("div", { children: [_jsx("div", { style: {
47
- color: fill,
48
- fontFamily: 'GTPlanar',
49
- fontWeight: '500',
50
- fontSize: 12,
51
- opacity: progress1,
52
- }, children: new Intl.DateTimeFormat('en-US', {
53
- weekday: 'long',
54
- month: 'long',
55
- day: 'numeric',
56
- }).format(new Date(trending.date)) }), _jsx("div", { style: {
57
- color: '#0b84f3',
58
- fontFamily: 'GTPlanar',
59
- fontWeight: '500',
60
- fontSize: 16,
61
- marginBottom: 15,
62
- opacity: progress1,
63
- lineHeight: 1,
64
- }, children: "Trending repositories" }), _jsx(TrendingRepoItem, { number: 1, repo: trending.repos[0], theme: theme }), _jsx(TrendingRepoItem, { number: 2, repo: trending.repos[1], theme: theme }), _jsx(TrendingRepoItem, { number: 3, repo: trending.repos[2], theme: theme })] }) }) }));
65
- };
@@ -1,10 +0,0 @@
1
- import type { SVGProps } from 'react';
2
- import React from 'react';
3
- export declare const IconLeft: React.FC<SVGProps<SVGSVGElement>>;
4
- export declare const IconRight: React.FC<SVGProps<SVGSVGElement>>;
5
- export declare const CancelIcon: React.FC<SVGProps<SVGSVGElement>>;
6
- export declare const PausedIcon: React.FC<SVGProps<SVGSVGElement>>;
7
- export declare const PlayingIcon: React.FC<SVGProps<SVGSVGElement>>;
8
- export declare const FullscreenIcon: React.FC<SVGProps<SVGSVGElement>>;
9
- export declare const NotMutedIcon: React.FC<SVGProps<SVGSVGElement>>;
10
- export declare const IsMutedIcon: React.FC<SVGProps<SVGSVGElement>>;
@@ -1,22 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { RED } from '../layout/colors';
3
- export const IconLeft = (props) => (_jsx("svg", { viewBox: "0 0 320 512", ...props, children: _jsx("path", { fill: "currentColor", d: "M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z" }) }));
4
- export const IconRight = (props) => (_jsx("svg", { viewBox: "0 0 320 512", ...props, children: _jsx("path", { fill: "currentColor", d: "M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z" }) }));
5
- export const CancelIcon = (props) => {
6
- return (_jsx("svg", { "aria-hidden": "true", focusable: "false", "data-prefix": "fas", "data-icon": "times", className: "svg-inline--fa fa-times fa-w-11", role: "img", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 352 512", ...props, children: _jsx("path", { fill: "currentColor", d: "M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z" }) }));
7
- };
8
- export const PausedIcon = (props) => {
9
- return (_jsx("svg", { "aria-hidden": "true", focusable: "false", "data-prefix": "fas", "data-icon": "play", className: "svg-inline--fa fa-play fa-w-14", role: "img", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 448 512", ...props, children: _jsx("path", { fill: "currentColor", d: "M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z" }) }));
10
- };
11
- export const PlayingIcon = (props) => {
12
- return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 320 512", fill: "currentColor", ...props, children: _jsx("path", { d: "M48 64C21.5 64 0 85.5 0 112L0 400c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-288c0-26.5-21.5-48-48-48L48 64zm192 0c-26.5 0-48 21.5-48 48l0 288c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-288c0-26.5-21.5-48-48-48l-32 0z" }) }));
13
- };
14
- export const FullscreenIcon = (props) => {
15
- return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 448 512", fill: "currentColor", ...props, children: _jsx("path", { d: "M32 32C14.3 32 0 46.3 0 64l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96z" }) }));
16
- };
17
- export const NotMutedIcon = (props) => {
18
- return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", ...props, viewBox: "0 0 640 512", fill: "currentColor", children: _jsx("path", { d: "M32 160l0 192 128 0L304 480l48 0 0-448-48 0L160 160 32 160zM441.6 332.8C464.9 315.3 480 287.4 480 256s-15.1-59.3-38.4-76.8l-28.8 38.4c11.7 8.8 19.2 22.7 19.2 38.4s-7.5 29.6-19.2 38.4l28.8 38.4zm57.6 76.8c46.6-35 76.8-90.8 76.8-153.6s-30.2-118.6-76.8-153.6l-28.8 38.4c35 26.3 57.6 68.1 57.6 115.2s-22.6 88.9-57.6 115.2l28.8 38.4z" }) }));
19
- };
20
- export const IsMutedIcon = (props) => {
21
- return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", ...props, viewBox: "0 0 640 512", fill: RED, children: _jsx("path", { d: "M48.4 14.8L29.4 .1 0 38l19 14.7L591.5 497.2l19 14.7L639.9 474l-19-14.7-95.1-73.8C557 351.3 576 305.9 576 256c0-62.8-30.2-118.6-76.8-153.6l-28.8 38.4c35 26.3 57.6 68.1 57.6 115.2c0 38.8-15.3 74-40.3 99.9l-38.2-29.7C468.3 308.7 480 283.7 480 256c0-31.4-15.1-59.3-38.4-76.8l-28.8 38.4c11.7 8.8 19.2 22.7 19.2 38.4s-7.5 29.6-19.2 38.4l5.9 7.9L352 250.5 352 32l-48 0L195.2 128.7 48.4 14.8zM352 373.3L81.2 160 32 160l0 192 128 0L304 480l48 0 0-106.7z" }) }));
22
- };
@@ -1,2 +0,0 @@
1
- import React from 'react';
2
- export declare const Demo: React.FC;