@remotion/promo-pages 4.0.261 → 4.0.263

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 (173) hide show
  1. package/.turbo/turbo-make.log +2 -2
  2. package/dist/Homepage.js +129 -64
  3. package/dist/cn.d.ts +2 -0
  4. package/dist/cn.js +5 -0
  5. package/dist/components/Homepage.d.ts +7 -0
  6. package/dist/components/Homepage.js +21 -0
  7. package/dist/components/homepage/BackgroundAnimation.d.ts +2 -0
  8. package/dist/components/homepage/BackgroundAnimation.js +66 -0
  9. package/dist/components/homepage/ChooseTemplate.d.ts +2 -0
  10. package/dist/components/homepage/ChooseTemplate.js +27 -0
  11. package/dist/components/homepage/CodeExample.d.ts +2 -0
  12. package/dist/components/homepage/CodeExample.js +39 -0
  13. package/dist/components/homepage/CommunityStats.d.ts +3 -0
  14. package/dist/components/homepage/CommunityStats.js +6 -0
  15. package/dist/components/homepage/CommunityStatsItems.d.ts +7 -0
  16. package/dist/components/homepage/CommunityStatsItems.js +58 -0
  17. package/dist/components/homepage/Counter.d.ts +8 -0
  18. package/dist/components/homepage/Counter.js +47 -0
  19. package/dist/components/homepage/Demo/Card.d.ts +15 -0
  20. package/dist/components/homepage/Demo/Card.js +174 -0
  21. package/dist/components/homepage/Demo/Cards.d.ts +15 -0
  22. package/dist/components/homepage/Demo/Cards.js +57 -0
  23. package/dist/components/homepage/Demo/Comp.d.ts +38 -0
  24. package/dist/components/homepage/Demo/Comp.js +71 -0
  25. package/dist/components/homepage/Demo/CurrentCountry.d.ts +9 -0
  26. package/dist/components/homepage/Demo/CurrentCountry.js +48 -0
  27. package/dist/components/homepage/Demo/DemoError.d.ts +2 -0
  28. package/dist/components/homepage/Demo/DemoError.js +10 -0
  29. package/dist/components/homepage/Demo/DemoErrorIcon.d.ts +2 -0
  30. package/dist/components/homepage/Demo/DemoErrorIcon.js +16 -0
  31. package/dist/components/homepage/Demo/DemoRender.d.ts +102 -0
  32. package/dist/components/homepage/Demo/DemoRender.js +95 -0
  33. package/dist/components/homepage/Demo/DigitWheel.d.ts +9 -0
  34. package/dist/components/homepage/Demo/DigitWheel.js +94 -0
  35. package/dist/components/homepage/Demo/DisplayedEmoji.d.ts +5 -0
  36. package/dist/components/homepage/Demo/DisplayedEmoji.js +51 -0
  37. package/dist/components/homepage/Demo/DoneCheckmark.d.ts +2 -0
  38. package/dist/components/homepage/Demo/DoneCheckmark.js +20 -0
  39. package/dist/components/homepage/Demo/DownloadNudge.d.ts +2 -0
  40. package/dist/components/homepage/Demo/DownloadNudge.js +27 -0
  41. package/dist/components/homepage/Demo/DragAndDropNudge.d.ts +3 -0
  42. package/dist/components/homepage/Demo/DragAndDropNudge.js +26 -0
  43. package/dist/components/homepage/Demo/EmojiCard.d.ts +10 -0
  44. package/dist/components/homepage/Demo/EmojiCard.js +119 -0
  45. package/dist/components/homepage/Demo/Minus.d.ts +5 -0
  46. package/dist/components/homepage/Demo/Minus.js +11 -0
  47. package/dist/components/homepage/Demo/PlayPauseButton.d.ts +5 -0
  48. package/dist/components/homepage/Demo/PlayPauseButton.js +47 -0
  49. package/dist/components/homepage/Demo/PlayerControls.d.ts +8 -0
  50. package/dist/components/homepage/Demo/PlayerControls.js +15 -0
  51. package/dist/components/homepage/Demo/PlayerSeekBar.d.ts +11 -0
  52. package/dist/components/homepage/Demo/PlayerSeekBar.js +216 -0
  53. package/dist/components/homepage/Demo/PlayerVolume.d.ts +5 -0
  54. package/dist/components/homepage/Demo/PlayerVolume.js +53 -0
  55. package/dist/components/homepage/Demo/Progress.d.ts +4 -0
  56. package/dist/components/homepage/Demo/Progress.js +14 -0
  57. package/dist/components/homepage/Demo/Spinner.d.ts +5 -0
  58. package/dist/components/homepage/Demo/Spinner.js +37 -0
  59. package/dist/components/homepage/Demo/Switcher.d.ts +6 -0
  60. package/dist/components/homepage/Demo/Switcher.js +25 -0
  61. package/dist/components/homepage/Demo/Temperature.d.ts +6 -0
  62. package/dist/components/homepage/Demo/Temperature.js +21 -0
  63. package/dist/components/homepage/Demo/TemperatureNumber.d.ts +5 -0
  64. package/dist/components/homepage/Demo/TemperatureNumber.js +36 -0
  65. package/dist/components/homepage/Demo/ThemeNudge.d.ts +3 -0
  66. package/dist/components/homepage/Demo/ThemeNudge.js +35 -0
  67. package/dist/components/homepage/Demo/TimeDisplay.d.ts +6 -0
  68. package/dist/components/homepage/Demo/TimeDisplay.js +27 -0
  69. package/dist/components/homepage/Demo/TrendingRepos.d.ts +6 -0
  70. package/dist/components/homepage/Demo/TrendingRepos.js +65 -0
  71. package/dist/components/homepage/Demo/icons.d.ts +10 -0
  72. package/dist/components/homepage/Demo/icons.js +22 -0
  73. package/dist/components/homepage/Demo/index.d.ts +2 -0
  74. package/dist/components/homepage/Demo/index.js +95 -0
  75. package/dist/components/homepage/Demo/math.d.ts +10 -0
  76. package/dist/components/homepage/Demo/math.js +29 -0
  77. package/dist/components/homepage/Demo/types.d.ts +6 -0
  78. package/dist/components/homepage/Demo/types.js +0 -0
  79. package/dist/components/homepage/Editor.d.ts +2 -0
  80. package/dist/components/homepage/Editor.js +37 -0
  81. package/dist/components/homepage/EvaluateRemotion.d.ts +3 -0
  82. package/dist/components/homepage/EvaluateRemotion.js +38 -0
  83. package/dist/components/homepage/FreePricing.d.ts +4 -0
  84. package/dist/components/homepage/FreePricing.js +80 -0
  85. package/dist/components/homepage/GetStartedStrip.d.ts +2 -0
  86. package/dist/components/homepage/GetStartedStrip.js +14 -0
  87. package/dist/components/homepage/GitHubButton.d.ts +2 -0
  88. package/dist/components/homepage/GitHubButton.js +7 -0
  89. package/dist/components/homepage/IconForTemplate.d.ts +6 -0
  90. package/dist/components/homepage/IconForTemplate.js +88 -0
  91. package/dist/components/homepage/IfYouKnowReact.d.ts +2 -0
  92. package/dist/components/homepage/IfYouKnowReact.js +6 -0
  93. package/dist/components/homepage/InfoTooltip.d.ts +6 -0
  94. package/dist/components/homepage/InfoTooltip.js +6 -0
  95. package/dist/components/homepage/MoreTemplatesButton.d.ts +2 -0
  96. package/dist/components/homepage/MoreTemplatesButton.js +10 -0
  97. package/dist/components/homepage/MuxVideo.d.ts +7 -0
  98. package/dist/components/homepage/MuxVideo.js +45 -0
  99. package/dist/components/homepage/NewsletterButton.d.ts +2 -0
  100. package/dist/components/homepage/NewsletterButton.js +38 -0
  101. package/dist/components/homepage/Pricing.d.ts +2 -0
  102. package/dist/components/homepage/Pricing.js +15 -0
  103. package/dist/components/homepage/PricingBulletPoint.d.ts +6 -0
  104. package/dist/components/homepage/PricingBulletPoint.js +19 -0
  105. package/dist/components/homepage/RealMp4Videos.d.ts +2 -0
  106. package/dist/components/homepage/RealMp4Videos.js +25 -0
  107. package/dist/components/homepage/Spacer.d.ts +2 -0
  108. package/dist/components/homepage/Spacer.js +4 -0
  109. package/dist/components/homepage/TemplateIcon.d.ts +5 -0
  110. package/dist/components/homepage/TemplateIcon.js +24 -0
  111. package/dist/components/homepage/TextInput.d.ts +7 -0
  112. package/dist/components/homepage/TextInput.js +34 -0
  113. package/dist/components/homepage/TrustedByBanner.d.ts +2 -0
  114. package/dist/components/homepage/TrustedByBanner.js +32 -0
  115. package/dist/components/homepage/VideoApps.d.ts +4 -0
  116. package/dist/components/homepage/VideoApps.js +72 -0
  117. package/dist/components/homepage/VideoAppsShowcase.d.ts +3 -0
  118. package/dist/components/homepage/VideoAppsShowcase.js +160 -0
  119. package/dist/components/homepage/VideoAppsTitle.d.ts +5 -0
  120. package/dist/components/homepage/VideoAppsTitle.js +7 -0
  121. package/dist/components/homepage/VideoPlayerWithControls.d.ts +20 -0
  122. package/dist/components/homepage/VideoPlayerWithControls.js +104 -0
  123. package/dist/components/homepage/WriteInReact.d.ts +2 -0
  124. package/dist/components/homepage/WriteInReact.js +10 -0
  125. package/dist/components/homepage/YouAreHere.d.ts +2 -0
  126. package/dist/components/homepage/YouAreHere.js +23 -0
  127. package/dist/components/homepage/layout/Button.d.ts +19 -0
  128. package/dist/components/homepage/layout/Button.js +29 -0
  129. package/dist/components/homepage/layout/colors.d.ts +13 -0
  130. package/dist/components/homepage/layout/colors.js +14 -0
  131. package/dist/components/homepage/layout/use-color-mode.d.ts +21 -0
  132. package/dist/components/homepage/layout/use-color-mode.js +22 -0
  133. package/dist/components/homepage/layout/use-el-size.d.ts +5 -0
  134. package/dist/components/homepage/layout/use-el-size.js +40 -0
  135. package/dist/components/homepage/layout/use-mobile-layout.d.ts +1 -0
  136. package/dist/components/homepage/layout/use-mobile-layout.js +6 -0
  137. package/dist/components/icons/blank.d.ts +3 -0
  138. package/dist/components/icons/blank.js +4 -0
  139. package/dist/components/icons/clone.d.ts +2 -0
  140. package/dist/components/icons/clone.js +2 -0
  141. package/dist/components/icons/code-hike.d.ts +3 -0
  142. package/dist/components/icons/code-hike.js +4 -0
  143. package/dist/components/icons/cubes.d.ts +3 -0
  144. package/dist/components/icons/cubes.js +4 -0
  145. package/dist/components/icons/js.d.ts +3 -0
  146. package/dist/components/icons/js.js +4 -0
  147. package/dist/components/icons/next.d.ts +4 -0
  148. package/dist/components/icons/next.js +4 -0
  149. package/dist/components/icons/overlay.d.ts +3 -0
  150. package/dist/components/icons/overlay.js +4 -0
  151. package/dist/components/icons/remix.d.ts +3 -0
  152. package/dist/components/icons/remix.js +4 -0
  153. package/dist/components/icons/skia.d.ts +3 -0
  154. package/dist/components/icons/skia.js +4 -0
  155. package/dist/components/icons/stargazer.d.ts +3 -0
  156. package/dist/components/icons/stargazer.js +4 -0
  157. package/dist/components/icons/still.d.ts +3 -0
  158. package/dist/components/icons/still.js +4 -0
  159. package/dist/components/icons/tailwind.d.ts +3 -0
  160. package/dist/components/icons/tailwind.js +4 -0
  161. package/dist/components/icons/tiktok.d.ts +3 -0
  162. package/dist/components/icons/tiktok.js +4 -0
  163. package/dist/components/icons/ts.d.ts +3 -0
  164. package/dist/components/icons/ts.js +4 -0
  165. package/dist/components/icons/tts.d.ts +3 -0
  166. package/dist/components/icons/tts.js +4 -0
  167. package/dist/components/icons/undo.d.ts +3 -0
  168. package/dist/components/icons/undo.js +2 -0
  169. package/dist/components/icons/waveform.d.ts +3 -0
  170. package/dist/components/icons/waveform.js +4 -0
  171. package/dist/main.d.ts +1 -0
  172. package/dist/main.js +6 -0
  173. package/package.json +10 -10
