@remotion/promo-pages 4.0.460 → 4.0.461

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 (276) hide show
  1. package/dist/Homepage.js +356 -217
  2. package/dist/cn.d.ts +2 -0
  3. package/dist/cn.js +5 -0
  4. package/dist/components/3DEngine/ButtonDemo.d.ts +2 -0
  5. package/dist/components/3DEngine/ButtonDemo.js +43 -0
  6. package/dist/components/3DEngine/Faces.d.ts +5 -0
  7. package/dist/components/3DEngine/Faces.js +7 -0
  8. package/dist/components/3DEngine/Outer.d.ts +8 -0
  9. package/dist/components/3DEngine/Outer.js +56 -0
  10. package/dist/components/3DEngine/Switch.d.ts +4 -0
  11. package/dist/components/3DEngine/Switch.js +4 -0
  12. package/dist/components/3DEngine/get-child-node-from.d.ts +1 -0
  13. package/dist/components/3DEngine/get-child-node-from.js +14 -0
  14. package/dist/components/3DEngine/hover-transforms.d.ts +9 -0
  15. package/dist/components/3DEngine/hover-transforms.js +177 -0
  16. package/dist/components/BackButton.d.ts +6 -0
  17. package/dist/components/BackButton.js +9 -0
  18. package/dist/components/CommandCopyButton.d.ts +5 -0
  19. package/dist/components/CommandCopyButton.js +4 -0
  20. package/dist/components/Homepage.d.ts +6 -0
  21. package/dist/components/Homepage.js +20 -0
  22. package/dist/components/ManageTeamMembers.d.ts +2 -0
  23. package/dist/components/ManageTeamMembers.js +42 -0
  24. package/dist/components/Spinner.d.ts +3 -0
  25. package/dist/components/Spinner.js +4 -0
  26. package/dist/components/TeamPicture.d.ts +1 -0
  27. package/dist/components/TeamPicture.js +4 -0
  28. package/dist/components/design.d.ts +1 -0
  29. package/dist/components/design.js +33 -0
  30. package/dist/components/experts/ExpertsPage.d.ts +11 -0
  31. package/dist/components/experts/ExpertsPage.js +50 -0
  32. package/dist/components/experts/experts-data.d.ts +15 -0
  33. package/dist/components/experts/experts-data.js +289 -0
  34. package/dist/components/experts/experts-icons.d.ts +7 -0
  35. package/dist/components/experts/experts-icons.js +36 -0
  36. package/dist/components/experts.d.ts +3 -0
  37. package/dist/components/experts.js +2 -0
  38. package/dist/components/homepage/BackgroundAnimation.d.ts +2 -0
  39. package/dist/components/homepage/BackgroundAnimation.js +66 -0
  40. package/dist/components/homepage/ChooseTemplate.d.ts +2 -0
  41. package/dist/components/homepage/ChooseTemplate.js +25 -0
  42. package/dist/components/homepage/CommunityStats.d.ts +3 -0
  43. package/dist/components/homepage/CommunityStats.js +6 -0
  44. package/dist/components/homepage/CommunityStatsItems.d.ts +7 -0
  45. package/dist/components/homepage/CommunityStatsItems.js +58 -0
  46. package/dist/components/homepage/Demo/Card.d.ts +15 -0
  47. package/dist/components/homepage/Demo/Card.js +174 -0
  48. package/dist/components/homepage/Demo/Cards.d.ts +15 -0
  49. package/dist/components/homepage/Demo/Cards.js +57 -0
  50. package/dist/components/homepage/Demo/Comp.d.ts +38 -0
  51. package/dist/components/homepage/Demo/Comp.js +72 -0
  52. package/dist/components/homepage/Demo/CurrentCountry.d.ts +9 -0
  53. package/dist/components/homepage/Demo/CurrentCountry.js +48 -0
  54. package/dist/components/homepage/Demo/DemoError.d.ts +2 -0
  55. package/dist/components/homepage/Demo/DemoError.js +10 -0
  56. package/dist/components/homepage/Demo/DemoErrorIcon.d.ts +2 -0
  57. package/dist/components/homepage/Demo/DemoErrorIcon.js +16 -0
  58. package/dist/components/homepage/Demo/DemoRender.d.ts +33 -0
  59. package/dist/components/homepage/Demo/DemoRender.js +107 -0
  60. package/dist/components/homepage/Demo/DigitWheel.d.ts +9 -0
  61. package/dist/components/homepage/Demo/DigitWheel.js +94 -0
  62. package/dist/components/homepage/Demo/DisplayedEmoji.d.ts +5 -0
  63. package/dist/components/homepage/Demo/DisplayedEmoji.js +59 -0
  64. package/dist/components/homepage/Demo/DoneCheckmark.d.ts +2 -0
  65. package/dist/components/homepage/Demo/DoneCheckmark.js +20 -0
  66. package/dist/components/homepage/Demo/DownloadNudge.d.ts +2 -0
  67. package/dist/components/homepage/Demo/DownloadNudge.js +27 -0
  68. package/dist/components/homepage/Demo/DragAndDropNudge.d.ts +3 -0
  69. package/dist/components/homepage/Demo/DragAndDropNudge.js +26 -0
  70. package/dist/components/homepage/Demo/EmojiCard.d.ts +10 -0
  71. package/dist/components/homepage/Demo/EmojiCard.js +120 -0
  72. package/dist/components/homepage/Demo/Minus.d.ts +5 -0
  73. package/dist/components/homepage/Demo/Minus.js +11 -0
  74. package/dist/components/homepage/Demo/PlayPauseButton.d.ts +5 -0
  75. package/dist/components/homepage/Demo/PlayPauseButton.js +47 -0
  76. package/dist/components/homepage/Demo/PlayerControls.d.ts +8 -0
  77. package/dist/components/homepage/Demo/PlayerControls.js +15 -0
  78. package/dist/components/homepage/Demo/PlayerSeekBar.d.ts +11 -0
  79. package/dist/components/homepage/Demo/PlayerSeekBar.js +216 -0
  80. package/dist/components/homepage/Demo/PlayerVolume.d.ts +5 -0
  81. package/dist/components/homepage/Demo/PlayerVolume.js +53 -0
  82. package/dist/components/homepage/Demo/Progress.d.ts +4 -0
  83. package/dist/components/homepage/Demo/Progress.js +14 -0
  84. package/dist/components/homepage/Demo/Spinner.d.ts +5 -0
  85. package/dist/components/homepage/Demo/Spinner.js +37 -0
  86. package/dist/components/homepage/Demo/Switcher.d.ts +6 -0
  87. package/dist/components/homepage/Demo/Switcher.js +25 -0
  88. package/dist/components/homepage/Demo/Temperature.d.ts +6 -0
  89. package/dist/components/homepage/Demo/Temperature.js +21 -0
  90. package/dist/components/homepage/Demo/TemperatureNumber.d.ts +5 -0
  91. package/dist/components/homepage/Demo/TemperatureNumber.js +36 -0
  92. package/dist/components/homepage/Demo/ThemeNudge.d.ts +3 -0
  93. package/dist/components/homepage/Demo/ThemeNudge.js +35 -0
  94. package/dist/components/homepage/Demo/TimeDisplay.d.ts +6 -0
  95. package/dist/components/homepage/Demo/TimeDisplay.js +27 -0
  96. package/dist/components/homepage/Demo/TrendingRepos.d.ts +6 -0
  97. package/dist/components/homepage/Demo/TrendingRepos.js +65 -0
  98. package/dist/components/homepage/Demo/icons.d.ts +10 -0
  99. package/dist/components/homepage/Demo/icons.js +22 -0
  100. package/dist/components/homepage/Demo/index.d.ts +2 -0
  101. package/dist/components/homepage/Demo/index.js +95 -0
  102. package/dist/components/homepage/Demo/math.d.ts +10 -0
  103. package/dist/components/homepage/Demo/math.js +29 -0
  104. package/dist/components/homepage/Demo/types.d.ts +6 -0
  105. package/dist/components/homepage/Demo/types.js +0 -0
  106. package/dist/components/homepage/EditorStarterSection.d.ts +3 -0
  107. package/dist/components/homepage/EditorStarterSection.js +8 -0
  108. package/dist/components/homepage/EvaluateRemotion.d.ts +3 -0
  109. package/dist/components/homepage/EvaluateRemotion.js +21 -0
  110. package/dist/components/homepage/FreePricing.d.ts +4 -0
  111. package/dist/components/homepage/FreePricing.js +133 -0
  112. package/dist/components/homepage/GetStartedStrip.d.ts +2 -0
  113. package/dist/components/homepage/GetStartedStrip.js +14 -0
  114. package/dist/components/homepage/GitHubButton.d.ts +2 -0
  115. package/dist/components/homepage/GitHubButton.js +7 -0
  116. package/dist/components/homepage/IconForTemplate.d.ts +6 -0
  117. package/dist/components/homepage/IconForTemplate.js +105 -0
  118. package/dist/components/homepage/IfYouKnowReact.d.ts +3 -0
  119. package/dist/components/homepage/IfYouKnowReact.js +23 -0
  120. package/dist/components/homepage/MoreTemplatesButton.d.ts +2 -0
  121. package/dist/components/homepage/MoreTemplatesButton.js +11 -0
  122. package/dist/components/homepage/MuxVideo.d.ts +7 -0
  123. package/dist/components/homepage/MuxVideo.js +45 -0
  124. package/dist/components/homepage/NewsletterButton.d.ts +2 -0
  125. package/dist/components/homepage/NewsletterButton.js +38 -0
  126. package/dist/components/homepage/ParameterizeAndEdit.d.ts +2 -0
  127. package/dist/components/homepage/ParameterizeAndEdit.js +22 -0
  128. package/dist/components/homepage/Pricing.d.ts +2 -0
  129. package/dist/components/homepage/Pricing.js +15 -0
  130. package/dist/components/homepage/PricingBulletPoint.d.ts +6 -0
  131. package/dist/components/homepage/PricingBulletPoint.js +19 -0
  132. package/dist/components/homepage/RealMp4Videos.d.ts +2 -0
  133. package/dist/components/homepage/RealMp4Videos.js +41 -0
  134. package/dist/components/homepage/Spacer.d.ts +2 -0
  135. package/dist/components/homepage/Spacer.js +4 -0
  136. package/dist/components/homepage/TemplateIcon.d.ts +5 -0
  137. package/dist/components/homepage/TemplateIcon.js +24 -0
  138. package/dist/components/homepage/TextInput.d.ts +7 -0
  139. package/dist/components/homepage/TextInput.js +34 -0
  140. package/dist/components/homepage/TrustedByBanner.d.ts +2 -0
  141. package/dist/components/homepage/TrustedByBanner.js +27 -0
  142. package/dist/components/homepage/VideoApps.d.ts +4 -0
  143. package/dist/components/homepage/VideoApps.js +72 -0
  144. package/dist/components/homepage/VideoAppsShowcase.d.ts +3 -0
  145. package/dist/components/homepage/VideoAppsShowcase.js +139 -0
  146. package/dist/components/homepage/VideoAppsTitle.d.ts +4 -0
  147. package/dist/components/homepage/VideoAppsTitle.js +4 -0
  148. package/dist/components/homepage/VideoPlayerWithControls.d.ts +20 -0
  149. package/dist/components/homepage/VideoPlayerWithControls.js +105 -0
  150. package/dist/components/homepage/WriteInReact.d.ts +2 -0
  151. package/dist/components/homepage/WriteInReact.js +10 -0
  152. package/dist/components/homepage/YouAreHere.d.ts +2 -0
  153. package/dist/components/homepage/YouAreHere.js +23 -0
  154. package/dist/components/homepage/layout/Button.d.ts +22 -0
  155. package/dist/components/homepage/layout/Button.js +30 -0
  156. package/dist/components/homepage/layout/colors.d.ts +13 -0
  157. package/dist/components/homepage/layout/colors.js +14 -0
  158. package/dist/components/homepage/layout/use-color-mode.d.ts +21 -0
  159. package/dist/components/homepage/layout/use-color-mode.js +22 -0
  160. package/dist/components/homepage/layout/use-el-size.d.ts +5 -0
  161. package/dist/components/homepage/layout/use-el-size.js +40 -0
  162. package/dist/components/homepage/layout/use-mobile-layout.d.ts +1 -0
  163. package/dist/components/homepage/layout/use-mobile-layout.js +6 -0
  164. package/dist/components/icons/blank.d.ts +3 -0
  165. package/dist/components/icons/blank.js +4 -0
  166. package/dist/components/icons/brain.d.ts +2 -0
  167. package/dist/components/icons/brain.js +4 -0
  168. package/dist/components/icons/clone.d.ts +2 -0
  169. package/dist/components/icons/clone.js +2 -0
  170. package/dist/components/icons/code-hike.d.ts +3 -0
  171. package/dist/components/icons/code-hike.js +4 -0
  172. package/dist/components/icons/cubes.d.ts +3 -0
  173. package/dist/components/icons/cubes.js +4 -0
  174. package/dist/components/icons/editor.d.ts +3 -0
  175. package/dist/components/icons/editor.js +4 -0
  176. package/dist/components/icons/electron.d.ts +4 -0
  177. package/dist/components/icons/electron.js +4 -0
  178. package/dist/components/icons/js.d.ts +3 -0
  179. package/dist/components/icons/js.js +4 -0
  180. package/dist/components/icons/music.d.ts +2 -0
  181. package/dist/components/icons/music.js +4 -0
  182. package/dist/components/icons/next.d.ts +4 -0
  183. package/dist/components/icons/next.js +4 -0
  184. package/dist/components/icons/overlay.d.ts +3 -0
  185. package/dist/components/icons/overlay.js +4 -0
  186. package/dist/components/icons/prompt-to-video.d.ts +2 -0
  187. package/dist/components/icons/prompt-to-video.js +4 -0
  188. package/dist/components/icons/recorder.d.ts +3 -0
  189. package/dist/components/icons/recorder.js +4 -0
  190. package/dist/components/icons/remix.d.ts +3 -0
  191. package/dist/components/icons/remix.js +4 -0
  192. package/dist/components/icons/render-server.d.ts +3 -0
  193. package/dist/components/icons/render-server.js +4 -0
  194. package/dist/components/icons/skia.d.ts +3 -0
  195. package/dist/components/icons/skia.js +4 -0
  196. package/dist/components/icons/stargazer.d.ts +3 -0
  197. package/dist/components/icons/stargazer.js +4 -0
  198. package/dist/components/icons/still.d.ts +3 -0
  199. package/dist/components/icons/still.js +4 -0
  200. package/dist/components/icons/tailwind.d.ts +3 -0
  201. package/dist/components/icons/tailwind.js +4 -0
  202. package/dist/components/icons/tiktok.d.ts +3 -0
  203. package/dist/components/icons/tiktok.js +4 -0
  204. package/dist/components/icons/timeline.d.ts +3 -0
  205. package/dist/components/icons/timeline.js +4 -0
  206. package/dist/components/icons/ts.d.ts +3 -0
  207. package/dist/components/icons/ts.js +4 -0
  208. package/dist/components/icons/undo.d.ts +3 -0
  209. package/dist/components/icons/undo.js +2 -0
  210. package/dist/components/icons/vercel.d.ts +4 -0
  211. package/dist/components/icons/vercel.js +4 -0
  212. package/dist/components/icons/waveform.d.ts +3 -0
  213. package/dist/components/icons/waveform.js +4 -0
  214. package/dist/components/prompts/CardLikeButton.d.ts +5 -0
  215. package/dist/components/prompts/CardLikeButton.js +49 -0
  216. package/dist/components/prompts/ClipboardIcon.d.ts +5 -0
  217. package/dist/components/prompts/ClipboardIcon.js +4 -0
  218. package/dist/components/prompts/CopyPromptButton.d.ts +4 -0
  219. package/dist/components/prompts/CopyPromptButton.js +13 -0
  220. package/dist/components/prompts/LikeButton.d.ts +5 -0
  221. package/dist/components/prompts/LikeButton.js +49 -0
  222. package/dist/components/prompts/MuxPlayer.d.ts +8 -0
  223. package/dist/components/prompts/MuxPlayer.js +21 -0
  224. package/dist/components/prompts/NewBackButton.d.ts +5 -0
  225. package/dist/components/prompts/NewBackButton.js +8 -0
  226. package/dist/components/prompts/Page.d.ts +8 -0
  227. package/dist/components/prompts/Page.js +7 -0
  228. package/dist/components/prompts/PromptsGallery.d.ts +7 -0
  229. package/dist/components/prompts/PromptsGallery.js +60 -0
  230. package/dist/components/prompts/PromptsShow.d.ts +5 -0
  231. package/dist/components/prompts/PromptsShow.js +17 -0
  232. package/dist/components/prompts/PromptsSubmit.d.ts +2 -0
  233. package/dist/components/prompts/PromptsSubmit.js +173 -0
  234. package/dist/components/prompts/config.d.ts +1 -0
  235. package/dist/components/prompts/config.js +1 -0
  236. package/dist/components/prompts/prompt-helpers.d.ts +8 -0
  237. package/dist/components/prompts/prompt-helpers.js +76 -0
  238. package/dist/components/prompts/prompt-types.d.ts +14 -0
  239. package/dist/components/prompts/prompt-types.js +0 -0
  240. package/dist/components/prompts/use-heart-animation.d.ts +5 -0
  241. package/dist/components/prompts/use-heart-animation.js +29 -0
  242. package/dist/components/team/TeamCards.d.ts +6 -0
  243. package/dist/components/team/TeamCards.js +19 -0
  244. package/dist/components/team/TitleTeamCards.d.ts +2 -0
  245. package/dist/components/team/TitleTeamCards.js +6 -0
  246. package/dist/components/team/TrustSection.d.ts +2 -0
  247. package/dist/components/team/TrustSection.js +59 -0
  248. package/dist/components/team.d.ts +3 -0
  249. package/dist/components/team.js +15 -0
  250. package/dist/components/template-modal-content.d.ts +5 -0
  251. package/dist/components/template-modal-content.js +73 -0
  252. package/dist/components/templates.d.ts +2 -0
  253. package/dist/components/templates.js +27 -0
  254. package/dist/design.js +223 -115
  255. package/dist/experts.js +223 -115
  256. package/dist/helpers/mobile-layout.d.ts +1 -0
  257. package/dist/helpers/mobile-layout.js +6 -0
  258. package/dist/helpers/use-el-size.d.ts +5 -0
  259. package/dist/helpers/use-el-size.js +40 -0
  260. package/dist/homepage/Pricing.js +223 -115
  261. package/dist/main.d.ts +1 -0
  262. package/dist/main.js +6 -0
  263. package/dist/prompts/PromptsGallery.js +223 -115
  264. package/dist/prompts/PromptsShow.js +223 -115
  265. package/dist/prompts/PromptsSubmit.js +223 -115
  266. package/dist/prompts-show.d.ts +1 -0
  267. package/dist/prompts-show.js +20 -0
  268. package/dist/prompts-submit.d.ts +1 -0
  269. package/dist/prompts-submit.js +6 -0
  270. package/dist/prompts.d.ts +1 -0
  271. package/dist/prompts.js +6 -0
  272. package/dist/team.d.ts +1 -0
  273. package/dist/team.js +223 -115
  274. package/dist/template-modal-content.js +223 -115
  275. package/dist/templates.js +223 -115
  276. package/package.json +14 -14
