@remotion/promo-pages 4.0.433 → 4.0.435

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 (284) hide show
  1. package/dist/Homepage.js +452 -25364
  2. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/Homepage.js +452 -25364
  3. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/design.js +1 -1
  4. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/experts/experts-data.js +69 -18
  5. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/experts.js +70 -19
  6. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/homepage/Pricing.js +1 -1
  7. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/prompts/PromptsGallery.js +1 -1
  8. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/prompts/PromptsShow.js +1 -1
  9. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/prompts/PromptsSubmit.js +1 -1
  10. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/template-modal-content.js +1 -1
  11. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/templates.js +3 -1
  12. package/dist/cn.d.ts +2 -0
  13. package/dist/cn.js +5 -0
  14. package/dist/components/3DEngine/ButtonDemo.d.ts +2 -0
  15. package/dist/components/3DEngine/ButtonDemo.js +43 -0
  16. package/dist/components/3DEngine/Faces.d.ts +5 -0
  17. package/dist/components/3DEngine/Faces.js +7 -0
  18. package/dist/components/3DEngine/Outer.d.ts +8 -0
  19. package/dist/components/3DEngine/Outer.js +56 -0
  20. package/dist/components/3DEngine/Switch.d.ts +4 -0
  21. package/dist/components/3DEngine/Switch.js +4 -0
  22. package/dist/components/3DEngine/get-child-node-from.d.ts +1 -0
  23. package/dist/components/3DEngine/get-child-node-from.js +14 -0
  24. package/dist/components/3DEngine/hover-transforms.d.ts +9 -0
  25. package/dist/components/3DEngine/hover-transforms.js +177 -0
  26. package/dist/components/BackButton.d.ts +6 -0
  27. package/dist/components/BackButton.js +9 -0
  28. package/dist/components/CommandCopyButton.d.ts +5 -0
  29. package/dist/components/CommandCopyButton.js +4 -0
  30. package/dist/components/Homepage.d.ts +6 -0
  31. package/dist/components/Homepage.js +20 -0
  32. package/dist/components/ManageTeamMembers.d.ts +2 -0
  33. package/dist/components/ManageTeamMembers.js +42 -0
  34. package/dist/components/Spinner.d.ts +3 -0
  35. package/dist/components/Spinner.js +4 -0
  36. package/dist/components/TeamPicture.d.ts +1 -0
  37. package/dist/components/TeamPicture.js +4 -0
  38. package/dist/components/design.d.ts +1 -0
  39. package/dist/components/design.js +33 -0
  40. package/dist/components/experts/ExpertsPage.d.ts +11 -0
  41. package/dist/components/experts/ExpertsPage.js +50 -0
  42. package/dist/components/experts/experts-data.d.ts +15 -0
  43. package/dist/components/experts/experts-data.js +263 -0
  44. package/dist/components/experts/experts-icons.d.ts +7 -0
  45. package/dist/components/experts/experts-icons.js +36 -0
  46. package/dist/components/experts.d.ts +3 -0
  47. package/dist/components/experts.js +2 -0
  48. package/dist/components/homepage/BackgroundAnimation.d.ts +2 -0
  49. package/dist/components/homepage/BackgroundAnimation.js +66 -0
  50. package/dist/components/homepage/ChooseTemplate.d.ts +2 -0
  51. package/dist/components/homepage/ChooseTemplate.js +25 -0
  52. package/dist/components/homepage/CommunityStats.d.ts +3 -0
  53. package/dist/components/homepage/CommunityStats.js +6 -0
  54. package/dist/components/homepage/CommunityStatsItems.d.ts +7 -0
  55. package/dist/components/homepage/CommunityStatsItems.js +58 -0
  56. package/dist/components/homepage/Demo/Card.d.ts +15 -0
  57. package/dist/components/homepage/Demo/Card.js +174 -0
  58. package/dist/components/homepage/Demo/Cards.d.ts +15 -0
  59. package/dist/components/homepage/Demo/Cards.js +57 -0
  60. package/dist/components/homepage/Demo/Comp.d.ts +38 -0
  61. package/dist/components/homepage/Demo/Comp.js +72 -0
  62. package/dist/components/homepage/Demo/CurrentCountry.d.ts +9 -0
  63. package/dist/components/homepage/Demo/CurrentCountry.js +48 -0
  64. package/dist/components/homepage/Demo/DemoError.d.ts +2 -0
  65. package/dist/components/homepage/Demo/DemoError.js +10 -0
  66. package/dist/components/homepage/Demo/DemoErrorIcon.d.ts +2 -0
  67. package/dist/components/homepage/Demo/DemoErrorIcon.js +16 -0
  68. package/dist/components/homepage/Demo/DemoRender.d.ts +33 -0
  69. package/dist/components/homepage/Demo/DemoRender.js +107 -0
  70. package/dist/components/homepage/Demo/DigitWheel.d.ts +9 -0
  71. package/dist/components/homepage/Demo/DigitWheel.js +94 -0
  72. package/dist/components/homepage/Demo/DisplayedEmoji.d.ts +5 -0
  73. package/dist/components/homepage/Demo/DisplayedEmoji.js +59 -0
  74. package/dist/components/homepage/Demo/DoneCheckmark.d.ts +2 -0
  75. package/dist/components/homepage/Demo/DoneCheckmark.js +20 -0
  76. package/dist/components/homepage/Demo/DownloadNudge.d.ts +2 -0
  77. package/dist/components/homepage/Demo/DownloadNudge.js +27 -0
  78. package/dist/components/homepage/Demo/DragAndDropNudge.d.ts +3 -0
  79. package/dist/components/homepage/Demo/DragAndDropNudge.js +26 -0
  80. package/dist/components/homepage/Demo/EmojiCard.d.ts +10 -0
  81. package/dist/components/homepage/Demo/EmojiCard.js +120 -0
  82. package/dist/components/homepage/Demo/Minus.d.ts +5 -0
  83. package/dist/components/homepage/Demo/Minus.js +11 -0
  84. package/dist/components/homepage/Demo/PlayPauseButton.d.ts +5 -0
  85. package/dist/components/homepage/Demo/PlayPauseButton.js +47 -0
  86. package/dist/components/homepage/Demo/PlayerControls.d.ts +8 -0
  87. package/dist/components/homepage/Demo/PlayerControls.js +15 -0
  88. package/dist/components/homepage/Demo/PlayerSeekBar.d.ts +11 -0
  89. package/dist/components/homepage/Demo/PlayerSeekBar.js +216 -0
  90. package/dist/components/homepage/Demo/PlayerVolume.d.ts +5 -0
  91. package/dist/components/homepage/Demo/PlayerVolume.js +53 -0
  92. package/dist/components/homepage/Demo/Progress.d.ts +4 -0
  93. package/dist/components/homepage/Demo/Progress.js +14 -0
  94. package/dist/components/homepage/Demo/Spinner.d.ts +5 -0
  95. package/dist/components/homepage/Demo/Spinner.js +37 -0
  96. package/dist/components/homepage/Demo/Switcher.d.ts +6 -0
  97. package/dist/components/homepage/Demo/Switcher.js +25 -0
  98. package/dist/components/homepage/Demo/Temperature.d.ts +6 -0
  99. package/dist/components/homepage/Demo/Temperature.js +21 -0
  100. package/dist/components/homepage/Demo/TemperatureNumber.d.ts +5 -0
  101. package/dist/components/homepage/Demo/TemperatureNumber.js +36 -0
  102. package/dist/components/homepage/Demo/ThemeNudge.d.ts +3 -0
  103. package/dist/components/homepage/Demo/ThemeNudge.js +35 -0
  104. package/dist/components/homepage/Demo/TimeDisplay.d.ts +6 -0
  105. package/dist/components/homepage/Demo/TimeDisplay.js +27 -0
  106. package/dist/components/homepage/Demo/TrendingRepos.d.ts +6 -0
  107. package/dist/components/homepage/Demo/TrendingRepos.js +65 -0
  108. package/dist/components/homepage/Demo/icons.d.ts +10 -0
  109. package/dist/components/homepage/Demo/icons.js +22 -0
  110. package/dist/components/homepage/Demo/index.d.ts +2 -0
  111. package/dist/components/homepage/Demo/index.js +95 -0
  112. package/dist/components/homepage/Demo/math.d.ts +10 -0
  113. package/dist/components/homepage/Demo/math.js +29 -0
  114. package/dist/components/homepage/Demo/types.d.ts +6 -0
  115. package/dist/components/homepage/Demo/types.js +0 -0
  116. package/dist/components/homepage/EditorStarterSection.d.ts +3 -0
  117. package/dist/components/homepage/EditorStarterSection.js +8 -0
  118. package/dist/components/homepage/EvaluateRemotion.d.ts +3 -0
  119. package/dist/components/homepage/EvaluateRemotion.js +21 -0
  120. package/dist/components/homepage/FreePricing.d.ts +4 -0
  121. package/dist/components/homepage/FreePricing.js +134 -0
  122. package/dist/components/homepage/GetStartedStrip.d.ts +2 -0
  123. package/dist/components/homepage/GetStartedStrip.js +14 -0
  124. package/dist/components/homepage/GitHubButton.d.ts +2 -0
  125. package/dist/components/homepage/GitHubButton.js +7 -0
  126. package/dist/components/homepage/IconForTemplate.d.ts +6 -0
  127. package/dist/components/homepage/IconForTemplate.js +101 -0
  128. package/dist/components/homepage/IfYouKnowReact.d.ts +3 -0
  129. package/dist/components/homepage/IfYouKnowReact.js +23 -0
  130. package/dist/components/homepage/InfoTooltip.d.ts +6 -0
  131. package/dist/components/homepage/InfoTooltip.js +6 -0
  132. package/dist/components/homepage/MoreTemplatesButton.d.ts +2 -0
  133. package/dist/components/homepage/MoreTemplatesButton.js +11 -0
  134. package/dist/components/homepage/MuxVideo.d.ts +7 -0
  135. package/dist/components/homepage/MuxVideo.js +45 -0
  136. package/dist/components/homepage/NewsletterButton.d.ts +2 -0
  137. package/dist/components/homepage/NewsletterButton.js +38 -0
  138. package/dist/components/homepage/ParameterizeAndEdit.d.ts +2 -0
  139. package/dist/components/homepage/ParameterizeAndEdit.js +22 -0
  140. package/dist/components/homepage/Pricing.d.ts +2 -0
  141. package/dist/components/homepage/Pricing.js +15 -0
  142. package/dist/components/homepage/PricingBulletPoint.d.ts +6 -0
  143. package/dist/components/homepage/PricingBulletPoint.js +19 -0
  144. package/dist/components/homepage/RealMp4Videos.d.ts +2 -0
  145. package/dist/components/homepage/RealMp4Videos.js +41 -0
  146. package/dist/components/homepage/Spacer.d.ts +2 -0
  147. package/dist/components/homepage/Spacer.js +4 -0
  148. package/dist/components/homepage/TemplateIcon.d.ts +5 -0
  149. package/dist/components/homepage/TemplateIcon.js +24 -0
  150. package/dist/components/homepage/TextInput.d.ts +7 -0
  151. package/dist/components/homepage/TextInput.js +34 -0
  152. package/dist/components/homepage/TrustedByBanner.d.ts +2 -0
  153. package/dist/components/homepage/TrustedByBanner.js +27 -0
  154. package/dist/components/homepage/VideoApps.d.ts +4 -0
  155. package/dist/components/homepage/VideoApps.js +72 -0
  156. package/dist/components/homepage/VideoAppsShowcase.d.ts +3 -0
  157. package/dist/components/homepage/VideoAppsShowcase.js +139 -0
  158. package/dist/components/homepage/VideoAppsTitle.d.ts +4 -0
  159. package/dist/components/homepage/VideoAppsTitle.js +4 -0
  160. package/dist/components/homepage/VideoPlayerWithControls.d.ts +20 -0
  161. package/dist/components/homepage/VideoPlayerWithControls.js +105 -0
  162. package/dist/components/homepage/WriteInReact.d.ts +2 -0
  163. package/dist/components/homepage/WriteInReact.js +10 -0
  164. package/dist/components/homepage/YouAreHere.d.ts +2 -0
  165. package/dist/components/homepage/YouAreHere.js +23 -0
  166. package/dist/components/homepage/layout/Button.d.ts +22 -0
  167. package/dist/components/homepage/layout/Button.js +30 -0
  168. package/dist/components/homepage/layout/colors.d.ts +13 -0
  169. package/dist/components/homepage/layout/colors.js +14 -0
  170. package/dist/components/homepage/layout/use-color-mode.d.ts +21 -0
  171. package/dist/components/homepage/layout/use-color-mode.js +22 -0
  172. package/dist/components/homepage/layout/use-el-size.d.ts +5 -0
  173. package/dist/components/homepage/layout/use-el-size.js +40 -0
  174. package/dist/components/homepage/layout/use-mobile-layout.d.ts +1 -0
  175. package/dist/components/homepage/layout/use-mobile-layout.js +6 -0
  176. package/dist/components/icons/blank.d.ts +3 -0
  177. package/dist/components/icons/blank.js +4 -0
  178. package/dist/components/icons/brain.d.ts +2 -0
  179. package/dist/components/icons/brain.js +4 -0
  180. package/dist/components/icons/clone.d.ts +2 -0
  181. package/dist/components/icons/clone.js +2 -0
  182. package/dist/components/icons/code-hike.d.ts +3 -0
  183. package/dist/components/icons/code-hike.js +4 -0
  184. package/dist/components/icons/cubes.d.ts +3 -0
  185. package/dist/components/icons/cubes.js +4 -0
  186. package/dist/components/icons/editor.d.ts +3 -0
  187. package/dist/components/icons/editor.js +4 -0
  188. package/dist/components/icons/js.d.ts +3 -0
  189. package/dist/components/icons/js.js +4 -0
  190. package/dist/components/icons/music.d.ts +2 -0
  191. package/dist/components/icons/music.js +4 -0
  192. package/dist/components/icons/next.d.ts +4 -0
  193. package/dist/components/icons/next.js +4 -0
  194. package/dist/components/icons/overlay.d.ts +3 -0
  195. package/dist/components/icons/overlay.js +4 -0
  196. package/dist/components/icons/prompt-to-video.d.ts +2 -0
  197. package/dist/components/icons/prompt-to-video.js +4 -0
  198. package/dist/components/icons/recorder.d.ts +3 -0
  199. package/dist/components/icons/recorder.js +4 -0
  200. package/dist/components/icons/remix.d.ts +3 -0
  201. package/dist/components/icons/remix.js +4 -0
  202. package/dist/components/icons/render-server.d.ts +3 -0
  203. package/dist/components/icons/render-server.js +4 -0
  204. package/dist/components/icons/skia.d.ts +3 -0
  205. package/dist/components/icons/skia.js +4 -0
  206. package/dist/components/icons/stargazer.d.ts +3 -0
  207. package/dist/components/icons/stargazer.js +4 -0
  208. package/dist/components/icons/still.d.ts +3 -0
  209. package/dist/components/icons/still.js +4 -0
  210. package/dist/components/icons/tailwind.d.ts +3 -0
  211. package/dist/components/icons/tailwind.js +4 -0
  212. package/dist/components/icons/tiktok.d.ts +3 -0
  213. package/dist/components/icons/tiktok.js +4 -0
  214. package/dist/components/icons/timeline.d.ts +3 -0
  215. package/dist/components/icons/timeline.js +4 -0
  216. package/dist/components/icons/ts.d.ts +3 -0
  217. package/dist/components/icons/ts.js +4 -0
  218. package/dist/components/icons/undo.d.ts +3 -0
  219. package/dist/components/icons/undo.js +2 -0
  220. package/dist/components/icons/vercel.d.ts +4 -0
  221. package/dist/components/icons/vercel.js +4 -0
  222. package/dist/components/icons/waveform.d.ts +3 -0
  223. package/dist/components/icons/waveform.js +4 -0
  224. package/dist/components/prompts/CardLikeButton.d.ts +5 -0
  225. package/dist/components/prompts/CardLikeButton.js +49 -0
  226. package/dist/components/prompts/ClipboardIcon.d.ts +5 -0
  227. package/dist/components/prompts/ClipboardIcon.js +4 -0
  228. package/dist/components/prompts/CopyPromptButton.d.ts +4 -0
  229. package/dist/components/prompts/CopyPromptButton.js +13 -0
  230. package/dist/components/prompts/LikeButton.d.ts +5 -0
  231. package/dist/components/prompts/LikeButton.js +49 -0
  232. package/dist/components/prompts/MuxPlayer.d.ts +8 -0
  233. package/dist/components/prompts/MuxPlayer.js +21 -0
  234. package/dist/components/prompts/NewBackButton.d.ts +5 -0
  235. package/dist/components/prompts/NewBackButton.js +8 -0
  236. package/dist/components/prompts/Page.d.ts +8 -0
  237. package/dist/components/prompts/Page.js +7 -0
  238. package/dist/components/prompts/PromptsGallery.d.ts +7 -0
  239. package/dist/components/prompts/PromptsGallery.js +60 -0
  240. package/dist/components/prompts/PromptsShow.d.ts +5 -0
  241. package/dist/components/prompts/PromptsShow.js +17 -0
  242. package/dist/components/prompts/PromptsSubmit.d.ts +2 -0
  243. package/dist/components/prompts/PromptsSubmit.js +173 -0
  244. package/dist/components/prompts/config.d.ts +1 -0
  245. package/dist/components/prompts/config.js +1 -0
  246. package/dist/components/prompts/prompt-helpers.d.ts +8 -0
  247. package/dist/components/prompts/prompt-helpers.js +76 -0
  248. package/dist/components/prompts/prompt-types.d.ts +14 -0
  249. package/dist/components/prompts/prompt-types.js +0 -0
  250. package/dist/components/prompts/use-heart-animation.d.ts +5 -0
  251. package/dist/components/prompts/use-heart-animation.js +29 -0
  252. package/dist/components/team/TeamCards.d.ts +6 -0
  253. package/dist/components/team/TeamCards.js +19 -0
  254. package/dist/components/team/TitleTeamCards.d.ts +2 -0
  255. package/dist/components/team/TitleTeamCards.js +6 -0
  256. package/dist/components/team.d.ts +3 -0
  257. package/dist/components/team.js +14 -0
  258. package/dist/components/template-modal-content.d.ts +5 -0
  259. package/dist/components/template-modal-content.js +73 -0
  260. package/dist/components/templates.d.ts +2 -0
  261. package/dist/components/templates.js +27 -0
  262. package/dist/design.js +1 -1
  263. package/dist/experts/experts-data.js +69 -18
  264. package/dist/experts.js +70 -19
  265. package/dist/helpers/mobile-layout.d.ts +1 -0
  266. package/dist/helpers/mobile-layout.js +6 -0
  267. package/dist/helpers/use-el-size.d.ts +5 -0
  268. package/dist/helpers/use-el-size.js +40 -0
  269. package/dist/homepage/Pricing.js +1 -1
  270. package/dist/main.d.ts +1 -0
  271. package/dist/main.js +6 -0
  272. package/dist/prompts/PromptsGallery.js +1 -1
  273. package/dist/prompts/PromptsShow.js +1 -1
  274. package/dist/prompts/PromptsSubmit.js +1 -1
  275. package/dist/prompts-show.d.ts +1 -0
  276. package/dist/prompts-show.js +20 -0
  277. package/dist/prompts-submit.d.ts +1 -0
  278. package/dist/prompts-submit.js +6 -0
  279. package/dist/prompts.d.ts +1 -0
  280. package/dist/prompts.js +6 -0
  281. package/dist/team.d.ts +1 -0
  282. package/dist/template-modal-content.js +1 -1
  283. package/dist/templates.js +3 -1
  284. package/package.json +13 -13
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button } from '@remotion/design';
3
+ export const BackButton = ({ color, text, link }) => {
4
+ return (_jsx("div", { className: "justify-center items-center font-medium mb-4 block", style: {
5
+ fontFamily: 'GTPlanar',
6
+ fontWeight: 500,
7
+ color,
8
+ }, children: _jsx(Button, { href: link, className: "px-4 rounded-full text-sm h-10", children: _jsxs("div", { className: "flex row items-center justify-center px-4", children: [_jsx("svg", { className: "h-4 mr-[15px] inline-block", style: { color }, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 448 512", children: _jsx("path", { fill: "currentcolor", d: "M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z" }) }), text] }) }) }));
9
+ };
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ export declare const CommandCopyButton: React.FC<{
3
+ readonly copied: boolean;
4
+ readonly customSvg: React.ReactNode | null;
5
+ }>;
@@ -0,0 +1,4 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export const CommandCopyButton = ({ copied, customSvg }) => {
3
+ return copied ? (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 448 512", className: "h-5", children: _jsx("path", { fill: "currentColor", d: "M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" }) })) : customSvg ? (customSvg) : (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 384 512", className: "h-5", children: _jsx("path", { fill: "currentColor", d: "M320 64h-49.61C262.1 27.48 230.7 0 192 0S121 27.48 113.6 64H64C28.65 64 0 92.66 0 128v320c0 35.34 28.65 64 64 64h256c35.35 0 64-28.66 64-64V128C384 92.66 355.3 64 320 64zM192 48c13.23 0 24 10.77 24 24S205.2 96 192 96S168 85.23 168 72S178.8 48 192 48zM336 448c0 8.82-7.178 16-16 16H64c-8.822 0-16-7.18-16-16V128c0-8.82 7.178-16 16-16h18.26C80.93 117.1 80 122.4 80 128v16C80 152.8 87.16 160 96 160h192c8.836 0 16-7.164 16-16V128c0-5.559-.9316-10.86-2.264-16H320c8.822 0 16 7.18 16 16V448z" }) }));
4
+ };
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import type { ColorMode } from './homepage/layout/use-color-mode';
3
+ export declare const NewLanding: React.FC<{
4
+ readonly colorMode: ColorMode;
5
+ readonly setColorMode: (colorMode: ColorMode) => void;
6
+ }>;
@@ -0,0 +1,20 @@
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 { Demo } from './homepage/Demo';
6
+ import EditorStarterSection from './homepage/EditorStarterSection';
7
+ import EvaluateRemotionSection from './homepage/EvaluateRemotion';
8
+ import { IfYouKnowReact } from './homepage/IfYouKnowReact';
9
+ import { ColorModeProvider } from './homepage/layout/use-color-mode';
10
+ import { NewsletterButton } from './homepage/NewsletterButton';
11
+ import { ParameterizeAndEdit } from './homepage/ParameterizeAndEdit';
12
+ import { Pricing } from './homepage/Pricing';
13
+ import { RealMP4Videos } from './homepage/RealMp4Videos';
14
+ import TrustedByBanner from './homepage/TrustedByBanner';
15
+ import VideoAppsShowcase from './homepage/VideoAppsShowcase';
16
+ import { SectionTitle } from './homepage/VideoAppsTitle';
17
+ import { WriteInReact } from './homepage/WriteInReact';
18
+ export const NewLanding = ({ colorMode, setColorMode }) => {
19
+ return (_jsx(ColorModeProvider, { colorMode: colorMode, setColorMode: setColorMode, children: _jsx("div", { className: "w-full relative", children: _jsxs("div", { style: { overflow: 'hidden' }, 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 overflow-x-clip md:overflow-x-visible relative", children: [_jsx(WriteInReact, {}), _jsx("br", {}), _jsx(IfYouKnowReact, {}), _jsx(ParameterizeAndEdit, {}), _jsx(RealMP4Videos, {}), _jsx("br", {}), _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(EditorStarterSection, {}), _jsx("br", {}), _jsx("br", {}), _jsx("br", {}), _jsx("br", {}), _jsx(NewsletterButton, {}), _jsx("br", {}), _jsx("br", {}), _jsx("br", {})] })] }) }) }));
20
+ };
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const ManageTeamMembers: React.FC;
@@ -0,0 +1,42 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Button, Input } from '@remotion/design';
3
+ import React, { useCallback, useState } from 'react';
4
+ function generateId() {
5
+ return Math.random().toString(36).substr(2, 9);
6
+ }
7
+ const initialMembers = [
8
+ { id: generateId(), name: 'alice' },
9
+ { id: generateId(), name: 'bob' },
10
+ ];
11
+ const Row = ({ value, onChange, onDelete, disableDelete }) => {
12
+ return (_jsxs("div", { className: "flex flex-row gap-2 items-center", children: [_jsx(Input, { placeholder: "Enter username", className: "w-full block flex-1", value: value, onChange: (e) => onChange(e.target.value) }), _jsx(Button, { className: "hover:text-white hover:bg-warn transition-colors w-10 h-10 p-0 rounded-full", onClick: onDelete, type: "button", disabled: disableDelete, "aria-label": "Delete member", depth: 0.5, children: _jsx("svg", { width: "16", height: "16", viewBox: "0 0 10 10", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { d: "M1 1L9 9M1 9L9 1", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }) }) })] }));
13
+ };
14
+ export const ManageTeamMembers = () => {
15
+ const [members, setMembers] = useState(initialMembers);
16
+ // One extra row for adding new member
17
+ const displayedMembers = [...members, { id: 'NEW', name: '' }];
18
+ const updateMember = useCallback((idx, value) => {
19
+ // If it's last "NEW" row, add as new member if not empty
20
+ if (idx === members.length) {
21
+ if (value.trim() !== '') {
22
+ setMembers((prev) => [...prev, { id: generateId(), name: value }]);
23
+ }
24
+ }
25
+ else {
26
+ setMembers((prev) => prev.map((m, i) => (i === idx ? { ...m, name: value } : m)));
27
+ }
28
+ }, [members.length]);
29
+ const deleteMember = useCallback((idx) => {
30
+ setMembers((prev) => prev.filter((_, i) => i !== idx));
31
+ }, []);
32
+ const [loading, setLoading] = useState(false);
33
+ const save = useCallback(() => {
34
+ setLoading(true);
35
+ setTimeout(() => {
36
+ setLoading(false);
37
+ }, 1000);
38
+ }, []);
39
+ return (_jsxs(_Fragment, { children: [_jsx("h2", { children: "Manage team members" }), _jsx("p", { className: "font-brand", children: "Add a new team member to your team." }), displayedMembers.map((member, idx) => (
40
+ // eslint-disable-next-line react/no-array-index-key
41
+ _jsxs(React.Fragment, { children: [_jsx(Row, { value: member.name, onChange: (val) => updateMember(idx, val), onDelete: idx < members.length ? () => deleteMember(idx) : undefined, disableDelete: idx >= members.length }), _jsx("div", { className: "h-2" })] }, idx))), _jsx("div", { className: "h-4" }), _jsx("div", { className: "flex flex-row justify-end", children: _jsx(Button, { className: "bg-brand text-white", loading: loading, onClick: save, children: "Save" }) })] }));
42
+ };
@@ -0,0 +1,3 @@
1
+ import type { SVGProps } from 'react';
2
+ import React from 'react';
3
+ export declare const Spinner: React.FC<SVGProps<SVGSVGElement>>;
@@ -0,0 +1,4 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export const Spinner = (props) => {
3
+ return (_jsxs("svg", { id: "loading", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 32 32", width: "32", height: "32", fill: "currentColor", ...props, children: [_jsx("path", { opacity: ".1", d: "M14 0 H18 V8 H14 z", transform: "rotate(0 16 16)", children: _jsx("animate", { attributeName: "opacity", from: "1", to: ".1", dur: "1s", repeatCount: "indefinite", begin: "0" }) }), _jsx("path", { opacity: ".1", d: "M14 0 H18 V8 H14 z", transform: "rotate(45 16 16)", children: _jsx("animate", { attributeName: "opacity", from: "1", to: ".1", dur: "1s", repeatCount: "indefinite", begin: "0.125s" }) }), _jsx("path", { opacity: ".1", d: "M14 0 H18 V8 H14 z", transform: "rotate(90 16 16)", children: _jsx("animate", { attributeName: "opacity", from: "1", to: ".1", dur: "1s", repeatCount: "indefinite", begin: "0.25s" }) }), _jsx("path", { opacity: ".1", d: "M14 0 H18 V8 H14 z", transform: "rotate(135 16 16)", children: _jsx("animate", { attributeName: "opacity", from: "1", to: ".1", dur: "1s", repeatCount: "indefinite", begin: "0.375s" }) }), _jsx("path", { opacity: ".1", d: "M14 0 H18 V8 H14 z", transform: "rotate(180 16 16)", children: _jsx("animate", { attributeName: "opacity", from: "1", to: ".1", dur: "1s", repeatCount: "indefinite", begin: "0.5s" }) }), _jsx("path", { opacity: ".1", d: "M14 0 H18 V8 H14 z", transform: "rotate(225 16 16)", children: _jsx("animate", { attributeName: "opacity", from: "1", to: ".1", dur: "1s", repeatCount: "indefinite", begin: "0.675s" }) }), _jsx("path", { opacity: ".1", d: "M14 0 H18 V8 H14 z", transform: "rotate(270 16 16)", children: _jsx("animate", { attributeName: "opacity", from: "1", to: ".1", dur: "1s", repeatCount: "indefinite", begin: "0.75s" }) }), _jsx("path", { opacity: ".1", d: "M14 0 H18 V8 H14 z", transform: "rotate(315 16 16)", children: _jsx("animate", { attributeName: "opacity", from: "1", to: ".1", dur: "1s", repeatCount: "indefinite", begin: "0.875s" }) })] }));
4
+ };
@@ -0,0 +1 @@
1
+ export declare const TeamPicture: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export const TeamPicture = () => {
3
+ return (_jsx("div", { className: "border-effect overflow-hidden mb-10 lg:mb-4", children: _jsx("img", { src: "/img/team/team.jpeg", style: { aspectRatio: '1500 / 1038' }, className: "w-full mb-0 float-left " }) }));
4
+ };
@@ -0,0 +1 @@
1
+ export declare const DesignPage: React.FC;
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button, Card, Counter, InlineCode, Input, Link, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, } from '@remotion/design';
3
+ import { useCallback, useState } from 'react';
4
+ import { ManageTeamMembers } from './ManageTeamMembers';
5
+ const Explainer = ({ children }) => {
6
+ return (_jsx("div", { children: _jsx("div", { className: "text-gray-500 font-brand text-sm mb-2", children: children }) }));
7
+ };
8
+ export const DesignPage = () => {
9
+ const [count, setCount] = useState(10);
10
+ const [active, setActive] = useState(false);
11
+ const [submitButtonActive, setSubmitButtonActive] = useState(true);
12
+ const [submitButtonPrimaryActive, setSubmitButtonPrimaryActive] = useState(true);
13
+ const onClick = useCallback(() => {
14
+ setSubmitButtonActive(false);
15
+ setTimeout(() => {
16
+ setSubmitButtonActive(true);
17
+ }, 1000);
18
+ }, []);
19
+ const onClickPrimary = useCallback(() => {
20
+ setSubmitButtonPrimaryActive(false);
21
+ setTimeout(() => {
22
+ setSubmitButtonPrimaryActive(true);
23
+ }, 1000);
24
+ }, []);
25
+ const [saving, setSaving] = useState(false);
26
+ const save = useCallback(() => {
27
+ setSaving(true);
28
+ setTimeout(() => {
29
+ setSaving(false);
30
+ }, 1000);
31
+ }, []);
32
+ return (_jsx("div", { className: "bg-[var(--background)] relative", children: _jsxs("div", { className: "max-w-[800px] mx-auto pt-10 pb-10 px-4", children: [_jsx("h1", { children: "@remotion/design" }), _jsx("a", { href: "https://github.com/remotion-dev/remotion/blob/main/packages/promo-pages/src/components/design.tsx", className: "font-brand text-brand", target: "_blank", children: "View source" }), _jsx("br", {}), _jsx("br", {}), _jsx("h2", { className: "text-brand", children: "<Button />" }), _jsx(Explainer, { children: "Button with label" }), _jsx(Button, { children: "Click me" }), _jsx("br", {}), _jsx(Explainer, { children: "Disabled" }), _jsxs(Button, { disabled: true, children: ["Don't", " click me"] }), _jsx("br", {}), _jsx(Explainer, { children: "Primary" }), _jsx(Button, { className: "bg-brand text-white", children: "Primary" }), _jsx("br", {}), _jsx(Explainer, { children: "Click to disable" }), _jsx(Button, { onClick: onClick, loading: !submitButtonActive, children: "Submit" }), _jsx("br", {}), _jsx(Explainer, { children: "Click to disable (primary)" }), _jsx(Button, { onClick: onClickPrimary, className: "bg-brand text-white", loading: !submitButtonPrimaryActive, children: "Submit" }), _jsx("br", {}), _jsx(Explainer, { children: "Loading state" }), _jsx(Button, { onClick: onClick, loading: true, children: "Loading" }), _jsx("br", {}), _jsx(Explainer, { children: "Loading state (primary)" }), _jsx(Button, { onClick: onClick, className: "bg-brand text-white", loading: true, children: "Loading" }), _jsx("br", {}), _jsx(Explainer, { children: "Rounded" }), _jsx(Button, { className: "rounded-full", children: "Rounded" }), _jsx("br", {}), _jsx(Explainer, { children: "Full width" }), _jsx(Button, { className: "w-full", children: "Choose a template" }), _jsx("br", {}), _jsx(Explainer, { children: "Full width rounded" }), _jsx(Button, { className: "w-full rounded-full", children: "Fully rounded" }), _jsx("div", { className: "h-8" }), _jsx(Explainer, { children: "Circular" }), _jsx(Button, { className: "rounded-full bg-brand w-12 h-12" }), _jsx("div", { className: "h-8" }), _jsx(Explainer, { children: "Remove" }), _jsx(Button, { className: "hover:text-white hover:bg-warn transition-colors w-10 h-10 p-0 rounded-full", depth: 0.5, children: _jsx("svg", { width: "16", height: "16", viewBox: "0 0 10 10", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { d: "M1 1L9 9M1 9L9 1", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }) }) }), _jsx("div", { className: "h-8" }), _jsx(Explainer, { children: "Link button" }), _jsx(Button, { href: "/design", children: "Link button" }), _jsx("br", {}), _jsxs(Explainer, { children: ["Link button with ", _jsx("code", { children: "<span>" })] }), _jsx(Button, { href: "/design", children: _jsx("span", { children: "Link button with span child" }) }), _jsx("br", {}), _jsx(Explainer, { children: "External link button" }), _jsx(Button, { href: "https://github.com/remotion-dev/remotion", target: "_blank", children: "GitHub" }), _jsx("div", { className: "h-8" }), _jsx(Explainer, { children: "Remove (small)" }), _jsx(Button, { className: "hover:text-white hover:bg-warn transition-colors w-6 h-6 p-0 rounded-full", depth: 0.5, children: _jsx("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { d: "M1 1L9 9M1 9L9 1", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }) }) }), _jsx("div", { className: "h-8" }), _jsx("h2", { className: "text-brand", children: "<Counter />" }), _jsx(Counter, { count: count, setCount: setCount, minCount: 1, step: 1, incrementStep: 1 }), _jsx("br", {}), " ", _jsx("h2", { className: "text-brand", children: "<Switch />" }), _jsx(Switch, { active: active, onToggle: () => setActive((e) => !e) }), _jsx("br", {}), " ", _jsx("h2", { className: "text-brand", children: "<Card />" }), _jsxs(Card, { className: "px-4 py-4", children: [_jsx("h3", { className: "text-text", children: "Card" }), _jsx("div", { className: "text-gray-500", children: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua." })] }), _jsx("br", {}), _jsx("h2", { className: "text-brand", children: "<Select />" }), _jsxs(Select, { defaultValue: "option1", children: [_jsx(SelectTrigger, { style: { width: '200px' }, children: _jsx(SelectValue, { placeholder: "Select an option" }) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "option1", children: "Option 1" }), _jsx(SelectItem, { value: "option2", children: "Option 2" }), _jsx(SelectItem, { value: "option3", children: "Option 3" })] })] }), _jsx("br", {}), _jsx("h2", { className: "text-brand", children: "<Tabs />" }), _jsxs(Tabs, { defaultValue: "tab1", children: [_jsxs(TabsList, { children: [_jsx(TabsTrigger, { value: "tab1", children: "Tab 1" }), _jsx(TabsTrigger, { value: "tab2", children: "Tab 2" }), _jsx(TabsTrigger, { value: "tab3", children: "Tab 3" })] }), _jsx(TabsContent, { value: "tab1", children: _jsx("div", { className: "font-brand", children: "Content for Tab 1" }) }), _jsx(TabsContent, { value: "tab2", children: _jsx("div", { className: "font-brand", children: "Content for Tab 2" }) }), _jsx(TabsContent, { value: "tab3", children: _jsx("div", { className: "font-brand", children: "Content for Tab 3" }) })] }), _jsx("br", {}), _jsx("h2", { className: "text-brand", children: "<Input />" }), _jsx(Input, { placeholder: "Enter your email" }), _jsx("br", {}), _jsx("br", {}), _jsx("h2", { className: "text-brand", children: "<Textarea />" }), _jsx(Textarea, { placeholder: "Enter your message" }), _jsx("br", {}), _jsx("br", {}), _jsx("h2", { className: "text-brand", children: "<InlineCode />" }), _jsxs("p", { className: "font-brand", children: ["Use ", _jsx(InlineCode, { children: "useCurrentFrame()" }), " to get the current frame and ", _jsx(InlineCode, { children: "useVideoConfig()" }), " to get the video configuration."] }), _jsx("br", {}), _jsx("h2", { className: "text-brand", children: "<Link />" }), _jsxs("p", { className: "font-brand", children: ["See the", ' ', _jsx(Link, { href: "https://www.remotion.dev/docs", target: "_blank", rel: "noopener noreferrer", children: "Remotion documentation" }), ' ', "for more information."] }), _jsx("br", {}), _jsx("br", {}), _jsx("h1", { children: "Example form set" }), _jsx("br", {}), _jsx("h2", { children: "Change email" }), _jsx("p", { className: "font-brand", children: "A email will be sent to the new email address. You will need to click on the link in the email to confirm the change." }), _jsx(Input, { placeholder: "Enter your email", className: "w-full block" }), _jsx("div", { className: "h-2" }), _jsx("div", { className: "flex flex-row justify-end", children: _jsx(Button, { className: "bg-brand text-white", loading: saving, onClick: save, children: "Change" }) }), _jsx("br", {}), _jsx("br", {}), _jsx(ManageTeamMembers, {})] }) }));
33
+ };
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ type ExpertsPageProps = {
3
+ readonly Link: React.ComponentType<{
4
+ style?: React.CSSProperties;
5
+ className?: string;
6
+ href: string;
7
+ children: React.ReactNode;
8
+ }>;
9
+ };
10
+ export declare const ExpertsPageContent: React.FC<ExpertsPageProps>;
11
+ export {};
@@ -0,0 +1,50 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useMemo } from 'react';
3
+ import { random } from 'remotion';
4
+ import { EmailLogo, GitHubLogo, LinkedInLogo, TwitterLogo, } from '../team/TeamCards';
5
+ import { experts } from './experts-data';
6
+ import { PersonalWebsite } from './experts-icons';
7
+ const arrowIcon = {
8
+ height: 16,
9
+ marginLeft: 10,
10
+ };
11
+ const dateString = (date) => date.getDate() + '-' + date.getMonth() + '-' + date.getFullYear();
12
+ const todayHash = dateString(new Date());
13
+ const infoCard = {
14
+ backgroundColor: 'var(--footer-background)',
15
+ padding: 20,
16
+ flex: 1,
17
+ flexDirection: 'row',
18
+ display: 'flex',
19
+ fontSize: 13,
20
+ border: '1px solid var(--ifm-color-emphasis-300)',
21
+ borderRadius: 8,
22
+ };
23
+ const cardIcon = {
24
+ width: 30,
25
+ marginRight: 20,
26
+ color: 'var(--text-color)',
27
+ };
28
+ const wrapperStyle = {
29
+ maxWidth: 1000,
30
+ margin: 'auto',
31
+ paddingTop: 60,
32
+ paddingLeft: 20,
33
+ paddingRight: 20,
34
+ paddingBottom: 100,
35
+ };
36
+ const ExpertCard = ({ expert, Link }) => {
37
+ return (_jsxs("div", { className: "flex-1 rounded-[15px] flex flex-col md:flex-row gap-2 md:gap-4", children: [_jsx(Link, { href: `/experts/${expert.slug}`, className: "no-underline text-inherit", children: _jsx("img", { src: expert.image, alt: `Profile picture of ${expert.name}`, className: "w-[250px] h-[250px] rounded-xl border-effect object-cover" }) }), _jsxs("div", { className: "flex flex-col border-effect px-4 py-3 bg-pane flex-1", children: [_jsx(Link, { href: `/experts/${expert.slug}`, className: "no-underline text-inherit", children: _jsx("h2", { className: "text-[1.6em] mb-1 mt-3 text-[var(--ifm-color-primary)] font-brand", children: expert.name }) }), _jsx("div", { className: "mt-2 mb-3 leading-normal font-brand", children: expert.description }), _jsxs("div", { className: "leading-6 mb-4", children: [_jsxs(Link, { className: "no-underline text-brand font-brand font-bold inline-flex flex-row items-center", href: `/experts/${expert.slug}`, children: ["View profile", ' ', _jsx("svg", { style: arrowIcon, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 448 512", children: _jsx("path", { fill: "currentColor", d: "M438.6 278.6l-160 160C272.4 444.9 264.2 448 256 448s-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L338.8 288H32C14.33 288 .0016 273.7 .0016 256S14.33 224 32 224h306.8l-105.4-105.4c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l160 160C451.1 245.9 451.1 266.1 438.6 278.6z" }) })] }), expert.videocall ? (_jsxs(_Fragment, { children: [_jsx("br", {}), _jsxs("a", { className: "no-underline text-brand font-brand font-bold inline-flex flex-row items-center", target: "_blank", href: expert.videocall, children: ["Book a call", ' ', _jsx("svg", { style: arrowIcon, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 448 512", children: _jsx("path", { fill: "currentColor", d: "M438.6 278.6l-160 160C272.4 444.9 264.2 448 256 448s-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L338.8 288H32C14.33 288 .0016 273.7 .0016 256S14.33 224 32 224h306.8l-105.4-105.4c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l160 160C451.1 245.9 451.1 266.1 438.6 278.6z" }) })] })] })) : null] }), _jsx("div", { className: "flex-1" }), _jsxs("div", { className: "gap-3 flex flex-row flex-wrap", children: [expert.website ? (_jsx("a", { className: "no-underline text-inherit", target: "_blank", href: expert.website, children: _jsx(PersonalWebsite, {}) })) : null, expert.x ? (_jsx("a", { className: "no-underline text-inherit", target: "_blank", href: `https://x.com/${expert.x}`, children: _jsx(TwitterLogo, {}) })) : null, expert.github ? (_jsx("a", { className: "no-underline text-inherit", target: "_blank", href: `https://github.com/${expert.github}`, children: _jsx(GitHubLogo, {}) })) : null, expert.linkedin ? (_jsx("a", { className: "no-underline text-inherit", target: "_blank", href: `https://www.linkedin.com/${expert.linkedin}`, children: _jsx(LinkedInLogo, {}) })) : null, expert.email ? (_jsx("a", { className: "no-underline text-inherit", target: "_blank", href: `mailto:${expert.email}`, children: _jsx(EmailLogo, {}) })) : null] })] })] }));
38
+ };
39
+ export const ExpertsPageContent = ({ Link }) => {
40
+ const expertsInRandomOrder = useMemo(() => {
41
+ if (typeof window === 'undefined') {
42
+ return [];
43
+ }
44
+ // Have a different order every day.
45
+ return experts.sort((a, b) => random(a.name + todayHash) - random(b.name + todayHash));
46
+ }, []);
47
+ return (_jsx("div", { className: "relative bg-[var(--background)]", children: _jsxs("div", { style: wrapperStyle, children: [_jsx("h1", { className: "experts-pagetitle", children: "Find a Remotion Expert" }), _jsxs("p", { className: "experts-tagline", children: ["Get help by booking a call or hiring these freelancers to work on your Remotion project.", _jsx("br", {}), "They appear in random order.", ' '] }), _jsx("p", { className: "experts-tagline", children: _jsx("a", { href: "mailto:hi@remotion.dev?subject=Remotion+Experts+directory", children: _jsx("strong", { children: "Are you available for hire? Let us know!" }) }) }), _jsxs("div", { style: infoCard, children: [_jsxs("svg", { viewBox: "0 0 661 512", fill: "none", xmlns: "http://www.w3.org/2000/svg", style: cardIcon, children: [_jsxs("g", { clipPath: "url(#clip0_1_2)", children: [_jsx("path", { d: "M511.5 213C532.991 213 551.678 225.088 561.08 242.842C580.293 236.943 602.018 241.615 617.201 256.799C632.385 271.982 637.057 293.765 631.158 312.92C648.912 322.322 661 341.009 661 362.5C661 383.991 648.912 402.678 631.158 412.08C637.057 431.293 632.385 453.018 617.201 468.201C602.018 483.385 580.235 488.057 561.08 482.158C551.678 499.912 532.991 512 511.5 512C490.009 512 471.322 499.912 461.92 482.158C442.707 488.057 420.982 483.385 405.799 468.201C390.615 453.018 385.943 431.235 391.842 412.08C374.088 402.678 362 383.991 362 362.5C362 341.009 374.088 322.322 391.842 312.92C385.943 293.707 390.615 271.982 405.799 256.799C420.982 241.615 442.765 236.943 461.92 242.842C471.322 225.088 490.009 213 511.5 213ZM568.146 344.396L578.074 334.469L558.219 314.672L548.291 324.599L492.812 380.078L470.037 357.303L460.109 347.375L440.312 367.172L450.24 377.1L482.943 409.803L492.871 419.73L502.799 409.803L568.146 344.396Z", fill: "currentcolor" }), _jsx("path", { d: "M184 48H328C332.4 48 336 51.6 336 56V96H176V56C176 51.6 179.6 48 184 48ZM128 56V96H64C28.7 96 0 124.7 0 160V256H192H352H360.2C392.5 216.9 441.3 192 496 192C501.4 192 506.7 192.2 512 192.7V160C512 124.7 483.3 96 448 96H384V56C384 25.1 358.9 0 328 0H184C153.1 0 128 25.1 128 56ZM320 352H224C206.3 352 192 337.7 192 320V288H0V416C0 451.3 28.7 480 64 480H360.2C335.1 449.6 320 410.5 320 368C320 362.6 320.2 357.3 320.7 352H320Z", fill: "currentcolor" })] }), _jsx("defs", { children: _jsx("clipPath", { id: "clip0_1_2", children: _jsx("rect", { width: "661", height: "512", fill: "white" }) }) })] }), _jsxs("div", { style: { flex: 1 }, children: ["Remotion Experts are independent freelancers with proven Remotion expertise and portfolios. However,", ' ', _jsx("strong", { children: " perform due diligence " }), " before hiring. ", _jsx("br", {}), ' ', "Remotion does not arbitrate disputes between experts and clients."] })] }), _jsx("br", {}), _jsx("div", { className: "flex flex-col gap-12 md:gap-4", children: expertsInRandomOrder.map((e) => {
48
+ return _jsx(ExpertCard, { expert: e, Link: Link }, e.name);
49
+ }) })] }) }));
50
+ };
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ export type Expert = {
3
+ name: string;
4
+ image: string;
5
+ website: string | null;
6
+ description: React.ReactNode;
7
+ x: string | null;
8
+ github: string | null;
9
+ linkedin: string | null;
10
+ email: string | null;
11
+ videocall: string | null;
12
+ slug: string;
13
+ since: number;
14
+ };
15
+ export declare const experts: Expert[];
@@ -0,0 +1,263 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export const experts = [
3
+ {
4
+ slug: 'stephen-sullivan',
5
+ name: 'Stephen Sullivan',
6
+ image: '/img/freelancers/stephen.png',
7
+ website: null,
8
+ x: null,
9
+ github: null,
10
+ linkedin: 'in/sterv/',
11
+ email: 'stephen@middy.com',
12
+ videocall: null,
13
+ since: new Date('2022-08-15').getTime(),
14
+ description: (_jsxs("div", { children: ["I made:", ' ', _jsx("a", { target: '_blank', href: "https://middy.com", children: "middy.com" }), "!"] })),
15
+ },
16
+ {
17
+ slug: 'mohit-yadav',
18
+ name: 'Mohit Yadav',
19
+ image: '/img/freelancers/mohit.jpeg',
20
+ website: null,
21
+ x: 'Just_Moh_it',
22
+ github: 'Just-Moh-it',
23
+ linkedin: 'in/just-moh-it/',
24
+ email: 'yo@mohitya.dev',
25
+ videocall: null,
26
+ since: new Date('2022-08-15').getTime(),
27
+ description: (_jsxs("div", { children: ["I made:", ' ', _jsx("a", { target: '_blank', href: "https://mockoops.mohitya.dev", children: "Mockoops" }), "! ", _jsx("br", {}), "My services: SaaS platform from scratch including SSR, creating individual videos and templates, and creating integrations for Remotion with existing infrastructure."] })),
28
+ },
29
+ {
30
+ slug: 'yehor-misiats',
31
+ name: 'Yehor Misiats',
32
+ image: '/img/freelancers/yehor.jpeg',
33
+ website: null,
34
+ x: 'isatelllte',
35
+ github: 'satelllte',
36
+ linkedin: 'in/satelllte/',
37
+ email: 'lunaerxs@gmail.com',
38
+ videocall: null,
39
+ since: new Date('2022-09-16').getTime(),
40
+ description: (_jsxs("div", { children: ["I made:", ' ', _jsx("a", { target: '_blank', href: "https://github.com/satelllte/remotion-audio-visualizer", children: "Minimalistic audio visualizations" }), ' and ', _jsx("a", { target: '_blank', href: "https://github.com/satelllte/remotion-template", children: "Template for crafting programmatic videos" }), "."] })),
41
+ },
42
+ {
43
+ slug: 'benjamin-jameson',
44
+ name: 'Benjamin Jameson',
45
+ image: '/img/freelancers/benjamin.jpeg',
46
+ x: null,
47
+ github: 'BenjaminJameson',
48
+ linkedin: null,
49
+ email: 'ben@captok.ai',
50
+ videocall: null,
51
+ since: new Date('2022-11-03').getTime(),
52
+ description: (_jsxs("div", { children: ["Creator of", ' ', _jsx("a", { target: '_blank', href: "https://www.captok.ai", children: "CapTok" }), _jsx("br", {}), "I specialize in creating serverless AI web applications using AWS, Javascript and Python."] })),
53
+ website: null,
54
+ },
55
+ {
56
+ slug: 'karel-nagel',
57
+ name: 'Karel Nagel',
58
+ image: '/img/freelancers/karel.jpeg',
59
+ website: 'https://asius.ai/',
60
+ x: 'AsiusAI',
61
+ github: 'karelnagel',
62
+ linkedin: 'in/karelnagel/',
63
+ since: new Date('2022-08-22').getTime(),
64
+ email: 'karel@asius.ai',
65
+ videocall: null,
66
+ description: (_jsxs("div", { children: ["I have created Remotion videos for many companies and helped them with deployment, some examples are visible", ' ', _jsx("a", { target: '_blank', href: "https://asius.ai/#portfolio", children: "here" }), ". Additionally, I am the creator of the", ' ', _jsx("a", { target: '_blank', href: "https://github.com/karelnagel/remotion-sst", children: "remotion-sst" }), ' ', "package, which simplifies the deployment of Remotion Lambda to AWS using SST.", _jsx("br", {}), "I am available for contract opportunities in Remotion projects and web development."] })),
67
+ },
68
+ {
69
+ slug: 'alex-fernandez',
70
+ name: 'Alex Fernandez',
71
+ image: '/img/freelancers/alex.jpeg',
72
+ website: null,
73
+ x: null,
74
+ github: 'alexfernandez803',
75
+ linkedin: 'in/alex-f-17a5bb56/',
76
+ email: 'alex.frndz@gmail.com',
77
+ videocall: 'https://cal.com/remotion-expert-alex-fernandez',
78
+ since: new Date('2022-12-02').getTime(),
79
+ description: (_jsx("div", { children: "I am an experienced integration developer using Mulesoft, a backend developer and on the side frontend and animation enthusiast." })),
80
+ },
81
+ {
82
+ slug: 'matthew-mcgillivray',
83
+ name: 'Matt McGillivray',
84
+ image: '/img/freelancers/umungo.png',
85
+ website: 'https://mattm9y.com',
86
+ x: null,
87
+ github: 'UmungoBungo',
88
+ linkedin: 'in/matthew-mcgillivray-68295a55',
89
+ email: 'mm@mattm9y.com',
90
+ videocall: 'https://cal.com/remotion-expert-matt-mcgillivray',
91
+ since: new Date('2023-01-30').getTime(),
92
+ description: (_jsx("div", { children: _jsxs("p", { children: ["Are you kicking off a project or feature that will have Remotion at the core, and you want to get it right from the start? Or perhaps you want to migrate from an expensive After Effects or MoviePy solution, to offer your users a free live preview, with cheap rendering costs while also keeping animation quality high.", _jsx("br", {}), _jsx("br", {}), "I've worked extensively on the Remotion core repository itself, helping Jonny and the team by building the", ' ', _jsx("a", { target: '_blank', href: "https://www.npmjs.com/package/@remotion/cloudrun", children: "@remotion/cloudrun package" }), ' ', "and making many many tiny improvements to the documentation to help other developers move as fast as possible. I've helped many companies ensure they get started with a strong foundation, as well as launch with a buttoned-up solution that can be depended upon;", _jsxs("ul", { children: [_jsx("li", { children: _jsx("a", { target: '_blank', href: "https://www.memento.com/", children: "Memento" }) }), _jsx("li", { children: _jsx("a", { target: '_blank', href: "https://beaconstreetstudios.com/", children: "Beacon Street Studios" }) }), _jsx("li", { children: _jsx("a", { target: '_blank', href: "https://minvo.pro/", children: "Minvo" }) }), _jsx("li", { children: "+ many more." })] }), "95% of my time is spent in the Remotion ecosystem, and I am able to work independently or integrate into existing teams across your full stack. On the front-end, I craft thoughtful, responsive UIs tailored to user goals. For back-end work, I deploy cloud resources in repeatable patterns and shape easy-to-use, transparent APIs.", _jsx("br", {}), _jsx("br", {}), "I", "'", "m available for one-off consulting sessions with your whole team, or for longer engagements working inside your codebase."] }) })),
93
+ },
94
+ {
95
+ slug: 'ray-lotmar',
96
+ name: 'Ray Lotmar',
97
+ image: '/img/freelancers/ray.jpeg',
98
+ website: null,
99
+ x: 'romrif',
100
+ github: 'rayBlock',
101
+ linkedin: 'in/raymond-lotmar/',
102
+ email: 'ray@blocklab.ch',
103
+ videocall: 'https://cal.com/remotion-expert-ray-lotmar',
104
+ since: new Date('2023-01-30').getTime(),
105
+ description: (_jsxs("div", { children: ["I made", ' ', _jsx("a", { target: '_blank', href: "https://www.romrif.com/", children: "Romrif" }), "!", _jsx("br", {}), "I build Websites & Videos with Remotion. I", "'", "m alway interested in the latest Tech and love building stuff. Feel free to contact me - I", "'", "m available for hire."] })),
106
+ },
107
+ {
108
+ slug: 'lorenzo-bertolini',
109
+ name: 'Lorenzo Bertolini',
110
+ image: '/img/freelancers/lorenzo.jpeg',
111
+ website: 'https://www.lorenzobertolini.com/',
112
+ x: 'MagoDiSegrate',
113
+ github: 'encho',
114
+ linkedin: 'in/lorenzobertolini/',
115
+ email: 'ciao@lorenzobertolini.com',
116
+ videocall: null,
117
+ since: new Date('2023-03-14').getTime(),
118
+ description: (_jsxs("div", { children: ["I made:", ' ', _jsx("a", { target: '_blank', href: "https://www.dataflics.com/", children: "DataFlics" }), ' ', "and", ' ', _jsx("a", { target: '_blank', href: "https://nerdy.finance/", children: "Nerdy Finance" }), "! This is my personal website:", ' ', _jsx("a", { target: '_blank', href: "https://www.lorenzobertolini.com/", children: "Lorenzo Bertolini" }), _jsx("br", {}), "Reach out to me for data-driven video generation, data visualization, and web app prototyping with React.js and d3.js."] })),
119
+ },
120
+ {
121
+ slug: 'antoine-caron',
122
+ name: 'Antoine Caron',
123
+ image: '/img/freelancers/antoine.jpeg',
124
+ website: 'https://blog.slashgear.dev/',
125
+ x: 'Slashgear_',
126
+ github: 'Slashgear',
127
+ linkedin: 'in/antoine-caron-slash/',
128
+ email: 'antoine395.caron+remotion@gmail.com',
129
+ videocall: null,
130
+ since: new Date('2023-03-17').getTime(),
131
+ description: (_jsx("div", { children: _jsxs("p", { children: ["I made:", ' ', _jsx("a", { target: '_blank', href: "https://social-video-generator.vercel.app/", children: "Social Video Generator" }), ", with Micka\u00EBl Alves"] }) })),
132
+ },
133
+ {
134
+ slug: 'mickael-alves',
135
+ name: 'Mickaël Alves',
136
+ image: '/img/freelancers/mickael.jpeg',
137
+ website: 'https://mickaelalvs.dev/',
138
+ x: 'mickaelalvs',
139
+ github: 'mickaelalvs',
140
+ linkedin: 'in/mickaelalves/',
141
+ email: 'alves.mckl@gmail.com',
142
+ videocall: null,
143
+ since: new Date('2023-03-17').getTime(),
144
+ description: (_jsx("div", { children: _jsxs("p", { children: ["I made:", ' ', _jsx("a", { target: '_blank', href: "https://social-video-generator.vercel.app/", children: "Social Video Generator" }), ", with Antoine Caron"] }) })),
145
+ },
146
+ {
147
+ slug: 'pranav-kulkarni',
148
+ name: 'Pranav Kulkarni',
149
+ image: '/img/freelancers/pranav.jpg',
150
+ website: 'https://pranava.dev/',
151
+ x: 'thecmdrunner',
152
+ github: 'thecmdrunner',
153
+ linkedin: 'in/pranavk7/',
154
+ email: 'hey@pranava.dev',
155
+ videocall: null,
156
+ since: new Date('2023-07-03').getTime(),
157
+ description: (_jsxs("div", { children: ["Launched apps that combine Remotion & AI for generative video -", ' ', _jsx("a", { target: '_blank', href: "https://maxroom.co/", children: "MaxRoom" }), ' ', "and", ' ', _jsx("a", { target: '_blank', href: "https://swiftube.vercel.app/", children: "Swiftube" }), ".", _jsx("br", {}), "Looking at leveraging the power of Remotion for your projects? Let's join forces!"] })),
158
+ },
159
+ {
160
+ slug: 'rahul-bansal',
161
+ name: 'Rahul Bansal',
162
+ image: '/img/freelancers/rahul.png',
163
+ website: 'https://bansalrahul.com/',
164
+ x: 'BansalRahul14',
165
+ github: 'rahulbansal16',
166
+ linkedin: 'in/rahulbansalrb/',
167
+ email: 'bansalrahul14@gmail.com',
168
+ videocall: 'https://cal.com/remotion-expert-rahul-bansal',
169
+ since: new Date('2023-08-04').getTime(),
170
+ description: (_jsxs("div", { children: ["I can help you with building products using Remotion, Firebase, Antd, and Typescripts. I have made", ' ', _jsx("a", { target: '_blank', href: "https://app.blinkcuts.com/", children: "Blinkcuts" }), ' ', "an AI video editor for short talking head videos. I have worked in companies like Microsoft and early-stage startups like Directi. I can build products super fast from scratch. Looking forward to helping you."] })),
171
+ },
172
+ {
173
+ slug: 'pramod-kumar',
174
+ name: 'Pramod Kumar',
175
+ image: '/img/freelancers/pramod.jpg',
176
+ website: 'https://www.pramod73.in/',
177
+ x: 'pramodk73',
178
+ github: 'pskd73',
179
+ linkedin: 'in/pramod-kumar-1a135b74/',
180
+ email: 'pramodkumar.damam73@gmail.com',
181
+ videocall: 'https://cal.com/remotion-expert-pramod-kumar',
182
+ since: new Date('2024-03-10').getTime(),
183
+ description: (_jsxs("div", { children: ["I have been building software for the last 10 years across multiple technologies with strong software architecture skills. I have built two products that are based on Remotion.", ' ', _jsx("a", { target: '_blank', href: "https://slickwid.com", children: "SlickWid" }), ' ', "a quick way to make videos for your social media, and", ' ', _jsx("a", { target: '_blank', href: "https://motionshot.app", children: "MotionShot" }), ' ', "through which you can make informative walkthrough guides for your products, tutorials, and how-tos. ", _jsx("br", {}), "I made", ' ', _jsx("a", { target: '_blank', href: "https://github.com/pskd73/remotion-animate-text", children: "remotion-animate-text" }), ' ', "for Remotion to animate text. I build products in public on X. I love helping the community. Feel free to reach out. Looking forward!"] })),
184
+ },
185
+ {
186
+ slug: 'ayush-soni',
187
+ name: 'Ayush Soni',
188
+ image: '/img/freelancers/ayush.png',
189
+ website: 'https://ayushsoni.com/',
190
+ x: 'ayysoni',
191
+ github: null,
192
+ linkedin: 'in/ayushsoni1001/',
193
+ email: 'hi@ayushsoni.com',
194
+ videocall: 'https://cal.com/remotion-expert-ayush-soni',
195
+ since: new Date('2024-03-17').getTime(),
196
+ description: (_jsxs("div", { children: ["I", "'", "ve been coding and building cool projects since 5th grade (software and hardware both) across multiple technologies. Currently I", "'", "m building", ' ', _jsx("a", { target: '_blank', href: "https://www.typeframes.com/", children: "Typeframes" }), ' ', "using Remotion, it is a tool to create videos. I build products in public on X. I", "'", "d love to hear your story."] })),
197
+ },
198
+ {
199
+ slug: 'andrei-terteci',
200
+ name: 'Andrei Terteci',
201
+ image: '/img/freelancers/andrei.png',
202
+ website: null,
203
+ x: 'andrei_terteci',
204
+ github: null,
205
+ linkedin: 'in/andrei-terteci-935331151/',
206
+ email: 'hello@andreiterteci.com',
207
+ videocall: 'https://cal.com/remotion-expert-andrei-terteci',
208
+ since: new Date('2024-03-17').getTime(),
209
+ description: (_jsxs("div", { children: ["I made", ' ', _jsx("a", { target: '_blank', href: "https://www.krumzi.com/", children: "Krumzi" }), ' ', "- using Remotion. ", _jsx("br", {}), "I", "'", "m a full-stack developer with 5+ years of experience, specializing in building SaaS products. I mostly work with React and Next.js, and for the past 2 years, I", "'", "ve been using Remotion to build video-based products. I focus on shipping fast, delivering value, and creating things people actually enjoy using."] })),
210
+ },
211
+ {
212
+ slug: 'sam-bowen-hughes',
213
+ name: 'Sam Bowen Hughes',
214
+ image: '/img/freelancers/sam-bowen-hughes.jpeg',
215
+ website: null,
216
+ x: null,
217
+ github: 'sambowenhughes',
218
+ linkedin: 'in/sambowenhughes/',
219
+ email: 'sambowenhughes@icloud.com',
220
+ videocall: 'https://calendly.com/hello-reactvideoeditor/30min',
221
+ since: new Date('2025-06-03').getTime(),
222
+ description: (_jsxs("div", { children: ["Full-stack engineer with 10+ years experience. I built", ' ', _jsx("a", { target: '_blank', href: "https://reactvideoeditor.com?utm_source=remotion", children: "React Video Editor" }), ' ', "and", ' ', _jsx("a", { target: '_blank', href: "https://clippkit.com?utm_source=remotion", children: "Clippkit" }), ".", _jsx("br", {}), "I can help with anything Remotion-related, or just be a reliable engineering partner if you need someone who moves fast and builds things right \u2013 SaaS, design, backend, whatever's needed."] })),
223
+ },
224
+ {
225
+ name: 'Shankhadeep Dey',
226
+ image: '/img/freelancers/shankhadeep.png',
227
+ website: 'https://shankhadeep.dev',
228
+ x: 'iamshankhadeep',
229
+ github: 'iamshankhadeep',
230
+ linkedin: 'in/iamshankhadeep/',
231
+ email: 'shankhadeepdey99@gmail.com',
232
+ slug: 'iamshankhadeep',
233
+ videocall: 'https://cal.com/iamshankhadeep',
234
+ since: new Date('2021-02-13').getTime(),
235
+ description: (_jsx("div", { children: "I created @remotion/player and @remotion/lambda with Jonny. I have 5+ years of experience in building products using Remotion, React, Next.js, and Typescript. I have worked in companies like Camcorder and early-stage startups like a funnel builder marketplace. I can build products super fast from scratch. Looking forward to helping you." })),
236
+ },
237
+ {
238
+ slug: 'amir-tadrisi',
239
+ name: 'Amir Tadrisi',
240
+ image: '/img/freelancers/amir.jpeg',
241
+ website: 'https://vidbuilder.ai',
242
+ x: 'amirtds',
243
+ github: 'amirtds',
244
+ linkedin: 'in/amirtadrisi/',
245
+ email: 'amir@cubite.io',
246
+ videocall: null,
247
+ since: new Date('2025-01-01').getTime(),
248
+ description: (_jsxs("div", { children: [_jsxs("p", { children: ["Founder of", ' ', _jsx("a", { target: '_blank', href: "https://vidbuilder.ai", children: "VidBuilder.ai" }), ' ', "and hands-on Remotion expert for companies that need premium, custom-built ", _jsx("strong", { children: "explainer" }), " and", ' ', _jsx("strong", { children: "educational" }), " videos. When a team needs the best partner to own their video pipeline end-to-end, I'm the person they call."] }), _jsxs("ul", { children: [_jsxs("li", { children: [_jsx("strong", { children: "Discovery:" }), " I interview stakeholders, study brand guidelines, and map each storyboard beat to measurable product or education goals."] }), _jsxs("li", { children: [_jsx("strong", { children: "Custom engineering:" }), " I build a dedicated Remotion codebase with component systems tailored to your content, allowing rapid iteration on visuals, motion, and data integrations."] }), _jsxs("li", { children: [_jsx("strong", { children: "Collaborative delivery:" }), " Every client receives a private VidBuilder.ai workspace so their team can tweak scripts, colors, and clips without incurring new engineering costs."] })] }), _jsx("p", { children: "Whether you're launching a new onboarding journey, explainer or demo videos for your SaaS product, or an internal academy, I'm here to help." })] })),
249
+ },
250
+ {
251
+ slug: 'pablito-silva',
252
+ name: 'Pablito Silva',
253
+ image: '/img/freelancers/pablito.png',
254
+ website: 'https://pablituuu.space/',
255
+ x: null,
256
+ github: 'pablituuu',
257
+ linkedin: 'in/pablito-jean-pool-silva-inca-735a03192/',
258
+ email: 'pablito.silvainca@gmail.com',
259
+ videocall: null,
260
+ since: new Date('2026-02-13').getTime(),
261
+ description: (_jsxs("div", { children: ["Creator of", ' ', _jsx("a", { target: '_blank', href: "https://react-video-editor-mu.vercel.app/", children: "Pablituuu Studio" }), ", a premium AI-powered video editor.", _jsx("br", {}), "I specialize in building complex Remotion applications integrated with AI services like Gemini (for video analysis and highlights) and Deepgram (for automated captions). I also focus on high-performance canvas interactions using Fabric.js and cost-effective AI workflows."] })),
262
+ },
263
+ ];
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ export declare const TwitterLogo: React.FC;
3
+ export declare const LinkedInLogo: React.FC;
4
+ export declare const GitHubLogo: React.FC;
5
+ export declare const EmailLogo: React.FC;
6
+ export declare const VideoCallLogo: React.FC;
7
+ export declare const PersonalWebsite: React.FC;
@@ -0,0 +1,36 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export const TwitterLogo = () => {
3
+ return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 600 600", style: {
4
+ width: 30,
5
+ marginRight: 10,
6
+ }, children: _jsx("path", { fill: "white", d: "M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z" }) }));
7
+ };
8
+ export const LinkedInLogo = () => {
9
+ return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1000 1000", style: {
10
+ width: 30,
11
+ marginRight: 10,
12
+ }, children: _jsx("path", { fill: "white", d: "M195.877 0C88.16 0 0 88.158 0 195.877V803.718C0 911.435 88.158 999.563 195.877 999.563H803.718C911.436 999.563 999.563 911.436 999.563 803.718V195.877C999.563 88.16 911.436 0 803.718 0H195.877ZM245.143 164.948C296.791 164.948 328.604 198.854 329.586 243.423C329.586 287.008 296.789 321.867 244.144 321.867H243.175C192.51 321.867 159.763 287.01 159.763 243.423C159.763 198.855 193.501 164.948 245.142 164.948H245.143ZM690.223 373.258C789.552 373.258 864.013 438.18 864.013 577.694V838.143H713.06V595.156C713.06 534.096 691.213 492.438 636.584 492.438C594.88 492.438 570.022 520.516 559.108 547.64C555.121 557.344 554.141 570.897 554.141 584.472V838.143H403.188C403.188 838.143 405.169 426.53 403.188 383.91H554.172V448.234C574.232 417.284 610.114 373.257 690.223 373.257V373.258ZM168.667 383.943H319.62V838.145H168.667V383.943V383.943Z" }) }));
13
+ };
14
+ export const GitHubLogo = () => {
15
+ return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1084 1084", style: {
16
+ width: 30,
17
+ marginRight: 10,
18
+ }, children: _jsx("path", { fill: "white", d: "M542 0C242.545 0 0 242.545 0 542C0 781.835 155.147 984.408 370.592 1056.22C397.692 1060.97 407.855 1044.71 407.855 1030.48C407.855 1017.61 407.178 974.923 407.178 929.53C271 954.598 235.77 896.332 224.93 865.845C218.832 850.262 192.41 802.16 169.375 789.287C150.405 779.125 123.305 754.057 168.698 753.38C211.38 752.702 241.868 792.675 252.03 808.935C300.81 890.912 378.723 867.878 409.888 853.65C414.63 818.42 428.857 794.707 444.44 781.157C323.845 767.607 197.83 720.86 197.83 513.545C197.83 454.602 218.833 405.822 253.385 367.882C247.965 354.332 228.995 298.777 258.805 224.252C258.805 224.252 304.198 210.025 407.855 279.808C451.215 267.613 497.285 261.515 543.355 261.515C589.425 261.515 635.495 267.613 678.855 279.808C782.513 209.348 827.905 224.252 827.905 224.252C857.715 298.777 838.745 354.332 833.325 367.882C867.878 405.822 888.88 453.925 888.88 513.545C888.88 721.537 762.188 767.607 641.593 781.157C661.24 798.095 678.178 830.615 678.178 881.428C678.178 953.92 677.5 1012.19 677.5 1030.48C677.5 1044.71 687.663 1061.64 714.763 1056.22C822.365 1019.91 915.868 950.759 982.106 858.512C1048.34 766.264 1083.98 655.565 1084 542C1084 242.545 841.455 0 542 0Z" }) }));
19
+ };
20
+ export const EmailLogo = () => {
21
+ return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1299 1299", style: {
22
+ width: 30,
23
+ marginRight: 10,
24
+ }, children: _jsx("path", { fill: "white", d: "M1177.22 202.969H121.781C99.3278 202.969 81.1875 221.109 81.1875 243.562V1055.44C81.1875 1077.89 99.3278 1096.03 121.781 1096.03H1177.22C1199.67 1096.03 1217.81 1077.89 1217.81 1055.44V243.562C1217.81 221.109 1199.67 202.969 1177.22 202.969ZM1126.48 343.525V1004.7H172.523V343.525L137.511 316.251L187.366 252.189L241.66 294.432H1057.47L1111.76 252.189L1161.62 316.251L1126.48 343.525V343.525ZM1057.47 294.305L649.5 611.443L241.533 294.305L187.239 252.062L137.384 316.124L172.397 343.398L605.735 680.326C618.197 690.008 633.529 695.263 649.31 695.263C665.091 695.263 680.422 690.008 692.885 680.326L1126.48 343.525L1161.49 316.251L1111.63 252.189L1057.47 294.305Z" }) }));
25
+ };
26
+ export const VideoCallLogo = () => {
27
+ return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 576 576", style: {
28
+ width: 30,
29
+ marginRight: 10,
30
+ }, children: _jsx("path", { fill: "white", d: "M64 112c-8.8 0-16 7.2-16 16V384c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16H64zM0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64v33V351v33c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zM528 363.4V148.6L416 199V146.4L520.3 99.5c5.1-2.3 10.6-3.5 16.2-3.5c21.8 0 39.5 17.7 39.5 39.5v241c0 21.8-17.7 39.5-39.5 39.5c-5.6 0-11.1-1.2-16.2-3.5L416 365.6V313l112 50.4z" }) }));
31
+ };
32
+ export const PersonalWebsite = () => {
33
+ return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 576 576", style: {
34
+ width: 30,
35
+ }, children: _jsx("path", { fill: "currentcolor", d: "M317.9 422.7C296.4 465.6 272.7 480 256 480c-7.9 0-17.3-3.2-27.3-11l-6.9 18.6c-2.9 7.8-7.7 14.7-13.9 19.9c15.6 3 31.6 4.5 48.1 4.5c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256c0 16.4 1.5 32.5 4.5 48.1c5.3-6.2 12.1-11 19.9-13.9l9.6-3.5c-1.4-10-2.1-20.2-2.1-30.6c0-22.2 3.2-43.7 9.3-64H132c-2.5 19.2-3.9 39.3-4 60l32.2-11.9c.5-16.7 1.9-32.8 4.1-48.1H347.7c2.8 20.2 4.3 41.7 4.3 64s-1.5 43.8-4.3 64H283.6l-11.8 32H342c-5.9 27-14.2 50.9-24.1 70.7zM194.1 89.3C215.6 46.4 239.3 32 256 32s40.4 14.4 61.9 57.3c9.9 19.8 18.2 43.7 24.1 70.7H170c5.9-27 14.2-50.9 24.1-70.7zM384 256c0-22.1-1.4-43.5-4-64h90.8c6 20.3 9.3 41.8 9.3 64s-3.2 43.7-9.3 64H380c2.6-20.5 4-41.9 4-64zm-9.3-96c-9.6-47.6-26.2-88-47.2-116.3c57.8 19.5 105 61.8 130.9 116.3H374.7zM53.6 160c25.9-54.5 73.1-96.9 130.9-116.3c-21 28.3-37.5 68.8-47.2 116.3H53.6zM374.7 352h83.8c-25.9 54.5-73.1 96.9-130.9 116.3c21-28.3 37.6-68.8 47.2-116.3zM271 261.5c2.2-5.9 .7-12.4-3.7-16.8s-11-5.9-16.8-3.7l-215 79.2c-6.2 2.3-10.3 8.1-10.5 14.7s3.8 12.6 9.9 15.1l74 30.5L4.7 484.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L131.5 403.1l30.5 74c2.5 6.1 8.5 10 15.1 9.9s12.4-4.3 14.7-10.5l79.2-215zM143.3 360L85.1 336 229 283 176 426.9l-24-58.2c-1.6-3.9-4.8-7.1-8.7-8.7z" }) }));
36
+ };
@@ -0,0 +1,3 @@
1
+ export { experts } from './experts/experts-data';
2
+ export type { Expert } from './experts/experts-data';
3
+ export { ExpertsPageContent } from './experts/ExpertsPage';
@@ -0,0 +1,2 @@
1
+ export { experts } from './experts/experts-data';
2
+ export { ExpertsPageContent } from './experts/ExpertsPage';
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const BackgroundAnimation: React.FC;