@remotion/promo-pages 4.0.458 → 4.0.459

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 +98 -103
  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 +36 -41
  255. package/dist/experts.js +33 -38
  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 +36 -41
  261. package/dist/main.d.ts +1 -0
  262. package/dist/main.js +6 -0
  263. package/dist/prompts/PromptsGallery.js +40 -45
  264. package/dist/prompts/PromptsShow.js +38 -43
  265. package/dist/prompts/PromptsSubmit.js +38 -43
  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 +36 -41
  274. package/dist/template-modal-content.js +45 -50
  275. package/dist/templates.js +36 -41
  276. package/package.json +13 -13
package/dist/design.js CHANGED
@@ -1378,7 +1378,7 @@ var getDefaultConfig = () => {
1378
1378
  var twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
1379
1379
 
1380
1380
  // ../design/dist/esm/index.mjs
1381
- import React33, { useEffect as useEffect21, useMemo as useMemo38, useState as useState23 } from "react";
1381
+ import React33, { useEffect as useEffect20, useMemo as useMemo38, useState as useState23 } from "react";
1382
1382
 
1383
1383
  // ../paths/dist/esm/index.mjs
1384
1384
  var cutLInstruction = ({
@@ -5818,7 +5818,7 @@ import { jsx as jsx19 } from "react/jsx-runtime";
5818
5818
  import React23, {
5819
5819
  forwardRef as forwardRef6,
5820
5820
  useContext as useContext28,
5821
- useEffect as useEffect15,
5821
+ useEffect as useEffect14,
5822
5822
  useImperativeHandle as useImperativeHandle4,
5823
5823
  useMemo as useMemo28,
5824
5824
  useRef as useRef18,
@@ -5834,15 +5834,15 @@ import React20, {
5834
5834
  useRef as useRef11,
5835
5835
  useState as useState12
5836
5836
  } from "react";
5837
- import { useEffect as useEffect8, useMemo as useMemo21 } from "react";
5837
+ import { useMemo as useMemo21 } from "react";
5838
5838
  import { jsx as jsx20, jsxs as jsxs22 } from "react/jsx-runtime";
5839
5839
  import { useRef as useRef12 } from "react";
5840
- import { useContext as useContext23, useEffect as useEffect9, useMemo as useMemo23, useState as useState13 } from "react";
5840
+ import { useContext as useContext23, useEffect as useEffect8, useMemo as useMemo23, useState as useState13 } from "react";
5841
5841
  import { useContext as useContext22 } from "react";
5842
5842
  import {
5843
5843
  useCallback as useCallback12,
5844
5844
  useContext as useContext26,
5845
- useEffect as useEffect13,
5845
+ useEffect as useEffect12,
5846
5846
  useLayoutEffect as useLayoutEffect8,
5847
5847
  useRef as useRef17
5848
5848
  } from "react";
@@ -5851,7 +5851,7 @@ import { useContext as useContext25, useMemo as useMemo25 } from "react";
5851
5851
  import React21, {
5852
5852
  useCallback as useCallback10,
5853
5853
  useContext as useContext24,
5854
- useEffect as useEffect10,
5854
+ useEffect as useEffect9,
5855
5855
  useLayoutEffect as useLayoutEffect7,
5856
5856
  useMemo as useMemo24,
5857
5857
  useRef as useRef14,
@@ -5859,15 +5859,15 @@ import React21, {
5859
5859
  } from "react";
5860
5860
  import { jsx as jsx21 } from "react/jsx-runtime";
5861
5861
  import React22 from "react";
5862
- import { useEffect as useEffect11, useState as useState15 } from "react";
5863
- import { useEffect as useEffect12, useRef as useRef16 } from "react";
5864
- import { useEffect as useEffect14 } from "react";
5862
+ import { useEffect as useEffect10, useState as useState15 } from "react";
5863
+ import { useEffect as useEffect11, useRef as useRef16 } from "react";
5864
+ import { useEffect as useEffect13 } from "react";
5865
5865
  import { createContext as createContext21, useContext as useContext27, useMemo as useMemo27 } from "react";
5866
5866
  import { jsx as jsx222 } from "react/jsx-runtime";
5867
5867
  import {
5868
5868
  forwardRef as forwardRef7,
5869
5869
  useContext as useContext29,
5870
- useEffect as useEffect16,
5870
+ useEffect as useEffect15,
5871
5871
  useImperativeHandle as useImperativeHandle5,
5872
5872
  useLayoutEffect as useLayoutEffect9,
5873
5873
  useMemo as useMemo29,
@@ -5908,7 +5908,7 @@ import { useCallback as useCallback18 } from "react";
5908
5908
  import {
5909
5909
  useCallback as useCallback17,
5910
5910
  useContext as useContext34,
5911
- useEffect as useEffect17,
5911
+ useEffect as useEffect16,
5912
5912
  useLayoutEffect as useLayoutEffect11,
5913
5913
  useMemo as useMemo33,
5914
5914
  useState as useState20
@@ -5917,13 +5917,13 @@ import { jsx as jsx30 } from "react/jsx-runtime";
5917
5917
  import React34, {
5918
5918
  forwardRef as forwardRef10,
5919
5919
  useContext as useContext35,
5920
- useEffect as useEffect19,
5920
+ useEffect as useEffect18,
5921
5921
  useImperativeHandle as useImperativeHandle8,
5922
5922
  useMemo as useMemo34,
5923
5923
  useRef as useRef22,
5924
5924
  useState as useState21
5925
5925
  } from "react";
5926
- import { useEffect as useEffect18 } from "react";
5926
+ import { useEffect as useEffect17 } from "react";
5927
5927
  import { jsx as jsx31 } from "react/jsx-runtime";
5928
5928
  import { jsx as jsx322 } from "react/jsx-runtime";
5929
5929
  import React36, { useMemo as useMemo35 } from "react";
@@ -5938,7 +5938,7 @@ import { forwardRef as forwardRef13, useCallback as useCallback19, useContext as
5938
5938
  import {
5939
5939
  forwardRef as forwardRef12,
5940
5940
  useContext as useContext36,
5941
- useEffect as useEffect20,
5941
+ useEffect as useEffect19,
5942
5942
  useImperativeHandle as useImperativeHandle9,
5943
5943
  useLayoutEffect as useLayoutEffect12,
5944
5944
  useMemo as useMemo37,
@@ -7475,7 +7475,7 @@ var getComponentsToAddStacksTo = () => componentsToAddStacksTo;
7475
7475
  var addSequenceStackTraces = (component) => {
7476
7476
  componentsToAddStacksTo.push(component);
7477
7477
  };
7478
- var VERSION = "4.0.458";
7478
+ var VERSION = "4.0.459";
7479
7479
  var checkMultipleRemotionVersions = () => {
7480
7480
  if (typeof globalThis === "undefined") {
7481
7481
  return;
@@ -9574,11 +9574,6 @@ var useSingletonAudioContext = ({
9574
9574
  gainNode
9575
9575
  };
9576
9576
  }, [logLevel, latencyHint, env.isRendering, audioEnabled]);
9577
- useEffect8(() => {
9578
- return () => {
9579
- context?.audioContext?.close();
9580
- };
9581
- }, [context]);
9582
9577
  return context;
9583
9578
  };
9584
9579
  var waitUntilActuallyResumed = (audioContext, logLevel) => {
@@ -10309,7 +10304,7 @@ var useBasicMediaInTimeline = ({
10309
10304
  });
10310
10305
  }).join(",");
10311
10306
  }, [duration, mediaStartsAt, volume, mediaVolume]);
10312
- useEffect9(() => {
10307
+ useEffect8(() => {
10313
10308
  if (typeof volume === "number" && volume !== initialVolume) {
10314
10309
  warnOnce2(`Remotion: The ${mediaType} with src ${src} has changed it's volume. Prefer the callback syntax for setting volume to get better timeline display: https://www.remotion.dev/docs/audio/volume`);
10315
10310
  }
@@ -10372,7 +10367,7 @@ var useImageInTimeline = ({
10372
10367
  loop: false
10373
10368
  });
10374
10369
  const { isStudio } = useRemotionEnvironment();
10375
- useEffect9(() => {
10370
+ useEffect8(() => {
10376
10371
  if (!src) {
10377
10372
  throw new Error("No src passed");
10378
10373
  }
@@ -10455,7 +10450,7 @@ var useMediaInTimeline = ({
10455
10450
  loop: false
10456
10451
  });
10457
10452
  const { isStudio } = useRemotionEnvironment();
10458
- useEffect9(() => {
10453
+ useEffect8(() => {
10459
10454
  if (!src) {
10460
10455
  throw new Error("No src passed");
10461
10456
  }
@@ -10557,7 +10552,7 @@ var useBufferManager = (logLevel, mountTime) => {
10557
10552
  }
10558
10553
  };
10559
10554
  }, []);
10560
- useEffect10(() => {
10555
+ useEffect9(() => {
10561
10556
  if (rendering) {
10562
10557
  return;
10563
10558
  }
@@ -10602,7 +10597,7 @@ var BufferingProvider = ({ children }) => {
10602
10597
  };
10603
10598
  var useIsPlayerBuffering = (bufferManager) => {
10604
10599
  const [isBuffering, setIsBuffering] = useState14(bufferManager.buffering.current);
10605
- useEffect10(() => {
10600
+ useEffect9(() => {
10606
10601
  const onBuffer = () => {
10607
10602
  setIsBuffering(true);
10608
10603
  };
@@ -10771,7 +10766,7 @@ var useMediaBuffering = ({
10771
10766
  }) => {
10772
10767
  const buffer = useBufferState();
10773
10768
  const [isBuffering, setIsBuffering] = useState15(false);
10774
- useEffect11(() => {
10769
+ useEffect10(() => {
10775
10770
  let cleanupFns = [];
10776
10771
  const { current } = element;
10777
10772
  if (!current) {
@@ -10904,7 +10899,7 @@ var useRequestVideoCallbackTime = ({
10904
10899
  onVariableFpsVideoDetected
10905
10900
  }) => {
10906
10901
  const currentTime = useRef16(null);
10907
- useEffect12(() => {
10902
+ useEffect11(() => {
10908
10903
  const { current } = mediaRef;
10909
10904
  if (current) {
10910
10905
  currentTime.current = {
@@ -11190,7 +11185,7 @@ var useMediaPlayback = ({
11190
11185
  return acceptableTimeshift ?? defaultAcceptableTimeshift;
11191
11186
  })();
11192
11187
  const isPlayerBuffering = useIsPlayerBuffering(buffering);
11193
- useEffect13(() => {
11188
+ useEffect12(() => {
11194
11189
  if (mediaRef.current?.paused) {
11195
11190
  return;
11196
11191
  }
@@ -11235,7 +11230,7 @@ var useMediaPlayback = ({
11235
11230
  mediaRef.current.playbackRate = playbackRateToSet;
11236
11231
  }
11237
11232
  }, [mediaRef, playbackRate]);
11238
- useEffect13(() => {
11233
+ useEffect12(() => {
11239
11234
  const tagName = mediaType === "audio" ? "<Html5Audio>" : "<Html5Video>";
11240
11235
  if (!mediaRef.current) {
11241
11236
  throw new Error(`No ${mediaType} ref found`);
@@ -11364,7 +11359,7 @@ var useMediaTag = ({
11364
11359
  const logLevel = useLogLevel();
11365
11360
  const mountTime = useMountTime();
11366
11361
  const env = useRemotionEnvironment();
11367
- useEffect14(() => {
11362
+ useEffect13(() => {
11368
11363
  const tag = {
11369
11364
  id,
11370
11365
  play: (reason) => {
@@ -11583,7 +11578,7 @@ var AudioForDevelopmentForwardRefFunction = (props, ref) => {
11583
11578
  }, [audioRef]);
11584
11579
  const currentOnDurationCallback = useRef18(onDuration);
11585
11580
  currentOnDurationCallback.current = onDuration;
11586
- useEffect15(() => {
11581
+ useEffect14(() => {
11587
11582
  const { current } = audioRef;
11588
11583
  if (!current) {
11589
11584
  return;
@@ -11652,7 +11647,7 @@ var AudioForRenderingRefForwardingFunction = (props, ref) => {
11652
11647
  useImperativeHandle5(ref, () => {
11653
11648
  return audioRef.current;
11654
11649
  }, []);
11655
- useEffect16(() => {
11650
+ useEffect15(() => {
11656
11651
  if (!props.src) {
11657
11652
  throw new Error("No src passed");
11658
11653
  }
@@ -12606,7 +12601,7 @@ var OffthreadVideoForRendering = ({
12606
12601
  mediaVolume: 1
12607
12602
  });
12608
12603
  warnAboutTooHighVolume(volume);
12609
- useEffect17(() => {
12604
+ useEffect16(() => {
12610
12605
  if (!src) {
12611
12606
  throw new Error("No src passed");
12612
12607
  }
@@ -12767,7 +12762,7 @@ var useEmitVideoFrame = ({
12767
12762
  ref,
12768
12763
  onVideoFrame
12769
12764
  }) => {
12770
- useEffect18(() => {
12765
+ useEffect17(() => {
12771
12766
  const { current } = ref;
12772
12767
  if (!current) {
12773
12768
  return;
@@ -12931,7 +12926,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
12931
12926
  tag: "video",
12932
12927
  mountTime
12933
12928
  }));
12934
- useEffect19(() => {
12929
+ useEffect18(() => {
12935
12930
  const { current } = videoRef;
12936
12931
  if (!current) {
12937
12932
  return;
@@ -12974,7 +12969,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
12974
12969
  const currentOnDurationCallback = useRef22(onDuration);
12975
12970
  currentOnDurationCallback.current = onDuration;
12976
12971
  useEmitVideoFrame({ ref: videoRef, onVideoFrame });
12977
- useEffect19(() => {
12972
+ useEffect18(() => {
12978
12973
  const { current } = videoRef;
12979
12974
  if (!current) {
12980
12975
  return;
@@ -12991,7 +12986,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
12991
12986
  current.removeEventListener("loadedmetadata", onLoadedMetadata);
12992
12987
  };
12993
12988
  }, [src]);
12994
- useEffect19(() => {
12989
+ useEffect18(() => {
12995
12990
  const { current } = videoRef;
12996
12991
  if (!current) {
12997
12992
  return;
@@ -14002,7 +13997,7 @@ var VideoForRenderingForwardFunction = ({
14002
13997
  mediaVolume: 1
14003
13998
  });
14004
13999
  warnAboutTooHighVolume(volume);
14005
- useEffect20(() => {
14000
+ useEffect19(() => {
14006
14001
  if (!props2.src) {
14007
14002
  throw new Error("No src passed");
14008
14003
  }
@@ -14045,7 +14040,7 @@ var VideoForRenderingForwardFunction = ({
14045
14040
  useImperativeHandle9(ref, () => {
14046
14041
  return videoRef.current;
14047
14042
  }, []);
14048
- useEffect20(() => {
14043
+ useEffect19(() => {
14049
14044
  if (!window.remotion_videoEnabled) {
14050
14045
  return;
14051
14046
  }
@@ -14566,7 +14561,7 @@ var useHoverTransforms = (ref, disabled) => {
14566
14561
  isActive: false
14567
14562
  });
14568
14563
  const eventTarget = useMemo38(() => new EventTarget, []);
14569
- useEffect21(() => {
14564
+ useEffect20(() => {
14570
14565
  if (disabled) {
14571
14566
  eventTarget.dispatchEvent(new Event("disabled"));
14572
14567
  } else {
@@ -14713,7 +14708,7 @@ var getAngle = (ref, coordinates) => {
14713
14708
  var lastCoordinates = null;
14714
14709
  var useMousePosition = (ref) => {
14715
14710
  const [angle, setAngle] = useState23(getAngle(ref.current, lastCoordinates));
14716
- useEffect21(() => {
14711
+ useEffect20(() => {
14717
14712
  const element = ref.current;
14718
14713
  if (!element) {
14719
14714
  return;
package/dist/experts.js CHANGED
@@ -1016,7 +1016,7 @@ import { jsx as jsx19 } from "react/jsx-runtime";
1016
1016
  import React23, {
1017
1017
  forwardRef as forwardRef6,
1018
1018
  useContext as useContext28,
1019
- useEffect as useEffect15,
1019
+ useEffect as useEffect14,
1020
1020
  useImperativeHandle as useImperativeHandle4,
1021
1021
  useMemo as useMemo28,
1022
1022
  useRef as useRef18,
@@ -1032,15 +1032,15 @@ import React20, {
1032
1032
  useRef as useRef11,
1033
1033
  useState as useState12
1034
1034
  } from "react";
1035
- import { useEffect as useEffect8, useMemo as useMemo21 } from "react";
1035
+ import { useMemo as useMemo21 } from "react";
1036
1036
  import { jsx as jsx20, jsxs as jsxs22 } from "react/jsx-runtime";
1037
1037
  import { useRef as useRef12 } from "react";
1038
- import { useContext as useContext23, useEffect as useEffect9, useMemo as useMemo23, useState as useState13 } from "react";
1038
+ import { useContext as useContext23, useEffect as useEffect8, useMemo as useMemo23, useState as useState13 } from "react";
1039
1039
  import { useContext as useContext22 } from "react";
1040
1040
  import {
1041
1041
  useCallback as useCallback12,
1042
1042
  useContext as useContext26,
1043
- useEffect as useEffect13,
1043
+ useEffect as useEffect12,
1044
1044
  useLayoutEffect as useLayoutEffect8,
1045
1045
  useRef as useRef17
1046
1046
  } from "react";
@@ -1049,7 +1049,7 @@ import { useContext as useContext25, useMemo as useMemo25 } from "react";
1049
1049
  import React21, {
1050
1050
  useCallback as useCallback10,
1051
1051
  useContext as useContext24,
1052
- useEffect as useEffect10,
1052
+ useEffect as useEffect9,
1053
1053
  useLayoutEffect as useLayoutEffect7,
1054
1054
  useMemo as useMemo24,
1055
1055
  useRef as useRef14,
@@ -1057,15 +1057,15 @@ import React21, {
1057
1057
  } from "react";
1058
1058
  import { jsx as jsx21 } from "react/jsx-runtime";
1059
1059
  import React22 from "react";
1060
- import { useEffect as useEffect11, useState as useState15 } from "react";
1061
- import { useEffect as useEffect12, useRef as useRef16 } from "react";
1062
- import { useEffect as useEffect14 } from "react";
1060
+ import { useEffect as useEffect10, useState as useState15 } from "react";
1061
+ import { useEffect as useEffect11, useRef as useRef16 } from "react";
1062
+ import { useEffect as useEffect13 } from "react";
1063
1063
  import { createContext as createContext21, useContext as useContext27, useMemo as useMemo27 } from "react";
1064
1064
  import { jsx as jsx222 } from "react/jsx-runtime";
1065
1065
  import {
1066
1066
  forwardRef as forwardRef7,
1067
1067
  useContext as useContext29,
1068
- useEffect as useEffect16,
1068
+ useEffect as useEffect15,
1069
1069
  useImperativeHandle as useImperativeHandle5,
1070
1070
  useLayoutEffect as useLayoutEffect9,
1071
1071
  useMemo as useMemo29,
@@ -1106,7 +1106,7 @@ import { useCallback as useCallback18 } from "react";
1106
1106
  import {
1107
1107
  useCallback as useCallback17,
1108
1108
  useContext as useContext34,
1109
- useEffect as useEffect17,
1109
+ useEffect as useEffect16,
1110
1110
  useLayoutEffect as useLayoutEffect11,
1111
1111
  useMemo as useMemo33,
1112
1112
  useState as useState20
@@ -1115,13 +1115,13 @@ import { jsx as jsx30 } from "react/jsx-runtime";
1115
1115
  import React34, {
1116
1116
  forwardRef as forwardRef10,
1117
1117
  useContext as useContext35,
1118
- useEffect as useEffect19,
1118
+ useEffect as useEffect18,
1119
1119
  useImperativeHandle as useImperativeHandle8,
1120
1120
  useMemo as useMemo34,
1121
1121
  useRef as useRef22,
1122
1122
  useState as useState21
1123
1123
  } from "react";
1124
- import { useEffect as useEffect18 } from "react";
1124
+ import { useEffect as useEffect17 } from "react";
1125
1125
  import { jsx as jsx31 } from "react/jsx-runtime";
1126
1126
  import { jsx as jsx32 } from "react/jsx-runtime";
1127
1127
  import React36, { useMemo as useMemo35 } from "react";
@@ -1136,7 +1136,7 @@ import { forwardRef as forwardRef13, useCallback as useCallback19, useContext as
1136
1136
  import {
1137
1137
  forwardRef as forwardRef12,
1138
1138
  useContext as useContext36,
1139
- useEffect as useEffect20,
1139
+ useEffect as useEffect19,
1140
1140
  useImperativeHandle as useImperativeHandle9,
1141
1141
  useLayoutEffect as useLayoutEffect12,
1142
1142
  useMemo as useMemo37,
@@ -2673,7 +2673,7 @@ var getComponentsToAddStacksTo = () => componentsToAddStacksTo;
2673
2673
  var addSequenceStackTraces = (component) => {
2674
2674
  componentsToAddStacksTo.push(component);
2675
2675
  };
2676
- var VERSION = "4.0.458";
2676
+ var VERSION = "4.0.459";
2677
2677
  var checkMultipleRemotionVersions = () => {
2678
2678
  if (typeof globalThis === "undefined") {
2679
2679
  return;
@@ -4772,11 +4772,6 @@ var useSingletonAudioContext = ({
4772
4772
  gainNode
4773
4773
  };
4774
4774
  }, [logLevel, latencyHint, env.isRendering, audioEnabled]);
4775
- useEffect8(() => {
4776
- return () => {
4777
- context?.audioContext?.close();
4778
- };
4779
- }, [context]);
4780
4775
  return context;
4781
4776
  };
4782
4777
  var waitUntilActuallyResumed = (audioContext, logLevel) => {
@@ -5507,7 +5502,7 @@ var useBasicMediaInTimeline = ({
5507
5502
  });
5508
5503
  }).join(",");
5509
5504
  }, [duration, mediaStartsAt, volume, mediaVolume]);
5510
- useEffect9(() => {
5505
+ useEffect8(() => {
5511
5506
  if (typeof volume === "number" && volume !== initialVolume) {
5512
5507
  warnOnce2(`Remotion: The ${mediaType} with src ${src} has changed it's volume. Prefer the callback syntax for setting volume to get better timeline display: https://www.remotion.dev/docs/audio/volume`);
5513
5508
  }
@@ -5570,7 +5565,7 @@ var useImageInTimeline = ({
5570
5565
  loop: false
5571
5566
  });
5572
5567
  const { isStudio } = useRemotionEnvironment();
5573
- useEffect9(() => {
5568
+ useEffect8(() => {
5574
5569
  if (!src) {
5575
5570
  throw new Error("No src passed");
5576
5571
  }
@@ -5653,7 +5648,7 @@ var useMediaInTimeline = ({
5653
5648
  loop: false
5654
5649
  });
5655
5650
  const { isStudio } = useRemotionEnvironment();
5656
- useEffect9(() => {
5651
+ useEffect8(() => {
5657
5652
  if (!src) {
5658
5653
  throw new Error("No src passed");
5659
5654
  }
@@ -5755,7 +5750,7 @@ var useBufferManager = (logLevel, mountTime) => {
5755
5750
  }
5756
5751
  };
5757
5752
  }, []);
5758
- useEffect10(() => {
5753
+ useEffect9(() => {
5759
5754
  if (rendering) {
5760
5755
  return;
5761
5756
  }
@@ -5800,7 +5795,7 @@ var BufferingProvider = ({ children }) => {
5800
5795
  };
5801
5796
  var useIsPlayerBuffering = (bufferManager) => {
5802
5797
  const [isBuffering, setIsBuffering] = useState14(bufferManager.buffering.current);
5803
- useEffect10(() => {
5798
+ useEffect9(() => {
5804
5799
  const onBuffer = () => {
5805
5800
  setIsBuffering(true);
5806
5801
  };
@@ -5969,7 +5964,7 @@ var useMediaBuffering = ({
5969
5964
  }) => {
5970
5965
  const buffer = useBufferState();
5971
5966
  const [isBuffering, setIsBuffering] = useState15(false);
5972
- useEffect11(() => {
5967
+ useEffect10(() => {
5973
5968
  let cleanupFns = [];
5974
5969
  const { current } = element;
5975
5970
  if (!current) {
@@ -6102,7 +6097,7 @@ var useRequestVideoCallbackTime = ({
6102
6097
  onVariableFpsVideoDetected
6103
6098
  }) => {
6104
6099
  const currentTime = useRef16(null);
6105
- useEffect12(() => {
6100
+ useEffect11(() => {
6106
6101
  const { current } = mediaRef;
6107
6102
  if (current) {
6108
6103
  currentTime.current = {
@@ -6388,7 +6383,7 @@ var useMediaPlayback = ({
6388
6383
  return acceptableTimeshift ?? defaultAcceptableTimeshift;
6389
6384
  })();
6390
6385
  const isPlayerBuffering = useIsPlayerBuffering(buffering);
6391
- useEffect13(() => {
6386
+ useEffect12(() => {
6392
6387
  if (mediaRef.current?.paused) {
6393
6388
  return;
6394
6389
  }
@@ -6433,7 +6428,7 @@ var useMediaPlayback = ({
6433
6428
  mediaRef.current.playbackRate = playbackRateToSet;
6434
6429
  }
6435
6430
  }, [mediaRef, playbackRate]);
6436
- useEffect13(() => {
6431
+ useEffect12(() => {
6437
6432
  const tagName = mediaType === "audio" ? "<Html5Audio>" : "<Html5Video>";
6438
6433
  if (!mediaRef.current) {
6439
6434
  throw new Error(`No ${mediaType} ref found`);
@@ -6562,7 +6557,7 @@ var useMediaTag = ({
6562
6557
  const logLevel = useLogLevel();
6563
6558
  const mountTime = useMountTime();
6564
6559
  const env = useRemotionEnvironment();
6565
- useEffect14(() => {
6560
+ useEffect13(() => {
6566
6561
  const tag = {
6567
6562
  id,
6568
6563
  play: (reason) => {
@@ -6781,7 +6776,7 @@ var AudioForDevelopmentForwardRefFunction = (props, ref) => {
6781
6776
  }, [audioRef]);
6782
6777
  const currentOnDurationCallback = useRef18(onDuration);
6783
6778
  currentOnDurationCallback.current = onDuration;
6784
- useEffect15(() => {
6779
+ useEffect14(() => {
6785
6780
  const { current } = audioRef;
6786
6781
  if (!current) {
6787
6782
  return;
@@ -6850,7 +6845,7 @@ var AudioForRenderingRefForwardingFunction = (props, ref) => {
6850
6845
  useImperativeHandle5(ref, () => {
6851
6846
  return audioRef.current;
6852
6847
  }, []);
6853
- useEffect16(() => {
6848
+ useEffect15(() => {
6854
6849
  if (!props.src) {
6855
6850
  throw new Error("No src passed");
6856
6851
  }
@@ -7804,7 +7799,7 @@ var OffthreadVideoForRendering = ({
7804
7799
  mediaVolume: 1
7805
7800
  });
7806
7801
  warnAboutTooHighVolume(volume);
7807
- useEffect17(() => {
7802
+ useEffect16(() => {
7808
7803
  if (!src) {
7809
7804
  throw new Error("No src passed");
7810
7805
  }
@@ -7965,7 +7960,7 @@ var useEmitVideoFrame = ({
7965
7960
  ref,
7966
7961
  onVideoFrame
7967
7962
  }) => {
7968
- useEffect18(() => {
7963
+ useEffect17(() => {
7969
7964
  const { current } = ref;
7970
7965
  if (!current) {
7971
7966
  return;
@@ -8129,7 +8124,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
8129
8124
  tag: "video",
8130
8125
  mountTime
8131
8126
  }));
8132
- useEffect19(() => {
8127
+ useEffect18(() => {
8133
8128
  const { current } = videoRef;
8134
8129
  if (!current) {
8135
8130
  return;
@@ -8172,7 +8167,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
8172
8167
  const currentOnDurationCallback = useRef22(onDuration);
8173
8168
  currentOnDurationCallback.current = onDuration;
8174
8169
  useEmitVideoFrame({ ref: videoRef, onVideoFrame });
8175
- useEffect19(() => {
8170
+ useEffect18(() => {
8176
8171
  const { current } = videoRef;
8177
8172
  if (!current) {
8178
8173
  return;
@@ -8189,7 +8184,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
8189
8184
  current.removeEventListener("loadedmetadata", onLoadedMetadata);
8190
8185
  };
8191
8186
  }, [src]);
8192
- useEffect19(() => {
8187
+ useEffect18(() => {
8193
8188
  const { current } = videoRef;
8194
8189
  if (!current) {
8195
8190
  return;
@@ -9200,7 +9195,7 @@ var VideoForRenderingForwardFunction = ({
9200
9195
  mediaVolume: 1
9201
9196
  });
9202
9197
  warnAboutTooHighVolume(volume);
9203
- useEffect20(() => {
9198
+ useEffect19(() => {
9204
9199
  if (!props2.src) {
9205
9200
  throw new Error("No src passed");
9206
9201
  }
@@ -9243,7 +9238,7 @@ var VideoForRenderingForwardFunction = ({
9243
9238
  useImperativeHandle9(ref, () => {
9244
9239
  return videoRef.current;
9245
9240
  }, []);
9246
- useEffect20(() => {
9241
+ useEffect19(() => {
9247
9242
  if (!window.remotion_videoEnabled) {
9248
9243
  return;
9249
9244
  }
@@ -0,0 +1 @@
1
+ export declare const useMobileLayout: () => boolean;
@@ -0,0 +1,6 @@
1
+ import { useElementSize } from './use-el-size';
2
+ export const useMobileLayout = () => {
3
+ var _a;
4
+ const containerSize = useElementSize(typeof document === 'undefined' ? null : document.body);
5
+ return ((_a = containerSize === null || containerSize === void 0 ? void 0 : containerSize.width) !== null && _a !== void 0 ? _a : Infinity) < 900;
6
+ };
@@ -0,0 +1,5 @@
1
+ export type Size = {
2
+ width: number;
3
+ height: number;
4
+ };
5
+ export declare const useElementSize: (ref: HTMLElement | null) => Size | null;
@@ -0,0 +1,40 @@
1
+ import { useCallback, useEffect, useMemo, useState } from 'react';
2
+ export const useElementSize = (ref) => {
3
+ const [size, setSize] = useState(null);
4
+ const observer = useMemo(() => {
5
+ if (typeof ResizeObserver === 'undefined') {
6
+ return;
7
+ }
8
+ return new ResizeObserver((entries) => {
9
+ setSize({
10
+ width: entries[0].contentRect.width,
11
+ height: entries[0].contentRect.height,
12
+ });
13
+ });
14
+ }, []);
15
+ const updateSize = useCallback(() => {
16
+ if (ref === null) {
17
+ return;
18
+ }
19
+ const rect = ref.getClientRects();
20
+ setSize({
21
+ width: rect[0].width,
22
+ height: rect[0].height,
23
+ });
24
+ }, [ref]);
25
+ useEffect(() => {
26
+ updateSize();
27
+ if (!observer) {
28
+ return;
29
+ }
30
+ if (ref) {
31
+ observer.observe(ref);
32
+ }
33
+ return () => {
34
+ if (ref) {
35
+ observer.unobserve(ref);
36
+ }
37
+ };
38
+ }, [observer, ref, updateSize]);
39
+ return size;
40
+ };