@@ -1,8 +1,8 @@
1
1
 
2
2
  
3
- > @remotion/promo-pages@4.0.261 make /Users/jonathanburger/remotion/packages/promo-pages
3
+ > @remotion/promo-pages@4.0.263 make /Users/jonathanburger/remotion/packages/promo-pages
4
4
  > bun --env-file=../.env.bundle bundle.ts
5
5
 
6
6
  ≈ tailwindcss v4.0.0
7
7
 
8
- Done in 37ms
8
+ Done in 110ms
package/dist/Homepage.js CHANGED
@@ -84,7 +84,7 @@ import {
84
84
  useState as useState6
85
85
  } from "react";
86
86
  import { jsx as jsx11 } from "react/jsx-runtime";
87
- import { forwardRef as forwardRef6, useCallback as useCallback11, useContext as useContext22 } from "react";
87
+ import { forwardRef as forwardRef6, useCallback as useCallback11, useContext as useContext23 } from "react";
88
88
  import React9, { createContext as createContext11, useMemo as useMemo11 } from "react";
89
89
  import { jsx as jsx12 } from "react/jsx-runtime";
90
90
  import { useContext as useContext12 } from "react";
@@ -94,7 +94,7 @@ import { createContext as createContext13, useMemo as useMemo12, useReducer } fr
94
94
  import { jsx as jsx14 } from "react/jsx-runtime";