@@ -23090,6 +23090,7 @@ import {
23090
23090
  } from "react";
23091
23091
  import { jsx as jsx82 } from "react/jsx-runtime";
23092
23092
  import { useEffect as useEffect3, useMemo as useMemo10, useRef as useRef4 } from "react";
23093
+ import { useRef as useRef5 } from "react";
23093
23094
  import { jsx as jsx92 } from "react/jsx-runtime";
23094
23095
  import {
23095
23096
  forwardRef as forwardRef3,
@@ -23098,7 +23099,6 @@ import {
23098
23099
  useMemo as useMemo16,
23099
23100
  useState as useState6
23100
23101
  } from "react";
23101
- import { useRef as useRef5 } from "react";
23102
23102
  import { useContext as useContext14, useMemo as useMemo13 } from "react";
23103
23103
  import { useContext as useContext13 } from "react";
23104
23104
  import { useContext as useContext12, useMemo as useMemo12 } from "react";
@@ -24552,6 +24552,39 @@ var useCurrentFrame = () => {
24552
24552
  const contextOffset = context ? context.cumulatedFrom + context.relativeFrom : 0;
24553
24553
  return frame - contextOffset;
24554
24554
  };
24555
+ var flattenEffects = (effects) => {
24556
+ const out = [];
24557
+ for (const item of effects) {
24558
+ if (Array.isArray(item)) {
24559
+ for (const inner of item) {
24560
+ out.push(inner);
24561
+ }
24562
+ } else {
24563
+ out.push(item);
24564
+ }
24565
+ }
24566
+ return out;
24567
+ };
24568
+ var groupByBackend = (effects) => {
24569
+ const runs = [];
24570
+ let current = [];
24571
+ let currentBackend = null;
24572
+ for (const eff of effects) {
24573
+ const { backend } = eff.definition;
24574
+ if (currentBackend === null || backend === currentBackend) {
24575
+ current.push(eff);
24576
+ currentBackend = backend;
24577
+ } else {
24578
+ runs.push({ backend: currentBackend, effects: current });
24579
+ current = [eff];
24580
+ currentBackend = backend;
24581
+ }
24582
+ }
24583
+ if (currentBackend !== null && current.length > 0) {
24584
+ runs.push({ backend: currentBackend, effects: current });
24585
+ }
24586
+ return runs;
24587
+ };
24555
24588
 
24556
24589
  class CanvasPool {
24557
24590
  width;
@@ -24625,39 +24658,6 @@ class CanvasPool {
24625
24658
  }
24626
24659
  }
24627
24660
  }
