@remotion/promo-pages 4.0.475 → 4.0.477
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.
- package/dist/Homepage.js +1397 -949
- package/dist/cn.d.ts +2 -0
- package/dist/cn.js +5 -0
- package/dist/components/3DEngine/ButtonDemo.d.ts +2 -0
- package/dist/components/3DEngine/ButtonDemo.js +43 -0
- package/dist/components/3DEngine/Faces.d.ts +5 -0
- package/dist/components/3DEngine/Faces.js +7 -0
- package/dist/components/3DEngine/Outer.d.ts +8 -0
- package/dist/components/3DEngine/Outer.js +56 -0
- package/dist/components/3DEngine/Switch.d.ts +4 -0
- package/dist/components/3DEngine/Switch.js +4 -0
- package/dist/components/3DEngine/get-child-node-from.d.ts +1 -0
- package/dist/components/3DEngine/get-child-node-from.js +14 -0
- package/dist/components/3DEngine/hover-transforms.d.ts +9 -0
- package/dist/components/3DEngine/hover-transforms.js +177 -0
- package/dist/components/BackButton.d.ts +6 -0
- package/dist/components/BackButton.js +9 -0
- package/dist/components/CommandCopyButton.d.ts +5 -0
- package/dist/components/CommandCopyButton.js +4 -0
- package/dist/components/Homepage.d.ts +6 -0
- package/dist/components/Homepage.js +20 -0
- package/dist/components/ManageTeamMembers.d.ts +2 -0
- package/dist/components/ManageTeamMembers.js +42 -0
- package/dist/components/Spinner.d.ts +3 -0
- package/dist/components/Spinner.js +4 -0
- package/dist/components/TeamPicture.d.ts +1 -0
- package/dist/components/TeamPicture.js +4 -0
- package/dist/components/design.d.ts +1 -0
- package/dist/components/design.js +33 -0
- package/dist/components/experts/ExpertsPage.d.ts +11 -0
- package/dist/components/experts/ExpertsPage.js +50 -0
- package/dist/components/experts/experts-data.d.ts +19 -0
- package/dist/components/experts/experts-data.js +391 -0
- package/dist/components/experts/experts-icons.d.ts +8 -0
- package/dist/components/experts/experts-icons.js +42 -0
- package/dist/components/experts.d.ts +3 -0
- package/dist/components/experts.js +2 -0
- package/dist/components/homepage/AutomationsSection.d.ts +3 -0
- package/dist/components/homepage/AutomationsSection.js +85 -0
- package/dist/components/homepage/BackgroundAnimation.d.ts +2 -0
- package/dist/components/homepage/BackgroundAnimation.js +66 -0
- package/dist/components/homepage/ChooseTemplate.d.ts +2 -0
- package/dist/components/homepage/ChooseTemplate.js +25 -0
- package/dist/components/homepage/CommunityStats.d.ts +3 -0
- package/dist/components/homepage/CommunityStats.js +6 -0
- package/dist/components/homepage/CommunityStatsItems.d.ts +7 -0
- package/dist/components/homepage/CommunityStatsItems.js +58 -0
- package/dist/components/homepage/Demo/Card.d.ts +15 -0
- package/dist/components/homepage/Demo/Card.js +174 -0
- package/dist/components/homepage/Demo/Cards.d.ts +15 -0
- package/dist/components/homepage/Demo/Cards.js +57 -0
- package/dist/components/homepage/Demo/Comp.d.ts +38 -0
- package/dist/components/homepage/Demo/Comp.js +72 -0
- package/dist/components/homepage/Demo/CurrentCountry.d.ts +9 -0
- package/dist/components/homepage/Demo/CurrentCountry.js +48 -0
- package/dist/components/homepage/Demo/DemoError.d.ts +2 -0
- package/dist/components/homepage/Demo/DemoError.js +10 -0
- package/dist/components/homepage/Demo/DemoErrorIcon.d.ts +2 -0
- package/dist/components/homepage/Demo/DemoErrorIcon.js +16 -0
- package/dist/components/homepage/Demo/DemoRender.d.ts +33 -0
- package/dist/components/homepage/Demo/DemoRender.js +107 -0
- package/dist/components/homepage/Demo/DigitWheel.d.ts +9 -0
- package/dist/components/homepage/Demo/DigitWheel.js +94 -0
- package/dist/components/homepage/Demo/DisplayedEmoji.d.ts +5 -0
- package/dist/components/homepage/Demo/DisplayedEmoji.js +59 -0
- package/dist/components/homepage/Demo/DoneCheckmark.d.ts +2 -0
- package/dist/components/homepage/Demo/DoneCheckmark.js +20 -0
- package/dist/components/homepage/Demo/DownloadNudge.d.ts +2 -0
- package/dist/components/homepage/Demo/DownloadNudge.js +27 -0
- package/dist/components/homepage/Demo/DragAndDropNudge.d.ts +3 -0
- package/dist/components/homepage/Demo/DragAndDropNudge.js +26 -0
- package/dist/components/homepage/Demo/EmojiCard.d.ts +10 -0
- package/dist/components/homepage/Demo/EmojiCard.js +120 -0
- package/dist/components/homepage/Demo/Minus.d.ts +5 -0
- package/dist/components/homepage/Demo/Minus.js +11 -0
- package/dist/components/homepage/Demo/PlayPauseButton.d.ts +5 -0
- package/dist/components/homepage/Demo/PlayPauseButton.js +47 -0
- package/dist/components/homepage/Demo/PlayerControls.d.ts +8 -0
- package/dist/components/homepage/Demo/PlayerControls.js +15 -0
- package/dist/components/homepage/Demo/PlayerSeekBar.d.ts +11 -0
- package/dist/components/homepage/Demo/PlayerSeekBar.js +216 -0
- package/dist/components/homepage/Demo/PlayerVolume.d.ts +5 -0
- package/dist/components/homepage/Demo/PlayerVolume.js +53 -0
- package/dist/components/homepage/Demo/Progress.d.ts +4 -0
- package/dist/components/homepage/Demo/Progress.js +14 -0
- package/dist/components/homepage/Demo/Spinner.d.ts +5 -0
- package/dist/components/homepage/Demo/Spinner.js +37 -0
- package/dist/components/homepage/Demo/Switcher.d.ts +6 -0
- package/dist/components/homepage/Demo/Switcher.js +25 -0
- package/dist/components/homepage/Demo/Temperature.d.ts +6 -0
- package/dist/components/homepage/Demo/Temperature.js +21 -0
- package/dist/components/homepage/Demo/TemperatureNumber.d.ts +5 -0
- package/dist/components/homepage/Demo/TemperatureNumber.js +36 -0
- package/dist/components/homepage/Demo/ThemeNudge.d.ts +3 -0
- package/dist/components/homepage/Demo/ThemeNudge.js +35 -0
- package/dist/components/homepage/Demo/TimeDisplay.d.ts +6 -0
- package/dist/components/homepage/Demo/TimeDisplay.js +27 -0
- package/dist/components/homepage/Demo/TrendingRepos.d.ts +6 -0
- package/dist/components/homepage/Demo/TrendingRepos.js +65 -0
- package/dist/components/homepage/Demo/icons.d.ts +10 -0
- package/dist/components/homepage/Demo/icons.js +22 -0
- package/dist/components/homepage/Demo/index.d.ts +2 -0
- package/dist/components/homepage/Demo/index.js +95 -0
- package/dist/components/homepage/Demo/math.d.ts +10 -0
- package/dist/components/homepage/Demo/math.js +29 -0
- package/dist/components/homepage/Demo/types.d.ts +6 -0
- package/dist/components/homepage/Demo/types.js +0 -0
- package/dist/components/homepage/EditorStarterSection.d.ts +3 -0
- package/dist/components/homepage/EditorStarterSection.js +8 -0
- package/dist/components/homepage/EvaluateRemotion.d.ts +3 -0
- package/dist/components/homepage/EvaluateRemotion.js +21 -0
- package/dist/components/homepage/FreePricing.d.ts +4 -0
- package/dist/components/homepage/FreePricing.js +133 -0
- package/dist/components/homepage/GetStartedStrip.d.ts +2 -0
- package/dist/components/homepage/GetStartedStrip.js +14 -0
- package/dist/components/homepage/GitHubButton.d.ts +2 -0
- package/dist/components/homepage/GitHubButton.js +7 -0
- package/dist/components/homepage/IconForTemplate.d.ts +6 -0
- package/dist/components/homepage/IconForTemplate.js +105 -0
- package/dist/components/homepage/IfYouKnowReact.d.ts +3 -0
- package/dist/components/homepage/IfYouKnowReact.js +23 -0
- package/dist/components/homepage/MoreTemplatesButton.d.ts +2 -0
- package/dist/components/homepage/MoreTemplatesButton.js +11 -0
- package/dist/components/homepage/MuxVideo.d.ts +7 -0
- package/dist/components/homepage/MuxVideo.js +45 -0
- package/dist/components/homepage/NewsletterButton.d.ts +2 -0
- package/dist/components/homepage/NewsletterButton.js +38 -0
- package/dist/components/homepage/ParameterizeAndEdit.d.ts +2 -0
- package/dist/components/homepage/ParameterizeAndEdit.js +22 -0
- package/dist/components/homepage/Pricing.d.ts +2 -0
- package/dist/components/homepage/Pricing.js +15 -0
- package/dist/components/homepage/PricingBulletPoint.d.ts +6 -0
- package/dist/components/homepage/PricingBulletPoint.js +19 -0
- package/dist/components/homepage/RealMp4Videos.d.ts +2 -0
- package/dist/components/homepage/RealMp4Videos.js +41 -0
- package/dist/components/homepage/Spacer.d.ts +2 -0
- package/dist/components/homepage/Spacer.js +4 -0
- package/dist/components/homepage/TemplateIcon.d.ts +5 -0
- package/dist/components/homepage/TemplateIcon.js +24 -0
- package/dist/components/homepage/TextInput.d.ts +7 -0
- package/dist/components/homepage/TextInput.js +34 -0
- package/dist/components/homepage/TrustedByBanner.d.ts +2 -0
- package/dist/components/homepage/TrustedByBanner.js +27 -0
- package/dist/components/homepage/VideoApps.d.ts +4 -0
- package/dist/components/homepage/VideoApps.js +72 -0
- package/dist/components/homepage/VideoAppsShowcase.d.ts +3 -0
- package/dist/components/homepage/VideoAppsShowcase.js +139 -0
- package/dist/components/homepage/VideoAppsTitle.d.ts +4 -0
- package/dist/components/homepage/VideoAppsTitle.js +4 -0
- package/dist/components/homepage/VideoPlayerWithControls.d.ts +20 -0
- package/dist/components/homepage/VideoPlayerWithControls.js +105 -0
- package/dist/components/homepage/WriteInReact.d.ts +2 -0
- package/dist/components/homepage/WriteInReact.js +10 -0
- package/dist/components/homepage/YouAreHere.d.ts +2 -0
- package/dist/components/homepage/YouAreHere.js +23 -0
- package/dist/components/homepage/layout/Button.d.ts +22 -0
- package/dist/components/homepage/layout/Button.js +30 -0
- package/dist/components/homepage/layout/colors.d.ts +13 -0
- package/dist/components/homepage/layout/colors.js +14 -0
- package/dist/components/homepage/layout/use-color-mode.d.ts +21 -0
- package/dist/components/homepage/layout/use-color-mode.js +22 -0
- package/dist/components/homepage/layout/use-el-size.d.ts +5 -0
- package/dist/components/homepage/layout/use-el-size.js +40 -0
- package/dist/components/homepage/layout/use-mobile-layout.d.ts +1 -0
- package/dist/components/homepage/layout/use-mobile-layout.js +6 -0
- package/dist/components/icons/blank.d.ts +3 -0
- package/dist/components/icons/blank.js +4 -0
- package/dist/components/icons/brain.d.ts +2 -0
- package/dist/components/icons/brain.js +4 -0
- package/dist/components/icons/clone.d.ts +2 -0
- package/dist/components/icons/clone.js +2 -0
- package/dist/components/icons/code-hike.d.ts +3 -0
- package/dist/components/icons/code-hike.js +4 -0
- package/dist/components/icons/cubes.d.ts +3 -0
- package/dist/components/icons/cubes.js +4 -0
- package/dist/components/icons/editor.d.ts +3 -0
- package/dist/components/icons/editor.js +4 -0
- package/dist/components/icons/electron.d.ts +4 -0
- package/dist/components/icons/electron.js +4 -0
- package/dist/components/icons/js.d.ts +3 -0
- package/dist/components/icons/js.js +4 -0
- package/dist/components/icons/music.d.ts +2 -0
- package/dist/components/icons/music.js +4 -0
- package/dist/components/icons/next.d.ts +4 -0
- package/dist/components/icons/next.js +4 -0
- package/dist/components/icons/overlay.d.ts +3 -0
- package/dist/components/icons/overlay.js +4 -0
- package/dist/components/icons/prompt-to-video.d.ts +2 -0
- package/dist/components/icons/prompt-to-video.js +4 -0
- package/dist/components/icons/recorder.d.ts +3 -0
- package/dist/components/icons/recorder.js +4 -0
- package/dist/components/icons/remix.d.ts +3 -0
- package/dist/components/icons/remix.js +4 -0
- package/dist/components/icons/render-server.d.ts +3 -0
- package/dist/components/icons/render-server.js +4 -0
- package/dist/components/icons/skia.d.ts +3 -0
- package/dist/components/icons/skia.js +4 -0
- package/dist/components/icons/stargazer.d.ts +3 -0
- package/dist/components/icons/stargazer.js +4 -0
- package/dist/components/icons/still.d.ts +3 -0
- package/dist/components/icons/still.js +4 -0
- package/dist/components/icons/tailwind.d.ts +3 -0
- package/dist/components/icons/tailwind.js +4 -0
- package/dist/components/icons/tiktok.d.ts +3 -0
- package/dist/components/icons/tiktok.js +4 -0
- package/dist/components/icons/timeline.d.ts +3 -0
- package/dist/components/icons/timeline.js +4 -0
- package/dist/components/icons/ts.d.ts +3 -0
- package/dist/components/icons/ts.js +4 -0
- package/dist/components/icons/undo.d.ts +3 -0
- package/dist/components/icons/undo.js +2 -0
- package/dist/components/icons/vercel.d.ts +4 -0
- package/dist/components/icons/vercel.js +4 -0
- package/dist/components/icons/waveform.d.ts +3 -0
- package/dist/components/icons/waveform.js +4 -0
- package/dist/components/prompts/CardLikeButton.d.ts +5 -0
- package/dist/components/prompts/CardLikeButton.js +49 -0
- package/dist/components/prompts/ClipboardIcon.d.ts +5 -0
- package/dist/components/prompts/ClipboardIcon.js +4 -0
- package/dist/components/prompts/CopyPromptButton.d.ts +4 -0
- package/dist/components/prompts/CopyPromptButton.js +13 -0
- package/dist/components/prompts/LikeButton.d.ts +5 -0
- package/dist/components/prompts/LikeButton.js +49 -0
- package/dist/components/prompts/MuxPlayer.d.ts +8 -0
- package/dist/components/prompts/MuxPlayer.js +21 -0
- package/dist/components/prompts/NewBackButton.d.ts +5 -0
- package/dist/components/prompts/NewBackButton.js +8 -0
- package/dist/components/prompts/Page.d.ts +8 -0
- package/dist/components/prompts/Page.js +7 -0
- package/dist/components/prompts/PromptsGallery.d.ts +7 -0
- package/dist/components/prompts/PromptsGallery.js +60 -0
- package/dist/components/prompts/PromptsShow.d.ts +5 -0
- package/dist/components/prompts/PromptsShow.js +17 -0
- package/dist/components/prompts/PromptsSubmit.d.ts +2 -0
- package/dist/components/prompts/PromptsSubmit.js +173 -0
- package/dist/components/prompts/config.d.ts +1 -0
- package/dist/components/prompts/config.js +1 -0
- package/dist/components/prompts/prompt-helpers.d.ts +8 -0
- package/dist/components/prompts/prompt-helpers.js +76 -0
- package/dist/components/prompts/prompt-types.d.ts +14 -0
- package/dist/components/prompts/prompt-types.js +0 -0
- package/dist/components/prompts/use-heart-animation.d.ts +5 -0
- package/dist/components/prompts/use-heart-animation.js +29 -0
- package/dist/components/team/TeamCards.d.ts +6 -0
- package/dist/components/team/TeamCards.js +19 -0
- package/dist/components/team/TitleTeamCards.d.ts +2 -0
- package/dist/components/team/TitleTeamCards.js +6 -0
- package/dist/components/team/TrustSection.d.ts +2 -0
- package/dist/components/team/TrustSection.js +59 -0
- package/dist/components/team.d.ts +3 -0
- package/dist/components/team.js +15 -0
- package/dist/components/template-modal-content.d.ts +5 -0
- package/dist/components/template-modal-content.js +73 -0
- package/dist/components/templates.d.ts +2 -0
- package/dist/components/templates.js +27 -0
- package/dist/design.js +1180 -766
- package/dist/experts.js +655 -554
- package/dist/helpers/mobile-layout.d.ts +1 -0
- package/dist/helpers/mobile-layout.js +6 -0
- package/dist/helpers/use-el-size.d.ts +5 -0
- package/dist/helpers/use-el-size.js +40 -0
- package/dist/homepage/Pricing.js +1174 -760
- package/dist/main.d.ts +1 -0
- package/dist/main.js +6 -0
- package/dist/prompts/PromptsGallery.js +1176 -762
- package/dist/prompts/PromptsShow.js +1180 -766
- package/dist/prompts/PromptsSubmit.js +1182 -768
- package/dist/prompts-show.d.ts +1 -0
- package/dist/prompts-show.js +20 -0
- package/dist/prompts-submit.d.ts +1 -0
- package/dist/prompts-submit.js +6 -0
- package/dist/prompts.d.ts +1 -0
- package/dist/prompts.js +6 -0
- package/dist/team.d.ts +1 -0
- package/dist/team.js +1172 -758
- package/dist/template-modal-content.js +1179 -765
- package/dist/templates.js +1172 -758
- package/package.json +13 -13
|
@@ -36,7 +36,7 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
|
|
|
36
36
|
import * as React23 from "react";
|
|
37
37
|
import * as React3 from "react";
|
|
38
38
|
import { Fragment as Fragment2, jsx as jsx43 } from "react/jsx-runtime";
|
|
39
|
-
import React52, { useCallback as
|
|
39
|
+
import React52, { useCallback as useCallback27, useRef as useRef210, useState as useState22 } from "react";
|
|
40
40
|
|
|
41
41
|
// ../../node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
|
|
42
42
|
function r(e) {
|
|
@@ -4173,6 +4173,7 @@ import { useContext as useContext8, useMemo as useMemo7 } from "react";
|
|
|
4173
4173
|
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
4174
4174
|
import {
|
|
4175
4175
|
forwardRef as forwardRef3,
|
|
4176
|
+
useCallback as useCallback6,
|
|
4176
4177
|
useContext as useContext17,
|
|
4177
4178
|
useEffect as useEffect3,
|
|
4178
4179
|
useMemo as useMemo14,
|
|
@@ -4211,14 +4212,14 @@ import {
|
|
|
4211
4212
|
useRef as useRef9,
|
|
4212
4213
|
useState as useState6
|
|
4213
4214
|
} from "react";
|
|
4214
|
-
import React15, { useCallback as
|
|
4215
|
+
import React15, { useCallback as useCallback7, useImperativeHandle, useMemo as useMemo16, useRef as useRef8 } from "react";
|
|
4215
4216
|
import { useEffect as useEffect4, useMemo as useMemo15, useRef as useRef7 } from "react";
|
|
4216
4217
|
import { jsx as jsx13 } from "react/jsx-runtime";
|
|
4217
4218
|
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
4218
4219
|
import { useContext as useContext18, useLayoutEffect as useLayoutEffect4, useState as useState8 } from "react";
|
|
4219
4220
|
import {
|
|
4220
4221
|
createContext as createContext17,
|
|
4221
|
-
useCallback as
|
|
4222
|
+
useCallback as useCallback8,
|
|
4222
4223
|
useImperativeHandle as useImperativeHandle3,
|
|
4223
4224
|
useLayoutEffect as useLayoutEffect3,
|
|
4224
4225
|
useMemo as useMemo17,
|
|
@@ -4226,7 +4227,7 @@ import {
|
|
|
4226
4227
|
useState as useState7
|
|
4227
4228
|
} from "react";
|
|
4228
4229
|
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
4229
|
-
import { forwardRef as forwardRef7, useCallback as
|
|
4230
|
+
import { forwardRef as forwardRef7, useCallback as useCallback14, useContext as useContext30 } from "react";
|
|
4230
4231
|
import React16, { createContext as createContext18, useMemo as useMemo18 } from "react";
|
|
4231
4232
|
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
4232
4233
|
import { useContext as useContext19 } from "react";
|
|
@@ -4234,7 +4235,7 @@ import { createContext as createContext19, useEffect as useEffect6, useState as
|
|
|
4234
4235
|
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
4235
4236
|
import { createContext as createContext20, useMemo as useMemo19, useReducer } from "react";
|
|
4236
4237
|
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
4237
|
-
import { useCallback as
|
|
4238
|
+
import { useCallback as useCallback13 } from "react";
|
|
4238
4239
|
import React22, {
|
|
4239
4240
|
forwardRef as forwardRef5,
|
|
4240
4241
|
useContext as useContext28,
|
|
@@ -4248,7 +4249,7 @@ import { useContext as useContext21, useLayoutEffect as useLayoutEffect5, useRef
|
|
|
4248
4249
|
import React19, {
|
|
4249
4250
|
createContext as createContext21,
|
|
4250
4251
|
createRef as createRef2,
|
|
4251
|
-
useCallback as
|
|
4252
|
+
useCallback as useCallback9,
|
|
4252
4253
|
useContext as useContext20,
|
|
4253
4254
|
useEffect as useEffect7,
|
|
4254
4255
|
useMemo as useMemo21,
|
|
@@ -4261,16 +4262,16 @@ import { useRef as useRef13 } from "react";
|
|
|
4261
4262
|
import { useContext as useContext23, useEffect as useEffect8, useMemo as useMemo22, useState as useState11 } from "react";
|
|
4262
4263
|
import { useContext as useContext22 } from "react";
|
|
4263
4264
|
import {
|
|
4264
|
-
useCallback as
|
|
4265
|
+
useCallback as useCallback12,
|
|
4265
4266
|
useContext as useContext26,
|
|
4266
4267
|
useEffect as useEffect12,
|
|
4267
4268
|
useLayoutEffect as useLayoutEffect7,
|
|
4268
4269
|
useRef as useRef18
|
|
4269
4270
|
} from "react";
|
|
4270
|
-
import { useCallback as
|
|
4271
|
+
import { useCallback as useCallback11, useMemo as useMemo25, useRef as useRef16 } from "react";
|
|
4271
4272
|
import { useContext as useContext25, useMemo as useMemo24 } from "react";
|
|
4272
4273
|
import React20, {
|
|
4273
|
-
useCallback as
|
|
4274
|
+
useCallback as useCallback10,
|
|
4274
4275
|
useContext as useContext24,
|
|
4275
4276
|
useEffect as useEffect9,
|
|
4276
4277
|
useLayoutEffect as useLayoutEffect6,
|
|
@@ -4298,7 +4299,7 @@ import { jsx as jsx22 } from "react/jsx-runtime";
|
|
|
4298
4299
|
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
4299
4300
|
import {
|
|
4300
4301
|
forwardRef as forwardRef8,
|
|
4301
|
-
useCallback as
|
|
4302
|
+
useCallback as useCallback15,
|
|
4302
4303
|
useEffect as useEffect16,
|
|
4303
4304
|
useImperativeHandle as useImperativeHandle6,
|
|
4304
4305
|
useMemo as useMemo29,
|
|
@@ -4309,7 +4310,7 @@ import { jsx as jsx24 } from "react/jsx-runtime";
|
|
|
4309
4310
|
import {
|
|
4310
4311
|
createContext as createContext23,
|
|
4311
4312
|
forwardRef as forwardRef9,
|
|
4312
|
-
useCallback as
|
|
4313
|
+
useCallback as useCallback16,
|
|
4313
4314
|
useContext as useContext31,
|
|
4314
4315
|
useLayoutEffect as useLayoutEffect9,
|
|
4315
4316
|
useMemo as useMemo30,
|
|
@@ -4318,7 +4319,7 @@ import {
|
|
|
4318
4319
|
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
4319
4320
|
import {
|
|
4320
4321
|
forwardRef as forwardRef10,
|
|
4321
|
-
useCallback as
|
|
4322
|
+
useCallback as useCallback17,
|
|
4322
4323
|
useContext as useContext32,
|
|
4323
4324
|
useEffect as useEffect17,
|
|
4324
4325
|
useImperativeHandle as useImperativeHandle7,
|
|
@@ -4327,16 +4328,16 @@ import {
|
|
|
4327
4328
|
useState as useState16
|
|
4328
4329
|
} from "react";
|
|
4329
4330
|
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
4330
|
-
import { forwardRef as forwardRef11, useCallback as
|
|
4331
|
+
import { forwardRef as forwardRef11, useCallback as useCallback18, useState as useState17 } from "react";
|
|
4331
4332
|
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
4332
|
-
import { useCallback as
|
|
4333
|
+
import { useCallback as useCallback19, useContext as useContext33, useLayoutEffect as useLayoutEffect10, useRef as useRef24 } from "react";
|
|
4333
4334
|
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
4334
|
-
import React29, { forwardRef as forwardRef12, useCallback as
|
|
4335
|
+
import React29, { forwardRef as forwardRef12, useCallback as useCallback20, useRef as useRef25 } from "react";
|
|
4335
4336
|
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
4336
4337
|
import { createRef as createRef3 } from "react";
|
|
4337
4338
|
import React30 from "react";
|
|
4338
4339
|
import {
|
|
4339
|
-
useCallback as
|
|
4340
|
+
useCallback as useCallback21,
|
|
4340
4341
|
useImperativeHandle as useImperativeHandle8,
|
|
4341
4342
|
useMemo as useMemo32,
|
|
4342
4343
|
useRef as useRef26,
|
|
@@ -4351,9 +4352,9 @@ import { jsx as jsx32 } from "react/jsx-runtime";
|
|
|
4351
4352
|
import React33 from "react";
|
|
4352
4353
|
import React34, { createContext as createContext25 } from "react";
|
|
4353
4354
|
import React35, { useContext as useContext35 } from "react";
|
|
4354
|
-
import { useCallback as
|
|
4355
|
+
import { useCallback as useCallback24 } from "react";
|
|
4355
4356
|
import {
|
|
4356
|
-
useCallback as
|
|
4357
|
+
useCallback as useCallback22,
|
|
4357
4358
|
useContext as useContext36,
|
|
4358
4359
|
useEffect as useEffect18,
|
|
4359
4360
|
useLayoutEffect as useLayoutEffect11,
|
|
@@ -4363,7 +4364,7 @@ import {
|
|
|
4363
4364
|
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
4364
4365
|
import React37, {
|
|
4365
4366
|
forwardRef as forwardRef13,
|
|
4366
|
-
useCallback as
|
|
4367
|
+
useCallback as useCallback23,
|
|
4367
4368
|
useContext as useContext37,
|
|
4368
4369
|
useEffect as useEffect20,
|
|
4369
4370
|
useImperativeHandle as useImperativeHandle9,
|
|
@@ -4384,7 +4385,7 @@ import {
|
|
|
4384
4385
|
import React40 from "react";
|
|
4385
4386
|
import { jsx as jsx37 } from "react/jsx-runtime";
|
|
4386
4387
|
import React42 from "react";
|
|
4387
|
-
import { forwardRef as forwardRef16, useCallback as
|
|
4388
|
+
import { forwardRef as forwardRef16, useCallback as useCallback25, useContext as useContext39 } from "react";
|
|
4388
4389
|
import {
|
|
4389
4390
|
forwardRef as forwardRef15,
|
|
4390
4391
|
useContext as useContext38,
|
|
@@ -5564,7 +5565,7 @@ var getComponentsToAddStacksTo = () => componentsToAddStacksTo;
|
|
|
5564
5565
|
var addSequenceStackTraces = (component) => {
|
|
5565
5566
|
componentsToAddStacksTo.push(component);
|
|
5566
5567
|
};
|
|
5567
|
-
var VERSION = "4.0.
|
|
5568
|
+
var VERSION = "4.0.477";
|
|
5568
5569
|
var checkMultipleRemotionVersions = () => {
|
|
5569
5570
|
if (typeof globalThis === "undefined") {
|
|
5570
5571
|
return;
|
|
@@ -5998,6 +5999,18 @@ var hiddenField = {
|
|
|
5998
5999
|
default: false,
|
|
5999
6000
|
description: "Hidden"
|
|
6000
6001
|
};
|
|
6002
|
+
var showInTimelineField = {
|
|
6003
|
+
type: "hidden"
|
|
6004
|
+
};
|
|
6005
|
+
var sequenceNameField = {
|
|
6006
|
+
type: "hidden"
|
|
6007
|
+
};
|
|
6008
|
+
var extendSchemaWithSequenceName = (schema) => {
|
|
6009
|
+
return {
|
|
6010
|
+
name: sequenceNameField,
|
|
6011
|
+
...schema
|
|
6012
|
+
};
|
|
6013
|
+
};
|
|
6001
6014
|
var durationInFramesField = {
|
|
6002
6015
|
type: "number",
|
|
6003
6016
|
default: undefined,
|
|
@@ -6011,9 +6024,17 @@ var fromField = {
|
|
|
6011
6024
|
step: 1,
|
|
6012
6025
|
hiddenFromList: true
|
|
6013
6026
|
};
|
|
6014
|
-
var
|
|
6027
|
+
var freezeField = {
|
|
6028
|
+
type: "number",
|
|
6029
|
+
default: null,
|
|
6030
|
+
step: 1,
|
|
6031
|
+
hiddenFromList: true
|
|
6032
|
+
};
|
|
6033
|
+
var sequenceSchema = extendSchemaWithSequenceName({
|
|
6015
6034
|
hidden: hiddenField,
|
|
6035
|
+
showInTimeline: showInTimelineField,
|
|
6016
6036
|
from: fromField,
|
|
6037
|
+
freeze: freezeField,
|
|
6017
6038
|
durationInFrames: durationInFramesField,
|
|
6018
6039
|
layout: {
|
|
6019
6040
|
type: "enum",
|
|
@@ -6024,12 +6045,14 @@ var sequenceSchema = {
|
|
|
6024
6045
|
none: {}
|
|
6025
6046
|
}
|
|
6026
6047
|
}
|
|
6027
|
-
};
|
|
6028
|
-
var sequenceSchemaWithoutFrom = {
|
|
6048
|
+
});
|
|
6049
|
+
var sequenceSchemaWithoutFrom = extendSchemaWithSequenceName({
|
|
6029
6050
|
hidden: hiddenField,
|
|
6051
|
+
showInTimeline: showInTimelineField,
|
|
6052
|
+
freeze: freezeField,
|
|
6030
6053
|
durationInFrames: durationInFramesField,
|
|
6031
6054
|
layout: sequenceSchema.layout
|
|
6032
|
-
};
|
|
6055
|
+
});
|
|
6033
6056
|
var sequenceSchemaDefaultLayoutNone = {
|
|
6034
6057
|
...sequenceSchema,
|
|
6035
6058
|
layout: {
|
|
@@ -6373,81 +6396,6 @@ function bezier(mX1, mY1, mX2, mY2) {
|
|
|
6373
6396
|
return calcBezier(getTForX(clampedX), mY1, mY2);
|
|
6374
6397
|
};
|
|
6375
6398
|
}
|
|
6376
|
-
var clampUnit = (t) => Math.min(1, Math.max(0, t));
|
|
6377
|
-
|
|
6378
|
-
class Easing {
|
|
6379
|
-
static step0(n) {
|
|
6380
|
-
return n > 0 ? 1 : 0;
|
|
6381
|
-
}
|
|
6382
|
-
static step1(n) {
|
|
6383
|
-
return n >= 1 ? 1 : 0;
|
|
6384
|
-
}
|
|
6385
|
-
static linear(t) {
|
|
6386
|
-
return t;
|
|
6387
|
-
}
|
|
6388
|
-
static ease(t) {
|
|
6389
|
-
return Easing.bezier(0.42, 0, 1, 1)(t);
|
|
6390
|
-
}
|
|
6391
|
-
static quad(t) {
|
|
6392
|
-
return t * t;
|
|
6393
|
-
}
|
|
6394
|
-
static cubic(t) {
|
|
6395
|
-
return t * t * t;
|
|
6396
|
-
}
|
|
6397
|
-
static poly(n) {
|
|
6398
|
-
return (t) => t ** n;
|
|
6399
|
-
}
|
|
6400
|
-
static sin(t) {
|
|
6401
|
-
return 1 - Math.cos(t * Math.PI / 2);
|
|
6402
|
-
}
|
|
6403
|
-
static circle(t) {
|
|
6404
|
-
const u = clampUnit(t);
|
|
6405
|
-
return 1 - Math.sqrt(1 - u * u);
|
|
6406
|
-
}
|
|
6407
|
-
static exp(t) {
|
|
6408
|
-
return 2 ** (10 * (t - 1));
|
|
6409
|
-
}
|
|
6410
|
-
static elastic(bounciness = 1) {
|
|
6411
|
-
const p = bounciness * Math.PI;
|
|
6412
|
-
return (t) => 1 - Math.cos(t * Math.PI / 2) ** 3 * Math.cos(t * p);
|
|
6413
|
-
}
|
|
6414
|
-
static back(s = 1.70158) {
|
|
6415
|
-
return (t) => t * t * ((s + 1) * t - s);
|
|
6416
|
-
}
|
|
6417
|
-
static bounce(t) {
|
|
6418
|
-
const u = clampUnit(t);
|
|
6419
|
-
if (u < 1 / 2.75) {
|
|
6420
|
-
return 7.5625 * u * u;
|
|
6421
|
-
}
|
|
6422
|
-
if (u < 2 / 2.75) {
|
|
6423
|
-
const t2_ = u - 1.5 / 2.75;
|
|
6424
|
-
return 7.5625 * t2_ * t2_ + 0.75;
|
|
6425
|
-
}
|
|
6426
|
-
if (u < 2.5 / 2.75) {
|
|
6427
|
-
const t2_ = u - 2.25 / 2.75;
|
|
6428
|
-
return 7.5625 * t2_ * t2_ + 0.9375;
|
|
6429
|
-
}
|
|
6430
|
-
const t2 = u - 2.625 / 2.75;
|
|
6431
|
-
return 7.5625 * t2 * t2 + 0.984375;
|
|
6432
|
-
}
|
|
6433
|
-
static bezier(x1, y1, x2, y2) {
|
|
6434
|
-
return bezier(x1, y1, x2, y2);
|
|
6435
|
-
}
|
|
6436
|
-
static in(easing) {
|
|
6437
|
-
return easing;
|
|
6438
|
-
}
|
|
6439
|
-
static out(easing) {
|
|
6440
|
-
return (t) => 1 - easing(1 - t);
|
|
6441
|
-
}
|
|
6442
|
-
static inOut(easing) {
|
|
6443
|
-
return (t) => {
|
|
6444
|
-
if (t < 0.5) {
|
|
6445
|
-
return easing(t * 2) / 2;
|
|
6446
|
-
}
|
|
6447
|
-
return 1 - easing((1 - t) * 2) / 2;
|
|
6448
|
-
};
|
|
6449
|
-
}
|
|
6450
|
-
}
|
|
6451
6399
|
var normalizeNumber = (value) => {
|
|
6452
6400
|
return Math.round(value * 1e6) / 1e6;
|
|
6453
6401
|
};
|
|
@@ -6950,128 +6898,478 @@ function interpolate(input, inputRange, outputRange, options) {
|
|
|
6950
6898
|
checkInfiniteRange("outputRange", outputRange);
|
|
6951
6899
|
return interpolateNumber({ input, inputRange, outputRange, options });
|
|
6952
6900
|
}
|
|
6953
|
-
var
|
|
6954
|
-
|
|
6955
|
-
|
|
6956
|
-
|
|
6957
|
-
}
|
|
6958
|
-
|
|
6959
|
-
|
|
6960
|
-
return new RegExp(name + "\\(\\s*(" + MODERN_VALUE + ")\\s+(" + MODERN_VALUE + ")\\s+(" + MODERN_VALUE + ")(?:\\s*\\/\\s*(" + MODERN_VALUE + "))?\\s*\\)");
|
|
6961
|
-
}
|
|
6962
|
-
function getMatchers() {
|
|
6963
|
-
const cachedMatchers = {
|
|
6964
|
-
rgb: undefined,
|
|
6965
|
-
rgba: undefined,
|
|
6966
|
-
hsl: undefined,
|
|
6967
|
-
hsla: undefined,
|
|
6968
|
-
hex3: undefined,
|
|
6969
|
-
hex4: undefined,
|
|
6970
|
-
hex5: undefined,
|
|
6971
|
-
hex6: undefined,
|
|
6972
|
-
hex8: undefined,
|
|
6973
|
-
oklch: undefined,
|
|
6974
|
-
oklab: undefined,
|
|
6975
|
-
lab: undefined,
|
|
6976
|
-
lch: undefined,
|
|
6977
|
-
hwb: undefined
|
|
6978
|
-
};
|
|
6979
|
-
if (cachedMatchers.rgb === undefined) {
|
|
6980
|
-
cachedMatchers.rgb = new RegExp("rgb" + call(NUMBER, NUMBER, NUMBER));
|
|
6981
|
-
cachedMatchers.rgba = new RegExp("rgba" + call(NUMBER, NUMBER, NUMBER, NUMBER));
|
|
6982
|
-
cachedMatchers.hsl = new RegExp("hsl" + call(NUMBER, PERCENTAGE, PERCENTAGE));
|
|
6983
|
-
cachedMatchers.hsla = new RegExp("hsla" + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER));
|
|
6984
|
-
cachedMatchers.hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;
|
|
6985
|
-
cachedMatchers.hex4 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;
|
|
6986
|
-
cachedMatchers.hex6 = /^#([0-9a-fA-F]{6})$/;
|
|
6987
|
-
cachedMatchers.hex8 = /^#([0-9a-fA-F]{8})$/;
|
|
6988
|
-
cachedMatchers.oklch = modernColorCall("oklch");
|
|
6989
|
-
cachedMatchers.oklab = modernColorCall("oklab");
|
|
6990
|
-
cachedMatchers.lab = modernColorCall("lab");
|
|
6991
|
-
cachedMatchers.lch = modernColorCall("lch");
|
|
6992
|
-
cachedMatchers.hwb = modernColorCall("hwb");
|
|
6993
|
-
}
|
|
6994
|
-
return cachedMatchers;
|
|
6995
|
-
}
|
|
6996
|
-
function hue2rgb(p, q, t) {
|
|
6997
|
-
if (t < 0) {
|
|
6998
|
-
t += 1;
|
|
6999
|
-
}
|
|
7000
|
-
if (t > 1) {
|
|
7001
|
-
t -= 1;
|
|
6901
|
+
var validateFrame = ({
|
|
6902
|
+
allowFloats,
|
|
6903
|
+
durationInFrames,
|
|
6904
|
+
frame
|
|
6905
|
+
}) => {
|
|
6906
|
+
if (typeof frame === "undefined") {
|
|
6907
|
+
throw new TypeError(`Argument missing for parameter "frame"`);
|
|
7002
6908
|
}
|
|
7003
|
-
if (
|
|
7004
|
-
|
|
6909
|
+
if (typeof frame !== "number") {
|
|
6910
|
+
throw new TypeError(`Argument passed for "frame" is not a number: ${frame}`);
|
|
7005
6911
|
}
|
|
7006
|
-
if (
|
|
7007
|
-
|
|
6912
|
+
if (!Number.isFinite(frame)) {
|
|
6913
|
+
throw new RangeError(`Frame ${frame} is not finite`);
|
|
7008
6914
|
}
|
|
7009
|
-
if (
|
|
7010
|
-
|
|
6915
|
+
if (frame % 1 !== 0 && !allowFloats) {
|
|
6916
|
+
throw new RangeError(`Argument for frame must be an integer, but got ${frame}`);
|
|
7011
6917
|
}
|
|
7012
|
-
|
|
7013
|
-
}
|
|
7014
|
-
function hslToRgb(h, s, l) {
|
|
7015
|
-
const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
|
|
7016
|
-
const p = 2 * l - q;
|
|
7017
|
-
const r2 = hue2rgb(p, q, h + 1 / 3);
|
|
7018
|
-
const g = hue2rgb(p, q, h);
|
|
7019
|
-
const b2 = hue2rgb(p, q, h - 1 / 3);
|
|
7020
|
-
return Math.round(r2 * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b2 * 255) << 8;
|
|
7021
|
-
}
|
|
7022
|
-
function parse255(str) {
|
|
7023
|
-
const int = Number.parseInt(str, 10);
|
|
7024
|
-
if (int < 0) {
|
|
7025
|
-
return 0;
|
|
6918
|
+
if (frame < 0 && frame < -durationInFrames) {
|
|
6919
|
+
throw new RangeError(`Cannot use frame ${frame}: Duration of composition is ${durationInFrames}, therefore the lowest frame that can be rendered is ${-durationInFrames}`);
|
|
7026
6920
|
}
|
|
7027
|
-
if (
|
|
7028
|
-
|
|
6921
|
+
if (frame > durationInFrames - 1) {
|
|
6922
|
+
throw new RangeError(`Cannot use frame ${frame}: Duration of composition is ${durationInFrames}, therefore the highest frame that can be rendered is ${durationInFrames - 1}`);
|
|
7029
6923
|
}
|
|
7030
|
-
|
|
7031
|
-
|
|
7032
|
-
|
|
7033
|
-
|
|
7034
|
-
return (int % 360 + 360) % 360 / 360;
|
|
7035
|
-
}
|
|
7036
|
-
function parse1(str) {
|
|
7037
|
-
const num = Number.parseFloat(str);
|
|
7038
|
-
if (num < 0) {
|
|
7039
|
-
return 0;
|
|
6924
|
+
};
|
|
6925
|
+
var validateSpringDuration = (dur) => {
|
|
6926
|
+
if (typeof dur === "undefined") {
|
|
6927
|
+
return;
|
|
7040
6928
|
}
|
|
7041
|
-
if (
|
|
7042
|
-
|
|
6929
|
+
if (typeof dur !== "number") {
|
|
6930
|
+
throw new TypeError(`A "duration" of a spring must be a "number" but is "${typeof dur}"`);
|
|
7043
6931
|
}
|
|
7044
|
-
|
|
7045
|
-
|
|
7046
|
-
function parsePercentage(str) {
|
|
7047
|
-
const int = Number.parseFloat(str);
|
|
7048
|
-
if (int < 0) {
|
|
7049
|
-
return 0;
|
|
6932
|
+
if (Number.isNaN(dur)) {
|
|
6933
|
+
throw new TypeError('A "duration" of a spring is NaN, which it must not be');
|
|
7050
6934
|
}
|
|
7051
|
-
if (
|
|
7052
|
-
|
|
6935
|
+
if (!Number.isFinite(dur)) {
|
|
6936
|
+
throw new TypeError('A "duration" of a spring must be finite, but is ' + dur);
|
|
7053
6937
|
}
|
|
7054
|
-
|
|
7055
|
-
|
|
7056
|
-
function parseModernComponent(str, percentScale) {
|
|
7057
|
-
if (str === "none")
|
|
7058
|
-
return 0;
|
|
7059
|
-
if (str.endsWith("%")) {
|
|
7060
|
-
return Number.parseFloat(str) / 100 * percentScale;
|
|
6938
|
+
if (dur <= 0) {
|
|
6939
|
+
throw new TypeError('A "duration" of a spring must be positive, but is ' + dur);
|
|
7061
6940
|
}
|
|
7062
|
-
|
|
7063
|
-
|
|
7064
|
-
|
|
7065
|
-
|
|
7066
|
-
|
|
7067
|
-
|
|
7068
|
-
|
|
6941
|
+
};
|
|
6942
|
+
var defaultSpringConfig = {
|
|
6943
|
+
damping: 10,
|
|
6944
|
+
mass: 1,
|
|
6945
|
+
stiffness: 100,
|
|
6946
|
+
overshootClamping: false
|
|
6947
|
+
};
|
|
6948
|
+
var advanceCache = {};
|
|
6949
|
+
function advance({
|
|
6950
|
+
animation,
|
|
6951
|
+
now,
|
|
6952
|
+
config
|
|
6953
|
+
}) {
|
|
6954
|
+
const { toValue: toValue2, lastTimestamp, current, velocity } = animation;
|
|
6955
|
+
const deltaTime = Math.min(now - lastTimestamp, 64);
|
|
6956
|
+
if (config.damping <= 0) {
|
|
6957
|
+
throw new Error("Spring damping must be greater than 0, otherwise the spring() animation will never end, causing an infinite loop.");
|
|
7069
6958
|
}
|
|
7070
|
-
|
|
7071
|
-
|
|
7072
|
-
|
|
7073
|
-
|
|
7074
|
-
|
|
6959
|
+
const c2 = config.damping;
|
|
6960
|
+
const m = config.mass;
|
|
6961
|
+
const k = config.stiffness;
|
|
6962
|
+
const cacheKey = [
|
|
6963
|
+
toValue2,
|
|
6964
|
+
lastTimestamp,
|
|
6965
|
+
current,
|
|
6966
|
+
velocity,
|
|
6967
|
+
c2,
|
|
6968
|
+
m,
|
|
6969
|
+
k,
|
|
6970
|
+
now
|
|
6971
|
+
].join("-");
|
|
6972
|
+
if (advanceCache[cacheKey]) {
|
|
6973
|
+
return advanceCache[cacheKey];
|
|
6974
|
+
}
|
|
6975
|
+
const v0 = -velocity;
|
|
6976
|
+
const x0 = toValue2 - current;
|
|
6977
|
+
const zeta = c2 / (2 * Math.sqrt(k * m));
|
|
6978
|
+
const omega0 = Math.sqrt(k / m);
|
|
6979
|
+
const omega1 = omega0 * Math.sqrt(1 - zeta ** 2);
|
|
6980
|
+
const t = deltaTime / 1000;
|
|
6981
|
+
const sin1 = Math.sin(omega1 * t);
|
|
6982
|
+
const cos1 = Math.cos(omega1 * t);
|
|
6983
|
+
const underDampedEnvelope = Math.exp(-zeta * omega0 * t);
|
|
6984
|
+
const underDampedFrag1 = underDampedEnvelope * (sin1 * ((v0 + zeta * omega0 * x0) / omega1) + x0 * cos1);
|
|
6985
|
+
const underDampedPosition = toValue2 - underDampedFrag1;
|
|
6986
|
+
const underDampedVelocity = zeta * omega0 * underDampedFrag1 - underDampedEnvelope * (cos1 * (v0 + zeta * omega0 * x0) - omega1 * x0 * sin1);
|
|
6987
|
+
const criticallyDampedEnvelope = Math.exp(-omega0 * t);
|
|
6988
|
+
const criticallyDampedPosition = toValue2 - criticallyDampedEnvelope * (x0 + (v0 + omega0 * x0) * t);
|
|
6989
|
+
const criticallyDampedVelocity = criticallyDampedEnvelope * (v0 * (t * omega0 - 1) + t * x0 * omega0 * omega0);
|
|
6990
|
+
const animationNode = {
|
|
6991
|
+
toValue: toValue2,
|
|
6992
|
+
prevPosition: current,
|
|
6993
|
+
lastTimestamp: now,
|
|
6994
|
+
current: zeta < 1 ? underDampedPosition : criticallyDampedPosition,
|
|
6995
|
+
velocity: zeta < 1 ? underDampedVelocity : criticallyDampedVelocity
|
|
6996
|
+
};
|
|
6997
|
+
advanceCache[cacheKey] = animationNode;
|
|
6998
|
+
return animationNode;
|
|
6999
|
+
}
|
|
7000
|
+
var calculationCache = {};
|
|
7001
|
+
function springCalculation({
|
|
7002
|
+
frame,
|
|
7003
|
+
fps,
|
|
7004
|
+
config = {}
|
|
7005
|
+
}) {
|
|
7006
|
+
const from = 0;
|
|
7007
|
+
const to = 1;
|
|
7008
|
+
const cacheKey = [
|
|
7009
|
+
frame,
|
|
7010
|
+
fps,
|
|
7011
|
+
config.damping,
|
|
7012
|
+
config.mass,
|
|
7013
|
+
config.overshootClamping,
|
|
7014
|
+
config.stiffness
|
|
7015
|
+
].join("-");
|
|
7016
|
+
if (calculationCache[cacheKey]) {
|
|
7017
|
+
return calculationCache[cacheKey];
|
|
7018
|
+
}
|
|
7019
|
+
let animation = {
|
|
7020
|
+
lastTimestamp: 0,
|
|
7021
|
+
current: from,
|
|
7022
|
+
toValue: to,
|
|
7023
|
+
velocity: 0,
|
|
7024
|
+
prevPosition: 0
|
|
7025
|
+
};
|
|
7026
|
+
const frameClamped = Math.max(0, frame);
|
|
7027
|
+
const unevenRest = frameClamped % 1;
|
|
7028
|
+
for (let f = 0;f <= Math.floor(frameClamped); f++) {
|
|
7029
|
+
if (f === Math.floor(frameClamped)) {
|
|
7030
|
+
f += unevenRest;
|
|
7031
|
+
}
|
|
7032
|
+
const time = f / fps * 1000;
|
|
7033
|
+
animation = advance({
|
|
7034
|
+
animation,
|
|
7035
|
+
now: time,
|
|
7036
|
+
config: {
|
|
7037
|
+
...defaultSpringConfig,
|
|
7038
|
+
...config
|
|
7039
|
+
}
|
|
7040
|
+
});
|
|
7041
|
+
}
|
|
7042
|
+
calculationCache[cacheKey] = animation;
|
|
7043
|
+
return animation;
|
|
7044
|
+
}
|
|
7045
|
+
var cache = new Map;
|
|
7046
|
+
function measureSpring({
|
|
7047
|
+
fps,
|
|
7048
|
+
config = {},
|
|
7049
|
+
threshold = 0.005
|
|
7050
|
+
}) {
|
|
7051
|
+
if (typeof threshold !== "number") {
|
|
7052
|
+
throw new TypeError(`threshold must be a number, got ${threshold} of type ${typeof threshold}`);
|
|
7053
|
+
}
|
|
7054
|
+
if (threshold === 0) {
|
|
7055
|
+
return Infinity;
|
|
7056
|
+
}
|
|
7057
|
+
if (threshold === 1) {
|
|
7058
|
+
return 0;
|
|
7059
|
+
}
|
|
7060
|
+
if (isNaN(threshold)) {
|
|
7061
|
+
throw new TypeError("Threshold is NaN");
|
|
7062
|
+
}
|
|
7063
|
+
if (!Number.isFinite(threshold)) {
|
|
7064
|
+
throw new TypeError("Threshold is not finite");
|
|
7065
|
+
}
|
|
7066
|
+
if (threshold < 0) {
|
|
7067
|
+
throw new TypeError("Threshold is below 0");
|
|
7068
|
+
}
|
|
7069
|
+
const cacheKey = [
|
|
7070
|
+
fps,
|
|
7071
|
+
config.damping,
|
|
7072
|
+
config.mass,
|
|
7073
|
+
config.overshootClamping,
|
|
7074
|
+
config.stiffness,
|
|
7075
|
+
threshold
|
|
7076
|
+
].join("-");
|
|
7077
|
+
if (cache.has(cacheKey)) {
|
|
7078
|
+
return cache.get(cacheKey);
|
|
7079
|
+
}
|
|
7080
|
+
validateFps(fps, "to the measureSpring() function", false);
|
|
7081
|
+
let frame = 0;
|
|
7082
|
+
let finishedFrame = 0;
|
|
7083
|
+
const calc = () => {
|
|
7084
|
+
return springCalculation({
|
|
7085
|
+
fps,
|
|
7086
|
+
frame,
|
|
7087
|
+
config
|
|
7088
|
+
});
|
|
7089
|
+
};
|
|
7090
|
+
let animation = calc();
|
|
7091
|
+
const calcDifference = () => {
|
|
7092
|
+
return Math.abs(animation.current - animation.toValue);
|
|
7093
|
+
};
|
|
7094
|
+
let difference = calcDifference();
|
|
7095
|
+
while (difference >= threshold) {
|
|
7096
|
+
frame++;
|
|
7097
|
+
animation = calc();
|
|
7098
|
+
difference = calcDifference();
|
|
7099
|
+
}
|
|
7100
|
+
finishedFrame = frame;
|
|
7101
|
+
for (let i = 0;i < 20; i++) {
|
|
7102
|
+
frame++;
|
|
7103
|
+
animation = calc();
|
|
7104
|
+
difference = calcDifference();
|
|
7105
|
+
if (difference >= threshold) {
|
|
7106
|
+
i = 0;
|
|
7107
|
+
finishedFrame = frame + 1;
|
|
7108
|
+
}
|
|
7109
|
+
}
|
|
7110
|
+
cache.set(cacheKey, finishedFrame);
|
|
7111
|
+
return finishedFrame;
|
|
7112
|
+
}
|
|
7113
|
+
function spring({
|
|
7114
|
+
frame: passedFrame,
|
|
7115
|
+
fps,
|
|
7116
|
+
config = {},
|
|
7117
|
+
from = 0,
|
|
7118
|
+
to = 1,
|
|
7119
|
+
durationInFrames: passedDurationInFrames,
|
|
7120
|
+
durationRestThreshold,
|
|
7121
|
+
delay = 0,
|
|
7122
|
+
reverse = false
|
|
7123
|
+
}) {
|
|
7124
|
+
validateSpringDuration(passedDurationInFrames);
|
|
7125
|
+
validateFrame({
|
|
7126
|
+
frame: passedFrame,
|
|
7127
|
+
durationInFrames: Infinity,
|
|
7128
|
+
allowFloats: true
|
|
7129
|
+
});
|
|
7130
|
+
validateFps(fps, "to spring()", false);
|
|
7131
|
+
const needsToCalculateNaturalDuration = reverse || typeof passedDurationInFrames !== "undefined";
|
|
7132
|
+
const naturalDuration = needsToCalculateNaturalDuration ? measureSpring({
|
|
7133
|
+
fps,
|
|
7134
|
+
config,
|
|
7135
|
+
threshold: durationRestThreshold
|
|
7136
|
+
}) : undefined;
|
|
7137
|
+
const naturalDurationGetter = needsToCalculateNaturalDuration ? {
|
|
7138
|
+
get: () => naturalDuration
|
|
7139
|
+
} : {
|
|
7140
|
+
get: () => {
|
|
7141
|
+
throw new Error("did not calculate natural duration, this is an error with Remotion. Please report");
|
|
7142
|
+
}
|
|
7143
|
+
};
|
|
7144
|
+
const reverseProcessed = reverse ? (passedDurationInFrames ?? naturalDurationGetter.get()) - passedFrame : passedFrame;
|
|
7145
|
+
const delayProcessed = reverseProcessed + (reverse ? delay : -delay);
|
|
7146
|
+
const durationProcessed = passedDurationInFrames === undefined ? delayProcessed : delayProcessed / (passedDurationInFrames / naturalDurationGetter.get());
|
|
7147
|
+
if (passedDurationInFrames && delayProcessed > passedDurationInFrames) {
|
|
7148
|
+
return to;
|
|
7149
|
+
}
|
|
7150
|
+
const spr = springCalculation({
|
|
7151
|
+
fps,
|
|
7152
|
+
frame: durationProcessed,
|
|
7153
|
+
config
|
|
7154
|
+
});
|
|
7155
|
+
const inner = config.overshootClamping ? to >= from ? Math.min(spr.current, to) : Math.max(spr.current, to) : spr.current;
|
|
7156
|
+
const interpolated = from === 0 && to === 1 ? inner : interpolate(inner, [0, 1], [from, to]);
|
|
7157
|
+
return interpolated;
|
|
7158
|
+
}
|
|
7159
|
+
var clampUnit = (t) => Math.min(1, Math.max(0, t));
|
|
7160
|
+
var springEasingDurationInFrames = 30;
|
|
7161
|
+
|
|
7162
|
+
class Easing {
|
|
7163
|
+
static step0(n) {
|
|
7164
|
+
return n > 0 ? 1 : 0;
|
|
7165
|
+
}
|
|
7166
|
+
static step1(n) {
|
|
7167
|
+
return n >= 1 ? 1 : 0;
|
|
7168
|
+
}
|
|
7169
|
+
static linear(t) {
|
|
7170
|
+
return t;
|
|
7171
|
+
}
|
|
7172
|
+
static ease(t) {
|
|
7173
|
+
return Easing.bezier(0.42, 0, 1, 1)(t);
|
|
7174
|
+
}
|
|
7175
|
+
static quad(t) {
|
|
7176
|
+
return t * t;
|
|
7177
|
+
}
|
|
7178
|
+
static cubic(t) {
|
|
7179
|
+
return t * t * t;
|
|
7180
|
+
}
|
|
7181
|
+
static poly(n) {
|
|
7182
|
+
return (t) => t ** n;
|
|
7183
|
+
}
|
|
7184
|
+
static sin(t) {
|
|
7185
|
+
return 1 - Math.cos(t * Math.PI / 2);
|
|
7186
|
+
}
|
|
7187
|
+
static circle(t) {
|
|
7188
|
+
const u = clampUnit(t);
|
|
7189
|
+
return 1 - Math.sqrt(1 - u * u);
|
|
7190
|
+
}
|
|
7191
|
+
static exp(t) {
|
|
7192
|
+
return 2 ** (10 * (t - 1));
|
|
7193
|
+
}
|
|
7194
|
+
static elastic(bounciness = 1) {
|
|
7195
|
+
const p = bounciness * Math.PI;
|
|
7196
|
+
return (t) => 1 - Math.cos(t * Math.PI / 2) ** 3 * Math.cos(t * p);
|
|
7197
|
+
}
|
|
7198
|
+
static back(s = 1.70158) {
|
|
7199
|
+
return (t) => t * t * ((s + 1) * t - s);
|
|
7200
|
+
}
|
|
7201
|
+
static spring(config = {}) {
|
|
7202
|
+
return (t) => {
|
|
7203
|
+
if (t <= 0) {
|
|
7204
|
+
return 0;
|
|
7205
|
+
}
|
|
7206
|
+
if (t >= 1) {
|
|
7207
|
+
return 1;
|
|
7208
|
+
}
|
|
7209
|
+
return spring({
|
|
7210
|
+
fps: springEasingDurationInFrames,
|
|
7211
|
+
frame: t * springEasingDurationInFrames,
|
|
7212
|
+
config,
|
|
7213
|
+
durationInFrames: springEasingDurationInFrames
|
|
7214
|
+
});
|
|
7215
|
+
};
|
|
7216
|
+
}
|
|
7217
|
+
static bounce(t) {
|
|
7218
|
+
const u = clampUnit(t);
|
|
7219
|
+
if (u < 1 / 2.75) {
|
|
7220
|
+
return 7.5625 * u * u;
|
|
7221
|
+
}
|
|
7222
|
+
if (u < 2 / 2.75) {
|
|
7223
|
+
const t2_ = u - 1.5 / 2.75;
|
|
7224
|
+
return 7.5625 * t2_ * t2_ + 0.75;
|
|
7225
|
+
}
|
|
7226
|
+
if (u < 2.5 / 2.75) {
|
|
7227
|
+
const t2_ = u - 2.25 / 2.75;
|
|
7228
|
+
return 7.5625 * t2_ * t2_ + 0.9375;
|
|
7229
|
+
}
|
|
7230
|
+
const t2 = u - 2.625 / 2.75;
|
|
7231
|
+
return 7.5625 * t2 * t2 + 0.984375;
|
|
7232
|
+
}
|
|
7233
|
+
static bezier(x1, y1, x2, y2) {
|
|
7234
|
+
return bezier(x1, y1, x2, y2);
|
|
7235
|
+
}
|
|
7236
|
+
static in(easing) {
|
|
7237
|
+
return easing;
|
|
7238
|
+
}
|
|
7239
|
+
static out(easing) {
|
|
7240
|
+
return (t) => 1 - easing(1 - t);
|
|
7241
|
+
}
|
|
7242
|
+
static inOut(easing) {
|
|
7243
|
+
return (t) => {
|
|
7244
|
+
if (t < 0.5) {
|
|
7245
|
+
return easing(t * 2) / 2;
|
|
7246
|
+
}
|
|
7247
|
+
return 1 - easing((1 - t) * 2) / 2;
|
|
7248
|
+
};
|
|
7249
|
+
}
|
|
7250
|
+
}
|
|
7251
|
+
var NUMBER = "[-+]?\\d*\\.?\\d+";
|
|
7252
|
+
var PERCENTAGE = NUMBER + "%";
|
|
7253
|
+
function call(...args) {
|
|
7254
|
+
return "\\(\\s*(" + args.join(")\\s*,\\s*(") + ")\\s*\\)";
|
|
7255
|
+
}
|
|
7256
|
+
var MODERN_VALUE = "(?:none|[-+]?\\d*\\.?\\d+(?:%|deg|rad|grad|turn)?)";
|
|
7257
|
+
function modernColorCall(name) {
|
|
7258
|
+
return new RegExp(name + "\\(\\s*(" + MODERN_VALUE + ")\\s+(" + MODERN_VALUE + ")\\s+(" + MODERN_VALUE + ")(?:\\s*\\/\\s*(" + MODERN_VALUE + "))?\\s*\\)");
|
|
7259
|
+
}
|
|
7260
|
+
function getMatchers() {
|
|
7261
|
+
const cachedMatchers = {
|
|
7262
|
+
rgb: undefined,
|
|
7263
|
+
rgba: undefined,
|
|
7264
|
+
hsl: undefined,
|
|
7265
|
+
hsla: undefined,
|
|
7266
|
+
hex3: undefined,
|
|
7267
|
+
hex4: undefined,
|
|
7268
|
+
hex5: undefined,
|
|
7269
|
+
hex6: undefined,
|
|
7270
|
+
hex8: undefined,
|
|
7271
|
+
oklch: undefined,
|
|
7272
|
+
oklab: undefined,
|
|
7273
|
+
lab: undefined,
|
|
7274
|
+
lch: undefined,
|
|
7275
|
+
hwb: undefined
|
|
7276
|
+
};
|
|
7277
|
+
if (cachedMatchers.rgb === undefined) {
|
|
7278
|
+
cachedMatchers.rgb = new RegExp("rgb" + call(NUMBER, NUMBER, NUMBER));
|
|
7279
|
+
cachedMatchers.rgba = new RegExp("rgba" + call(NUMBER, NUMBER, NUMBER, NUMBER));
|
|
7280
|
+
cachedMatchers.hsl = new RegExp("hsl" + call(NUMBER, PERCENTAGE, PERCENTAGE));
|
|
7281
|
+
cachedMatchers.hsla = new RegExp("hsla" + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER));
|
|
7282
|
+
cachedMatchers.hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;
|
|
7283
|
+
cachedMatchers.hex4 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;
|
|
7284
|
+
cachedMatchers.hex6 = /^#([0-9a-fA-F]{6})$/;
|
|
7285
|
+
cachedMatchers.hex8 = /^#([0-9a-fA-F]{8})$/;
|
|
7286
|
+
cachedMatchers.oklch = modernColorCall("oklch");
|
|
7287
|
+
cachedMatchers.oklab = modernColorCall("oklab");
|
|
7288
|
+
cachedMatchers.lab = modernColorCall("lab");
|
|
7289
|
+
cachedMatchers.lch = modernColorCall("lch");
|
|
7290
|
+
cachedMatchers.hwb = modernColorCall("hwb");
|
|
7291
|
+
}
|
|
7292
|
+
return cachedMatchers;
|
|
7293
|
+
}
|
|
7294
|
+
function hue2rgb(p, q, t) {
|
|
7295
|
+
if (t < 0) {
|
|
7296
|
+
t += 1;
|
|
7297
|
+
}
|
|
7298
|
+
if (t > 1) {
|
|
7299
|
+
t -= 1;
|
|
7300
|
+
}
|
|
7301
|
+
if (t < 1 / 6) {
|
|
7302
|
+
return p + (q - p) * 6 * t;
|
|
7303
|
+
}
|
|
7304
|
+
if (t < 1 / 2) {
|
|
7305
|
+
return q;
|
|
7306
|
+
}
|
|
7307
|
+
if (t < 2 / 3) {
|
|
7308
|
+
return p + (q - p) * (2 / 3 - t) * 6;
|
|
7309
|
+
}
|
|
7310
|
+
return p;
|
|
7311
|
+
}
|
|
7312
|
+
function hslToRgb(h, s, l) {
|
|
7313
|
+
const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
|
|
7314
|
+
const p = 2 * l - q;
|
|
7315
|
+
const r2 = hue2rgb(p, q, h + 1 / 3);
|
|
7316
|
+
const g = hue2rgb(p, q, h);
|
|
7317
|
+
const b2 = hue2rgb(p, q, h - 1 / 3);
|
|
7318
|
+
return Math.round(r2 * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b2 * 255) << 8;
|
|
7319
|
+
}
|
|
7320
|
+
function parse255(str) {
|
|
7321
|
+
const int = Number.parseInt(str, 10);
|
|
7322
|
+
if (int < 0) {
|
|
7323
|
+
return 0;
|
|
7324
|
+
}
|
|
7325
|
+
if (int > 255) {
|
|
7326
|
+
return 255;
|
|
7327
|
+
}
|
|
7328
|
+
return int;
|
|
7329
|
+
}
|
|
7330
|
+
function parse360(str) {
|
|
7331
|
+
const int = Number.parseFloat(str);
|
|
7332
|
+
return (int % 360 + 360) % 360 / 360;
|
|
7333
|
+
}
|
|
7334
|
+
function parse1(str) {
|
|
7335
|
+
const num = Number.parseFloat(str);
|
|
7336
|
+
if (num < 0) {
|
|
7337
|
+
return 0;
|
|
7338
|
+
}
|
|
7339
|
+
if (num > 1) {
|
|
7340
|
+
return 255;
|
|
7341
|
+
}
|
|
7342
|
+
return Math.round(num * 255);
|
|
7343
|
+
}
|
|
7344
|
+
function parsePercentage(str) {
|
|
7345
|
+
const int = Number.parseFloat(str);
|
|
7346
|
+
if (int < 0) {
|
|
7347
|
+
return 0;
|
|
7348
|
+
}
|
|
7349
|
+
if (int > 100) {
|
|
7350
|
+
return 1;
|
|
7351
|
+
}
|
|
7352
|
+
return int / 100;
|
|
7353
|
+
}
|
|
7354
|
+
function parseModernComponent(str, percentScale) {
|
|
7355
|
+
if (str === "none")
|
|
7356
|
+
return 0;
|
|
7357
|
+
if (str.endsWith("%")) {
|
|
7358
|
+
return Number.parseFloat(str) / 100 * percentScale;
|
|
7359
|
+
}
|
|
7360
|
+
return Number.parseFloat(str);
|
|
7361
|
+
}
|
|
7362
|
+
function parseHueAngle(str) {
|
|
7363
|
+
if (str === "none")
|
|
7364
|
+
return 0;
|
|
7365
|
+
if (str.endsWith("rad")) {
|
|
7366
|
+
return Number.parseFloat(str) * 180 / Math.PI;
|
|
7367
|
+
}
|
|
7368
|
+
if (str.endsWith("grad"))
|
|
7369
|
+
return Number.parseFloat(str) * 0.9;
|
|
7370
|
+
if (str.endsWith("turn"))
|
|
7371
|
+
return Number.parseFloat(str) * 360;
|
|
7372
|
+
return Number.parseFloat(str);
|
|
7075
7373
|
}
|
|
7076
7374
|
function parseModernAlpha(str) {
|
|
7077
7375
|
if (str === undefined || str === "none")
|
|
@@ -7943,10 +8241,12 @@ var mergeValues = ({
|
|
|
7943
8241
|
var stackToOverrideMap = {};
|
|
7944
8242
|
var wrapInSchema = ({
|
|
7945
8243
|
Component,
|
|
8244
|
+
componentIdentity,
|
|
7946
8245
|
schema,
|
|
7947
8246
|
supportsEffects
|
|
7948
8247
|
}) => {
|
|
7949
|
-
const
|
|
8248
|
+
const schemaWithSequenceName = extendSchemaWithSequenceName(schema);
|
|
8249
|
+
const flatSchema = getFlatSchemaWithAllKeys(schemaWithSequenceName);
|
|
7950
8250
|
const flatKeys = Object.keys(flatSchema);
|
|
7951
8251
|
const Wrapped = forwardRef2((props, ref) => {
|
|
7952
8252
|
const env = useRemotionEnvironment();
|
|
@@ -7985,15 +8285,16 @@ var wrapInSchema = ({
|
|
|
7985
8285
|
const currentRuntimeValueDotNotation = useMemo13(() => readValuesFromProps(props, flatKeys), runtimeValues);
|
|
7986
8286
|
const controls = useMemo13(() => {
|
|
7987
8287
|
return {
|
|
7988
|
-
schema,
|
|
8288
|
+
schema: schemaWithSequenceName,
|
|
7989
8289
|
currentRuntimeValueDotNotation,
|
|
7990
8290
|
overrideId,
|
|
7991
|
-
supportsEffects
|
|
8291
|
+
supportsEffects,
|
|
8292
|
+
componentIdentity
|
|
7992
8293
|
};
|
|
7993
8294
|
}, [currentRuntimeValueDotNotation, overrideId]);
|
|
7994
8295
|
const { merged: valuesDotNotation, propsToDelete } = useMemo13(() => {
|
|
7995
8296
|
return computeEffectiveSchemaValuesDotNotation({
|
|
7996
|
-
schema,
|
|
8297
|
+
schema: schemaWithSequenceName,
|
|
7997
8298
|
currentValue: currentRuntimeValueDotNotation,
|
|
7998
8299
|
overrideValues: nodePath === null ? {} : getDragOverrides(nodePath),
|
|
7999
8300
|
propStatus: nodePath === null ? undefined : getPropStatusesCtx(propStatuses, nodePath),
|
|
@@ -8006,7 +8307,7 @@ var wrapInSchema = ({
|
|
|
8006
8307
|
propStatuses,
|
|
8007
8308
|
frame
|
|
8008
8309
|
]);
|
|
8009
|
-
const activeKeys = selectActiveKeys(
|
|
8310
|
+
const activeKeys = selectActiveKeys(schemaWithSequenceName, valuesDotNotation);
|
|
8010
8311
|
const mergedProps = mergeValues({
|
|
8011
8312
|
props,
|
|
8012
8313
|
valuesDotNotation,
|
|
@@ -8025,6 +8326,7 @@ var wrapInSchema = ({
|
|
|
8025
8326
|
var EMPTY_EFFECTS = [];
|
|
8026
8327
|
var RegularSequenceRefForwardingFunction = ({
|
|
8027
8328
|
from = 0,
|
|
8329
|
+
freeze,
|
|
8028
8330
|
durationInFrames = Infinity,
|
|
8029
8331
|
children,
|
|
8030
8332
|
name,
|
|
@@ -8040,7 +8342,7 @@ var RegularSequenceRefForwardingFunction = ({
|
|
|
8040
8342
|
_remotionInternalPremountDisplay: premountDisplay,
|
|
8041
8343
|
_remotionInternalPostmountDisplay: postmountDisplay,
|
|
8042
8344
|
_remotionInternalIsMedia: isMedia,
|
|
8043
|
-
_remotionInternalRefForOutline:
|
|
8345
|
+
_remotionInternalRefForOutline: passedRefForOutline,
|
|
8044
8346
|
...other
|
|
8045
8347
|
}, ref) => {
|
|
8046
8348
|
const { layout = "absolute-fill" } = other;
|
|
@@ -8048,6 +8350,7 @@ var RegularSequenceRefForwardingFunction = ({
|
|
|
8048
8350
|
const parentSequence = useContext17(SequenceContext);
|
|
8049
8351
|
const { rootId } = useTimelineContext();
|
|
8050
8352
|
const cumulatedFrom = parentSequence ? parentSequence.cumulatedFrom + parentSequence.relativeFrom : 0;
|
|
8353
|
+
const absoluteFrom = (parentSequence?.absoluteFrom ?? 0) + from;
|
|
8051
8354
|
const nonce = useNonce();
|
|
8052
8355
|
if (layout !== "absolute-fill" && layout !== "none") {
|
|
8053
8356
|
throw new TypeError(`The layout prop of <Sequence /> expects either "absolute-fill" or "none", but you passed: ${layout}`);
|
|
@@ -8067,11 +8370,24 @@ var RegularSequenceRefForwardingFunction = ({
|
|
|
8067
8370
|
if (!Number.isFinite(from)) {
|
|
8068
8371
|
throw new TypeError(`The "from" prop of a sequence must be finite, but got ${from}.`);
|
|
8069
8372
|
}
|
|
8373
|
+
if (typeof freeze !== "undefined" && freeze !== null) {
|
|
8374
|
+
if (typeof freeze !== "number") {
|
|
8375
|
+
throw new TypeError(`The "freeze" prop of <Sequence /> must be a number, but is of type ${typeof freeze}.`);
|
|
8376
|
+
}
|
|
8377
|
+
if (Number.isNaN(freeze)) {
|
|
8378
|
+
throw new TypeError(`The "freeze" prop of <Sequence /> must be a real number, but it is NaN.`);
|
|
8379
|
+
}
|
|
8380
|
+
if (!Number.isFinite(freeze)) {
|
|
8381
|
+
throw new TypeError(`The "freeze" prop of <Sequence /> must be finite, but it is ${freeze}.`);
|
|
8382
|
+
}
|
|
8383
|
+
}
|
|
8070
8384
|
const absoluteFrame = useTimelinePosition();
|
|
8071
8385
|
const videoConfig = useVideoConfig();
|
|
8072
8386
|
const parentSequenceDuration = parentSequence ? Math.min(parentSequence.durationInFrames - from, durationInFrames) : durationInFrames;
|
|
8073
8387
|
const actualDurationInFrames = Math.max(0, Math.min(videoConfig.durationInFrames - from, parentSequenceDuration));
|
|
8074
8388
|
const { registerSequence, unregisterSequence } = useContext17(SequenceManager);
|
|
8389
|
+
const wrapperRefForOutline = useRef6(null);
|
|
8390
|
+
const refForOutline = other.layout === "none" ? passedRefForOutline ?? null : passedRefForOutline ?? wrapperRefForOutline;
|
|
8075
8391
|
const premounting = useMemo14(() => {
|
|
8076
8392
|
return parentSequence?.premounting || Boolean(other._remotionInternalIsPremounting);
|
|
8077
8393
|
}, [other._remotionInternalIsPremounting, parentSequence?.premounting]);
|
|
@@ -8085,6 +8401,7 @@ var RegularSequenceRefForwardingFunction = ({
|
|
|
8085
8401
|
const cumulatedNegativeFrom = currentSequenceStart - firstFrame;
|
|
8086
8402
|
const contextValue = useMemo14(() => {
|
|
8087
8403
|
return {
|
|
8404
|
+
absoluteFrom,
|
|
8088
8405
|
cumulatedFrom,
|
|
8089
8406
|
relativeFrom: from,
|
|
8090
8407
|
cumulatedNegativeFrom,
|
|
@@ -8100,6 +8417,7 @@ var RegularSequenceRefForwardingFunction = ({
|
|
|
8100
8417
|
};
|
|
8101
8418
|
}, [
|
|
8102
8419
|
cumulatedFrom,
|
|
8420
|
+
absoluteFrom,
|
|
8103
8421
|
from,
|
|
8104
8422
|
actualDurationInFrames,
|
|
8105
8423
|
parentSequence,
|
|
@@ -8115,7 +8433,7 @@ var RegularSequenceRefForwardingFunction = ({
|
|
|
8115
8433
|
const timelineClipName = useMemo14(() => {
|
|
8116
8434
|
return name ?? "";
|
|
8117
8435
|
}, [name]);
|
|
8118
|
-
const resolvedDocumentationLink = documentationLink ??
|
|
8436
|
+
const resolvedDocumentationLink = documentationLink ?? "https://www.remotion.dev/docs/sequence";
|
|
8119
8437
|
const env = useRemotionEnvironment();
|
|
8120
8438
|
const isInsideSeries = useContext17(IsInsideSeriesContext);
|
|
8121
8439
|
const inheritedStack = other?.stack ?? null;
|
|
@@ -8228,7 +8546,19 @@ var RegularSequenceRefForwardingFunction = ({
|
|
|
8228
8546
|
]);
|
|
8229
8547
|
const endThreshold = Math.ceil(cumulatedFrom + from + durationInFrames - 1);
|
|
8230
8548
|
const content = absoluteFrame < cumulatedFrom + from ? null : absoluteFrame > endThreshold ? null : children;
|
|
8549
|
+
const frozenContent = content === null || typeof freeze === "undefined" || freeze === null ? content : /* @__PURE__ */ jsx12(Freeze, {
|
|
8550
|
+
frame: freeze,
|
|
8551
|
+
children: content
|
|
8552
|
+
});
|
|
8231
8553
|
const styleIfThere = other.layout === "none" ? undefined : other.style;
|
|
8554
|
+
const sequenceRef = useCallback6((node) => {
|
|
8555
|
+
wrapperRefForOutline.current = node;
|
|
8556
|
+
if (typeof ref === "function") {
|
|
8557
|
+
ref(node);
|
|
8558
|
+
} else if (ref) {
|
|
8559
|
+
ref.current = node;
|
|
8560
|
+
}
|
|
8561
|
+
}, [ref]);
|
|
8232
8562
|
const defaultStyle = useMemo14(() => {
|
|
8233
8563
|
return {
|
|
8234
8564
|
flexDirection: undefined,
|
|
@@ -8245,11 +8575,11 @@ var RegularSequenceRefForwardingFunction = ({
|
|
|
8245
8575
|
}
|
|
8246
8576
|
return /* @__PURE__ */ jsx12(SequenceContext.Provider, {
|
|
8247
8577
|
value: contextValue,
|
|
8248
|
-
children:
|
|
8249
|
-
ref,
|
|
8578
|
+
children: frozenContent === null ? null : other.layout === "none" ? frozenContent : /* @__PURE__ */ jsx12(AbsoluteFill, {
|
|
8579
|
+
ref: sequenceRef,
|
|
8250
8580
|
style: defaultStyle,
|
|
8251
8581
|
className: other.className,
|
|
8252
|
-
children:
|
|
8582
|
+
children: frozenContent
|
|
8253
8583
|
})
|
|
8254
8584
|
});
|
|
8255
8585
|
};
|
|
@@ -8329,11 +8659,13 @@ var SequenceInner = forwardRef3(SequenceRefForwardingFunction);
|
|
|
8329
8659
|
var SequenceWithoutSchema = SequenceInner;
|
|
8330
8660
|
var Sequence = wrapInSchema({
|
|
8331
8661
|
Component: SequenceInner,
|
|
8662
|
+
componentIdentity: "dev.remotion.remotion.Sequence",
|
|
8332
8663
|
schema: sequenceSchema,
|
|
8333
8664
|
supportsEffects: false
|
|
8334
8665
|
});
|
|
8335
8666
|
var SequenceWithoutFrom = wrapInSchema({
|
|
8336
8667
|
Component: SequenceInner,
|
|
8668
|
+
componentIdentity: null,
|
|
8337
8669
|
schema: sequenceSchemaWithoutFrom,
|
|
8338
8670
|
supportsEffects: false
|
|
8339
8671
|
});
|
|
@@ -8651,7 +8983,7 @@ var CanvasRefForwardingFunction = ({ width, height, fit, className, style, effec
|
|
|
8651
8983
|
}
|
|
8652
8984
|
return document.createElement("canvas");
|
|
8653
8985
|
}, []);
|
|
8654
|
-
const draw =
|
|
8986
|
+
const draw = useCallback7((imageData) => {
|
|
8655
8987
|
const canvas = canvasRef.current;
|
|
8656
8988
|
const canvasWidth = width ?? imageData.displayWidth;
|
|
8657
8989
|
const canvasHeight = height ?? imageData.displayHeight;
|
|
@@ -8742,10 +9074,10 @@ var decodeImage = async ({
|
|
|
8742
9074
|
if (!selectedTrack) {
|
|
8743
9075
|
throw new Error("No selected track");
|
|
8744
9076
|
}
|
|
8745
|
-
const
|
|
9077
|
+
const cache2 = [];
|
|
8746
9078
|
let durationFound = null;
|
|
8747
9079
|
const getFrameByIndex = async (frameIndex) => {
|
|
8748
|
-
const foundInCache =
|
|
9080
|
+
const foundInCache = cache2.find((c2) => c2.frameIndex === frameIndex);
|
|
8749
9081
|
if (foundInCache && foundInCache.frame) {
|
|
8750
9082
|
return foundInCache;
|
|
8751
9083
|
}
|
|
@@ -8756,7 +9088,7 @@ var decodeImage = async ({
|
|
|
8756
9088
|
if (foundInCache) {
|
|
8757
9089
|
foundInCache.frame = frame.image;
|
|
8758
9090
|
} else {
|
|
8759
|
-
|
|
9091
|
+
cache2.push({
|
|
8760
9092
|
frame: frame.image,
|
|
8761
9093
|
frameIndex,
|
|
8762
9094
|
timeInSeconds: frame.image.timestamp / 1e6
|
|
@@ -8769,7 +9101,7 @@ var decodeImage = async ({
|
|
|
8769
9101
|
};
|
|
8770
9102
|
};
|
|
8771
9103
|
const clearCache = (closeToTimeInSec) => {
|
|
8772
|
-
const itemsInCache =
|
|
9104
|
+
const itemsInCache = cache2.filter((c2) => c2.frame);
|
|
8773
9105
|
const sortByClosestToCurrentTime = itemsInCache.sort((a2, b2) => {
|
|
8774
9106
|
const aDiff = Math.abs(a2.timeInSeconds - closeToTimeInSec);
|
|
8775
9107
|
const bDiff = Math.abs(b2.timeInSeconds - closeToTimeInSec);
|
|
@@ -8792,7 +9124,7 @@ var decodeImage = async ({
|
|
|
8792
9124
|
loopBehavior,
|
|
8793
9125
|
timeInSec
|
|
8794
9126
|
});
|
|
8795
|
-
const framesBefore =
|
|
9127
|
+
const framesBefore = cache2.filter((c2) => c2.timeInSeconds <= actualTimeInSec);
|
|
8796
9128
|
const biggestIndex = framesBefore.map((c2) => c2.frameIndex).reduce((a2, b2) => Math.max(a2, b2), 0);
|
|
8797
9129
|
let i = biggestIndex;
|
|
8798
9130
|
while (true) {
|
|
@@ -8835,7 +9167,7 @@ var decodeImage = async ({
|
|
|
8835
9167
|
timeInSec
|
|
8836
9168
|
});
|
|
8837
9169
|
await ensureFrameBeforeAndAfter({ timeInSec: actualTimeInSec, loopBehavior });
|
|
8838
|
-
const itemsInCache =
|
|
9170
|
+
const itemsInCache = cache2.filter((c2) => c2.frame);
|
|
8839
9171
|
const closest = itemsInCache.reduce((a2, b2) => {
|
|
8840
9172
|
const aDiff = Math.abs(a2.timeInSeconds - actualTimeInSec);
|
|
8841
9173
|
const bDiff = Math.abs(b2.timeInSeconds - actualTimeInSec);
|
|
@@ -8872,6 +9204,7 @@ var resolveAnimatedImageSource = (src) => {
|
|
|
8872
9204
|
var animatedImageSchema = {
|
|
8873
9205
|
durationInFrames: durationInFramesField,
|
|
8874
9206
|
from: fromField,
|
|
9207
|
+
freeze: freezeField,
|
|
8875
9208
|
playbackRate: {
|
|
8876
9209
|
type: "number",
|
|
8877
9210
|
min: 0,
|
|
@@ -9071,6 +9404,7 @@ var AnimatedImageInner = ({
|
|
|
9071
9404
|
};
|
|
9072
9405
|
var AnimatedImage = wrapInSchema({
|
|
9073
9406
|
Component: AnimatedImageInner,
|
|
9407
|
+
componentIdentity: "dev.remotion.remotion.AnimatedImage",
|
|
9074
9408
|
schema: animatedImageSchema,
|
|
9075
9409
|
supportsEffects: true
|
|
9076
9410
|
});
|
|
@@ -9117,7 +9451,7 @@ var RenderAssetManager = createContext17({
|
|
|
9117
9451
|
var RenderAssetManagerProvider = ({ children, collectAssets }) => {
|
|
9118
9452
|
const [renderAssets, setRenderAssets] = useState7([]);
|
|
9119
9453
|
const renderAssetsRef = useRef10([]);
|
|
9120
|
-
const registerRenderAsset =
|
|
9454
|
+
const registerRenderAsset = useCallback8((renderAsset) => {
|
|
9121
9455
|
validateRenderAsset(renderAsset);
|
|
9122
9456
|
renderAssetsRef.current = [...renderAssetsRef.current, renderAsset];
|
|
9123
9457
|
setRenderAssets(renderAssetsRef.current);
|
|
@@ -9134,7 +9468,7 @@ var RenderAssetManagerProvider = ({ children, collectAssets }) => {
|
|
|
9134
9468
|
};
|
|
9135
9469
|
}, []);
|
|
9136
9470
|
}
|
|
9137
|
-
const unregisterRenderAsset =
|
|
9471
|
+
const unregisterRenderAsset = useCallback8((id) => {
|
|
9138
9472
|
renderAssetsRef.current = renderAssetsRef.current.filter((a2) => a2.id !== id);
|
|
9139
9473
|
setRenderAssets(renderAssetsRef.current);
|
|
9140
9474
|
}, []);
|
|
@@ -9296,7 +9630,7 @@ var Loop = ({
|
|
|
9296
9630
|
durationInFrames,
|
|
9297
9631
|
from,
|
|
9298
9632
|
name: name ?? "<Loop>",
|
|
9299
|
-
_remotionInternalDocumentationLink:
|
|
9633
|
+
_remotionInternalDocumentationLink: "https://www.remotion.dev/docs/loop",
|
|
9300
9634
|
_remotionInternalLoopDisplay: loopDisplay,
|
|
9301
9635
|
layout: props.layout,
|
|
9302
9636
|
style,
|
|
@@ -9939,7 +10273,7 @@ var SharedAudioContextProvider = ({ children, audioLatencyHint, audioEnabled, pr
|
|
|
9939
10273
|
}, []);
|
|
9940
10274
|
const prevEndTimes = useRef12({ scheduledEndTime: null, mediaEndTime: null });
|
|
9941
10275
|
const nodesToResume = useRef12(new Map);
|
|
9942
|
-
const unscheduleAudioNode =
|
|
10276
|
+
const unscheduleAudioNode = useCallback9((node) => {
|
|
9943
10277
|
nodesToResume.current.delete(node);
|
|
9944
10278
|
}, []);
|
|
9945
10279
|
const scheduleAudioNode = useMemo21(() => {
|
|
@@ -9993,7 +10327,7 @@ var SharedAudioContextProvider = ({ children, audioLatencyHint, audioEnabled, pr
|
|
|
9993
10327
|
};
|
|
9994
10328
|
};
|
|
9995
10329
|
}, [ctxAndGain, logLevel]);
|
|
9996
|
-
const resume =
|
|
10330
|
+
const resume = useCallback9(() => {
|
|
9997
10331
|
if (!ctxAndGain) {
|
|
9998
10332
|
return Promise.resolve();
|
|
9999
10333
|
}
|
|
@@ -10020,10 +10354,10 @@ var SharedAudioContextProvider = ({ children, audioLatencyHint, audioEnabled, pr
|
|
|
10020
10354
|
});
|
|
10021
10355
|
return resumePromise.catch(() => {});
|
|
10022
10356
|
}, [ctxAndGain, logLevel]);
|
|
10023
|
-
const getIsResumingAudioContext =
|
|
10357
|
+
const getIsResumingAudioContext = useCallback9(() => {
|
|
10024
10358
|
return isResuming.current;
|
|
10025
10359
|
}, []);
|
|
10026
|
-
const suspend =
|
|
10360
|
+
const suspend = useCallback9(() => {
|
|
10027
10361
|
if (!ctxAndGain) {
|
|
10028
10362
|
return Promise.resolve();
|
|
10029
10363
|
}
|
|
@@ -10097,7 +10431,7 @@ var SharedAudioTagsContextProvider = ({ children, numberOfAudioTags }) => {
|
|
|
10097
10431
|
};
|
|
10098
10432
|
}, [refs]);
|
|
10099
10433
|
const takenAudios = useRef12(new Array(numberOfAudioTags).fill(false));
|
|
10100
|
-
const rerenderAudios =
|
|
10434
|
+
const rerenderAudios = useCallback9(() => {
|
|
10101
10435
|
refs.forEach(({ ref, id }) => {
|
|
10102
10436
|
const data = audios.current?.find((a2) => a2.id === id);
|
|
10103
10437
|
const { current } = ref;
|
|
@@ -10118,7 +10452,7 @@ var SharedAudioTagsContextProvider = ({ children, numberOfAudioTags }) => {
|
|
|
10118
10452
|
});
|
|
10119
10453
|
});
|
|
10120
10454
|
}, [refs]);
|
|
10121
|
-
const registerAudio =
|
|
10455
|
+
const registerAudio = useCallback9((options) => {
|
|
10122
10456
|
const { aud, audioId, premounting, postmounting } = options;
|
|
10123
10457
|
const found = audios.current?.find((a2) => a2.audioId === audioId);
|
|
10124
10458
|
if (found) {
|
|
@@ -10147,7 +10481,7 @@ var SharedAudioTagsContextProvider = ({ children, numberOfAudioTags }) => {
|
|
|
10147
10481
|
rerenderAudios();
|
|
10148
10482
|
return newElem;
|
|
10149
10483
|
}, [numberOfAudioTags, refs, rerenderAudios]);
|
|
10150
|
-
const unregisterAudio =
|
|
10484
|
+
const unregisterAudio = useCallback9((id) => {
|
|
10151
10485
|
const cloned = [...takenAudios.current];
|
|
10152
10486
|
const index = refs.findIndex((r2) => r2.id === id);
|
|
10153
10487
|
if (index === -1) {
|
|
@@ -10158,7 +10492,7 @@ var SharedAudioTagsContextProvider = ({ children, numberOfAudioTags }) => {
|
|
|
10158
10492
|
audios.current = audios.current?.filter((a2) => a2.id !== id);
|
|
10159
10493
|
rerenderAudios();
|
|
10160
10494
|
}, [refs, rerenderAudios]);
|
|
10161
|
-
const updateAudio =
|
|
10495
|
+
const updateAudio = useCallback9(({
|
|
10162
10496
|
aud,
|
|
10163
10497
|
audioId,
|
|
10164
10498
|
id,
|
|
@@ -10192,7 +10526,7 @@ var SharedAudioTagsContextProvider = ({ children, numberOfAudioTags }) => {
|
|
|
10192
10526
|
rerenderAudios();
|
|
10193
10527
|
}
|
|
10194
10528
|
}, [rerenderAudios]);
|
|
10195
|
-
const playAllAudios =
|
|
10529
|
+
const playAllAudios = useCallback9(() => {
|
|
10196
10530
|
refs.forEach((ref) => {
|
|
10197
10531
|
const audio = audios.current.find((a2) => a2.el === ref.ref);
|
|
10198
10532
|
if (audio?.premounting) {
|
|
@@ -10740,7 +11074,7 @@ var useBufferManager = (logLevel, mountTime) => {
|
|
|
10740
11074
|
const env = useRemotionEnvironment();
|
|
10741
11075
|
const rendering = env.isRendering;
|
|
10742
11076
|
const buffering = useRef15(false);
|
|
10743
|
-
const addBlock =
|
|
11077
|
+
const addBlock = useCallback10((block) => {
|
|
10744
11078
|
if (rendering) {
|
|
10745
11079
|
return {
|
|
10746
11080
|
unblock: () => {
|
|
@@ -10766,7 +11100,7 @@ var useBufferManager = (logLevel, mountTime) => {
|
|
|
10766
11100
|
}
|
|
10767
11101
|
};
|
|
10768
11102
|
}, [rendering]);
|
|
10769
|
-
const listenForBuffering =
|
|
11103
|
+
const listenForBuffering = useCallback10((callback) => {
|
|
10770
11104
|
setOnBufferingCallbacks((c2) => [...c2, callback]);
|
|
10771
11105
|
return {
|
|
10772
11106
|
remove: () => {
|
|
@@ -10774,7 +11108,7 @@ var useBufferManager = (logLevel, mountTime) => {
|
|
|
10774
11108
|
}
|
|
10775
11109
|
};
|
|
10776
11110
|
}, []);
|
|
10777
|
-
const listenForResume =
|
|
11111
|
+
const listenForResume = useCallback10((callback) => {
|
|
10778
11112
|
setOnResumeCallbacks((c2) => [...c2, callback]);
|
|
10779
11113
|
return {
|
|
10780
11114
|
remove: () => {
|
|
@@ -10888,7 +11222,7 @@ var useBufferUntilFirstFrame = ({
|
|
|
10888
11222
|
}) => {
|
|
10889
11223
|
const bufferingRef = useRef16(false);
|
|
10890
11224
|
const { delayPlayback } = useBufferState();
|
|
10891
|
-
const bufferUntilFirstFrame =
|
|
11225
|
+
const bufferUntilFirstFrame = useCallback11((requestedTime) => {
|
|
10892
11226
|
if (mediaType !== "video") {
|
|
10893
11227
|
return;
|
|
10894
11228
|
}
|
|
@@ -11278,7 +11612,7 @@ var useMediaPlayback = ({
|
|
|
11278
11612
|
throw new Error("useMediaPlayback must be used inside a <BufferingContext>");
|
|
11279
11613
|
}
|
|
11280
11614
|
const isVariableFpsVideoMap = useRef18({});
|
|
11281
|
-
const onVariableFpsVideoDetected =
|
|
11615
|
+
const onVariableFpsVideoDetected = useCallback12(() => {
|
|
11282
11616
|
if (!src) {
|
|
11283
11617
|
return;
|
|
11284
11618
|
}
|
|
@@ -11669,7 +12003,7 @@ var AudioForDevelopmentForwardRefFunction = (props, ref) => {
|
|
|
11669
12003
|
premounting: Boolean(sequenceContext?.premounting),
|
|
11670
12004
|
postmounting: Boolean(sequenceContext?.postmounting)
|
|
11671
12005
|
});
|
|
11672
|
-
const getStack =
|
|
12006
|
+
const getStack = useCallback13(() => {
|
|
11673
12007
|
return _remotionInternalStack ?? null;
|
|
11674
12008
|
}, [_remotionInternalStack]);
|
|
11675
12009
|
useMediaInTimeline({
|
|
@@ -11685,7 +12019,7 @@ var AudioForDevelopmentForwardRefFunction = (props, ref) => {
|
|
|
11685
12019
|
premountDisplay: sequenceContext?.premountDisplay ?? null,
|
|
11686
12020
|
postmountDisplay: sequenceContext?.postmountDisplay ?? null,
|
|
11687
12021
|
loopDisplay: undefined,
|
|
11688
|
-
documentationLink:
|
|
12022
|
+
documentationLink: "https://www.remotion.dev/docs/html5-audio",
|
|
11689
12023
|
refForOutline: null
|
|
11690
12024
|
});
|
|
11691
12025
|
useMediaPlayback({
|
|
@@ -11915,7 +12249,7 @@ var AudioRefForwardingFunction = (props, ref) => {
|
|
|
11915
12249
|
throw new TypeError(`The \`<Html5Audio>\` tag requires a string for \`src\`, but got ${JSON.stringify(props.src)} instead.`);
|
|
11916
12250
|
}
|
|
11917
12251
|
const preloadedSrc = usePreload(props.src);
|
|
11918
|
-
const onError =
|
|
12252
|
+
const onError = useCallback14((e) => {
|
|
11919
12253
|
console.log(e.currentTarget.error);
|
|
11920
12254
|
const errMessage = `Could not play audio with src ${preloadedSrc}: ${e.currentTarget.error}. See https://remotion.dev/docs/media-playback-error for help.`;
|
|
11921
12255
|
if (loop) {
|
|
@@ -11929,7 +12263,7 @@ var AudioRefForwardingFunction = (props, ref) => {
|
|
|
11929
12263
|
console.warn(errMessage);
|
|
11930
12264
|
}
|
|
11931
12265
|
}, [loop, onRemotionError, preloadedSrc]);
|
|
11932
|
-
const onDuration =
|
|
12266
|
+
const onDuration = useCallback14((src, durationInSeconds) => {
|
|
11933
12267
|
setDurations({ type: "got-duration", durationInSeconds, src });
|
|
11934
12268
|
}, [setDurations]);
|
|
11935
12269
|
const durationFetched = durations[getAbsoluteSrc(preloadedSrc)] ?? durations[getAbsoluteSrc(props.src)];
|
|
@@ -12021,6 +12355,7 @@ var resolveSolidPixelDensity = (pixelDensity) => {
|
|
|
12021
12355
|
var solidSchema = {
|
|
12022
12356
|
durationInFrames: durationInFramesField,
|
|
12023
12357
|
from: fromField,
|
|
12358
|
+
freeze: freezeField,
|
|
12024
12359
|
color: {
|
|
12025
12360
|
type: "color",
|
|
12026
12361
|
default: "transparent",
|
|
@@ -12075,7 +12410,7 @@ var SolidInner = ({
|
|
|
12075
12410
|
return canvas;
|
|
12076
12411
|
}, []);
|
|
12077
12412
|
const chainState = useEffectChainState();
|
|
12078
|
-
const canvasRef =
|
|
12413
|
+
const canvasRef = useCallback15((canvas) => {
|
|
12079
12414
|
setOutputCanvas(canvas);
|
|
12080
12415
|
if (typeof reference === "function") {
|
|
12081
12416
|
reference(canvas);
|
|
@@ -12159,6 +12494,7 @@ var SolidOuter = forwardRef8(({
|
|
|
12159
12494
|
style,
|
|
12160
12495
|
name,
|
|
12161
12496
|
from,
|
|
12497
|
+
freeze,
|
|
12162
12498
|
hidden,
|
|
12163
12499
|
showInTimeline,
|
|
12164
12500
|
pixelDensity,
|
|
@@ -12172,6 +12508,7 @@ var SolidOuter = forwardRef8(({
|
|
|
12172
12508
|
return /* @__PURE__ */ jsx24(Sequence, {
|
|
12173
12509
|
layout: "none",
|
|
12174
12510
|
from,
|
|
12511
|
+
freeze,
|
|
12175
12512
|
hidden,
|
|
12176
12513
|
showInTimeline,
|
|
12177
12514
|
_experimentalControls: controls,
|
|
@@ -12179,7 +12516,7 @@ var SolidOuter = forwardRef8(({
|
|
|
12179
12516
|
durationInFrames,
|
|
12180
12517
|
name: name ?? "<Solid>",
|
|
12181
12518
|
_remotionInternalRefForOutline: actualRef,
|
|
12182
|
-
_remotionInternalDocumentationLink:
|
|
12519
|
+
_remotionInternalDocumentationLink: "https://www.remotion.dev/docs/solid",
|
|
12183
12520
|
...props2,
|
|
12184
12521
|
children: /* @__PURE__ */ jsx24(SolidInner, {
|
|
12185
12522
|
reference: actualRef,
|
|
@@ -12196,6 +12533,7 @@ var SolidOuter = forwardRef8(({
|
|
|
12196
12533
|
});
|
|
12197
12534
|
var Solid = wrapInSchema({
|
|
12198
12535
|
Component: SolidOuter,
|
|
12536
|
+
componentIdentity: "dev.remotion.remotion.Solid",
|
|
12199
12537
|
schema: solidSchema,
|
|
12200
12538
|
supportsEffects: true
|
|
12201
12539
|
});
|
|
@@ -12285,7 +12623,7 @@ var HtmlInCanvasContent = forwardRef9(({
|
|
|
12285
12623
|
const offscreenRef = useRef22(null);
|
|
12286
12624
|
const divRef = useRef22(null);
|
|
12287
12625
|
const canvasSizeKey = `${width}x${height}@${resolvedPixelDensity}`;
|
|
12288
|
-
const setLayoutCanvasRef =
|
|
12626
|
+
const setLayoutCanvasRef = useCallback16((node) => {
|
|
12289
12627
|
canvas2dRef.current = node;
|
|
12290
12628
|
if (typeof ref === "function") {
|
|
12291
12629
|
ref(node);
|
|
@@ -12307,7 +12645,7 @@ var HtmlInCanvasContent = forwardRef9(({
|
|
|
12307
12645
|
const initializedRef = useRef22(false);
|
|
12308
12646
|
const onInitCleanupRef = useRef22(null);
|
|
12309
12647
|
const unmountedRef = useRef22(false);
|
|
12310
|
-
const onPaintCb =
|
|
12648
|
+
const onPaintCb = useCallback16(async () => {
|
|
12311
12649
|
const element = divRef.current;
|
|
12312
12650
|
if (!element) {
|
|
12313
12651
|
throw new Error("Canvas or scene element not found");
|
|
@@ -12480,7 +12818,7 @@ var HtmlInCanvasInner = forwardRef9(({
|
|
|
12480
12818
|
const resolvedDuration = durationInFrames ?? videoDuration;
|
|
12481
12819
|
const memoizedEffectDefinitions = useMemoizedEffectDefinitions(effects);
|
|
12482
12820
|
const actualRef = useRef22(null);
|
|
12483
|
-
const setCanvasRef =
|
|
12821
|
+
const setCanvasRef = useCallback16((node) => {
|
|
12484
12822
|
actualRef.current = node;
|
|
12485
12823
|
if (typeof ref === "function") {
|
|
12486
12824
|
ref(node);
|
|
@@ -12491,7 +12829,7 @@ var HtmlInCanvasInner = forwardRef9(({
|
|
|
12491
12829
|
return /* @__PURE__ */ jsx25(Sequence, {
|
|
12492
12830
|
durationInFrames: resolvedDuration,
|
|
12493
12831
|
name: name ?? "<HtmlInCanvas>",
|
|
12494
|
-
_remotionInternalDocumentationLink:
|
|
12832
|
+
_remotionInternalDocumentationLink: "https://www.remotion.dev/docs/remotion/html-in-canvas",
|
|
12495
12833
|
_experimentalControls: controls,
|
|
12496
12834
|
_remotionInternalEffects: memoizedEffectDefinitions,
|
|
12497
12835
|
_remotionInternalRefForOutline: actualRef,
|
|
@@ -12515,11 +12853,13 @@ HtmlInCanvasInner.displayName = "HtmlInCanvas";
|
|
|
12515
12853
|
var htmlInCanvasSchema = {
|
|
12516
12854
|
durationInFrames: durationInFramesField,
|
|
12517
12855
|
from: fromField,
|
|
12856
|
+
freeze: freezeField,
|
|
12518
12857
|
...sequenceVisualStyleSchema,
|
|
12519
12858
|
hidden: hiddenField
|
|
12520
12859
|
};
|
|
12521
12860
|
var HtmlInCanvasWrapped = wrapInSchema({
|
|
12522
12861
|
Component: HtmlInCanvasInner,
|
|
12862
|
+
componentIdentity: "dev.remotion.remotion.HtmlInCanvas",
|
|
12523
12863
|
schema: htmlInCanvasSchema,
|
|
12524
12864
|
supportsEffects: true
|
|
12525
12865
|
});
|
|
@@ -12537,6 +12877,7 @@ function truncateSrcForLabel(src) {
|
|
|
12537
12877
|
var canvasImageSchema = {
|
|
12538
12878
|
durationInFrames: durationInFramesField,
|
|
12539
12879
|
from: fromField,
|
|
12880
|
+
freeze: freezeField,
|
|
12540
12881
|
fit: {
|
|
12541
12882
|
type: "enum",
|
|
12542
12883
|
default: "fill",
|
|
@@ -12642,7 +12983,7 @@ var CanvasImageContent = forwardRef10(({
|
|
|
12642
12983
|
}
|
|
12643
12984
|
return document.createElement("canvas");
|
|
12644
12985
|
}, []);
|
|
12645
|
-
const canvasRef =
|
|
12986
|
+
const canvasRef = useCallback17((canvas) => {
|
|
12646
12987
|
setOutputCanvas(canvas);
|
|
12647
12988
|
if (refForOutline) {
|
|
12648
12989
|
refForOutline.current = canvas;
|
|
@@ -12789,6 +13130,7 @@ var CanvasImageInner = forwardRef10(({
|
|
|
12789
13130
|
delayRenderTimeoutInMilliseconds,
|
|
12790
13131
|
durationInFrames,
|
|
12791
13132
|
from,
|
|
13133
|
+
freeze,
|
|
12792
13134
|
hidden,
|
|
12793
13135
|
name,
|
|
12794
13136
|
showInTimeline,
|
|
@@ -12810,6 +13152,7 @@ var CanvasImageInner = forwardRef10(({
|
|
|
12810
13152
|
layout: "none",
|
|
12811
13153
|
from: from ?? 0,
|
|
12812
13154
|
durationInFrames: durationInFrames ?? Infinity,
|
|
13155
|
+
freeze,
|
|
12813
13156
|
hidden,
|
|
12814
13157
|
showInTimeline: showInTimeline ?? true,
|
|
12815
13158
|
name: name ?? "<CanvasImage>",
|
|
@@ -12842,6 +13185,7 @@ var CanvasImageInner = forwardRef10(({
|
|
|
12842
13185
|
});
|
|
12843
13186
|
var CanvasImage = wrapInSchema({
|
|
12844
13187
|
Component: CanvasImageInner,
|
|
13188
|
+
componentIdentity: "dev.remotion.remotion.CanvasImage",
|
|
12845
13189
|
schema: canvasImageSchema,
|
|
12846
13190
|
supportsEffects: true
|
|
12847
13191
|
});
|
|
@@ -12859,11 +13203,11 @@ var IFrameRefForwarding = ({
|
|
|
12859
13203
|
retries: delayRenderRetries ?? undefined,
|
|
12860
13204
|
timeoutInMilliseconds: delayRenderTimeoutInMilliseconds ?? undefined
|
|
12861
13205
|
}));
|
|
12862
|
-
const didLoad =
|
|
13206
|
+
const didLoad = useCallback18((e) => {
|
|
12863
13207
|
continueRender2(handle);
|
|
12864
13208
|
onLoad?.(e);
|
|
12865
13209
|
}, [handle, onLoad, continueRender2]);
|
|
12866
|
-
const didGetError =
|
|
13210
|
+
const didGetError = useCallback18((e) => {
|
|
12867
13211
|
continueRender2(handle);
|
|
12868
13212
|
if (onError) {
|
|
12869
13213
|
onError(e);
|
|
@@ -12905,7 +13249,7 @@ var ImgContent = ({
|
|
|
12905
13249
|
if (!_propsValid) {
|
|
12906
13250
|
throw new Error("typecheck error");
|
|
12907
13251
|
}
|
|
12908
|
-
const imageCallbackRef =
|
|
13252
|
+
const imageCallbackRef = useCallback19((img) => {
|
|
12909
13253
|
imageRef.current = img;
|
|
12910
13254
|
refForOutline.current = img;
|
|
12911
13255
|
if (typeof ref === "function") {
|
|
@@ -12915,7 +13259,7 @@ var ImgContent = ({
|
|
|
12915
13259
|
}
|
|
12916
13260
|
}, [ref, refForOutline]);
|
|
12917
13261
|
const actualSrc = usePreload(src);
|
|
12918
|
-
const retryIn =
|
|
13262
|
+
const retryIn = useCallback19((timeout) => {
|
|
12919
13263
|
if (!imageRef.current) {
|
|
12920
13264
|
return;
|
|
12921
13265
|
}
|
|
@@ -12933,7 +13277,7 @@ var ImgContent = ({
|
|
|
12933
13277
|
}, timeout);
|
|
12934
13278
|
}, []);
|
|
12935
13279
|
const { delayRender: delayRender2, continueRender: continueRender2, cancelRender: cancelRender2 } = useDelayRender();
|
|
12936
|
-
const didGetError =
|
|
13280
|
+
const didGetError = useCallback19((e) => {
|
|
12937
13281
|
if (!errors.current) {
|
|
12938
13282
|
return;
|
|
12939
13283
|
}
|
|
@@ -13043,6 +13387,7 @@ var NativeImgInner = ({
|
|
|
13043
13387
|
src,
|
|
13044
13388
|
from,
|
|
13045
13389
|
durationInFrames,
|
|
13390
|
+
freeze,
|
|
13046
13391
|
_experimentalControls: controls,
|
|
13047
13392
|
_remotionInternalRefForOutline: refForOutline,
|
|
13048
13393
|
...props2
|
|
@@ -13054,8 +13399,9 @@ var NativeImgInner = ({
|
|
|
13054
13399
|
layout: "none",
|
|
13055
13400
|
from: from ?? 0,
|
|
13056
13401
|
durationInFrames: durationInFrames ?? Infinity,
|
|
13402
|
+
freeze,
|
|
13057
13403
|
_remotionInternalStack: stack,
|
|
13058
|
-
_remotionInternalDocumentationLink:
|
|
13404
|
+
_remotionInternalDocumentationLink: "https://www.remotion.dev/docs/img",
|
|
13059
13405
|
_remotionInternalIsMedia: { type: "image", src },
|
|
13060
13406
|
name: name ?? "<Img>",
|
|
13061
13407
|
_experimentalControls: controls,
|
|
@@ -13073,6 +13419,7 @@ var CanvasImageWithPrivateProps = CanvasImage;
|
|
|
13073
13419
|
var imgSchema = {
|
|
13074
13420
|
durationInFrames: durationInFramesField,
|
|
13075
13421
|
from: fromField,
|
|
13422
|
+
freeze: freezeField,
|
|
13076
13423
|
...sequenceVisualStyleSchema,
|
|
13077
13424
|
hidden: hiddenField
|
|
13078
13425
|
};
|
|
@@ -13128,6 +13475,7 @@ var ImgInner = ({
|
|
|
13128
13475
|
src,
|
|
13129
13476
|
from,
|
|
13130
13477
|
durationInFrames,
|
|
13478
|
+
freeze,
|
|
13131
13479
|
_experimentalControls: controls,
|
|
13132
13480
|
width,
|
|
13133
13481
|
height,
|
|
@@ -13152,6 +13500,7 @@ var ImgInner = ({
|
|
|
13152
13500
|
src,
|
|
13153
13501
|
from,
|
|
13154
13502
|
durationInFrames,
|
|
13503
|
+
freeze,
|
|
13155
13504
|
_experimentalControls: controls,
|
|
13156
13505
|
width,
|
|
13157
13506
|
height,
|
|
@@ -13193,11 +13542,12 @@ var ImgInner = ({
|
|
|
13193
13542
|
delayRenderTimeoutInMilliseconds,
|
|
13194
13543
|
from,
|
|
13195
13544
|
durationInFrames,
|
|
13545
|
+
freeze,
|
|
13196
13546
|
hidden,
|
|
13197
13547
|
name: name ?? "<Img>",
|
|
13198
13548
|
showInTimeline,
|
|
13199
13549
|
stack,
|
|
13200
|
-
_remotionInternalDocumentationLink:
|
|
13550
|
+
_remotionInternalDocumentationLink: "https://www.remotion.dev/docs/img",
|
|
13201
13551
|
_experimentalControls: controls,
|
|
13202
13552
|
_remotionInternalRefForOutline: refForOutline,
|
|
13203
13553
|
...canvasProps
|
|
@@ -13205,6 +13555,7 @@ var ImgInner = ({
|
|
|
13205
13555
|
};
|
|
13206
13556
|
var Img = wrapInSchema({
|
|
13207
13557
|
Component: ImgInner,
|
|
13558
|
+
componentIdentity: "dev.remotion.remotion.Img",
|
|
13208
13559
|
schema: imgSchema,
|
|
13209
13560
|
supportsEffects: true
|
|
13210
13561
|
});
|
|
@@ -13212,6 +13563,7 @@ addSequenceStackTraces(Img);
|
|
|
13212
13563
|
var interactiveElementSchema = {
|
|
13213
13564
|
durationInFrames: durationInFramesField,
|
|
13214
13565
|
from: fromField,
|
|
13566
|
+
freeze: freezeField,
|
|
13215
13567
|
...sequenceVisualStyleSchema,
|
|
13216
13568
|
hidden: hiddenField
|
|
13217
13569
|
};
|
|
@@ -13227,6 +13579,7 @@ var makeInteractiveElement = (tag, displayName) => {
|
|
|
13227
13579
|
const {
|
|
13228
13580
|
durationInFrames,
|
|
13229
13581
|
from,
|
|
13582
|
+
freeze,
|
|
13230
13583
|
hidden,
|
|
13231
13584
|
name,
|
|
13232
13585
|
showInTimeline,
|
|
@@ -13235,7 +13588,7 @@ var makeInteractiveElement = (tag, displayName) => {
|
|
|
13235
13588
|
...props2
|
|
13236
13589
|
} = propsWithControls;
|
|
13237
13590
|
const refForOutline = useRef25(null);
|
|
13238
|
-
const callbackRef =
|
|
13591
|
+
const callbackRef = useCallback20((element) => {
|
|
13239
13592
|
refForOutline.current = element;
|
|
13240
13593
|
setRef(ref, element);
|
|
13241
13594
|
}, [ref]);
|
|
@@ -13243,11 +13596,13 @@ var makeInteractiveElement = (tag, displayName) => {
|
|
|
13243
13596
|
layout: "none",
|
|
13244
13597
|
from: from ?? 0,
|
|
13245
13598
|
durationInFrames: durationInFrames ?? Infinity,
|
|
13599
|
+
freeze,
|
|
13246
13600
|
hidden,
|
|
13247
13601
|
name: name ?? displayName,
|
|
13248
13602
|
showInTimeline: showInTimeline ?? true,
|
|
13249
13603
|
_experimentalControls,
|
|
13250
13604
|
_remotionInternalStack: stack,
|
|
13605
|
+
_remotionInternalDocumentationLink: "https://www.remotion.dev/docs/interactive",
|
|
13251
13606
|
_remotionInternalRefForOutline: refForOutline,
|
|
13252
13607
|
children: React29.createElement(tag, {
|
|
13253
13608
|
...props2,
|
|
@@ -13258,6 +13613,7 @@ var makeInteractiveElement = (tag, displayName) => {
|
|
|
13258
13613
|
Inner.displayName = displayName;
|
|
13259
13614
|
const Wrapped = wrapInSchema({
|
|
13260
13615
|
Component: Inner,
|
|
13616
|
+
componentIdentity: `dev.remotion.remotion.${displayName.slice(1, -1)}`,
|
|
13261
13617
|
schema: interactiveElementSchema,
|
|
13262
13618
|
supportsEffects: false
|
|
13263
13619
|
});
|
|
@@ -13314,14 +13670,14 @@ var CompositionManagerProvider = ({
|
|
|
13314
13670
|
const [canvasContent, setCanvasContent] = useState18(initialCanvasContent);
|
|
13315
13671
|
const [compositions, setCompositions] = useState18(initialCompositions);
|
|
13316
13672
|
const currentcompositionsRef = useRef26(compositions);
|
|
13317
|
-
const updateCompositions =
|
|
13673
|
+
const updateCompositions = useCallback21((updateComps) => {
|
|
13318
13674
|
setCompositions((comps) => {
|
|
13319
13675
|
const updated = updateComps(comps);
|
|
13320
13676
|
currentcompositionsRef.current = updated;
|
|
13321
13677
|
return updated;
|
|
13322
13678
|
});
|
|
13323
13679
|
}, []);
|
|
13324
|
-
const registerComposition =
|
|
13680
|
+
const registerComposition = useCallback21((comp) => {
|
|
13325
13681
|
updateCompositions((comps) => {
|
|
13326
13682
|
if (comps.find((c2) => c2.id === comp.id)) {
|
|
13327
13683
|
throw new Error(`Multiple composition with id ${comp.id} are registered.`);
|
|
@@ -13329,12 +13685,12 @@ var CompositionManagerProvider = ({
|
|
|
13329
13685
|
return [...comps, comp];
|
|
13330
13686
|
});
|
|
13331
13687
|
}, [updateCompositions]);
|
|
13332
|
-
const unregisterComposition =
|
|
13688
|
+
const unregisterComposition = useCallback21((id) => {
|
|
13333
13689
|
setCompositions((comps) => {
|
|
13334
13690
|
return comps.filter((c2) => c2.id !== id);
|
|
13335
13691
|
});
|
|
13336
13692
|
}, []);
|
|
13337
|
-
const registerFolder =
|
|
13693
|
+
const registerFolder = useCallback21((name, parent, nonce, stack) => {
|
|
13338
13694
|
setFolders((prevFolders) => {
|
|
13339
13695
|
return [
|
|
13340
13696
|
...prevFolders,
|
|
@@ -13347,7 +13703,7 @@ var CompositionManagerProvider = ({
|
|
|
13347
13703
|
];
|
|
13348
13704
|
});
|
|
13349
13705
|
}, []);
|
|
13350
|
-
const unregisterFolder =
|
|
13706
|
+
const unregisterFolder = useCallback21((name, parent) => {
|
|
13351
13707
|
setFolders((prevFolders) => {
|
|
13352
13708
|
return prevFolders.filter((p) => !(p.name === name && p.parent === parent));
|
|
13353
13709
|
});
|
|
@@ -13986,7 +14342,7 @@ var OffthreadVideoForRendering = ({
|
|
|
13986
14342
|
continueRender2,
|
|
13987
14343
|
delayRender2
|
|
13988
14344
|
]);
|
|
13989
|
-
const onErr =
|
|
14345
|
+
const onErr = useCallback22(() => {
|
|
13990
14346
|
if (onError) {
|
|
13991
14347
|
onError?.(new Error("Failed to load image with src " + imageSrc));
|
|
13992
14348
|
} else {
|
|
@@ -13996,7 +14352,7 @@ var OffthreadVideoForRendering = ({
|
|
|
13996
14352
|
const className = useMemo35(() => {
|
|
13997
14353
|
return [OBJECTFIT_CONTAIN_CLASS_NAME, props2.className].filter(truthy).join(" ");
|
|
13998
14354
|
}, [props2.className]);
|
|
13999
|
-
const onImageFrame =
|
|
14355
|
+
const onImageFrame = useCallback22((img) => {
|
|
14000
14356
|
if (onVideoFrame) {
|
|
14001
14357
|
onVideoFrame(img);
|
|
14002
14358
|
}
|
|
@@ -14129,7 +14485,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
14129
14485
|
mediaVolume
|
|
14130
14486
|
});
|
|
14131
14487
|
warnAboutTooHighVolume(userPreferredVolume);
|
|
14132
|
-
const getStack =
|
|
14488
|
+
const getStack = useCallback23(() => {
|
|
14133
14489
|
return _remotionInternalStack ?? null;
|
|
14134
14490
|
}, [_remotionInternalStack]);
|
|
14135
14491
|
useMediaInTimeline({
|
|
@@ -14145,7 +14501,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
14145
14501
|
premountDisplay: parentSequence?.premountDisplay ?? null,
|
|
14146
14502
|
postmountDisplay: parentSequence?.postmountDisplay ?? null,
|
|
14147
14503
|
loopDisplay: undefined,
|
|
14148
|
-
documentationLink:
|
|
14504
|
+
documentationLink: onlyWarnForMediaSeekingError ? "https://www.remotion.dev/docs/offthreadvideo" : "https://www.remotion.dev/docs/html5-video",
|
|
14149
14505
|
refForOutline: videoRef
|
|
14150
14506
|
});
|
|
14151
14507
|
useMediaPlayback({
|
|
@@ -14276,6 +14632,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
14276
14632
|
isClientSideRendering: false
|
|
14277
14633
|
});
|
|
14278
14634
|
return /* @__PURE__ */ jsx34("video", {
|
|
14635
|
+
...nativeProps,
|
|
14279
14636
|
ref: videoRef,
|
|
14280
14637
|
muted: muted || mediaMuted || userPreferredVolume <= 0,
|
|
14281
14638
|
playsInline: true,
|
|
@@ -14284,7 +14641,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
14284
14641
|
style: actualStyle,
|
|
14285
14642
|
disableRemotePlayback: true,
|
|
14286
14643
|
crossOrigin: crossOriginValue,
|
|
14287
|
-
|
|
14644
|
+
controls: false
|
|
14288
14645
|
});
|
|
14289
14646
|
};
|
|
14290
14647
|
var VideoForPreview = forwardRef13(VideoForDevelopmentRefForwardingFunction);
|
|
@@ -14304,7 +14661,7 @@ var InnerOffthreadVideo = (props2) => {
|
|
|
14304
14661
|
if (environment.isClientSideRendering) {
|
|
14305
14662
|
throw new Error("<OffthreadVideo> is not supported in @remotion/web-renderer. Use <Video> from @remotion/media instead. See https://remotion.dev/docs/client-side-rendering/limitations");
|
|
14306
14663
|
}
|
|
14307
|
-
const onDuration =
|
|
14664
|
+
const onDuration = useCallback24(() => {
|
|
14308
14665
|
return;
|
|
14309
14666
|
}, []);
|
|
14310
14667
|
if (typeof props2.src !== "string") {
|
|
@@ -14672,42 +15029,19 @@ var Internals = {
|
|
|
14672
15029
|
computeEffectiveSchemaValuesDotNotation,
|
|
14673
15030
|
interpolateKeyframedStatus,
|
|
14674
15031
|
makeStaticDragOverride,
|
|
14675
|
-
makeKeyframedDragOverride,
|
|
14676
|
-
resolveDragOverrideValue,
|
|
14677
|
-
getStaticDragOverrideValue,
|
|
14678
|
-
OverrideIdsToNodePathsGettersContext,
|
|
14679
|
-
OverrideIdsToNodePathsSettersContext,
|
|
14680
|
-
findPropsToDelete,
|
|
14681
|
-
makeSequencePropsSubscriptionKey,
|
|
14682
|
-
getPropStatusesCtx,
|
|
14683
|
-
getEffectPropStatusesCtx,
|
|
14684
|
-
hiddenField,
|
|
14685
|
-
durationInFramesField,
|
|
14686
|
-
|
|
14687
|
-
|
|
14688
|
-
var validateFrame = ({
|
|
14689
|
-
allowFloats,
|
|
14690
|
-
durationInFrames,
|
|
14691
|
-
frame
|
|
14692
|
-
}) => {
|
|
14693
|
-
if (typeof frame === "undefined") {
|
|
14694
|
-
throw new TypeError(`Argument missing for parameter "frame"`);
|
|
14695
|
-
}
|
|
14696
|
-
if (typeof frame !== "number") {
|
|
14697
|
-
throw new TypeError(`Argument passed for "frame" is not a number: ${frame}`);
|
|
14698
|
-
}
|
|
14699
|
-
if (!Number.isFinite(frame)) {
|
|
14700
|
-
throw new RangeError(`Frame ${frame} is not finite`);
|
|
14701
|
-
}
|
|
14702
|
-
if (frame % 1 !== 0 && !allowFloats) {
|
|
14703
|
-
throw new RangeError(`Argument for frame must be an integer, but got ${frame}`);
|
|
14704
|
-
}
|
|
14705
|
-
if (frame < 0 && frame < -durationInFrames) {
|
|
14706
|
-
throw new RangeError(`Cannot use frame ${frame}: Duration of composition is ${durationInFrames}, therefore the lowest frame that can be rendered is ${-durationInFrames}`);
|
|
14707
|
-
}
|
|
14708
|
-
if (frame > durationInFrames - 1) {
|
|
14709
|
-
throw new RangeError(`Cannot use frame ${frame}: Duration of composition is ${durationInFrames}, therefore the highest frame that can be rendered is ${durationInFrames - 1}`);
|
|
14710
|
-
}
|
|
15032
|
+
makeKeyframedDragOverride,
|
|
15033
|
+
resolveDragOverrideValue,
|
|
15034
|
+
getStaticDragOverrideValue,
|
|
15035
|
+
OverrideIdsToNodePathsGettersContext,
|
|
15036
|
+
OverrideIdsToNodePathsSettersContext,
|
|
15037
|
+
findPropsToDelete,
|
|
15038
|
+
makeSequencePropsSubscriptionKey,
|
|
15039
|
+
getPropStatusesCtx,
|
|
15040
|
+
getEffectPropStatusesCtx,
|
|
15041
|
+
hiddenField,
|
|
15042
|
+
durationInFramesField,
|
|
15043
|
+
freezeField,
|
|
15044
|
+
fromField
|
|
14711
15045
|
};
|
|
14712
15046
|
var flattenChildren = (children) => {
|
|
14713
15047
|
const childrenArray = React40.Children.toArray(children);
|
|
@@ -14783,255 +15117,22 @@ var SeriesInner = (props2) => {
|
|
|
14783
15117
|
return /* @__PURE__ */ jsx37(IsInsideSeriesContainer, {
|
|
14784
15118
|
children: /* @__PURE__ */ jsx37(Sequence, {
|
|
14785
15119
|
layout: "none",
|
|
14786
|
-
name: "<Series>",
|
|
14787
|
-
_remotionInternalDocumentationLink: "https://www.remotion.dev/docs/series",
|
|
14788
|
-
...props2,
|
|
14789
|
-
children: childrenValue
|
|
14790
|
-
})
|
|
14791
|
-
});
|
|
14792
|
-
};
|
|
14793
|
-
var Series = Object.assign(wrapInSchema({
|
|
14794
|
-
Component: SeriesInner,
|
|
14795
|
-
schema: sequenceSchemaDefaultLayoutNone,
|
|
14796
|
-
supportsEffects: false
|
|
14797
|
-
}), {
|
|
14798
|
-
Sequence: SeriesSequence
|
|
14799
|
-
});
|
|
14800
|
-
addSequenceStackTraces(Series);
|
|
14801
|
-
var validateSpringDuration = (dur) => {
|
|
14802
|
-
if (typeof dur === "undefined") {
|
|
14803
|
-
return;
|
|
14804
|
-
}
|
|
14805
|
-
if (typeof dur !== "number") {
|
|
14806
|
-
throw new TypeError(`A "duration" of a spring must be a "number" but is "${typeof dur}"`);
|
|
14807
|
-
}
|
|
14808
|
-
if (Number.isNaN(dur)) {
|
|
14809
|
-
throw new TypeError('A "duration" of a spring is NaN, which it must not be');
|
|
14810
|
-
}
|
|
14811
|
-
if (!Number.isFinite(dur)) {
|
|
14812
|
-
throw new TypeError('A "duration" of a spring must be finite, but is ' + dur);
|
|
14813
|
-
}
|
|
14814
|
-
if (dur <= 0) {
|
|
14815
|
-
throw new TypeError('A "duration" of a spring must be positive, but is ' + dur);
|
|
14816
|
-
}
|
|
14817
|
-
};
|
|
14818
|
-
var defaultSpringConfig = {
|
|
14819
|
-
damping: 10,
|
|
14820
|
-
mass: 1,
|
|
14821
|
-
stiffness: 100,
|
|
14822
|
-
overshootClamping: false
|
|
14823
|
-
};
|
|
14824
|
-
var advanceCache = {};
|
|
14825
|
-
function advance({
|
|
14826
|
-
animation,
|
|
14827
|
-
now,
|
|
14828
|
-
config
|
|
14829
|
-
}) {
|
|
14830
|
-
const { toValue: toValue2, lastTimestamp, current, velocity } = animation;
|
|
14831
|
-
const deltaTime = Math.min(now - lastTimestamp, 64);
|
|
14832
|
-
if (config.damping <= 0) {
|
|
14833
|
-
throw new Error("Spring damping must be greater than 0, otherwise the spring() animation will never end, causing an infinite loop.");
|
|
14834
|
-
}
|
|
14835
|
-
const c2 = config.damping;
|
|
14836
|
-
const m = config.mass;
|
|
14837
|
-
const k = config.stiffness;
|
|
14838
|
-
const cacheKey = [
|
|
14839
|
-
toValue2,
|
|
14840
|
-
lastTimestamp,
|
|
14841
|
-
current,
|
|
14842
|
-
velocity,
|
|
14843
|
-
c2,
|
|
14844
|
-
m,
|
|
14845
|
-
k,
|
|
14846
|
-
now
|
|
14847
|
-
].join("-");
|
|
14848
|
-
if (advanceCache[cacheKey]) {
|
|
14849
|
-
return advanceCache[cacheKey];
|
|
14850
|
-
}
|
|
14851
|
-
const v0 = -velocity;
|
|
14852
|
-
const x0 = toValue2 - current;
|
|
14853
|
-
const zeta = c2 / (2 * Math.sqrt(k * m));
|
|
14854
|
-
const omega0 = Math.sqrt(k / m);
|
|
14855
|
-
const omega1 = omega0 * Math.sqrt(1 - zeta ** 2);
|
|
14856
|
-
const t = deltaTime / 1000;
|
|
14857
|
-
const sin1 = Math.sin(omega1 * t);
|
|
14858
|
-
const cos1 = Math.cos(omega1 * t);
|
|
14859
|
-
const underDampedEnvelope = Math.exp(-zeta * omega0 * t);
|
|
14860
|
-
const underDampedFrag1 = underDampedEnvelope * (sin1 * ((v0 + zeta * omega0 * x0) / omega1) + x0 * cos1);
|
|
14861
|
-
const underDampedPosition = toValue2 - underDampedFrag1;
|
|
14862
|
-
const underDampedVelocity = zeta * omega0 * underDampedFrag1 - underDampedEnvelope * (cos1 * (v0 + zeta * omega0 * x0) - omega1 * x0 * sin1);
|
|
14863
|
-
const criticallyDampedEnvelope = Math.exp(-omega0 * t);
|
|
14864
|
-
const criticallyDampedPosition = toValue2 - criticallyDampedEnvelope * (x0 + (v0 + omega0 * x0) * t);
|
|
14865
|
-
const criticallyDampedVelocity = criticallyDampedEnvelope * (v0 * (t * omega0 - 1) + t * x0 * omega0 * omega0);
|
|
14866
|
-
const animationNode = {
|
|
14867
|
-
toValue: toValue2,
|
|
14868
|
-
prevPosition: current,
|
|
14869
|
-
lastTimestamp: now,
|
|
14870
|
-
current: zeta < 1 ? underDampedPosition : criticallyDampedPosition,
|
|
14871
|
-
velocity: zeta < 1 ? underDampedVelocity : criticallyDampedVelocity
|
|
14872
|
-
};
|
|
14873
|
-
advanceCache[cacheKey] = animationNode;
|
|
14874
|
-
return animationNode;
|
|
14875
|
-
}
|
|
14876
|
-
var calculationCache = {};
|
|
14877
|
-
function springCalculation({
|
|
14878
|
-
frame,
|
|
14879
|
-
fps,
|
|
14880
|
-
config = {}
|
|
14881
|
-
}) {
|
|
14882
|
-
const from = 0;
|
|
14883
|
-
const to = 1;
|
|
14884
|
-
const cacheKey = [
|
|
14885
|
-
frame,
|
|
14886
|
-
fps,
|
|
14887
|
-
config.damping,
|
|
14888
|
-
config.mass,
|
|
14889
|
-
config.overshootClamping,
|
|
14890
|
-
config.stiffness
|
|
14891
|
-
].join("-");
|
|
14892
|
-
if (calculationCache[cacheKey]) {
|
|
14893
|
-
return calculationCache[cacheKey];
|
|
14894
|
-
}
|
|
14895
|
-
let animation = {
|
|
14896
|
-
lastTimestamp: 0,
|
|
14897
|
-
current: from,
|
|
14898
|
-
toValue: to,
|
|
14899
|
-
velocity: 0,
|
|
14900
|
-
prevPosition: 0
|
|
14901
|
-
};
|
|
14902
|
-
const frameClamped = Math.max(0, frame);
|
|
14903
|
-
const unevenRest = frameClamped % 1;
|
|
14904
|
-
for (let f = 0;f <= Math.floor(frameClamped); f++) {
|
|
14905
|
-
if (f === Math.floor(frameClamped)) {
|
|
14906
|
-
f += unevenRest;
|
|
14907
|
-
}
|
|
14908
|
-
const time = f / fps * 1000;
|
|
14909
|
-
animation = advance({
|
|
14910
|
-
animation,
|
|
14911
|
-
now: time,
|
|
14912
|
-
config: {
|
|
14913
|
-
...defaultSpringConfig,
|
|
14914
|
-
...config
|
|
14915
|
-
}
|
|
14916
|
-
});
|
|
14917
|
-
}
|
|
14918
|
-
calculationCache[cacheKey] = animation;
|
|
14919
|
-
return animation;
|
|
14920
|
-
}
|
|
14921
|
-
var cache = new Map;
|
|
14922
|
-
function measureSpring({
|
|
14923
|
-
fps,
|
|
14924
|
-
config = {},
|
|
14925
|
-
threshold = 0.005
|
|
14926
|
-
}) {
|
|
14927
|
-
if (typeof threshold !== "number") {
|
|
14928
|
-
throw new TypeError(`threshold must be a number, got ${threshold} of type ${typeof threshold}`);
|
|
14929
|
-
}
|
|
14930
|
-
if (threshold === 0) {
|
|
14931
|
-
return Infinity;
|
|
14932
|
-
}
|
|
14933
|
-
if (threshold === 1) {
|
|
14934
|
-
return 0;
|
|
14935
|
-
}
|
|
14936
|
-
if (isNaN(threshold)) {
|
|
14937
|
-
throw new TypeError("Threshold is NaN");
|
|
14938
|
-
}
|
|
14939
|
-
if (!Number.isFinite(threshold)) {
|
|
14940
|
-
throw new TypeError("Threshold is not finite");
|
|
14941
|
-
}
|
|
14942
|
-
if (threshold < 0) {
|
|
14943
|
-
throw new TypeError("Threshold is below 0");
|
|
14944
|
-
}
|
|
14945
|
-
const cacheKey = [
|
|
14946
|
-
fps,
|
|
14947
|
-
config.damping,
|
|
14948
|
-
config.mass,
|
|
14949
|
-
config.overshootClamping,
|
|
14950
|
-
config.stiffness,
|
|
14951
|
-
threshold
|
|
14952
|
-
].join("-");
|
|
14953
|
-
if (cache.has(cacheKey)) {
|
|
14954
|
-
return cache.get(cacheKey);
|
|
14955
|
-
}
|
|
14956
|
-
validateFps(fps, "to the measureSpring() function", false);
|
|
14957
|
-
let frame = 0;
|
|
14958
|
-
let finishedFrame = 0;
|
|
14959
|
-
const calc = () => {
|
|
14960
|
-
return springCalculation({
|
|
14961
|
-
fps,
|
|
14962
|
-
frame,
|
|
14963
|
-
config
|
|
14964
|
-
});
|
|
14965
|
-
};
|
|
14966
|
-
let animation = calc();
|
|
14967
|
-
const calcDifference = () => {
|
|
14968
|
-
return Math.abs(animation.current - animation.toValue);
|
|
14969
|
-
};
|
|
14970
|
-
let difference = calcDifference();
|
|
14971
|
-
while (difference >= threshold) {
|
|
14972
|
-
frame++;
|
|
14973
|
-
animation = calc();
|
|
14974
|
-
difference = calcDifference();
|
|
14975
|
-
}
|
|
14976
|
-
finishedFrame = frame;
|
|
14977
|
-
for (let i = 0;i < 20; i++) {
|
|
14978
|
-
frame++;
|
|
14979
|
-
animation = calc();
|
|
14980
|
-
difference = calcDifference();
|
|
14981
|
-
if (difference >= threshold) {
|
|
14982
|
-
i = 0;
|
|
14983
|
-
finishedFrame = frame + 1;
|
|
14984
|
-
}
|
|
14985
|
-
}
|
|
14986
|
-
cache.set(cacheKey, finishedFrame);
|
|
14987
|
-
return finishedFrame;
|
|
14988
|
-
}
|
|
14989
|
-
function spring({
|
|
14990
|
-
frame: passedFrame,
|
|
14991
|
-
fps,
|
|
14992
|
-
config = {},
|
|
14993
|
-
from = 0,
|
|
14994
|
-
to = 1,
|
|
14995
|
-
durationInFrames: passedDurationInFrames,
|
|
14996
|
-
durationRestThreshold,
|
|
14997
|
-
delay = 0,
|
|
14998
|
-
reverse = false
|
|
14999
|
-
}) {
|
|
15000
|
-
validateSpringDuration(passedDurationInFrames);
|
|
15001
|
-
validateFrame({
|
|
15002
|
-
frame: passedFrame,
|
|
15003
|
-
durationInFrames: Infinity,
|
|
15004
|
-
allowFloats: true
|
|
15005
|
-
});
|
|
15006
|
-
validateFps(fps, "to spring()", false);
|
|
15007
|
-
const needsToCalculateNaturalDuration = reverse || typeof passedDurationInFrames !== "undefined";
|
|
15008
|
-
const naturalDuration = needsToCalculateNaturalDuration ? measureSpring({
|
|
15009
|
-
fps,
|
|
15010
|
-
config,
|
|
15011
|
-
threshold: durationRestThreshold
|
|
15012
|
-
}) : undefined;
|
|
15013
|
-
const naturalDurationGetter = needsToCalculateNaturalDuration ? {
|
|
15014
|
-
get: () => naturalDuration
|
|
15015
|
-
} : {
|
|
15016
|
-
get: () => {
|
|
15017
|
-
throw new Error("did not calculate natural duration, this is an error with Remotion. Please report");
|
|
15018
|
-
}
|
|
15019
|
-
};
|
|
15020
|
-
const reverseProcessed = reverse ? (passedDurationInFrames ?? naturalDurationGetter.get()) - passedFrame : passedFrame;
|
|
15021
|
-
const delayProcessed = reverseProcessed + (reverse ? delay : -delay);
|
|
15022
|
-
const durationProcessed = passedDurationInFrames === undefined ? delayProcessed : delayProcessed / (passedDurationInFrames / naturalDurationGetter.get());
|
|
15023
|
-
if (passedDurationInFrames && delayProcessed > passedDurationInFrames) {
|
|
15024
|
-
return to;
|
|
15025
|
-
}
|
|
15026
|
-
const spr = springCalculation({
|
|
15027
|
-
fps,
|
|
15028
|
-
frame: durationProcessed,
|
|
15029
|
-
config
|
|
15120
|
+
name: "<Series>",
|
|
15121
|
+
_remotionInternalDocumentationLink: "https://www.remotion.dev/docs/series",
|
|
15122
|
+
...props2,
|
|
15123
|
+
children: childrenValue
|
|
15124
|
+
})
|
|
15030
15125
|
});
|
|
15031
|
-
|
|
15032
|
-
|
|
15033
|
-
|
|
15034
|
-
|
|
15126
|
+
};
|
|
15127
|
+
var Series = Object.assign(wrapInSchema({
|
|
15128
|
+
Component: SeriesInner,
|
|
15129
|
+
componentIdentity: "dev.remotion.remotion.Series",
|
|
15130
|
+
schema: sequenceSchemaDefaultLayoutNone,
|
|
15131
|
+
supportsEffects: false
|
|
15132
|
+
}), {
|
|
15133
|
+
Sequence: SeriesSequence
|
|
15134
|
+
});
|
|
15135
|
+
addSequenceStackTraces(Series);
|
|
15035
15136
|
var problematicCharacters = {
|
|
15036
15137
|
"%3A": ":",
|
|
15037
15138
|
"%2F": "/",
|
|
@@ -15490,7 +15591,7 @@ var VideoForwardingFunction = (props2, ref) => {
|
|
|
15490
15591
|
throw new TypeError(`The \`<Html5Video>\` tag requires a string for \`src\`, but got ${JSON.stringify(props2.src)} instead.`);
|
|
15491
15592
|
}
|
|
15492
15593
|
const preloadedSrc = usePreload(props2.src);
|
|
15493
|
-
const onDuration =
|
|
15594
|
+
const onDuration = useCallback25((src, durationInSeconds) => {
|
|
15494
15595
|
setDurations({ type: "got-duration", durationInSeconds, src });
|
|
15495
15596
|
}, [setDurations]);
|
|
15496
15597
|
const durationFetched = durations[getAbsoluteSrc(preloadedSrc)] ?? durations[getAbsoluteSrc(props2.src)];
|
|
@@ -15600,7 +15701,7 @@ addSequenceStackTraces(Composition);
|
|
|
15600
15701
|
addSequenceStackTraces(Folder);
|
|
15601
15702
|
|
|
15602
15703
|
// ../shapes/dist/esm/index.mjs
|
|
15603
|
-
import React, { useCallback as
|
|
15704
|
+
import React, { useCallback as useCallback26, useMemo as useMemo40, useRef as useRef29 } from "react";
|
|
15604
15705
|
import { version } from "react-dom";
|
|
15605
15706
|
import { jsx as jsx40, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
15606
15707
|
import { jsx as jsx210 } from "react/jsx-runtime";
|
|
@@ -15612,6 +15713,7 @@ import { jsx as jsx72 } from "react/jsx-runtime";
|
|
|
15612
15713
|
import { jsx as jsx82 } from "react/jsx-runtime";
|
|
15613
15714
|
import { jsx as jsx92 } from "react/jsx-runtime";
|
|
15614
15715
|
import { jsx as jsx102 } from "react/jsx-runtime";
|
|
15716
|
+
import { jsx as jsx112 } from "react/jsx-runtime";
|
|
15615
15717
|
var unitDir = (from, to) => {
|
|
15616
15718
|
const dx = to[0] - from[0];
|
|
15617
15719
|
const dy = to[1] - from[1];
|
|
@@ -15770,6 +15872,7 @@ var RenderSvg = ({
|
|
|
15770
15872
|
pixelDensity,
|
|
15771
15873
|
durationInFrames,
|
|
15772
15874
|
from,
|
|
15875
|
+
freeze,
|
|
15773
15876
|
hidden,
|
|
15774
15877
|
name,
|
|
15775
15878
|
showInTimeline,
|
|
@@ -15790,10 +15893,10 @@ var RenderSvg = ({
|
|
|
15790
15893
|
};
|
|
15791
15894
|
}, [pathStyle]);
|
|
15792
15895
|
const outlineRef = useRef29(null);
|
|
15793
|
-
const setSvgRef =
|
|
15896
|
+
const setSvgRef = useCallback26((node) => {
|
|
15794
15897
|
outlineRef.current = node;
|
|
15795
15898
|
}, []);
|
|
15796
|
-
const setCanvasRef =
|
|
15899
|
+
const setCanvasRef = useCallback26((canvas) => {
|
|
15797
15900
|
outlineRef.current = canvas;
|
|
15798
15901
|
}, []);
|
|
15799
15902
|
const memoizedEffectDefinitions = Internals.useMemoizedEffectDefinitions(effects);
|
|
@@ -15878,6 +15981,7 @@ var RenderSvg = ({
|
|
|
15878
15981
|
return /* @__PURE__ */ jsx40(Sequence, {
|
|
15879
15982
|
layout: "none",
|
|
15880
15983
|
from,
|
|
15984
|
+
freeze,
|
|
15881
15985
|
hidden,
|
|
15882
15986
|
showInTimeline,
|
|
15883
15987
|
_experimentalControls: controls,
|
|
@@ -15928,56 +16032,477 @@ var colorField = ({
|
|
|
15928
16032
|
description
|
|
15929
16033
|
};
|
|
15930
16034
|
};
|
|
15931
|
-
var enumField = ({
|
|
15932
|
-
defaultValue,
|
|
15933
|
-
description,
|
|
15934
|
-
variants
|
|
16035
|
+
var enumField = ({
|
|
16036
|
+
defaultValue,
|
|
16037
|
+
description,
|
|
16038
|
+
variants
|
|
16039
|
+
}) => {
|
|
16040
|
+
return {
|
|
16041
|
+
type: "enum",
|
|
16042
|
+
default: defaultValue,
|
|
16043
|
+
description,
|
|
16044
|
+
variants: Object.fromEntries(variants.map((variant) => [variant, {}]))
|
|
16045
|
+
};
|
|
16046
|
+
};
|
|
16047
|
+
var makeShapeSchema = (shapeFields) => {
|
|
16048
|
+
return {
|
|
16049
|
+
from: Internals.sequenceSchema.from,
|
|
16050
|
+
freeze: Internals.sequenceSchema.freeze,
|
|
16051
|
+
durationInFrames: Internals.sequenceSchema.durationInFrames,
|
|
16052
|
+
...shapeFields,
|
|
16053
|
+
fill: colorField({
|
|
16054
|
+
defaultValue: "#0b84ff",
|
|
16055
|
+
description: "Fill"
|
|
16056
|
+
}),
|
|
16057
|
+
...Internals.sequenceVisualStyleSchema,
|
|
16058
|
+
hidden: Internals.sequenceSchema.hidden
|
|
16059
|
+
};
|
|
16060
|
+
};
|
|
16061
|
+
var arrowSchema = makeShapeSchema({
|
|
16062
|
+
length: numberField({
|
|
16063
|
+
defaultValue: 300,
|
|
16064
|
+
description: "Length",
|
|
16065
|
+
min: 0
|
|
16066
|
+
}),
|
|
16067
|
+
headWidth: numberField({
|
|
16068
|
+
defaultValue: 185,
|
|
16069
|
+
description: "Head Width",
|
|
16070
|
+
min: 0
|
|
16071
|
+
}),
|
|
16072
|
+
headLength: numberField({
|
|
16073
|
+
defaultValue: 120,
|
|
16074
|
+
description: "Head Length",
|
|
16075
|
+
min: 0
|
|
16076
|
+
}),
|
|
16077
|
+
shaftWidth: numberField({
|
|
16078
|
+
defaultValue: 80,
|
|
16079
|
+
description: "Shaft Width",
|
|
16080
|
+
min: 0
|
|
16081
|
+
}),
|
|
16082
|
+
direction: enumField({
|
|
16083
|
+
defaultValue: "right",
|
|
16084
|
+
description: "Direction",
|
|
16085
|
+
variants: ["right", "left", "up", "down"]
|
|
16086
|
+
}),
|
|
16087
|
+
cornerRadius: numberField({
|
|
16088
|
+
defaultValue: 0,
|
|
16089
|
+
description: "Corner Radius",
|
|
16090
|
+
min: 0
|
|
16091
|
+
})
|
|
16092
|
+
});
|
|
16093
|
+
var ArrowInner = ({
|
|
16094
|
+
length: length2,
|
|
16095
|
+
headWidth,
|
|
16096
|
+
headLength,
|
|
16097
|
+
shaftWidth,
|
|
16098
|
+
direction,
|
|
16099
|
+
cornerRadius,
|
|
16100
|
+
...props
|
|
16101
|
+
}) => {
|
|
16102
|
+
return /* @__PURE__ */ jsx210(RenderSvg, {
|
|
16103
|
+
defaultName: "<Arrow>",
|
|
16104
|
+
documentationLink: "https://www.remotion.dev/docs/shapes/arrow",
|
|
16105
|
+
...makeArrow({
|
|
16106
|
+
length: length2,
|
|
16107
|
+
headWidth,
|
|
16108
|
+
headLength,
|
|
16109
|
+
shaftWidth,
|
|
16110
|
+
direction,
|
|
16111
|
+
cornerRadius
|
|
16112
|
+
}),
|
|
16113
|
+
...props
|
|
16114
|
+
});
|
|
16115
|
+
};
|
|
16116
|
+
var Arrow = Internals.wrapInSchema({
|
|
16117
|
+
Component: ArrowInner,
|
|
16118
|
+
componentIdentity: "dev.remotion.shapes.Arrow",
|
|
16119
|
+
schema: arrowSchema,
|
|
16120
|
+
supportsEffects: true
|
|
16121
|
+
});
|
|
16122
|
+
Internals.addSequenceStackTraces(Arrow);
|
|
16123
|
+
var shortenVector = (vector, radius) => {
|
|
16124
|
+
const [x, y] = vector;
|
|
16125
|
+
const currentLength = Math.sqrt(x * x + y * y);
|
|
16126
|
+
const scalingFactor = (currentLength - radius) / currentLength;
|
|
16127
|
+
return [x * scalingFactor, y * scalingFactor];
|
|
16128
|
+
};
|
|
16129
|
+
var scaleVectorToLength = (vector, length2) => {
|
|
16130
|
+
const [x, y] = vector;
|
|
16131
|
+
const currentLength = Math.sqrt(x * x + y * y);
|
|
16132
|
+
const scalingFactor = length2 / currentLength;
|
|
16133
|
+
return [x * scalingFactor, y * scalingFactor];
|
|
16134
|
+
};
|
|
16135
|
+
var joinPoints = (points, {
|
|
16136
|
+
edgeRoundness,
|
|
16137
|
+
cornerRadius,
|
|
16138
|
+
roundCornerStrategy
|
|
16139
|
+
}) => {
|
|
16140
|
+
return points.map(([x, y], i) => {
|
|
16141
|
+
const prevPointIndex = i === 0 ? points.length - 2 : i - 1;
|
|
16142
|
+
const prevPoint = points[prevPointIndex];
|
|
16143
|
+
const nextPointIndex = i === points.length - 1 ? 1 : i + 1;
|
|
16144
|
+
const nextPoint = points[nextPointIndex];
|
|
16145
|
+
const middleOfLine = [(x + nextPoint[0]) / 2, (y + nextPoint[1]) / 2];
|
|
16146
|
+
const prevPointMiddleOfLine = [
|
|
16147
|
+
(x + prevPoint[0]) / 2,
|
|
16148
|
+
(y + prevPoint[1]) / 2
|
|
16149
|
+
];
|
|
16150
|
+
const prevVector = [x - prevPoint[0], y - prevPoint[1]];
|
|
16151
|
+
const nextVector = [nextPoint[0] - x, nextPoint[1] - y];
|
|
16152
|
+
if (i === 0) {
|
|
16153
|
+
if (edgeRoundness !== null) {
|
|
16154
|
+
return [
|
|
16155
|
+
{
|
|
16156
|
+
type: "M",
|
|
16157
|
+
x: middleOfLine[0],
|
|
16158
|
+
y: middleOfLine[1]
|
|
16159
|
+
}
|
|
16160
|
+
];
|
|
16161
|
+
}
|
|
16162
|
+
if (cornerRadius !== 0) {
|
|
16163
|
+
const computeRadius = shortenVector(nextVector, cornerRadius);
|
|
16164
|
+
return [
|
|
16165
|
+
{
|
|
16166
|
+
type: "M",
|
|
16167
|
+
x: computeRadius[0] + x,
|
|
16168
|
+
y: computeRadius[1] + y
|
|
16169
|
+
}
|
|
16170
|
+
];
|
|
16171
|
+
}
|
|
16172
|
+
return [
|
|
16173
|
+
{
|
|
16174
|
+
type: "M",
|
|
16175
|
+
x,
|
|
16176
|
+
y
|
|
16177
|
+
}
|
|
16178
|
+
];
|
|
16179
|
+
}
|
|
16180
|
+
if (cornerRadius && edgeRoundness !== null) {
|
|
16181
|
+
throw new Error(`"cornerRadius" and "edgeRoundness" cannot be specified at the same time.`);
|
|
16182
|
+
}
|
|
16183
|
+
if (edgeRoundness === null) {
|
|
16184
|
+
if (cornerRadius === 0) {
|
|
16185
|
+
return [
|
|
16186
|
+
{
|
|
16187
|
+
type: "L",
|
|
16188
|
+
x,
|
|
16189
|
+
y
|
|
16190
|
+
}
|
|
16191
|
+
];
|
|
16192
|
+
}
|
|
16193
|
+
const prevVectorMinusRadius = shortenVector(prevVector, cornerRadius);
|
|
16194
|
+
const prevVectorLength = scaleVectorToLength(prevVector, cornerRadius);
|
|
16195
|
+
const nextVectorMinusRadius = scaleVectorToLength(nextVector, cornerRadius);
|
|
16196
|
+
const firstDraw = [
|
|
16197
|
+
prevPoint[0] + prevVectorMinusRadius[0],
|
|
16198
|
+
prevPoint[1] + prevVectorMinusRadius[1]
|
|
16199
|
+
];
|
|
16200
|
+
return [
|
|
16201
|
+
{
|
|
16202
|
+
type: "L",
|
|
16203
|
+
x: firstDraw[0],
|
|
16204
|
+
y: firstDraw[1]
|
|
16205
|
+
},
|
|
16206
|
+
roundCornerStrategy === "arc" ? {
|
|
16207
|
+
type: "a",
|
|
16208
|
+
rx: cornerRadius,
|
|
16209
|
+
ry: cornerRadius,
|
|
16210
|
+
xAxisRotation: 0,
|
|
16211
|
+
dx: prevVectorLength[0] + nextVectorMinusRadius[0],
|
|
16212
|
+
dy: prevVectorLength[1] + nextVectorMinusRadius[1],
|
|
16213
|
+
largeArcFlag: false,
|
|
16214
|
+
sweepFlag: true
|
|
16215
|
+
} : {
|
|
16216
|
+
type: "C",
|
|
16217
|
+
x: firstDraw[0] + prevVectorLength[0] + nextVectorMinusRadius[0],
|
|
16218
|
+
y: firstDraw[1] + prevVectorLength[1] + nextVectorMinusRadius[1],
|
|
16219
|
+
cp1x: x,
|
|
16220
|
+
cp1y: y,
|
|
16221
|
+
cp2x: x,
|
|
16222
|
+
cp2y: y
|
|
16223
|
+
}
|
|
16224
|
+
];
|
|
16225
|
+
}
|
|
16226
|
+
const controlPoint1 = [
|
|
16227
|
+
prevPointMiddleOfLine[0] + prevVector[0] * edgeRoundness * 0.5,
|
|
16228
|
+
prevPointMiddleOfLine[1] + prevVector[1] * edgeRoundness * 0.5
|
|
16229
|
+
];
|
|
16230
|
+
const controlPoint2 = [
|
|
16231
|
+
middleOfLine[0] - nextVector[0] * edgeRoundness * 0.5,
|
|
16232
|
+
middleOfLine[1] - nextVector[1] * edgeRoundness * 0.5
|
|
16233
|
+
];
|
|
16234
|
+
return [
|
|
16235
|
+
{
|
|
16236
|
+
type: "C",
|
|
16237
|
+
cp1x: controlPoint1[0],
|
|
16238
|
+
cp1y: controlPoint1[1],
|
|
16239
|
+
cp2x: controlPoint2[0],
|
|
16240
|
+
cp2y: controlPoint2[1],
|
|
16241
|
+
x: middleOfLine[0],
|
|
16242
|
+
y: middleOfLine[1]
|
|
16243
|
+
}
|
|
16244
|
+
];
|
|
16245
|
+
}).flat(1);
|
|
16246
|
+
};
|
|
16247
|
+
var ensurePositive = (name, value) => {
|
|
16248
|
+
if (typeof value !== "number" || value <= 0) {
|
|
16249
|
+
throw new Error(`"${name}" must be a positive number, got ${value}`);
|
|
16250
|
+
}
|
|
16251
|
+
};
|
|
16252
|
+
var pointerInterval = ({
|
|
16253
|
+
availableLength,
|
|
16254
|
+
pointerBaseWidth,
|
|
16255
|
+
pointerPosition
|
|
16256
|
+
}) => {
|
|
16257
|
+
const center = availableLength * pointerPosition;
|
|
16258
|
+
const half = pointerBaseWidth / 2;
|
|
16259
|
+
return {
|
|
16260
|
+
center,
|
|
16261
|
+
start: Math.max(0, center - half),
|
|
16262
|
+
end: Math.min(availableLength, center + half)
|
|
16263
|
+
};
|
|
16264
|
+
};
|
|
16265
|
+
var areSamePoint = (a2, b2) => {
|
|
16266
|
+
return a2[0] === b2[0] && a2[1] === b2[1];
|
|
16267
|
+
};
|
|
16268
|
+
var normalizeClosedPoints = (points) => {
|
|
16269
|
+
const deduplicated = points.reduce((acc, entry) => {
|
|
16270
|
+
const previous = acc[acc.length - 1];
|
|
16271
|
+
if (previous && areSamePoint(previous.point, entry.point)) {
|
|
16272
|
+
acc[acc.length - 1] = {
|
|
16273
|
+
point: previous.point,
|
|
16274
|
+
round: previous.round && entry.round
|
|
16275
|
+
};
|
|
16276
|
+
return acc;
|
|
16277
|
+
}
|
|
16278
|
+
return [...acc, entry];
|
|
16279
|
+
}, []);
|
|
16280
|
+
if (deduplicated.length === 0) {
|
|
16281
|
+
return deduplicated;
|
|
16282
|
+
}
|
|
16283
|
+
const first = deduplicated[0];
|
|
16284
|
+
const last = deduplicated[deduplicated.length - 1];
|
|
16285
|
+
if (areSamePoint(first.point, last.point)) {
|
|
16286
|
+
const [firstEntry, ...rest] = deduplicated;
|
|
16287
|
+
const withoutLast = rest.slice(0, -1);
|
|
16288
|
+
const mergedFirst = {
|
|
16289
|
+
point: firstEntry.point,
|
|
16290
|
+
round: firstEntry.round && last.round
|
|
16291
|
+
};
|
|
16292
|
+
return [mergedFirst, ...withoutLast, mergedFirst];
|
|
16293
|
+
}
|
|
16294
|
+
return [...deduplicated, first];
|
|
16295
|
+
};
|
|
16296
|
+
var unitDir2 = (from, to) => {
|
|
16297
|
+
const dx = to[0] - from[0];
|
|
16298
|
+
const dy = to[1] - from[1];
|
|
16299
|
+
const len = Math.sqrt(dx * dx + dy * dy);
|
|
16300
|
+
if (len === 0) {
|
|
16301
|
+
return [0, 0];
|
|
16302
|
+
}
|
|
16303
|
+
return [dx / len, dy / len];
|
|
16304
|
+
};
|
|
16305
|
+
var makeInstructions2 = ({
|
|
16306
|
+
points,
|
|
16307
|
+
edgeRoundness,
|
|
16308
|
+
cornerRadius
|
|
16309
|
+
}) => {
|
|
16310
|
+
const rawPoints = points.map((p) => p.point);
|
|
16311
|
+
if (edgeRoundness !== null || cornerRadius === 0) {
|
|
16312
|
+
return [
|
|
16313
|
+
...joinPoints(rawPoints, {
|
|
16314
|
+
edgeRoundness,
|
|
16315
|
+
cornerRadius,
|
|
16316
|
+
roundCornerStrategy: "arc"
|
|
16317
|
+
}),
|
|
16318
|
+
{
|
|
16319
|
+
type: "Z"
|
|
16320
|
+
}
|
|
16321
|
+
];
|
|
16322
|
+
}
|
|
16323
|
+
const uniquePoints = areSamePoint(points[0].point, points[points.length - 1].point) ? points.slice(0, -1) : points;
|
|
16324
|
+
const firstPoint = uniquePoints[0];
|
|
16325
|
+
const startDir = firstPoint.round ? unitDir2(uniquePoints[0].point, uniquePoints[1].point) : null;
|
|
16326
|
+
const startPoint = startDir ? [
|
|
16327
|
+
firstPoint.point[0] + startDir[0] * cornerRadius,
|
|
16328
|
+
firstPoint.point[1] + startDir[1] * cornerRadius
|
|
16329
|
+
] : firstPoint.point;
|
|
16330
|
+
const instructions = [
|
|
16331
|
+
{ type: "M", x: startPoint[0], y: startPoint[1] }
|
|
16332
|
+
];
|
|
16333
|
+
for (let i = 1;i < uniquePoints.length; i++) {
|
|
16334
|
+
const current = uniquePoints[i];
|
|
16335
|
+
if (!current.round) {
|
|
16336
|
+
instructions.push({
|
|
16337
|
+
type: "L",
|
|
16338
|
+
x: current.point[0],
|
|
16339
|
+
y: current.point[1]
|
|
16340
|
+
});
|
|
16341
|
+
continue;
|
|
16342
|
+
}
|
|
16343
|
+
const previous = uniquePoints[i - 1].point;
|
|
16344
|
+
const next = uniquePoints[(i + 1) % uniquePoints.length].point;
|
|
16345
|
+
const incoming = unitDir2(previous, current.point);
|
|
16346
|
+
const outgoing = unitDir2(current.point, next);
|
|
16347
|
+
const arcStart = [
|
|
16348
|
+
current.point[0] - incoming[0] * cornerRadius,
|
|
16349
|
+
current.point[1] - incoming[1] * cornerRadius
|
|
16350
|
+
];
|
|
16351
|
+
instructions.push({
|
|
16352
|
+
type: "L",
|
|
16353
|
+
x: arcStart[0],
|
|
16354
|
+
y: arcStart[1]
|
|
16355
|
+
}, {
|
|
16356
|
+
type: "a",
|
|
16357
|
+
rx: cornerRadius,
|
|
16358
|
+
ry: cornerRadius,
|
|
16359
|
+
xAxisRotation: 0,
|
|
16360
|
+
dx: incoming[0] * cornerRadius + outgoing[0] * cornerRadius,
|
|
16361
|
+
dy: incoming[1] * cornerRadius + outgoing[1] * cornerRadius,
|
|
16362
|
+
largeArcFlag: false,
|
|
16363
|
+
sweepFlag: true
|
|
16364
|
+
});
|
|
16365
|
+
}
|
|
16366
|
+
if (firstPoint.round) {
|
|
16367
|
+
const previous = uniquePoints[uniquePoints.length - 1].point;
|
|
16368
|
+
const incoming = unitDir2(previous, firstPoint.point);
|
|
16369
|
+
instructions.push({
|
|
16370
|
+
type: "L",
|
|
16371
|
+
x: firstPoint.point[0] - incoming[0] * cornerRadius,
|
|
16372
|
+
y: firstPoint.point[1] - incoming[1] * cornerRadius
|
|
16373
|
+
}, {
|
|
16374
|
+
type: "a",
|
|
16375
|
+
rx: cornerRadius,
|
|
16376
|
+
ry: cornerRadius,
|
|
16377
|
+
xAxisRotation: 0,
|
|
16378
|
+
dx: incoming[0] * cornerRadius + startDir[0] * cornerRadius,
|
|
16379
|
+
dy: incoming[1] * cornerRadius + startDir[1] * cornerRadius,
|
|
16380
|
+
largeArcFlag: false,
|
|
16381
|
+
sweepFlag: true
|
|
16382
|
+
});
|
|
16383
|
+
}
|
|
16384
|
+
instructions.push({ type: "Z" });
|
|
16385
|
+
return instructions;
|
|
16386
|
+
};
|
|
16387
|
+
var makeCallout = ({
|
|
16388
|
+
width = 500,
|
|
16389
|
+
height = 200,
|
|
16390
|
+
pointerLength = 40,
|
|
16391
|
+
pointerBaseWidth = 60,
|
|
16392
|
+
pointerPosition = 0.5,
|
|
16393
|
+
pointerDirection = "down",
|
|
16394
|
+
edgeRoundness = null,
|
|
16395
|
+
cornerRadius = 0
|
|
15935
16396
|
}) => {
|
|
15936
|
-
|
|
15937
|
-
|
|
15938
|
-
|
|
15939
|
-
|
|
15940
|
-
|
|
16397
|
+
ensurePositive("width", width);
|
|
16398
|
+
ensurePositive("height", height);
|
|
16399
|
+
ensurePositive("pointerLength", pointerLength);
|
|
16400
|
+
ensurePositive("pointerBaseWidth", pointerBaseWidth);
|
|
16401
|
+
if (typeof pointerPosition !== "number" || pointerPosition < 0 || pointerPosition > 1) {
|
|
16402
|
+
throw new Error(`"pointerPosition" must be a number between 0 and 1, got ${pointerPosition}`);
|
|
16403
|
+
}
|
|
16404
|
+
const horizontalInterval = pointerInterval({
|
|
16405
|
+
availableLength: width,
|
|
16406
|
+
pointerBaseWidth,
|
|
16407
|
+
pointerPosition
|
|
16408
|
+
});
|
|
16409
|
+
const verticalInterval = pointerInterval({
|
|
16410
|
+
availableLength: height,
|
|
16411
|
+
pointerBaseWidth,
|
|
16412
|
+
pointerPosition
|
|
16413
|
+
});
|
|
16414
|
+
const pointsByDirection = {
|
|
16415
|
+
up: [
|
|
16416
|
+
{ point: [0, pointerLength], round: true },
|
|
16417
|
+
{ point: [horizontalInterval.start, pointerLength], round: false },
|
|
16418
|
+
{ point: [horizontalInterval.center, 0], round: false },
|
|
16419
|
+
{ point: [horizontalInterval.end, pointerLength], round: false },
|
|
16420
|
+
{ point: [width, pointerLength], round: true },
|
|
16421
|
+
{ point: [width, height + pointerLength], round: true },
|
|
16422
|
+
{ point: [0, height + pointerLength], round: true },
|
|
16423
|
+
{ point: [0, pointerLength], round: true }
|
|
16424
|
+
],
|
|
16425
|
+
down: [
|
|
16426
|
+
{ point: [0, 0], round: true },
|
|
16427
|
+
{ point: [width, 0], round: true },
|
|
16428
|
+
{ point: [width, height], round: true },
|
|
16429
|
+
{ point: [horizontalInterval.end, height], round: false },
|
|
16430
|
+
{
|
|
16431
|
+
point: [horizontalInterval.center, height + pointerLength],
|
|
16432
|
+
round: false
|
|
16433
|
+
},
|
|
16434
|
+
{ point: [horizontalInterval.start, height], round: false },
|
|
16435
|
+
{ point: [0, height], round: true },
|
|
16436
|
+
{ point: [0, 0], round: true }
|
|
16437
|
+
],
|
|
16438
|
+
left: [
|
|
16439
|
+
{ point: [pointerLength, 0], round: true },
|
|
16440
|
+
{ point: [width + pointerLength, 0], round: true },
|
|
16441
|
+
{ point: [width + pointerLength, height], round: true },
|
|
16442
|
+
{ point: [pointerLength, height], round: true },
|
|
16443
|
+
{ point: [pointerLength, verticalInterval.end], round: false },
|
|
16444
|
+
{ point: [0, verticalInterval.center], round: false },
|
|
16445
|
+
{ point: [pointerLength, verticalInterval.start], round: false },
|
|
16446
|
+
{ point: [pointerLength, 0], round: true }
|
|
16447
|
+
],
|
|
16448
|
+
right: [
|
|
16449
|
+
{ point: [0, 0], round: true },
|
|
16450
|
+
{ point: [width, 0], round: true },
|
|
16451
|
+
{ point: [width, verticalInterval.start], round: false },
|
|
16452
|
+
{ point: [width + pointerLength, verticalInterval.center], round: false },
|
|
16453
|
+
{ point: [width, verticalInterval.end], round: false },
|
|
16454
|
+
{ point: [width, height], round: true },
|
|
16455
|
+
{ point: [0, height], round: true },
|
|
16456
|
+
{ point: [0, 0], round: true }
|
|
16457
|
+
]
|
|
15941
16458
|
};
|
|
15942
|
-
|
|
15943
|
-
|
|
16459
|
+
const points = normalizeClosedPoints(pointsByDirection[pointerDirection]);
|
|
16460
|
+
const instructions = makeInstructions2({ points, edgeRoundness, cornerRadius });
|
|
16461
|
+
const path = serializeInstructions(instructions);
|
|
16462
|
+
const shapeWidth = pointerDirection === "left" || pointerDirection === "right" ? width + pointerLength : width;
|
|
16463
|
+
const shapeHeight = pointerDirection === "up" || pointerDirection === "down" ? height + pointerLength : height;
|
|
16464
|
+
const bodyX = pointerDirection === "left" ? pointerLength : 0;
|
|
16465
|
+
const bodyY = pointerDirection === "up" ? pointerLength : 0;
|
|
15944
16466
|
return {
|
|
15945
|
-
|
|
15946
|
-
|
|
15947
|
-
|
|
15948
|
-
|
|
15949
|
-
|
|
15950
|
-
description: "Fill"
|
|
15951
|
-
}),
|
|
15952
|
-
...Internals.sequenceVisualStyleSchema,
|
|
15953
|
-
hidden: Internals.sequenceSchema.hidden
|
|
16467
|
+
width: shapeWidth,
|
|
16468
|
+
height: shapeHeight,
|
|
16469
|
+
instructions,
|
|
16470
|
+
path,
|
|
16471
|
+
transformOrigin: `${bodyX + width / 2} ${bodyY + height / 2}`
|
|
15954
16472
|
};
|
|
15955
16473
|
};
|
|
15956
|
-
var
|
|
15957
|
-
|
|
15958
|
-
defaultValue:
|
|
15959
|
-
description: "
|
|
15960
|
-
min:
|
|
16474
|
+
var calloutSchema = makeShapeSchema({
|
|
16475
|
+
width: numberField({
|
|
16476
|
+
defaultValue: 500,
|
|
16477
|
+
description: "Width",
|
|
16478
|
+
min: 1
|
|
15961
16479
|
}),
|
|
15962
|
-
|
|
15963
|
-
defaultValue:
|
|
15964
|
-
description: "
|
|
15965
|
-
min:
|
|
16480
|
+
height: numberField({
|
|
16481
|
+
defaultValue: 200,
|
|
16482
|
+
description: "Height",
|
|
16483
|
+
min: 1
|
|
15966
16484
|
}),
|
|
15967
|
-
|
|
15968
|
-
defaultValue:
|
|
15969
|
-
description: "
|
|
15970
|
-
min:
|
|
16485
|
+
pointerLength: numberField({
|
|
16486
|
+
defaultValue: 40,
|
|
16487
|
+
description: "Pointer Length",
|
|
16488
|
+
min: 1
|
|
15971
16489
|
}),
|
|
15972
|
-
|
|
15973
|
-
defaultValue:
|
|
15974
|
-
description: "
|
|
15975
|
-
min:
|
|
16490
|
+
pointerBaseWidth: numberField({
|
|
16491
|
+
defaultValue: 60,
|
|
16492
|
+
description: "Pointer Base Width",
|
|
16493
|
+
min: 1
|
|
15976
16494
|
}),
|
|
15977
|
-
|
|
15978
|
-
defaultValue:
|
|
15979
|
-
description: "
|
|
15980
|
-
|
|
16495
|
+
pointerPosition: numberField({
|
|
16496
|
+
defaultValue: 0.5,
|
|
16497
|
+
description: "Pointer Position",
|
|
16498
|
+
min: 0,
|
|
16499
|
+
max: 1,
|
|
16500
|
+
step: 0.01
|
|
16501
|
+
}),
|
|
16502
|
+
pointerDirection: enumField({
|
|
16503
|
+
defaultValue: "down",
|
|
16504
|
+
description: "Pointer Direction",
|
|
16505
|
+
variants: ["up", "down", "left", "right"]
|
|
15981
16506
|
}),
|
|
15982
16507
|
cornerRadius: numberField({
|
|
15983
16508
|
defaultValue: 0,
|
|
@@ -15985,35 +16510,40 @@ var arrowSchema = makeShapeSchema({
|
|
|
15985
16510
|
min: 0
|
|
15986
16511
|
})
|
|
15987
16512
|
});
|
|
15988
|
-
var
|
|
15989
|
-
|
|
15990
|
-
|
|
15991
|
-
|
|
15992
|
-
|
|
15993
|
-
|
|
16513
|
+
var CalloutInner = ({
|
|
16514
|
+
width,
|
|
16515
|
+
height,
|
|
16516
|
+
pointerLength,
|
|
16517
|
+
pointerBaseWidth,
|
|
16518
|
+
pointerPosition,
|
|
16519
|
+
pointerDirection,
|
|
16520
|
+
edgeRoundness,
|
|
15994
16521
|
cornerRadius,
|
|
15995
16522
|
...props
|
|
15996
16523
|
}) => {
|
|
15997
|
-
return /* @__PURE__ */
|
|
15998
|
-
defaultName: "<
|
|
15999
|
-
documentationLink: "https://www.remotion.dev/docs/shapes/
|
|
16000
|
-
...
|
|
16001
|
-
|
|
16002
|
-
|
|
16003
|
-
|
|
16004
|
-
|
|
16005
|
-
|
|
16524
|
+
return /* @__PURE__ */ jsx310(RenderSvg, {
|
|
16525
|
+
defaultName: "<Callout>",
|
|
16526
|
+
documentationLink: "https://www.remotion.dev/docs/shapes/callout",
|
|
16527
|
+
...makeCallout({
|
|
16528
|
+
width,
|
|
16529
|
+
height,
|
|
16530
|
+
pointerLength,
|
|
16531
|
+
pointerBaseWidth,
|
|
16532
|
+
pointerPosition,
|
|
16533
|
+
pointerDirection,
|
|
16534
|
+
edgeRoundness,
|
|
16006
16535
|
cornerRadius
|
|
16007
16536
|
}),
|
|
16008
16537
|
...props
|
|
16009
16538
|
});
|
|
16010
16539
|
};
|
|
16011
|
-
var
|
|
16012
|
-
Component:
|
|
16013
|
-
|
|
16540
|
+
var Callout = Internals.wrapInSchema({
|
|
16541
|
+
Component: CalloutInner,
|
|
16542
|
+
componentIdentity: "dev.remotion.shapes.Callout",
|
|
16543
|
+
schema: calloutSchema,
|
|
16014
16544
|
supportsEffects: true
|
|
16015
16545
|
});
|
|
16016
|
-
Internals.addSequenceStackTraces(
|
|
16546
|
+
Internals.addSequenceStackTraces(Callout);
|
|
16017
16547
|
var makeCircle = ({ radius }) => {
|
|
16018
16548
|
const instructions = [
|
|
16019
16549
|
{
|
|
@@ -16062,7 +16592,7 @@ var circleSchema = makeShapeSchema({
|
|
|
16062
16592
|
})
|
|
16063
16593
|
});
|
|
16064
16594
|
var CircleInner = ({ radius, ...props }) => {
|
|
16065
|
-
return /* @__PURE__ */
|
|
16595
|
+
return /* @__PURE__ */ jsx42(RenderSvg, {
|
|
16066
16596
|
defaultName: "<Circle>",
|
|
16067
16597
|
documentationLink: "https://www.remotion.dev/docs/shapes/circle",
|
|
16068
16598
|
...makeCircle({ radius }),
|
|
@@ -16071,6 +16601,7 @@ var CircleInner = ({ radius, ...props }) => {
|
|
|
16071
16601
|
};
|
|
16072
16602
|
var Circle = Internals.wrapInSchema({
|
|
16073
16603
|
Component: CircleInner,
|
|
16604
|
+
componentIdentity: "dev.remotion.shapes.Circle",
|
|
16074
16605
|
schema: circleSchema,
|
|
16075
16606
|
supportsEffects: true
|
|
16076
16607
|
});
|
|
@@ -16118,7 +16649,7 @@ var ellipseSchema = makeShapeSchema({
|
|
|
16118
16649
|
})
|
|
16119
16650
|
});
|
|
16120
16651
|
var EllipseInner = ({ rx, ry, ...props }) => {
|
|
16121
|
-
return /* @__PURE__ */
|
|
16652
|
+
return /* @__PURE__ */ jsx52(RenderSvg, {
|
|
16122
16653
|
defaultName: "<Ellipse>",
|
|
16123
16654
|
documentationLink: "https://www.remotion.dev/docs/shapes/ellipse",
|
|
16124
16655
|
...makeEllipse({ rx, ry }),
|
|
@@ -16127,6 +16658,7 @@ var EllipseInner = ({ rx, ry, ...props }) => {
|
|
|
16127
16658
|
};
|
|
16128
16659
|
var Ellipse = Internals.wrapInSchema({
|
|
16129
16660
|
Component: EllipseInner,
|
|
16661
|
+
componentIdentity: "dev.remotion.shapes.Ellipse",
|
|
16130
16662
|
schema: ellipseSchema,
|
|
16131
16663
|
supportsEffects: true
|
|
16132
16664
|
});
|
|
@@ -16250,7 +16782,7 @@ var HeartInner = ({
|
|
|
16250
16782
|
depthAdjustment = 0,
|
|
16251
16783
|
...props
|
|
16252
16784
|
}) => {
|
|
16253
|
-
return /* @__PURE__ */
|
|
16785
|
+
return /* @__PURE__ */ jsx62(RenderSvg, {
|
|
16254
16786
|
defaultName: "<Heart>",
|
|
16255
16787
|
documentationLink: "https://www.remotion.dev/docs/shapes/heart",
|
|
16256
16788
|
...makeHeart({
|
|
@@ -16264,6 +16796,7 @@ var HeartInner = ({
|
|
|
16264
16796
|
};
|
|
16265
16797
|
var Heart = Internals.wrapInSchema({
|
|
16266
16798
|
Component: HeartInner,
|
|
16799
|
+
componentIdentity: "dev.remotion.shapes.Heart",
|
|
16267
16800
|
schema: heartSchema,
|
|
16268
16801
|
supportsEffects: true
|
|
16269
16802
|
});
|
|
@@ -16408,7 +16941,7 @@ var PieInner = ({
|
|
|
16408
16941
|
rotation,
|
|
16409
16942
|
...props
|
|
16410
16943
|
}) => {
|
|
16411
|
-
return /* @__PURE__ */
|
|
16944
|
+
return /* @__PURE__ */ jsx72(RenderSvg, {
|
|
16412
16945
|
defaultName: "<Pie>",
|
|
16413
16946
|
documentationLink: "https://www.remotion.dev/docs/shapes/pie",
|
|
16414
16947
|
...makePie({ radius, progress, closePath, counterClockwise, rotation }),
|
|
@@ -16417,134 +16950,11 @@ var PieInner = ({
|
|
|
16417
16950
|
};
|
|
16418
16951
|
var Pie = Internals.wrapInSchema({
|
|
16419
16952
|
Component: PieInner,
|
|
16953
|
+
componentIdentity: "dev.remotion.shapes.Pie",
|
|
16420
16954
|
schema: pieSchema,
|
|
16421
16955
|
supportsEffects: true
|
|
16422
16956
|
});
|
|
16423
16957
|
Internals.addSequenceStackTraces(Pie);
|
|
16424
|
-
var shortenVector = (vector, radius) => {
|
|
16425
|
-
const [x, y] = vector;
|
|
16426
|
-
const currentLength = Math.sqrt(x * x + y * y);
|
|
16427
|
-
const scalingFactor = (currentLength - radius) / currentLength;
|
|
16428
|
-
return [x * scalingFactor, y * scalingFactor];
|
|
16429
|
-
};
|
|
16430
|
-
var scaleVectorToLength = (vector, length2) => {
|
|
16431
|
-
const [x, y] = vector;
|
|
16432
|
-
const currentLength = Math.sqrt(x * x + y * y);
|
|
16433
|
-
const scalingFactor = length2 / currentLength;
|
|
16434
|
-
return [x * scalingFactor, y * scalingFactor];
|
|
16435
|
-
};
|
|
16436
|
-
var joinPoints = (points, {
|
|
16437
|
-
edgeRoundness,
|
|
16438
|
-
cornerRadius,
|
|
16439
|
-
roundCornerStrategy
|
|
16440
|
-
}) => {
|
|
16441
|
-
return points.map(([x, y], i) => {
|
|
16442
|
-
const prevPointIndex = i === 0 ? points.length - 2 : i - 1;
|
|
16443
|
-
const prevPoint = points[prevPointIndex];
|
|
16444
|
-
const nextPointIndex = i === points.length - 1 ? 1 : i + 1;
|
|
16445
|
-
const nextPoint = points[nextPointIndex];
|
|
16446
|
-
const middleOfLine = [(x + nextPoint[0]) / 2, (y + nextPoint[1]) / 2];
|
|
16447
|
-
const prevPointMiddleOfLine = [
|
|
16448
|
-
(x + prevPoint[0]) / 2,
|
|
16449
|
-
(y + prevPoint[1]) / 2
|
|
16450
|
-
];
|
|
16451
|
-
const prevVector = [x - prevPoint[0], y - prevPoint[1]];
|
|
16452
|
-
const nextVector = [nextPoint[0] - x, nextPoint[1] - y];
|
|
16453
|
-
if (i === 0) {
|
|
16454
|
-
if (edgeRoundness !== null) {
|
|
16455
|
-
return [
|
|
16456
|
-
{
|
|
16457
|
-
type: "M",
|
|
16458
|
-
x: middleOfLine[0],
|
|
16459
|
-
y: middleOfLine[1]
|
|
16460
|
-
}
|
|
16461
|
-
];
|
|
16462
|
-
}
|
|
16463
|
-
if (cornerRadius !== 0) {
|
|
16464
|
-
const computeRadius = shortenVector(nextVector, cornerRadius);
|
|
16465
|
-
return [
|
|
16466
|
-
{
|
|
16467
|
-
type: "M",
|
|
16468
|
-
x: computeRadius[0] + x,
|
|
16469
|
-
y: computeRadius[1] + y
|
|
16470
|
-
}
|
|
16471
|
-
];
|
|
16472
|
-
}
|
|
16473
|
-
return [
|
|
16474
|
-
{
|
|
16475
|
-
type: "M",
|
|
16476
|
-
x,
|
|
16477
|
-
y
|
|
16478
|
-
}
|
|
16479
|
-
];
|
|
16480
|
-
}
|
|
16481
|
-
if (cornerRadius && edgeRoundness !== null) {
|
|
16482
|
-
throw new Error(`"cornerRadius" and "edgeRoundness" cannot be specified at the same time.`);
|
|
16483
|
-
}
|
|
16484
|
-
if (edgeRoundness === null) {
|
|
16485
|
-
if (cornerRadius === 0) {
|
|
16486
|
-
return [
|
|
16487
|
-
{
|
|
16488
|
-
type: "L",
|
|
16489
|
-
x,
|
|
16490
|
-
y
|
|
16491
|
-
}
|
|
16492
|
-
];
|
|
16493
|
-
}
|
|
16494
|
-
const prevVectorMinusRadius = shortenVector(prevVector, cornerRadius);
|
|
16495
|
-
const prevVectorLength = scaleVectorToLength(prevVector, cornerRadius);
|
|
16496
|
-
const nextVectorMinusRadius = scaleVectorToLength(nextVector, cornerRadius);
|
|
16497
|
-
const firstDraw = [
|
|
16498
|
-
prevPoint[0] + prevVectorMinusRadius[0],
|
|
16499
|
-
prevPoint[1] + prevVectorMinusRadius[1]
|
|
16500
|
-
];
|
|
16501
|
-
return [
|
|
16502
|
-
{
|
|
16503
|
-
type: "L",
|
|
16504
|
-
x: firstDraw[0],
|
|
16505
|
-
y: firstDraw[1]
|
|
16506
|
-
},
|
|
16507
|
-
roundCornerStrategy === "arc" ? {
|
|
16508
|
-
type: "a",
|
|
16509
|
-
rx: cornerRadius,
|
|
16510
|
-
ry: cornerRadius,
|
|
16511
|
-
xAxisRotation: 0,
|
|
16512
|
-
dx: prevVectorLength[0] + nextVectorMinusRadius[0],
|
|
16513
|
-
dy: prevVectorLength[1] + nextVectorMinusRadius[1],
|
|
16514
|
-
largeArcFlag: false,
|
|
16515
|
-
sweepFlag: true
|
|
16516
|
-
} : {
|
|
16517
|
-
type: "C",
|
|
16518
|
-
x: firstDraw[0] + prevVectorLength[0] + nextVectorMinusRadius[0],
|
|
16519
|
-
y: firstDraw[1] + prevVectorLength[1] + nextVectorMinusRadius[1],
|
|
16520
|
-
cp1x: x,
|
|
16521
|
-
cp1y: y,
|
|
16522
|
-
cp2x: x,
|
|
16523
|
-
cp2y: y
|
|
16524
|
-
}
|
|
16525
|
-
];
|
|
16526
|
-
}
|
|
16527
|
-
const controlPoint1 = [
|
|
16528
|
-
prevPointMiddleOfLine[0] + prevVector[0] * edgeRoundness * 0.5,
|
|
16529
|
-
prevPointMiddleOfLine[1] + prevVector[1] * edgeRoundness * 0.5
|
|
16530
|
-
];
|
|
16531
|
-
const controlPoint2 = [
|
|
16532
|
-
middleOfLine[0] - nextVector[0] * edgeRoundness * 0.5,
|
|
16533
|
-
middleOfLine[1] - nextVector[1] * edgeRoundness * 0.5
|
|
16534
|
-
];
|
|
16535
|
-
return [
|
|
16536
|
-
{
|
|
16537
|
-
type: "C",
|
|
16538
|
-
cp1x: controlPoint1[0],
|
|
16539
|
-
cp1y: controlPoint1[1],
|
|
16540
|
-
cp2x: controlPoint2[0],
|
|
16541
|
-
cp2y: controlPoint2[1],
|
|
16542
|
-
x: middleOfLine[0],
|
|
16543
|
-
y: middleOfLine[1]
|
|
16544
|
-
}
|
|
16545
|
-
];
|
|
16546
|
-
}).flat(1);
|
|
16547
|
-
};
|
|
16548
16958
|
function polygon({
|
|
16549
16959
|
points,
|
|
16550
16960
|
radius,
|
|
@@ -16625,7 +17035,7 @@ var PolygonInner = ({
|
|
|
16625
17035
|
edgeRoundness,
|
|
16626
17036
|
...props
|
|
16627
17037
|
}) => {
|
|
16628
|
-
return /* @__PURE__ */
|
|
17038
|
+
return /* @__PURE__ */ jsx82(RenderSvg, {
|
|
16629
17039
|
defaultName: "<Polygon>",
|
|
16630
17040
|
documentationLink: "https://www.remotion.dev/docs/shapes/polygon",
|
|
16631
17041
|
...makePolygon({
|
|
@@ -16639,6 +17049,7 @@ var PolygonInner = ({
|
|
|
16639
17049
|
};
|
|
16640
17050
|
var Polygon = Internals.wrapInSchema({
|
|
16641
17051
|
Component: PolygonInner,
|
|
17052
|
+
componentIdentity: "dev.remotion.shapes.Polygon",
|
|
16642
17053
|
schema: polygonSchema,
|
|
16643
17054
|
supportsEffects: true
|
|
16644
17055
|
});
|
|
@@ -16695,7 +17106,7 @@ var RectInner = ({
|
|
|
16695
17106
|
cornerRadius,
|
|
16696
17107
|
...props
|
|
16697
17108
|
}) => {
|
|
16698
|
-
return /* @__PURE__ */
|
|
17109
|
+
return /* @__PURE__ */ jsx92(RenderSvg, {
|
|
16699
17110
|
defaultName: "<Rect>",
|
|
16700
17111
|
documentationLink: "https://www.remotion.dev/docs/shapes/rect",
|
|
16701
17112
|
...makeRect({ height, width, edgeRoundness, cornerRadius }),
|
|
@@ -16704,6 +17115,7 @@ var RectInner = ({
|
|
|
16704
17115
|
};
|
|
16705
17116
|
var Rect = Internals.wrapInSchema({
|
|
16706
17117
|
Component: RectInner,
|
|
17118
|
+
componentIdentity: "dev.remotion.shapes.Rect",
|
|
16707
17119
|
schema: rectSchema,
|
|
16708
17120
|
supportsEffects: true
|
|
16709
17121
|
});
|
|
@@ -16798,7 +17210,7 @@ var StarInner = ({
|
|
|
16798
17210
|
edgeRoundness,
|
|
16799
17211
|
...props
|
|
16800
17212
|
}) => {
|
|
16801
|
-
return /* @__PURE__ */
|
|
17213
|
+
return /* @__PURE__ */ jsx102(RenderSvg, {
|
|
16802
17214
|
defaultName: "<Star>",
|
|
16803
17215
|
documentationLink: "https://www.remotion.dev/docs/shapes/star",
|
|
16804
17216
|
...makeStar({
|
|
@@ -16813,6 +17225,7 @@ var StarInner = ({
|
|
|
16813
17225
|
};
|
|
16814
17226
|
var Star = Internals.wrapInSchema({
|
|
16815
17227
|
Component: StarInner,
|
|
17228
|
+
componentIdentity: "dev.remotion.shapes.Star",
|
|
16816
17229
|
schema: starSchema,
|
|
16817
17230
|
supportsEffects: true
|
|
16818
17231
|
});
|
|
@@ -16909,7 +17322,7 @@ var TriangleInner = ({
|
|
|
16909
17322
|
cornerRadius,
|
|
16910
17323
|
...props
|
|
16911
17324
|
}) => {
|
|
16912
|
-
return /* @__PURE__ */
|
|
17325
|
+
return /* @__PURE__ */ jsx112(RenderSvg, {
|
|
16913
17326
|
defaultName: "<Triangle>",
|
|
16914
17327
|
documentationLink: "https://www.remotion.dev/docs/shapes/triangle",
|
|
16915
17328
|
...makeTriangle({ length: length2, direction, edgeRoundness, cornerRadius }),
|
|
@@ -16918,6 +17331,7 @@ var TriangleInner = ({
|
|
|
16918
17331
|
};
|
|
16919
17332
|
var Triangle = Internals.wrapInSchema({
|
|
16920
17333
|
Component: TriangleInner,
|
|
17334
|
+
componentIdentity: "dev.remotion.shapes.Triangle",
|
|
16921
17335
|
schema: triangleSchema,
|
|
16922
17336
|
supportsEffects: true
|
|
16923
17337
|
});
|
|
@@ -17998,7 +18412,7 @@ import { jsx as jsx83, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
|
17998
18412
|
import { jsx as jsx93 } from "react/jsx-runtime";
|
|
17999
18413
|
import React72 from "react";
|
|
18000
18414
|
import { jsx as jsx103 } from "react/jsx-runtime";
|
|
18001
|
-
import { jsx as
|
|
18415
|
+
import { jsx as jsx113 } from "react/jsx-runtime";
|
|
18002
18416
|
import { jsx as jsx122 } from "react/jsx-runtime";
|
|
18003
18417
|
import * as React36 from "react";
|
|
18004
18418
|
import * as ReactDOM4 from "react-dom";
|
|
@@ -18558,7 +18972,7 @@ var Button = ({
|
|
|
18558
18972
|
const [dimensions, setDimensions] = useState22(null);
|
|
18559
18973
|
const ref = useRef210(null);
|
|
18560
18974
|
const { isActive, progress } = useHoverTransforms(ref, Boolean(disabled || loading));
|
|
18561
|
-
const onPointerEnter =
|
|
18975
|
+
const onPointerEnter = useCallback27((e) => {
|
|
18562
18976
|
if (e.pointerType !== "mouse") {
|
|
18563
18977
|
return;
|
|
18564
18978
|
}
|
|
@@ -18595,7 +19009,7 @@ var Button = ({
|
|
|
18595
19009
|
const isDisabled = disabled || loading;
|
|
18596
19010
|
const isAnchor = !asChild && "href" in rest && rest.href !== undefined;
|
|
18597
19011
|
const sharedClasses = cn("text-text", "inline-flex", "justify-center", "bg-button-bg", "items-center", "font-brand", "border-solid", "text-[1em]", "rounded-lg", "border-black", "border-2", "border-b-4", "cursor-pointer", "px-4", "h-12", "flex-row", "items-center", "relative", "overflow-hidden", isDisabled && "cursor-default opacity-50", className);
|
|
18598
|
-
const preventInteraction =
|
|
19012
|
+
const preventInteraction = useCallback27((e) => {
|
|
18599
19013
|
e.preventDefault();
|
|
18600
19014
|
e.stopPropagation();
|
|
18601
19015
|
}, []);
|
|
@@ -18806,7 +19220,7 @@ var Link = ({
|
|
|
18806
19220
|
className,
|
|
18807
19221
|
...props
|
|
18808
19222
|
}) => {
|
|
18809
|
-
return /* @__PURE__ */
|
|
19223
|
+
return /* @__PURE__ */ jsx113("a", {
|
|
18810
19224
|
...props,
|
|
18811
19225
|
className: cn(className, "text-brand underline underline-offset-4"),
|
|
18812
19226
|
children: props.children
|
|
@@ -24689,7 +25103,7 @@ var Triangle22 = (props) => {
|
|
|
24689
25103
|
};
|
|
24690
25104
|
|
|
24691
25105
|
// src/components/template-modal-content.tsx
|
|
24692
|
-
import { useCallback as
|
|
25106
|
+
import { useCallback as useCallback40, useState as useState40 } from "react";
|
|
24693
25107
|
|
|
24694
25108
|
// ../../node_modules/.bun/tailwind-merge@2.5.2/node_modules/tailwind-merge/dist/bundle-mjs.mjs
|
|
24695
25109
|
var CLASS_PART_SEPARATOR2 = "-";
|
|
@@ -26008,7 +26422,7 @@ function cn2(...inputs) {
|
|
|
26008
26422
|
}
|
|
26009
26423
|
|
|
26010
26424
|
// src/helpers/use-el-size.ts
|
|
26011
|
-
import { useCallback as
|
|
26425
|
+
import { useCallback as useCallback38, useEffect as useEffect41, useMemo as useMemo51, useState as useState38 } from "react";
|
|
26012
26426
|
var useElementSize = (ref) => {
|
|
26013
26427
|
const [size4, setSize] = useState38(null);
|
|
26014
26428
|
const observer = useMemo51(() => {
|
|
@@ -26022,7 +26436,7 @@ var useElementSize = (ref) => {
|
|
|
26022
26436
|
});
|
|
26023
26437
|
});
|
|
26024
26438
|
}, []);
|
|
26025
|
-
const updateSize =
|
|
26439
|
+
const updateSize = useCallback38(() => {
|
|
26026
26440
|
if (ref === null) {
|
|
26027
26441
|
return;
|
|
26028
26442
|
}
|
|
@@ -26117,7 +26531,7 @@ import { forwardRef as forwardRef37, useEffect as useEffect43, useImperativeHand
|
|
|
26117
26531
|
// src/components/homepage/VideoPlayerWithControls.tsx
|
|
26118
26532
|
import Hls from "hls.js";
|
|
26119
26533
|
import"plyr/dist/plyr.css";
|
|
26120
|
-
import { forwardRef as forwardRef36, useCallback as
|
|
26534
|
+
import { forwardRef as forwardRef36, useCallback as useCallback39, useEffect as useEffect42, useRef as useRef47, useState as useState39 } from "react";
|
|
26121
26535
|
import { jsx as jsx47 } from "react/jsx-runtime";
|
|
26122
26536
|
var useCombinedRefs = function(...refs) {
|
|
26123
26537
|
const targetRef = useRef47(null);
|
|
@@ -26139,8 +26553,8 @@ var VideoPlayerWithControls = forwardRef36(({ playbackId, poster, currentTime, o
|
|
|
26139
26553
|
const metaRef = useCombinedRefs(ref, videoRef);
|
|
26140
26554
|
const playerRef = useRef47(null);
|
|
26141
26555
|
const [playerInitTime] = useState39(Date.now());
|
|
26142
|
-
const videoError =
|
|
26143
|
-
const onImageLoad =
|
|
26556
|
+
const videoError = useCallback39((event) => onError(event), [onError]);
|
|
26557
|
+
const onImageLoad = useCallback39((event) => {
|
|
26144
26558
|
const [w, h] = [event.target.width, event.target.height];
|
|
26145
26559
|
if (w && h) {
|
|
26146
26560
|
onSize({ width: w, height: h });
|
|
@@ -26315,7 +26729,7 @@ var copyTimeout = null;
|
|
|
26315
26729
|
var TemplateModalContent = ({ template }) => {
|
|
26316
26730
|
const [copied, setCopied] = useState40(false);
|
|
26317
26731
|
const mobileLayout = useMobileLayout();
|
|
26318
|
-
const copyCommand =
|
|
26732
|
+
const copyCommand = useCallback40(async (command) => {
|
|
26319
26733
|
clearTimeout(copyTimeout);
|
|
26320
26734
|
const permissionName = "clipboard-write";
|
|
26321
26735
|
try {
|