95
95
  import {
96
96
  forwardRef as forwardRef4,
97
- useContext as useContext20,
97
+ useContext as useContext21,
98
98
  useEffect as useEffect14,
99
99
  useImperativeHandle as useImperativeHandle5,
100
100
  useMemo as useMemo19,
@@ -105,21 +105,28 @@ import { useContext as useContext15, useEffect as useEffect7, useMemo as useMemo
105
105
  import { useContext as useContext13 } from "react";
106
106
  import { createContext as createContext14 } from "react";
107
107
  import * as React12 from "react";
108
- import { useCallback as useCallback8, useContext as useContext17, useEffect as useEffect11, useRef as useRef8 } from "react";
108
+ import { useCallback as useCallback8, useContext as useContext18, useEffect as useEffect11, useRef as useRef8 } from "react";
109
109
  import { useCallback as useCallback7, useMemo as useMemo16, useRef as useRef5 } from "react";
110
- import { useContext as useContext16, useMemo as useMemo15 } from "react";
111
- import React13, { useCallback as useCallback6, useEffect as useEffect8, useMemo as useMemo14, useRef as useRef4, useState as useState10 } from "react";
110
+ import { useContext as useContext17, useMemo as useMemo15 } from "react";
111
+ import React13, {
112
+ useCallback as useCallback6,
113
+ useContext as useContext16,
114
+ useEffect as useEffect8,
115
+ useMemo as useMemo14,
116
+ useRef as useRef4,
117
+ useState as useState10
118
+ } from "react";
112
119
  import { jsx as jsx15 } from "react/jsx-runtime";
113
120
  import { useRef as useRef6 } from "react";
114
121
  import { useEffect as useEffect9, useState as useState11 } from "react";
115
122
  import { useEffect as useEffect10, useRef as useRef7 } from "react";
116
123
  import { useCallback as useCallback9, useEffect as useEffect12 } from "react";
117
- import { createContext as createContext15, useContext as useContext18, useMemo as useMemo17 } from "react";
124
+ import { createContext as createContext15, useContext as useContext19, useMemo as useMemo17 } from "react";
118
125
  import React14, {
119
126
  createContext as createContext16,
120
127
  createRef as createRef2,
121
128
  useCallback as useCallback10,
122
- useContext as useContext19,
129
+ useContext as useContext20,
123
130
  useEffect as useEffect13,
124
131
  useMemo as useMemo18,
125
132
  useRef as useRef9,
@@ -129,7 +136,7 @@ import { jsx as jsx16, jsxs as jsxs10 } from "react/jsx-runtime";
129
136
  import { jsx as jsx17 } from "react/jsx-runtime";
130
137
  import {
131
138
  forwardRef as forwardRef5,
132
- useContext as useContext21,
139
+ useContext as useContext22,
133
140
  useEffect as useEffect15,
134
141
  useImperativeHandle as useImperativeHandle6,
135
142
  useLayoutEffect as useLayoutEffect3,
@@ -138,9 +145,9 @@ import {
138
145
  } from "react";
139
146
  import { jsx as jsx18 } from "react/jsx-runtime";
140
147
  import { jsx as jsx19 } from "react/jsx-runtime";
141
- import { Suspense, useContext as useContext24, useEffect as useEffect17 } from "react";
148
+ import { Suspense, useContext as useContext25, useEffect as useEffect17 } from "react";
142
149
  import { createPortal } from "react-dom";
143
- import { createContext as createContext17, useContext as useContext23, useEffect as useEffect16, useMemo as useMemo21 } from "react";
150
+ import { createContext as createContext17, useContext as useContext24, useEffect as useEffect16, useMemo as useMemo21 } from "react";
144
151
  import { jsx as jsx20 } from "react/jsx-runtime";
145
152
  import { jsx as jsx21, jsxs as jsxs22 } from "react/jsx-runtime";
146
153
  import React18, { useMemo as useMemo222 } from "react";
@@ -158,7 +165,7 @@ import { jsx as jsx24 } from "react/jsx-runtime";
158
165
  import {
159
166
  forwardRef as forwardRef8,
160
167
  useCallback as useCallback14,
161
- useContext as useContext25,
168
+ useContext as useContext26,
162
169
  useImperativeHandle as useImperativeHandle8,
163
170
  useLayoutEffect as useLayoutEffect4,
164
171
  useRef as useRef13
@@ -184,7 +191,7 @@ import React29 from "react";
184
191
  import { useCallback as useCallback16 } from "react";
185
192
  import {
186
193
  useCallback as useCallback15,
187
- useContext as useContext26,
194
+ useContext as useContext27,
188
195
  useEffect as useEffect19,
189
196
  useLayoutEffect as useLayoutEffect6,
190
197
  useMemo as useMemo27,
@@ -193,7 +200,7 @@ import {
193
200
  import { jsx as jsx30 } from "react/jsx-runtime";
194
201
  import {
195
202
  forwardRef as forwardRef10,
196
- useContext as useContext27,
203
+ useContext as useContext28,
197
204
  useEffect as useEffect21,
198
205
  useImperativeHandle as useImperativeHandle9,
199
206
  useMemo as useMemo28,
@@ -203,10 +210,10 @@ import {
203
210
  import { useEffect as useEffect20 } from "react";
204
211
  import { jsx as jsx31 } from "react/jsx-runtime";
205
212
  import { jsx as jsx322 } from "react/jsx-runtime";
206
- import { forwardRef as forwardRef12, useCallback as useCallback17, useContext as useContext29 } from "react";
213
+ import { forwardRef as forwardRef12, useCallback as useCallback17, useContext as useContext30 } from "react";
207
214
  import {
208
215
  forwardRef as forwardRef11,
209
- useContext as useContext28,
216
+ useContext as useContext29,
210
217
  useEffect as useEffect222,
211
218
  useImperativeHandle as useImperativeHandle10,
212
219
  useLayoutEffect as useLayoutEffect7,
@@ -720,7 +727,7 @@ var __defProp2, __export2 = (target, all) => {
720
727
  });
721
728
  }, useIsPlayer = () => {
722
729
  return useContext(IsPlayerContext);
723
- }, VERSION = "4.0.261", checkMultipleRemotionVersions = () => {
730
+ }, VERSION = "4.0.263", checkMultipleRemotionVersions = () => {
724
731
  if (typeof globalThis === "undefined") {
725
732
  return;
726
733
  }
@@ -2451,7 +2458,8 @@ Check that all your Remotion packages are on the same version. If your dependenc
2451
2458
  mediaType,
2452
2459
  onAutoPlayError,
2453
2460
  logLevel,
2454
- mountTime
2461
+ mountTime,
2462
+ reason
2455
2463
  }) => {
2456
2464
  const { current } = mediaRef;
2457
2465
  if (!current) {
@@ -2460,7 +2468,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
2460
2468
  playbackLogging({
2461
2469
  logLevel,
2462
2470
  tag: "play",
2463
- message: `Attempting to play ${current.src}`,
2471
+ message: `Attempting to play ${current.src}. Reason: ${reason}`,
2464
2472
  mountTime
2465
2473
  });
2466
2474
  const prom = current.play();
@@ -2639,7 +2647,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
2639
2647
  useEffect7(() => {
2640
2648
  const tag = {
2641
2649
  id,
2642
- play: () => {
2650
+ play: (reason) => {
2643
2651
  if (!imperativePlaying.current) {
2644
2652
  return;
2645
2653
  }
@@ -2651,7 +2659,8 @@ Check that all your Remotion packages are on the same version. If your dependenc
2651
2659
  mediaType,
2652
2660
  onAutoPlayError,
2653
2661
  logLevel,
2654
- mountTime
2662
+ mountTime,
2663
+ reason
2655
2664
  });
2656
2665
  }
2657
2666
  };
@@ -2670,7 +2679,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
2670
2679
  logLevel,
2671
2680
  mountTime
2672
2681
  ]);
2673
- }, useBufferManager = () => {
2682
+ }, useBufferManager = (logLevel, mountTime) => {
2674
2683
  const [blocks, setBlocks] = useState10([]);
2675
2684
  const [onBufferingCallbacks, setOnBufferingCallbacks] = useState10([]);
2676
2685
  const [onResumeCallbacks, setOnResumeCallbacks] = useState10([]);
@@ -2708,18 +2717,31 @@ Check that all your Remotion packages are on the same version. If your dependenc
2708
2717
  useEffect8(() => {
2709
2718
  if (blocks.length > 0) {
2710
2719
  onBufferingCallbacks.forEach((c) => c());
2720
+ playbackLogging({
2721
+ logLevel,
2722
+ message: "Player is entering buffer state",
2723
+ mountTime,
2724
+ tag: "player"
2725
+ });
2711
2726
  }
2712
2727
  }, [blocks]);
2713
2728
  useEffect8(() => {
2714
2729
  if (blocks.length === 0) {
2715
2730
  onResumeCallbacks.forEach((c) => c());
2731
+ playbackLogging({
2732
+ logLevel,
2733
+ message: "Player is exiting buffer state",
2734
+ mountTime,
2735
+ tag: "player"
2736
+ });
2716
2737
  }
2717
2738
  }, [blocks]);
2718
2739
  return useMemo14(() => {
2719
2740
  return { addBlock, listenForBuffering, listenForResume, buffering };
2720
2741
  }, [addBlock, buffering, listenForBuffering, listenForResume]);
2721
2742
  }, BufferingContextReact, BufferingProvider = ({ children }) => {
2722
- const bufferManager = useBufferManager();
2743
+ const { logLevel, mountTime } = useContext16(LogLevelContext);
2744
+ const bufferManager = useBufferManager(logLevel ?? "info", mountTime);
2723
2745
  return /* @__PURE__ */ jsx15(BufferingContextReact.Provider, {
2724
2746
  value: bufferManager,
2725
2747
  children
@@ -2746,7 +2768,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
2746
2768
  }, [bufferManager]);
2747
2769
  return isBuffering;
2748
2770
  }, useBufferState = () => {
2749
- const buffer = useContext16(BufferingContextReact);
2771
+ const buffer = useContext17(BufferingContextReact);
2750
2772
  const addBlock = buffer ? buffer.addBlock : null;
2751
2773
  return useMemo15(() => ({
2752
2774
  delayPlayback: () => {
@@ -2763,7 +2785,9 @@ Check that all your Remotion packages are on the same version. If your dependenc
2763
2785
  mediaRef,
2764
2786
  mediaType,
2765
2787
  onVariableFpsVideoDetected,
2766
- pauseWhenBuffering
2788
+ pauseWhenBuffering,
2789
+ logLevel,
2790
+ mountTime
2767
2791
  }) => {
2768
2792
  const bufferingRef = useRef5(false);
2769
2793
  const { delayPlayback } = useBufferState();
@@ -2778,10 +2802,19 @@ Check that all your Remotion packages are on the same version. If your dependenc
2778
2802
  if (!current) {
2779
2803
  return;
2780
2804
  }
2805
+ if (current.readyState >= current.HAVE_ENOUGH_DATA) {
2806
+ return;
2807
+ }
2781
2808
  if (!current.requestVideoFrameCallback) {
2782
2809
  return;
2783
2810
  }
2784
2811
  bufferingRef.current = true;
2812
+ playbackLogging({
2813
+ logLevel,
2814
+ message: `Buffering ${mediaRef.current?.src} until the first frame is received`,
2815
+ mountTime,
2816
+ tag: "buffer"
2817
+ });
2785
2818
  const playback = delayPlayback();
2786
2819
  const unblock = () => {
2787
2820
  playback.unblock();
@@ -2810,8 +2843,10 @@ Check that all your Remotion packages are on the same version. If your dependenc
2810
2843
  });
2811
2844
  }, [
2812
2845
  delayPlayback,
2846
+ logLevel,
2813
2847
  mediaRef,
2814
2848
  mediaType,
2849
+ mountTime,
2815
2850
  onVariableFpsVideoDetected,
2816
2851
  pauseWhenBuffering
2817
2852
  ]);
@@ -2922,7 +2957,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
2922
2957
  playbackLogging({
2923
2958
  logLevel,
2924
2959
  tag: "seek",
2925
- message: `Seeking from ${mediaRef.currentTime} to ${timeToSet}. Reason: ${why}`,
2960
+ message: `Seeking from ${mediaRef.currentTime} to ${timeToSet}. src= ${mediaRef.src} Reason: ${why}`,
2926
2961
  mountTime
2927
2962
  });
2928
2963
  mediaRef.currentTime = timeToSet;
@@ -2960,15 +2995,32 @@ Check that all your Remotion packages are on the same version. If your dependenc
2960
2995
  return;
2961
2996
  }
2962
2997
  const cleanup = (reason) => {
2963
- cleanupFns.forEach((fn) => fn(reason));
2998
+ let didDoSomething = false;
2999
+ cleanupFns.forEach((fn) => {
3000
+ fn(reason);
3001
+ didDoSomething = true;
3002
+ });
2964
3003
  cleanupFns = [];
2965
- setIsBuffering(false);
3004
+ setIsBuffering((previous) => {
3005
+ if (previous) {
3006
+ didDoSomething = true;
3007
+ }
3008
+ return false;
3009
+ });
3010
+ if (didDoSomething) {
3011
+ playbackLogging({
3012
+ logLevel,
3013
+ message: `Unmarking as buffering: ${current.src}. Reason: ${reason}`,
3014
+ tag: "buffer",
3015
+ mountTime
3016
+ });
3017
+ }
2966
3018
  };
2967
3019
  const blockMedia = (reason) => {
2968
3020
  setIsBuffering(true);
2969
3021
  playbackLogging({
2970
3022
  logLevel,
2971
- message: `Buffering ${current.src}. Reason: ${reason}`,
3023
+ message: `Marking as buffering: ${current.src}. Reason: ${reason}`,
2972
3024
  tag: "buffer",
2973
3025
  mountTime
2974
3026
  });
@@ -3147,11 +3199,11 @@ Check that all your Remotion packages are on the same version. If your dependenc
3147
3199
  isPremounting,
3148
3200
  onAutoPlayError
3149
3201
  }) => {
3150
- const { playbackRate: globalPlaybackRate } = useContext17(TimelineContext);
3202
+ const { playbackRate: globalPlaybackRate } = useContext18(TimelineContext);
3151
3203
  const frame = useCurrentFrame();
3152
3204
  const absoluteFrame = useTimelinePosition();
3153
3205
  const [playing] = usePlayingState();
3154
- const buffering = useContext17(BufferingContextReact);
3206
+ const buffering = useContext18(BufferingContextReact);
3155
3207
  const { fps } = useVideoConfig();
3156
3208
  const mediaStartsAt = useMediaStartsAt();
3157
3209
  const lastSeekDueToShift = useRef8(null);
@@ -3192,7 +3244,9 @@ Check that all your Remotion packages are on the same version. If your dependenc
3192
3244
  mediaRef,
3193
3245
  mediaType,
3194
3246
  onVariableFpsVideoDetected,
3195
- pauseWhenBuffering
3247
+ pauseWhenBuffering,
3248
+ logLevel,
3249
+ mountTime
3196
3250
  });
3197
3251
  const playbackRate = localPlaybackRate * globalPlaybackRate;
3198
3252
  const acceptableTimeShiftButLessThanDuration = (() => {
@@ -3203,11 +3257,14 @@ Check that all your Remotion packages are on the same version. If your dependenc
3203
3257
  })();
3204
3258
  const isPlayerBuffering = useIsPlayerBuffering(buffering);
3205
3259
  useEffect11(() => {
3260
+ if (mediaRef.current?.paused) {
3261
+ return;
3262
+ }
3206
3263
  if (!playing) {
3207
3264
  playbackLogging({
3208
3265
  logLevel,
3209
3266
  tag: "pause",
3210
- message: `Pausing ${mediaRef.current?.src} because player is not playing`,
3267
+ message: `Pausing ${mediaRef.current?.src} because ${isPremounting ? "media is premounting" : "Player is not playing"}`,
3211
3268
  mountTime
3212
3269
  });
3213
3270
  mediaRef.current?.pause();
@@ -3227,6 +3284,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
3227
3284
  isBuffering,
3228
3285
  isMediaTagBuffering,
3229
3286
  isPlayerBuffering,
3287
+ isPremounting,
3230
3288
  logLevel,
3231
3289
  mediaRef,
3232
3290
  mediaType,
@@ -3272,7 +3330,8 @@ Check that all your Remotion packages are on the same version. If your dependenc
3272
3330
  mediaType,
3273
3331
  onAutoPlayError,
3274
3332
  logLevel,
3275
- mountTime
3333
+ mountTime,
3334
+ reason: "player is playing but media tag is paused, and just seeked"
3276
3335
  });
3277
3336
  }
3278
3337
  }
@@ -3297,13 +3356,19 @@ Check that all your Remotion packages are on the same version. If your dependenc
3297
3356
  }
3298
3357
  return;
3299
3358
  }
3300
- if (mediaRef.current.paused && !mediaRef.current.ended || absoluteFrame === 0) {
3359
+ if (!playing || buffering.buffering.current) {
3360
+ return;
3361
+ }
3362
+ const pausedCondition = mediaRef.current.paused && !mediaRef.current.ended;
3363
+ const firstFrameCondition = absoluteFrame === 0;
3364
+ if (pausedCondition || firstFrameCondition) {
3365
+ const reason = pausedCondition ? "media tag is paused" : "absolute frame is 0";
3301
3366
  if (makesSenseToSeek) {
3302
3367
  lastSeek.current = seek({
3303
3368
  mediaRef: mediaRef.current,
3304
3369
  time: shouldBeTime,
3305
3370
  logLevel,
3306
- why: `is over timeshift threshold (threshold = ${seekThreshold}) is paused OR has reached end of timeline and is starting over`,
3371
+ why: `is over timeshift threshold (threshold = ${seekThreshold}) and ${reason}`,
3307
3372
  mountTime
3308
3373
  });
3309
3374
  }
@@ -3312,12 +3377,11 @@ Check that all your Remotion packages are on the same version. If your dependenc
3312
3377
  mediaType,
3313
3378
  onAutoPlayError,
3314
3379
  logLevel,
3315
- mountTime
3380
+ mountTime,
3381
+ reason: `player is playing and ${reason}`
3316
3382
  });
3317
- if (!isVariableFpsVideo) {
3318
- if (playbackRate > 0) {
3319
- bufferUntilFirstFrame(shouldBeTime);
3320
- }
3383
+ if (!isVariableFpsVideo && playbackRate > 0) {
3384
+ bufferUntilFirstFrame(shouldBeTime);
3321
3385
  }
3322
3386
  }
3323
3387
  }, [
@@ -3380,14 +3444,14 @@ Check that all your Remotion packages are on the same version. If your dependenc
3380
3444
  };
3381
3445
  }, [adjustVolume, mediaRef]);