24628
- var flattenEffects = (effects) => {
24629
- const out = [];
24630
- for (const item of effects) {
24631
- if (Array.isArray(item)) {
24632
- for (const inner of item) {
24633
- out.push(inner);
24634
- }
24635
- } else {
24636
- out.push(item);
24637
- }
24638
- }
24639
- return out;
24640
- };
24641
- var groupByBackend = (effects) => {
24642
- const runs = [];
24643
- let current = [];
24644
- let currentBackend = null;
24645
- for (const eff of effects) {
24646
- const { backend } = eff.definition;
24647
- if (currentBackend === null || backend === currentBackend) {
24648
- current.push(eff);
24649
- currentBackend = backend;
24650
- } else {
24651
- runs.push({ backend: currentBackend, effects: current });
24652
- current = [eff];
24653
- currentBackend = backend;
24654
- }
24655
- }
24656
- if (currentBackend !== null && current.length > 0) {
24657
- runs.push({ backend: currentBackend, effects: current });
24658
- }
24659
- return runs;
24660
- };
24661
24661
  var devicePromise = null;
24662
24662
  var getGpuDevice = () => {
24663
24663
  if (devicePromise) {
@@ -24709,8 +24709,7 @@ var runEffectChain = async ({
24709
24709
  }) => {
24710
24710
  const runId = ++state.currentRunId;
24711
24711
  const isCancelled = () => state.currentRunId !== runId;
24712
- const flattened = flattenEffects(effects);
24713
- const runs = groupByBackend(flattened);
24712
+ const runs = groupByBackend(effects);
24714
24713
  let currentImage = source;
24715
24714
  let lastTarget = null;
24716
24715
  if (runs.length === 0) {
@@ -24804,12 +24803,29 @@ var useEffectChainState = () => {
24804
24803
  }
24805
24804
  }), []);
24806
24805
  };
