@remotion/promo-pages 4.0.474 → 4.0.476
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 +1941 -1480
- 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/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 +2 -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 +973 -700
- package/dist/experts.js +911 -638
- 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 +961 -688
- package/dist/main.d.ts +1 -0
- package/dist/main.js +6 -0
- package/dist/prompts/PromptsGallery.js +965 -692
- package/dist/prompts/PromptsShow.js +1008 -735
- package/dist/prompts/PromptsSubmit.js +1011 -738
- 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 +1001 -728
- package/dist/template-modal-content.js +972 -699
- package/dist/templates.js +955 -681
- package/package.json +13 -13
|
@@ -35,8 +35,8 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
|
|
|
35
35
|
// ../design/dist/esm/index.mjs
|
|
36
36
|
import * as React23 from "react";
|
|
37
37
|
import * as React3 from "react";
|
|
38
|
-
import { Fragment as Fragment2, jsx as
|
|
39
|
-
import React52, { useCallback as
|
|
38
|
+
import { Fragment as Fragment2, jsx as jsx43 } from "react/jsx-runtime";
|
|
39
|
+
import React52, { useCallback as useCallback26, 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) {
|
|
@@ -1378,7 +1378,7 @@ var getDefaultConfig = () => {
|
|
|
1378
1378
|
var twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
|
|
1379
1379
|
|
|
1380
1380
|
// ../design/dist/esm/index.mjs
|
|
1381
|
-
import
|
|
1381
|
+
import React32, { useEffect as useEffect22, useMemo as useMemo42, useState as useState21 } from "react";
|
|
1382
1382
|
|
|
1383
1383
|
// ../paths/dist/esm/index.mjs
|
|
1384
1384
|
var cutLInstruction = ({
|
|
@@ -4331,69 +4331,71 @@ import { forwardRef as forwardRef11, useCallback as useCallback17, useState as u
|
|
|
4331
4331
|
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
4332
4332
|
import { useCallback as useCallback18, useContext as useContext33, useLayoutEffect as useLayoutEffect10, useRef as useRef24 } from "react";
|
|
4333
4333
|
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
4334
|
+
import React29, { forwardRef as forwardRef12, useCallback as useCallback19, useRef as useRef25 } from "react";
|
|
4335
|
+
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
4334
4336
|
import { createRef as createRef3 } from "react";
|
|
4335
|
-
import
|
|
4337
|
+
import React30 from "react";
|
|
4336
4338
|
import {
|
|
4337
|
-
useCallback as
|
|
4339
|
+
useCallback as useCallback20,
|
|
4338
4340
|
useImperativeHandle as useImperativeHandle8,
|
|
4339
4341
|
useMemo as useMemo32,
|
|
4340
|
-
useRef as
|
|
4342
|
+
useRef as useRef26,
|
|
4341
4343
|
useState as useState18
|
|
4342
4344
|
} from "react";
|
|
4343
|
-
import { jsx as
|
|
4344
|
-
import
|
|
4345
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
4346
|
+
import React31 from "react";
|
|
4345
4347
|
import { useMemo as useMemo34 } from "react";
|
|
4346
4348
|
import { createContext as createContext24, useContext as useContext34, useMemo as useMemo33 } from "react";
|
|
4347
|
-
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
4348
4349
|
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
4349
|
-
import
|
|
4350
|
-
import React33
|
|
4351
|
-
import React34, {
|
|
4352
|
-
import {
|
|
4350
|
+
import { jsx as jsx32 } from "react/jsx-runtime";
|
|
4351
|
+
import React33 from "react";
|
|
4352
|
+
import React34, { createContext as createContext25 } from "react";
|
|
4353
|
+
import React35, { useContext as useContext35 } from "react";
|
|
4354
|
+
import { useCallback as useCallback23 } from "react";
|
|
4353
4355
|
import {
|
|
4354
|
-
useCallback as
|
|
4356
|
+
useCallback as useCallback21,
|
|
4355
4357
|
useContext as useContext36,
|
|
4356
4358
|
useEffect as useEffect18,
|
|
4357
4359
|
useLayoutEffect as useLayoutEffect11,
|
|
4358
4360
|
useMemo as useMemo35,
|
|
4359
4361
|
useState as useState19
|
|
4360
4362
|
} from "react";
|
|
4361
|
-
import { jsx as
|
|
4362
|
-
import
|
|
4363
|
-
forwardRef as
|
|
4364
|
-
useCallback as
|
|
4363
|
+
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
4364
|
+
import React37, {
|
|
4365
|
+
forwardRef as forwardRef13,
|
|
4366
|
+
useCallback as useCallback22,
|
|
4365
4367
|
useContext as useContext37,
|
|
4366
4368
|
useEffect as useEffect20,
|
|
4367
4369
|
useImperativeHandle as useImperativeHandle9,
|
|
4368
4370
|
useMemo as useMemo36,
|
|
4369
|
-
useRef as
|
|
4371
|
+
useRef as useRef27,
|
|
4370
4372
|
useState as useState20
|
|
4371
4373
|
} from "react";
|
|
4372
4374
|
import { useEffect as useEffect19 } from "react";
|
|
4373
|
-
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
4374
4375
|
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
4375
|
-
import React38, { useMemo as useMemo37 } from "react";
|
|
4376
4376
|
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
4377
|
+
import React39, { useMemo as useMemo37 } from "react";
|
|
4378
|
+
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
4377
4379
|
import {
|
|
4378
4380
|
Children,
|
|
4379
|
-
forwardRef as
|
|
4381
|
+
forwardRef as forwardRef14,
|
|
4380
4382
|
useMemo as useMemo38
|
|
4381
4383
|
} from "react";
|
|
4382
|
-
import
|
|
4383
|
-
import { jsx as
|
|
4384
|
-
import
|
|
4385
|
-
import { forwardRef as
|
|
4384
|
+
import React40 from "react";
|
|
4385
|
+
import { jsx as jsx37 } from "react/jsx-runtime";
|
|
4386
|
+
import React42 from "react";
|
|
4387
|
+
import { forwardRef as forwardRef16, useCallback as useCallback24, useContext as useContext39 } from "react";
|
|
4386
4388
|
import {
|
|
4387
|
-
forwardRef as
|
|
4389
|
+
forwardRef as forwardRef15,
|
|
4388
4390
|
useContext as useContext38,
|
|
4389
4391
|
useEffect as useEffect21,
|
|
4390
4392
|
useImperativeHandle as useImperativeHandle10,
|
|
4391
4393
|
useLayoutEffect as useLayoutEffect12,
|
|
4392
4394
|
useMemo as useMemo39,
|
|
4393
|
-
useRef as
|
|
4395
|
+
useRef as useRef28
|
|
4394
4396
|
} from "react";
|
|
4395
|
-
import { jsx as jsx37 } from "react/jsx-runtime";
|
|
4396
4397
|
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
4398
|
+
import { jsx as jsx39 } from "react/jsx-runtime";
|
|
4397
4399
|
var __defProp2 = Object.defineProperty;
|
|
4398
4400
|
var __export2 = (target, all) => {
|
|
4399
4401
|
for (var name in all)
|
|
@@ -5562,7 +5564,7 @@ var getComponentsToAddStacksTo = () => componentsToAddStacksTo;
|
|
|
5562
5564
|
var addSequenceStackTraces = (component) => {
|
|
5563
5565
|
componentsToAddStacksTo.push(component);
|
|
5564
5566
|
};
|
|
5565
|
-
var VERSION = "4.0.
|
|
5567
|
+
var VERSION = "4.0.476";
|
|
5566
5568
|
var checkMultipleRemotionVersions = () => {
|
|
5567
5569
|
if (typeof globalThis === "undefined") {
|
|
5568
5570
|
return;
|
|
@@ -5929,6 +5931,12 @@ var PremountContext = createContext14({
|
|
|
5929
5931
|
premountFramesRemaining: 0
|
|
5930
5932
|
});
|
|
5931
5933
|
var sequenceVisualStyleSchema = {
|
|
5934
|
+
"style.transformOrigin": {
|
|
5935
|
+
type: "transform-origin",
|
|
5936
|
+
step: 1,
|
|
5937
|
+
default: "50% 50%",
|
|
5938
|
+
description: "Transform origin"
|
|
5939
|
+
},
|
|
5932
5940
|
"style.translate": {
|
|
5933
5941
|
type: "translate",
|
|
5934
5942
|
step: 1,
|
|
@@ -5990,6 +5998,18 @@ var hiddenField = {
|
|
|
5990
5998
|
default: false,
|
|
5991
5999
|
description: "Hidden"
|
|
5992
6000
|
};
|
|
6001
|
+
var showInTimelineField = {
|
|
6002
|
+
type: "hidden"
|
|
6003
|
+
};
|
|
6004
|
+
var sequenceNameField = {
|
|
6005
|
+
type: "hidden"
|
|
6006
|
+
};
|
|
6007
|
+
var extendSchemaWithSequenceName = (schema) => {
|
|
6008
|
+
return {
|
|
6009
|
+
name: sequenceNameField,
|
|
6010
|
+
...schema
|
|
6011
|
+
};
|
|
6012
|
+
};
|
|
5993
6013
|
var durationInFramesField = {
|
|
5994
6014
|
type: "number",
|
|
5995
6015
|
default: undefined,
|
|
@@ -6003,8 +6023,9 @@ var fromField = {
|
|
|
6003
6023
|
step: 1,
|
|
6004
6024
|
hiddenFromList: true
|
|
6005
6025
|
};
|
|
6006
|
-
var sequenceSchema = {
|
|
6026
|
+
var sequenceSchema = extendSchemaWithSequenceName({
|
|
6007
6027
|
hidden: hiddenField,
|
|
6028
|
+
showInTimeline: showInTimelineField,
|
|
6008
6029
|
from: fromField,
|
|
6009
6030
|
durationInFrames: durationInFramesField,
|
|
6010
6031
|
layout: {
|
|
@@ -6016,12 +6037,13 @@ var sequenceSchema = {
|
|
|
6016
6037
|
none: {}
|
|
6017
6038
|
}
|
|
6018
6039
|
}
|
|
6019
|
-
};
|
|
6020
|
-
var sequenceSchemaWithoutFrom = {
|
|
6040
|
+
});
|
|
6041
|
+
var sequenceSchemaWithoutFrom = extendSchemaWithSequenceName({
|
|
6021
6042
|
hidden: hiddenField,
|
|
6043
|
+
showInTimeline: showInTimelineField,
|
|
6022
6044
|
durationInFrames: durationInFramesField,
|
|
6023
6045
|
layout: sequenceSchema.layout
|
|
6024
|
-
};
|
|
6046
|
+
});
|
|
6025
6047
|
var sequenceSchemaDefaultLayoutNone = {
|
|
6026
6048
|
...sequenceSchema,
|
|
6027
6049
|
layout: {
|
|
@@ -6365,81 +6387,6 @@ function bezier(mX1, mY1, mX2, mY2) {
|
|
|
6365
6387
|
return calcBezier(getTForX(clampedX), mY1, mY2);
|
|
6366
6388
|
};
|
|
6367
6389
|
}
|
|
6368
|
-
var clampUnit = (t) => Math.min(1, Math.max(0, t));
|
|
6369
|
-
|
|
6370
|
-
class Easing {
|
|
6371
|
-
static step0(n) {
|
|
6372
|
-
return n > 0 ? 1 : 0;
|
|
6373
|
-
}
|
|
6374
|
-
static step1(n) {
|
|
6375
|
-
return n >= 1 ? 1 : 0;
|
|
6376
|
-
}
|
|
6377
|
-
static linear(t) {
|
|
6378
|
-
return t;
|
|
6379
|
-
}
|
|
6380
|
-
static ease(t) {
|
|
6381
|
-
return Easing.bezier(0.42, 0, 1, 1)(t);
|
|
6382
|
-
}
|
|
6383
|
-
static quad(t) {
|
|
6384
|
-
return t * t;
|
|
6385
|
-
}
|
|
6386
|
-
static cubic(t) {
|
|
6387
|
-
return t * t * t;
|
|
6388
|
-
}
|
|
6389
|
-
static poly(n) {
|
|
6390
|
-
return (t) => t ** n;
|
|
6391
|
-
}
|
|
6392
|
-
static sin(t) {
|
|
6393
|
-
return 1 - Math.cos(t * Math.PI / 2);
|
|
6394
|
-
}
|
|
6395
|
-
static circle(t) {
|
|
6396
|
-
const u = clampUnit(t);
|
|
6397
|
-
return 1 - Math.sqrt(1 - u * u);
|
|
6398
|
-
}
|
|
6399
|
-
static exp(t) {
|
|
6400
|
-
return 2 ** (10 * (t - 1));
|
|
6401
|
-
}
|
|
6402
|
-
static elastic(bounciness = 1) {
|
|
6403
|
-
const p = bounciness * Math.PI;
|
|
6404
|
-
return (t) => 1 - Math.cos(t * Math.PI / 2) ** 3 * Math.cos(t * p);
|
|
6405
|
-
}
|
|
6406
|
-
static back(s = 1.70158) {
|
|
6407
|
-
return (t) => t * t * ((s + 1) * t - s);
|
|
6408
|
-
}
|
|
6409
|
-
static bounce(t) {
|
|
6410
|
-
const u = clampUnit(t);
|
|
6411
|
-
if (u < 1 / 2.75) {
|
|
6412
|
-
return 7.5625 * u * u;
|
|
6413
|
-
}
|
|
6414
|
-
if (u < 2 / 2.75) {
|
|
6415
|
-
const t2_ = u - 1.5 / 2.75;
|
|
6416
|
-
return 7.5625 * t2_ * t2_ + 0.75;
|
|
6417
|
-
}
|
|
6418
|
-
if (u < 2.5 / 2.75) {
|
|
6419
|
-
const t2_ = u - 2.25 / 2.75;
|
|
6420
|
-
return 7.5625 * t2_ * t2_ + 0.9375;
|
|
6421
|
-
}
|
|
6422
|
-
const t2 = u - 2.625 / 2.75;
|
|
6423
|
-
return 7.5625 * t2 * t2 + 0.984375;
|
|
6424
|
-
}
|
|
6425
|
-
static bezier(x1, y1, x2, y2) {
|
|
6426
|
-
return bezier(x1, y1, x2, y2);
|
|
6427
|
-
}
|
|
6428
|
-
static in(easing) {
|
|
6429
|
-
return easing;
|
|
6430
|
-
}
|
|
6431
|
-
static out(easing) {
|
|
6432
|
-
return (t) => 1 - easing(1 - t);
|
|
6433
|
-
}
|
|
6434
|
-
static inOut(easing) {
|
|
6435
|
-
return (t) => {
|
|
6436
|
-
if (t < 0.5) {
|
|
6437
|
-
return easing(t * 2) / 2;
|
|
6438
|
-
}
|
|
6439
|
-
return 1 - easing((1 - t) * 2) / 2;
|
|
6440
|
-
};
|
|
6441
|
-
}
|
|
6442
|
-
}
|
|
6443
6390
|
var normalizeNumber = (value) => {
|
|
6444
6391
|
return Math.round(value * 1e6) / 1e6;
|
|
6445
6392
|
};
|
|
@@ -6481,6 +6428,32 @@ var lengthUnits = new Set([
|
|
|
6481
6428
|
"vw"
|
|
6482
6429
|
]);
|
|
6483
6430
|
var cssNumberRegex = /^([+-]?(?:\d+\.?\d*|\.\d+))([a-zA-Z%]+)?$/;
|
|
6431
|
+
var transformOriginKeywords = new Set([
|
|
6432
|
+
"left",
|
|
6433
|
+
"center",
|
|
6434
|
+
"right",
|
|
6435
|
+
"top",
|
|
6436
|
+
"bottom"
|
|
6437
|
+
]);
|
|
6438
|
+
var transformOriginKeywordOptions = (keyword) => {
|
|
6439
|
+
if (keyword === "left") {
|
|
6440
|
+
return [{ axis: "x", value: { value: 0, unit: "%" } }];
|
|
6441
|
+
}
|
|
6442
|
+
if (keyword === "right") {
|
|
6443
|
+
return [{ axis: "x", value: { value: 100, unit: "%" } }];
|
|
6444
|
+
}
|
|
6445
|
+
if (keyword === "top") {
|
|
6446
|
+
return [{ axis: "y", value: { value: 0, unit: "%" } }];
|
|
6447
|
+
}
|
|
6448
|
+
if (keyword === "bottom") {
|
|
6449
|
+
return [{ axis: "y", value: { value: 100, unit: "%" } }];
|
|
6450
|
+
}
|
|
6451
|
+
return [
|
|
6452
|
+
{ axis: "x", value: { value: 50, unit: "%" } },
|
|
6453
|
+
{ axis: "y", value: { value: 50, unit: "%" } }
|
|
6454
|
+
];
|
|
6455
|
+
};
|
|
6456
|
+
var transformOriginCenter = { value: 50, unit: "%" };
|
|
6484
6457
|
var stringifyNumber = (value) => {
|
|
6485
6458
|
return String(normalizeNumber(value));
|
|
6486
6459
|
};
|
|
@@ -6505,6 +6478,110 @@ var parseStringInterpolationComponent = (component, value) => {
|
|
|
6505
6478
|
}
|
|
6506
6479
|
throw new TypeError(`Cannot interpolate "${value}" because "${unit}" is not a supported translate or rotate unit`);
|
|
6507
6480
|
};
|
|
6481
|
+
var parseTransformOriginLengthPercentage = ({
|
|
6482
|
+
component,
|
|
6483
|
+
value,
|
|
6484
|
+
allowPercentage
|
|
6485
|
+
}) => {
|
|
6486
|
+
const match = cssNumberRegex.exec(component);
|
|
6487
|
+
if (match === null) {
|
|
6488
|
+
throw new TypeError(`Cannot interpolate "${value}" because "${component}" is not a supported transform-origin ${allowPercentage ? "length-percentage" : "z length"}`);
|
|
6489
|
+
}
|
|
6490
|
+
const unit = match[2] ?? null;
|
|
6491
|
+
const numberValue = Number(match[1]);
|
|
6492
|
+
if (!Number.isFinite(numberValue)) {
|
|
6493
|
+
throw new TypeError(`Cannot interpolate "${value}" because "${component}" is not finite`);
|
|
6494
|
+
}
|
|
6495
|
+
if (unit === null || !lengthUnits.has(unit) || !allowPercentage && unit === "%") {
|
|
6496
|
+
throw new TypeError(`Cannot interpolate "${value}" because "${component}" is not a supported transform-origin ${allowPercentage ? "length-percentage" : "z length"}`);
|
|
6497
|
+
}
|
|
6498
|
+
return { value: numberValue, unit };
|
|
6499
|
+
};
|
|
6500
|
+
var parseTransformOriginToken = (component, value) => {
|
|
6501
|
+
const lower = component.toLowerCase();
|
|
6502
|
+
if (transformOriginKeywords.has(lower)) {
|
|
6503
|
+
return { type: "keyword", keyword: lower };
|
|
6504
|
+
}
|
|
6505
|
+
return {
|
|
6506
|
+
type: "length-percentage",
|
|
6507
|
+
parsed: parseTransformOriginLengthPercentage({
|
|
6508
|
+
component,
|
|
6509
|
+
value,
|
|
6510
|
+
allowPercentage: true
|
|
6511
|
+
})
|
|
6512
|
+
};
|
|
6513
|
+
};
|
|
6514
|
+
var parseTwoTransformOriginKeywords = (first, second, value) => {
|
|
6515
|
+
const candidates = [];
|
|
6516
|
+
for (const firstOption of transformOriginKeywordOptions(first)) {
|
|
6517
|
+
for (const secondOption of transformOriginKeywordOptions(second)) {
|
|
6518
|
+
if (firstOption.axis === secondOption.axis) {
|
|
6519
|
+
continue;
|
|
6520
|
+
}
|
|
6521
|
+
candidates.push(firstOption.axis === "x" ? [firstOption.value, secondOption.value] : [secondOption.value, firstOption.value]);
|
|
6522
|
+
}
|
|
6523
|
+
}
|
|
6524
|
+
if (candidates.length === 0) {
|
|
6525
|
+
throw new TypeError(`Cannot interpolate "${value}" because "${first} ${second}" is not a valid transform-origin keyword pair`);
|
|
6526
|
+
}
|
|
6527
|
+
return candidates[0];
|
|
6528
|
+
};
|
|
6529
|
+
var parseTransformOriginXY = (parts, value) => {
|
|
6530
|
+
if (parts.length === 1) {
|
|
6531
|
+
const token = parseTransformOriginToken(parts[0], value);
|
|
6532
|
+
if (token.type === "length-percentage") {
|
|
6533
|
+
return [token.parsed, transformOriginCenter];
|
|
6534
|
+
}
|
|
6535
|
+
if (token.keyword === "top" || token.keyword === "bottom") {
|
|
6536
|
+
return [
|
|
6537
|
+
transformOriginCenter,
|
|
6538
|
+
transformOriginKeywordOptions(token.keyword)[0].value
|
|
6539
|
+
];
|
|
6540
|
+
}
|
|
6541
|
+
return [
|
|
6542
|
+
transformOriginKeywordOptions(token.keyword)[0].value,
|
|
6543
|
+
transformOriginCenter
|
|
6544
|
+
];
|
|
6545
|
+
}
|
|
6546
|
+
const first = parseTransformOriginToken(parts[0], value);
|
|
6547
|
+
const second = parseTransformOriginToken(parts[1], value);
|
|
6548
|
+
if (first.type === "length-percentage" && second.type === "length-percentage") {
|
|
6549
|
+
return [first.parsed, second.parsed];
|
|
6550
|
+
}
|
|
6551
|
+
if (first.type === "keyword" && second.type === "keyword") {
|
|
6552
|
+
return parseTwoTransformOriginKeywords(first.keyword, second.keyword, value);
|
|
6553
|
+
}
|
|
6554
|
+
const keyword = first.type === "keyword" ? first : second.type === "keyword" ? second : null;
|
|
6555
|
+
const length2 = first.type === "length-percentage" ? first.parsed : second.type === "length-percentage" ? second.parsed : null;
|
|
6556
|
+
if (keyword === null || length2 === null) {
|
|
6557
|
+
throw new Error("Expected a keyword and a length-percentage value");
|
|
6558
|
+
}
|
|
6559
|
+
const keywordIsFirst = first.type === "keyword";
|
|
6560
|
+
if (keyword.keyword === "left" || keyword.keyword === "right") {
|
|
6561
|
+
if (!keywordIsFirst) {
|
|
6562
|
+
throw new TypeError(`Cannot interpolate "${value}" because horizontal transform-origin keywords must come before a length-percentage value`);
|
|
6563
|
+
}
|
|
6564
|
+
return [transformOriginKeywordOptions(keyword.keyword)[0].value, length2];
|
|
6565
|
+
}
|
|
6566
|
+
if (keyword.keyword === "top" || keyword.keyword === "bottom") {
|
|
6567
|
+
return [length2, transformOriginKeywordOptions(keyword.keyword)[0].value];
|
|
6568
|
+
}
|
|
6569
|
+
return keywordIsFirst ? [transformOriginCenter, length2] : [length2, transformOriginCenter];
|
|
6570
|
+
};
|
|
6571
|
+
var parseTransformOriginValue = (output, parts) => {
|
|
6572
|
+
const [x, y] = parseTransformOriginXY(parts.slice(0, 2), output);
|
|
6573
|
+
const z = parts[2] === undefined ? { value: 0, unit: null } : parseTransformOriginLengthPercentage({
|
|
6574
|
+
component: parts[2],
|
|
6575
|
+
value: output,
|
|
6576
|
+
allowPercentage: false
|
|
6577
|
+
});
|
|
6578
|
+
return {
|
|
6579
|
+
kind: "translate",
|
|
6580
|
+
values: [x.value, y.value, z.value],
|
|
6581
|
+
units: [x.unit, y.unit, z.unit],
|
|
6582
|
+
dimensions: parts[2] === undefined ? 2 : 3
|
|
6583
|
+
};
|
|
6584
|
+
};
|
|
6508
6585
|
var parseStringInterpolationValue = (output) => {
|
|
6509
6586
|
if (typeof output === "number") {
|
|
6510
6587
|
if (!Number.isFinite(output)) {
|
|
@@ -6521,6 +6598,9 @@ var parseStringInterpolationValue = (output) => {
|
|
|
6521
6598
|
if (parts.length < 1 || parts.length > 3 || parts[0] === "") {
|
|
6522
6599
|
throw new TypeError(`String outputRange values must contain 1 to 3 components, but got "${output}"`);
|
|
6523
6600
|
}
|
|
6601
|
+
if (parts.some((part) => transformOriginKeywords.has(part.toLowerCase()))) {
|
|
6602
|
+
return parseTransformOriginValue(output, parts);
|
|
6603
|
+
}
|
|
6524
6604
|
const parsed = parts.map((part) => parseStringInterpolationComponent(part, output));
|
|
6525
6605
|
const [{ kind }] = parsed;
|
|
6526
6606
|
for (const part of parsed) {
|
|
@@ -6732,82 +6812,432 @@ function checkValidInputRange(arr) {
|
|
|
6732
6812
|
}
|
|
6733
6813
|
}
|
|
6734
6814
|
}
|
|
6735
|
-
function checkInfiniteRange(name, arr) {
|
|
6736
|
-
if (arr.length < 1) {
|
|
6737
|
-
throw new Error(name + " must have at least 1 element");
|
|
6738
|
-
}
|
|
6739
|
-
for (const element of arr) {
|
|
6740
|
-
if (typeof element !== "number") {
|
|
6741
|
-
throw new Error(`${name} must contain only numbers`);
|
|
6742
|
-
}
|
|
6743
|
-
if (!Number.isFinite(element)) {
|
|
6744
|
-
throw new Error(`${name} must contain only finite numbers, but got [${arr.join(",")}]`);
|
|
6815
|
+
function checkInfiniteRange(name, arr) {
|
|
6816
|
+
if (arr.length < 1) {
|
|
6817
|
+
throw new Error(name + " must have at least 1 element");
|
|
6818
|
+
}
|
|
6819
|
+
for (const element of arr) {
|
|
6820
|
+
if (typeof element !== "number") {
|
|
6821
|
+
throw new Error(`${name} must contain only numbers`);
|
|
6822
|
+
}
|
|
6823
|
+
if (!Number.isFinite(element)) {
|
|
6824
|
+
throw new Error(`${name} must contain only finite numbers, but got [${arr.join(",")}]`);
|
|
6825
|
+
}
|
|
6826
|
+
}
|
|
6827
|
+
}
|
|
6828
|
+
function assertValidInterpolateEasingOption(easing, inputRangeLength) {
|
|
6829
|
+
if (easing === undefined) {
|
|
6830
|
+
return;
|
|
6831
|
+
}
|
|
6832
|
+
if (typeof easing === "function") {
|
|
6833
|
+
return;
|
|
6834
|
+
}
|
|
6835
|
+
const expectedLength = inputRangeLength - 1;
|
|
6836
|
+
if (easing.length !== expectedLength) {
|
|
6837
|
+
throw new Error(`When easing is an array, it must have one entry per segment between keyframes (length inputRange.length - 1 = ${expectedLength}), but got length ${easing.length}`);
|
|
6838
|
+
}
|
|
6839
|
+
for (let i = 0;i < easing.length; i++) {
|
|
6840
|
+
if (typeof easing[i] !== "function") {
|
|
6841
|
+
throw new Error(`easing[${i}] must be a function`);
|
|
6842
|
+
}
|
|
6843
|
+
}
|
|
6844
|
+
}
|
|
6845
|
+
function assertValidInterpolatePosterizeOption(posterize) {
|
|
6846
|
+
if (posterize === undefined) {
|
|
6847
|
+
return;
|
|
6848
|
+
}
|
|
6849
|
+
if (typeof posterize !== "number" || !Number.isFinite(posterize) || posterize <= 0) {
|
|
6850
|
+
throw new Error(`posterize must be a positive finite number, but got ${posterize}`);
|
|
6851
|
+
}
|
|
6852
|
+
}
|
|
6853
|
+
function interpolate(input, inputRange, outputRange, options) {
|
|
6854
|
+
if (typeof input === "undefined") {
|
|
6855
|
+
throw new Error("input can not be undefined");
|
|
6856
|
+
}
|
|
6857
|
+
if (typeof inputRange === "undefined") {
|
|
6858
|
+
throw new Error("inputRange can not be undefined");
|
|
6859
|
+
}
|
|
6860
|
+
if (typeof outputRange === "undefined") {
|
|
6861
|
+
throw new Error("outputRange can not be undefined");
|
|
6862
|
+
}
|
|
6863
|
+
if (inputRange.length !== outputRange.length) {
|
|
6864
|
+
throw new Error("inputRange (" + inputRange.length + ") and outputRange (" + outputRange.length + ") must have the same length");
|
|
6865
|
+
}
|
|
6866
|
+
checkInfiniteRange("inputRange", inputRange);
|
|
6867
|
+
checkValidInputRange(inputRange);
|
|
6868
|
+
assertValidInterpolateEasingOption(options?.easing, inputRange.length);
|
|
6869
|
+
assertValidInterpolatePosterizeOption(options?.posterize);
|
|
6870
|
+
if (typeof input !== "number") {
|
|
6871
|
+
throw new TypeError("Cannot interpolate an input which is not a number");
|
|
6872
|
+
}
|
|
6873
|
+
if (!Array.isArray(outputRange)) {
|
|
6874
|
+
throw new Error("outputRange must contain only numbers");
|
|
6875
|
+
}
|
|
6876
|
+
const hasStringOutput = outputRange.some((output) => typeof output === "string");
|
|
6877
|
+
if (hasStringOutput) {
|
|
6878
|
+
if (!outputRange.every((output) => typeof output === "string" || typeof output === "number")) {
|
|
6879
|
+
throw new TypeError("outputRange must contain only numbers, or supported scale, translate, and rotate strings");
|
|
6880
|
+
}
|
|
6881
|
+
return interpolateString({ input, inputRange, outputRange, options });
|
|
6882
|
+
}
|
|
6883
|
+
if (outputRange.every((output) => Array.isArray(output))) {
|
|
6884
|
+
return interpolateTuple({ input, inputRange, outputRange, options });
|
|
6885
|
+
}
|
|
6886
|
+
if (!outputRange.every((output) => typeof output === "number")) {
|
|
6887
|
+
throw new TypeError("outputRange must contain only numbers, numeric tuples, or supported scale, translate, and rotate strings");
|
|
6888
|
+
}
|
|
6889
|
+
checkInfiniteRange("outputRange", outputRange);
|
|
6890
|
+
return interpolateNumber({ input, inputRange, outputRange, options });
|
|
6891
|
+
}
|
|
6892
|
+
var validateFrame = ({
|
|
6893
|
+
allowFloats,
|
|
6894
|
+
durationInFrames,
|
|
6895
|
+
frame
|
|
6896
|
+
}) => {
|
|
6897
|
+
if (typeof frame === "undefined") {
|
|
6898
|
+
throw new TypeError(`Argument missing for parameter "frame"`);
|
|
6899
|
+
}
|
|
6900
|
+
if (typeof frame !== "number") {
|
|
6901
|
+
throw new TypeError(`Argument passed for "frame" is not a number: ${frame}`);
|
|
6902
|
+
}
|
|
6903
|
+
if (!Number.isFinite(frame)) {
|
|
6904
|
+
throw new RangeError(`Frame ${frame} is not finite`);
|
|
6905
|
+
}
|
|
6906
|
+
if (frame % 1 !== 0 && !allowFloats) {
|
|
6907
|
+
throw new RangeError(`Argument for frame must be an integer, but got ${frame}`);
|
|
6908
|
+
}
|
|
6909
|
+
if (frame < 0 && frame < -durationInFrames) {
|
|
6910
|
+
throw new RangeError(`Cannot use frame ${frame}: Duration of composition is ${durationInFrames}, therefore the lowest frame that can be rendered is ${-durationInFrames}`);
|
|
6911
|
+
}
|
|
6912
|
+
if (frame > durationInFrames - 1) {
|
|
6913
|
+
throw new RangeError(`Cannot use frame ${frame}: Duration of composition is ${durationInFrames}, therefore the highest frame that can be rendered is ${durationInFrames - 1}`);
|
|
6914
|
+
}
|
|
6915
|
+
};
|
|
6916
|
+
var validateSpringDuration = (dur) => {
|
|
6917
|
+
if (typeof dur === "undefined") {
|
|
6918
|
+
return;
|
|
6919
|
+
}
|
|
6920
|
+
if (typeof dur !== "number") {
|
|
6921
|
+
throw new TypeError(`A "duration" of a spring must be a "number" but is "${typeof dur}"`);
|
|
6922
|
+
}
|
|
6923
|
+
if (Number.isNaN(dur)) {
|
|
6924
|
+
throw new TypeError('A "duration" of a spring is NaN, which it must not be');
|
|
6925
|
+
}
|
|
6926
|
+
if (!Number.isFinite(dur)) {
|
|
6927
|
+
throw new TypeError('A "duration" of a spring must be finite, but is ' + dur);
|
|
6928
|
+
}
|
|
6929
|
+
if (dur <= 0) {
|
|
6930
|
+
throw new TypeError('A "duration" of a spring must be positive, but is ' + dur);
|
|
6931
|
+
}
|
|
6932
|
+
};
|
|
6933
|
+
var defaultSpringConfig = {
|
|
6934
|
+
damping: 10,
|
|
6935
|
+
mass: 1,
|
|
6936
|
+
stiffness: 100,
|
|
6937
|
+
overshootClamping: false
|
|
6938
|
+
};
|
|
6939
|
+
var advanceCache = {};
|
|
6940
|
+
function advance({
|
|
6941
|
+
animation,
|
|
6942
|
+
now,
|
|
6943
|
+
config
|
|
6944
|
+
}) {
|
|
6945
|
+
const { toValue: toValue2, lastTimestamp, current, velocity } = animation;
|
|
6946
|
+
const deltaTime = Math.min(now - lastTimestamp, 64);
|
|
6947
|
+
if (config.damping <= 0) {
|
|
6948
|
+
throw new Error("Spring damping must be greater than 0, otherwise the spring() animation will never end, causing an infinite loop.");
|
|
6949
|
+
}
|
|
6950
|
+
const c2 = config.damping;
|
|
6951
|
+
const m = config.mass;
|
|
6952
|
+
const k = config.stiffness;
|
|
6953
|
+
const cacheKey = [
|
|
6954
|
+
toValue2,
|
|
6955
|
+
lastTimestamp,
|
|
6956
|
+
current,
|
|
6957
|
+
velocity,
|
|
6958
|
+
c2,
|
|
6959
|
+
m,
|
|
6960
|
+
k,
|
|
6961
|
+
now
|
|
6962
|
+
].join("-");
|
|
6963
|
+
if (advanceCache[cacheKey]) {
|
|
6964
|
+
return advanceCache[cacheKey];
|
|
6965
|
+
}
|
|
6966
|
+
const v0 = -velocity;
|
|
6967
|
+
const x0 = toValue2 - current;
|
|
6968
|
+
const zeta = c2 / (2 * Math.sqrt(k * m));
|
|
6969
|
+
const omega0 = Math.sqrt(k / m);
|
|
6970
|
+
const omega1 = omega0 * Math.sqrt(1 - zeta ** 2);
|
|
6971
|
+
const t = deltaTime / 1000;
|
|
6972
|
+
const sin1 = Math.sin(omega1 * t);
|
|
6973
|
+
const cos1 = Math.cos(omega1 * t);
|
|
6974
|
+
const underDampedEnvelope = Math.exp(-zeta * omega0 * t);
|
|
6975
|
+
const underDampedFrag1 = underDampedEnvelope * (sin1 * ((v0 + zeta * omega0 * x0) / omega1) + x0 * cos1);
|
|
6976
|
+
const underDampedPosition = toValue2 - underDampedFrag1;
|
|
6977
|
+
const underDampedVelocity = zeta * omega0 * underDampedFrag1 - underDampedEnvelope * (cos1 * (v0 + zeta * omega0 * x0) - omega1 * x0 * sin1);
|
|
6978
|
+
const criticallyDampedEnvelope = Math.exp(-omega0 * t);
|
|
6979
|
+
const criticallyDampedPosition = toValue2 - criticallyDampedEnvelope * (x0 + (v0 + omega0 * x0) * t);
|
|
6980
|
+
const criticallyDampedVelocity = criticallyDampedEnvelope * (v0 * (t * omega0 - 1) + t * x0 * omega0 * omega0);
|
|
6981
|
+
const animationNode = {
|
|
6982
|
+
toValue: toValue2,
|
|
6983
|
+
prevPosition: current,
|
|
6984
|
+
lastTimestamp: now,
|
|
6985
|
+
current: zeta < 1 ? underDampedPosition : criticallyDampedPosition,
|
|
6986
|
+
velocity: zeta < 1 ? underDampedVelocity : criticallyDampedVelocity
|
|
6987
|
+
};
|
|
6988
|
+
advanceCache[cacheKey] = animationNode;
|
|
6989
|
+
return animationNode;
|
|
6990
|
+
}
|
|
6991
|
+
var calculationCache = {};
|
|
6992
|
+
function springCalculation({
|
|
6993
|
+
frame,
|
|
6994
|
+
fps,
|
|
6995
|
+
config = {}
|
|
6996
|
+
}) {
|
|
6997
|
+
const from = 0;
|
|
6998
|
+
const to = 1;
|
|
6999
|
+
const cacheKey = [
|
|
7000
|
+
frame,
|
|
7001
|
+
fps,
|
|
7002
|
+
config.damping,
|
|
7003
|
+
config.mass,
|
|
7004
|
+
config.overshootClamping,
|
|
7005
|
+
config.stiffness
|
|
7006
|
+
].join("-");
|
|
7007
|
+
if (calculationCache[cacheKey]) {
|
|
7008
|
+
return calculationCache[cacheKey];
|
|
7009
|
+
}
|
|
7010
|
+
let animation = {
|
|
7011
|
+
lastTimestamp: 0,
|
|
7012
|
+
current: from,
|
|
7013
|
+
toValue: to,
|
|
7014
|
+
velocity: 0,
|
|
7015
|
+
prevPosition: 0
|
|
7016
|
+
};
|
|
7017
|
+
const frameClamped = Math.max(0, frame);
|
|
7018
|
+
const unevenRest = frameClamped % 1;
|
|
7019
|
+
for (let f = 0;f <= Math.floor(frameClamped); f++) {
|
|
7020
|
+
if (f === Math.floor(frameClamped)) {
|
|
7021
|
+
f += unevenRest;
|
|
7022
|
+
}
|
|
7023
|
+
const time = f / fps * 1000;
|
|
7024
|
+
animation = advance({
|
|
7025
|
+
animation,
|
|
7026
|
+
now: time,
|
|
7027
|
+
config: {
|
|
7028
|
+
...defaultSpringConfig,
|
|
7029
|
+
...config
|
|
7030
|
+
}
|
|
7031
|
+
});
|
|
7032
|
+
}
|
|
7033
|
+
calculationCache[cacheKey] = animation;
|
|
7034
|
+
return animation;
|
|
7035
|
+
}
|
|
7036
|
+
var cache = new Map;
|
|
7037
|
+
function measureSpring({
|
|
7038
|
+
fps,
|
|
7039
|
+
config = {},
|
|
7040
|
+
threshold = 0.005
|
|
7041
|
+
}) {
|
|
7042
|
+
if (typeof threshold !== "number") {
|
|
7043
|
+
throw new TypeError(`threshold must be a number, got ${threshold} of type ${typeof threshold}`);
|
|
7044
|
+
}
|
|
7045
|
+
if (threshold === 0) {
|
|
7046
|
+
return Infinity;
|
|
7047
|
+
}
|
|
7048
|
+
if (threshold === 1) {
|
|
7049
|
+
return 0;
|
|
7050
|
+
}
|
|
7051
|
+
if (isNaN(threshold)) {
|
|
7052
|
+
throw new TypeError("Threshold is NaN");
|
|
7053
|
+
}
|
|
7054
|
+
if (!Number.isFinite(threshold)) {
|
|
7055
|
+
throw new TypeError("Threshold is not finite");
|
|
7056
|
+
}
|
|
7057
|
+
if (threshold < 0) {
|
|
7058
|
+
throw new TypeError("Threshold is below 0");
|
|
7059
|
+
}
|
|
7060
|
+
const cacheKey = [
|
|
7061
|
+
fps,
|
|
7062
|
+
config.damping,
|
|
7063
|
+
config.mass,
|
|
7064
|
+
config.overshootClamping,
|
|
7065
|
+
config.stiffness,
|
|
7066
|
+
threshold
|
|
7067
|
+
].join("-");
|
|
7068
|
+
if (cache.has(cacheKey)) {
|
|
7069
|
+
return cache.get(cacheKey);
|
|
7070
|
+
}
|
|
7071
|
+
validateFps(fps, "to the measureSpring() function", false);
|
|
7072
|
+
let frame = 0;
|
|
7073
|
+
let finishedFrame = 0;
|
|
7074
|
+
const calc = () => {
|
|
7075
|
+
return springCalculation({
|
|
7076
|
+
fps,
|
|
7077
|
+
frame,
|
|
7078
|
+
config
|
|
7079
|
+
});
|
|
7080
|
+
};
|
|
7081
|
+
let animation = calc();
|
|
7082
|
+
const calcDifference = () => {
|
|
7083
|
+
return Math.abs(animation.current - animation.toValue);
|
|
7084
|
+
};
|
|
7085
|
+
let difference = calcDifference();
|
|
7086
|
+
while (difference >= threshold) {
|
|
7087
|
+
frame++;
|
|
7088
|
+
animation = calc();
|
|
7089
|
+
difference = calcDifference();
|
|
7090
|
+
}
|
|
7091
|
+
finishedFrame = frame;
|
|
7092
|
+
for (let i = 0;i < 20; i++) {
|
|
7093
|
+
frame++;
|
|
7094
|
+
animation = calc();
|
|
7095
|
+
difference = calcDifference();
|
|
7096
|
+
if (difference >= threshold) {
|
|
7097
|
+
i = 0;
|
|
7098
|
+
finishedFrame = frame + 1;
|
|
7099
|
+
}
|
|
7100
|
+
}
|
|
7101
|
+
cache.set(cacheKey, finishedFrame);
|
|
7102
|
+
return finishedFrame;
|
|
7103
|
+
}
|
|
7104
|
+
function spring({
|
|
7105
|
+
frame: passedFrame,
|
|
7106
|
+
fps,
|
|
7107
|
+
config = {},
|
|
7108
|
+
from = 0,
|
|
7109
|
+
to = 1,
|
|
7110
|
+
durationInFrames: passedDurationInFrames,
|
|
7111
|
+
durationRestThreshold,
|
|
7112
|
+
delay = 0,
|
|
7113
|
+
reverse = false
|
|
7114
|
+
}) {
|
|
7115
|
+
validateSpringDuration(passedDurationInFrames);
|
|
7116
|
+
validateFrame({
|
|
7117
|
+
frame: passedFrame,
|
|
7118
|
+
durationInFrames: Infinity,
|
|
7119
|
+
allowFloats: true
|
|
7120
|
+
});
|
|
7121
|
+
validateFps(fps, "to spring()", false);
|
|
7122
|
+
const needsToCalculateNaturalDuration = reverse || typeof passedDurationInFrames !== "undefined";
|
|
7123
|
+
const naturalDuration = needsToCalculateNaturalDuration ? measureSpring({
|
|
7124
|
+
fps,
|
|
7125
|
+
config,
|
|
7126
|
+
threshold: durationRestThreshold
|
|
7127
|
+
}) : undefined;
|
|
7128
|
+
const naturalDurationGetter = needsToCalculateNaturalDuration ? {
|
|
7129
|
+
get: () => naturalDuration
|
|
7130
|
+
} : {
|
|
7131
|
+
get: () => {
|
|
7132
|
+
throw new Error("did not calculate natural duration, this is an error with Remotion. Please report");
|
|
6745
7133
|
}
|
|
7134
|
+
};
|
|
7135
|
+
const reverseProcessed = reverse ? (passedDurationInFrames ?? naturalDurationGetter.get()) - passedFrame : passedFrame;
|
|
7136
|
+
const delayProcessed = reverseProcessed + (reverse ? delay : -delay);
|
|
7137
|
+
const durationProcessed = passedDurationInFrames === undefined ? delayProcessed : delayProcessed / (passedDurationInFrames / naturalDurationGetter.get());
|
|
7138
|
+
if (passedDurationInFrames && delayProcessed > passedDurationInFrames) {
|
|
7139
|
+
return to;
|
|
6746
7140
|
}
|
|
7141
|
+
const spr = springCalculation({
|
|
7142
|
+
fps,
|
|
7143
|
+
frame: durationProcessed,
|
|
7144
|
+
config
|
|
7145
|
+
});
|
|
7146
|
+
const inner = config.overshootClamping ? to >= from ? Math.min(spr.current, to) : Math.max(spr.current, to) : spr.current;
|
|
7147
|
+
const interpolated = from === 0 && to === 1 ? inner : interpolate(inner, [0, 1], [from, to]);
|
|
7148
|
+
return interpolated;
|
|
6747
7149
|
}
|
|
6748
|
-
|
|
6749
|
-
|
|
6750
|
-
|
|
7150
|
+
var clampUnit = (t) => Math.min(1, Math.max(0, t));
|
|
7151
|
+
var springEasingDurationInFrames = 30;
|
|
7152
|
+
|
|
7153
|
+
class Easing {
|
|
7154
|
+
static step0(n) {
|
|
7155
|
+
return n > 0 ? 1 : 0;
|
|
6751
7156
|
}
|
|
6752
|
-
|
|
6753
|
-
return;
|
|
7157
|
+
static step1(n) {
|
|
7158
|
+
return n >= 1 ? 1 : 0;
|
|
6754
7159
|
}
|
|
6755
|
-
|
|
6756
|
-
|
|
6757
|
-
throw new Error(`When easing is an array, it must have one entry per segment between keyframes (length inputRange.length - 1 = ${expectedLength}), but got length ${easing.length}`);
|
|
7160
|
+
static linear(t) {
|
|
7161
|
+
return t;
|
|
6758
7162
|
}
|
|
6759
|
-
|
|
6760
|
-
|
|
6761
|
-
throw new Error(`easing[${i}] must be a function`);
|
|
6762
|
-
}
|
|
7163
|
+
static ease(t) {
|
|
7164
|
+
return Easing.bezier(0.42, 0, 1, 1)(t);
|
|
6763
7165
|
}
|
|
6764
|
-
|
|
6765
|
-
|
|
6766
|
-
if (posterize === undefined) {
|
|
6767
|
-
return;
|
|
7166
|
+
static quad(t) {
|
|
7167
|
+
return t * t;
|
|
6768
7168
|
}
|
|
6769
|
-
|
|
6770
|
-
|
|
7169
|
+
static cubic(t) {
|
|
7170
|
+
return t * t * t;
|
|
6771
7171
|
}
|
|
6772
|
-
|
|
6773
|
-
|
|
6774
|
-
if (typeof input === "undefined") {
|
|
6775
|
-
throw new Error("input can not be undefined");
|
|
7172
|
+
static poly(n) {
|
|
7173
|
+
return (t) => t ** n;
|
|
6776
7174
|
}
|
|
6777
|
-
|
|
6778
|
-
|
|
7175
|
+
static sin(t) {
|
|
7176
|
+
return 1 - Math.cos(t * Math.PI / 2);
|
|
6779
7177
|
}
|
|
6780
|
-
|
|
6781
|
-
|
|
7178
|
+
static circle(t) {
|
|
7179
|
+
const u = clampUnit(t);
|
|
7180
|
+
return 1 - Math.sqrt(1 - u * u);
|
|
6782
7181
|
}
|
|
6783
|
-
|
|
6784
|
-
|
|
7182
|
+
static exp(t) {
|
|
7183
|
+
return 2 ** (10 * (t - 1));
|
|
6785
7184
|
}
|
|
6786
|
-
|
|
6787
|
-
|
|
6788
|
-
|
|
6789
|
-
assertValidInterpolatePosterizeOption(options?.posterize);
|
|
6790
|
-
if (typeof input !== "number") {
|
|
6791
|
-
throw new TypeError("Cannot interpolate an input which is not a number");
|
|
7185
|
+
static elastic(bounciness = 1) {
|
|
7186
|
+
const p = bounciness * Math.PI;
|
|
7187
|
+
return (t) => 1 - Math.cos(t * Math.PI / 2) ** 3 * Math.cos(t * p);
|
|
6792
7188
|
}
|
|
6793
|
-
|
|
6794
|
-
|
|
7189
|
+
static back(s = 1.70158) {
|
|
7190
|
+
return (t) => t * t * ((s + 1) * t - s);
|
|
6795
7191
|
}
|
|
6796
|
-
|
|
6797
|
-
|
|
6798
|
-
|
|
6799
|
-
|
|
7192
|
+
static spring(config = {}) {
|
|
7193
|
+
return (t) => {
|
|
7194
|
+
if (t <= 0) {
|
|
7195
|
+
return 0;
|
|
7196
|
+
}
|
|
7197
|
+
if (t >= 1) {
|
|
7198
|
+
return 1;
|
|
7199
|
+
}
|
|
7200
|
+
return spring({
|
|
7201
|
+
fps: springEasingDurationInFrames,
|
|
7202
|
+
frame: t * springEasingDurationInFrames,
|
|
7203
|
+
config,
|
|
7204
|
+
durationInFrames: springEasingDurationInFrames
|
|
7205
|
+
});
|
|
7206
|
+
};
|
|
7207
|
+
}
|
|
7208
|
+
static bounce(t) {
|
|
7209
|
+
const u = clampUnit(t);
|
|
7210
|
+
if (u < 1 / 2.75) {
|
|
7211
|
+
return 7.5625 * u * u;
|
|
6800
7212
|
}
|
|
6801
|
-
|
|
7213
|
+
if (u < 2 / 2.75) {
|
|
7214
|
+
const t2_ = u - 1.5 / 2.75;
|
|
7215
|
+
return 7.5625 * t2_ * t2_ + 0.75;
|
|
7216
|
+
}
|
|
7217
|
+
if (u < 2.5 / 2.75) {
|
|
7218
|
+
const t2_ = u - 2.25 / 2.75;
|
|
7219
|
+
return 7.5625 * t2_ * t2_ + 0.9375;
|
|
7220
|
+
}
|
|
7221
|
+
const t2 = u - 2.625 / 2.75;
|
|
7222
|
+
return 7.5625 * t2 * t2 + 0.984375;
|
|
6802
7223
|
}
|
|
6803
|
-
|
|
6804
|
-
return
|
|
7224
|
+
static bezier(x1, y1, x2, y2) {
|
|
7225
|
+
return bezier(x1, y1, x2, y2);
|
|
6805
7226
|
}
|
|
6806
|
-
|
|
6807
|
-
|
|
7227
|
+
static in(easing) {
|
|
7228
|
+
return easing;
|
|
7229
|
+
}
|
|
7230
|
+
static out(easing) {
|
|
7231
|
+
return (t) => 1 - easing(1 - t);
|
|
7232
|
+
}
|
|
7233
|
+
static inOut(easing) {
|
|
7234
|
+
return (t) => {
|
|
7235
|
+
if (t < 0.5) {
|
|
7236
|
+
return easing(t * 2) / 2;
|
|
7237
|
+
}
|
|
7238
|
+
return 1 - easing((1 - t) * 2) / 2;
|
|
7239
|
+
};
|
|
6808
7240
|
}
|
|
6809
|
-
checkInfiniteRange("outputRange", outputRange);
|
|
6810
|
-
return interpolateNumber({ input, inputRange, outputRange, options });
|
|
6811
7241
|
}
|
|
6812
7242
|
var NUMBER = "[-+]?\\d*\\.?\\d+";
|
|
6813
7243
|
var PERCENTAGE = NUMBER + "%";
|
|
@@ -7276,6 +7706,7 @@ function processColor(color) {
|
|
|
7276
7706
|
var interpolateColorsRGB = (value, inputRange, colors, options) => {
|
|
7277
7707
|
const [r2, g, b2, a2] = [red, green, blue, opacity].map((f) => {
|
|
7278
7708
|
const unrounded = interpolate(value, inputRange, colors.map((c2) => f(c2)), {
|
|
7709
|
+
easing: options?.easing,
|
|
7279
7710
|
extrapolateLeft: "clamp",
|
|
7280
7711
|
extrapolateRight: "clamp",
|
|
7281
7712
|
posterize: options?.posterize
|
|
@@ -7329,6 +7760,7 @@ var interpolateKeyframedStatus = ({
|
|
|
7329
7760
|
}
|
|
7330
7761
|
try {
|
|
7331
7762
|
return interpolateColors(frame, inputRange, outputs, {
|
|
7763
|
+
easing: easing.map(easingToFn),
|
|
7332
7764
|
posterize: status.posterize
|
|
7333
7765
|
});
|
|
7334
7766
|
} catch {
|
|
@@ -7803,7 +8235,8 @@ var wrapInSchema = ({
|
|
|
7803
8235
|
schema,
|
|
7804
8236
|
supportsEffects
|
|
7805
8237
|
}) => {
|
|
7806
|
-
const
|
|
8238
|
+
const schemaWithSequenceName = extendSchemaWithSequenceName(schema);
|
|
8239
|
+
const flatSchema = getFlatSchemaWithAllKeys(schemaWithSequenceName);
|
|
7807
8240
|
const flatKeys = Object.keys(flatSchema);
|
|
7808
8241
|
const Wrapped = forwardRef2((props, ref) => {
|
|
7809
8242
|
const env = useRemotionEnvironment();
|
|
@@ -7842,7 +8275,7 @@ var wrapInSchema = ({
|
|
|
7842
8275
|
const currentRuntimeValueDotNotation = useMemo13(() => readValuesFromProps(props, flatKeys), runtimeValues);
|
|
7843
8276
|
const controls = useMemo13(() => {
|
|
7844
8277
|
return {
|
|
7845
|
-
schema,
|
|
8278
|
+
schema: schemaWithSequenceName,
|
|
7846
8279
|
currentRuntimeValueDotNotation,
|
|
7847
8280
|
overrideId,
|
|
7848
8281
|
supportsEffects
|
|
@@ -7850,7 +8283,7 @@ var wrapInSchema = ({
|
|
|
7850
8283
|
}, [currentRuntimeValueDotNotation, overrideId]);
|
|
7851
8284
|
const { merged: valuesDotNotation, propsToDelete } = useMemo13(() => {
|
|
7852
8285
|
return computeEffectiveSchemaValuesDotNotation({
|
|
7853
|
-
schema,
|
|
8286
|
+
schema: schemaWithSequenceName,
|
|
7854
8287
|
currentValue: currentRuntimeValueDotNotation,
|
|
7855
8288
|
overrideValues: nodePath === null ? {} : getDragOverrides(nodePath),
|
|
7856
8289
|
propStatus: nodePath === null ? undefined : getPropStatusesCtx(propStatuses, nodePath),
|
|
@@ -7863,7 +8296,7 @@ var wrapInSchema = ({
|
|
|
7863
8296
|
propStatuses,
|
|
7864
8297
|
frame
|
|
7865
8298
|
]);
|
|
7866
|
-
const activeKeys = selectActiveKeys(
|
|
8299
|
+
const activeKeys = selectActiveKeys(schemaWithSequenceName, valuesDotNotation);
|
|
7867
8300
|
const mergedProps = mergeValues({
|
|
7868
8301
|
props,
|
|
7869
8302
|
valuesDotNotation,
|
|
@@ -7905,6 +8338,7 @@ var RegularSequenceRefForwardingFunction = ({
|
|
|
7905
8338
|
const parentSequence = useContext17(SequenceContext);
|
|
7906
8339
|
const { rootId } = useTimelineContext();
|
|
7907
8340
|
const cumulatedFrom = parentSequence ? parentSequence.cumulatedFrom + parentSequence.relativeFrom : 0;
|
|
8341
|
+
const absoluteFrom = (parentSequence?.absoluteFrom ?? 0) + from;
|
|
7908
8342
|
const nonce = useNonce();
|
|
7909
8343
|
if (layout !== "absolute-fill" && layout !== "none") {
|
|
7910
8344
|
throw new TypeError(`The layout prop of <Sequence /> expects either "absolute-fill" or "none", but you passed: ${layout}`);
|
|
@@ -7942,6 +8376,7 @@ var RegularSequenceRefForwardingFunction = ({
|
|
|
7942
8376
|
const cumulatedNegativeFrom = currentSequenceStart - firstFrame;
|
|
7943
8377
|
const contextValue = useMemo14(() => {
|
|
7944
8378
|
return {
|
|
8379
|
+
absoluteFrom,
|
|
7945
8380
|
cumulatedFrom,
|
|
7946
8381
|
relativeFrom: from,
|
|
7947
8382
|
cumulatedNegativeFrom,
|
|
@@ -7957,6 +8392,7 @@ var RegularSequenceRefForwardingFunction = ({
|
|
|
7957
8392
|
};
|
|
7958
8393
|
}, [
|
|
7959
8394
|
cumulatedFrom,
|
|
8395
|
+
absoluteFrom,
|
|
7960
8396
|
from,
|
|
7961
8397
|
actualDurationInFrames,
|
|
7962
8398
|
parentSequence,
|
|
@@ -7972,7 +8408,7 @@ var RegularSequenceRefForwardingFunction = ({
|
|
|
7972
8408
|
const timelineClipName = useMemo14(() => {
|
|
7973
8409
|
return name ?? "";
|
|
7974
8410
|
}, [name]);
|
|
7975
|
-
const resolvedDocumentationLink = documentationLink ??
|
|
8411
|
+
const resolvedDocumentationLink = documentationLink ?? "https://www.remotion.dev/docs/sequence";
|
|
7976
8412
|
const env = useRemotionEnvironment();
|
|
7977
8413
|
const isInsideSeries = useContext17(IsInsideSeriesContext);
|
|
7978
8414
|
const inheritedStack = other?.stack ?? null;
|
|
@@ -8599,10 +9035,10 @@ var decodeImage = async ({
|
|
|
8599
9035
|
if (!selectedTrack) {
|
|
8600
9036
|
throw new Error("No selected track");
|
|
8601
9037
|
}
|
|
8602
|
-
const
|
|
9038
|
+
const cache2 = [];
|
|
8603
9039
|
let durationFound = null;
|
|
8604
9040
|
const getFrameByIndex = async (frameIndex) => {
|
|
8605
|
-
const foundInCache =
|
|
9041
|
+
const foundInCache = cache2.find((c2) => c2.frameIndex === frameIndex);
|
|
8606
9042
|
if (foundInCache && foundInCache.frame) {
|
|
8607
9043
|
return foundInCache;
|
|
8608
9044
|
}
|
|
@@ -8613,7 +9049,7 @@ var decodeImage = async ({
|
|
|
8613
9049
|
if (foundInCache) {
|
|
8614
9050
|
foundInCache.frame = frame.image;
|
|
8615
9051
|
} else {
|
|
8616
|
-
|
|
9052
|
+
cache2.push({
|
|
8617
9053
|
frame: frame.image,
|
|
8618
9054
|
frameIndex,
|
|
8619
9055
|
timeInSeconds: frame.image.timestamp / 1e6
|
|
@@ -8626,7 +9062,7 @@ var decodeImage = async ({
|
|
|
8626
9062
|
};
|
|
8627
9063
|
};
|
|
8628
9064
|
const clearCache = (closeToTimeInSec) => {
|
|
8629
|
-
const itemsInCache =
|
|
9065
|
+
const itemsInCache = cache2.filter((c2) => c2.frame);
|
|
8630
9066
|
const sortByClosestToCurrentTime = itemsInCache.sort((a2, b2) => {
|
|
8631
9067
|
const aDiff = Math.abs(a2.timeInSeconds - closeToTimeInSec);
|
|
8632
9068
|
const bDiff = Math.abs(b2.timeInSeconds - closeToTimeInSec);
|
|
@@ -8649,7 +9085,7 @@ var decodeImage = async ({
|
|
|
8649
9085
|
loopBehavior,
|
|
8650
9086
|
timeInSec
|
|
8651
9087
|
});
|
|
8652
|
-
const framesBefore =
|
|
9088
|
+
const framesBefore = cache2.filter((c2) => c2.timeInSeconds <= actualTimeInSec);
|
|
8653
9089
|
const biggestIndex = framesBefore.map((c2) => c2.frameIndex).reduce((a2, b2) => Math.max(a2, b2), 0);
|
|
8654
9090
|
let i = biggestIndex;
|
|
8655
9091
|
while (true) {
|
|
@@ -8692,7 +9128,7 @@ var decodeImage = async ({
|
|
|
8692
9128
|
timeInSec
|
|
8693
9129
|
});
|
|
8694
9130
|
await ensureFrameBeforeAndAfter({ timeInSec: actualTimeInSec, loopBehavior });
|
|
8695
|
-
const itemsInCache =
|
|
9131
|
+
const itemsInCache = cache2.filter((c2) => c2.frame);
|
|
8696
9132
|
const closest = itemsInCache.reduce((a2, b2) => {
|
|
8697
9133
|
const aDiff = Math.abs(a2.timeInSeconds - actualTimeInSec);
|
|
8698
9134
|
const bDiff = Math.abs(b2.timeInSeconds - actualTimeInSec);
|
|
@@ -8735,7 +9171,7 @@ var animatedImageSchema = {
|
|
|
8735
9171
|
max: 10,
|
|
8736
9172
|
step: 0.1,
|
|
8737
9173
|
default: 1,
|
|
8738
|
-
description: "Playback
|
|
9174
|
+
description: "Playback rate",
|
|
8739
9175
|
hiddenFromList: false,
|
|
8740
9176
|
keyframable: false
|
|
8741
9177
|
},
|
|
@@ -9153,7 +9589,7 @@ var Loop = ({
|
|
|
9153
9589
|
durationInFrames,
|
|
9154
9590
|
from,
|
|
9155
9591
|
name: name ?? "<Loop>",
|
|
9156
|
-
_remotionInternalDocumentationLink:
|
|
9592
|
+
_remotionInternalDocumentationLink: "https://www.remotion.dev/docs/loop",
|
|
9157
9593
|
_remotionInternalLoopDisplay: loopDisplay,
|
|
9158
9594
|
layout: props.layout,
|
|
9159
9595
|
style,
|
|
@@ -11542,7 +11978,7 @@ var AudioForDevelopmentForwardRefFunction = (props, ref) => {
|
|
|
11542
11978
|
premountDisplay: sequenceContext?.premountDisplay ?? null,
|
|
11543
11979
|
postmountDisplay: sequenceContext?.postmountDisplay ?? null,
|
|
11544
11980
|
loopDisplay: undefined,
|
|
11545
|
-
documentationLink:
|
|
11981
|
+
documentationLink: "https://www.remotion.dev/docs/html5-audio",
|
|
11546
11982
|
refForOutline: null
|
|
11547
11983
|
});
|
|
11548
11984
|
useMediaPlayback({
|
|
@@ -12036,7 +12472,7 @@ var SolidOuter = forwardRef8(({
|
|
|
12036
12472
|
durationInFrames,
|
|
12037
12473
|
name: name ?? "<Solid>",
|
|
12038
12474
|
_remotionInternalRefForOutline: actualRef,
|
|
12039
|
-
_remotionInternalDocumentationLink:
|
|
12475
|
+
_remotionInternalDocumentationLink: "https://www.remotion.dev/docs/solid",
|
|
12040
12476
|
...props2,
|
|
12041
12477
|
children: /* @__PURE__ */ jsx24(SolidInner, {
|
|
12042
12478
|
reference: actualRef,
|
|
@@ -12348,7 +12784,7 @@ var HtmlInCanvasInner = forwardRef9(({
|
|
|
12348
12784
|
return /* @__PURE__ */ jsx25(Sequence, {
|
|
12349
12785
|
durationInFrames: resolvedDuration,
|
|
12350
12786
|
name: name ?? "<HtmlInCanvas>",
|
|
12351
|
-
_remotionInternalDocumentationLink:
|
|
12787
|
+
_remotionInternalDocumentationLink: "https://www.remotion.dev/docs/remotion/html-in-canvas",
|
|
12352
12788
|
_experimentalControls: controls,
|
|
12353
12789
|
_remotionInternalEffects: memoizedEffectDefinitions,
|
|
12354
12790
|
_remotionInternalRefForOutline: actualRef,
|
|
@@ -12912,7 +13348,7 @@ var NativeImgInner = ({
|
|
|
12912
13348
|
from: from ?? 0,
|
|
12913
13349
|
durationInFrames: durationInFrames ?? Infinity,
|
|
12914
13350
|
_remotionInternalStack: stack,
|
|
12915
|
-
_remotionInternalDocumentationLink:
|
|
13351
|
+
_remotionInternalDocumentationLink: "https://www.remotion.dev/docs/img",
|
|
12916
13352
|
_remotionInternalIsMedia: { type: "image", src },
|
|
12917
13353
|
name: name ?? "<Img>",
|
|
12918
13354
|
_experimentalControls: controls,
|
|
@@ -13054,7 +13490,7 @@ var ImgInner = ({
|
|
|
13054
13490
|
name: name ?? "<Img>",
|
|
13055
13491
|
showInTimeline,
|
|
13056
13492
|
stack,
|
|
13057
|
-
_remotionInternalDocumentationLink:
|
|
13493
|
+
_remotionInternalDocumentationLink: "https://www.remotion.dev/docs/img",
|
|
13058
13494
|
_experimentalControls: controls,
|
|
13059
13495
|
_remotionInternalRefForOutline: refForOutline,
|
|
13060
13496
|
...canvasProps
|
|
@@ -13066,7 +13502,101 @@ var Img = wrapInSchema({
|
|
|
13066
13502
|
supportsEffects: true
|
|
13067
13503
|
});
|
|
13068
13504
|
addSequenceStackTraces(Img);
|
|
13069
|
-
var
|
|
13505
|
+
var interactiveElementSchema = {
|
|
13506
|
+
durationInFrames: durationInFramesField,
|
|
13507
|
+
from: fromField,
|
|
13508
|
+
...sequenceVisualStyleSchema,
|
|
13509
|
+
hidden: hiddenField
|
|
13510
|
+
};
|
|
13511
|
+
var setRef = (ref, value) => {
|
|
13512
|
+
if (typeof ref === "function") {
|
|
13513
|
+
ref(value);
|
|
13514
|
+
} else if (ref) {
|
|
13515
|
+
ref.current = value;
|
|
13516
|
+
}
|
|
13517
|
+
};
|
|
13518
|
+
var makeInteractiveElement = (tag, displayName) => {
|
|
13519
|
+
const Inner = forwardRef12((propsWithControls, ref) => {
|
|
13520
|
+
const {
|
|
13521
|
+
durationInFrames,
|
|
13522
|
+
from,
|
|
13523
|
+
hidden,
|
|
13524
|
+
name,
|
|
13525
|
+
showInTimeline,
|
|
13526
|
+
stack,
|
|
13527
|
+
_experimentalControls,
|
|
13528
|
+
...props2
|
|
13529
|
+
} = propsWithControls;
|
|
13530
|
+
const refForOutline = useRef25(null);
|
|
13531
|
+
const callbackRef = useCallback19((element) => {
|
|
13532
|
+
refForOutline.current = element;
|
|
13533
|
+
setRef(ref, element);
|
|
13534
|
+
}, [ref]);
|
|
13535
|
+
return /* @__PURE__ */ jsx29(Sequence, {
|
|
13536
|
+
layout: "none",
|
|
13537
|
+
from: from ?? 0,
|
|
13538
|
+
durationInFrames: durationInFrames ?? Infinity,
|
|
13539
|
+
hidden,
|
|
13540
|
+
name: name ?? displayName,
|
|
13541
|
+
showInTimeline: showInTimeline ?? true,
|
|
13542
|
+
_experimentalControls,
|
|
13543
|
+
_remotionInternalStack: stack,
|
|
13544
|
+
_remotionInternalDocumentationLink: "https://www.remotion.dev/docs/interactive",
|
|
13545
|
+
_remotionInternalRefForOutline: refForOutline,
|
|
13546
|
+
children: React29.createElement(tag, {
|
|
13547
|
+
...props2,
|
|
13548
|
+
ref: callbackRef
|
|
13549
|
+
})
|
|
13550
|
+
});
|
|
13551
|
+
});
|
|
13552
|
+
Inner.displayName = displayName;
|
|
13553
|
+
const Wrapped = wrapInSchema({
|
|
13554
|
+
Component: Inner,
|
|
13555
|
+
schema: interactiveElementSchema,
|
|
13556
|
+
supportsEffects: false
|
|
13557
|
+
});
|
|
13558
|
+
Wrapped.displayName = displayName;
|
|
13559
|
+
addSequenceStackTraces(Wrapped);
|
|
13560
|
+
return Wrapped;
|
|
13561
|
+
};
|
|
13562
|
+
var Interactive = {
|
|
13563
|
+
A: makeInteractiveElement("a", "<Interactive.A>"),
|
|
13564
|
+
Article: makeInteractiveElement("article", "<Interactive.Article>"),
|
|
13565
|
+
Aside: makeInteractiveElement("aside", "<Interactive.Aside>"),
|
|
13566
|
+
Button: makeInteractiveElement("button", "<Interactive.Button>"),
|
|
13567
|
+
Circle: makeInteractiveElement("circle", "<Interactive.Circle>"),
|
|
13568
|
+
Code: makeInteractiveElement("code", "<Interactive.Code>"),
|
|
13569
|
+
Div: makeInteractiveElement("div", "<Interactive.Div>"),
|
|
13570
|
+
Ellipse: makeInteractiveElement("ellipse", "<Interactive.Ellipse>"),
|
|
13571
|
+
Em: makeInteractiveElement("em", "<Interactive.Em>"),
|
|
13572
|
+
Footer: makeInteractiveElement("footer", "<Interactive.Footer>"),
|
|
13573
|
+
G: makeInteractiveElement("g", "<Interactive.G>"),
|
|
13574
|
+
H1: makeInteractiveElement("h1", "<Interactive.H1>"),
|
|
13575
|
+
H2: makeInteractiveElement("h2", "<Interactive.H2>"),
|
|
13576
|
+
H3: makeInteractiveElement("h3", "<Interactive.H3>"),
|
|
13577
|
+
H4: makeInteractiveElement("h4", "<Interactive.H4>"),
|
|
13578
|
+
H5: makeInteractiveElement("h5", "<Interactive.H5>"),
|
|
13579
|
+
H6: makeInteractiveElement("h6", "<Interactive.H6>"),
|
|
13580
|
+
Header: makeInteractiveElement("header", "<Interactive.Header>"),
|
|
13581
|
+
Label: makeInteractiveElement("label", "<Interactive.Label>"),
|
|
13582
|
+
Li: makeInteractiveElement("li", "<Interactive.Li>"),
|
|
13583
|
+
Line: makeInteractiveElement("line", "<Interactive.Line>"),
|
|
13584
|
+
Main: makeInteractiveElement("main", "<Interactive.Main>"),
|
|
13585
|
+
Nav: makeInteractiveElement("nav", "<Interactive.Nav>"),
|
|
13586
|
+
Ol: makeInteractiveElement("ol", "<Interactive.Ol>"),
|
|
13587
|
+
P: makeInteractiveElement("p", "<Interactive.P>"),
|
|
13588
|
+
Path: makeInteractiveElement("path", "<Interactive.Path>"),
|
|
13589
|
+
Pre: makeInteractiveElement("pre", "<Interactive.Pre>"),
|
|
13590
|
+
Rect: makeInteractiveElement("rect", "<Interactive.Rect>"),
|
|
13591
|
+
Section: makeInteractiveElement("section", "<Interactive.Section>"),
|
|
13592
|
+
Small: makeInteractiveElement("small", "<Interactive.Small>"),
|
|
13593
|
+
Span: makeInteractiveElement("span", "<Interactive.Span>"),
|
|
13594
|
+
Strong: makeInteractiveElement("strong", "<Interactive.Strong>"),
|
|
13595
|
+
Svg: makeInteractiveElement("svg", "<Interactive.Svg>"),
|
|
13596
|
+
Text: makeInteractiveElement("text", "<Interactive.Text>"),
|
|
13597
|
+
Ul: makeInteractiveElement("ul", "<Interactive.Ul>")
|
|
13598
|
+
};
|
|
13599
|
+
var compositionsRef = React30.createRef();
|
|
13070
13600
|
var CompositionManagerProvider = ({
|
|
13071
13601
|
children,
|
|
13072
13602
|
onlyRenderComposition,
|
|
@@ -13077,15 +13607,15 @@ var CompositionManagerProvider = ({
|
|
|
13077
13607
|
const [folders, setFolders] = useState18([]);
|
|
13078
13608
|
const [canvasContent, setCanvasContent] = useState18(initialCanvasContent);
|
|
13079
13609
|
const [compositions, setCompositions] = useState18(initialCompositions);
|
|
13080
|
-
const currentcompositionsRef =
|
|
13081
|
-
const updateCompositions =
|
|
13610
|
+
const currentcompositionsRef = useRef26(compositions);
|
|
13611
|
+
const updateCompositions = useCallback20((updateComps) => {
|
|
13082
13612
|
setCompositions((comps) => {
|
|
13083
13613
|
const updated = updateComps(comps);
|
|
13084
13614
|
currentcompositionsRef.current = updated;
|
|
13085
13615
|
return updated;
|
|
13086
13616
|
});
|
|
13087
13617
|
}, []);
|
|
13088
|
-
const registerComposition =
|
|
13618
|
+
const registerComposition = useCallback20((comp) => {
|
|
13089
13619
|
updateCompositions((comps) => {
|
|
13090
13620
|
if (comps.find((c2) => c2.id === comp.id)) {
|
|
13091
13621
|
throw new Error(`Multiple composition with id ${comp.id} are registered.`);
|
|
@@ -13093,12 +13623,12 @@ var CompositionManagerProvider = ({
|
|
|
13093
13623
|
return [...comps, comp];
|
|
13094
13624
|
});
|
|
13095
13625
|
}, [updateCompositions]);
|
|
13096
|
-
const unregisterComposition =
|
|
13626
|
+
const unregisterComposition = useCallback20((id) => {
|
|
13097
13627
|
setCompositions((comps) => {
|
|
13098
13628
|
return comps.filter((c2) => c2.id !== id);
|
|
13099
13629
|
});
|
|
13100
13630
|
}, []);
|
|
13101
|
-
const registerFolder =
|
|
13631
|
+
const registerFolder = useCallback20((name, parent, nonce, stack) => {
|
|
13102
13632
|
setFolders((prevFolders) => {
|
|
13103
13633
|
return [
|
|
13104
13634
|
...prevFolders,
|
|
@@ -13111,7 +13641,7 @@ var CompositionManagerProvider = ({
|
|
|
13111
13641
|
];
|
|
13112
13642
|
});
|
|
13113
13643
|
}, []);
|
|
13114
|
-
const unregisterFolder =
|
|
13644
|
+
const unregisterFolder = useCallback20((name, parent) => {
|
|
13115
13645
|
setFolders((prevFolders) => {
|
|
13116
13646
|
return prevFolders.filter((p) => !(p.name === name && p.parent === parent));
|
|
13117
13647
|
});
|
|
@@ -13145,9 +13675,9 @@ var CompositionManagerProvider = ({
|
|
|
13145
13675
|
canvasContent
|
|
13146
13676
|
};
|
|
13147
13677
|
}, [compositions, folders, currentCompositionMetadata, canvasContent]);
|
|
13148
|
-
return /* @__PURE__ */
|
|
13678
|
+
return /* @__PURE__ */ jsx30(CompositionManager.Provider, {
|
|
13149
13679
|
value: compositionManagerContextValue,
|
|
13150
|
-
children: /* @__PURE__ */
|
|
13680
|
+
children: /* @__PURE__ */ jsx30(CompositionSetters.Provider, {
|
|
13151
13681
|
value: compositionManagerSetters,
|
|
13152
13682
|
children
|
|
13153
13683
|
})
|
|
@@ -13245,7 +13775,7 @@ var REMOTION_STUDIO_CONTAINER_ELEMENT = "__remotion-studio-container";
|
|
|
13245
13775
|
var getPreviewDomElement = () => {
|
|
13246
13776
|
return document.getElementById(REMOTION_STUDIO_CONTAINER_ELEMENT);
|
|
13247
13777
|
};
|
|
13248
|
-
var MaxMediaCacheSizeContext =
|
|
13778
|
+
var MaxMediaCacheSizeContext = React31.createContext(null);
|
|
13249
13779
|
var Root = null;
|
|
13250
13780
|
var listeners = [];
|
|
13251
13781
|
var getRoot = () => {
|
|
@@ -13290,7 +13820,7 @@ var MediaEnabledProvider = ({
|
|
|
13290
13820
|
audioEnabled
|
|
13291
13821
|
}) => {
|
|
13292
13822
|
const value = useMemo33(() => ({ videoEnabled, audioEnabled }), [videoEnabled, audioEnabled]);
|
|
13293
|
-
return /* @__PURE__ */
|
|
13823
|
+
return /* @__PURE__ */ jsx31(MediaEnabledContext.Provider, {
|
|
13294
13824
|
value,
|
|
13295
13825
|
children
|
|
13296
13826
|
});
|
|
@@ -13314,25 +13844,25 @@ var RemotionRootContexts = ({
|
|
|
13314
13844
|
const logging = useMemo34(() => {
|
|
13315
13845
|
return { logLevel, mountTime: Date.now() };
|
|
13316
13846
|
}, [logLevel]);
|
|
13317
|
-
return /* @__PURE__ */
|
|
13847
|
+
return /* @__PURE__ */ jsx32(LogLevelContext.Provider, {
|
|
13318
13848
|
value: logging,
|
|
13319
|
-
children: /* @__PURE__ */
|
|
13849
|
+
children: /* @__PURE__ */ jsx32(NonceContext.Provider, {
|
|
13320
13850
|
value: nonceContext,
|
|
13321
|
-
children: /* @__PURE__ */
|
|
13851
|
+
children: /* @__PURE__ */ jsx32(TimelineContextProvider, {
|
|
13322
13852
|
frameState,
|
|
13323
|
-
children: /* @__PURE__ */
|
|
13853
|
+
children: /* @__PURE__ */ jsx32(MediaEnabledProvider, {
|
|
13324
13854
|
videoEnabled,
|
|
13325
13855
|
audioEnabled,
|
|
13326
|
-
children: /* @__PURE__ */
|
|
13327
|
-
children: /* @__PURE__ */
|
|
13328
|
-
children: /* @__PURE__ */
|
|
13329
|
-
children: /* @__PURE__ */
|
|
13330
|
-
children: /* @__PURE__ */
|
|
13331
|
-
children: /* @__PURE__ */
|
|
13856
|
+
children: /* @__PURE__ */ jsx32(EditorPropsProvider, {
|
|
13857
|
+
children: /* @__PURE__ */ jsx32(PrefetchProvider, {
|
|
13858
|
+
children: /* @__PURE__ */ jsx32(SequenceManagerProvider, {
|
|
13859
|
+
children: /* @__PURE__ */ jsx32(DurationsContextProvider, {
|
|
13860
|
+
children: /* @__PURE__ */ jsx32(BufferingProvider, {
|
|
13861
|
+
children: /* @__PURE__ */ jsx32(SharedAudioContextProvider, {
|
|
13332
13862
|
audioLatencyHint,
|
|
13333
13863
|
audioEnabled,
|
|
13334
13864
|
previewSampleRate,
|
|
13335
|
-
children: /* @__PURE__ */
|
|
13865
|
+
children: /* @__PURE__ */ jsx32(SharedAudioTagsContextProvider, {
|
|
13336
13866
|
numberOfAudioTags,
|
|
13337
13867
|
children
|
|
13338
13868
|
})
|
|
@@ -13518,7 +14048,7 @@ var resolveVideoConfigOrCatch = (params) => {
|
|
|
13518
14048
|
};
|
|
13519
14049
|
}
|
|
13520
14050
|
};
|
|
13521
|
-
var SequenceStackTracesUpdateContext =
|
|
14051
|
+
var SequenceStackTracesUpdateContext = React33.createContext(() => {});
|
|
13522
14052
|
var getEnvVariables = () => {
|
|
13523
14053
|
if (getRemotionEnvironment().isRendering) {
|
|
13524
14054
|
const param = window.remotion_envVariables;
|
|
@@ -13544,7 +14074,7 @@ var setupEnvVariables = () => {
|
|
|
13544
14074
|
window.process.env[key] = env[key];
|
|
13545
14075
|
});
|
|
13546
14076
|
};
|
|
13547
|
-
var CurrentScaleContext =
|
|
14077
|
+
var CurrentScaleContext = React34.createContext(null);
|
|
13548
14078
|
var PreviewSizeContext = createContext25({
|
|
13549
14079
|
setSize: () => {
|
|
13550
14080
|
return;
|
|
@@ -13568,7 +14098,7 @@ var calculateScale = ({
|
|
|
13568
14098
|
}
|
|
13569
14099
|
return Number(previewSize);
|
|
13570
14100
|
};
|
|
13571
|
-
var PixelDensityContext =
|
|
14101
|
+
var PixelDensityContext = React35.createContext(null);
|
|
13572
14102
|
var getOffthreadVideoSource = ({
|
|
13573
14103
|
src,
|
|
13574
14104
|
transparent,
|
|
@@ -13750,7 +14280,7 @@ var OffthreadVideoForRendering = ({
|
|
|
13750
14280
|
continueRender2,
|
|
13751
14281
|
delayRender2
|
|
13752
14282
|
]);
|
|
13753
|
-
const onErr =
|
|
14283
|
+
const onErr = useCallback21(() => {
|
|
13754
14284
|
if (onError) {
|
|
13755
14285
|
onError?.(new Error("Failed to load image with src " + imageSrc));
|
|
13756
14286
|
} else {
|
|
@@ -13760,7 +14290,7 @@ var OffthreadVideoForRendering = ({
|
|
|
13760
14290
|
const className = useMemo35(() => {
|
|
13761
14291
|
return [OBJECTFIT_CONTAIN_CLASS_NAME, props2.className].filter(truthy).join(" ");
|
|
13762
14292
|
}, [props2.className]);
|
|
13763
|
-
const onImageFrame =
|
|
14293
|
+
const onImageFrame = useCallback21((img) => {
|
|
13764
14294
|
if (onVideoFrame) {
|
|
13765
14295
|
onVideoFrame(img);
|
|
13766
14296
|
}
|
|
@@ -13769,7 +14299,7 @@ var OffthreadVideoForRendering = ({
|
|
|
13769
14299
|
return null;
|
|
13770
14300
|
}
|
|
13771
14301
|
continueRender2(imageSrc.handle);
|
|
13772
|
-
return /* @__PURE__ */
|
|
14302
|
+
return /* @__PURE__ */ jsx33(Img, {
|
|
13773
14303
|
src: imageSrc.src,
|
|
13774
14304
|
delayRenderRetries,
|
|
13775
14305
|
delayRenderTimeoutInMilliseconds,
|
|
@@ -13825,7 +14355,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
13825
14355
|
if (!context) {
|
|
13826
14356
|
throw new Error("SharedAudioContext not found");
|
|
13827
14357
|
}
|
|
13828
|
-
const videoRef =
|
|
14358
|
+
const videoRef = useRef27(null);
|
|
13829
14359
|
const sharedSource = useMemo36(() => {
|
|
13830
14360
|
if (!context.audioContext) {
|
|
13831
14361
|
return null;
|
|
@@ -13835,7 +14365,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
13835
14365
|
ref: videoRef
|
|
13836
14366
|
});
|
|
13837
14367
|
}, [context.audioContext]);
|
|
13838
|
-
const effectToUse =
|
|
14368
|
+
const effectToUse = React37.useInsertionEffect ?? React37.useLayoutEffect;
|
|
13839
14369
|
effectToUse(() => {
|
|
13840
14370
|
return () => {
|
|
13841
14371
|
requestAnimationFrame(() => {
|
|
@@ -13893,7 +14423,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
13893
14423
|
mediaVolume
|
|
13894
14424
|
});
|
|
13895
14425
|
warnAboutTooHighVolume(userPreferredVolume);
|
|
13896
|
-
const getStack =
|
|
14426
|
+
const getStack = useCallback22(() => {
|
|
13897
14427
|
return _remotionInternalStack ?? null;
|
|
13898
14428
|
}, [_remotionInternalStack]);
|
|
13899
14429
|
useMediaInTimeline({
|
|
@@ -13909,7 +14439,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
13909
14439
|
premountDisplay: parentSequence?.premountDisplay ?? null,
|
|
13910
14440
|
postmountDisplay: parentSequence?.postmountDisplay ?? null,
|
|
13911
14441
|
loopDisplay: undefined,
|
|
13912
|
-
documentationLink:
|
|
14442
|
+
documentationLink: onlyWarnForMediaSeekingError ? "https://www.remotion.dev/docs/offthreadvideo" : "https://www.remotion.dev/docs/html5-video",
|
|
13913
14443
|
refForOutline: videoRef
|
|
13914
14444
|
});
|
|
13915
14445
|
useMediaPlayback({
|
|
@@ -13998,7 +14528,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
13998
14528
|
current.removeEventListener("error", errorHandler);
|
|
13999
14529
|
};
|
|
14000
14530
|
}, [onError, src]);
|
|
14001
|
-
const currentOnDurationCallback =
|
|
14531
|
+
const currentOnDurationCallback = useRef27(onDuration);
|
|
14002
14532
|
currentOnDurationCallback.current = onDuration;
|
|
14003
14533
|
useEmitVideoFrame({ ref: videoRef, onVideoFrame });
|
|
14004
14534
|
useEffect20(() => {
|
|
@@ -14039,7 +14569,8 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
14039
14569
|
requestsVideoFrame: Boolean(onVideoFrame),
|
|
14040
14570
|
isClientSideRendering: false
|
|
14041
14571
|
});
|
|
14042
|
-
return /* @__PURE__ */
|
|
14572
|
+
return /* @__PURE__ */ jsx34("video", {
|
|
14573
|
+
...nativeProps,
|
|
14043
14574
|
ref: videoRef,
|
|
14044
14575
|
muted: muted || mediaMuted || userPreferredVolume <= 0,
|
|
14045
14576
|
playsInline: true,
|
|
@@ -14048,10 +14579,10 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
14048
14579
|
style: actualStyle,
|
|
14049
14580
|
disableRemotePlayback: true,
|
|
14050
14581
|
crossOrigin: crossOriginValue,
|
|
14051
|
-
|
|
14582
|
+
controls: false
|
|
14052
14583
|
});
|
|
14053
14584
|
};
|
|
14054
|
-
var VideoForPreview =
|
|
14585
|
+
var VideoForPreview = forwardRef13(VideoForDevelopmentRefForwardingFunction);
|
|
14055
14586
|
var InnerOffthreadVideo = (props2) => {
|
|
14056
14587
|
const {
|
|
14057
14588
|
startFrom,
|
|
@@ -14068,7 +14599,7 @@ var InnerOffthreadVideo = (props2) => {
|
|
|
14068
14599
|
if (environment.isClientSideRendering) {
|
|
14069
14600
|
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");
|
|
14070
14601
|
}
|
|
14071
|
-
const onDuration =
|
|
14602
|
+
const onDuration = useCallback23(() => {
|
|
14072
14603
|
return;
|
|
14073
14604
|
}, []);
|
|
14074
14605
|
if (typeof props2.src !== "string") {
|
|
@@ -14082,13 +14613,13 @@ var InnerOffthreadVideo = (props2) => {
|
|
|
14082
14613
|
trimAfter
|
|
14083
14614
|
});
|
|
14084
14615
|
if (typeof trimBeforeValue !== "undefined" || typeof trimAfterValue !== "undefined") {
|
|
14085
|
-
return /* @__PURE__ */
|
|
14616
|
+
return /* @__PURE__ */ jsx35(Sequence, {
|
|
14086
14617
|
layout: "none",
|
|
14087
14618
|
from: 0 - (trimBeforeValue ?? 0),
|
|
14088
14619
|
showInTimeline: false,
|
|
14089
14620
|
durationInFrames: trimAfterValue,
|
|
14090
14621
|
name,
|
|
14091
|
-
children: /* @__PURE__ */
|
|
14622
|
+
children: /* @__PURE__ */ jsx35(InnerOffthreadVideo, {
|
|
14092
14623
|
pauseWhenBuffering: pauseWhenBuffering ?? false,
|
|
14093
14624
|
...otherProps,
|
|
14094
14625
|
trimAfter: undefined,
|
|
@@ -14103,7 +14634,7 @@ var InnerOffthreadVideo = (props2) => {
|
|
|
14103
14634
|
}
|
|
14104
14635
|
validateMediaProps(props2, "Video");
|
|
14105
14636
|
if (environment.isRendering) {
|
|
14106
|
-
return /* @__PURE__ */
|
|
14637
|
+
return /* @__PURE__ */ jsx35(OffthreadVideoForRendering, {
|
|
14107
14638
|
pauseWhenBuffering: pauseWhenBuffering ?? false,
|
|
14108
14639
|
...otherProps,
|
|
14109
14640
|
trimAfter: undefined,
|
|
@@ -14125,7 +14656,7 @@ var InnerOffthreadVideo = (props2) => {
|
|
|
14125
14656
|
delayRenderTimeoutInMilliseconds,
|
|
14126
14657
|
...propsForPreview
|
|
14127
14658
|
} = otherProps;
|
|
14128
|
-
return /* @__PURE__ */
|
|
14659
|
+
return /* @__PURE__ */ jsx35(VideoForPreview, {
|
|
14129
14660
|
_remotionInternalStack: stack ?? null,
|
|
14130
14661
|
onDuration,
|
|
14131
14662
|
onlyWarnForMediaSeekingError: true,
|
|
@@ -14174,7 +14705,7 @@ var OffthreadVideo = ({
|
|
|
14174
14705
|
if (imageFormat) {
|
|
14175
14706
|
throw new TypeError(`The \`<OffthreadVideo>\` tag does no longer accept \`imageFormat\`. Use the \`transparent\` prop if you want to render a transparent video.`);
|
|
14176
14707
|
}
|
|
14177
|
-
return /* @__PURE__ */
|
|
14708
|
+
return /* @__PURE__ */ jsx35(InnerOffthreadVideo, {
|
|
14178
14709
|
acceptableTimeShiftInSeconds,
|
|
14179
14710
|
allowAmplificationDuringRender: allowAmplificationDuringRender ?? true,
|
|
14180
14711
|
audioStreamIndex: audioStreamIndex ?? 0,
|
|
@@ -14210,20 +14741,20 @@ var OffthreadVideo = ({
|
|
|
14210
14741
|
addSequenceStackTraces(OffthreadVideo);
|
|
14211
14742
|
var WATCH_REMOTION_STATIC_FILES = "remotion_staticFilesChanged";
|
|
14212
14743
|
function useRemotionContexts() {
|
|
14213
|
-
const compositionManagerCtx =
|
|
14214
|
-
const timelineContext =
|
|
14215
|
-
const setTimelineContext =
|
|
14216
|
-
const sequenceContext =
|
|
14217
|
-
const nonceContext =
|
|
14218
|
-
const canUseRemotionHooksContext =
|
|
14219
|
-
const preloadContext =
|
|
14220
|
-
const resolveCompositionContext =
|
|
14221
|
-
const renderAssetManagerContext =
|
|
14222
|
-
const sequenceManagerContext =
|
|
14223
|
-
const sequenceManagerRefContext =
|
|
14224
|
-
const visualModePropStatusesRefContext =
|
|
14225
|
-
const bufferManagerContext =
|
|
14226
|
-
const logLevelContext =
|
|
14744
|
+
const compositionManagerCtx = React39.useContext(CompositionManager);
|
|
14745
|
+
const timelineContext = React39.useContext(TimelineContext);
|
|
14746
|
+
const setTimelineContext = React39.useContext(SetTimelineContext);
|
|
14747
|
+
const sequenceContext = React39.useContext(SequenceContext);
|
|
14748
|
+
const nonceContext = React39.useContext(NonceContext);
|
|
14749
|
+
const canUseRemotionHooksContext = React39.useContext(CanUseRemotionHooks);
|
|
14750
|
+
const preloadContext = React39.useContext(PreloadContext);
|
|
14751
|
+
const resolveCompositionContext = React39.useContext(ResolveCompositionContext);
|
|
14752
|
+
const renderAssetManagerContext = React39.useContext(RenderAssetManager);
|
|
14753
|
+
const sequenceManagerContext = React39.useContext(SequenceManager);
|
|
14754
|
+
const sequenceManagerRefContext = React39.useContext(SequenceManagerRefContext);
|
|
14755
|
+
const visualModePropStatusesRefContext = React39.useContext(VisualModePropStatusesRefContext);
|
|
14756
|
+
const bufferManagerContext = React39.useContext(BufferingContextReact);
|
|
14757
|
+
const logLevelContext = React39.useContext(LogLevelContext);
|
|
14227
14758
|
return useMemo37(() => ({
|
|
14228
14759
|
compositionManagerCtx,
|
|
14229
14760
|
timelineContext,
|
|
@@ -14258,33 +14789,33 @@ function useRemotionContexts() {
|
|
|
14258
14789
|
}
|
|
14259
14790
|
var RemotionContextProvider = (props2) => {
|
|
14260
14791
|
const { children, contexts } = props2;
|
|
14261
|
-
return /* @__PURE__ */
|
|
14792
|
+
return /* @__PURE__ */ jsx36(LogLevelContext.Provider, {
|
|
14262
14793
|
value: contexts.logLevelContext,
|
|
14263
|
-
children: /* @__PURE__ */
|
|
14794
|
+
children: /* @__PURE__ */ jsx36(CanUseRemotionHooks.Provider, {
|
|
14264
14795
|
value: contexts.canUseRemotionHooksContext,
|
|
14265
|
-
children: /* @__PURE__ */
|
|
14796
|
+
children: /* @__PURE__ */ jsx36(NonceContext.Provider, {
|
|
14266
14797
|
value: contexts.nonceContext,
|
|
14267
|
-
children: /* @__PURE__ */
|
|
14798
|
+
children: /* @__PURE__ */ jsx36(PreloadContext.Provider, {
|
|
14268
14799
|
value: contexts.preloadContext,
|
|
14269
|
-
children: /* @__PURE__ */
|
|
14800
|
+
children: /* @__PURE__ */ jsx36(CompositionManager.Provider, {
|
|
14270
14801
|
value: contexts.compositionManagerCtx,
|
|
14271
|
-
children: /* @__PURE__ */
|
|
14802
|
+
children: /* @__PURE__ */ jsx36(SequenceManagerRefContext.Provider, {
|
|
14272
14803
|
value: contexts.sequenceManagerRefContext,
|
|
14273
|
-
children: /* @__PURE__ */
|
|
14804
|
+
children: /* @__PURE__ */ jsx36(SequenceManager.Provider, {
|
|
14274
14805
|
value: contexts.sequenceManagerContext,
|
|
14275
|
-
children: /* @__PURE__ */
|
|
14806
|
+
children: /* @__PURE__ */ jsx36(VisualModePropStatusesRefContext.Provider, {
|
|
14276
14807
|
value: contexts.visualModePropStatusesRefContext,
|
|
14277
|
-
children: /* @__PURE__ */
|
|
14808
|
+
children: /* @__PURE__ */ jsx36(RenderAssetManager.Provider, {
|
|
14278
14809
|
value: contexts.renderAssetManagerContext,
|
|
14279
|
-
children: /* @__PURE__ */
|
|
14810
|
+
children: /* @__PURE__ */ jsx36(ResolveCompositionContext.Provider, {
|
|
14280
14811
|
value: contexts.resolveCompositionContext,
|
|
14281
|
-
children: /* @__PURE__ */
|
|
14812
|
+
children: /* @__PURE__ */ jsx36(TimelineContext.Provider, {
|
|
14282
14813
|
value: contexts.timelineContext,
|
|
14283
|
-
children: /* @__PURE__ */
|
|
14814
|
+
children: /* @__PURE__ */ jsx36(SetTimelineContext.Provider, {
|
|
14284
14815
|
value: contexts.setTimelineContext,
|
|
14285
|
-
children: /* @__PURE__ */
|
|
14816
|
+
children: /* @__PURE__ */ jsx36(SequenceContext.Provider, {
|
|
14286
14817
|
value: contexts.sequenceContext,
|
|
14287
|
-
children: /* @__PURE__ */
|
|
14818
|
+
children: /* @__PURE__ */ jsx36(BufferingContextReact.Provider, {
|
|
14288
14819
|
value: contexts.bufferManagerContext,
|
|
14289
14820
|
children
|
|
14290
14821
|
})
|
|
@@ -14432,51 +14963,27 @@ var Internals = {
|
|
|
14432
14963
|
useMemoizedEffectDefinitions,
|
|
14433
14964
|
createEffect,
|
|
14434
14965
|
createWebGLContextError,
|
|
14435
|
-
createWebGL2ContextError,
|
|
14436
|
-
computeEffectiveSchemaValuesDotNotation,
|
|
14437
|
-
interpolateKeyframedStatus,
|
|
14438
|
-
makeStaticDragOverride,
|
|
14439
|
-
makeKeyframedDragOverride,
|
|
14440
|
-
resolveDragOverrideValue,
|
|
14441
|
-
getStaticDragOverrideValue,
|
|
14442
|
-
OverrideIdsToNodePathsGettersContext,
|
|
14443
|
-
OverrideIdsToNodePathsSettersContext,
|
|
14444
|
-
findPropsToDelete,
|
|
14445
|
-
makeSequencePropsSubscriptionKey,
|
|
14446
|
-
getPropStatusesCtx,
|
|
14447
|
-
getEffectPropStatusesCtx,
|
|
14448
|
-
hiddenField,
|
|
14449
|
-
durationInFramesField,
|
|
14450
|
-
fromField
|
|
14451
|
-
};
|
|
14452
|
-
var validateFrame = ({
|
|
14453
|
-
allowFloats,
|
|
14454
|
-
durationInFrames,
|
|
14455
|
-
frame
|
|
14456
|
-
}) => {
|
|
14457
|
-
if (typeof frame === "undefined") {
|
|
14458
|
-
throw new TypeError(`Argument missing for parameter "frame"`);
|
|
14459
|
-
}
|
|
14460
|
-
if (typeof frame !== "number") {
|
|
14461
|
-
throw new TypeError(`Argument passed for "frame" is not a number: ${frame}`);
|
|
14462
|
-
}
|
|
14463
|
-
if (!Number.isFinite(frame)) {
|
|
14464
|
-
throw new RangeError(`Frame ${frame} is not finite`);
|
|
14465
|
-
}
|
|
14466
|
-
if (frame % 1 !== 0 && !allowFloats) {
|
|
14467
|
-
throw new RangeError(`Argument for frame must be an integer, but got ${frame}`);
|
|
14468
|
-
}
|
|
14469
|
-
if (frame < 0 && frame < -durationInFrames) {
|
|
14470
|
-
throw new RangeError(`Cannot use frame ${frame}: Duration of composition is ${durationInFrames}, therefore the lowest frame that can be rendered is ${-durationInFrames}`);
|
|
14471
|
-
}
|
|
14472
|
-
if (frame > durationInFrames - 1) {
|
|
14473
|
-
throw new RangeError(`Cannot use frame ${frame}: Duration of composition is ${durationInFrames}, therefore the highest frame that can be rendered is ${durationInFrames - 1}`);
|
|
14474
|
-
}
|
|
14966
|
+
createWebGL2ContextError,
|
|
14967
|
+
computeEffectiveSchemaValuesDotNotation,
|
|
14968
|
+
interpolateKeyframedStatus,
|
|
14969
|
+
makeStaticDragOverride,
|
|
14970
|
+
makeKeyframedDragOverride,
|
|
14971
|
+
resolveDragOverrideValue,
|
|
14972
|
+
getStaticDragOverrideValue,
|
|
14973
|
+
OverrideIdsToNodePathsGettersContext,
|
|
14974
|
+
OverrideIdsToNodePathsSettersContext,
|
|
14975
|
+
findPropsToDelete,
|
|
14976
|
+
makeSequencePropsSubscriptionKey,
|
|
14977
|
+
getPropStatusesCtx,
|
|
14978
|
+
getEffectPropStatusesCtx,
|
|
14979
|
+
hiddenField,
|
|
14980
|
+
durationInFramesField,
|
|
14981
|
+
fromField
|
|
14475
14982
|
};
|
|
14476
14983
|
var flattenChildren = (children) => {
|
|
14477
|
-
const childrenArray =
|
|
14984
|
+
const childrenArray = React40.Children.toArray(children);
|
|
14478
14985
|
return childrenArray.reduce((flatChildren, child) => {
|
|
14479
|
-
if (child.type ===
|
|
14986
|
+
if (child.type === React40.Fragment) {
|
|
14480
14987
|
return flatChildren.concat(flattenChildren(child.props.children));
|
|
14481
14988
|
}
|
|
14482
14989
|
flatChildren.push(child);
|
|
@@ -14485,11 +14992,11 @@ var flattenChildren = (children) => {
|
|
|
14485
14992
|
};
|
|
14486
14993
|
var SeriesSequenceRefForwardingFunction = ({ children }, _ref) => {
|
|
14487
14994
|
useRequireToBeInsideSeries();
|
|
14488
|
-
return /* @__PURE__ */
|
|
14995
|
+
return /* @__PURE__ */ jsx37(IsNotInsideSeriesProvider, {
|
|
14489
14996
|
children
|
|
14490
14997
|
});
|
|
14491
14998
|
};
|
|
14492
|
-
var SeriesSequence =
|
|
14999
|
+
var SeriesSequence = forwardRef14(SeriesSequenceRefForwardingFunction);
|
|
14493
15000
|
var SequenceWithoutSchemaWithRef = SequenceWithoutSchema;
|
|
14494
15001
|
var SeriesInner = (props2) => {
|
|
14495
15002
|
const childrenValue = useMemo38(() => {
|
|
@@ -14533,7 +15040,7 @@ var SeriesInner = (props2) => {
|
|
|
14533
15040
|
}
|
|
14534
15041
|
const currentStartFrame = startFrame + offset;
|
|
14535
15042
|
startFrame += durationInFramesProp + offset;
|
|
14536
|
-
return /* @__PURE__ */
|
|
15043
|
+
return /* @__PURE__ */ jsx37(SequenceWithoutSchemaWithRef, {
|
|
14537
15044
|
ref: castedChild.ref,
|
|
14538
15045
|
name: name || "<Series.Sequence>",
|
|
14539
15046
|
_remotionInternalDocumentationLink: name ? undefined : "https://www.remotion.dev/docs/series",
|
|
@@ -14544,8 +15051,8 @@ var SeriesInner = (props2) => {
|
|
|
14544
15051
|
});
|
|
14545
15052
|
});
|
|
14546
15053
|
}, [props2.children]);
|
|
14547
|
-
return /* @__PURE__ */
|
|
14548
|
-
children: /* @__PURE__ */
|
|
15054
|
+
return /* @__PURE__ */ jsx37(IsInsideSeriesContainer, {
|
|
15055
|
+
children: /* @__PURE__ */ jsx37(Sequence, {
|
|
14549
15056
|
layout: "none",
|
|
14550
15057
|
name: "<Series>",
|
|
14551
15058
|
_remotionInternalDocumentationLink: "https://www.remotion.dev/docs/series",
|
|
@@ -14562,240 +15069,6 @@ var Series = Object.assign(wrapInSchema({
|
|
|
14562
15069
|
Sequence: SeriesSequence
|
|
14563
15070
|
});
|
|
14564
15071
|
addSequenceStackTraces(Series);
|
|
14565
|
-
var validateSpringDuration = (dur) => {
|
|
14566
|
-
if (typeof dur === "undefined") {
|
|
14567
|
-
return;
|
|
14568
|
-
}
|
|
14569
|
-
if (typeof dur !== "number") {
|
|
14570
|
-
throw new TypeError(`A "duration" of a spring must be a "number" but is "${typeof dur}"`);
|
|
14571
|
-
}
|
|
14572
|
-
if (Number.isNaN(dur)) {
|
|
14573
|
-
throw new TypeError('A "duration" of a spring is NaN, which it must not be');
|
|
14574
|
-
}
|
|
14575
|
-
if (!Number.isFinite(dur)) {
|
|
14576
|
-
throw new TypeError('A "duration" of a spring must be finite, but is ' + dur);
|
|
14577
|
-
}
|
|
14578
|
-
if (dur <= 0) {
|
|
14579
|
-
throw new TypeError('A "duration" of a spring must be positive, but is ' + dur);
|
|
14580
|
-
}
|
|
14581
|
-
};
|
|
14582
|
-
var defaultSpringConfig = {
|
|
14583
|
-
damping: 10,
|
|
14584
|
-
mass: 1,
|
|
14585
|
-
stiffness: 100,
|
|
14586
|
-
overshootClamping: false
|
|
14587
|
-
};
|
|
14588
|
-
var advanceCache = {};
|
|
14589
|
-
function advance({
|
|
14590
|
-
animation,
|
|
14591
|
-
now,
|
|
14592
|
-
config
|
|
14593
|
-
}) {
|
|
14594
|
-
const { toValue: toValue2, lastTimestamp, current, velocity } = animation;
|
|
14595
|
-
const deltaTime = Math.min(now - lastTimestamp, 64);
|
|
14596
|
-
if (config.damping <= 0) {
|
|
14597
|
-
throw new Error("Spring damping must be greater than 0, otherwise the spring() animation will never end, causing an infinite loop.");
|
|
14598
|
-
}
|
|
14599
|
-
const c2 = config.damping;
|
|
14600
|
-
const m = config.mass;
|
|
14601
|
-
const k = config.stiffness;
|
|
14602
|
-
const cacheKey = [
|
|
14603
|
-
toValue2,
|
|
14604
|
-
lastTimestamp,
|
|
14605
|
-
current,
|
|
14606
|
-
velocity,
|
|
14607
|
-
c2,
|
|
14608
|
-
m,
|
|
14609
|
-
k,
|
|
14610
|
-
now
|
|
14611
|
-
].join("-");
|
|
14612
|
-
if (advanceCache[cacheKey]) {
|
|
14613
|
-
return advanceCache[cacheKey];
|
|
14614
|
-
}
|
|
14615
|
-
const v0 = -velocity;
|
|
14616
|
-
const x0 = toValue2 - current;
|
|
14617
|
-
const zeta = c2 / (2 * Math.sqrt(k * m));
|
|
14618
|
-
const omega0 = Math.sqrt(k / m);
|
|
14619
|
-
const omega1 = omega0 * Math.sqrt(1 - zeta ** 2);
|
|
14620
|
-
const t = deltaTime / 1000;
|
|
14621
|
-
const sin1 = Math.sin(omega1 * t);
|
|
14622
|
-
const cos1 = Math.cos(omega1 * t);
|
|
14623
|
-
const underDampedEnvelope = Math.exp(-zeta * omega0 * t);
|
|
14624
|
-
const underDampedFrag1 = underDampedEnvelope * (sin1 * ((v0 + zeta * omega0 * x0) / omega1) + x0 * cos1);
|
|
14625
|
-
const underDampedPosition = toValue2 - underDampedFrag1;
|
|
14626
|
-
const underDampedVelocity = zeta * omega0 * underDampedFrag1 - underDampedEnvelope * (cos1 * (v0 + zeta * omega0 * x0) - omega1 * x0 * sin1);
|
|
14627
|
-
const criticallyDampedEnvelope = Math.exp(-omega0 * t);
|
|
14628
|
-
const criticallyDampedPosition = toValue2 - criticallyDampedEnvelope * (x0 + (v0 + omega0 * x0) * t);
|
|
14629
|
-
const criticallyDampedVelocity = criticallyDampedEnvelope * (v0 * (t * omega0 - 1) + t * x0 * omega0 * omega0);
|
|
14630
|
-
const animationNode = {
|
|
14631
|
-
toValue: toValue2,
|
|
14632
|
-
prevPosition: current,
|
|
14633
|
-
lastTimestamp: now,
|
|
14634
|
-
current: zeta < 1 ? underDampedPosition : criticallyDampedPosition,
|
|
14635
|
-
velocity: zeta < 1 ? underDampedVelocity : criticallyDampedVelocity
|
|
14636
|
-
};
|
|
14637
|
-
advanceCache[cacheKey] = animationNode;
|
|
14638
|
-
return animationNode;
|
|
14639
|
-
}
|
|
14640
|
-
var calculationCache = {};
|
|
14641
|
-
function springCalculation({
|
|
14642
|
-
frame,
|
|
14643
|
-
fps,
|
|
14644
|
-
config = {}
|
|
14645
|
-
}) {
|
|
14646
|
-
const from = 0;
|
|
14647
|
-
const to = 1;
|
|
14648
|
-
const cacheKey = [
|
|
14649
|
-
frame,
|
|
14650
|
-
fps,
|
|
14651
|
-
config.damping,
|
|
14652
|
-
config.mass,
|
|
14653
|
-
config.overshootClamping,
|
|
14654
|
-
config.stiffness
|
|
14655
|
-
].join("-");
|
|
14656
|
-
if (calculationCache[cacheKey]) {
|
|
14657
|
-
return calculationCache[cacheKey];
|
|
14658
|
-
}
|
|
14659
|
-
let animation = {
|
|
14660
|
-
lastTimestamp: 0,
|
|
14661
|
-
current: from,
|
|
14662
|
-
toValue: to,
|
|
14663
|
-
velocity: 0,
|
|
14664
|
-
prevPosition: 0
|
|
14665
|
-
};
|
|
14666
|
-
const frameClamped = Math.max(0, frame);
|
|
14667
|
-
const unevenRest = frameClamped % 1;
|
|
14668
|
-
for (let f = 0;f <= Math.floor(frameClamped); f++) {
|
|
14669
|
-
if (f === Math.floor(frameClamped)) {
|
|
14670
|
-
f += unevenRest;
|
|
14671
|
-
}
|
|
14672
|
-
const time = f / fps * 1000;
|
|
14673
|
-
animation = advance({
|
|
14674
|
-
animation,
|
|
14675
|
-
now: time,
|
|
14676
|
-
config: {
|
|
14677
|
-
...defaultSpringConfig,
|
|
14678
|
-
...config
|
|
14679
|
-
}
|
|
14680
|
-
});
|
|
14681
|
-
}
|
|
14682
|
-
calculationCache[cacheKey] = animation;
|
|
14683
|
-
return animation;
|
|
14684
|
-
}
|
|
14685
|
-
var cache = new Map;
|
|
14686
|
-
function measureSpring({
|
|
14687
|
-
fps,
|
|
14688
|
-
config = {},
|
|
14689
|
-
threshold = 0.005
|
|
14690
|
-
}) {
|
|
14691
|
-
if (typeof threshold !== "number") {
|
|
14692
|
-
throw new TypeError(`threshold must be a number, got ${threshold} of type ${typeof threshold}`);
|
|
14693
|
-
}
|
|
14694
|
-
if (threshold === 0) {
|
|
14695
|
-
return Infinity;
|
|
14696
|
-
}
|
|
14697
|
-
if (threshold === 1) {
|
|
14698
|
-
return 0;
|
|
14699
|
-
}
|
|
14700
|
-
if (isNaN(threshold)) {
|
|
14701
|
-
throw new TypeError("Threshold is NaN");
|
|
14702
|
-
}
|
|
14703
|
-
if (!Number.isFinite(threshold)) {
|
|
14704
|
-
throw new TypeError("Threshold is not finite");
|
|
14705
|
-
}
|
|
14706
|
-
if (threshold < 0) {
|
|
14707
|
-
throw new TypeError("Threshold is below 0");
|
|
14708
|
-
}
|
|
14709
|
-
const cacheKey = [
|
|
14710
|
-
fps,
|
|
14711
|
-
config.damping,
|
|
14712
|
-
config.mass,
|
|
14713
|
-
config.overshootClamping,
|
|
14714
|
-
config.stiffness,
|
|
14715
|
-
threshold
|
|
14716
|
-
].join("-");
|
|
14717
|
-
if (cache.has(cacheKey)) {
|
|
14718
|
-
return cache.get(cacheKey);
|
|
14719
|
-
}
|
|
14720
|
-
validateFps(fps, "to the measureSpring() function", false);
|
|
14721
|
-
let frame = 0;
|
|
14722
|
-
let finishedFrame = 0;
|
|
14723
|
-
const calc = () => {
|
|
14724
|
-
return springCalculation({
|
|
14725
|
-
fps,
|
|
14726
|
-
frame,
|
|
14727
|
-
config
|
|
14728
|
-
});
|
|
14729
|
-
};
|
|
14730
|
-
let animation = calc();
|
|
14731
|
-
const calcDifference = () => {
|
|
14732
|
-
return Math.abs(animation.current - animation.toValue);
|
|
14733
|
-
};
|
|
14734
|
-
let difference = calcDifference();
|
|
14735
|
-
while (difference >= threshold) {
|
|
14736
|
-
frame++;
|
|
14737
|
-
animation = calc();
|
|
14738
|
-
difference = calcDifference();
|
|
14739
|
-
}
|
|
14740
|
-
finishedFrame = frame;
|
|
14741
|
-
for (let i = 0;i < 20; i++) {
|
|
14742
|
-
frame++;
|
|
14743
|
-
animation = calc();
|
|
14744
|
-
difference = calcDifference();
|
|
14745
|
-
if (difference >= threshold) {
|
|
14746
|
-
i = 0;
|
|
14747
|
-
finishedFrame = frame + 1;
|
|
14748
|
-
}
|
|
14749
|
-
}
|
|
14750
|
-
cache.set(cacheKey, finishedFrame);
|
|
14751
|
-
return finishedFrame;
|
|
14752
|
-
}
|
|
14753
|
-
function spring({
|
|
14754
|
-
frame: passedFrame,
|
|
14755
|
-
fps,
|
|
14756
|
-
config = {},
|
|
14757
|
-
from = 0,
|
|
14758
|
-
to = 1,
|
|
14759
|
-
durationInFrames: passedDurationInFrames,
|
|
14760
|
-
durationRestThreshold,
|
|
14761
|
-
delay = 0,
|
|
14762
|
-
reverse = false
|
|
14763
|
-
}) {
|
|
14764
|
-
validateSpringDuration(passedDurationInFrames);
|
|
14765
|
-
validateFrame({
|
|
14766
|
-
frame: passedFrame,
|
|
14767
|
-
durationInFrames: Infinity,
|
|
14768
|
-
allowFloats: true
|
|
14769
|
-
});
|
|
14770
|
-
validateFps(fps, "to spring()", false);
|
|
14771
|
-
const needsToCalculateNaturalDuration = reverse || typeof passedDurationInFrames !== "undefined";
|
|
14772
|
-
const naturalDuration = needsToCalculateNaturalDuration ? measureSpring({
|
|
14773
|
-
fps,
|
|
14774
|
-
config,
|
|
14775
|
-
threshold: durationRestThreshold
|
|
14776
|
-
}) : undefined;
|
|
14777
|
-
const naturalDurationGetter = needsToCalculateNaturalDuration ? {
|
|
14778
|
-
get: () => naturalDuration
|
|
14779
|
-
} : {
|
|
14780
|
-
get: () => {
|
|
14781
|
-
throw new Error("did not calculate natural duration, this is an error with Remotion. Please report");
|
|
14782
|
-
}
|
|
14783
|
-
};
|
|
14784
|
-
const reverseProcessed = reverse ? (passedDurationInFrames ?? naturalDurationGetter.get()) - passedFrame : passedFrame;
|
|
14785
|
-
const delayProcessed = reverseProcessed + (reverse ? delay : -delay);
|
|
14786
|
-
const durationProcessed = passedDurationInFrames === undefined ? delayProcessed : delayProcessed / (passedDurationInFrames / naturalDurationGetter.get());
|
|
14787
|
-
if (passedDurationInFrames && delayProcessed > passedDurationInFrames) {
|
|
14788
|
-
return to;
|
|
14789
|
-
}
|
|
14790
|
-
const spr = springCalculation({
|
|
14791
|
-
fps,
|
|
14792
|
-
frame: durationProcessed,
|
|
14793
|
-
config
|
|
14794
|
-
});
|
|
14795
|
-
const inner = config.overshootClamping ? to >= from ? Math.min(spr.current, to) : Math.max(spr.current, to) : spr.current;
|
|
14796
|
-
const interpolated = from === 0 && to === 1 ? inner : interpolate(inner, [0, 1], [from, to]);
|
|
14797
|
-
return interpolated;
|
|
14798
|
-
}
|
|
14799
15072
|
var problematicCharacters = {
|
|
14800
15073
|
"%3A": ":",
|
|
14801
15074
|
"%2F": "/",
|
|
@@ -15027,7 +15300,7 @@ var VideoForRenderingForwardFunction = ({
|
|
|
15027
15300
|
const frame = useCurrentFrame();
|
|
15028
15301
|
const volumePropsFrame = useFrameForVolumeProp(loopVolumeCurveBehavior ?? "repeat");
|
|
15029
15302
|
const videoConfig = useUnsafeVideoConfig();
|
|
15030
|
-
const videoRef =
|
|
15303
|
+
const videoRef = useRef28(null);
|
|
15031
15304
|
const sequenceContext = useContext38(SequenceContext);
|
|
15032
15305
|
const mediaStartsAt = useMediaStartsAt();
|
|
15033
15306
|
const environment = useRemotionEnvironment();
|
|
@@ -15218,13 +15491,13 @@ var VideoForRenderingForwardFunction = ({
|
|
|
15218
15491
|
delayRender2
|
|
15219
15492
|
]);
|
|
15220
15493
|
}
|
|
15221
|
-
return /* @__PURE__ */
|
|
15494
|
+
return /* @__PURE__ */ jsx38("video", {
|
|
15222
15495
|
ref: videoRef,
|
|
15223
15496
|
disableRemotePlayback: true,
|
|
15224
15497
|
...props2
|
|
15225
15498
|
});
|
|
15226
15499
|
};
|
|
15227
|
-
var VideoForRendering =
|
|
15500
|
+
var VideoForRendering = forwardRef15(VideoForRenderingForwardFunction);
|
|
15228
15501
|
var VideoForwardingFunction = (props2, ref) => {
|
|
15229
15502
|
const {
|
|
15230
15503
|
startFrom,
|
|
@@ -15254,7 +15527,7 @@ var VideoForwardingFunction = (props2, ref) => {
|
|
|
15254
15527
|
throw new TypeError(`The \`<Html5Video>\` tag requires a string for \`src\`, but got ${JSON.stringify(props2.src)} instead.`);
|
|
15255
15528
|
}
|
|
15256
15529
|
const preloadedSrc = usePreload(props2.src);
|
|
15257
|
-
const onDuration =
|
|
15530
|
+
const onDuration = useCallback24((src, durationInSeconds) => {
|
|
15258
15531
|
setDurations({ type: "got-duration", durationInSeconds, src });
|
|
15259
15532
|
}, [setDurations]);
|
|
15260
15533
|
const durationFetched = durations[getAbsoluteSrc(preloadedSrc)] ?? durations[getAbsoluteSrc(props2.src)];
|
|
@@ -15267,7 +15540,7 @@ var VideoForwardingFunction = (props2, ref) => {
|
|
|
15267
15540
|
});
|
|
15268
15541
|
if (loop && durationFetched !== undefined) {
|
|
15269
15542
|
if (!Number.isFinite(durationFetched)) {
|
|
15270
|
-
return /* @__PURE__ */
|
|
15543
|
+
return /* @__PURE__ */ jsx39(Html5Video, {
|
|
15271
15544
|
...propsOtherThanLoop,
|
|
15272
15545
|
ref,
|
|
15273
15546
|
stack,
|
|
@@ -15275,7 +15548,7 @@ var VideoForwardingFunction = (props2, ref) => {
|
|
|
15275
15548
|
});
|
|
15276
15549
|
}
|
|
15277
15550
|
const mediaDuration = durationFetched * fps;
|
|
15278
|
-
return /* @__PURE__ */
|
|
15551
|
+
return /* @__PURE__ */ jsx39(Loop, {
|
|
15279
15552
|
durationInFrames: calculateMediaDuration({
|
|
15280
15553
|
trimAfter: trimAfterValue,
|
|
15281
15554
|
mediaDurationInFrames: mediaDuration,
|
|
@@ -15285,7 +15558,7 @@ var VideoForwardingFunction = (props2, ref) => {
|
|
|
15285
15558
|
layout: "none",
|
|
15286
15559
|
name,
|
|
15287
15560
|
showInTimeline: false,
|
|
15288
|
-
children: /* @__PURE__ */
|
|
15561
|
+
children: /* @__PURE__ */ jsx39(Html5Video, {
|
|
15289
15562
|
...propsOtherThanLoop,
|
|
15290
15563
|
ref,
|
|
15291
15564
|
stack,
|
|
@@ -15294,13 +15567,13 @@ var VideoForwardingFunction = (props2, ref) => {
|
|
|
15294
15567
|
});
|
|
15295
15568
|
}
|
|
15296
15569
|
if (typeof trimBeforeValue !== "undefined" || typeof trimAfterValue !== "undefined") {
|
|
15297
|
-
return /* @__PURE__ */
|
|
15570
|
+
return /* @__PURE__ */ jsx39(Sequence, {
|
|
15298
15571
|
layout: "none",
|
|
15299
15572
|
from: 0 - (trimBeforeValue ?? 0),
|
|
15300
15573
|
showInTimeline: false,
|
|
15301
15574
|
durationInFrames: trimAfterValue === undefined ? undefined : trimAfterValue / (props2.playbackRate ?? 1),
|
|
15302
15575
|
name,
|
|
15303
|
-
children: /* @__PURE__ */
|
|
15576
|
+
children: /* @__PURE__ */ jsx39(Html5Video, {
|
|
15304
15577
|
pauseWhenBuffering: pauseWhenBuffering ?? false,
|
|
15305
15578
|
onVideoFrame,
|
|
15306
15579
|
...otherProps,
|
|
@@ -15315,14 +15588,14 @@ var VideoForwardingFunction = (props2, ref) => {
|
|
|
15315
15588
|
volume: props2.volume
|
|
15316
15589
|
}, "Html5Video");
|
|
15317
15590
|
if (environment.isRendering) {
|
|
15318
|
-
return /* @__PURE__ */
|
|
15591
|
+
return /* @__PURE__ */ jsx39(VideoForRendering, {
|
|
15319
15592
|
onDuration,
|
|
15320
15593
|
onVideoFrame: onVideoFrame ?? null,
|
|
15321
15594
|
...otherProps,
|
|
15322
15595
|
ref
|
|
15323
15596
|
});
|
|
15324
15597
|
}
|
|
15325
|
-
return /* @__PURE__ */
|
|
15598
|
+
return /* @__PURE__ */ jsx39(VideoForPreview, {
|
|
15326
15599
|
onlyWarnForMediaSeekingError: false,
|
|
15327
15600
|
...otherProps,
|
|
15328
15601
|
ref,
|
|
@@ -15335,7 +15608,7 @@ var VideoForwardingFunction = (props2, ref) => {
|
|
|
15335
15608
|
onAutoPlayError: onAutoPlayError ?? undefined
|
|
15336
15609
|
});
|
|
15337
15610
|
};
|
|
15338
|
-
var Html5Video =
|
|
15611
|
+
var Html5Video = forwardRef16(VideoForwardingFunction);
|
|
15339
15612
|
addSequenceStackTraces(Html5Video);
|
|
15340
15613
|
checkMultipleRemotionVersions();
|
|
15341
15614
|
var proxyObj = {};
|
|
@@ -15364,9 +15637,9 @@ addSequenceStackTraces(Composition);
|
|
|
15364
15637
|
addSequenceStackTraces(Folder);
|
|
15365
15638
|
|
|
15366
15639
|
// ../shapes/dist/esm/index.mjs
|
|
15367
|
-
import React, { useCallback as
|
|
15640
|
+
import React, { useCallback as useCallback25, useMemo as useMemo40, useRef as useRef29 } from "react";
|
|
15368
15641
|
import { version } from "react-dom";
|
|
15369
|
-
import { jsx as
|
|
15642
|
+
import { jsx as jsx40, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
15370
15643
|
import { jsx as jsx210 } from "react/jsx-runtime";
|
|
15371
15644
|
import { jsx as jsx310 } from "react/jsx-runtime";
|
|
15372
15645
|
import { jsx as jsx42 } from "react/jsx-runtime";
|
|
@@ -15553,11 +15826,11 @@ var RenderSvg = ({
|
|
|
15553
15826
|
...pathStyle ?? {}
|
|
15554
15827
|
};
|
|
15555
15828
|
}, [pathStyle]);
|
|
15556
|
-
const outlineRef =
|
|
15557
|
-
const setSvgRef =
|
|
15829
|
+
const outlineRef = useRef29(null);
|
|
15830
|
+
const setSvgRef = useCallback25((node) => {
|
|
15558
15831
|
outlineRef.current = node;
|
|
15559
15832
|
}, []);
|
|
15560
|
-
const setCanvasRef =
|
|
15833
|
+
const setCanvasRef = useCallback25((canvas) => {
|
|
15561
15834
|
outlineRef.current = canvas;
|
|
15562
15835
|
}, []);
|
|
15563
15836
|
const memoizedEffectDefinitions = Internals.useMemoizedEffectDefinitions(effects);
|
|
@@ -15571,7 +15844,7 @@ var RenderSvg = ({
|
|
|
15571
15844
|
xmlns: "http://www.w3.org/2000/svg",
|
|
15572
15845
|
style: effects.length === 0 || !videoConfig ? actualStyle : { overflow: "visible" },
|
|
15573
15846
|
children: [
|
|
15574
|
-
/* @__PURE__ */
|
|
15847
|
+
/* @__PURE__ */ jsx40("path", {
|
|
15575
15848
|
...reactSupportsTransformOrigin ? {
|
|
15576
15849
|
transformOrigin
|
|
15577
15850
|
} : {
|
|
@@ -15591,17 +15864,17 @@ var RenderSvg = ({
|
|
|
15591
15864
|
const prevY = prevInstruction.y;
|
|
15592
15865
|
return /* @__PURE__ */ jsxs3(React.Fragment, {
|
|
15593
15866
|
children: [
|
|
15594
|
-
/* @__PURE__ */
|
|
15867
|
+
/* @__PURE__ */ jsx40("path", {
|
|
15595
15868
|
d: `M ${prevX} ${prevY} ${i.cp1x} ${i.cp1y}`,
|
|
15596
15869
|
strokeWidth: 2,
|
|
15597
15870
|
stroke: "rgba(0, 0, 0, 0.4)"
|
|
15598
15871
|
}),
|
|
15599
|
-
/* @__PURE__ */
|
|
15872
|
+
/* @__PURE__ */ jsx40("path", {
|
|
15600
15873
|
d: `M ${i.x} ${i.y} ${i.cp2x} ${i.cp2y}`,
|
|
15601
15874
|
strokeWidth: 2,
|
|
15602
15875
|
stroke: "rgba(0, 0, 0, 0.4)"
|
|
15603
15876
|
}),
|
|
15604
|
-
/* @__PURE__ */
|
|
15877
|
+
/* @__PURE__ */ jsx40("circle", {
|
|
15605
15878
|
cx: i.cp1x,
|
|
15606
15879
|
cy: i.cp1y,
|
|
15607
15880
|
r: 3,
|
|
@@ -15609,7 +15882,7 @@ var RenderSvg = ({
|
|
|
15609
15882
|
strokeWidth: 2,
|
|
15610
15883
|
stroke: "black"
|
|
15611
15884
|
}),
|
|
15612
|
-
/* @__PURE__ */
|
|
15885
|
+
/* @__PURE__ */ jsx40("circle", {
|
|
15613
15886
|
cx: i.cp2x,
|
|
15614
15887
|
cy: i.cp2y,
|
|
15615
15888
|
r: 3,
|
|
@@ -15624,7 +15897,7 @@ var RenderSvg = ({
|
|
|
15624
15897
|
}) : null
|
|
15625
15898
|
]
|
|
15626
15899
|
});
|
|
15627
|
-
const content = effects.length === 0 ? svg : /* @__PURE__ */
|
|
15900
|
+
const content = effects.length === 0 ? svg : /* @__PURE__ */ jsx40(HtmlInCanvas, {
|
|
15628
15901
|
ref: setCanvasRef,
|
|
15629
15902
|
width: Math.ceil(width),
|
|
15630
15903
|
height: Math.ceil(height),
|
|
@@ -15639,7 +15912,7 @@ var RenderSvg = ({
|
|
|
15639
15912
|
if (!videoConfig) {
|
|
15640
15913
|
return svg;
|
|
15641
15914
|
}
|
|
15642
|
-
return /* @__PURE__ */
|
|
15915
|
+
return /* @__PURE__ */ jsx40(Sequence, {
|
|
15643
15916
|
layout: "none",
|
|
15644
15917
|
from,
|
|
15645
15918
|
hidden,
|
|
@@ -17752,8 +18025,8 @@ var extrudeAndTransformElement = (options) => {
|
|
|
17752
18025
|
// ../design/dist/esm/index.mjs
|
|
17753
18026
|
import { jsx as jsx212, Fragment as Fragment3 } from "react/jsx-runtime";
|
|
17754
18027
|
import { jsx as jsx312, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
17755
|
-
import { useEffect as useEffect23, useMemo as useMemo210, useRef as
|
|
17756
|
-
import { jsx as
|
|
18028
|
+
import { useEffect as useEffect23, useMemo as useMemo210, useRef as useRef31 } from "react";
|
|
18029
|
+
import { jsx as jsx44 } from "react/jsx-runtime";
|
|
17757
18030
|
import { jsx as jsx53, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
17758
18031
|
import React62 from "react";
|
|
17759
18032
|
import { jsx as jsx63 } from "react/jsx-runtime";
|
|
@@ -17764,7 +18037,7 @@ import React72 from "react";
|
|
|
17764
18037
|
import { jsx as jsx103 } from "react/jsx-runtime";
|
|
17765
18038
|
import { jsx as jsx112 } from "react/jsx-runtime";
|
|
17766
18039
|
import { jsx as jsx122 } from "react/jsx-runtime";
|
|
17767
|
-
import * as
|
|
18040
|
+
import * as React36 from "react";
|
|
17768
18041
|
import * as ReactDOM4 from "react-dom";
|
|
17769
18042
|
import React112 from "react";
|
|
17770
18043
|
import * as React8 from "react";
|
|
@@ -17803,7 +18076,7 @@ import * as React27 from "react";
|
|
|
17803
18076
|
import * as React28 from "react";
|
|
17804
18077
|
import { jsx as jsx232 } from "react/jsx-runtime";
|
|
17805
18078
|
import * as React352 from "react";
|
|
17806
|
-
import * as
|
|
18079
|
+
import * as React312 from "react";
|
|
17807
18080
|
import { useState as useState112 } from "react";
|
|
17808
18081
|
import * as React292 from "react";
|
|
17809
18082
|
import * as React302 from "react";
|
|
@@ -17813,21 +18086,21 @@ import * as React322 from "react";
|
|
|
17813
18086
|
import { Fragment as Fragment8, jsx as jsx242, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
17814
18087
|
import { forwardRef as forwardRef142, createElement as createElement7 } from "react";
|
|
17815
18088
|
import { forwardRef as forwardRef132, createElement as createElement6 } from "react";
|
|
17816
|
-
import * as
|
|
18089
|
+
import * as React372 from "react";
|
|
17817
18090
|
import { jsx as jsx252, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
17818
18091
|
import { jsx as jsx262 } from "react/jsx-runtime";
|
|
17819
18092
|
import * as React49 from "react";
|
|
17820
|
-
import * as
|
|
18093
|
+
import * as React38 from "react";
|
|
17821
18094
|
import { jsx as jsx272 } from "react/jsx-runtime";
|
|
17822
18095
|
import * as React47 from "react";
|
|
17823
|
-
import
|
|
18096
|
+
import React402 from "react";
|
|
17824
18097
|
import * as React392 from "react";
|
|
17825
18098
|
import { Fragment as Fragment22, jsx as jsx282 } from "react/jsx-runtime";
|
|
17826
18099
|
import { jsx as jsx292 } from "react/jsx-runtime";
|
|
17827
18100
|
import React210 from "react";
|
|
17828
18101
|
import { jsx as jsx2102 } from "react/jsx-runtime";
|
|
17829
|
-
import * as
|
|
17830
|
-
import * as
|
|
18102
|
+
import * as React422 from "react";
|
|
18103
|
+
import * as React41 from "react";
|
|
17831
18104
|
import * as React43 from "react";
|
|
17832
18105
|
import * as ReactDOM5 from "react-dom";
|
|
17833
18106
|
import { jsx as jsx302 } from "react/jsx-runtime";
|
|
@@ -17845,7 +18118,7 @@ import { jsx as jsx342 } from "react/jsx-runtime";
|
|
|
17845
18118
|
import React51 from "react";
|
|
17846
18119
|
import { jsx as jsx352 } from "react/jsx-runtime";
|
|
17847
18120
|
import { jsx as jsx362 } from "react/jsx-runtime";
|
|
17848
|
-
function
|
|
18121
|
+
function setRef2(ref, value) {
|
|
17849
18122
|
if (typeof ref === "function") {
|
|
17850
18123
|
return ref(value);
|
|
17851
18124
|
} else if (ref !== null && ref !== undefined) {
|
|
@@ -17856,7 +18129,7 @@ function composeRefs(...refs) {
|
|
|
17856
18129
|
return (node) => {
|
|
17857
18130
|
let hasCleanup = false;
|
|
17858
18131
|
const cleanups = refs.map((ref) => {
|
|
17859
|
-
const cleanup =
|
|
18132
|
+
const cleanup = setRef2(ref, node);
|
|
17860
18133
|
if (!hasCleanup && typeof cleanup == "function") {
|
|
17861
18134
|
hasCleanup = true;
|
|
17862
18135
|
}
|
|
@@ -17869,7 +18142,7 @@ function composeRefs(...refs) {
|
|
|
17869
18142
|
if (typeof cleanup == "function") {
|
|
17870
18143
|
cleanup();
|
|
17871
18144
|
} else {
|
|
17872
|
-
|
|
18145
|
+
setRef2(refs[i], null);
|
|
17873
18146
|
}
|
|
17874
18147
|
}
|
|
17875
18148
|
};
|
|
@@ -17907,9 +18180,9 @@ function createSlot(ownerName) {
|
|
|
17907
18180
|
return child;
|
|
17908
18181
|
}
|
|
17909
18182
|
});
|
|
17910
|
-
return /* @__PURE__ */
|
|
18183
|
+
return /* @__PURE__ */ jsx43(SlotClone, { ...slotProps, ref: forwardedRef, children: React23.isValidElement(newElement) ? React23.cloneElement(newElement, undefined, newChildren) : null });
|
|
17911
18184
|
}
|
|
17912
|
-
return /* @__PURE__ */
|
|
18185
|
+
return /* @__PURE__ */ jsx43(SlotClone, { ...slotProps, ref: forwardedRef, children });
|
|
17913
18186
|
});
|
|
17914
18187
|
Slot2.displayName = `${ownerName}.Slot`;
|
|
17915
18188
|
return Slot2;
|
|
@@ -17937,7 +18210,7 @@ function createSlotClone(ownerName) {
|
|
|
17937
18210
|
var SLOTTABLE_IDENTIFIER = Symbol("radix.slottable");
|
|
17938
18211
|
function createSlottable(ownerName) {
|
|
17939
18212
|
const Slottable2 = ({ children }) => {
|
|
17940
|
-
return /* @__PURE__ */
|
|
18213
|
+
return /* @__PURE__ */ jsx43(Fragment2, { children });
|
|
17941
18214
|
};
|
|
17942
18215
|
Slottable2.displayName = `${ownerName}.Slottable`;
|
|
17943
18216
|
Slottable2.__radixId = SLOTTABLE_IDENTIFIER;
|
|
@@ -18002,7 +18275,7 @@ var getChildNodeFrom = (htmlElement) => {
|
|
|
18002
18275
|
return childNode;
|
|
18003
18276
|
};
|
|
18004
18277
|
var useHoverTransforms = (ref, disabled) => {
|
|
18005
|
-
const [state, setState] =
|
|
18278
|
+
const [state, setState] = React32.useState({
|
|
18006
18279
|
progress: 0,
|
|
18007
18280
|
isActive: false
|
|
18008
18281
|
});
|
|
@@ -18014,7 +18287,7 @@ var useHoverTransforms = (ref, disabled) => {
|
|
|
18014
18287
|
eventTarget.dispatchEvent(new Event("enabled"));
|
|
18015
18288
|
}
|
|
18016
18289
|
}, [disabled, eventTarget]);
|
|
18017
|
-
|
|
18290
|
+
React32.useEffect(() => {
|
|
18018
18291
|
const element = ref.current;
|
|
18019
18292
|
if (!element)
|
|
18020
18293
|
return;
|
|
@@ -18089,8 +18362,8 @@ var useHoverTransforms = (ref, disabled) => {
|
|
|
18089
18362
|
return state;
|
|
18090
18363
|
};
|
|
18091
18364
|
var useClickTransforms = (ref) => {
|
|
18092
|
-
const [hoverProgress, setHoverProgress] =
|
|
18093
|
-
|
|
18365
|
+
const [hoverProgress, setHoverProgress] = React32.useState(0);
|
|
18366
|
+
React32.useEffect(() => {
|
|
18094
18367
|
const element = getChildNodeFrom(ref.current);
|
|
18095
18368
|
if (!element) {
|
|
18096
18369
|
return;
|
|
@@ -18274,7 +18547,7 @@ var Spinner = ({ size, duration }) => {
|
|
|
18274
18547
|
height: size
|
|
18275
18548
|
};
|
|
18276
18549
|
}, [size]);
|
|
18277
|
-
const pathsRef =
|
|
18550
|
+
const pathsRef = useRef31([]);
|
|
18278
18551
|
useEffect23(() => {
|
|
18279
18552
|
const animate = () => {
|
|
18280
18553
|
const now = performance.now();
|
|
@@ -18293,11 +18566,11 @@ var Spinner = ({ size, duration }) => {
|
|
|
18293
18566
|
cancelAnimationFrame(id);
|
|
18294
18567
|
};
|
|
18295
18568
|
}, [duration]);
|
|
18296
|
-
return /* @__PURE__ */
|
|
18569
|
+
return /* @__PURE__ */ jsx44("svg", {
|
|
18297
18570
|
style,
|
|
18298
18571
|
viewBox: `0 0 ${viewBox} ${viewBox}`,
|
|
18299
18572
|
children: new Array(lines).fill(true).map((_, index) => {
|
|
18300
|
-
return /* @__PURE__ */
|
|
18573
|
+
return /* @__PURE__ */ jsx44("path", {
|
|
18301
18574
|
ref: (el) => pathsRef.current[index] = el,
|
|
18302
18575
|
style: {
|
|
18303
18576
|
rotate: `${index * Math.PI * 2 / lines}rad`,
|
|
@@ -18320,9 +18593,9 @@ var Button = ({
|
|
|
18320
18593
|
...rest
|
|
18321
18594
|
}) => {
|
|
18322
18595
|
const [dimensions, setDimensions] = useState22(null);
|
|
18323
|
-
const ref =
|
|
18596
|
+
const ref = useRef210(null);
|
|
18324
18597
|
const { isActive, progress } = useHoverTransforms(ref, Boolean(disabled || loading));
|
|
18325
|
-
const onPointerEnter =
|
|
18598
|
+
const onPointerEnter = useCallback26((e) => {
|
|
18326
18599
|
if (e.pointerType !== "mouse") {
|
|
18327
18600
|
return;
|
|
18328
18601
|
}
|
|
@@ -18359,7 +18632,7 @@ var Button = ({
|
|
|
18359
18632
|
const isDisabled = disabled || loading;
|
|
18360
18633
|
const isAnchor = !asChild && "href" in rest && rest.href !== undefined;
|
|
18361
18634
|
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);
|
|
18362
|
-
const preventInteraction =
|
|
18635
|
+
const preventInteraction = useCallback26((e) => {
|
|
18363
18636
|
e.preventDefault();
|
|
18364
18637
|
e.stopPropagation();
|
|
18365
18638
|
}, []);
|
|
@@ -18655,7 +18928,7 @@ function composeContextScopes(...scopes) {
|
|
|
18655
18928
|
createScope.scopeName = baseScope.scopeName;
|
|
18656
18929
|
return createScope;
|
|
18657
18930
|
}
|
|
18658
|
-
function
|
|
18931
|
+
function setRef22(ref, value) {
|
|
18659
18932
|
if (typeof ref === "function") {
|
|
18660
18933
|
ref(value);
|
|
18661
18934
|
} else if (ref !== null && ref !== undefined) {
|
|
@@ -18663,7 +18936,7 @@ function setRef2(ref, value) {
|
|
|
18663
18936
|
}
|
|
18664
18937
|
}
|
|
18665
18938
|
function composeRefs2(...refs) {
|
|
18666
|
-
return (node) => refs.forEach((ref) =>
|
|
18939
|
+
return (node) => refs.forEach((ref) => setRef22(ref, node));
|
|
18667
18940
|
}
|
|
18668
18941
|
function useComposedRefs2(...refs) {
|
|
18669
18942
|
return React9.useCallback(composeRefs2(...refs), refs);
|
|
@@ -21761,9 +22034,9 @@ var effectCar = createSidecarMedium();
|
|
|
21761
22034
|
var nothing = function() {
|
|
21762
22035
|
return;
|
|
21763
22036
|
};
|
|
21764
|
-
var RemoveScroll =
|
|
21765
|
-
var ref =
|
|
21766
|
-
var _a =
|
|
22037
|
+
var RemoveScroll = React312.forwardRef(function(props, parentRef) {
|
|
22038
|
+
var ref = React312.useRef(null);
|
|
22039
|
+
var _a = React312.useState({
|
|
21767
22040
|
onScrollCapture: nothing,
|
|
21768
22041
|
onWheelCapture: nothing,
|
|
21769
22042
|
onTouchMoveCapture: nothing
|
|
@@ -21772,7 +22045,7 @@ var RemoveScroll = React31.forwardRef(function(props, parentRef) {
|
|
|
21772
22045
|
var SideCar2 = sideCar;
|
|
21773
22046
|
var containerRef = useMergeRefs([ref, parentRef]);
|
|
21774
22047
|
var containerProps = __assign(__assign({}, rest), callbacks);
|
|
21775
|
-
return
|
|
22048
|
+
return React312.createElement(React312.Fragment, null, enabled && React312.createElement(SideCar2, { sideCar: effectCar, removeScrollBar, shards, noIsolation, inert, setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode }), forwardProps ? React312.cloneElement(React312.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef })) : React312.createElement(Container, __assign({}, containerProps, { className, ref: containerRef }), children));
|
|
21776
22049
|
});
|
|
21777
22050
|
RemoveScroll.defaultProps = {
|
|
21778
22051
|
enabled: true,
|
|
@@ -22264,9 +22537,9 @@ var Select = (props) => {
|
|
|
22264
22537
|
required
|
|
22265
22538
|
} = props;
|
|
22266
22539
|
const popperScope = usePopperScope(__scopeSelect);
|
|
22267
|
-
const [trigger, setTrigger] =
|
|
22268
|
-
const [valueNode, setValueNode] =
|
|
22269
|
-
const [valueNodeHasChildren, setValueNodeHasChildren] =
|
|
22540
|
+
const [trigger, setTrigger] = React36.useState(null);
|
|
22541
|
+
const [valueNode, setValueNode] = React36.useState(null);
|
|
22542
|
+
const [valueNodeHasChildren, setValueNodeHasChildren] = React36.useState(false);
|
|
22270
22543
|
const direction = useDirection(dir);
|
|
22271
22544
|
const [open = false, setOpen] = useControllableState({
|
|
22272
22545
|
prop: openProp,
|
|
@@ -22278,9 +22551,9 @@ var Select = (props) => {
|
|
|
22278
22551
|
defaultProp: defaultValue,
|
|
22279
22552
|
onChange: onValueChange
|
|
22280
22553
|
});
|
|
22281
|
-
const triggerPointerDownPosRef =
|
|
22554
|
+
const triggerPointerDownPosRef = React36.useRef(null);
|
|
22282
22555
|
const isFormControl = trigger ? Boolean(trigger.closest("form")) : true;
|
|
22283
|
-
const [nativeOptionsSet, setNativeOptionsSet] =
|
|
22556
|
+
const [nativeOptionsSet, setNativeOptionsSet] = React36.useState(/* @__PURE__ */ new Set);
|
|
22284
22557
|
const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(";");
|
|
22285
22558
|
return /* @__PURE__ */ jsx242(Root22, { ...popperScope, children: /* @__PURE__ */ jsxs4(SelectProvider, {
|
|
22286
22559
|
required,
|
|
@@ -22302,10 +22575,10 @@ var Select = (props) => {
|
|
|
22302
22575
|
children: [
|
|
22303
22576
|
/* @__PURE__ */ jsx242(Collection.Provider, { scope: __scopeSelect, children: /* @__PURE__ */ jsx242(SelectNativeOptionsProvider, {
|
|
22304
22577
|
scope: props.__scopeSelect,
|
|
22305
|
-
onNativeOptionAdd:
|
|
22578
|
+
onNativeOptionAdd: React36.useCallback((option) => {
|
|
22306
22579
|
setNativeOptionsSet((prev) => new Set(prev).add(option));
|
|
22307
22580
|
}, []),
|
|
22308
|
-
onNativeOptionRemove:
|
|
22581
|
+
onNativeOptionRemove: React36.useCallback((option) => {
|
|
22309
22582
|
setNativeOptionsSet((prev) => {
|
|
22310
22583
|
const optionsSet = new Set(prev);
|
|
22311
22584
|
optionsSet.delete(option);
|
|
@@ -22333,7 +22606,7 @@ var Select = (props) => {
|
|
|
22333
22606
|
};
|
|
22334
22607
|
Select.displayName = SELECT_NAME;
|
|
22335
22608
|
var TRIGGER_NAME = "SelectTrigger";
|
|
22336
|
-
var SelectTrigger =
|
|
22609
|
+
var SelectTrigger = React36.forwardRef((props, forwardedRef) => {
|
|
22337
22610
|
const { __scopeSelect, disabled = false, ...triggerProps } = props;
|
|
22338
22611
|
const popperScope = usePopperScope(__scopeSelect);
|
|
22339
22612
|
const context = useSelectContext(TRIGGER_NAME, __scopeSelect);
|
|
@@ -22401,7 +22674,7 @@ var SelectTrigger = React362.forwardRef((props, forwardedRef) => {
|
|
|
22401
22674
|
});
|
|
22402
22675
|
SelectTrigger.displayName = TRIGGER_NAME;
|
|
22403
22676
|
var VALUE_NAME = "SelectValue";
|
|
22404
|
-
var SelectValue =
|
|
22677
|
+
var SelectValue = React36.forwardRef((props, forwardedRef) => {
|
|
22405
22678
|
const { __scopeSelect, className, style, children, placeholder = "", ...valueProps } = props;
|
|
22406
22679
|
const context = useSelectContext(VALUE_NAME, __scopeSelect);
|
|
22407
22680
|
const { onValueNodeHasChildrenChange } = context;
|
|
@@ -22419,7 +22692,7 @@ var SelectValue = React362.forwardRef((props, forwardedRef) => {
|
|
|
22419
22692
|
});
|
|
22420
22693
|
SelectValue.displayName = VALUE_NAME;
|
|
22421
22694
|
var ICON_NAME = "SelectIcon";
|
|
22422
|
-
var SelectIcon =
|
|
22695
|
+
var SelectIcon = React36.forwardRef((props, forwardedRef) => {
|
|
22423
22696
|
const { __scopeSelect, children, ...iconProps } = props;
|
|
22424
22697
|
return /* @__PURE__ */ jsx242(Primitive.span, { "aria-hidden": true, ...iconProps, ref: forwardedRef, children: children || "▼" });
|
|
22425
22698
|
});
|
|
@@ -22430,9 +22703,9 @@ var SelectPortal = (props) => {
|
|
|
22430
22703
|
};
|
|
22431
22704
|
SelectPortal.displayName = PORTAL_NAME2;
|
|
22432
22705
|
var CONTENT_NAME2 = "SelectContent";
|
|
22433
|
-
var SelectContent =
|
|
22706
|
+
var SelectContent = React36.forwardRef((props, forwardedRef) => {
|
|
22434
22707
|
const context = useSelectContext(CONTENT_NAME2, props.__scopeSelect);
|
|
22435
|
-
const [fragment, setFragment] =
|
|
22708
|
+
const [fragment, setFragment] = React36.useState();
|
|
22436
22709
|
useLayoutEffect22(() => {
|
|
22437
22710
|
setFragment(new DocumentFragment);
|
|
22438
22711
|
}, []);
|
|
@@ -22446,7 +22719,7 @@ SelectContent.displayName = CONTENT_NAME2;
|
|
|
22446
22719
|
var CONTENT_MARGIN = 10;
|
|
22447
22720
|
var [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME2);
|
|
22448
22721
|
var CONTENT_IMPL_NAME = "SelectContentImpl";
|
|
22449
|
-
var SelectContentImpl =
|
|
22722
|
+
var SelectContentImpl = React36.forwardRef((props, forwardedRef) => {
|
|
22450
22723
|
const {
|
|
22451
22724
|
__scopeSelect,
|
|
22452
22725
|
position = "item-aligned",
|
|
@@ -22466,20 +22739,20 @@ var SelectContentImpl = React362.forwardRef((props, forwardedRef) => {
|
|
|
22466
22739
|
...contentProps
|
|
22467
22740
|
} = props;
|
|
22468
22741
|
const context = useSelectContext(CONTENT_NAME2, __scopeSelect);
|
|
22469
|
-
const [content, setContent] =
|
|
22470
|
-
const [viewport, setViewport] =
|
|
22742
|
+
const [content, setContent] = React36.useState(null);
|
|
22743
|
+
const [viewport, setViewport] = React36.useState(null);
|
|
22471
22744
|
const composedRefs = useComposedRefs2(forwardedRef, (node) => setContent(node));
|
|
22472
|
-
const [selectedItem, setSelectedItem] =
|
|
22473
|
-
const [selectedItemText, setSelectedItemText] =
|
|
22745
|
+
const [selectedItem, setSelectedItem] = React36.useState(null);
|
|
22746
|
+
const [selectedItemText, setSelectedItemText] = React36.useState(null);
|
|
22474
22747
|
const getItems = useCollection(__scopeSelect);
|
|
22475
|
-
const [isPositioned, setIsPositioned] =
|
|
22476
|
-
const firstValidItemFoundRef =
|
|
22477
|
-
|
|
22748
|
+
const [isPositioned, setIsPositioned] = React36.useState(false);
|
|
22749
|
+
const firstValidItemFoundRef = React36.useRef(false);
|
|
22750
|
+
React36.useEffect(() => {
|
|
22478
22751
|
if (content)
|
|
22479
22752
|
return hideOthers(content);
|
|
22480
22753
|
}, [content]);
|
|
22481
22754
|
useFocusGuards();
|
|
22482
|
-
const focusFirst2 =
|
|
22755
|
+
const focusFirst2 = React36.useCallback((candidates) => {
|
|
22483
22756
|
const [firstItem, ...restItems] = getItems().map((item) => item.ref.current);
|
|
22484
22757
|
const [lastItem] = restItems.slice(-1);
|
|
22485
22758
|
const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;
|
|
@@ -22496,14 +22769,14 @@ var SelectContentImpl = React362.forwardRef((props, forwardedRef) => {
|
|
|
22496
22769
|
return;
|
|
22497
22770
|
}
|
|
22498
22771
|
}, [getItems, viewport]);
|
|
22499
|
-
const focusSelectedItem =
|
|
22500
|
-
|
|
22772
|
+
const focusSelectedItem = React36.useCallback(() => focusFirst2([selectedItem, content]), [focusFirst2, selectedItem, content]);
|
|
22773
|
+
React36.useEffect(() => {
|
|
22501
22774
|
if (isPositioned) {
|
|
22502
22775
|
focusSelectedItem();
|
|
22503
22776
|
}
|
|
22504
22777
|
}, [isPositioned, focusSelectedItem]);
|
|
22505
22778
|
const { onOpenChange, triggerPointerDownPosRef } = context;
|
|
22506
|
-
|
|
22779
|
+
React36.useEffect(() => {
|
|
22507
22780
|
if (content) {
|
|
22508
22781
|
let pointerMoveDelta = { x: 0, y: 0 };
|
|
22509
22782
|
const handlePointerMove = (event) => {
|
|
@@ -22533,7 +22806,7 @@ var SelectContentImpl = React362.forwardRef((props, forwardedRef) => {
|
|
|
22533
22806
|
};
|
|
22534
22807
|
}
|
|
22535
22808
|
}, [content, onOpenChange, triggerPointerDownPosRef]);
|
|
22536
|
-
|
|
22809
|
+
React36.useEffect(() => {
|
|
22537
22810
|
const close = () => onOpenChange(false);
|
|
22538
22811
|
window.addEventListener("blur", close);
|
|
22539
22812
|
window.addEventListener("resize", close);
|
|
@@ -22550,7 +22823,7 @@ var SelectContentImpl = React362.forwardRef((props, forwardedRef) => {
|
|
|
22550
22823
|
setTimeout(() => nextItem.ref.current.focus());
|
|
22551
22824
|
}
|
|
22552
22825
|
});
|
|
22553
|
-
const itemRefCallback =
|
|
22826
|
+
const itemRefCallback = React36.useCallback((node, value, disabled) => {
|
|
22554
22827
|
const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;
|
|
22555
22828
|
const isSelectedItem = context.value !== undefined && context.value === value;
|
|
22556
22829
|
if (isSelectedItem || isFirstValidItem) {
|
|
@@ -22559,8 +22832,8 @@ var SelectContentImpl = React362.forwardRef((props, forwardedRef) => {
|
|
|
22559
22832
|
firstValidItemFoundRef.current = true;
|
|
22560
22833
|
}
|
|
22561
22834
|
}, [context.value]);
|
|
22562
|
-
const handleItemLeave =
|
|
22563
|
-
const itemTextRefCallback =
|
|
22835
|
+
const handleItemLeave = React36.useCallback(() => content?.focus(), [content]);
|
|
22836
|
+
const itemTextRefCallback = React36.useCallback((node, value, disabled) => {
|
|
22564
22837
|
const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;
|
|
22565
22838
|
const isSelectedItem = context.value !== undefined && context.value === value;
|
|
22566
22839
|
if (isSelectedItem || isFirstValidItem) {
|
|
@@ -22655,18 +22928,18 @@ var SelectContentImpl = React362.forwardRef((props, forwardedRef) => {
|
|
|
22655
22928
|
});
|
|
22656
22929
|
SelectContentImpl.displayName = CONTENT_IMPL_NAME;
|
|
22657
22930
|
var ITEM_ALIGNED_POSITION_NAME = "SelectItemAlignedPosition";
|
|
22658
|
-
var SelectItemAlignedPosition =
|
|
22931
|
+
var SelectItemAlignedPosition = React36.forwardRef((props, forwardedRef) => {
|
|
22659
22932
|
const { __scopeSelect, onPlaced, ...popperProps } = props;
|
|
22660
22933
|
const context = useSelectContext(CONTENT_NAME2, __scopeSelect);
|
|
22661
22934
|
const contentContext = useSelectContentContext(CONTENT_NAME2, __scopeSelect);
|
|
22662
|
-
const [contentWrapper, setContentWrapper] =
|
|
22663
|
-
const [content, setContent] =
|
|
22935
|
+
const [contentWrapper, setContentWrapper] = React36.useState(null);
|
|
22936
|
+
const [content, setContent] = React36.useState(null);
|
|
22664
22937
|
const composedRefs = useComposedRefs2(forwardedRef, (node) => setContent(node));
|
|
22665
22938
|
const getItems = useCollection(__scopeSelect);
|
|
22666
|
-
const shouldExpandOnScrollRef =
|
|
22667
|
-
const shouldRepositionRef =
|
|
22939
|
+
const shouldExpandOnScrollRef = React36.useRef(false);
|
|
22940
|
+
const shouldRepositionRef = React36.useRef(true);
|
|
22668
22941
|
const { viewport, selectedItem, selectedItemText, focusSelectedItem } = contentContext;
|
|
22669
|
-
const position =
|
|
22942
|
+
const position = React36.useCallback(() => {
|
|
22670
22943
|
if (context.trigger && context.valueNode && contentWrapper && content && viewport && selectedItem && selectedItemText) {
|
|
22671
22944
|
const triggerRect = context.trigger.getBoundingClientRect();
|
|
22672
22945
|
const contentRect = content.getBoundingClientRect();
|
|
@@ -22747,12 +23020,12 @@ var SelectItemAlignedPosition = React362.forwardRef((props, forwardedRef) => {
|
|
|
22747
23020
|
onPlaced
|
|
22748
23021
|
]);
|
|
22749
23022
|
useLayoutEffect22(() => position(), [position]);
|
|
22750
|
-
const [contentZIndex, setContentZIndex] =
|
|
23023
|
+
const [contentZIndex, setContentZIndex] = React36.useState();
|
|
22751
23024
|
useLayoutEffect22(() => {
|
|
22752
23025
|
if (content)
|
|
22753
23026
|
setContentZIndex(window.getComputedStyle(content).zIndex);
|
|
22754
23027
|
}, [content]);
|
|
22755
|
-
const handleScrollButtonChange =
|
|
23028
|
+
const handleScrollButtonChange = React36.useCallback((node) => {
|
|
22756
23029
|
if (node && shouldRepositionRef.current === true) {
|
|
22757
23030
|
position();
|
|
22758
23031
|
focusSelectedItem?.();
|
|
@@ -22786,7 +23059,7 @@ var SelectItemAlignedPosition = React362.forwardRef((props, forwardedRef) => {
|
|
|
22786
23059
|
});
|
|
22787
23060
|
SelectItemAlignedPosition.displayName = ITEM_ALIGNED_POSITION_NAME;
|
|
22788
23061
|
var POPPER_POSITION_NAME = "SelectPopperPosition";
|
|
22789
|
-
var SelectPopperPosition =
|
|
23062
|
+
var SelectPopperPosition = React36.forwardRef((props, forwardedRef) => {
|
|
22790
23063
|
const {
|
|
22791
23064
|
__scopeSelect,
|
|
22792
23065
|
align = "start",
|
|
@@ -22816,12 +23089,12 @@ var SelectPopperPosition = React362.forwardRef((props, forwardedRef) => {
|
|
|
22816
23089
|
SelectPopperPosition.displayName = POPPER_POSITION_NAME;
|
|
22817
23090
|
var [SelectViewportProvider, useSelectViewportContext] = createSelectContext(CONTENT_NAME2, {});
|
|
22818
23091
|
var VIEWPORT_NAME = "SelectViewport";
|
|
22819
|
-
var SelectViewport =
|
|
23092
|
+
var SelectViewport = React36.forwardRef((props, forwardedRef) => {
|
|
22820
23093
|
const { __scopeSelect, nonce, ...viewportProps } = props;
|
|
22821
23094
|
const contentContext = useSelectContentContext(VIEWPORT_NAME, __scopeSelect);
|
|
22822
23095
|
const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);
|
|
22823
23096
|
const composedRefs = useComposedRefs2(forwardedRef, contentContext.onViewportChange);
|
|
22824
|
-
const prevScrollTopRef =
|
|
23097
|
+
const prevScrollTopRef = React36.useRef(0);
|
|
22825
23098
|
return /* @__PURE__ */ jsxs4(Fragment8, { children: [
|
|
22826
23099
|
/* @__PURE__ */ jsx242("style", {
|
|
22827
23100
|
dangerouslySetInnerHTML: {
|
|
@@ -22870,14 +23143,14 @@ var SelectViewport = React362.forwardRef((props, forwardedRef) => {
|
|
|
22870
23143
|
SelectViewport.displayName = VIEWPORT_NAME;
|
|
22871
23144
|
var GROUP_NAME = "SelectGroup";
|
|
22872
23145
|
var [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GROUP_NAME);
|
|
22873
|
-
var SelectGroup =
|
|
23146
|
+
var SelectGroup = React36.forwardRef((props, forwardedRef) => {
|
|
22874
23147
|
const { __scopeSelect, ...groupProps } = props;
|
|
22875
23148
|
const groupId = useId();
|
|
22876
23149
|
return /* @__PURE__ */ jsx242(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId, children: /* @__PURE__ */ jsx242(Primitive.div, { role: "group", "aria-labelledby": groupId, ...groupProps, ref: forwardedRef }) });
|
|
22877
23150
|
});
|
|
22878
23151
|
SelectGroup.displayName = GROUP_NAME;
|
|
22879
23152
|
var LABEL_NAME = "SelectLabel";
|
|
22880
|
-
var SelectLabel =
|
|
23153
|
+
var SelectLabel = React36.forwardRef((props, forwardedRef) => {
|
|
22881
23154
|
const { __scopeSelect, ...labelProps } = props;
|
|
22882
23155
|
const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);
|
|
22883
23156
|
return /* @__PURE__ */ jsx242(Primitive.div, { id: groupContext.id, ...labelProps, ref: forwardedRef });
|
|
@@ -22885,7 +23158,7 @@ var SelectLabel = React362.forwardRef((props, forwardedRef) => {
|
|
|
22885
23158
|
SelectLabel.displayName = LABEL_NAME;
|
|
22886
23159
|
var ITEM_NAME = "SelectItem";
|
|
22887
23160
|
var [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME);
|
|
22888
|
-
var SelectItem =
|
|
23161
|
+
var SelectItem = React36.forwardRef((props, forwardedRef) => {
|
|
22889
23162
|
const {
|
|
22890
23163
|
__scopeSelect,
|
|
22891
23164
|
value,
|
|
@@ -22896,8 +23169,8 @@ var SelectItem = React362.forwardRef((props, forwardedRef) => {
|
|
|
22896
23169
|
const context = useSelectContext(ITEM_NAME, __scopeSelect);
|
|
22897
23170
|
const contentContext = useSelectContentContext(ITEM_NAME, __scopeSelect);
|
|
22898
23171
|
const isSelected = context.value === value;
|
|
22899
|
-
const [textValue, setTextValue] =
|
|
22900
|
-
const [isFocused, setIsFocused] =
|
|
23172
|
+
const [textValue, setTextValue] = React36.useState(textValueProp ?? "");
|
|
23173
|
+
const [isFocused, setIsFocused] = React36.useState(false);
|
|
22901
23174
|
const composedRefs = useComposedRefs2(forwardedRef, (node) => contentContext.itemRefCallback?.(node, value, disabled));
|
|
22902
23175
|
const textId = useId();
|
|
22903
23176
|
const handleSelect = () => {
|
|
@@ -22915,7 +23188,7 @@ var SelectItem = React362.forwardRef((props, forwardedRef) => {
|
|
|
22915
23188
|
disabled,
|
|
22916
23189
|
textId,
|
|
22917
23190
|
isSelected,
|
|
22918
|
-
onItemTextChange:
|
|
23191
|
+
onItemTextChange: React36.useCallback((node) => {
|
|
22919
23192
|
setTextValue((prevTextValue) => prevTextValue || (node?.textContent ?? "").trim());
|
|
22920
23193
|
}, []),
|
|
22921
23194
|
children: /* @__PURE__ */ jsx242(Collection.ItemSlot, {
|
|
@@ -22964,16 +23237,16 @@ var SelectItem = React362.forwardRef((props, forwardedRef) => {
|
|
|
22964
23237
|
});
|
|
22965
23238
|
SelectItem.displayName = ITEM_NAME;
|
|
22966
23239
|
var ITEM_TEXT_NAME = "SelectItemText";
|
|
22967
|
-
var SelectItemText =
|
|
23240
|
+
var SelectItemText = React36.forwardRef((props, forwardedRef) => {
|
|
22968
23241
|
const { __scopeSelect, className, style, ...itemTextProps } = props;
|
|
22969
23242
|
const context = useSelectContext(ITEM_TEXT_NAME, __scopeSelect);
|
|
22970
23243
|
const contentContext = useSelectContentContext(ITEM_TEXT_NAME, __scopeSelect);
|
|
22971
23244
|
const itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect);
|
|
22972
23245
|
const nativeOptionsContext = useSelectNativeOptionsContext(ITEM_TEXT_NAME, __scopeSelect);
|
|
22973
|
-
const [itemTextNode, setItemTextNode] =
|
|
23246
|
+
const [itemTextNode, setItemTextNode] = React36.useState(null);
|
|
22974
23247
|
const composedRefs = useComposedRefs2(forwardedRef, (node) => setItemTextNode(node), itemContext.onItemTextChange, (node) => contentContext.itemTextRefCallback?.(node, itemContext.value, itemContext.disabled));
|
|
22975
23248
|
const textContent = itemTextNode?.textContent;
|
|
22976
|
-
const nativeOption =
|
|
23249
|
+
const nativeOption = React36.useMemo(() => /* @__PURE__ */ jsx242("option", { value: itemContext.value, disabled: itemContext.disabled, children: textContent }, itemContext.value), [itemContext.disabled, itemContext.value, textContent]);
|
|
22977
23250
|
const { onNativeOptionAdd, onNativeOptionRemove } = nativeOptionsContext;
|
|
22978
23251
|
useLayoutEffect22(() => {
|
|
22979
23252
|
onNativeOptionAdd(nativeOption);
|
|
@@ -22986,17 +23259,17 @@ var SelectItemText = React362.forwardRef((props, forwardedRef) => {
|
|
|
22986
23259
|
});
|
|
22987
23260
|
SelectItemText.displayName = ITEM_TEXT_NAME;
|
|
22988
23261
|
var ITEM_INDICATOR_NAME = "SelectItemIndicator";
|
|
22989
|
-
var SelectItemIndicator =
|
|
23262
|
+
var SelectItemIndicator = React36.forwardRef((props, forwardedRef) => {
|
|
22990
23263
|
const { __scopeSelect, ...itemIndicatorProps } = props;
|
|
22991
23264
|
const itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);
|
|
22992
23265
|
return itemContext.isSelected ? /* @__PURE__ */ jsx242(Primitive.span, { "aria-hidden": true, ...itemIndicatorProps, ref: forwardedRef }) : null;
|
|
22993
23266
|
});
|
|
22994
23267
|
SelectItemIndicator.displayName = ITEM_INDICATOR_NAME;
|
|
22995
23268
|
var SCROLL_UP_BUTTON_NAME = "SelectScrollUpButton";
|
|
22996
|
-
var SelectScrollUpButton =
|
|
23269
|
+
var SelectScrollUpButton = React36.forwardRef((props, forwardedRef) => {
|
|
22997
23270
|
const contentContext = useSelectContentContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);
|
|
22998
23271
|
const viewportContext = useSelectViewportContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);
|
|
22999
|
-
const [canScrollUp, setCanScrollUp] =
|
|
23272
|
+
const [canScrollUp, setCanScrollUp] = React36.useState(false);
|
|
23000
23273
|
const composedRefs = useComposedRefs2(forwardedRef, viewportContext.onScrollButtonChange);
|
|
23001
23274
|
useLayoutEffect22(() => {
|
|
23002
23275
|
if (contentContext.viewport && contentContext.isPositioned) {
|
|
@@ -23024,10 +23297,10 @@ var SelectScrollUpButton = React362.forwardRef((props, forwardedRef) => {
|
|
|
23024
23297
|
});
|
|
23025
23298
|
SelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;
|
|
23026
23299
|
var SCROLL_DOWN_BUTTON_NAME = "SelectScrollDownButton";
|
|
23027
|
-
var SelectScrollDownButton =
|
|
23300
|
+
var SelectScrollDownButton = React36.forwardRef((props, forwardedRef) => {
|
|
23028
23301
|
const contentContext = useSelectContentContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);
|
|
23029
23302
|
const viewportContext = useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);
|
|
23030
|
-
const [canScrollDown, setCanScrollDown] =
|
|
23303
|
+
const [canScrollDown, setCanScrollDown] = React36.useState(false);
|
|
23031
23304
|
const composedRefs = useComposedRefs2(forwardedRef, viewportContext.onScrollButtonChange);
|
|
23032
23305
|
useLayoutEffect22(() => {
|
|
23033
23306
|
if (contentContext.viewport && contentContext.isPositioned) {
|
|
@@ -23055,18 +23328,18 @@ var SelectScrollDownButton = React362.forwardRef((props, forwardedRef) => {
|
|
|
23055
23328
|
}) : null;
|
|
23056
23329
|
});
|
|
23057
23330
|
SelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;
|
|
23058
|
-
var SelectScrollButtonImpl =
|
|
23331
|
+
var SelectScrollButtonImpl = React36.forwardRef((props, forwardedRef) => {
|
|
23059
23332
|
const { __scopeSelect, onAutoScroll, ...scrollIndicatorProps } = props;
|
|
23060
23333
|
const contentContext = useSelectContentContext("SelectScrollButton", __scopeSelect);
|
|
23061
|
-
const autoScrollTimerRef =
|
|
23334
|
+
const autoScrollTimerRef = React36.useRef(null);
|
|
23062
23335
|
const getItems = useCollection(__scopeSelect);
|
|
23063
|
-
const clearAutoScrollTimer =
|
|
23336
|
+
const clearAutoScrollTimer = React36.useCallback(() => {
|
|
23064
23337
|
if (autoScrollTimerRef.current !== null) {
|
|
23065
23338
|
window.clearInterval(autoScrollTimerRef.current);
|
|
23066
23339
|
autoScrollTimerRef.current = null;
|
|
23067
23340
|
}
|
|
23068
23341
|
}, []);
|
|
23069
|
-
|
|
23342
|
+
React36.useEffect(() => {
|
|
23070
23343
|
return () => clearAutoScrollTimer();
|
|
23071
23344
|
}, [clearAutoScrollTimer]);
|
|
23072
23345
|
useLayoutEffect22(() => {
|
|
@@ -23095,13 +23368,13 @@ var SelectScrollButtonImpl = React362.forwardRef((props, forwardedRef) => {
|
|
|
23095
23368
|
});
|
|
23096
23369
|
});
|
|
23097
23370
|
var SEPARATOR_NAME = "SelectSeparator";
|
|
23098
|
-
var SelectSeparator =
|
|
23371
|
+
var SelectSeparator = React36.forwardRef((props, forwardedRef) => {
|
|
23099
23372
|
const { __scopeSelect, ...separatorProps } = props;
|
|
23100
23373
|
return /* @__PURE__ */ jsx242(Primitive.div, { "aria-hidden": true, ...separatorProps, ref: forwardedRef });
|
|
23101
23374
|
});
|
|
23102
23375
|
SelectSeparator.displayName = SEPARATOR_NAME;
|
|
23103
23376
|
var ARROW_NAME2 = "SelectArrow";
|
|
23104
|
-
var SelectArrow =
|
|
23377
|
+
var SelectArrow = React36.forwardRef((props, forwardedRef) => {
|
|
23105
23378
|
const { __scopeSelect, ...arrowProps } = props;
|
|
23106
23379
|
const popperScope = usePopperScope(__scopeSelect);
|
|
23107
23380
|
const context = useSelectContext(ARROW_NAME2, __scopeSelect);
|
|
@@ -23112,12 +23385,12 @@ SelectArrow.displayName = ARROW_NAME2;
|
|
|
23112
23385
|
function shouldShowPlaceholder(value) {
|
|
23113
23386
|
return value === "" || value === undefined;
|
|
23114
23387
|
}
|
|
23115
|
-
var BubbleSelect =
|
|
23388
|
+
var BubbleSelect = React36.forwardRef((props, forwardedRef) => {
|
|
23116
23389
|
const { value, ...selectProps } = props;
|
|
23117
|
-
const ref =
|
|
23390
|
+
const ref = React36.useRef(null);
|
|
23118
23391
|
const composedRefs = useComposedRefs2(forwardedRef, ref);
|
|
23119
23392
|
const prevValue = usePrevious(value);
|
|
23120
|
-
|
|
23393
|
+
React36.useEffect(() => {
|
|
23121
23394
|
const select = ref.current;
|
|
23122
23395
|
const selectProto = window.HTMLSelectElement.prototype;
|
|
23123
23396
|
const descriptor = Object.getOwnPropertyDescriptor(selectProto, "value");
|
|
@@ -23133,9 +23406,9 @@ var BubbleSelect = React362.forwardRef((props, forwardedRef) => {
|
|
|
23133
23406
|
BubbleSelect.displayName = "BubbleSelect";
|
|
23134
23407
|
function useTypeaheadSearch(onSearchChange) {
|
|
23135
23408
|
const handleSearchChange = useCallbackRef(onSearchChange);
|
|
23136
|
-
const searchRef =
|
|
23137
|
-
const timerRef =
|
|
23138
|
-
const handleTypeaheadSearch =
|
|
23409
|
+
const searchRef = React36.useRef("");
|
|
23410
|
+
const timerRef = React36.useRef(0);
|
|
23411
|
+
const handleTypeaheadSearch = React36.useCallback((key) => {
|
|
23139
23412
|
const search = searchRef.current + key;
|
|
23140
23413
|
handleSearchChange(search);
|
|
23141
23414
|
(function updateSearch(value) {
|
|
@@ -23145,11 +23418,11 @@ function useTypeaheadSearch(onSearchChange) {
|
|
|
23145
23418
|
timerRef.current = window.setTimeout(() => updateSearch(""), 1000);
|
|
23146
23419
|
})(search);
|
|
23147
23420
|
}, [handleSearchChange]);
|
|
23148
|
-
const resetTypeahead =
|
|
23421
|
+
const resetTypeahead = React36.useCallback(() => {
|
|
23149
23422
|
searchRef.current = "";
|
|
23150
23423
|
window.clearTimeout(timerRef.current);
|
|
23151
23424
|
}, []);
|
|
23152
|
-
|
|
23425
|
+
React36.useEffect(() => {
|
|
23153
23426
|
return () => window.clearTimeout(timerRef.current);
|
|
23154
23427
|
}, []);
|
|
23155
23428
|
return [searchRef, handleTypeaheadSearch, resetTypeahead];
|
|
@@ -23238,7 +23511,7 @@ var ChevronDown = createLucideIcon("ChevronDown", [
|
|
|
23238
23511
|
var ChevronUp = createLucideIcon("ChevronUp", [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]]);
|
|
23239
23512
|
var Select2 = Root222;
|
|
23240
23513
|
var SelectValue2 = Value;
|
|
23241
|
-
var SelectTrigger2 =
|
|
23514
|
+
var SelectTrigger2 = React372.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs52(Trigger, {
|
|
23242
23515
|
ref,
|
|
23243
23516
|
className: cn("flex h-10 w-full items-center justify-between rounded-md border-black border-2 border-b-4 bg-card-bg px-3 py-5 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1 font-brand", className),
|
|
23244
23517
|
...props,
|
|
@@ -23253,7 +23526,7 @@ var SelectTrigger2 = React37.forwardRef(({ className, children, ...props }, ref)
|
|
|
23253
23526
|
]
|
|
23254
23527
|
}));
|
|
23255
23528
|
SelectTrigger2.displayName = Trigger.displayName;
|
|
23256
|
-
var SelectScrollUpButton2 =
|
|
23529
|
+
var SelectScrollUpButton2 = React372.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx252(ScrollUpButton, {
|
|
23257
23530
|
ref,
|
|
23258
23531
|
className: cn("flex cursor-default items-center justify-center py-1", className),
|
|
23259
23532
|
...props,
|
|
@@ -23262,7 +23535,7 @@ var SelectScrollUpButton2 = React37.forwardRef(({ className, ...props }, ref) =>
|
|
|
23262
23535
|
})
|
|
23263
23536
|
}));
|
|
23264
23537
|
SelectScrollUpButton2.displayName = ScrollUpButton.displayName;
|
|
23265
|
-
var SelectScrollDownButton2 =
|
|
23538
|
+
var SelectScrollDownButton2 = React372.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx252(ScrollDownButton, {
|
|
23266
23539
|
ref,
|
|
23267
23540
|
className: cn("flex cursor-default items-center justify-center py-1", className),
|
|
23268
23541
|
...props,
|
|
@@ -23271,7 +23544,7 @@ var SelectScrollDownButton2 = React37.forwardRef(({ className, ...props }, ref)
|
|
|
23271
23544
|
})
|
|
23272
23545
|
}));
|
|
23273
23546
|
SelectScrollDownButton2.displayName = ScrollDownButton.displayName;
|
|
23274
|
-
var SelectContent2 =
|
|
23547
|
+
var SelectContent2 = React372.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx252(Portal2, {
|
|
23275
23548
|
children: /* @__PURE__ */ jsxs52(Content2, {
|
|
23276
23549
|
ref,
|
|
23277
23550
|
className: cn(" border-2 border-black relative z-50 max-h-96 min-w-32 overflow-hidden rounded-md font-brand bg-card-bg text-text shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", className),
|
|
@@ -23288,13 +23561,13 @@ var SelectContent2 = React37.forwardRef(({ className, children, position = "popp
|
|
|
23288
23561
|
})
|
|
23289
23562
|
}));
|
|
23290
23563
|
SelectContent2.displayName = Content2.displayName;
|
|
23291
|
-
var SelectLabel2 =
|
|
23564
|
+
var SelectLabel2 = React372.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx252(Label, {
|
|
23292
23565
|
ref,
|
|
23293
23566
|
className: cn("py-1.5 pl-8 pr-2 text-sm font-semibold", className),
|
|
23294
23567
|
...props
|
|
23295
23568
|
}));
|
|
23296
23569
|
SelectLabel2.displayName = Label.displayName;
|
|
23297
|
-
var SelectItem2 =
|
|
23570
|
+
var SelectItem2 = React372.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs52(Item, {
|
|
23298
23571
|
ref,
|
|
23299
23572
|
className: cn("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden focus:bg-slate-200 dark:focus:bg-white/10 data-disabled:pointer-events-none data-disabled:opacity-50 font-brand", className),
|
|
23300
23573
|
...props,
|
|
@@ -23313,7 +23586,7 @@ var SelectItem2 = React37.forwardRef(({ className, children, ...props }, ref) =>
|
|
|
23313
23586
|
]
|
|
23314
23587
|
}));
|
|
23315
23588
|
SelectItem2.displayName = Item.displayName;
|
|
23316
|
-
var SelectSeparator2 =
|
|
23589
|
+
var SelectSeparator2 = React372.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx252(Separator, {
|
|
23317
23590
|
ref,
|
|
23318
23591
|
className: cn("-mx-1 my-1 h-px bg-muted", className),
|
|
23319
23592
|
...props
|
|
@@ -23346,19 +23619,19 @@ function composeEventHandlers2(originalEventHandler, ourEventHandler, { checkFor
|
|
|
23346
23619
|
function createContextScope2(scopeName, createContextScopeDeps = []) {
|
|
23347
23620
|
let defaultContexts = [];
|
|
23348
23621
|
function createContext32(rootComponentName, defaultContext) {
|
|
23349
|
-
const BaseContext =
|
|
23622
|
+
const BaseContext = React38.createContext(defaultContext);
|
|
23350
23623
|
const index2 = defaultContexts.length;
|
|
23351
23624
|
defaultContexts = [...defaultContexts, defaultContext];
|
|
23352
23625
|
const Provider = (props) => {
|
|
23353
23626
|
const { scope, children, ...context } = props;
|
|
23354
23627
|
const Context = scope?.[scopeName]?.[index2] || BaseContext;
|
|
23355
|
-
const value =
|
|
23628
|
+
const value = React38.useMemo(() => context, Object.values(context));
|
|
23356
23629
|
return /* @__PURE__ */ jsx272(Context.Provider, { value, children });
|
|
23357
23630
|
};
|
|
23358
23631
|
Provider.displayName = rootComponentName + "Provider";
|
|
23359
23632
|
function useContext222(consumerName, scope) {
|
|
23360
23633
|
const Context = scope?.[scopeName]?.[index2] || BaseContext;
|
|
23361
|
-
const context =
|
|
23634
|
+
const context = React38.useContext(Context);
|
|
23362
23635
|
if (context)
|
|
23363
23636
|
return context;
|
|
23364
23637
|
if (defaultContext !== undefined)
|
|
@@ -23369,11 +23642,11 @@ function createContextScope2(scopeName, createContextScopeDeps = []) {
|
|
|
23369
23642
|
}
|
|
23370
23643
|
const createScope = () => {
|
|
23371
23644
|
const scopeContexts = defaultContexts.map((defaultContext) => {
|
|
23372
|
-
return
|
|
23645
|
+
return React38.createContext(defaultContext);
|
|
23373
23646
|
});
|
|
23374
23647
|
return function useScope(scope) {
|
|
23375
23648
|
const contexts = scope?.[scopeName] || scopeContexts;
|
|
23376
|
-
return
|
|
23649
|
+
return React38.useMemo(() => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }), [scope, contexts]);
|
|
23377
23650
|
};
|
|
23378
23651
|
};
|
|
23379
23652
|
createScope.scopeName = scopeName;
|
|
@@ -23394,7 +23667,7 @@ function composeContextScopes2(...scopes) {
|
|
|
23394
23667
|
const currentScope = scopeProps[`__scope${scopeName}`];
|
|
23395
23668
|
return { ...nextScopes2, ...currentScope };
|
|
23396
23669
|
}, {});
|
|
23397
|
-
return
|
|
23670
|
+
return React38.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);
|
|
23398
23671
|
};
|
|
23399
23672
|
};
|
|
23400
23673
|
createScope.scopeName = baseScope.scopeName;
|
|
@@ -23487,14 +23760,14 @@ function createCollection2(name) {
|
|
|
23487
23760
|
const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(PROVIDER_NAME, { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map });
|
|
23488
23761
|
const CollectionProvider = (props) => {
|
|
23489
23762
|
const { scope, children } = props;
|
|
23490
|
-
const ref =
|
|
23491
|
-
const itemMap =
|
|
23763
|
+
const ref = React402.useRef(null);
|
|
23764
|
+
const itemMap = React402.useRef(/* @__PURE__ */ new Map).current;
|
|
23492
23765
|
return /* @__PURE__ */ jsx292(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });
|
|
23493
23766
|
};
|
|
23494
23767
|
CollectionProvider.displayName = PROVIDER_NAME;
|
|
23495
23768
|
const COLLECTION_SLOT_NAME = name + "CollectionSlot";
|
|
23496
23769
|
const CollectionSlotImpl = createSlot2(COLLECTION_SLOT_NAME);
|
|
23497
|
-
const CollectionSlot =
|
|
23770
|
+
const CollectionSlot = React402.forwardRef((props, forwardedRef) => {
|
|
23498
23771
|
const { scope, children } = props;
|
|
23499
23772
|
const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);
|
|
23500
23773
|
const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);
|
|
@@ -23504,12 +23777,12 @@ function createCollection2(name) {
|
|
|
23504
23777
|
const ITEM_SLOT_NAME = name + "CollectionItemSlot";
|
|
23505
23778
|
const ITEM_DATA_ATTR = "data-radix-collection-item";
|
|
23506
23779
|
const CollectionItemSlotImpl = createSlot2(ITEM_SLOT_NAME);
|
|
23507
|
-
const CollectionItemSlot =
|
|
23780
|
+
const CollectionItemSlot = React402.forwardRef((props, forwardedRef) => {
|
|
23508
23781
|
const { scope, children, ...itemData } = props;
|
|
23509
|
-
const ref =
|
|
23782
|
+
const ref = React402.useRef(null);
|
|
23510
23783
|
const composedRefs = useComposedRefs(forwardedRef, ref);
|
|
23511
23784
|
const context = useCollectionContext(ITEM_SLOT_NAME, scope);
|
|
23512
|
-
|
|
23785
|
+
React402.useEffect(() => {
|
|
23513
23786
|
context.itemMap.set(ref, { ref, ...itemData });
|
|
23514
23787
|
return () => void context.itemMap.delete(ref);
|
|
23515
23788
|
});
|
|
@@ -23518,7 +23791,7 @@ function createCollection2(name) {
|
|
|
23518
23791
|
CollectionItemSlot.displayName = ITEM_SLOT_NAME;
|
|
23519
23792
|
function useCollection2(scope) {
|
|
23520
23793
|
const context = useCollectionContext(name + "CollectionConsumer", scope);
|
|
23521
|
-
const getItems =
|
|
23794
|
+
const getItems = React402.useCallback(() => {
|
|
23522
23795
|
const collectionNode = context.collectionRef.current;
|
|
23523
23796
|
if (!collectionNode)
|
|
23524
23797
|
return [];
|
|
@@ -23836,13 +24109,13 @@ function toSafeIndex(array, index2) {
|
|
|
23836
24109
|
function toSafeInteger(number) {
|
|
23837
24110
|
return number !== number || number === 0 ? 0 : Math.trunc(number);
|
|
23838
24111
|
}
|
|
23839
|
-
var useLayoutEffect222 = globalThis?.document ?
|
|
23840
|
-
var useReactId2 =
|
|
24112
|
+
var useLayoutEffect222 = globalThis?.document ? React41.useLayoutEffect : () => {};
|
|
24113
|
+
var useReactId2 = React422[" useId ".trim().toString()] || (() => {
|
|
23841
24114
|
return;
|
|
23842
24115
|
});
|
|
23843
24116
|
var count3 = 0;
|
|
23844
24117
|
function useId2(deterministicId) {
|
|
23845
|
-
const [id, setId] =
|
|
24118
|
+
const [id, setId] = React422.useState(useReactId2());
|
|
23846
24119
|
useLayoutEffect222(() => {
|
|
23847
24120
|
if (!deterministicId)
|
|
23848
24121
|
setId((reactId) => reactId ?? String(count3++));
|
|
@@ -24453,7 +24726,7 @@ var Triangle22 = (props) => {
|
|
|
24453
24726
|
};
|
|
24454
24727
|
|
|
24455
24728
|
// src/components/template-modal-content.tsx
|
|
24456
|
-
import { useCallback as
|
|
24729
|
+
import { useCallback as useCallback39, useState as useState40 } from "react";
|
|
24457
24730
|
|
|
24458
24731
|
// ../../node_modules/.bun/tailwind-merge@2.5.2/node_modules/tailwind-merge/dist/bundle-mjs.mjs
|
|
24459
24732
|
var CLASS_PART_SEPARATOR2 = "-";
|
|
@@ -25772,7 +26045,7 @@ function cn2(...inputs) {
|
|
|
25772
26045
|
}
|
|
25773
26046
|
|
|
25774
26047
|
// src/helpers/use-el-size.ts
|
|
25775
|
-
import { useCallback as
|
|
26048
|
+
import { useCallback as useCallback37, useEffect as useEffect41, useMemo as useMemo51, useState as useState38 } from "react";
|
|
25776
26049
|
var useElementSize = (ref) => {
|
|
25777
26050
|
const [size4, setSize] = useState38(null);
|
|
25778
26051
|
const observer = useMemo51(() => {
|
|
@@ -25786,7 +26059,7 @@ var useElementSize = (ref) => {
|
|
|
25786
26059
|
});
|
|
25787
26060
|
});
|
|
25788
26061
|
}, []);
|
|
25789
|
-
const updateSize =
|
|
26062
|
+
const updateSize = useCallback37(() => {
|
|
25790
26063
|
if (ref === null) {
|
|
25791
26064
|
return;
|
|
25792
26065
|
}
|
|
@@ -25820,27 +26093,27 @@ var useMobileLayout = () => {
|
|
|
25820
26093
|
};
|
|
25821
26094
|
|
|
25822
26095
|
// src/components/BackButton.tsx
|
|
25823
|
-
import { jsx as
|
|
26096
|
+
import { jsx as jsx45, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
25824
26097
|
var BackButton = ({ color, text, link }) => {
|
|
25825
|
-
return /* @__PURE__ */
|
|
26098
|
+
return /* @__PURE__ */ jsx45("div", {
|
|
25826
26099
|
className: "justify-center items-center font-medium mb-4 block",
|
|
25827
26100
|
style: {
|
|
25828
26101
|
fontFamily: "GTPlanar",
|
|
25829
26102
|
fontWeight: 500,
|
|
25830
26103
|
color
|
|
25831
26104
|
},
|
|
25832
|
-
children: /* @__PURE__ */
|
|
26105
|
+
children: /* @__PURE__ */ jsx45(Button, {
|
|
25833
26106
|
href: link,
|
|
25834
26107
|
className: "px-4 rounded-full text-sm h-10",
|
|
25835
26108
|
children: /* @__PURE__ */ jsxs6("div", {
|
|
25836
26109
|
className: "flex row items-center justify-center px-4",
|
|
25837
26110
|
children: [
|
|
25838
|
-
/* @__PURE__ */
|
|
26111
|
+
/* @__PURE__ */ jsx45("svg", {
|
|
25839
26112
|
className: "h-4 mr-[15px] inline-block",
|
|
25840
26113
|
style: { color },
|
|
25841
26114
|
xmlns: "http://www.w3.org/2000/svg",
|
|
25842
26115
|
viewBox: "0 0 448 512",
|
|
25843
|
-
children: /* @__PURE__ */
|
|
26116
|
+
children: /* @__PURE__ */ jsx45("path", {
|
|
25844
26117
|
fill: "currentcolor",
|
|
25845
26118
|
d: "M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z"
|
|
25846
26119
|
})
|
|
@@ -25876,15 +26149,15 @@ var CommandCopyButton = ({ copied, customSvg }) => {
|
|
|
25876
26149
|
|
|
25877
26150
|
// src/components/homepage/MuxVideo.tsx
|
|
25878
26151
|
import Hls2 from "hls.js";
|
|
25879
|
-
import { forwardRef as
|
|
26152
|
+
import { forwardRef as forwardRef37, useEffect as useEffect43, useImperativeHandle as useImperativeHandle11, useRef as useRef48 } from "react";
|
|
25880
26153
|
|
|
25881
26154
|
// src/components/homepage/VideoPlayerWithControls.tsx
|
|
25882
26155
|
import Hls from "hls.js";
|
|
25883
26156
|
import"plyr/dist/plyr.css";
|
|
25884
|
-
import { forwardRef as
|
|
26157
|
+
import { forwardRef as forwardRef36, useCallback as useCallback38, useEffect as useEffect42, useRef as useRef47, useState as useState39 } from "react";
|
|
25885
26158
|
import { jsx as jsx47 } from "react/jsx-runtime";
|
|
25886
26159
|
var useCombinedRefs = function(...refs) {
|
|
25887
|
-
const targetRef =
|
|
26160
|
+
const targetRef = useRef47(null);
|
|
25888
26161
|
useEffect42(() => {
|
|
25889
26162
|
refs.forEach((ref) => {
|
|
25890
26163
|
if (!ref)
|
|
@@ -25898,13 +26171,13 @@ var useCombinedRefs = function(...refs) {
|
|
|
25898
26171
|
}, [refs]);
|
|
25899
26172
|
return targetRef;
|
|
25900
26173
|
};
|
|
25901
|
-
var VideoPlayerWithControls =
|
|
25902
|
-
const videoRef =
|
|
26174
|
+
var VideoPlayerWithControls = forwardRef36(({ playbackId, poster, currentTime, onLoaded, onError, onSize, autoPlay }, ref) => {
|
|
26175
|
+
const videoRef = useRef47(null);
|
|
25903
26176
|
const metaRef = useCombinedRefs(ref, videoRef);
|
|
25904
|
-
const playerRef =
|
|
26177
|
+
const playerRef = useRef47(null);
|
|
25905
26178
|
const [playerInitTime] = useState39(Date.now());
|
|
25906
|
-
const videoError =
|
|
25907
|
-
const onImageLoad =
|
|
26179
|
+
const videoError = useCallback38((event) => onError(event), [onError]);
|
|
26180
|
+
const onImageLoad = useCallback38((event) => {
|
|
25908
26181
|
const [w, h] = [event.target.width, event.target.height];
|
|
25909
26182
|
if (w && h) {
|
|
25910
26183
|
onSize({ width: w, height: h });
|
|
@@ -25986,7 +26259,7 @@ var getVideoToPlayUrl = (muxId) => {
|
|
|
25986
26259
|
return `https://stream.mux.com/${muxId}.m3u8`;
|
|
25987
26260
|
};
|
|
25988
26261
|
var MuxVideoForward = ({ muxId, ...props }, ref) => {
|
|
25989
|
-
const videoRef =
|
|
26262
|
+
const videoRef = useRef48(null);
|
|
25990
26263
|
const vidUrl = getVideoToPlayUrl(muxId);
|
|
25991
26264
|
useImperativeHandle11(ref, () => videoRef.current, []);
|
|
25992
26265
|
useEffect43(() => {
|
|
@@ -26014,7 +26287,7 @@ var MuxVideoForward = ({ muxId, ...props }, ref) => {
|
|
|
26014
26287
|
...props
|
|
26015
26288
|
});
|
|
26016
26289
|
};
|
|
26017
|
-
var MuxVideo =
|
|
26290
|
+
var MuxVideo = forwardRef37(MuxVideoForward);
|
|
26018
26291
|
|
|
26019
26292
|
// src/components/icons/tailwind.tsx
|
|
26020
26293
|
import { jsx as jsx49, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
@@ -26079,7 +26352,7 @@ var copyTimeout = null;
|
|
|
26079
26352
|
var TemplateModalContent = ({ template }) => {
|
|
26080
26353
|
const [copied, setCopied] = useState40(false);
|
|
26081
26354
|
const mobileLayout = useMobileLayout();
|
|
26082
|
-
const copyCommand =
|
|
26355
|
+
const copyCommand = useCallback39(async (command) => {
|
|
26083
26356
|
clearTimeout(copyTimeout);
|
|
26084
26357
|
const permissionName = "clipboard-write";
|
|
26085
26358
|
try {
|