3382
3446
  }, MediaVolumeContext, SetMediaVolumeContext, useMediaVolumeState = () => {
3383
- const { mediaVolume } = useContext18(MediaVolumeContext);
3384
- const { setMediaVolume } = useContext18(SetMediaVolumeContext);
3447
+ const { mediaVolume } = useContext19(MediaVolumeContext);
3448
+ const { setMediaVolume } = useContext19(SetMediaVolumeContext);
3385
3449
  return useMemo17(() => {
3386
3450
  return [mediaVolume, setMediaVolume];
3387
3451
  }, [mediaVolume, setMediaVolume]);
3388
3452
  }, useMediaMutedState = () => {
3389
- const { mediaMuted } = useContext18(MediaVolumeContext);
3390
- const { setMediaMuted } = useContext18(SetMediaVolumeContext);
3453
+ const { mediaMuted } = useContext19(MediaVolumeContext);
3454
+ const { setMediaMuted } = useContext19(SetMediaVolumeContext);
3391
3455
  return useMemo17(() => {
3392
3456
  return [mediaMuted, setMediaMuted];
3393
3457
  }, [mediaMuted, setMediaMuted]);
@@ -3515,7 +3579,8 @@ Check that all your Remotion packages are on the same version. If your dependenc
3515
3579
  mediaType: "audio",
3516
3580
  onAutoPlayError: null,
3517
3581
  logLevel,
3518
- mountTime
3582
+ mountTime,
3583
+ reason: "playing all audios"
3519
3584
  });