24806
+ var useMemoizedEffects = (effects) => {
24807
+ const previousRef = useRef5(null);
24808
+ const previous = previousRef.current;
24809
+ const isSame = previous !== null && previous.length === effects.length && previous.every((p, i) => p.definition === effects[i].definition && p.effectKey === effects[i].effectKey);
24810
+ if (isSame) {
24811
+ return previous;
24812
+ }
24813
+ const next = effects.map((e) => ({
24814
+ definition: e.definition,
24815
+ stack: e.stack,
24816
+ effectKey: e.effectKey,
24817
+ params: e.params,
24818
+ memoized: true
24819
+ }));
24820
+ previousRef.current = next;
24821
+ return next;
24822
+ };
24807
24823
  var componentsToAddStacksTo = [];
24808
24824
  var getComponentsToAddStacksTo = () => componentsToAddStacksTo;
24809
24825
  var addSequenceStackTraces = (component) => {
24810
24826
  componentsToAddStacksTo.push(component);
24811
24827
  };
24812
- var VERSION = "4.0.460";
24828
+ var VERSION = "4.0.461";
24813
24829
  var checkMultipleRemotionVersions = () => {
24814
24830
  if (typeof globalThis === "undefined") {
24815
24831
  return;
@@ -24837,20 +24853,6 @@ Check that all your Remotion packages are on the same version. If your dependenc
24837
24853
  }
24838
24854
  set();
24839
24855
  };
24840
- var useMemoizedEffects = (effects) => {
24841
- const previousRef = useRef5(null);
24842
- const previous = previousRef.current;
24843
- const isSame = previous !== null && previous.length === effects.length && previous.every((p, i) => p.definition === effects[i].definition && p.stack === effects[i].stack);
24844
- if (isSame) {
24845
- return previous;
24846
- }
24847
- const next = effects.map((e) => ({
24848
- definition: e.definition,
24849
- stack: e.stack
24850
- }));
24851
- previousRef.current = next;
24852
- return next;
24853
- };
24854
24856
  var useUnsafeVideoConfig = () => {
24855
24857
  const context = useContext12(SequenceContext);
24856
24858
  const ctxWidth = context?.width ?? null;
@@ -25008,6 +25010,22 @@ var sequenceStyleSchema = {
25008
25010
  step: 0.01,
25009
25011
  default: 1,
25010
25012
  description: "Opacity"
25013
+ },
25014
+ premountFor: {
25015
+ type: "number",
25016
+ default: 0,
25017
+ description: "Premount For",
25018
+ min: 0,
25019
+ step: 1
25020
+ },
25021
+ postmountFor: {
25022
+ type: "hidden"
25023
+ },
25024
+ styleWhilePremounted: {
25025
+ type: "hidden"
25026
+ },
25027
+ styleWhilePostmounted: {
25028
+ type: "hidden"
25011
25029
  }
25012
25030
  };
25013
25031
  var sequenceSchema = {
@@ -25046,7 +25064,7 @@ var SequenceVisibilityToggleContext = React12.createContext({
25046
25064
  throw new Error("SequenceVisibilityToggle not initialized");
25047
25065
  }
25048
25066
  });