3520
3585
  });
3521
3586
  }, [logLevel, mountTime, refs]);
@@ -3558,7 +3623,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
3558
3623
  ]
3559
3624
  });
3560
3625
  }, useSharedAudio = (aud, audioId) => {
3561
- const ctx = useContext19(SharedAudioContext);
3626
+ const ctx = useContext20(SharedAudioContext);
3562
3627
  const [elem] = useState12(() => {
3563
3628
  if (ctx && ctx.numberOfAudioTags > 0) {
3564
3629
  return ctx.registerAudio(aud, audioId);
@@ -3613,12 +3678,12 @@ Check that all your Remotion packages are on the same version. If your dependenc
3613
3678
  const [mediaVolume] = useMediaVolumeState();
3614
3679
  const [mediaMuted] = useMediaMutedState();
3615
3680
  const volumePropFrame = useFrameForVolumeProp(loopVolumeCurveBehavior ?? "repeat");
3616
- const { hidden } = useContext20(SequenceVisibilityToggleContext);
3681
+ const { hidden } = useContext21(SequenceVisibilityToggleContext);
3617
3682
  if (!src) {
3618
3683
  throw new TypeError("No 'src' was passed to <Audio>.");
3619
3684
  }
3620
3685
  const preloadedSrc = usePreload(src);
3621
- const sequenceContext = useContext20(SequenceContext);
3686
+ const sequenceContext = useContext21(SequenceContext);
3622
3687
  const [timelineId] = useState13(() => String(Math.random()));
3623
3688
  const isSequenceHidden = hidden[timelineId] ?? false;
3624
3689
  const userPreferredVolume = evaluateVolume({
@@ -3736,8 +3801,8 @@ Check that all your Remotion packages are on the same version. If your dependenc
3736
3801
  const absoluteFrame = useTimelinePosition();
3737
3802
  const volumePropFrame = useFrameForVolumeProp(loopVolumeCurveBehavior ?? "repeat");
3738
3803
  const frame = useCurrentFrame();
3739
- const sequenceContext = useContext21(SequenceContext);
3740
- const { registerRenderAsset, unregisterRenderAsset } = useContext21(RenderAssetManager);
3804
+ const sequenceContext = useContext22(SequenceContext);
3805
+ const { registerRenderAsset, unregisterRenderAsset } = useContext22(RenderAssetManager);
3741
3806
  const id = useMemo20(() => `audio-${random(props.src ?? "")}-${sequenceContext?.relativeFrom}-${sequenceContext?.cumulatedFrom}-${sequenceContext?.durationInFrames}`, [
3742
3807
  props.src,
3743
3808
  sequenceContext?.relativeFrom,
@@ -3840,7 +3905,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
3840
3905
  ...nativeProps
3841
3906
  });
3842
3907
  }, AudioForRendering, AudioRefForwardingFunction = (props, ref) => {
3843
- const audioContext = useContext22(SharedAudioContext);
3908
+ const audioContext = useContext23(SharedAudioContext);
3844
3909
  const {
3845
3910
  startFrom,
3846
3911
  endAt,
@@ -3853,7 +3918,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
3853
3918
  const { loop, ...propsOtherThanLoop } = props;
3854
3919
  const { fps } = useVideoConfig();
3855
3920
  const environment = getRemotionEnvironment();
3856
- const { durations, setDurations } = useContext22(DurationsContext);
3921
+ const { durations, setDurations } = useContext23(DurationsContext);
3857
3922
  if (typeof props.src !== "string") {
3858
3923
  throw new TypeError(`The \`<Audio>\` tag requires a string for \`src\`, but got ${JSON.stringify(props.src)} instead.`);
3859
3924
  }
@@ -4055,7 +4120,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
4055
4120
  schema,
4056
4121
  ...compProps
4057
4122
  }) => {
4058
- const { registerComposition, unregisterComposition } = useContext24(CompositionManager);
4123
+ const { registerComposition, unregisterComposition } = useContext25(CompositionManager);
4059
4124
  const video = useVideo();
4060
4125
  const lazy = useLazyComponent({
4061
4126
  compProps,
@@ -4064,14 +4129,14 @@ Check that all your Remotion packages are on the same version. If your dependenc
4064
4129
  const nonce = useNonce();
4065
4130
  const isPlayer = useIsPlayer();
4066
4131
  const environment = getRemotionEnvironment();
4067
- const canUseComposition = useContext24(CanUseRemotionHooks);
4132
+ const canUseComposition = useContext25(CanUseRemotionHooks);
4068
4133
  if (canUseComposition) {
4069
4134
  if (isPlayer) {
4070
4135
  throw new Error("<Composition> was mounted inside the `component` that was passed to the <Player>. See https://remotion.dev/docs/wrong-composition-mount for help.");
4071
4136
  }
4072
4137
  throw new Error("<Composition> mounted inside another composition. See https://remotion.dev/docs/wrong-composition-mount for help.");
4073
4138
  }
4074
- const { folderName, parentName } = useContext24(FolderContext);
4139
+ const { folderName, parentName } = useContext25(FolderContext);
4075
4140
  useEffect17(() => {
4076
4141
  if (!id) {
4077
4142
  throw new Error("No id for composition passed.");
@@ -4285,7 +4350,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
4285
4350
  const imageRef = useRef13(null);
4286
4351
  const errors = useRef13({});
4287
4352
  const { delayPlayback } = useBufferState();
4288
- const sequenceContext = useContext25(SequenceContext);
4353
+ const sequenceContext = useContext26(SequenceContext);
4289
4354
  if (!src) {
4290
4355
  throw new Error('No "src" prop was passed to <Img>.');
4291
4356
  }
@@ -4872,8 +4937,8 @@ Check that all your Remotion packages are on the same version. If your dependenc
4872
4937
  } = props2;
4873
4938
  const volumePropFrame = useFrameForVolumeProp(loopVolumeCurveBehavior ?? "repeat");
4874
4939
  const { fps, durationInFrames } = useVideoConfig();
4875
- const parentSequence = useContext27(SequenceContext);
4876
- const { hidden } = useContext27(SequenceVisibilityToggleContext);
4940
+ const parentSequence = useContext28(SequenceContext);
4941
+ const { hidden } = useContext28(SequenceVisibilityToggleContext);
4877
4942
  const logLevel = useLogLevel();
4878
4943
  const mountTime = useMountTime();
4879
4944
  const [timelineId] = useState18(() => String(Math.random()));
@@ -5149,12 +5214,12 @@ Check that all your Remotion packages are on the same version. If your dependenc
5149
5214
  const volumePropsFrame = useFrameForVolumeProp(loopVolumeCurveBehavior ?? "repeat");
5150
5215
  const videoConfig = useUnsafeVideoConfig();
5151
5216
  const videoRef = useRef16(null);
5152
- const sequenceContext = useContext28(SequenceContext);
5217
+ const sequenceContext = useContext29(SequenceContext);
5153
5218
  const mediaStartsAt = useMediaStartsAt();
5154
5219
  const environment = getRemotionEnvironment();
5155
5220
  const logLevel = useLogLevel();
5156
5221
  const mountTime = useMountTime();
5157
- const { registerRenderAsset, unregisterRenderAsset } = useContext28(RenderAssetManager);
5222
+ const { registerRenderAsset, unregisterRenderAsset } = useContext29(RenderAssetManager);
5158
5223
  const id = useMemo29(() => `video-${random(props2.src ?? "")}-${sequenceContext?.cumulatedFrom}-${sequenceContext?.relativeFrom}-${sequenceContext?.durationInFrames}`, [
5159
5224
  props2.src,
5160
5225
  sequenceContext?.cumulatedFrom,
@@ -5342,7 +5407,7 @@ Check that all your Remotion packages are on the same version. If your dependenc
5342
5407
  const { loop, ...propsOtherThanLoop } = props2;
5343
5408
  const { fps } = useVideoConfig();
5344
5409
  const environment = getRemotionEnvironment();
5345
- const { durations, setDurations } = useContext29(DurationsContext);
5410
+ const { durations, setDurations } = useContext30(DurationsContext);
5346
5411
  if (typeof ref === "string") {
5347
5412
  throw new Error("string refs are not supported");
5348
5413
  }
@@ -11004,7 +11069,7 @@ import { jsx as jsx35, jsxs as jsxs11 } from "react/jsx-runtime";
11004
11069
  import { jsx as jsx210, jsxs as jsxs23, Fragment } from "react/jsx-runtime";
11005
11070
  import React5 from "react";
11006
11071
  import { useContext as useContext210, useEffect as useEffect23, useState as useState19 } from "react";
11007
- import { useContext as useContext30, useEffect as useEffect24 } from "react";
11072
+ import { useContext as useContext31, useEffect as useEffect24 } from "react";
11008
11073
  import { jsx as jsx36 } from "react/jsx-runtime";
11009
11074
  import { useCallback as useCallback18, useRef as useRef17 } from "react";
11010
11075
  import { useEffect as useEffect32, useState as useState23 } from "react";
@@ -12090,7 +12155,7 @@ class ThumbnailEmitter {
12090
12155
  };
12091
12156
  }
12092
12157
  var useBufferStateEmitter = (emitter) => {
12093
- const bufferManager = useContext30(Internals.BufferingContextReact);
12158
+ const bufferManager = useContext31(Internals.BufferingContextReact);
12094
12159
  if (!bufferManager) {
12095
12160
  throw new Error("BufferingContextReact not found");
12096
12161
  }
@@ -12218,7 +12283,7 @@ var usePlayer = () => {
12218
12283
  if (audioContext && audioContext.numberOfAudioTags > 0 && e) {
12219
12284
  audioContext.playAllAudios();
12220
12285
  }
12221
- audioAndVideoTags.current.forEach((a) => a.play());
12286
+ audioAndVideoTags.current.forEach((a) => a.play("player play() was called and playing audio from a click"));
12222
12287
  imperativePlaying.current = true;
12223
12288
  setPlaying(true);
12224
12289
  playStart.current = frameRef.current;
package/dist/cn.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ import { type ClassValue } from 'clsx';
2
+ export declare function cn(...inputs: ClassValue[]): string;
package/dist/cn.js ADDED
@@ -0,0 +1,5 @@
1
+ import { clsx } from 'clsx';
2
+ import { twMerge } from 'tailwind-merge';
3
+ export function cn(...inputs) {
4
+ return twMerge(clsx(inputs));
5
+ }
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import './homepage/custom.css';
3
+ import type { ColorMode } from './homepage/layout/use-color-mode';
4
+ export declare const NewLanding: React.FC<{
5
+ readonly colorMode: ColorMode;
6
+ readonly setColorMode: (colorMode: ColorMode) => void;
7
+ }>;
@@ -0,0 +1,21 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { BackgroundAnimation } from './homepage/BackgroundAnimation';
4
+ import CommunityStats from './homepage/CommunityStats';
5
+ import './homepage/custom.css';
6
+ import { Demo } from './homepage/Demo';
7
+ import { LightningFastEditor } from './homepage/Editor';
8
+ import EvaluateRemotionSection from './homepage/EvaluateRemotion';
9
+ import { IfYouKnowReact } from './homepage/IfYouKnowReact';
10
+ import { ColorModeProvider } from './homepage/layout/use-color-mode';
11
+ import { NewsletterButton } from './homepage/NewsletterButton';
12
+ import { Pricing } from './homepage/Pricing';
13
+ import { RealMP4Videos } from './homepage/RealMp4Videos';
14
+ import TrustedByBanner from './homepage/TrustedByBanner';
15
+ import { VideoApps } from './homepage/VideoApps';
16
+ import VideoAppsShowcase from './homepage/VideoAppsShowcase';
17
+ import { SectionTitle, VideoAppsTitle } from './homepage/VideoAppsTitle';
18
+ import { WriteInReact } from './homepage/WriteInReact';
19
+ export const NewLanding = ({ colorMode, setColorMode }) => {
20
+ return (_jsx(ColorModeProvider, { colorMode: colorMode, setColorMode: setColorMode, children: _jsx("div", { className: "bg-[var(--background)] relative", children: _jsxs("div", { children: [_jsx("div", { children: _jsx(BackgroundAnimation, {}) }), _jsx("br", {}), _jsx("br", {}), _jsx("br", {}), _jsx("br", {}), _jsxs("div", { className: "max-w-[500px] lg:max-w-[1000px] m-auto pl-5 pr-5 relative", children: [_jsx(WriteInReact, {}), _jsx("br", {}), _jsx(IfYouKnowReact, {}), _jsx("br", {}), _jsx("br", {}), _jsx("br", {}), _jsx("br", {}), _jsx("br", {}), _jsx("br", {}), _jsx(RealMP4Videos, {}), _jsx("br", {}), _jsx("br", {}), _jsx("br", {}), _jsx("br", {}), _jsx(LightningFastEditor, {}), _jsx("br", {}), _jsx("br", {}), _jsx("br", {}), _jsx(VideoAppsTitle, {}), _jsx(VideoApps, { active: "remotion" }), _jsx("br", {}), _jsx("br", {}), _jsx(VideoAppsShowcase, {}), _jsx("br", {}), _jsx("br", {}), _jsx(Demo, {}), _jsx("br", {}), _jsx("br", {}), _jsx("br", {}), _jsx(SectionTitle, { children: "Pricing" }), _jsx(Pricing, {}), _jsx(TrustedByBanner, {}), _jsx("br", {}), _jsx(EvaluateRemotionSection, {}), _jsx("br", {}), _jsx("br", {}), _jsx("br", {}), _jsx(CommunityStats, {}), _jsx("br", {}), _jsx("br", {}), _jsx("br", {}), _jsx(NewsletterButton, {}), _jsx("br", {}), _jsx("br", {}), _jsx("br", {})] })] }) }) }));
21
+ };
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const BackgroundAnimation: React.FC;