25049
- var getCodeValues = (codeValues, nodePath) => {
25067
+ var getCodeValuesCtx = (codeValues, nodePath) => {
25050
25068
  const status = codeValues[nodePathToString(nodePath)];
25051
25069
  if (!status) {
25052
25070
  return;
@@ -25056,27 +25074,15 @@ var getCodeValues = (codeValues, nodePath) => {
25056
25074
  }
25057
25075
  return status.props;
25058
25076
  };
25059
- var getIsJsxInMapCallback = (codeValues, nodePath) => {
25060
- const status = codeValues[nodePathToString(nodePath)];
25061
- if (!status) {
25062
- return false;
25063
- }
25064
- if (!status.canUpdate) {
25065
- return false;
25077
+ var VisualModeCodeValuesContext = React12.createContext({
25078
+ getCodeValues: () => {
25079
+ throw new Error("VisualModeCodeValuesContext not initialized");
25066
25080
  }
25067
- return status.jsxInMapCallback;
25068
- };
25069
- var VisualModeGettersContext = React12.createContext({
25081
+ });
25082
+ var VisualModeDragOverridesContext = React12.createContext({
25070
25083
  getDragOverrides: () => {
25071
- throw new Error("VisualModeGettersContext not initialized");
25072
- },
25073
- getCodeValues: () => {
25074
- throw new Error("VisualModeGettersContext not initialized");
25075
- },
25076
- getIsJsxInMapCallback: () => {
25077
- throw new Error("VisualModeGettersContext not initialized");
25078
- },
25079
- visualModeEnabled: false
25084
+ throw new Error("VisualModeDragOverridesContext not initialized");
25085
+ }
25080
25086
  });
25081
25087
  var VisualModeSettersContext = React12.createContext({
25082
25088
  setDragOverrides: () => {
@@ -25089,7 +25095,7 @@ var VisualModeSettersContext = React12.createContext({
25089
25095
  throw new Error("VisualModeSettersContext not initialized");
25090
25096
  }
25091
25097
  });
25092
- var SequenceManagerProvider = ({ children, visualModeEnabled }) => {
25098
+ var SequenceManagerProvider = ({ children }) => {
25093
25099
  const [sequences, setSequences] = useState4([]);
25094
25100
  const [hidden, setHidden] = useState4({});
25095
25101
  const [dragOverrides, setControlOverrides] = useState4({});
@@ -25119,10 +25125,12 @@ var SequenceManagerProvider = ({ children, visualModeEnabled }) => {
25119
25125
  const setCodeValues = useCallback5((nodePath, values) => {
25120
25126
  setCodeValuesMapState((prev) => {
25121
25127
  const key = nodePathToString(nodePath);
25122
- if (prev[key] === values) {
25128
+ const prevKey = prev[key];
25129
+ const newKey = values(prevKey);
25130
+ if (prevKey === newKey) {
25123
25131
  return prev;
25124
25132
  }
25125
- return { ...prev, [key]: values };
25133
+ return { ...prev, [key]: newKey };
25126
25134
  });
25127
25135
  }, []);
25128
25136
  const registerSequence = useCallback5((seq) => {
@@ -25146,14 +25154,22 @@ var SequenceManagerProvider = ({ children, visualModeEnabled }) => {
25146
25154
  setHidden
25147
25155
  };
25148
25156
  }, [hidden]);
25149
- const gettersContext = useMemo14(() => {
25157
+ const getDragOverrides = useCallback5((nodePath) => {
25158
+ return dragOverrides[nodePathToString(nodePath)] ?? {};
25159
+ }, [dragOverrides]);
25160
+ const getCodeValues = useCallback5((nodePath) => {
25161
+ return getCodeValuesCtx(codeValues, nodePath);
25162
+ }, [codeValues]);
25163
+ const codeValuesContext = useMemo14(() => {
25150
25164
  return {
25151
- visualModeEnabled,
25152
- getDragOverrides: (nodePath) => dragOverrides[nodePathToString(nodePath)] ?? {},
25153
- getCodeValues: (nodePath) => getCodeValues(codeValues, nodePath),
25154
- getIsJsxInMapCallback: (nodePath) => getIsJsxInMapCallback(codeValues, nodePath)
25165
+ getCodeValues
25155
25166
  };
25156
- }, [visualModeEnabled, dragOverrides, codeValues]);
25167
+ }, [getCodeValues]);
25168
+ const dragOverridesContext = useMemo14(() => {
25169
+ return {
25170
+ getDragOverrides
25171
+ };
25172
+ }, [getDragOverrides]);
25157
25173
  const settersContext = useMemo14(() => {
25158
25174
  return {
25159
25175
  setDragOverrides,
@@ -25165,22 +25181,58 @@ var SequenceManagerProvider = ({ children, visualModeEnabled }) => {
25165
25181
  value: sequenceContext,
25166
25182
  children: /* @__PURE__ */ jsx112(SequenceVisibilityToggleContext.Provider, {
25167
25183
  value: hiddenContext,
25168
- children: /* @__PURE__ */ jsx112(VisualModeGettersContext.Provider, {
25169
- value: gettersContext,
25170
- children: /* @__PURE__ */ jsx112(VisualModeSettersContext.Provider, {
25171
- value: settersContext,
25172
- children
25184
+ children: /* @__PURE__ */ jsx112(VisualModeCodeValuesContext.Provider, {
25185
+ value: codeValuesContext,
25186
+ children: /* @__PURE__ */ jsx112(VisualModeDragOverridesContext.Provider, {
25187
+ value: dragOverridesContext,
25188
+ children: /* @__PURE__ */ jsx112(VisualModeSettersContext.Provider, {
25189
+ value: settersContext,
25190
+ children
25191
+ })
25173
25192
  })
25174
25193
  })
25175
25194
  })
25176
25195
  });
25177
25196
  };
25178
25197
  var ENABLE_V5_BREAKING_CHANGES = false;
25198
+ var deleteNestedKey = (obj, keysToRemove) => {
25199
+ for (const key of keysToRemove) {
25200
+ const parts = key.split(".");
25201
+ const parents = [obj];
25202
+ let current = obj;
25203
+ for (let i = 0;i < parts.length - 1; i++) {
25204
+ const part = parts[i];
25205
+ const next = current[part];
25206
+ if (next === undefined || next === null) {
25207
+ current = null;
25208
+ break;
25209
+ }
25210
+ current = next;
25211
+ parents.push(current);
25212
+ }
25213
+ if (current === null) {
25214
+ continue;
25215
+ }
25216
+ delete current[parts[parts.length - 1]];
25217
+ for (let i = parents.length - 1;i > 0; i--) {
25218
+ const parent = parents[i];
25219
+ if (Object.keys(parent).length === 0) {
25220
+ const parentKey = parts[i - 1];
25221
+ delete parents[i - 1][parentKey];
25222
+ } else {
25223
+ break;
25224
+ }
25225
+ }
25226
+ }
25227
+ return obj;
25228
+ };
25179
25229
  var flattenActiveSchema = (schema, resolve) => {
25180
25230
  const out = {};
25181
25231
  for (const key of Object.keys(schema)) {
25182
25232
  const field = schema[key];
25183
- if (field.type === "enum") {
25233
+ if (field.type === "hidden") {
25234
+ continue;
25235
+ } else if (field.type === "enum") {
25184
25236
  out[key] = field;
25185
25237
  const current = resolve(key) ?? field.default;
25186
25238
  const variant = field.variants[current];
@@ -25223,6 +25275,36 @@ var OverrideIdsToNodePathsSettersContext = createContext15({
25223
25275
  throw new Error("OverrideIdsToNodePathsSettersContext not initialized");
25224
25276
  }
25225
25277
  });
25278
+ var findPropsToDelete = ({
25279
+ schema,
25280
+ key,
25281
+ value
25282
+ }) => {
25283
+ const fieldSchema = schema[key];
25284
+ if (!fieldSchema) {
25285
+ throw new Error("Key " + JSON.stringify(key) + " not found in schema");
25286
+ }
25287
+ if (typeof value !== "string") {
25288
+ throw new Error("Value must be a string, but is " + JSON.stringify(value));
25289
+ }
25290
+ if (fieldSchema.type !== "enum") {
25291
+ throw new Error("Key " + JSON.stringify(key) + " is not an enum");
25292
+ }
25293
+ const currentVariant = fieldSchema.variants[value];
25294
+ if (!currentVariant) {
25295
+ throw new Error("Value for " + JSON.stringify(key) + " must be one of " + Object.keys(fieldSchema.variants).map((v) => JSON.stringify(v)).join(", ") + ", got " + JSON.stringify(value));
25296
+ }
25297
+ const otherVariants = Object.keys(fieldSchema.variants).filter((v) => v !== value);
25298
+ const otherKeys = new Set;
25299
+ for (const variant of otherVariants) {
25300
+ const otherVariant = fieldSchema.variants[variant];
25301
+ const keys = Object.keys(otherVariant);
25302
+ for (const k of keys) {
25303
+ otherKeys.add(k);
25304
+ }
25305
+ }
25306
+ return [...otherKeys];
25307
+ };
25226
25308
  var getEffectiveVisualModeValue = ({
25227
25309
  codeValue,
25228
25310
  runtimeValue,
@@ -25268,17 +25350,38 @@ var computeEffectiveSchemaValuesDotNotation = ({
25268
25350
  propStatus
25269
25351
  }) => {
25270
25352
  const merged = {};
25353
+ const propsToDelete = new Set;
25271
25354
  for (const key of Object.keys(currentValue)) {
25272
25355
  const codeValueStatus = propStatus?.[key] ?? null;
25273
- merged[key] = getEffectiveVisualModeValue({
25356
+ const field = findFieldInSchema(schema, key);
25357
+ if (field?.type === "hidden") {
25358
+ continue;
25359
+ }
25360
+ const value = getEffectiveVisualModeValue({
25274
25361
  codeValue: codeValueStatus,
25275
25362
  runtimeValue: currentValue[key],
25276
25363
  dragOverrideValue: overrideValues[key],
25277
- defaultValue: findFieldInSchema(schema, key)?.default,
25364
+ defaultValue: field?.default,
25278
25365
  shouldResortToDefaultValueIfUndefined: false
25279
25366
  });
25367
+ if (value === undefined) {
25368
+ propsToDelete.add(key);
25369
+ }
25370
+ merged[key] = value;
25280
25371
  }
25281
- return merged;
25372
+ for (const key of Object.keys(overrideValues)) {
25373
+ if (schema[key]?.type === "enum") {
25374
+ const propsToDeleteForKey = findPropsToDelete({
25375
+ schema,
25376
+ key,
25377
+ value: merged[key]
25378
+ });
25379
+ for (const propToDelete of propsToDeleteForKey) {
25380
+ propsToDelete.add(propToDelete);
25381
+ }
25382
+ }
25383
+ }
25384
+ return { merged, propsToDelete };
25282
25385
  };
25283
25386
  var getNestedValue = (obj, key) => {
25284
25387
  const parts = key.split(".");
@@ -25303,7 +25406,8 @@ var selectActiveKeys = (schema, values) => {
25303
25406
  var mergeValues = ({
25304
25407
  props,
25305
25408
  valuesDotNotation,
25306
- schemaKeys
25409
+ schemaKeys,
25410
+ propsToDelete
25307
25411
  }) => {
25308
25412
  const merged = { ...props };
25309
25413
  for (const key of schemaKeys) {
@@ -25325,26 +25429,25 @@ var mergeValues = ({
25325
25429
  }
25326
25430
  current[parts[parts.length - 1]] = value;
25327
25431
  }
25432
+ deleteNestedKey(merged, propsToDelete);
25328
25433
  return merged;
25329
25434
  };
25330
25435
  var stackToOverrideMap = {};
25331
25436
  var wrapInSchema = (Component, schema) => {
25332
- if (typeof process === "undefined" || !process.env?.EXPERIMENTAL_VISUAL_MODE_ENABLED) {
25333
- return Component;
25334
- }
25335
25437
  const flatSchema = getFlatSchemaWithAllKeys(schema);
25336
25438
  const flatKeys = Object.keys(flatSchema);
25337
25439
  const Wrapped = forwardRef2((props, ref) => {
25338
25440
  const env = useRemotionEnvironment();
25339
- const { visualModeEnabled, getDragOverrides, getCodeValues: getCodeValues2 } = useContext15(VisualModeGettersContext);
25340
- const nodePathMapping = useContext15(OverrideIdsToNodePathsGettersContext);
25341
- if (!env.isStudio || env.isReadOnlyStudio || env.isRendering || !visualModeEnabled) {
25441
+ if (!env.isStudio || env.isReadOnlyStudio || env.isRendering) {
25342
25442
  return React13.createElement(Component, {
25343
25443
  ...props,
25344
25444
  _experimentalControls: null,
25345
25445
  ref
25346
25446
  });
25347
25447
  }
25448
+ const { getCodeValues } = useContext15(VisualModeCodeValuesContext);
25449
+ const { getDragOverrides } = useContext15(VisualModeDragOverridesContext);
25450
+ const nodePathMapping = useContext15(OverrideIdsToNodePathsGettersContext);
25348
25451
  if (props._experimentalControls) {
25349
25452
  return React13.createElement(Component, {
25350
25453
  ...props,
@@ -25374,24 +25477,25 @@ var wrapInSchema = (Component, schema) => {
25374
25477
  overrideId
25375
25478
  };
25376
25479
  }, [currentRuntimeValueDotNotation, overrideId]);
25377
- const valuesDotNotation = useMemo15(() => {
25480
+ const { merged: valuesDotNotation, propsToDelete } = useMemo15(() => {
25378
25481
  return computeEffectiveSchemaValuesDotNotation({
25379
25482
  schema,
25380
25483
  currentValue: currentRuntimeValueDotNotation,
25381
25484
  overrideValues: nodePath === null ? {} : getDragOverrides(nodePath),
25382
- propStatus: nodePath === null ? undefined : getCodeValues2(nodePath)
25485
+ propStatus: nodePath === null ? undefined : getCodeValues(nodePath)
25383
25486
  });
25384
25487
  }, [
25385
25488
  currentRuntimeValueDotNotation,
25386
25489
  getDragOverrides,
25387
25490
  nodePath,
25388
- getCodeValues2
25491
+ getCodeValues
25389
25492
  ]);
25390
25493
  const activeKeys = selectActiveKeys(schema, valuesDotNotation);
25391
25494
  const mergedProps = mergeValues({
25392
25495
  props,
25393
25496
  valuesDotNotation,
25394
- schemaKeys: activeKeys
25497
+ schemaKeys: activeKeys,
25498
+ propsToDelete
25395
25499
  });
25396
25500
  return React13.createElement(Component, {
25397
25501
  ...mergedProps,
@@ -25487,7 +25591,6 @@ var RegularSequenceRefForwardingFunction = ({
25487
25591
  }, [name]);
25488
25592
  const env = useRemotionEnvironment();
25489
25593
  const inheritedStack = other?.stack ?? null;
25490
- const memoizedEffects = useMemoizedEffects(flattenEffects(_experimentalEffects ?? []));
25491
25594
  useEffect5(() => {
25492
25595
  if (!env.isStudio) {
25493
25596
  return;
@@ -25496,7 +25599,7 @@ var RegularSequenceRefForwardingFunction = ({
25496
25599
  registerSequence({
25497
25600
  type: isMedia.type,
25498
25601
  controls: controls ?? null,
25499
- effects: memoizedEffects,
25602
+ effects: _experimentalEffects ?? [],
25500
25603
  displayName: timelineClipName,
25501
25604
  doesVolumeChange: isMedia.data.doesVolumeChange,
25502
25605
  duration: actualDurationInFrames,
@@ -25534,7 +25637,7 @@ var RegularSequenceRefForwardingFunction = ({
25534
25637
  premountDisplay: premountDisplay ?? null,
25535
25638
  postmountDisplay: postmountDisplay ?? null,
25536
25639
  controls: controls ?? null,
25537
- effects: memoizedEffects
25640
+ effects: _experimentalEffects ?? []
25538
25641
  });
25539
25642
  return () => {
25540
25643
  unregisterSequence(id);
@@ -25559,7 +25662,7 @@ var RegularSequenceRefForwardingFunction = ({
25559
25662
  env.isStudio,
25560
25663
  inheritedStack,
25561
25664
  controls,
25562
- memoizedEffects,
25665
+ _experimentalEffects,
25563
25666
  isMedia
25564
25667
  ]);
25565
25668
  const endThreshold = Math.ceil(cumulatedFrom + from + durationInFrames - 1);
@@ -26084,8 +26187,9 @@ var HtmlInCanvasInner = forwardRef5(({
26084
26187
  }, [ref]);
26085
26188
  const [offscreenCanvas] = useState8(() => new OffscreenCanvas(1, 1));
26086
26189
  const chainState = useEffectChainState();
26087
- const effectsRef = useRef9(effects);
26088
- effectsRef.current = effects;
26190
+ const memoizedEffects = useMemoizedEffects(flattenEffects(effects));
26191
+ const effectsRef = useRef9(memoizedEffects);
26192
+ effectsRef.current = memoizedEffects;
26089
26193
  const frameRef = useRef9(frame);
26090
26194
  frameRef.current = frame;
26091
26195
  const onPaintRef = useRef9(onPaint);
@@ -26185,7 +26289,7 @@ var HtmlInCanvasInner = forwardRef5(({
26185
26289
  return;
26186
26290
  }
26187
26291
  canvas.requestPaint?.();
26188
- }, [onPaint]);
26292
+ }, [onPaint, memoizedEffects]);
26189
26293
  useLayoutEffect3(() => {
26190
26294
  const canvas = canvas2dRef.current;
26191
26295
  if (!canvas) {
@@ -26212,7 +26316,7 @@ var HtmlInCanvasInner = forwardRef5(({
26212
26316
  durationInFrames: resolvedDuration,
26213
26317
  name: "<HtmlInCanvas>",
26214
26318
  _experimentalControls: controls,
26215
- _experimentalEffects: effects,
26319
+ _experimentalEffects: memoizedEffects,
26216
26320
  layout: "none",
26217
26321
  ...sequenceProps,
26218
26322
  children: /* @__PURE__ */ jsx15(HtmlInCanvasAncestorContext.Provider, {
@@ -29617,10 +29721,13 @@ var makeDefaultPreviewCSS = (scope, backgroundColor) => {
29617
29721
  };
29618
29722
  var defineEffect = (definition) => definition;
29619
29723
  var createDescriptor = (definition, params) => {
29724
+ const widened = definition;
29620
29725
  return {
29621
- definition,
29726
+ definition: widened,
29622
29727
  params,
29623
- stack: new Error().stack
29728
+ stack: new Error().stack,
29729
+ effectKey: widened.calculateKey(params),
29730
+ memoized: false
29624
29731
  };
29625
29732
  };
29626
29733
  var REMOTION_STUDIO_CONTAINER_ELEMENT = "__remotion-studio-container";
@@ -29684,8 +29791,7 @@ var RemotionRootContexts = ({
29684
29791
  audioLatencyHint,
29685
29792
  videoEnabled,
29686
29793
  audioEnabled,
29687
- frameState,
29688
- visualModeEnabled
29794
+ frameState
29689
29795
  }) => {
29690
29796
  const nonceContext = useMemo322(() => {
29691
29797
  let counter = 0;
@@ -29708,7 +29814,6 @@ var RemotionRootContexts = ({
29708
29814
  children: /* @__PURE__ */ jsx29(EditorPropsProvider, {
29709
29815
  children: /* @__PURE__ */ jsx29(PrefetchProvider, {
29710
29816
  children: /* @__PURE__ */ jsx29(SequenceManagerProvider, {
29711
- visualModeEnabled,
29712
29817
  children: /* @__PURE__ */ jsx29(DurationsContextProvider, {
29713
29818
  children: /* @__PURE__ */ jsx29(BufferingProvider, {
29714
29819
  children: /* @__PURE__ */ jsx29(SharedAudioContextProvider, {
@@ -30676,7 +30781,8 @@ var Internals = {
30676
30781
  VideoForPreview,
30677
30782
  CompositionManager,
30678
30783
  CompositionSetters,
30679
- VisualModeGettersContext,
30784
+ VisualModeCodeValuesContext,
30785
+ VisualModeDragOverridesContext,
30680
30786
  VisualModeSettersContext,
30681
30787
  SequenceManager,
30682
30788
  SequenceStackTracesUpdateContext,
@@ -30780,7 +30886,9 @@ var Internals = {
30780
30886
  createDescriptor,
30781
30887
  computeEffectiveSchemaValuesDotNotation,
30782
30888
  OverrideIdsToNodePathsGettersContext,
30783
- OverrideIdsToNodePathsSettersContext
30889
+ OverrideIdsToNodePathsSettersContext,
30890
+ findPropsToDelete,
30891
+ flattenEffects
30784
30892
  };
30785
30893
  var NUMBER = "[-+]?\\d*\\.?\\d+";
30786
30894
  var PERCENTAGE = NUMBER + "%";