@remotion/studio 4.0.434 → 4.0.436
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/components/CompositionSelector.js +36 -2
- package/dist/components/CompositionSelectorItem.js +1 -0
- package/dist/components/CurrentComposition.d.ts +1 -1
- package/dist/components/CurrentComposition.js +2 -3
- package/dist/components/RenderModal/ClientRenderProgress.js +13 -9
- package/dist/components/RenderQueue/ClientRenderQueueProcessor.js +3 -0
- package/dist/components/RenderQueue/RenderQueueItemStatus.js +1 -2
- package/dist/components/RenderQueue/RenderQueueProgressMessage.js +2 -3
- package/dist/components/RenderQueue/client-render-progress.d.ts +3 -0
- package/dist/components/RenderQueue/client-render-progress.js +31 -0
- package/dist/components/RenderQueue/client-side-render-types.d.ts +3 -0
- package/dist/components/RenderQueue/context.js +7 -1
- package/dist/esm/{chunk-t3wtt582.js → chunk-x88z6n54.js} +559 -457
- package/dist/esm/internals.mjs +559 -457
- package/dist/esm/previewEntry.mjs +130 -28
- package/dist/esm/renderEntry.mjs +1 -1
- package/dist/helpers/make-render-command.js +2 -2
- package/package.json +9 -9
|
@@ -1086,9 +1086,46 @@ var SidebarContextProvider = ({ children }) => {
|
|
|
1086
1086
|
};
|
|
1087
1087
|
|
|
1088
1088
|
// src/components/CompositionSelector.tsx
|
|
1089
|
-
import { useCallback as useCallback16, useContext as useContext9, useMemo as
|
|
1089
|
+
import { useCallback as useCallback16, useContext as useContext9, useMemo as useMemo22 } from "react";
|
|
1090
1090
|
import { Internals as Internals7 } from "remotion";
|
|
1091
1091
|
|
|
1092
|
+
// src/error-overlay/remotion-overlay/ShortcutHint.tsx
|
|
1093
|
+
import { useMemo as useMemo9 } from "react";
|
|
1094
|
+
import { jsx as jsx10, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
1095
|
+
var cmdOrCtrlCharacter = window.navigator.platform.startsWith("Mac") ? "⌘" : "Ctrl";
|
|
1096
|
+
var container3 = {
|
|
1097
|
+
display: "inline-block",
|
|
1098
|
+
marginLeft: 6,
|
|
1099
|
+
opacity: 0.6,
|
|
1100
|
+
verticalAlign: "middle",
|
|
1101
|
+
fontSize: 14
|
|
1102
|
+
};
|
|
1103
|
+
var ShortcutHint = ({ keyToPress, cmdOrCtrl }) => {
|
|
1104
|
+
const style = useMemo9(() => {
|
|
1105
|
+
if (keyToPress === "↵") {
|
|
1106
|
+
return {
|
|
1107
|
+
display: "inline-block",
|
|
1108
|
+
transform: `translateY(2px)`,
|
|
1109
|
+
fontSize: 14
|
|
1110
|
+
};
|
|
1111
|
+
}
|
|
1112
|
+
return {};
|
|
1113
|
+
}, [keyToPress]);
|
|
1114
|
+
if (areKeyboardShortcutsDisabled()) {
|
|
1115
|
+
return null;
|
|
1116
|
+
}
|
|
1117
|
+
return /* @__PURE__ */ jsxs3("span", {
|
|
1118
|
+
style: container3,
|
|
1119
|
+
children: [
|
|
1120
|
+
cmdOrCtrl ? `${cmdOrCtrlCharacter}` : "",
|
|
1121
|
+
/* @__PURE__ */ jsx10("span", {
|
|
1122
|
+
style,
|
|
1123
|
+
children: keyToPress.toUpperCase()
|
|
1124
|
+
})
|
|
1125
|
+
]
|
|
1126
|
+
});
|
|
1127
|
+
};
|
|
1128
|
+
|
|
1092
1129
|
// src/helpers/create-folder-tree.ts
|
|
1093
1130
|
var buildAssetFolderStructure = (files, parentFolderName, foldersExpanded) => {
|
|
1094
1131
|
const notInFolder = files.filter((f) => !f.name.includes("/"));
|
|
@@ -1270,36 +1307,45 @@ var sortItemsByNonceHistory = (items) => {
|
|
|
1270
1307
|
return result;
|
|
1271
1308
|
};
|
|
1272
1309
|
|
|
1310
|
+
// src/state/modals.ts
|
|
1311
|
+
import { createContext as createContext9 } from "react";
|
|
1312
|
+
var ModalsContext = createContext9({
|
|
1313
|
+
selectedModal: null,
|
|
1314
|
+
setSelectedModal: () => {
|
|
1315
|
+
return;
|
|
1316
|
+
}
|
|
1317
|
+
});
|
|
1318
|
+
|
|
1273
1319
|
// src/components/CompositionSelectorItem.tsx
|
|
1274
|
-
import { useCallback as useCallback15, useContext as useContext8, useMemo as
|
|
1320
|
+
import { useCallback as useCallback15, useContext as useContext8, useMemo as useMemo21, useState as useState14 } from "react";
|
|
1275
1321
|
|
|
1276
1322
|
// src/icons/folder.tsx
|
|
1277
|
-
import { jsx as
|
|
1323
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
1278
1324
|
var CollapsedFolderIcon = ({ color, ...props }) => {
|
|
1279
|
-
return /* @__PURE__ */
|
|
1325
|
+
return /* @__PURE__ */ jsx11("svg", {
|
|
1280
1326
|
viewBox: "0 0 512 512",
|
|
1281
1327
|
...props,
|
|
1282
|
-
children: /* @__PURE__ */
|
|
1328
|
+
children: /* @__PURE__ */ jsx11("path", {
|
|
1283
1329
|
fill: color,
|
|
1284
1330
|
d: "M447.1 96H272L226.7 50.75C214.7 38.74 198.5 32 181.5 32H63.1c-35.35 0-64 28.65-64 64v320c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V160C511.1 124.7 483.3 96 447.1 96zM480 416c0 17.64-14.36 32-32 32H64c-17.64 0-32-14.36-32-32V96c0-17.64 14.36-32 32-32h117.5c8.549 0 16.58 3.328 22.63 9.375L258.7 128H448c17.64 0 32 14.36 32 32V416z"
|
|
1285
1331
|
})
|
|
1286
1332
|
});
|
|
1287
1333
|
};
|
|
1288
1334
|
var ExpandedFolderIcon = ({ color, ...props }) => {
|
|
1289
|
-
return /* @__PURE__ */
|
|
1335
|
+
return /* @__PURE__ */ jsx11("svg", {
|
|
1290
1336
|
viewBox: "0 0 576 512",
|
|
1291
1337
|
...props,
|
|
1292
|
-
children: /* @__PURE__ */
|
|
1338
|
+
children: /* @__PURE__ */ jsx11("path", {
|
|
1293
1339
|
fill: color,
|
|
1294
1340
|
d: "M566.6 211.6C557.5 199.1 543.4 192 527.1 192H134.2C114.3 192 96.2 204.5 89.23 223.1L32 375.8V96c0-17.64 14.36-32 32-32h117.5c8.549 0 16.58 3.328 22.63 9.375L258.7 128H448c17.64 0 32 14.36 32 32h32c0-35.35-28.65-64-64-64H272L226.7 50.75C214.7 38.74 198.5 32 181.5 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h403.1c21.11 0 39.53-13.53 45.81-33.69l60-192C578.4 239.6 575.8 224 566.6 211.6zM543.2 244.8l-60 192C481.1 443.5 475 448 467.1 448H64c-3.322 0-6.357-.9551-9.373-1.898c-2.184-1.17-4.109-2.832-5.596-4.977c-3.031-4.375-3.703-9.75-1.828-14.73l72-192C121.5 228.2 127.5 224 134.2 224h393.8c5.141 0 9.844 2.375 12.89 6.516C543.9 234.7 544.8 239.9 543.2 244.8z"
|
|
1295
1341
|
})
|
|
1296
1342
|
});
|
|
1297
1343
|
};
|
|
1298
1344
|
var ExpandedFolderIconSolid = ({ color, ...props }) => {
|
|
1299
|
-
return /* @__PURE__ */
|
|
1345
|
+
return /* @__PURE__ */ jsx11("svg", {
|
|
1300
1346
|
viewBox: "0 0 576 512",
|
|
1301
1347
|
...props,
|
|
1302
|
-
children: /* @__PURE__ */
|
|
1348
|
+
children: /* @__PURE__ */ jsx11("path", {
|
|
1303
1349
|
fill: color,
|
|
1304
1350
|
d: "M384 480h48c11.4 0 21.9-6 27.6-15.9l112-192c5.8-9.9 5.8-22.1 .1-32.1S555.5 224 544 224H144c-11.4 0-21.9 6-27.6 15.9L48 357.1V96c0-8.8 7.2-16 16-16H181.5c4.2 0 8.3 1.7 11.3 4.7l26.5 26.5c21 21 49.5 32.8 79.2 32.8H416c8.8 0 16 7.2 16 16v32h48V160c0-35.3-28.7-64-64-64H298.5c-17 0-33.3-6.7-45.3-18.7L226.7 50.7c-12-12-28.3-18.7-45.3-18.7H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H87.7 384z"
|
|
1305
1351
|
})
|
|
@@ -1307,12 +1353,12 @@ var ExpandedFolderIconSolid = ({ color, ...props }) => {
|
|
|
1307
1353
|
};
|
|
1308
1354
|
|
|
1309
1355
|
// src/icons/still.tsx
|
|
1310
|
-
import { jsx as
|
|
1356
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
1311
1357
|
var StillIcon = ({ color, ...props }) => {
|
|
1312
|
-
return /* @__PURE__ */
|
|
1358
|
+
return /* @__PURE__ */ jsx12("svg", {
|
|
1313
1359
|
...props,
|
|
1314
1360
|
viewBox: "0 0 512 512",
|
|
1315
|
-
children: /* @__PURE__ */
|
|
1361
|
+
children: /* @__PURE__ */ jsx12("path", {
|
|
1316
1362
|
fill: color,
|
|
1317
1363
|
d: "M144 288C144 226.1 194.1 176 256 176C317.9 176 368 226.1 368 288C368 349.9 317.9 400 256 400C194.1 400 144 349.9 144 288zM256 208C211.8 208 176 243.8 176 288C176 332.2 211.8 368 256 368C300.2 368 336 332.2 336 288C336 243.8 300.2 208 256 208zM362.9 64.82L373.3 96H448C483.3 96 512 124.7 512 160V416C512 451.3 483.3 480 448 480H64C28.65 480 0 451.3 0 416V160C0 124.7 28.65 96 64 96H138.7L149.1 64.82C155.6 45.22 173.9 32 194.6 32H317.4C338.1 32 356.4 45.22 362.9 64.82H362.9zM64 128C46.33 128 32 142.3 32 160V416C32 433.7 46.33 448 64 448H448C465.7 448 480 433.7 480 416V160C480 142.3 465.7 128 448 128H350.3L332.6 74.94C330.4 68.41 324.3 64 317.4 64H194.6C187.7 64 181.6 68.41 179.4 74.94L161.7 128H64z"
|
|
1318
1364
|
})
|
|
@@ -1320,33 +1366,24 @@ var StillIcon = ({ color, ...props }) => {
|
|
|
1320
1366
|
};
|
|
1321
1367
|
|
|
1322
1368
|
// src/icons/video.tsx
|
|
1323
|
-
import { jsx as
|
|
1369
|
+
import { jsx as jsx13 } from "react/jsx-runtime";
|
|
1324
1370
|
var FilmIcon = ({ color, ...props }) => {
|
|
1325
|
-
return /* @__PURE__ */
|
|
1371
|
+
return /* @__PURE__ */ jsx13("svg", {
|
|
1326
1372
|
...props,
|
|
1327
1373
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1328
1374
|
viewBox: "0 0 512 512",
|
|
1329
|
-
children: /* @__PURE__ */
|
|
1375
|
+
children: /* @__PURE__ */ jsx13("path", {
|
|
1330
1376
|
fill: color,
|
|
1331
1377
|
d: "M448 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V96C512 60.65 483.3 32 448 32zM384 64v176H128V64H384zM32 96c0-17.64 14.36-32 32-32h32v80H32V96zM32 176h64v64H32V176zM32 272h64v64H32V272zM64 448c-17.64 0-32-14.36-32-32v-48h64V448H64zM128 448V272h256V448H128zM480 416c0 17.64-14.36 32-32 32h-32v-80h64V416zM480 336h-64v-64h64V336zM480 240h-64v-64h64V240zM480 144h-64V64h32c17.64 0 32 14.36 32 32V144z"
|
|
1332
1378
|
})
|
|
1333
1379
|
});
|
|
1334
1380
|
};
|
|
1335
1381
|
|
|
1336
|
-
// src/state/modals.ts
|
|
1337
|
-
import { createContext as createContext9 } from "react";
|
|
1338
|
-
var ModalsContext = createContext9({
|
|
1339
|
-
selectedModal: null,
|
|
1340
|
-
setSelectedModal: () => {
|
|
1341
|
-
return;
|
|
1342
|
-
}
|
|
1343
|
-
});
|
|
1344
|
-
|
|
1345
1382
|
// src/components/CompositionContextButton.tsx
|
|
1346
|
-
import { useCallback as useCallback12, useContext as useContext6, useMemo as
|
|
1383
|
+
import { useCallback as useCallback12, useContext as useContext6, useMemo as useMemo18 } from "react";
|
|
1347
1384
|
|
|
1348
1385
|
// src/helpers/client-id.tsx
|
|
1349
|
-
import
|
|
1386
|
+
import React13, { useCallback as useCallback6, useEffect as useEffect8, useMemo as useMemo11, useRef as useRef6 } from "react";
|
|
1350
1387
|
import { Internals as Internals4 } from "remotion";
|
|
1351
1388
|
|
|
1352
1389
|
// src/components/Notifications/NotificationCenter.tsx
|
|
@@ -1359,7 +1396,7 @@ import {
|
|
|
1359
1396
|
|
|
1360
1397
|
// src/components/Notifications/Notification.tsx
|
|
1361
1398
|
import { useEffect as useEffect6 } from "react";
|
|
1362
|
-
import { jsx as
|
|
1399
|
+
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
1363
1400
|
var notification = {
|
|
1364
1401
|
backgroundColor: "#111111",
|
|
1365
1402
|
color: "white",
|
|
@@ -1386,7 +1423,7 @@ var Notification = ({ children, id, duration, created, onRemove }) => {
|
|
|
1386
1423
|
clearTimeout(timeout);
|
|
1387
1424
|
};
|
|
1388
1425
|
}, [created, duration, id, onRemove]);
|
|
1389
|
-
return /* @__PURE__ */
|
|
1426
|
+
return /* @__PURE__ */ jsx14("div", {
|
|
1390
1427
|
className: "css-reset",
|
|
1391
1428
|
style: notification,
|
|
1392
1429
|
children
|
|
@@ -1394,8 +1431,8 @@ var Notification = ({ children, id, duration, created, onRemove }) => {
|
|
|
1394
1431
|
};
|
|
1395
1432
|
|
|
1396
1433
|
// src/components/Notifications/NotificationCenter.tsx
|
|
1397
|
-
import { jsx as
|
|
1398
|
-
var
|
|
1434
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
1435
|
+
var container4 = {
|
|
1399
1436
|
position: "absolute",
|
|
1400
1437
|
justifyContent: "center",
|
|
1401
1438
|
alignItems: "center",
|
|
@@ -1449,10 +1486,10 @@ var NotificationCenter = () => {
|
|
|
1449
1486
|
addNotification
|
|
1450
1487
|
};
|
|
1451
1488
|
}, [addNotification]);
|
|
1452
|
-
return /* @__PURE__ */
|
|
1453
|
-
style:
|
|
1489
|
+
return /* @__PURE__ */ jsx15("div", {
|
|
1490
|
+
style: container4,
|
|
1454
1491
|
children: notifications.map((n) => {
|
|
1455
|
-
return /* @__PURE__ */
|
|
1492
|
+
return /* @__PURE__ */ jsx15(Notification, {
|
|
1456
1493
|
created: n.created,
|
|
1457
1494
|
duration: n.duration,
|
|
1458
1495
|
id: n.id,
|
|
@@ -1481,12 +1518,12 @@ var playBeepSound = async (renderId) => {
|
|
|
1481
1518
|
var PlayBeepSound_default = playBeepSound;
|
|
1482
1519
|
|
|
1483
1520
|
// src/components/RenderQueue/context.tsx
|
|
1484
|
-
import
|
|
1521
|
+
import React12, {
|
|
1485
1522
|
createRef as createRef4,
|
|
1486
1523
|
useCallback as useCallback5,
|
|
1487
1524
|
useEffect as useEffect7,
|
|
1488
1525
|
useImperativeHandle as useImperativeHandle3,
|
|
1489
|
-
useMemo as
|
|
1526
|
+
useMemo as useMemo10,
|
|
1490
1527
|
useRef as useRef5,
|
|
1491
1528
|
useState as useState8
|
|
1492
1529
|
} from "react";
|
|
@@ -1525,7 +1562,7 @@ var cancelAbortController = (jobId) => {
|
|
|
1525
1562
|
};
|
|
1526
1563
|
|
|
1527
1564
|
// src/components/RenderQueue/context.tsx
|
|
1528
|
-
import { jsx as
|
|
1565
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
1529
1566
|
var restorePersistedClientRenders = () => {
|
|
1530
1567
|
const persisted = window.remotion_initialClientRenders ?? [];
|
|
1531
1568
|
return persisted.map((r) => ({ ...r, status: "done" }));
|
|
@@ -1537,7 +1574,7 @@ var noopString = () => "";
|
|
|
1537
1574
|
var noop2 = () => {
|
|
1538
1575
|
return;
|
|
1539
1576
|
};
|
|
1540
|
-
var RenderQueueContext =
|
|
1577
|
+
var RenderQueueContext = React12.createContext({
|
|
1541
1578
|
jobs: [],
|
|
1542
1579
|
serverJobs: [],
|
|
1543
1580
|
clientJobs: [],
|
|
@@ -1574,7 +1611,13 @@ var RenderQueueContextProvider = ({ children }) => {
|
|
|
1574
1611
|
setClientJobs((prev) => prev.map((job) => job.id === nextJob.id ? {
|
|
1575
1612
|
...job,
|
|
1576
1613
|
status: "running",
|
|
1577
|
-
progress: {
|
|
1614
|
+
progress: {
|
|
1615
|
+
encodedFrames: 0,
|
|
1616
|
+
totalFrames: 0,
|
|
1617
|
+
doneIn: null,
|
|
1618
|
+
renderEstimatedTime: 0,
|
|
1619
|
+
progress: 0
|
|
1620
|
+
}
|
|
1578
1621
|
} : job));
|
|
1579
1622
|
processJobCallbackRef.current(nextJob);
|
|
1580
1623
|
}, [clientJobs, currentlyProcessing]);
|
|
@@ -1673,7 +1716,7 @@ var RenderQueueContextProvider = ({ children }) => {
|
|
|
1673
1716
|
});
|
|
1674
1717
|
}
|
|
1675
1718
|
}), []);
|
|
1676
|
-
const value =
|
|
1719
|
+
const value = useMemo10(() => {
|
|
1677
1720
|
return {
|
|
1678
1721
|
jobs: [...serverJobs, ...clientJobs].sort((a, b) => a.startedAt - b.startedAt),
|
|
1679
1722
|
serverJobs,
|
|
@@ -1705,15 +1748,15 @@ var RenderQueueContextProvider = ({ children }) => {
|
|
|
1705
1748
|
cancelClientJob,
|
|
1706
1749
|
setProcessJobCallback
|
|
1707
1750
|
]);
|
|
1708
|
-
return /* @__PURE__ */
|
|
1751
|
+
return /* @__PURE__ */ jsx16(RenderQueueContext.Provider, {
|
|
1709
1752
|
value,
|
|
1710
1753
|
children
|
|
1711
1754
|
});
|
|
1712
1755
|
};
|
|
1713
1756
|
|
|
1714
1757
|
// src/helpers/client-id.tsx
|
|
1715
|
-
import { jsx as
|
|
1716
|
-
var StudioServerConnectionCtx =
|
|
1758
|
+
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
1759
|
+
var StudioServerConnectionCtx = React13.createContext({
|
|
1717
1760
|
previewServerState: {
|
|
1718
1761
|
type: "init"
|
|
1719
1762
|
},
|
|
@@ -1797,28 +1840,28 @@ var PreviewServerConnection = ({ children, readOnlyStudio }) => {
|
|
|
1797
1840
|
close();
|
|
1798
1841
|
};
|
|
1799
1842
|
}, [openEventSource, readOnlyStudio]);
|
|
1800
|
-
const [state, setState] =
|
|
1843
|
+
const [state, setState] = React13.useState({
|
|
1801
1844
|
type: "init"
|
|
1802
1845
|
});
|
|
1803
|
-
const context =
|
|
1846
|
+
const context = useMemo11(() => {
|
|
1804
1847
|
return {
|
|
1805
1848
|
previewServerState: state,
|
|
1806
1849
|
subscribeToEvent
|
|
1807
1850
|
};
|
|
1808
1851
|
}, [state, subscribeToEvent]);
|
|
1809
|
-
return /* @__PURE__ */
|
|
1852
|
+
return /* @__PURE__ */ jsx17(StudioServerConnectionCtx.Provider, {
|
|
1810
1853
|
value: context,
|
|
1811
1854
|
children
|
|
1812
1855
|
});
|
|
1813
1856
|
};
|
|
1814
1857
|
|
|
1815
1858
|
// src/icons/ellipsis.tsx
|
|
1816
|
-
import { jsx as
|
|
1859
|
+
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
1817
1860
|
var EllipsisIcon = (props) => {
|
|
1818
|
-
return /* @__PURE__ */
|
|
1861
|
+
return /* @__PURE__ */ jsx18("svg", {
|
|
1819
1862
|
...props.svgProps,
|
|
1820
1863
|
viewBox: "0 0 448 512",
|
|
1821
|
-
children: /* @__PURE__ */
|
|
1864
|
+
children: /* @__PURE__ */ jsx18("path", {
|
|
1822
1865
|
fill: props.fill,
|
|
1823
1866
|
d: "M8 256a56 56 0 1 1 112 0A56 56 0 1 1 8 256zm160 0a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm216-56a56 56 0 1 1 0 112 56 56 0 1 1 0-112z"
|
|
1824
1867
|
})
|
|
@@ -1827,12 +1870,12 @@ var EllipsisIcon = (props) => {
|
|
|
1827
1870
|
|
|
1828
1871
|
// src/components/InlineDropdown.tsx
|
|
1829
1872
|
import { PlayerInternals as PlayerInternals3 } from "@remotion/player";
|
|
1830
|
-
import { useCallback as useCallback11, useMemo as
|
|
1873
|
+
import { useCallback as useCallback11, useMemo as useMemo17, useRef as useRef9, useState as useState12 } from "react";
|
|
1831
1874
|
import ReactDOM2 from "react-dom";
|
|
1832
1875
|
|
|
1833
1876
|
// src/components/InlineAction.tsx
|
|
1834
|
-
import { useCallback as useCallback7, useMemo as
|
|
1835
|
-
import { jsx as
|
|
1877
|
+
import { useCallback as useCallback7, useMemo as useMemo12, useState as useState9 } from "react";
|
|
1878
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
1836
1879
|
var InlineAction = ({
|
|
1837
1880
|
renderAction,
|
|
1838
1881
|
onClick,
|
|
@@ -1847,7 +1890,7 @@ var InlineAction = ({
|
|
|
1847
1890
|
const onPointerLeave = useCallback7(() => {
|
|
1848
1891
|
setHovered(false);
|
|
1849
1892
|
}, []);
|
|
1850
|
-
const style =
|
|
1893
|
+
const style = useMemo12(() => {
|
|
1851
1894
|
return {
|
|
1852
1895
|
border: "none",
|
|
1853
1896
|
background: disabled ? "transparent" : getBackgroundFromHoverState({ hovered, selected: false }),
|
|
@@ -1860,7 +1903,7 @@ var InlineAction = ({
|
|
|
1860
1903
|
pointerEvents: disabled ? "none" : "auto"
|
|
1861
1904
|
};
|
|
1862
1905
|
}, [disabled, hovered]);
|
|
1863
|
-
return /* @__PURE__ */
|
|
1906
|
+
return /* @__PURE__ */ jsx19("button", {
|
|
1864
1907
|
type: "button",
|
|
1865
1908
|
onPointerEnter,
|
|
1866
1909
|
onPointerLeave,
|
|
@@ -1924,7 +1967,7 @@ var inlineCodeSnippet = {
|
|
|
1924
1967
|
};
|
|
1925
1968
|
|
|
1926
1969
|
// src/components/NewComposition/MenuContent.tsx
|
|
1927
|
-
import { useCallback as useCallback10, useEffect as useEffect10, useMemo as
|
|
1970
|
+
import { useCallback as useCallback10, useEffect as useEffect10, useMemo as useMemo16, useRef as useRef8, useState as useState11 } from "react";
|
|
1928
1971
|
|
|
1929
1972
|
// src/components/Menu/is-menu-item.tsx
|
|
1930
1973
|
var MENU_INITIATOR_CLASSNAME = "__remotion-studio-menu-initiator";
|
|
@@ -1936,7 +1979,7 @@ var isMenuItem = (el) => {
|
|
|
1936
1979
|
};
|
|
1937
1980
|
|
|
1938
1981
|
// src/components/Menu/MenuDivider.tsx
|
|
1939
|
-
import { jsx as
|
|
1982
|
+
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
1940
1983
|
var menuDivider = {
|
|
1941
1984
|
marginTop: 4,
|
|
1942
1985
|
marginBottom: 4,
|
|
@@ -1944,19 +1987,19 @@ var menuDivider = {
|
|
|
1944
1987
|
backgroundColor: INPUT_BORDER_COLOR_HOVERED
|
|
1945
1988
|
};
|
|
1946
1989
|
var MenuDivider = () => {
|
|
1947
|
-
return /* @__PURE__ */
|
|
1990
|
+
return /* @__PURE__ */ jsx20("div", {
|
|
1948
1991
|
style: menuDivider
|
|
1949
1992
|
});
|
|
1950
1993
|
};
|
|
1951
1994
|
|
|
1952
1995
|
// src/components/Menu/MenuSubItem.tsx
|
|
1953
1996
|
import { PlayerInternals as PlayerInternals2 } from "@remotion/player";
|
|
1954
|
-
import { useCallback as useCallback9, useEffect as useEffect9, useMemo as
|
|
1997
|
+
import { useCallback as useCallback9, useEffect as useEffect9, useMemo as useMemo15, useRef as useRef7, useState as useState10 } from "react";
|
|
1955
1998
|
import ReactDOM from "react-dom";
|
|
1956
1999
|
|
|
1957
2000
|
// src/icons/caret.tsx
|
|
1958
|
-
import { useMemo as
|
|
1959
|
-
import { jsx as
|
|
2001
|
+
import { useMemo as useMemo13 } from "react";
|
|
2002
|
+
import { jsx as jsx21 } from "react/jsx-runtime";
|
|
1960
2003
|
var caret = {
|
|
1961
2004
|
height: 12
|
|
1962
2005
|
};
|
|
@@ -1966,36 +2009,36 @@ var caretDown = {
|
|
|
1966
2009
|
var angleDown = {
|
|
1967
2010
|
width: 10
|
|
1968
2011
|
};
|
|
1969
|
-
var CaretRight = () => /* @__PURE__ */
|
|
2012
|
+
var CaretRight = () => /* @__PURE__ */ jsx21("svg", {
|
|
1970
2013
|
viewBox: "0 0 192 512",
|
|
1971
2014
|
style: caret,
|
|
1972
|
-
children: /* @__PURE__ */
|
|
2015
|
+
children: /* @__PURE__ */ jsx21("path", {
|
|
1973
2016
|
fill: "currentColor",
|
|
1974
2017
|
d: "M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z"
|
|
1975
2018
|
})
|
|
1976
2019
|
});
|
|
1977
2020
|
var CaretDown = () => {
|
|
1978
|
-
return /* @__PURE__ */
|
|
2021
|
+
return /* @__PURE__ */ jsx21("svg", {
|
|
1979
2022
|
viewBox: "0 0 320 512",
|
|
1980
2023
|
style: caretDown,
|
|
1981
|
-
children: /* @__PURE__ */
|
|
2024
|
+
children: /* @__PURE__ */ jsx21("path", {
|
|
1982
2025
|
fill: "currentColor",
|
|
1983
2026
|
d: "M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"
|
|
1984
2027
|
})
|
|
1985
2028
|
});
|
|
1986
2029
|
};
|
|
1987
2030
|
var AngleDown = ({ down }) => {
|
|
1988
|
-
const style =
|
|
2031
|
+
const style = useMemo13(() => {
|
|
1989
2032
|
return {
|
|
1990
2033
|
...angleDown,
|
|
1991
2034
|
transform: down ? "rotate(180deg)" : "rotate(0deg)",
|
|
1992
2035
|
marginTop: 1
|
|
1993
2036
|
};
|
|
1994
2037
|
}, [down]);
|
|
1995
|
-
return /* @__PURE__ */
|
|
2038
|
+
return /* @__PURE__ */ jsx21("svg", {
|
|
1996
2039
|
style,
|
|
1997
2040
|
viewBox: "0 0 448 512",
|
|
1998
|
-
children: /* @__PURE__ */
|
|
2041
|
+
children: /* @__PURE__ */ jsx21("path", {
|
|
1999
2042
|
fill: LIGHT_TEXT,
|
|
2000
2043
|
d: "M201.4 342.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 274.7 86.6 137.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"
|
|
2001
2044
|
})
|
|
@@ -2003,11 +2046,11 @@ var AngleDown = ({ down }) => {
|
|
|
2003
2046
|
};
|
|
2004
2047
|
|
|
2005
2048
|
// src/components/layout.tsx
|
|
2006
|
-
import { useMemo as
|
|
2007
|
-
import { jsx as
|
|
2049
|
+
import { useMemo as useMemo14 } from "react";
|
|
2050
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
2008
2051
|
var SPACING_UNIT = 8;
|
|
2009
2052
|
var Spacing = ({ x = 0, y = 0, block = false }) => {
|
|
2010
|
-
const style =
|
|
2053
|
+
const style = useMemo14(() => {
|
|
2011
2054
|
return {
|
|
2012
2055
|
display: block ? "block" : "inline-block",
|
|
2013
2056
|
width: x * SPACING_UNIT,
|
|
@@ -2015,17 +2058,17 @@ var Spacing = ({ x = 0, y = 0, block = false }) => {
|
|
|
2015
2058
|
flexShrink: 0
|
|
2016
2059
|
};
|
|
2017
2060
|
}, [block, x, y]);
|
|
2018
|
-
return /* @__PURE__ */
|
|
2061
|
+
return /* @__PURE__ */ jsx22("div", {
|
|
2019
2062
|
style
|
|
2020
2063
|
});
|
|
2021
2064
|
};
|
|
2022
2065
|
var flexCss = { flex: 1 };
|
|
2023
|
-
var Flex = ({ children }) => /* @__PURE__ */
|
|
2066
|
+
var Flex = ({ children }) => /* @__PURE__ */ jsx22("div", {
|
|
2024
2067
|
style: flexCss,
|
|
2025
2068
|
children
|
|
2026
2069
|
});
|
|
2027
2070
|
var Row = ({ children, justify, className, align, flex, style = {}, ...other }) => {
|
|
2028
|
-
const finalStyle =
|
|
2071
|
+
const finalStyle = useMemo14(() => {
|
|
2029
2072
|
return {
|
|
2030
2073
|
...style,
|
|
2031
2074
|
display: "flex",
|
|
@@ -2035,7 +2078,7 @@ var Row = ({ children, justify, className, align, flex, style = {}, ...other })
|
|
|
2035
2078
|
flex: flex ?? undefined
|
|
2036
2079
|
};
|
|
2037
2080
|
}, [align, flex, justify, style]);
|
|
2038
|
-
return /* @__PURE__ */
|
|
2081
|
+
return /* @__PURE__ */ jsx22("div", {
|
|
2039
2082
|
className,
|
|
2040
2083
|
style: finalStyle,
|
|
2041
2084
|
...other,
|
|
@@ -2043,7 +2086,7 @@ var Row = ({ children, justify, className, align, flex, style = {}, ...other })
|
|
|
2043
2086
|
});
|
|
2044
2087
|
};
|
|
2045
2088
|
var Column = ({ children, justify, className, align, style = {} }) => {
|
|
2046
|
-
const finalStyle =
|
|
2089
|
+
const finalStyle = useMemo14(() => {
|
|
2047
2090
|
return {
|
|
2048
2091
|
...style,
|
|
2049
2092
|
display: "flex",
|
|
@@ -2052,7 +2095,7 @@ var Column = ({ children, justify, className, align, style = {} }) => {
|
|
|
2052
2095
|
alignItems: align ?? "flex-start"
|
|
2053
2096
|
};
|
|
2054
2097
|
}, [align, justify, style]);
|
|
2055
|
-
return /* @__PURE__ */
|
|
2098
|
+
return /* @__PURE__ */ jsx22("div", {
|
|
2056
2099
|
className,
|
|
2057
2100
|
style: finalStyle,
|
|
2058
2101
|
children
|
|
@@ -2061,7 +2104,7 @@ var Column = ({ children, justify, className, align, style = {} }) => {
|
|
|
2061
2104
|
|
|
2062
2105
|
// src/components/Menu/SubMenu.tsx
|
|
2063
2106
|
import { useCallback as useCallback8 } from "react";
|
|
2064
|
-
import { jsx as
|
|
2107
|
+
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
2065
2108
|
var SubMenuComponent = ({
|
|
2066
2109
|
portalStyle,
|
|
2067
2110
|
subMenuActivated,
|
|
@@ -2077,13 +2120,13 @@ var SubMenuComponent = ({
|
|
|
2077
2120
|
onQuitFullMenu();
|
|
2078
2121
|
}
|
|
2079
2122
|
}, [mobileLayout, onQuitFullMenu, onQuitSubMenu]);
|
|
2080
|
-
return /* @__PURE__ */
|
|
2123
|
+
return /* @__PURE__ */ jsx23(HigherZIndex, {
|
|
2081
2124
|
onEscape: onQuitFullMenu,
|
|
2082
2125
|
onOutsideClick,
|
|
2083
|
-
children: /* @__PURE__ */
|
|
2126
|
+
children: /* @__PURE__ */ jsx23("div", {
|
|
2084
2127
|
style: portalStyle,
|
|
2085
2128
|
className: "css-reset",
|
|
2086
|
-
children: /* @__PURE__ */
|
|
2129
|
+
children: /* @__PURE__ */ jsx23(MenuContent, {
|
|
2087
2130
|
onNextMenu: noop,
|
|
2088
2131
|
onPreviousMenu: onQuitSubMenu,
|
|
2089
2132
|
values: subMenu.items,
|
|
@@ -2098,8 +2141,8 @@ var SubMenuComponent = ({
|
|
|
2098
2141
|
};
|
|
2099
2142
|
|
|
2100
2143
|
// src/components/Menu/MenuSubItem.tsx
|
|
2101
|
-
import { jsx as
|
|
2102
|
-
var
|
|
2144
|
+
import { jsx as jsx24, jsxs as jsxs4, Fragment } from "react/jsx-runtime";
|
|
2145
|
+
var container5 = {
|
|
2103
2146
|
paddingTop: 8,
|
|
2104
2147
|
paddingBottom: 8,
|
|
2105
2148
|
paddingLeft: 12,
|
|
@@ -2148,9 +2191,9 @@ var MenuSubItem = ({
|
|
|
2148
2191
|
});
|
|
2149
2192
|
const mobileLayout = useMobileLayout();
|
|
2150
2193
|
const { currentZIndex } = useZIndex();
|
|
2151
|
-
const style =
|
|
2194
|
+
const style = useMemo15(() => {
|
|
2152
2195
|
return {
|
|
2153
|
-
...
|
|
2196
|
+
...container5,
|
|
2154
2197
|
backgroundColor: selected && !disabled ? CLEAR_HOVER : "transparent",
|
|
2155
2198
|
opacity: disabled ? 0.5 : 1,
|
|
2156
2199
|
cursor: disabled ? "not-allowed" : "default"
|
|
@@ -2180,7 +2223,7 @@ var MenuSubItem = ({
|
|
|
2180
2223
|
const onQuitSubmenu = useCallback9(() => {
|
|
2181
2224
|
setSubMenuActivated(false);
|
|
2182
2225
|
}, [setSubMenuActivated]);
|
|
2183
|
-
const portalStyle =
|
|
2226
|
+
const portalStyle = useMemo15(() => {
|
|
2184
2227
|
if (!selected || !size || !subMenu || !subMenuActivated) {
|
|
2185
2228
|
return null;
|
|
2186
2229
|
}
|
|
@@ -2207,7 +2250,7 @@ var MenuSubItem = ({
|
|
|
2207
2250
|
});
|
|
2208
2251
|
}
|
|
2209
2252
|
}, [selected]);
|
|
2210
|
-
return /* @__PURE__ */
|
|
2253
|
+
return /* @__PURE__ */ jsx24("div", {
|
|
2211
2254
|
ref,
|
|
2212
2255
|
onPointerEnter,
|
|
2213
2256
|
onPointerLeave,
|
|
@@ -2215,35 +2258,35 @@ var MenuSubItem = ({
|
|
|
2215
2258
|
onPointerUp,
|
|
2216
2259
|
role: "button",
|
|
2217
2260
|
className: MENU_ITEM_CLASSNAME,
|
|
2218
|
-
children: /* @__PURE__ */
|
|
2261
|
+
children: /* @__PURE__ */ jsxs4(Row, {
|
|
2219
2262
|
align: "center",
|
|
2220
2263
|
children: [
|
|
2221
|
-
leaveLeftSpace ? /* @__PURE__ */
|
|
2264
|
+
leaveLeftSpace ? /* @__PURE__ */ jsxs4(Fragment, {
|
|
2222
2265
|
children: [
|
|
2223
|
-
/* @__PURE__ */
|
|
2266
|
+
/* @__PURE__ */ jsx24("div", {
|
|
2224
2267
|
style: leftSpace,
|
|
2225
2268
|
children: leftItem
|
|
2226
2269
|
}),
|
|
2227
|
-
/* @__PURE__ */
|
|
2270
|
+
/* @__PURE__ */ jsx24(Spacing, {
|
|
2228
2271
|
x: 1
|
|
2229
2272
|
})
|
|
2230
2273
|
]
|
|
2231
2274
|
}) : null,
|
|
2232
|
-
/* @__PURE__ */
|
|
2275
|
+
/* @__PURE__ */ jsx24("div", {
|
|
2233
2276
|
style: labelStyle,
|
|
2234
2277
|
...{ title: typeof label === "string" ? label : undefined },
|
|
2235
2278
|
children: label
|
|
2236
2279
|
}),
|
|
2237
2280
|
" ",
|
|
2238
|
-
/* @__PURE__ */
|
|
2281
|
+
/* @__PURE__ */ jsx24(Spacing, {
|
|
2239
2282
|
x: 2
|
|
2240
2283
|
}),
|
|
2241
|
-
subMenu ? /* @__PURE__ */
|
|
2242
|
-
keyHint && !areKeyboardShortcutsDisabled() ? /* @__PURE__ */
|
|
2284
|
+
subMenu ? /* @__PURE__ */ jsx24(CaretRight, {}) : null,
|
|
2285
|
+
keyHint && !areKeyboardShortcutsDisabled() ? /* @__PURE__ */ jsx24("span", {
|
|
2243
2286
|
style: keyHintCss,
|
|
2244
2287
|
children: keyHint
|
|
2245
2288
|
}) : null,
|
|
2246
|
-
portalStyle && subMenu ? ReactDOM.createPortal(/* @__PURE__ */
|
|
2289
|
+
portalStyle && subMenu ? ReactDOM.createPortal(/* @__PURE__ */ jsx24(SubMenuComponent, {
|
|
2247
2290
|
onQuitFullMenu: onQuitMenu,
|
|
2248
2291
|
subMenu,
|
|
2249
2292
|
onQuitSubMenu: onQuitSubmenu,
|
|
@@ -2256,9 +2299,9 @@ var MenuSubItem = ({
|
|
|
2256
2299
|
};
|
|
2257
2300
|
|
|
2258
2301
|
// src/components/NewComposition/MenuContent.tsx
|
|
2259
|
-
import { jsx as
|
|
2302
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
2260
2303
|
var BORDER_SIZE = 1;
|
|
2261
|
-
var
|
|
2304
|
+
var container6 = {
|
|
2262
2305
|
paddingTop: MENU_VERTICAL_PADDING,
|
|
2263
2306
|
paddingBottom: MENU_VERTICAL_PADDING,
|
|
2264
2307
|
border: `${BORDER_SIZE}px solid ${INPUT_BORDER_COLOR_UNHOVERED}`,
|
|
@@ -2365,8 +2408,8 @@ var MenuContent = ({
|
|
|
2365
2408
|
}
|
|
2366
2409
|
setSubMenuActivated("without-mouse");
|
|
2367
2410
|
}, [onNextMenu, selectedItem, values]);
|
|
2368
|
-
const containerWithHeight =
|
|
2369
|
-
const containerStyles = { ...
|
|
2411
|
+
const containerWithHeight = useMemo16(() => {
|
|
2412
|
+
const containerStyles = { ...container6 };
|
|
2370
2413
|
if (fixedHeight === null) {
|
|
2371
2414
|
containerStyles.maxHeight = 600;
|
|
2372
2415
|
} else {
|
|
@@ -2492,13 +2535,13 @@ var MenuContent = ({
|
|
|
2492
2535
|
current.addEventListener("pointerleave", onPointerLeave);
|
|
2493
2536
|
return () => current.removeEventListener("pointerleave", onPointerLeave);
|
|
2494
2537
|
}, [onHide, subMenuActivated]);
|
|
2495
|
-
return /* @__PURE__ */
|
|
2538
|
+
return /* @__PURE__ */ jsx25("div", {
|
|
2496
2539
|
ref: containerRef,
|
|
2497
2540
|
style: containerWithHeight,
|
|
2498
2541
|
className: VERTICAL_SCROLLBAR_CLASSNAME,
|
|
2499
2542
|
children: values.map((item) => {
|
|
2500
2543
|
if (item.type === "divider") {
|
|
2501
|
-
return /* @__PURE__ */
|
|
2544
|
+
return /* @__PURE__ */ jsx25(MenuDivider, {}, item.id);
|
|
2502
2545
|
}
|
|
2503
2546
|
const onClick = (id, e) => {
|
|
2504
2547
|
item.onClick(id, e);
|
|
@@ -2507,7 +2550,7 @@ var MenuContent = ({
|
|
|
2507
2550
|
}
|
|
2508
2551
|
onHide();
|
|
2509
2552
|
};
|
|
2510
|
-
return /* @__PURE__ */
|
|
2553
|
+
return /* @__PURE__ */ jsx25(MenuSubItem, {
|
|
2511
2554
|
selected: item.id === selectedItem,
|
|
2512
2555
|
onActionChosen: onClick,
|
|
2513
2556
|
onItemSelected,
|
|
@@ -2528,7 +2571,7 @@ var MenuContent = ({
|
|
|
2528
2571
|
};
|
|
2529
2572
|
|
|
2530
2573
|
// src/components/InlineDropdown.tsx
|
|
2531
|
-
import { jsx as
|
|
2574
|
+
import { jsx as jsx26, jsxs as jsxs5, Fragment as Fragment2 } from "react/jsx-runtime";
|
|
2532
2575
|
var InlineDropdown = ({
|
|
2533
2576
|
values,
|
|
2534
2577
|
...props
|
|
@@ -2546,19 +2589,19 @@ var InlineDropdown = ({
|
|
|
2546
2589
|
e.stopPropagation();
|
|
2547
2590
|
setOpened({ type: "open", left: e.clientX, top: e.clientY });
|
|
2548
2591
|
}, []);
|
|
2549
|
-
const spaceToBottom =
|
|
2592
|
+
const spaceToBottom = useMemo17(() => {
|
|
2550
2593
|
if (size && opened.type === "open") {
|
|
2551
2594
|
return size.windowSize.height - opened.top;
|
|
2552
2595
|
}
|
|
2553
2596
|
return 0;
|
|
2554
2597
|
}, [opened, size]);
|
|
2555
|
-
const spaceToTop =
|
|
2598
|
+
const spaceToTop = useMemo17(() => {
|
|
2556
2599
|
if (size && opened.type === "open") {
|
|
2557
2600
|
return opened.top;
|
|
2558
2601
|
}
|
|
2559
2602
|
return 0;
|
|
2560
2603
|
}, [opened, size]);
|
|
2561
|
-
const portalStyle =
|
|
2604
|
+
const portalStyle = useMemo17(() => {
|
|
2562
2605
|
if (opened.type === "not-open") {
|
|
2563
2606
|
return;
|
|
2564
2607
|
}
|
|
@@ -2589,26 +2632,26 @@ var InlineDropdown = ({
|
|
|
2589
2632
|
const onHide = useCallback11(() => {
|
|
2590
2633
|
setOpened({ type: "not-open" });
|
|
2591
2634
|
}, []);
|
|
2592
|
-
return /* @__PURE__ */
|
|
2635
|
+
return /* @__PURE__ */ jsxs5(Fragment2, {
|
|
2593
2636
|
children: [
|
|
2594
|
-
/* @__PURE__ */
|
|
2637
|
+
/* @__PURE__ */ jsx26("div", {
|
|
2595
2638
|
ref,
|
|
2596
|
-
children: /* @__PURE__ */
|
|
2639
|
+
children: /* @__PURE__ */ jsx26(InlineAction, {
|
|
2597
2640
|
onClick,
|
|
2598
2641
|
...props
|
|
2599
2642
|
})
|
|
2600
2643
|
}),
|
|
2601
|
-
portalStyle ? ReactDOM2.createPortal(/* @__PURE__ */
|
|
2644
|
+
portalStyle ? ReactDOM2.createPortal(/* @__PURE__ */ jsx26("div", {
|
|
2602
2645
|
style: fullScreenOverlay,
|
|
2603
|
-
children: /* @__PURE__ */
|
|
2646
|
+
children: /* @__PURE__ */ jsx26("div", {
|
|
2604
2647
|
style: outerPortal,
|
|
2605
2648
|
className: "css-reset",
|
|
2606
|
-
children: /* @__PURE__ */
|
|
2649
|
+
children: /* @__PURE__ */ jsx26(HigherZIndex, {
|
|
2607
2650
|
onOutsideClick: onHide,
|
|
2608
2651
|
onEscape: onHide,
|
|
2609
|
-
children: /* @__PURE__ */
|
|
2652
|
+
children: /* @__PURE__ */ jsx26("div", {
|
|
2610
2653
|
style: portalStyle,
|
|
2611
|
-
children: /* @__PURE__ */
|
|
2654
|
+
children: /* @__PURE__ */ jsx26(MenuContent, {
|
|
2612
2655
|
onNextMenu: noop,
|
|
2613
2656
|
onPreviousMenu: noop,
|
|
2614
2657
|
values,
|
|
@@ -2627,9 +2670,9 @@ var InlineDropdown = ({
|
|
|
2627
2670
|
};
|
|
2628
2671
|
|
|
2629
2672
|
// src/components/CompositionContextButton.tsx
|
|
2630
|
-
import { jsx as
|
|
2673
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
2631
2674
|
var CompositionContextButton = ({ visible, values }) => {
|
|
2632
|
-
const iconStyle =
|
|
2675
|
+
const iconStyle = useMemo18(() => {
|
|
2633
2676
|
return {
|
|
2634
2677
|
style: {
|
|
2635
2678
|
height: 12
|
|
@@ -2638,7 +2681,7 @@ var CompositionContextButton = ({ visible, values }) => {
|
|
|
2638
2681
|
}, []);
|
|
2639
2682
|
const connectionStatus = useContext6(StudioServerConnectionCtx).previewServerState.type;
|
|
2640
2683
|
const renderAction = useCallback12((color) => {
|
|
2641
|
-
return /* @__PURE__ */
|
|
2684
|
+
return /* @__PURE__ */ jsx27(EllipsisIcon, {
|
|
2642
2685
|
fill: color,
|
|
2643
2686
|
svgProps: iconStyle
|
|
2644
2687
|
});
|
|
@@ -2646,7 +2689,7 @@ var CompositionContextButton = ({ visible, values }) => {
|
|
|
2646
2689
|
if (!visible || connectionStatus !== "connected") {
|
|
2647
2690
|
return null;
|
|
2648
2691
|
}
|
|
2649
|
-
return /* @__PURE__ */
|
|
2692
|
+
return /* @__PURE__ */ jsx27(InlineDropdown, {
|
|
2650
2693
|
renderAction,
|
|
2651
2694
|
values
|
|
2652
2695
|
});
|
|
@@ -2654,14 +2697,14 @@ var CompositionContextButton = ({ visible, values }) => {
|
|
|
2654
2697
|
|
|
2655
2698
|
// src/components/ContextMenu.tsx
|
|
2656
2699
|
import { PlayerInternals as PlayerInternals4 } from "@remotion/player";
|
|
2657
|
-
import { useCallback as useCallback13, useEffect as useEffect11, useMemo as
|
|
2700
|
+
import { useCallback as useCallback13, useEffect as useEffect11, useMemo as useMemo19, useRef as useRef10, useState as useState13 } from "react";
|
|
2658
2701
|
import ReactDOM3 from "react-dom";
|
|
2659
|
-
import { jsx as
|
|
2702
|
+
import { jsx as jsx28, jsxs as jsxs6, Fragment as Fragment3 } from "react/jsx-runtime";
|
|
2660
2703
|
var ContextMenu = ({ children, values }) => {
|
|
2661
2704
|
const ref = useRef10(null);
|
|
2662
2705
|
const [opened, setOpened] = useState13({ type: "not-open" });
|
|
2663
2706
|
const { currentZIndex } = useZIndex();
|
|
2664
|
-
const style =
|
|
2707
|
+
const style = useMemo19(() => {
|
|
2665
2708
|
return {};
|
|
2666
2709
|
}, []);
|
|
2667
2710
|
const size = PlayerInternals4.useElementSize(ref, {
|
|
@@ -2685,19 +2728,19 @@ var ContextMenu = ({ children, values }) => {
|
|
|
2685
2728
|
current.removeEventListener("contextmenu", onClick);
|
|
2686
2729
|
};
|
|
2687
2730
|
}, [size]);
|
|
2688
|
-
const spaceToBottom =
|
|
2731
|
+
const spaceToBottom = useMemo19(() => {
|
|
2689
2732
|
if (size && opened.type === "open") {
|
|
2690
2733
|
return size.windowSize.height - opened.top;
|
|
2691
2734
|
}
|
|
2692
2735
|
return 0;
|
|
2693
2736
|
}, [opened, size]);
|
|
2694
|
-
const spaceToTop =
|
|
2737
|
+
const spaceToTop = useMemo19(() => {
|
|
2695
2738
|
if (size && opened.type === "open") {
|
|
2696
2739
|
return opened.top;
|
|
2697
2740
|
}
|
|
2698
2741
|
return 0;
|
|
2699
2742
|
}, [opened, size]);
|
|
2700
|
-
const portalStyle =
|
|
2743
|
+
const portalStyle = useMemo19(() => {
|
|
2701
2744
|
if (opened.type === "not-open") {
|
|
2702
2745
|
return;
|
|
2703
2746
|
}
|
|
@@ -2728,25 +2771,25 @@ var ContextMenu = ({ children, values }) => {
|
|
|
2728
2771
|
const onHide = useCallback13(() => {
|
|
2729
2772
|
setOpened({ type: "not-open" });
|
|
2730
2773
|
}, []);
|
|
2731
|
-
return /* @__PURE__ */
|
|
2774
|
+
return /* @__PURE__ */ jsxs6(Fragment3, {
|
|
2732
2775
|
children: [
|
|
2733
|
-
/* @__PURE__ */
|
|
2776
|
+
/* @__PURE__ */ jsx28("div", {
|
|
2734
2777
|
ref,
|
|
2735
2778
|
onContextMenu: () => false,
|
|
2736
2779
|
style,
|
|
2737
2780
|
children
|
|
2738
2781
|
}),
|
|
2739
|
-
portalStyle ? ReactDOM3.createPortal(/* @__PURE__ */
|
|
2782
|
+
portalStyle ? ReactDOM3.createPortal(/* @__PURE__ */ jsx28("div", {
|
|
2740
2783
|
style: fullScreenOverlay,
|
|
2741
|
-
children: /* @__PURE__ */
|
|
2784
|
+
children: /* @__PURE__ */ jsx28("div", {
|
|
2742
2785
|
style: outerPortal,
|
|
2743
2786
|
className: "css-reset",
|
|
2744
|
-
children: /* @__PURE__ */
|
|
2787
|
+
children: /* @__PURE__ */ jsx28(HigherZIndex, {
|
|
2745
2788
|
onOutsideClick: onHide,
|
|
2746
2789
|
onEscape: onHide,
|
|
2747
|
-
children: /* @__PURE__ */
|
|
2790
|
+
children: /* @__PURE__ */ jsx28("div", {
|
|
2748
2791
|
style: portalStyle,
|
|
2749
|
-
children: /* @__PURE__ */
|
|
2792
|
+
children: /* @__PURE__ */ jsx28(MenuContent, {
|
|
2750
2793
|
onNextMenu: noop,
|
|
2751
2794
|
onPreviousMenu: noop,
|
|
2752
2795
|
values,
|
|
@@ -2765,17 +2808,17 @@ var ContextMenu = ({ children, values }) => {
|
|
|
2765
2808
|
};
|
|
2766
2809
|
|
|
2767
2810
|
// src/components/SidebarRenderButton.tsx
|
|
2768
|
-
import { useCallback as useCallback14, useContext as useContext7, useMemo as
|
|
2811
|
+
import { useCallback as useCallback14, useContext as useContext7, useMemo as useMemo20 } from "react";
|
|
2769
2812
|
import { Internals as Internals5 } from "remotion";
|
|
2770
2813
|
|
|
2771
2814
|
// src/icons/render.tsx
|
|
2772
|
-
import { jsx as
|
|
2815
|
+
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
2773
2816
|
var ThinRenderIcon = (props) => {
|
|
2774
|
-
return /* @__PURE__ */
|
|
2817
|
+
return /* @__PURE__ */ jsx29("svg", {
|
|
2775
2818
|
...props.svgProps,
|
|
2776
2819
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2777
2820
|
viewBox: "0 0 512 512",
|
|
2778
|
-
children: /* @__PURE__ */
|
|
2821
|
+
children: /* @__PURE__ */ jsx29("path", {
|
|
2779
2822
|
fill: props.fill,
|
|
2780
2823
|
d: "M188.9 372l-50.4-50.4c18.6-42.6 61.7-137.7 95.1-187C304.6 30.1 409 24.6 475.7 36.3c11.7 66.7 6.2 171.1-98.4 242c-49.4 33.5-145.5 75.6-188.4 93.7zm-79.9-62.8c-5.2 11.9-2.5 25.7 6.7 34.9l50.7 50.7c9.1 9.1 22.7 11.9 34.5 6.9c6.5-2.7 14.3-6 23-9.8L224 496c0 5.5 2.9 10.7 7.6 13.6s10.6 3.2 15.6 .7l101.5-50.7c21.7-10.8 35.4-33 35.4-57.2V312.1c4-2.5 7.7-4.9 11.3-7.3C516.1 222.9 520.1 100.9 506.7 28.1c-2.1-11.6-11.2-20.6-22.8-22.8C411.1-8.1 289.1-4.1 207.2 116.7c-2.4 3.6-4.9 7.3-7.3 11.3l-90.2 0c-24.2 0-46.4 13.7-57.2 35.4L1.7 264.8c-2.5 5-2.2 10.8 .7 15.6s8.1 7.6 13.6 7.6H118.5c-3.6 8-6.8 15.2-9.4 21.2zM256 470.1l0-92.5c30.3-13.7 65.4-30.3 96-47v71.7c0 12.1-6.8 23.2-17.7 28.6L256 470.1zM109.7 160h71.5c-16.9 30.7-34 65.8-48.1 96H41.9L81 177.7c5.4-10.8 16.5-17.7 28.6-17.7zM392 144a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM368 88a56 56 0 1 0 0 112 56 56 0 1 0 0-112z"
|
|
2781
2824
|
})
|
|
@@ -2783,12 +2826,12 @@ var ThinRenderIcon = (props) => {
|
|
|
2783
2826
|
};
|
|
2784
2827
|
|
|
2785
2828
|
// src/components/SidebarRenderButton.tsx
|
|
2786
|
-
import { jsx as
|
|
2829
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
2787
2830
|
var SidebarRenderButton = ({ composition, visible }) => {
|
|
2788
2831
|
const { setSelectedModal } = useContext7(ModalsContext);
|
|
2789
2832
|
const { setSidebarCollapsedState } = useContext7(SidebarContext);
|
|
2790
2833
|
const isMobileLayout = useMobileLayout();
|
|
2791
|
-
const iconStyle =
|
|
2834
|
+
const iconStyle = useMemo20(() => {
|
|
2792
2835
|
return {
|
|
2793
2836
|
style: {
|
|
2794
2837
|
height: 12
|
|
@@ -2866,7 +2909,7 @@ var SidebarRenderButton = ({ composition, visible }) => {
|
|
|
2866
2909
|
setSidebarCollapsedState
|
|
2867
2910
|
]);
|
|
2868
2911
|
const renderAction = useCallback14((color) => {
|
|
2869
|
-
return /* @__PURE__ */
|
|
2912
|
+
return /* @__PURE__ */ jsx30(ThinRenderIcon, {
|
|
2870
2913
|
fill: color,
|
|
2871
2914
|
svgProps: iconStyle
|
|
2872
2915
|
});
|
|
@@ -2874,14 +2917,14 @@ var SidebarRenderButton = ({ composition, visible }) => {
|
|
|
2874
2917
|
if (!visible || connectionStatus !== "connected") {
|
|
2875
2918
|
return null;
|
|
2876
2919
|
}
|
|
2877
|
-
return /* @__PURE__ */
|
|
2920
|
+
return /* @__PURE__ */ jsx30(InlineAction, {
|
|
2878
2921
|
renderAction,
|
|
2879
2922
|
onClick
|
|
2880
2923
|
});
|
|
2881
2924
|
};
|
|
2882
2925
|
|
|
2883
2926
|
// src/components/CompositionSelectorItem.tsx
|
|
2884
|
-
import { jsx as
|
|
2927
|
+
import { jsx as jsx31, jsxs as jsxs7, Fragment as Fragment4 } from "react/jsx-runtime";
|
|
2885
2928
|
var COMPOSITION_ITEM_HEIGHT = 32;
|
|
2886
2929
|
var itemStyle = {
|
|
2887
2930
|
paddingRight: 10,
|
|
@@ -2898,7 +2941,8 @@ var itemStyle = {
|
|
|
2898
2941
|
width: "100%",
|
|
2899
2942
|
textAlign: "left",
|
|
2900
2943
|
backgroundColor: BACKGROUND,
|
|
2901
|
-
height: COMPOSITION_ITEM_HEIGHT
|
|
2944
|
+
height: COMPOSITION_ITEM_HEIGHT,
|
|
2945
|
+
userSelect: "none"
|
|
2902
2946
|
};
|
|
2903
2947
|
var labelStyle2 = {
|
|
2904
2948
|
textAlign: "left",
|
|
@@ -2922,7 +2966,7 @@ var CompositionSelectorItem = ({
|
|
|
2922
2966
|
selectComposition,
|
|
2923
2967
|
toggleFolder
|
|
2924
2968
|
}) => {
|
|
2925
|
-
const selected =
|
|
2969
|
+
const selected = useMemo21(() => {
|
|
2926
2970
|
if (item.type === "composition") {
|
|
2927
2971
|
return currentComposition === item.composition.id;
|
|
2928
2972
|
}
|
|
@@ -2935,14 +2979,14 @@ var CompositionSelectorItem = ({
|
|
|
2935
2979
|
const onPointerLeave = useCallback15(() => {
|
|
2936
2980
|
setHovered(false);
|
|
2937
2981
|
}, []);
|
|
2938
|
-
const style =
|
|
2982
|
+
const style = useMemo21(() => {
|
|
2939
2983
|
return {
|
|
2940
2984
|
...itemStyle,
|
|
2941
2985
|
backgroundColor: getBackgroundFromHoverState({ hovered, selected }),
|
|
2942
2986
|
paddingLeft: 12 + level * 8
|
|
2943
2987
|
};
|
|
2944
2988
|
}, [hovered, level, selected]);
|
|
2945
|
-
const label =
|
|
2989
|
+
const label = useMemo21(() => {
|
|
2946
2990
|
return {
|
|
2947
2991
|
...labelStyle2,
|
|
2948
2992
|
color: selected || hovered ? "white" : LIGHT_TEXT
|
|
@@ -2962,7 +3006,7 @@ var CompositionSelectorItem = ({
|
|
|
2962
3006
|
}
|
|
2963
3007
|
}, [onClick]);
|
|
2964
3008
|
const { setSelectedModal } = useContext8(ModalsContext);
|
|
2965
|
-
const contextMenu =
|
|
3009
|
+
const contextMenu = useMemo21(() => {
|
|
2966
3010
|
if (item.type === "composition") {
|
|
2967
3011
|
return [
|
|
2968
3012
|
{
|
|
@@ -3040,9 +3084,9 @@ var CompositionSelectorItem = ({
|
|
|
3040
3084
|
return [];
|
|
3041
3085
|
}, [item, setSelectedModal]);
|
|
3042
3086
|
if (item.type === "folder") {
|
|
3043
|
-
return /* @__PURE__ */
|
|
3087
|
+
return /* @__PURE__ */ jsxs7(Fragment4, {
|
|
3044
3088
|
children: [
|
|
3045
|
-
/* @__PURE__ */
|
|
3089
|
+
/* @__PURE__ */ jsxs7("button", {
|
|
3046
3090
|
style,
|
|
3047
3091
|
onPointerEnter,
|
|
3048
3092
|
onPointerLeave,
|
|
@@ -3051,24 +3095,24 @@ var CompositionSelectorItem = ({
|
|
|
3051
3095
|
type: "button",
|
|
3052
3096
|
title: item.folderName,
|
|
3053
3097
|
children: [
|
|
3054
|
-
item.expanded ? /* @__PURE__ */
|
|
3098
|
+
item.expanded ? /* @__PURE__ */ jsx31(ExpandedFolderIcon, {
|
|
3055
3099
|
style: iconStyle,
|
|
3056
3100
|
color: hovered || selected ? "white" : LIGHT_TEXT
|
|
3057
|
-
}) : /* @__PURE__ */
|
|
3101
|
+
}) : /* @__PURE__ */ jsx31(CollapsedFolderIcon, {
|
|
3058
3102
|
color: hovered || selected ? "white" : LIGHT_TEXT,
|
|
3059
3103
|
style: iconStyle
|
|
3060
3104
|
}),
|
|
3061
|
-
/* @__PURE__ */
|
|
3105
|
+
/* @__PURE__ */ jsx31(Spacing, {
|
|
3062
3106
|
x: 1
|
|
3063
3107
|
}),
|
|
3064
|
-
/* @__PURE__ */
|
|
3108
|
+
/* @__PURE__ */ jsx31("div", {
|
|
3065
3109
|
style: label,
|
|
3066
3110
|
children: item.folderName
|
|
3067
3111
|
})
|
|
3068
3112
|
]
|
|
3069
3113
|
}),
|
|
3070
3114
|
item.expanded ? item.items.map((childItem) => {
|
|
3071
|
-
return /* @__PURE__ */
|
|
3115
|
+
return /* @__PURE__ */ jsx31(CompositionSelectorItem, {
|
|
3072
3116
|
currentComposition,
|
|
3073
3117
|
selectComposition,
|
|
3074
3118
|
item: childItem,
|
|
@@ -3080,11 +3124,11 @@ var CompositionSelectorItem = ({
|
|
|
3080
3124
|
]
|
|
3081
3125
|
});
|
|
3082
3126
|
}
|
|
3083
|
-
return /* @__PURE__ */
|
|
3127
|
+
return /* @__PURE__ */ jsx31(ContextMenu, {
|
|
3084
3128
|
values: contextMenu,
|
|
3085
|
-
children: /* @__PURE__ */
|
|
3129
|
+
children: /* @__PURE__ */ jsx31(Row, {
|
|
3086
3130
|
align: "center",
|
|
3087
|
-
children: /* @__PURE__ */
|
|
3131
|
+
children: /* @__PURE__ */ jsxs7("a", {
|
|
3088
3132
|
style,
|
|
3089
3133
|
onPointerEnter,
|
|
3090
3134
|
onPointerLeave,
|
|
@@ -3096,28 +3140,28 @@ var CompositionSelectorItem = ({
|
|
|
3096
3140
|
className: "__remotion-composition",
|
|
3097
3141
|
"data-compname": item.composition.id,
|
|
3098
3142
|
children: [
|
|
3099
|
-
isCompositionStill(item.composition) ? /* @__PURE__ */
|
|
3143
|
+
isCompositionStill(item.composition) ? /* @__PURE__ */ jsx31(StillIcon, {
|
|
3100
3144
|
color: hovered || selected ? "white" : LIGHT_TEXT,
|
|
3101
3145
|
style: iconStyle
|
|
3102
|
-
}) : /* @__PURE__ */
|
|
3146
|
+
}) : /* @__PURE__ */ jsx31(FilmIcon, {
|
|
3103
3147
|
color: hovered || selected ? "white" : LIGHT_TEXT,
|
|
3104
3148
|
style: iconStyle
|
|
3105
3149
|
}),
|
|
3106
|
-
/* @__PURE__ */
|
|
3150
|
+
/* @__PURE__ */ jsx31(Spacing, {
|
|
3107
3151
|
x: 1
|
|
3108
3152
|
}),
|
|
3109
|
-
/* @__PURE__ */
|
|
3153
|
+
/* @__PURE__ */ jsx31("div", {
|
|
3110
3154
|
style: label,
|
|
3111
3155
|
children: item.composition.id
|
|
3112
3156
|
}),
|
|
3113
|
-
/* @__PURE__ */
|
|
3157
|
+
/* @__PURE__ */ jsx31(Spacing, {
|
|
3114
3158
|
x: 0.5
|
|
3115
3159
|
}),
|
|
3116
|
-
/* @__PURE__ */
|
|
3160
|
+
/* @__PURE__ */ jsx31(CompositionContextButton, {
|
|
3117
3161
|
values: contextMenu,
|
|
3118
3162
|
visible: hovered
|
|
3119
3163
|
}),
|
|
3120
|
-
/* @__PURE__ */
|
|
3164
|
+
/* @__PURE__ */ jsx31(SidebarRenderButton, {
|
|
3121
3165
|
visible: hovered,
|
|
3122
3166
|
composition: item.composition
|
|
3123
3167
|
})
|
|
@@ -3149,13 +3193,12 @@ var renderFrame = (frame, fps) => {
|
|
|
3149
3193
|
};
|
|
3150
3194
|
|
|
3151
3195
|
// src/components/CurrentComposition.tsx
|
|
3152
|
-
import { jsx as
|
|
3153
|
-
var CURRENT_COMPOSITION_HEIGHT =
|
|
3154
|
-
var
|
|
3196
|
+
import { jsx as jsx32, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
3197
|
+
var CURRENT_COMPOSITION_HEIGHT = 64;
|
|
3198
|
+
var container7 = {
|
|
3155
3199
|
height: CURRENT_COMPOSITION_HEIGHT,
|
|
3156
3200
|
display: "block",
|
|
3157
|
-
|
|
3158
|
-
padding: 12,
|
|
3201
|
+
padding: "6px 12px",
|
|
3159
3202
|
color: "white",
|
|
3160
3203
|
backgroundColor: BACKGROUND
|
|
3161
3204
|
};
|
|
@@ -3181,17 +3224,17 @@ var row = {
|
|
|
3181
3224
|
};
|
|
3182
3225
|
var CurrentComposition = () => {
|
|
3183
3226
|
const video = Internals6.useVideo();
|
|
3184
|
-
return /* @__PURE__ */
|
|
3185
|
-
style:
|
|
3186
|
-
children: video ? /* @__PURE__ */
|
|
3227
|
+
return /* @__PURE__ */ jsx32("div", {
|
|
3228
|
+
style: container7,
|
|
3229
|
+
children: video ? /* @__PURE__ */ jsx32("div", {
|
|
3187
3230
|
style: row,
|
|
3188
|
-
children: /* @__PURE__ */
|
|
3231
|
+
children: /* @__PURE__ */ jsxs8("div", {
|
|
3189
3232
|
children: [
|
|
3190
|
-
/* @__PURE__ */
|
|
3233
|
+
/* @__PURE__ */ jsx32("div", {
|
|
3191
3234
|
style: title,
|
|
3192
3235
|
children: video.id
|
|
3193
3236
|
}),
|
|
3194
|
-
/* @__PURE__ */
|
|
3237
|
+
/* @__PURE__ */ jsxs8("div", {
|
|
3195
3238
|
style: subtitle,
|
|
3196
3239
|
children: [
|
|
3197
3240
|
video.width,
|
|
@@ -3200,10 +3243,10 @@ var CurrentComposition = () => {
|
|
|
3200
3243
|
isCompositionStill(video) ? null : `, ${video.fps} FPS`
|
|
3201
3244
|
]
|
|
3202
3245
|
}),
|
|
3203
|
-
isCompositionStill(video) ? /* @__PURE__ */
|
|
3246
|
+
isCompositionStill(video) ? /* @__PURE__ */ jsx32("div", {
|
|
3204
3247
|
style: subtitle,
|
|
3205
3248
|
children: "Still"
|
|
3206
|
-
}) : /* @__PURE__ */
|
|
3249
|
+
}) : /* @__PURE__ */ jsxs8("div", {
|
|
3207
3250
|
style: subtitle,
|
|
3208
3251
|
children: [
|
|
3209
3252
|
"Duration ",
|
|
@@ -3217,7 +3260,7 @@ var CurrentComposition = () => {
|
|
|
3217
3260
|
};
|
|
3218
3261
|
|
|
3219
3262
|
// src/components/CompositionSelector.tsx
|
|
3220
|
-
import { jsx as
|
|
3263
|
+
import { jsx as jsx33, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
3221
3264
|
var useCompositionNavigation = () => {
|
|
3222
3265
|
const { compositions, canvasContent } = useContext9(Internals7.CompositionManager);
|
|
3223
3266
|
const selectComposition = useSelectComposition();
|
|
@@ -3245,18 +3288,41 @@ var useCompositionNavigation = () => {
|
|
|
3245
3288
|
const previousComposition = compositions[previousIndex];
|
|
3246
3289
|
selectComposition(previousComposition, true);
|
|
3247
3290
|
}, [canvasContent, compositions, selectComposition]);
|
|
3248
|
-
return
|
|
3291
|
+
return useMemo22(() => ({
|
|
3249
3292
|
navigateToNextComposition,
|
|
3250
3293
|
navigateToPreviousComposition
|
|
3251
3294
|
}), [navigateToNextComposition, navigateToPreviousComposition]);
|
|
3252
3295
|
};
|
|
3253
|
-
var
|
|
3296
|
+
var container8 = {
|
|
3254
3297
|
display: "flex",
|
|
3255
3298
|
flexDirection: "column",
|
|
3256
3299
|
flex: 1,
|
|
3257
3300
|
overflow: "hidden",
|
|
3258
3301
|
backgroundColor: BACKGROUND
|
|
3259
3302
|
};
|
|
3303
|
+
var QUICK_SWITCHER_TRIGGER_HEIGHT = 38;
|
|
3304
|
+
var quickSwitcherArea = {
|
|
3305
|
+
padding: "4px 12px",
|
|
3306
|
+
borderBottom: `1px solid ${BORDER_COLOR}`
|
|
3307
|
+
};
|
|
3308
|
+
var quickSwitcherTrigger = {
|
|
3309
|
+
backgroundColor: "rgba(255, 255, 255, 0.06)",
|
|
3310
|
+
borderRadius: 5,
|
|
3311
|
+
padding: "4px 10px",
|
|
3312
|
+
color: LIGHT_TEXT,
|
|
3313
|
+
fontSize: 12,
|
|
3314
|
+
cursor: "pointer",
|
|
3315
|
+
display: "flex",
|
|
3316
|
+
alignItems: "center",
|
|
3317
|
+
justifyContent: "space-between",
|
|
3318
|
+
border: "none",
|
|
3319
|
+
width: "100%",
|
|
3320
|
+
appearance: "none"
|
|
3321
|
+
};
|
|
3322
|
+
var shortcutLabel = {
|
|
3323
|
+
fontSize: 11,
|
|
3324
|
+
opacity: 0.6
|
|
3325
|
+
};
|
|
3260
3326
|
var getKeysToExpand = (initialFolderName, parentFolderName, initial = []) => {
|
|
3261
3327
|
initial.push(openFolderKey({
|
|
3262
3328
|
folderName: initialFolderName,
|
|
@@ -3271,35 +3337,62 @@ var getKeysToExpand = (initialFolderName, parentFolderName, initial = []) => {
|
|
|
3271
3337
|
var CompositionSelector = () => {
|
|
3272
3338
|
const { compositions, canvasContent, folders } = useContext9(Internals7.CompositionManager);
|
|
3273
3339
|
const { foldersExpanded } = useContext9(ExpandedFoldersContext);
|
|
3340
|
+
const { setSelectedModal } = useContext9(ModalsContext);
|
|
3274
3341
|
const { tabIndex } = useZIndex();
|
|
3275
3342
|
const selectComposition = useSelectComposition();
|
|
3276
|
-
const sortedCompositions =
|
|
3343
|
+
const sortedCompositions = useMemo22(() => {
|
|
3277
3344
|
return sortItemsByNonceHistory(compositions);
|
|
3278
3345
|
}, [compositions]);
|
|
3279
|
-
const sortedFolders =
|
|
3346
|
+
const sortedFolders = useMemo22(() => {
|
|
3280
3347
|
return sortItemsByNonceHistory(folders);
|
|
3281
3348
|
}, [folders]);
|
|
3282
|
-
const items =
|
|
3349
|
+
const items = useMemo22(() => {
|
|
3283
3350
|
return createFolderTree(sortedCompositions, sortedFolders, foldersExpanded);
|
|
3284
3351
|
}, [sortedCompositions, sortedFolders, foldersExpanded]);
|
|
3285
|
-
const list =
|
|
3352
|
+
const list = useMemo22(() => {
|
|
3286
3353
|
return {
|
|
3287
|
-
height: `calc(100% - ${CURRENT_COMPOSITION_HEIGHT}px)`,
|
|
3354
|
+
height: `calc(100% - ${CURRENT_COMPOSITION_HEIGHT}px - ${QUICK_SWITCHER_TRIGGER_HEIGHT}px)`,
|
|
3288
3355
|
overflowY: "auto"
|
|
3289
3356
|
};
|
|
3290
3357
|
}, []);
|
|
3291
3358
|
const toggleFolder = useCallback16((folderName, parentName) => {
|
|
3292
3359
|
Internals7.compositionSelectorRef.current?.toggleFolder(folderName, parentName);
|
|
3293
3360
|
}, []);
|
|
3294
|
-
|
|
3295
|
-
|
|
3361
|
+
const openQuickSwitcher = useCallback16(() => {
|
|
3362
|
+
setSelectedModal({
|
|
3363
|
+
type: "quick-switcher",
|
|
3364
|
+
mode: "compositions",
|
|
3365
|
+
invocationTimestamp: Date.now()
|
|
3366
|
+
});
|
|
3367
|
+
}, [setSelectedModal]);
|
|
3368
|
+
return /* @__PURE__ */ jsxs9("div", {
|
|
3369
|
+
style: container8,
|
|
3296
3370
|
children: [
|
|
3297
|
-
/* @__PURE__ */
|
|
3298
|
-
/* @__PURE__ */
|
|
3371
|
+
/* @__PURE__ */ jsx33(CurrentComposition, {}),
|
|
3372
|
+
/* @__PURE__ */ jsx33("div", {
|
|
3373
|
+
style: quickSwitcherArea,
|
|
3374
|
+
children: /* @__PURE__ */ jsxs9("button", {
|
|
3375
|
+
type: "button",
|
|
3376
|
+
style: quickSwitcherTrigger,
|
|
3377
|
+
onClick: openQuickSwitcher,
|
|
3378
|
+
tabIndex,
|
|
3379
|
+
children: [
|
|
3380
|
+
"Search...",
|
|
3381
|
+
areKeyboardShortcutsDisabled() ? null : /* @__PURE__ */ jsxs9("span", {
|
|
3382
|
+
style: shortcutLabel,
|
|
3383
|
+
children: [
|
|
3384
|
+
cmdOrCtrlCharacter,
|
|
3385
|
+
"+K"
|
|
3386
|
+
]
|
|
3387
|
+
})
|
|
3388
|
+
]
|
|
3389
|
+
})
|
|
3390
|
+
}),
|
|
3391
|
+
/* @__PURE__ */ jsx33("div", {
|
|
3299
3392
|
className: "__remotion-vertical-scrollbar",
|
|
3300
3393
|
style: list,
|
|
3301
3394
|
children: items.map((c) => {
|
|
3302
|
-
return /* @__PURE__ */
|
|
3395
|
+
return /* @__PURE__ */ jsx33(CompositionSelectorItem, {
|
|
3303
3396
|
level: 0,
|
|
3304
3397
|
currentComposition: canvasContent && canvasContent.type === "composition" ? canvasContent.compositionId : null,
|
|
3305
3398
|
selectComposition,
|
|
@@ -3317,7 +3410,7 @@ var CompositionSelector = () => {
|
|
|
3317
3410
|
import { createRef as createRef5, useCallback as useCallback22, useImperativeHandle as useImperativeHandle5, useState as useState21 } from "react";
|
|
3318
3411
|
|
|
3319
3412
|
// src/components/AssetSelector.tsx
|
|
3320
|
-
import { useCallback as useCallback19, useContext as useContext13, useMemo as
|
|
3413
|
+
import { useCallback as useCallback19, useContext as useContext13, useMemo as useMemo26, useState as useState18 } from "react";
|
|
3321
3414
|
import { Internals as Internals10 } from "remotion";
|
|
3322
3415
|
|
|
3323
3416
|
// src/api/write-static-file.ts
|
|
@@ -3346,7 +3439,7 @@ var writeStaticFile = async ({
|
|
|
3346
3439
|
};
|
|
3347
3440
|
|
|
3348
3441
|
// src/helpers/use-asset-drag-events.ts
|
|
3349
|
-
import { useCallback as useCallback17, useEffect as useEffect12, useMemo as
|
|
3442
|
+
import { useCallback as useCallback17, useEffect as useEffect12, useMemo as useMemo23, useRef as useRef11 } from "react";
|
|
3350
3443
|
import { NoReactInternals } from "remotion/no-react";
|
|
3351
3444
|
function useAssetDragEvents({
|
|
3352
3445
|
name,
|
|
@@ -3355,10 +3448,10 @@ function useAssetDragEvents({
|
|
|
3355
3448
|
setDropLocation
|
|
3356
3449
|
}) {
|
|
3357
3450
|
const dragDepthRef = useRef11(0);
|
|
3358
|
-
const combinedParents =
|
|
3451
|
+
const combinedParents = useMemo23(() => {
|
|
3359
3452
|
return [parentFolder, name].filter(NoReactInternals.truthy).join("/");
|
|
3360
3453
|
}, [name, parentFolder]);
|
|
3361
|
-
const isDropDiv =
|
|
3454
|
+
const isDropDiv = useMemo23(() => {
|
|
3362
3455
|
return dropLocation === combinedParents;
|
|
3363
3456
|
}, [combinedParents, dropLocation]);
|
|
3364
3457
|
const onDragEnter = useCallback17(() => {
|
|
@@ -3387,7 +3480,7 @@ function useAssetDragEvents({
|
|
|
3387
3480
|
var use_asset_drag_events_default = useAssetDragEvents;
|
|
3388
3481
|
|
|
3389
3482
|
// src/components/AssetSelectorItem.tsx
|
|
3390
|
-
import
|
|
3483
|
+
import React25, { useCallback as useCallback18, useContext as useContext10, useMemo as useMemo24, useRef as useRef12, useState as useState15 } from "react";
|
|
3391
3484
|
import { Internals as Internals8 } from "remotion";
|
|
3392
3485
|
import { NoReactInternals as NoReactInternals3 } from "remotion/no-react";
|
|
3393
3486
|
|
|
@@ -3409,26 +3502,26 @@ var copyText = (cmd) => {
|
|
|
3409
3502
|
};
|
|
3410
3503
|
|
|
3411
3504
|
// src/icons/clipboard.tsx
|
|
3412
|
-
import { jsx as
|
|
3413
|
-
var ClipboardIcon = ({ color, ...props }) => /* @__PURE__ */
|
|
3505
|
+
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
3506
|
+
var ClipboardIcon = ({ color, ...props }) => /* @__PURE__ */ jsx34("svg", {
|
|
3414
3507
|
viewBox: "0 0 384 512",
|
|
3415
3508
|
...props,
|
|
3416
|
-
children: /* @__PURE__ */
|
|
3509
|
+
children: /* @__PURE__ */ jsx34("path", {
|
|
3417
3510
|
fill: color,
|
|
3418
3511
|
d: "M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm144 418c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h42v36c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-36h42c3.3 0 6 2.7 6 6z"
|
|
3419
3512
|
})
|
|
3420
3513
|
});
|
|
3421
3514
|
|
|
3422
3515
|
// src/icons/file.tsx
|
|
3423
|
-
import { jsx as
|
|
3516
|
+
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
3424
3517
|
var FileIcon = ({
|
|
3425
3518
|
color,
|
|
3426
3519
|
...props
|
|
3427
|
-
}) => /* @__PURE__ */
|
|
3520
|
+
}) => /* @__PURE__ */ jsx35("svg", {
|
|
3428
3521
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3429
3522
|
viewBox: "0 0 384 512",
|
|
3430
3523
|
...props,
|
|
3431
|
-
children: /* @__PURE__ */
|
|
3524
|
+
children: /* @__PURE__ */ jsx35("path", {
|
|
3432
3525
|
fill: color ?? "currentColor",
|
|
3433
3526
|
d: "M0 64C0 28.65 28.65 0 64 0h156.1c12.7 0 25 5.057 34 14.06L369.9 129.9c9 9 14.1 21.3 14.1 34V448c0 35.3-28.7 64-64 64H64c-35.35 0-64-28.7-64-64V64zm352 128H240c-26.5 0-48-21.5-48-48V32H64c-17.67 0-32 14.33-32 32v384c0 17.7 14.33 32 32 32h256c17.7 0 32-14.3 32-32V192zm-4.7-39.4L231.4 36.69c-2-2.07-4.6-3.51-7.4-4.21V144c0 8.8 7.2 16 16 16h111.5c-.7-2.8-2.1-5.4-4.2-7.4z"
|
|
3434
3527
|
})
|
|
@@ -3732,7 +3825,7 @@ var applyVisualControlChange = ({
|
|
|
3732
3825
|
};
|
|
3733
3826
|
|
|
3734
3827
|
// src/components/AssetSelectorItem.tsx
|
|
3735
|
-
import { jsx as
|
|
3828
|
+
import { jsx as jsx36, jsxs as jsxs10, Fragment as Fragment5 } from "react/jsx-runtime";
|
|
3736
3829
|
var ASSET_ITEM_HEIGHT = 32;
|
|
3737
3830
|
var iconStyle2 = {
|
|
3738
3831
|
width: 18,
|
|
@@ -3795,14 +3888,14 @@ var AssetFolderItem = ({
|
|
|
3795
3888
|
const onPointerLeave = useCallback18(() => {
|
|
3796
3889
|
setHovered(false);
|
|
3797
3890
|
}, []);
|
|
3798
|
-
const folderStyle =
|
|
3891
|
+
const folderStyle = useMemo24(() => {
|
|
3799
3892
|
return {
|
|
3800
3893
|
...itemStyle2,
|
|
3801
3894
|
paddingLeft: 4 + level * 8,
|
|
3802
3895
|
backgroundColor: hovered ? CLEAR_HOVER : "transparent"
|
|
3803
3896
|
};
|
|
3804
3897
|
}, [hovered, level]);
|
|
3805
|
-
const label =
|
|
3898
|
+
const label = useMemo24(() => {
|
|
3806
3899
|
return {
|
|
3807
3900
|
...labelStyle3,
|
|
3808
3901
|
color: hovered ? "white" : LIGHT_TEXT
|
|
@@ -3812,14 +3905,14 @@ var AssetFolderItem = ({
|
|
|
3812
3905
|
toggleFolder(item.name, parentFolder);
|
|
3813
3906
|
}, [item.name, parentFolder, toggleFolder]);
|
|
3814
3907
|
const Icon = item.expanded ? ExpandedFolderIcon : CollapsedFolderIcon;
|
|
3815
|
-
return /* @__PURE__ */
|
|
3908
|
+
return /* @__PURE__ */ jsxs10("div", {
|
|
3816
3909
|
onDragEnter,
|
|
3817
3910
|
onDragLeave,
|
|
3818
3911
|
style: {
|
|
3819
3912
|
backgroundColor: isDropDiv ? CLEAR_HOVER : BACKGROUND
|
|
3820
3913
|
},
|
|
3821
3914
|
children: [
|
|
3822
|
-
/* @__PURE__ */
|
|
3915
|
+
/* @__PURE__ */ jsx36("div", {
|
|
3823
3916
|
style: folderStyle,
|
|
3824
3917
|
onPointerEnter,
|
|
3825
3918
|
onPointerLeave,
|
|
@@ -3838,23 +3931,23 @@ var AssetFolderItem = ({
|
|
|
3838
3931
|
clearTimeout(openFolderTimerRef.current);
|
|
3839
3932
|
}
|
|
3840
3933
|
},
|
|
3841
|
-
children: /* @__PURE__ */
|
|
3934
|
+
children: /* @__PURE__ */ jsxs10(Row, {
|
|
3842
3935
|
children: [
|
|
3843
|
-
/* @__PURE__ */
|
|
3936
|
+
/* @__PURE__ */ jsx36(Icon, {
|
|
3844
3937
|
style: iconStyle2,
|
|
3845
3938
|
color: hovered ? "white" : LIGHT_TEXT
|
|
3846
3939
|
}),
|
|
3847
|
-
/* @__PURE__ */
|
|
3940
|
+
/* @__PURE__ */ jsx36(Spacing, {
|
|
3848
3941
|
x: 1
|
|
3849
3942
|
}),
|
|
3850
|
-
/* @__PURE__ */
|
|
3943
|
+
/* @__PURE__ */ jsx36("div", {
|
|
3851
3944
|
style: label,
|
|
3852
3945
|
children: item.name
|
|
3853
3946
|
})
|
|
3854
3947
|
]
|
|
3855
3948
|
})
|
|
3856
3949
|
}),
|
|
3857
|
-
item.expanded ? /* @__PURE__ */
|
|
3950
|
+
item.expanded ? /* @__PURE__ */ jsx36(AssetFolderTree, {
|
|
3858
3951
|
item: item.items,
|
|
3859
3952
|
name: item.name,
|
|
3860
3953
|
level,
|
|
@@ -3879,13 +3972,13 @@ var AssetFolderTree = ({
|
|
|
3879
3972
|
setDropLocation,
|
|
3880
3973
|
readOnlyStudio
|
|
3881
3974
|
}) => {
|
|
3882
|
-
const combinedParents =
|
|
3975
|
+
const combinedParents = useMemo24(() => {
|
|
3883
3976
|
return [parentFolder, name].filter(NoReactInternals3.truthy).join("/");
|
|
3884
3977
|
}, [name, parentFolder]);
|
|
3885
|
-
return /* @__PURE__ */
|
|
3978
|
+
return /* @__PURE__ */ jsxs10("div", {
|
|
3886
3979
|
children: [
|
|
3887
3980
|
item.folders.map((folder) => {
|
|
3888
|
-
return /* @__PURE__ */
|
|
3981
|
+
return /* @__PURE__ */ jsx36(AssetFolderItem, {
|
|
3889
3982
|
item: folder,
|
|
3890
3983
|
tabIndex,
|
|
3891
3984
|
level: level + 1,
|
|
@@ -3897,7 +3990,7 @@ var AssetFolderTree = ({
|
|
|
3897
3990
|
}, folder.name);
|
|
3898
3991
|
}),
|
|
3899
3992
|
item.files.map((file) => {
|
|
3900
|
-
return /* @__PURE__ */
|
|
3993
|
+
return /* @__PURE__ */ jsx36(AssetSelectorItem, {
|
|
3901
3994
|
item: file,
|
|
3902
3995
|
tabIndex,
|
|
3903
3996
|
level,
|
|
@@ -3917,10 +4010,10 @@ var AssetSelectorItem = ({ item, tabIndex, level, parentFolder, readOnlyStudio }
|
|
|
3917
4010
|
}, []);
|
|
3918
4011
|
const { setCanvasContent } = useContext10(Internals8.CompositionSetters);
|
|
3919
4012
|
const { canvasContent } = useContext10(Internals8.CompositionManager);
|
|
3920
|
-
const relativePath =
|
|
4013
|
+
const relativePath = useMemo24(() => {
|
|
3921
4014
|
return parentFolder ? parentFolder + "/" + item.name : item.name;
|
|
3922
4015
|
}, [parentFolder, item.name]);
|
|
3923
|
-
const selected =
|
|
4016
|
+
const selected = useMemo24(() => {
|
|
3924
4017
|
if (canvasContent && canvasContent.type === "asset") {
|
|
3925
4018
|
return canvasContent.asset === relativePath;
|
|
3926
4019
|
}
|
|
@@ -3941,7 +4034,7 @@ var AssetSelectorItem = ({ item, tabIndex, level, parentFolder, readOnlyStudio }
|
|
|
3941
4034
|
setCanvasContent,
|
|
3942
4035
|
setSidebarCollapsedState
|
|
3943
4036
|
]);
|
|
3944
|
-
const style =
|
|
4037
|
+
const style = useMemo24(() => {
|
|
3945
4038
|
return {
|
|
3946
4039
|
...itemStyle2,
|
|
3947
4040
|
color: hovered || selected ? "white" : LIGHT_TEXT,
|
|
@@ -3949,25 +4042,25 @@ var AssetSelectorItem = ({ item, tabIndex, level, parentFolder, readOnlyStudio }
|
|
|
3949
4042
|
paddingLeft: 12 + level * 8
|
|
3950
4043
|
};
|
|
3951
4044
|
}, [hovered, level, selected]);
|
|
3952
|
-
const label =
|
|
4045
|
+
const label = useMemo24(() => {
|
|
3953
4046
|
return {
|
|
3954
4047
|
...labelStyle3,
|
|
3955
4048
|
color: hovered || selected ? "white" : LIGHT_TEXT
|
|
3956
4049
|
};
|
|
3957
4050
|
}, [hovered, selected]);
|
|
3958
4051
|
const renderFileExplorerAction = useCallback18((color) => {
|
|
3959
|
-
return /* @__PURE__ */
|
|
4052
|
+
return /* @__PURE__ */ jsx36(ExpandedFolderIcon, {
|
|
3960
4053
|
style: revealIconStyle,
|
|
3961
4054
|
color
|
|
3962
4055
|
});
|
|
3963
4056
|
}, []);
|
|
3964
4057
|
const renderCopyAction = useCallback18((color) => {
|
|
3965
|
-
return /* @__PURE__ */
|
|
4058
|
+
return /* @__PURE__ */ jsx36(ClipboardIcon, {
|
|
3966
4059
|
style: revealIconStyle,
|
|
3967
4060
|
color
|
|
3968
4061
|
});
|
|
3969
4062
|
}, []);
|
|
3970
|
-
const revealInExplorer =
|
|
4063
|
+
const revealInExplorer = React25.useCallback((e) => {
|
|
3971
4064
|
e.stopPropagation();
|
|
3972
4065
|
openInFileExplorer({
|
|
3973
4066
|
directory: window.remotion_publicFolderExists + "/" + parentFolder + "/" + item.name
|
|
@@ -3984,9 +4077,9 @@ var AssetSelectorItem = ({ item, tabIndex, level, parentFolder, readOnlyStudio }
|
|
|
3984
4077
|
showNotification(`Could not copy: ${err.message}`, 2000);
|
|
3985
4078
|
});
|
|
3986
4079
|
}, [item.name, parentFolder]);
|
|
3987
|
-
return /* @__PURE__ */
|
|
4080
|
+
return /* @__PURE__ */ jsx36(Row, {
|
|
3988
4081
|
align: "center",
|
|
3989
|
-
children: /* @__PURE__ */
|
|
4082
|
+
children: /* @__PURE__ */ jsxs10("div", {
|
|
3990
4083
|
style,
|
|
3991
4084
|
onPointerEnter,
|
|
3992
4085
|
onPointerLeave,
|
|
@@ -3994,33 +4087,33 @@ var AssetSelectorItem = ({ item, tabIndex, level, parentFolder, readOnlyStudio }
|
|
|
3994
4087
|
tabIndex,
|
|
3995
4088
|
title: item.name,
|
|
3996
4089
|
children: [
|
|
3997
|
-
/* @__PURE__ */
|
|
4090
|
+
/* @__PURE__ */ jsx36(FileIcon, {
|
|
3998
4091
|
style: iconStyle2,
|
|
3999
4092
|
color: LIGHT_TEXT
|
|
4000
4093
|
}),
|
|
4001
|
-
/* @__PURE__ */
|
|
4094
|
+
/* @__PURE__ */ jsx36(Spacing, {
|
|
4002
4095
|
x: 1
|
|
4003
4096
|
}),
|
|
4004
|
-
/* @__PURE__ */
|
|
4097
|
+
/* @__PURE__ */ jsx36("div", {
|
|
4005
4098
|
style: label,
|
|
4006
4099
|
children: item.name
|
|
4007
4100
|
}),
|
|
4008
|
-
hovered ? /* @__PURE__ */
|
|
4101
|
+
hovered ? /* @__PURE__ */ jsxs10(Fragment5, {
|
|
4009
4102
|
children: [
|
|
4010
|
-
/* @__PURE__ */
|
|
4103
|
+
/* @__PURE__ */ jsx36(Spacing, {
|
|
4011
4104
|
x: 0.5
|
|
4012
4105
|
}),
|
|
4013
|
-
/* @__PURE__ */
|
|
4106
|
+
/* @__PURE__ */ jsx36(InlineAction, {
|
|
4014
4107
|
title: "Copy staticFile() name",
|
|
4015
4108
|
renderAction: renderCopyAction,
|
|
4016
4109
|
onClick: copyToClipboard
|
|
4017
4110
|
}),
|
|
4018
|
-
readOnlyStudio ? null : /* @__PURE__ */
|
|
4111
|
+
readOnlyStudio ? null : /* @__PURE__ */ jsxs10(Fragment5, {
|
|
4019
4112
|
children: [
|
|
4020
|
-
/* @__PURE__ */
|
|
4113
|
+
/* @__PURE__ */ jsx36(Spacing, {
|
|
4021
4114
|
x: 0.5
|
|
4022
4115
|
}),
|
|
4023
|
-
/* @__PURE__ */
|
|
4116
|
+
/* @__PURE__ */ jsx36(InlineAction, {
|
|
4024
4117
|
title: "Open in Explorer",
|
|
4025
4118
|
renderAction: renderFileExplorerAction,
|
|
4026
4119
|
onClick: revealInExplorer
|
|
@@ -4037,11 +4130,11 @@ var AssetSelectorItem = ({ item, tabIndex, level, parentFolder, readOnlyStudio }
|
|
|
4037
4130
|
// src/components/CurrentAsset.tsx
|
|
4038
4131
|
import { formatBytes } from "@remotion/studio-shared";
|
|
4039
4132
|
import { ALL_FORMATS, Input, UrlSource } from "mediabunny";
|
|
4040
|
-
import { useContext as useContext12, useEffect as useEffect14, useMemo as
|
|
4133
|
+
import { useContext as useContext12, useEffect as useEffect14, useMemo as useMemo25, useState as useState17 } from "react";
|
|
4041
4134
|
import { Internals as Internals9, staticFile } from "remotion";
|
|
4042
4135
|
|
|
4043
4136
|
// src/components/use-static-files.ts
|
|
4044
|
-
import
|
|
4137
|
+
import React26, { createContext as createContext10, useContext as useContext11, useEffect as useEffect13, useState as useState16 } from "react";
|
|
4045
4138
|
import { useRemotionEnvironment } from "remotion";
|
|
4046
4139
|
|
|
4047
4140
|
// src/api/get-static-files.ts
|
|
@@ -4113,16 +4206,16 @@ var StaticFilesProvider = ({ children }) => {
|
|
|
4113
4206
|
});
|
|
4114
4207
|
return cancel;
|
|
4115
4208
|
}, [env.isStudio, env.isReadOnlyStudio]);
|
|
4116
|
-
return
|
|
4209
|
+
return React26.createElement(StaticFilesContext.Provider, { value: files }, children);
|
|
4117
4210
|
};
|
|
4118
4211
|
var useStaticFiles = () => {
|
|
4119
4212
|
return useContext11(StaticFilesContext);
|
|
4120
4213
|
};
|
|
4121
4214
|
|
|
4122
4215
|
// src/components/CurrentAsset.tsx
|
|
4123
|
-
import { jsx as
|
|
4216
|
+
import { jsx as jsx37, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
4124
4217
|
var CURRENT_ASSET_HEIGHT = 80;
|
|
4125
|
-
var
|
|
4218
|
+
var container9 = {
|
|
4126
4219
|
height: CURRENT_ASSET_HEIGHT,
|
|
4127
4220
|
display: "block",
|
|
4128
4221
|
borderBottom: `1px solid ${BORDER_COLOR}`,
|
|
@@ -4164,7 +4257,7 @@ var CurrentAsset = () => {
|
|
|
4164
4257
|
const { canvasContent } = useContext12(Internals9.CompositionManager);
|
|
4165
4258
|
const assetName = canvasContent?.type === "asset" ? canvasContent.asset : null;
|
|
4166
4259
|
const staticFiles = useStaticFiles();
|
|
4167
|
-
const sizeInBytes =
|
|
4260
|
+
const sizeInBytes = useMemo25(() => {
|
|
4168
4261
|
if (!assetName) {
|
|
4169
4262
|
return null;
|
|
4170
4263
|
}
|
|
@@ -4199,8 +4292,8 @@ var CurrentAsset = () => {
|
|
|
4199
4292
|
};
|
|
4200
4293
|
}, [assetName]);
|
|
4201
4294
|
if (!assetName) {
|
|
4202
|
-
return /* @__PURE__ */
|
|
4203
|
-
style:
|
|
4295
|
+
return /* @__PURE__ */ jsx37("div", {
|
|
4296
|
+
style: container9
|
|
4204
4297
|
});
|
|
4205
4298
|
}
|
|
4206
4299
|
const fileName = assetName.split("/").pop() ?? assetName;
|
|
@@ -4214,21 +4307,21 @@ var CurrentAsset = () => {
|
|
|
4214
4307
|
subtitleParts.push(`${mediaMetadata.width}x${mediaMetadata.height}`);
|
|
4215
4308
|
}
|
|
4216
4309
|
}
|
|
4217
|
-
return /* @__PURE__ */
|
|
4218
|
-
style:
|
|
4219
|
-
children: /* @__PURE__ */
|
|
4310
|
+
return /* @__PURE__ */ jsx37("div", {
|
|
4311
|
+
style: container9,
|
|
4312
|
+
children: /* @__PURE__ */ jsx37("div", {
|
|
4220
4313
|
style: row2,
|
|
4221
|
-
children: /* @__PURE__ */
|
|
4314
|
+
children: /* @__PURE__ */ jsxs11("div", {
|
|
4222
4315
|
children: [
|
|
4223
|
-
/* @__PURE__ */
|
|
4316
|
+
/* @__PURE__ */ jsx37("div", {
|
|
4224
4317
|
style: title2,
|
|
4225
4318
|
children: fileName
|
|
4226
4319
|
}),
|
|
4227
|
-
subtitleParts.length > 0 ? /* @__PURE__ */
|
|
4320
|
+
subtitleParts.length > 0 ? /* @__PURE__ */ jsx37("div", {
|
|
4228
4321
|
style: subtitle2,
|
|
4229
4322
|
children: subtitleParts.join(" · ")
|
|
4230
4323
|
}) : null,
|
|
4231
|
-
mediaMetadata ? /* @__PURE__ */
|
|
4324
|
+
mediaMetadata ? /* @__PURE__ */ jsx37("div", {
|
|
4232
4325
|
style: subtitle2,
|
|
4233
4326
|
children: formatDuration(mediaMetadata.duration)
|
|
4234
4327
|
}) : null
|
|
@@ -4239,8 +4332,8 @@ var CurrentAsset = () => {
|
|
|
4239
4332
|
};
|
|
4240
4333
|
|
|
4241
4334
|
// src/components/AssetSelector.tsx
|
|
4242
|
-
import { jsx as
|
|
4243
|
-
var
|
|
4335
|
+
import { jsx as jsx38, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
4336
|
+
var container10 = {
|
|
4244
4337
|
display: "flex",
|
|
4245
4338
|
flexDirection: "column",
|
|
4246
4339
|
flex: 1,
|
|
@@ -4271,7 +4364,7 @@ var AssetSelector = ({ readOnlyStudio }) => {
|
|
|
4271
4364
|
const connectionStatus = useContext13(StudioServerConnectionCtx).previewServerState.type;
|
|
4272
4365
|
const shouldAllowUpload = connectionStatus === "connected" && !readOnlyStudio;
|
|
4273
4366
|
const showCurrentAsset = canvasContent?.type === "asset";
|
|
4274
|
-
const list =
|
|
4367
|
+
const list = useMemo26(() => {
|
|
4275
4368
|
return {
|
|
4276
4369
|
...baseList,
|
|
4277
4370
|
height: showCurrentAsset ? `calc(100% - ${CURRENT_ASSET_HEIGHT}px)` : "100%"
|
|
@@ -4279,7 +4372,7 @@ var AssetSelector = ({ readOnlyStudio }) => {
|
|
|
4279
4372
|
}, [showCurrentAsset]);
|
|
4280
4373
|
const staticFiles = useStaticFiles();
|
|
4281
4374
|
const publicFolderExists = window.remotion_publicFolderExists;
|
|
4282
|
-
const assetTree =
|
|
4375
|
+
const assetTree = useMemo26(() => {
|
|
4283
4376
|
return buildAssetFolderStructure(staticFiles, null, assetFoldersExpanded);
|
|
4284
4377
|
}, [assetFoldersExpanded, staticFiles]);
|
|
4285
4378
|
const toggleFolder = useCallback19((folderName, parentName) => {
|
|
@@ -4330,41 +4423,41 @@ var AssetSelector = ({ readOnlyStudio }) => {
|
|
|
4330
4423
|
setDropLocation(null);
|
|
4331
4424
|
}
|
|
4332
4425
|
}, [dropLocation]);
|
|
4333
|
-
return /* @__PURE__ */
|
|
4334
|
-
style:
|
|
4426
|
+
return /* @__PURE__ */ jsxs12("div", {
|
|
4427
|
+
style: container10,
|
|
4335
4428
|
onDragOver: shouldAllowUpload ? onDragOver : undefined,
|
|
4336
4429
|
onDrop: shouldAllowUpload ? onDrop : undefined,
|
|
4337
4430
|
children: [
|
|
4338
|
-
showCurrentAsset ? /* @__PURE__ */
|
|
4339
|
-
staticFiles.length === 0 ? publicFolderExists ? /* @__PURE__ */
|
|
4431
|
+
showCurrentAsset ? /* @__PURE__ */ jsx38(CurrentAsset, {}) : null,
|
|
4432
|
+
staticFiles.length === 0 ? publicFolderExists ? /* @__PURE__ */ jsx38("div", {
|
|
4340
4433
|
style: emptyState,
|
|
4341
|
-
children: /* @__PURE__ */
|
|
4434
|
+
children: /* @__PURE__ */ jsxs12("div", {
|
|
4342
4435
|
style: label,
|
|
4343
4436
|
children: [
|
|
4344
4437
|
"To add assets, place a file in the",
|
|
4345
4438
|
" ",
|
|
4346
|
-
/* @__PURE__ */
|
|
4439
|
+
/* @__PURE__ */ jsx38("code", {
|
|
4347
4440
|
style: inlineCodeSnippet,
|
|
4348
4441
|
children: "public"
|
|
4349
4442
|
}),
|
|
4350
4443
|
" folder of your project or drag and drop a file here."
|
|
4351
4444
|
]
|
|
4352
4445
|
})
|
|
4353
|
-
}) : /* @__PURE__ */
|
|
4446
|
+
}) : /* @__PURE__ */ jsx38("div", {
|
|
4354
4447
|
style: emptyState,
|
|
4355
|
-
children: /* @__PURE__ */
|
|
4448
|
+
children: /* @__PURE__ */ jsxs12("div", {
|
|
4356
4449
|
style: label,
|
|
4357
4450
|
children: [
|
|
4358
4451
|
"To add assets, create a folder called",
|
|
4359
4452
|
" ",
|
|
4360
|
-
/* @__PURE__ */
|
|
4453
|
+
/* @__PURE__ */ jsx38("code", {
|
|
4361
4454
|
style: inlineCodeSnippet,
|
|
4362
4455
|
children: "public"
|
|
4363
4456
|
}),
|
|
4364
4457
|
" in the root of your project and place a file in it."
|
|
4365
4458
|
]
|
|
4366
4459
|
})
|
|
4367
|
-
}) : /* @__PURE__ */
|
|
4460
|
+
}) : /* @__PURE__ */ jsx38("div", {
|
|
4368
4461
|
className: "__remotion-vertical-scrollbar",
|
|
4369
4462
|
style: {
|
|
4370
4463
|
...list,
|
|
@@ -4372,7 +4465,7 @@ var AssetSelector = ({ readOnlyStudio }) => {
|
|
|
4372
4465
|
},
|
|
4373
4466
|
onDragEnter,
|
|
4374
4467
|
onDragLeave,
|
|
4375
|
-
children: /* @__PURE__ */
|
|
4468
|
+
children: /* @__PURE__ */ jsx38(AssetFolderTree, {
|
|
4376
4469
|
item: assetTree,
|
|
4377
4470
|
level: 0,
|
|
4378
4471
|
parentFolder: null,
|
|
@@ -4393,11 +4486,11 @@ import {
|
|
|
4393
4486
|
useCallback as useCallback20,
|
|
4394
4487
|
useContext as useContext14,
|
|
4395
4488
|
useImperativeHandle as useImperativeHandle4,
|
|
4396
|
-
useMemo as
|
|
4489
|
+
useMemo as useMemo27,
|
|
4397
4490
|
useState as useState19
|
|
4398
4491
|
} from "react";
|
|
4399
4492
|
import { Internals as Internals11 } from "remotion";
|
|
4400
|
-
import { jsx as
|
|
4493
|
+
import { jsx as jsx39 } from "react/jsx-runtime";
|
|
4401
4494
|
var CompSelectorRef = ({ children }) => {
|
|
4402
4495
|
const { compositions } = useContext14(Internals11.CompositionManager);
|
|
4403
4496
|
const [foldersExpanded, setFoldersExpanded] = useState19(loadExpandedFolders("compositions"));
|
|
@@ -4459,34 +4552,34 @@ var CompSelectorRef = ({ children }) => {
|
|
|
4459
4552
|
}
|
|
4460
4553
|
};
|
|
4461
4554
|
}, [compositions, selectComposition, toggleFolder]);
|
|
4462
|
-
const contextValue =
|
|
4555
|
+
const contextValue = useMemo27(() => {
|
|
4463
4556
|
return {
|
|
4464
4557
|
foldersExpanded,
|
|
4465
4558
|
setFoldersExpanded,
|
|
4466
4559
|
toggleFolder
|
|
4467
4560
|
};
|
|
4468
4561
|
}, [foldersExpanded, setFoldersExpanded, toggleFolder]);
|
|
4469
|
-
return /* @__PURE__ */
|
|
4562
|
+
return /* @__PURE__ */ jsx39(ExpandedFoldersContext.Provider, {
|
|
4470
4563
|
value: contextValue,
|
|
4471
4564
|
children
|
|
4472
4565
|
});
|
|
4473
4566
|
};
|
|
4474
4567
|
|
|
4475
4568
|
// src/components/Tabs/index.tsx
|
|
4476
|
-
import { useCallback as useCallback21, useMemo as
|
|
4477
|
-
import { jsx as
|
|
4569
|
+
import { useCallback as useCallback21, useMemo as useMemo28, useState as useState20 } from "react";
|
|
4570
|
+
import { jsx as jsx40 } from "react/jsx-runtime";
|
|
4478
4571
|
var tabsContainer = {
|
|
4479
4572
|
display: "flex",
|
|
4480
4573
|
flexDirection: "row"
|
|
4481
4574
|
};
|
|
4482
4575
|
var Tabs = ({ children, style }) => {
|
|
4483
|
-
const definiteStyle =
|
|
4576
|
+
const definiteStyle = useMemo28(() => {
|
|
4484
4577
|
return {
|
|
4485
4578
|
...tabsContainer,
|
|
4486
4579
|
...style
|
|
4487
4580
|
};
|
|
4488
4581
|
}, [style]);
|
|
4489
|
-
return /* @__PURE__ */
|
|
4582
|
+
return /* @__PURE__ */ jsx40("div", {
|
|
4490
4583
|
style: definiteStyle,
|
|
4491
4584
|
children
|
|
4492
4585
|
});
|
|
@@ -4515,7 +4608,7 @@ var Tab = ({ children, onClick, style, selected }) => {
|
|
|
4515
4608
|
const onPointerLeave = useCallback21(() => {
|
|
4516
4609
|
setHovered(false);
|
|
4517
4610
|
}, []);
|
|
4518
|
-
const definiteStyle =
|
|
4611
|
+
const definiteStyle = useMemo28(() => ({
|
|
4519
4612
|
...selectorButton,
|
|
4520
4613
|
backgroundColor: selected ? BACKGROUND : hovered ? CLEAR_HOVER : INPUT_BACKGROUND,
|
|
4521
4614
|
color: selected ? "white" : LIGHT_TEXT,
|
|
@@ -4523,7 +4616,7 @@ var Tab = ({ children, onClick, style, selected }) => {
|
|
|
4523
4616
|
boxShadow: selected ? "none" : undefined,
|
|
4524
4617
|
...style
|
|
4525
4618
|
}), [hovered, selected, style]);
|
|
4526
|
-
return /* @__PURE__ */
|
|
4619
|
+
return /* @__PURE__ */ jsx40("div", {
|
|
4527
4620
|
style: definiteStyle,
|
|
4528
4621
|
role: "button",
|
|
4529
4622
|
onClick,
|
|
@@ -4535,8 +4628,8 @@ var Tab = ({ children, onClick, style, selected }) => {
|
|
|
4535
4628
|
};
|
|
4536
4629
|
|
|
4537
4630
|
// src/components/ExplorerPanel.tsx
|
|
4538
|
-
import { jsx as
|
|
4539
|
-
var
|
|
4631
|
+
import { jsx as jsx41, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
4632
|
+
var container11 = {
|
|
4540
4633
|
height: "100%",
|
|
4541
4634
|
width: "100%",
|
|
4542
4635
|
maxWidth: "100%",
|
|
@@ -4581,21 +4674,21 @@ var ExplorerPanel = ({ readOnlyStudio }) => {
|
|
|
4581
4674
|
}
|
|
4582
4675
|
};
|
|
4583
4676
|
}, []);
|
|
4584
|
-
return /* @__PURE__ */
|
|
4585
|
-
children: /* @__PURE__ */
|
|
4586
|
-
style:
|
|
4677
|
+
return /* @__PURE__ */ jsx41(CompSelectorRef, {
|
|
4678
|
+
children: /* @__PURE__ */ jsxs13("div", {
|
|
4679
|
+
style: container11,
|
|
4587
4680
|
className: "css-reset",
|
|
4588
4681
|
children: [
|
|
4589
|
-
/* @__PURE__ */
|
|
4682
|
+
/* @__PURE__ */ jsx41("div", {
|
|
4590
4683
|
style: tabsContainer2,
|
|
4591
|
-
children: /* @__PURE__ */
|
|
4684
|
+
children: /* @__PURE__ */ jsxs13(Tabs, {
|
|
4592
4685
|
children: [
|
|
4593
|
-
/* @__PURE__ */
|
|
4686
|
+
/* @__PURE__ */ jsx41(Tab, {
|
|
4594
4687
|
selected: panel === "compositions",
|
|
4595
4688
|
onClick: onCompositionsSelected,
|
|
4596
4689
|
children: "Compositions"
|
|
4597
4690
|
}),
|
|
4598
|
-
/* @__PURE__ */
|
|
4691
|
+
/* @__PURE__ */ jsx41(Tab, {
|
|
4599
4692
|
selected: panel === "assets",
|
|
4600
4693
|
onClick: onAssetsSelected,
|
|
4601
4694
|
children: "Assets"
|
|
@@ -4603,7 +4696,7 @@ var ExplorerPanel = ({ readOnlyStudio }) => {
|
|
|
4603
4696
|
]
|
|
4604
4697
|
})
|
|
4605
4698
|
}),
|
|
4606
|
-
panel === "compositions" ? /* @__PURE__ */
|
|
4699
|
+
panel === "compositions" ? /* @__PURE__ */ jsx41(CompositionSelector, {}) : /* @__PURE__ */ jsx41(AssetSelector, {
|
|
4607
4700
|
readOnlyStudio
|
|
4608
4701
|
})
|
|
4609
4702
|
]
|
|
@@ -4769,7 +4862,7 @@ import {
|
|
|
4769
4862
|
import { AbsoluteFill } from "remotion";
|
|
4770
4863
|
|
|
4771
4864
|
// src/components/ModalContainer.tsx
|
|
4772
|
-
import { jsx as
|
|
4865
|
+
import { jsx as jsx42 } from "react/jsx-runtime";
|
|
4773
4866
|
var padding = 20;
|
|
4774
4867
|
var getMaxModalWidth = (width) => {
|
|
4775
4868
|
return `min(calc(100vw - ${padding * 2}px), calc(${width}px - ${padding * 2}px))`;
|
|
@@ -4793,16 +4886,16 @@ var panel = {
|
|
|
4793
4886
|
margin: "auto"
|
|
4794
4887
|
};
|
|
4795
4888
|
var ModalContainer = ({ children, onEscape, onOutsideClick, noZIndex }) => {
|
|
4796
|
-
return /* @__PURE__ */
|
|
4889
|
+
return /* @__PURE__ */ jsx42("div", {
|
|
4797
4890
|
className: "css-reset",
|
|
4798
4891
|
style: backgroundOverlay,
|
|
4799
4892
|
role: "dialog",
|
|
4800
4893
|
"aria-modal": "true",
|
|
4801
|
-
children: /* @__PURE__ */
|
|
4894
|
+
children: /* @__PURE__ */ jsx42(HigherZIndex, {
|
|
4802
4895
|
disabled: noZIndex,
|
|
4803
4896
|
onOutsideClick,
|
|
4804
4897
|
onEscape,
|
|
4805
|
-
children: /* @__PURE__ */
|
|
4898
|
+
children: /* @__PURE__ */ jsx42("div", {
|
|
4806
4899
|
style: panel,
|
|
4807
4900
|
children
|
|
4808
4901
|
})
|
|
@@ -4814,7 +4907,7 @@ var ModalContainer = ({ children, onEscape, onOutsideClick, noZIndex }) => {
|
|
|
4814
4907
|
import { useCallback as useCallback24, useContext as useContext16 } from "react";
|
|
4815
4908
|
|
|
4816
4909
|
// src/components/NewComposition/CancelButton.tsx
|
|
4817
|
-
import { jsx as
|
|
4910
|
+
import { jsx as jsx43 } from "react/jsx-runtime";
|
|
4818
4911
|
var style = {
|
|
4819
4912
|
appearance: "none",
|
|
4820
4913
|
border: "none",
|
|
@@ -4827,15 +4920,15 @@ var style = {
|
|
|
4827
4920
|
};
|
|
4828
4921
|
var CancelButton = ({ onPress, ...props }) => {
|
|
4829
4922
|
const { tabIndex } = useZIndex();
|
|
4830
|
-
return /* @__PURE__ */
|
|
4923
|
+
return /* @__PURE__ */ jsx43("button", {
|
|
4831
4924
|
tabIndex,
|
|
4832
4925
|
style,
|
|
4833
4926
|
type: "button",
|
|
4834
4927
|
onClick: onPress,
|
|
4835
|
-
children: /* @__PURE__ */
|
|
4928
|
+
children: /* @__PURE__ */ jsx43("svg", {
|
|
4836
4929
|
viewBox: "0 0 320 512",
|
|
4837
4930
|
...props,
|
|
4838
|
-
children: /* @__PURE__ */
|
|
4931
|
+
children: /* @__PURE__ */ jsx43("path", {
|
|
4839
4932
|
fill: "currentColor",
|
|
4840
4933
|
d: "M207.6 256l107.72-107.72c6.23-6.23 6.23-16.34 0-22.58l-25.03-25.03c-6.23-6.23-16.34-6.23-22.58 0L160 208.4 52.28 100.68c-6.23-6.23-16.34-6.23-22.58 0L4.68 125.7c-6.23 6.23-6.23 16.34 0 22.58L112.4 256 4.68 363.72c-6.23 6.23-6.23 16.34 0 22.58l25.03 25.03c6.23 6.23 16.34 6.23 22.58 0L160 303.6l107.72 107.72c6.23 6.23 16.34 6.23 22.58 0l25.03-25.03c6.23-6.23 6.23-16.34 0-22.58L207.6 256z"
|
|
4841
4934
|
})
|
|
@@ -4844,8 +4937,8 @@ var CancelButton = ({ onPress, ...props }) => {
|
|
|
4844
4937
|
};
|
|
4845
4938
|
|
|
4846
4939
|
// src/components/ModalHeader.tsx
|
|
4847
|
-
import { jsx as
|
|
4848
|
-
var
|
|
4940
|
+
import { jsx as jsx44, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
4941
|
+
var container12 = {
|
|
4849
4942
|
display: "flex",
|
|
4850
4943
|
flexDirection: "row",
|
|
4851
4944
|
alignItems: "center",
|
|
@@ -4866,15 +4959,15 @@ var ModalHeader = ({ title: title3, onClose }) => {
|
|
|
4866
4959
|
const onPress = useCallback24(() => {
|
|
4867
4960
|
setSelectedModal(null);
|
|
4868
4961
|
}, [setSelectedModal]);
|
|
4869
|
-
return /* @__PURE__ */
|
|
4870
|
-
style:
|
|
4962
|
+
return /* @__PURE__ */ jsxs14("div", {
|
|
4963
|
+
style: container12,
|
|
4871
4964
|
children: [
|
|
4872
|
-
/* @__PURE__ */
|
|
4965
|
+
/* @__PURE__ */ jsx44("div", {
|
|
4873
4966
|
style: titleStyle,
|
|
4874
4967
|
children: title3
|
|
4875
4968
|
}),
|
|
4876
|
-
/* @__PURE__ */
|
|
4877
|
-
/* @__PURE__ */
|
|
4969
|
+
/* @__PURE__ */ jsx44(Flex, {}),
|
|
4970
|
+
/* @__PURE__ */ jsx44(CancelButton, {
|
|
4878
4971
|
style: icon,
|
|
4879
4972
|
onPress: onClose ?? onPress
|
|
4880
4973
|
})
|
|
@@ -4883,8 +4976,8 @@ var ModalHeader = ({ title: title3, onClose }) => {
|
|
|
4883
4976
|
};
|
|
4884
4977
|
|
|
4885
4978
|
// src/components/AskAiModal.tsx
|
|
4886
|
-
import { jsx as
|
|
4887
|
-
var
|
|
4979
|
+
import { jsx as jsx45, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
4980
|
+
var container13 = {
|
|
4888
4981
|
height: "calc(100vh - 100px)",
|
|
4889
4982
|
width: "calc(100vw - 160px)",
|
|
4890
4983
|
maxWidth: 800,
|
|
@@ -4936,21 +5029,21 @@ var AskAiModal = () => {
|
|
|
4936
5029
|
if (state === "never-opened") {
|
|
4937
5030
|
return null;
|
|
4938
5031
|
}
|
|
4939
|
-
return /* @__PURE__ */
|
|
5032
|
+
return /* @__PURE__ */ jsx45(AbsoluteFill, {
|
|
4940
5033
|
style: { display: state === "visible" ? "block" : "none" },
|
|
4941
|
-
children: /* @__PURE__ */
|
|
5034
|
+
children: /* @__PURE__ */ jsxs15(ModalContainer, {
|
|
4942
5035
|
noZIndex: state === "hidden",
|
|
4943
5036
|
onOutsideClick: onQuit,
|
|
4944
5037
|
onEscape: onQuit,
|
|
4945
5038
|
children: [
|
|
4946
|
-
/* @__PURE__ */
|
|
5039
|
+
/* @__PURE__ */ jsx45(ModalHeader, {
|
|
4947
5040
|
title: "Ask AI",
|
|
4948
5041
|
onClose: onQuit
|
|
4949
5042
|
}),
|
|
4950
|
-
/* @__PURE__ */
|
|
5043
|
+
/* @__PURE__ */ jsx45("iframe", {
|
|
4951
5044
|
ref: iframe,
|
|
4952
5045
|
frameBorder: 0,
|
|
4953
|
-
style:
|
|
5046
|
+
style: container13,
|
|
4954
5047
|
src: "https://www.remotion.dev/ai-embed",
|
|
4955
5048
|
allow: "clipboard-read; clipboard-write"
|
|
4956
5049
|
})
|
|
@@ -4960,32 +5053,32 @@ var AskAiModal = () => {
|
|
|
4960
5053
|
};
|
|
4961
5054
|
|
|
4962
5055
|
// src/components/SizeSelector.tsx
|
|
4963
|
-
import { useContext as useContext20, useMemo as
|
|
5056
|
+
import { useContext as useContext20, useMemo as useMemo35 } from "react";
|
|
4964
5057
|
import { Internals as Internals14 } from "remotion";
|
|
4965
5058
|
|
|
4966
5059
|
// src/icons/Checkmark.tsx
|
|
4967
|
-
import { jsx as
|
|
5060
|
+
import { jsx as jsx46 } from "react/jsx-runtime";
|
|
4968
5061
|
var style2 = {
|
|
4969
5062
|
width: 14,
|
|
4970
5063
|
height: 14
|
|
4971
5064
|
};
|
|
4972
|
-
var Checkmark = () => /* @__PURE__ */
|
|
5065
|
+
var Checkmark = () => /* @__PURE__ */ jsx46("svg", {
|
|
4973
5066
|
focusable: "false",
|
|
4974
5067
|
role: "img",
|
|
4975
5068
|
viewBox: "0 0 512 512",
|
|
4976
5069
|
style: style2,
|
|
4977
|
-
children: /* @__PURE__ */
|
|
5070
|
+
children: /* @__PURE__ */ jsx46("path", {
|
|
4978
5071
|
fill: "currentColor",
|
|
4979
5072
|
d: "M435.848 83.466L172.804 346.51l-96.652-96.652c-4.686-4.686-12.284-4.686-16.971 0l-28.284 28.284c-4.686 4.686-4.686 12.284 0 16.971l133.421 133.421c4.686 4.686 12.284 4.686 16.971 0l299.813-299.813c4.686-4.686 4.686-12.284 0-16.971l-28.284-28.284c-4.686-4.686-12.284-4.686-16.97 0z"
|
|
4980
5073
|
})
|
|
4981
5074
|
});
|
|
4982
5075
|
|
|
4983
5076
|
// src/components/ControlButton.tsx
|
|
4984
|
-
import { useMemo as
|
|
4985
|
-
import { jsx as
|
|
5077
|
+
import { useMemo as useMemo29 } from "react";
|
|
5078
|
+
import { jsx as jsx47 } from "react/jsx-runtime";
|
|
4986
5079
|
var CONTROL_BUTTON_PADDING = 6;
|
|
4987
5080
|
var ControlButton = (props) => {
|
|
4988
|
-
const style3 =
|
|
5081
|
+
const style3 = useMemo29(() => {
|
|
4989
5082
|
return {
|
|
4990
5083
|
opacity: props.disabled ? 0.5 : 1,
|
|
4991
5084
|
display: "inline-flex",
|
|
@@ -4995,7 +5088,7 @@ var ControlButton = (props) => {
|
|
|
4995
5088
|
};
|
|
4996
5089
|
}, [props.disabled]);
|
|
4997
5090
|
const { tabIndex } = useZIndex();
|
|
4998
|
-
return /* @__PURE__ */
|
|
5091
|
+
return /* @__PURE__ */ jsx47("button", {
|
|
4999
5092
|
type: "button",
|
|
5000
5093
|
tabIndex,
|
|
5001
5094
|
...props,
|
|
@@ -5005,10 +5098,10 @@ var ControlButton = (props) => {
|
|
|
5005
5098
|
|
|
5006
5099
|
// src/components/NewComposition/ComboBox.tsx
|
|
5007
5100
|
import { PlayerInternals as PlayerInternals5 } from "@remotion/player";
|
|
5008
|
-
import { useCallback as useCallback26, useEffect as useEffect17, useMemo as
|
|
5101
|
+
import { useCallback as useCallback26, useEffect as useEffect17, useMemo as useMemo30, useRef as useRef14, useState as useState23 } from "react";
|
|
5009
5102
|
import ReactDOM4 from "react-dom";
|
|
5010
|
-
import { jsx as
|
|
5011
|
-
var
|
|
5103
|
+
import { jsx as jsx48, jsxs as jsxs16, Fragment as Fragment6 } from "react/jsx-runtime";
|
|
5104
|
+
var container14 = {
|
|
5012
5105
|
padding: "8px 10px",
|
|
5013
5106
|
display: "inline-block",
|
|
5014
5107
|
backgroundColor: INPUT_BACKGROUND,
|
|
@@ -5082,25 +5175,25 @@ var Combobox = ({ values, selectedId, style: customStyle, title: title3 }) => {
|
|
|
5082
5175
|
current.removeEventListener("click", onClick);
|
|
5083
5176
|
};
|
|
5084
5177
|
}, [refresh]);
|
|
5085
|
-
const spaceToBottom =
|
|
5178
|
+
const spaceToBottom = useMemo30(() => {
|
|
5086
5179
|
const margin2 = 10;
|
|
5087
5180
|
if (size && opened) {
|
|
5088
5181
|
return size.windowSize.height - (size.top + size.height) - margin2;
|
|
5089
5182
|
}
|
|
5090
5183
|
return 0;
|
|
5091
5184
|
}, [opened, size]);
|
|
5092
|
-
const spaceToTop =
|
|
5185
|
+
const spaceToTop = useMemo30(() => {
|
|
5093
5186
|
const margin2 = 10;
|
|
5094
5187
|
if (size && opened) {
|
|
5095
5188
|
return size.top - margin2;
|
|
5096
5189
|
}
|
|
5097
5190
|
return 0;
|
|
5098
5191
|
}, [opened, size]);
|
|
5099
|
-
const derivedMaxHeight =
|
|
5192
|
+
const derivedMaxHeight = useMemo30(() => {
|
|
5100
5193
|
return spaceToTop > spaceToBottom ? spaceToTop : spaceToBottom;
|
|
5101
5194
|
}, [spaceToBottom, spaceToTop]);
|
|
5102
5195
|
const isMobileLayout = useMobileLayout();
|
|
5103
|
-
const portalStyle =
|
|
5196
|
+
const portalStyle = useMemo30(() => {
|
|
5104
5197
|
if (!opened || !size) {
|
|
5105
5198
|
return null;
|
|
5106
5199
|
}
|
|
@@ -5127,9 +5220,9 @@ var Combobox = ({ values, selectedId, style: customStyle, title: title3 }) => {
|
|
|
5127
5220
|
};
|
|
5128
5221
|
}, [isMobileLayout, opened, size, spaceToBottom, spaceToTop]);
|
|
5129
5222
|
const selected = values.find((v) => v.id === selectedId);
|
|
5130
|
-
const style3 =
|
|
5223
|
+
const style3 = useMemo30(() => {
|
|
5131
5224
|
return {
|
|
5132
|
-
...
|
|
5225
|
+
...container14,
|
|
5133
5226
|
...customStyle ?? {},
|
|
5134
5227
|
userSelect: "none",
|
|
5135
5228
|
WebkitUserSelect: "none",
|
|
@@ -5140,9 +5233,9 @@ var Combobox = ({ values, selectedId, style: customStyle, title: title3 }) => {
|
|
|
5140
5233
|
borderColor: opened ? SELECTED_BACKGROUND : hovered ? INPUT_BORDER_COLOR_HOVERED : INPUT_BORDER_COLOR_UNHOVERED
|
|
5141
5234
|
};
|
|
5142
5235
|
}, [customStyle, hovered, opened]);
|
|
5143
|
-
return /* @__PURE__ */
|
|
5236
|
+
return /* @__PURE__ */ jsxs16(Fragment6, {
|
|
5144
5237
|
children: [
|
|
5145
|
-
/* @__PURE__ */
|
|
5238
|
+
/* @__PURE__ */ jsxs16("button", {
|
|
5146
5239
|
ref,
|
|
5147
5240
|
title: title3,
|
|
5148
5241
|
tabIndex,
|
|
@@ -5150,29 +5243,29 @@ var Combobox = ({ values, selectedId, style: customStyle, title: title3 }) => {
|
|
|
5150
5243
|
style: style3,
|
|
5151
5244
|
className: MENU_INITIATOR_CLASSNAME,
|
|
5152
5245
|
children: [
|
|
5153
|
-
selected ? /* @__PURE__ */
|
|
5246
|
+
selected ? /* @__PURE__ */ jsx48("div", {
|
|
5154
5247
|
title: typeof selected.label === "string" ? selected.label : undefined,
|
|
5155
5248
|
style: label2,
|
|
5156
5249
|
children: selected?.label
|
|
5157
5250
|
}) : null,
|
|
5158
|
-
/* @__PURE__ */
|
|
5251
|
+
/* @__PURE__ */ jsx48(Spacing, {
|
|
5159
5252
|
x: 1
|
|
5160
5253
|
}),
|
|
5161
5254
|
" ",
|
|
5162
|
-
/* @__PURE__ */
|
|
5255
|
+
/* @__PURE__ */ jsx48(CaretDown, {})
|
|
5163
5256
|
]
|
|
5164
5257
|
}),
|
|
5165
|
-
portalStyle ? ReactDOM4.createPortal(/* @__PURE__ */
|
|
5258
|
+
portalStyle ? ReactDOM4.createPortal(/* @__PURE__ */ jsx48("div", {
|
|
5166
5259
|
style: fullScreenOverlay,
|
|
5167
|
-
children: /* @__PURE__ */
|
|
5260
|
+
children: /* @__PURE__ */ jsx48("div", {
|
|
5168
5261
|
style: outerPortal,
|
|
5169
5262
|
className: "css-reset",
|
|
5170
|
-
children: /* @__PURE__ */
|
|
5263
|
+
children: /* @__PURE__ */ jsx48(HigherZIndex, {
|
|
5171
5264
|
onOutsideClick: onHide,
|
|
5172
5265
|
onEscape: onHide,
|
|
5173
|
-
children: /* @__PURE__ */
|
|
5266
|
+
children: /* @__PURE__ */ jsx48("div", {
|
|
5174
5267
|
style: portalStyle,
|
|
5175
|
-
children: /* @__PURE__ */
|
|
5268
|
+
children: /* @__PURE__ */ jsx48(MenuContent, {
|
|
5176
5269
|
onNextMenu: noop,
|
|
5177
5270
|
onPreviousMenu: noop,
|
|
5178
5271
|
values,
|
|
@@ -5192,7 +5285,7 @@ var Combobox = ({ values, selectedId, style: customStyle, title: title3 }) => {
|
|
|
5192
5285
|
|
|
5193
5286
|
// src/components/Preview.tsx
|
|
5194
5287
|
import { PlayerInternals as PlayerInternals6 } from "@remotion/player";
|
|
5195
|
-
import { useContext as useContext19, useEffect as useEffect23, useMemo as
|
|
5288
|
+
import { useContext as useContext19, useEffect as useEffect23, useMemo as useMemo34, useRef as useRef17 } from "react";
|
|
5196
5289
|
import { Internals as Internals13 } from "remotion";
|
|
5197
5290
|
|
|
5198
5291
|
// src/helpers/checkerboard-background.ts
|
|
@@ -5324,7 +5417,7 @@ import {
|
|
|
5324
5417
|
forwardRef as forwardRef2,
|
|
5325
5418
|
useEffect as useEffect19,
|
|
5326
5419
|
useImperativeHandle as useImperativeHandle8,
|
|
5327
|
-
useMemo as
|
|
5420
|
+
useMemo as useMemo32,
|
|
5328
5421
|
useRef as useRef16,
|
|
5329
5422
|
useState as useState25
|
|
5330
5423
|
} from "react";
|
|
@@ -5334,17 +5427,17 @@ import {
|
|
|
5334
5427
|
forwardRef,
|
|
5335
5428
|
useEffect as useEffect18,
|
|
5336
5429
|
useImperativeHandle as useImperativeHandle7,
|
|
5337
|
-
useMemo as
|
|
5430
|
+
useMemo as useMemo31,
|
|
5338
5431
|
useRef as useRef15,
|
|
5339
5432
|
useState as useState24
|
|
5340
5433
|
} from "react";
|
|
5341
|
-
import { jsx as
|
|
5434
|
+
import { jsx as jsx49 } from "react/jsx-runtime";
|
|
5342
5435
|
var INPUT_HORIZONTAL_PADDING = 8;
|
|
5343
5436
|
var aligner = {
|
|
5344
5437
|
marginRight: -INPUT_HORIZONTAL_PADDING
|
|
5345
5438
|
};
|
|
5346
5439
|
var RightAlignInput = ({ children }) => {
|
|
5347
|
-
return /* @__PURE__ */
|
|
5440
|
+
return /* @__PURE__ */ jsx49("div", {
|
|
5348
5441
|
style: aligner,
|
|
5349
5442
|
children
|
|
5350
5443
|
});
|
|
@@ -5366,7 +5459,7 @@ var RemInputForwardRef = ({ status, rightAlign, ...props }, ref) => {
|
|
|
5366
5459
|
const [isHovered, setIsHovered] = useState24(false);
|
|
5367
5460
|
const inputRef = useRef15(null);
|
|
5368
5461
|
const { tabIndex } = useZIndex();
|
|
5369
|
-
const style3 =
|
|
5462
|
+
const style3 = useMemo31(() => {
|
|
5370
5463
|
return {
|
|
5371
5464
|
backgroundColor: INPUT_BACKGROUND,
|
|
5372
5465
|
...inputBaseStyle,
|
|
@@ -5399,7 +5492,7 @@ var RemInputForwardRef = ({ status, rightAlign, ...props }, ref) => {
|
|
|
5399
5492
|
current.removeEventListener("mouseleave", onMouseLeave);
|
|
5400
5493
|
};
|
|
5401
5494
|
}, [inputRef]);
|
|
5402
|
-
return /* @__PURE__ */
|
|
5495
|
+
return /* @__PURE__ */ jsx49("input", {
|
|
5403
5496
|
ref: inputRef,
|
|
5404
5497
|
tabIndex,
|
|
5405
5498
|
...props,
|
|
@@ -5409,7 +5502,7 @@ var RemInputForwardRef = ({ status, rightAlign, ...props }, ref) => {
|
|
|
5409
5502
|
var RemotionInput = forwardRef(RemInputForwardRef);
|
|
5410
5503
|
|
|
5411
5504
|
// src/components/NewComposition/RemTextarea.tsx
|
|
5412
|
-
import { jsx as
|
|
5505
|
+
import { jsx as jsx50 } from "react/jsx-runtime";
|
|
5413
5506
|
var inputBaseStyle2 = {
|
|
5414
5507
|
padding: `${INPUT_HORIZONTAL_PADDING}px 10px`,
|
|
5415
5508
|
color: "white",
|
|
@@ -5427,7 +5520,7 @@ var RemTextareaFRFunction = ({ status, ...props }, ref) => {
|
|
|
5427
5520
|
useImperativeHandle8(ref, () => {
|
|
5428
5521
|
return inputRef.current;
|
|
5429
5522
|
}, []);
|
|
5430
|
-
const style3 =
|
|
5523
|
+
const style3 = useMemo32(() => {
|
|
5431
5524
|
return {
|
|
5432
5525
|
backgroundColor: INPUT_BACKGROUND,
|
|
5433
5526
|
...inputBaseStyle2,
|
|
@@ -5490,7 +5583,7 @@ var RemTextareaFRFunction = ({ status, ...props }, ref) => {
|
|
|
5490
5583
|
current.removeEventListener("keydown", onKeyDown);
|
|
5491
5584
|
};
|
|
5492
5585
|
}, [inputRef]);
|
|
5493
|
-
return /* @__PURE__ */
|
|
5586
|
+
return /* @__PURE__ */ jsx50("textarea", {
|
|
5494
5587
|
ref: inputRef,
|
|
5495
5588
|
tabIndex,
|
|
5496
5589
|
...props,
|
|
@@ -5501,7 +5594,7 @@ var RemTextareaFRFunction = ({ status, ...props }, ref) => {
|
|
|
5501
5594
|
var RemTextarea = forwardRef2(RemTextareaFRFunction);
|
|
5502
5595
|
|
|
5503
5596
|
// src/components/JSONViewer.tsx
|
|
5504
|
-
import { jsx as
|
|
5597
|
+
import { jsx as jsx51 } from "react/jsx-runtime";
|
|
5505
5598
|
var jsonStyle = {
|
|
5506
5599
|
marginTop: 14,
|
|
5507
5600
|
marginBottom: 14,
|
|
@@ -5515,7 +5608,7 @@ var JSONViewer = ({ src }) => {
|
|
|
5515
5608
|
setJson(JSON.stringify(jsonRes, null, 2));
|
|
5516
5609
|
});
|
|
5517
5610
|
}, [src]);
|
|
5518
|
-
return /* @__PURE__ */
|
|
5611
|
+
return /* @__PURE__ */ jsx51(RemTextarea, {
|
|
5519
5612
|
value: json ?? undefined,
|
|
5520
5613
|
status: "ok",
|
|
5521
5614
|
onChange: () => {
|
|
@@ -5527,7 +5620,7 @@ var JSONViewer = ({ src }) => {
|
|
|
5527
5620
|
|
|
5528
5621
|
// src/components/TextViewer.tsx
|
|
5529
5622
|
import { useEffect as useEffect21, useState as useState27 } from "react";
|
|
5530
|
-
import { jsxs as
|
|
5623
|
+
import { jsxs as jsxs17 } from "react/jsx-runtime";
|
|
5531
5624
|
var textStyle = {
|
|
5532
5625
|
margin: 14,
|
|
5533
5626
|
fontFamily: "monospace",
|
|
@@ -5546,7 +5639,7 @@ var TextViewer = ({ src }) => {
|
|
|
5546
5639
|
setTxt(text);
|
|
5547
5640
|
});
|
|
5548
5641
|
}, [src]);
|
|
5549
|
-
return /* @__PURE__ */
|
|
5642
|
+
return /* @__PURE__ */ jsxs17("div", {
|
|
5550
5643
|
style: textStyle,
|
|
5551
5644
|
children: [
|
|
5552
5645
|
txt,
|
|
@@ -5556,7 +5649,7 @@ var TextViewer = ({ src }) => {
|
|
|
5556
5649
|
};
|
|
5557
5650
|
|
|
5558
5651
|
// src/components/FilePreview.tsx
|
|
5559
|
-
import { jsx as
|
|
5652
|
+
import { jsx as jsx52, jsxs as jsxs18, Fragment as Fragment7 } from "react/jsx-runtime";
|
|
5560
5653
|
var msgStyle = {
|
|
5561
5654
|
fontSize: 13,
|
|
5562
5655
|
color: "white",
|
|
@@ -5572,42 +5665,42 @@ var FilePreview = ({ fileType, src, currentAsset, assetMetadata }) => {
|
|
|
5572
5665
|
throw new Error('expected to have assetMetadata, got "not-found"');
|
|
5573
5666
|
}
|
|
5574
5667
|
if (fileType === "audio") {
|
|
5575
|
-
return /* @__PURE__ */
|
|
5668
|
+
return /* @__PURE__ */ jsx52("audio", {
|
|
5576
5669
|
src,
|
|
5577
5670
|
controls: true
|
|
5578
5671
|
});
|
|
5579
5672
|
}
|
|
5580
5673
|
if (fileType === "video") {
|
|
5581
|
-
return /* @__PURE__ */
|
|
5674
|
+
return /* @__PURE__ */ jsx52("video", {
|
|
5582
5675
|
src,
|
|
5583
5676
|
controls: true
|
|
5584
5677
|
});
|
|
5585
5678
|
}
|
|
5586
5679
|
if (fileType === "image") {
|
|
5587
|
-
return /* @__PURE__ */
|
|
5680
|
+
return /* @__PURE__ */ jsx52("img", {
|
|
5588
5681
|
src
|
|
5589
5682
|
});
|
|
5590
5683
|
}
|
|
5591
5684
|
if (fileType === "json") {
|
|
5592
|
-
return /* @__PURE__ */
|
|
5685
|
+
return /* @__PURE__ */ jsx52(JSONViewer, {
|
|
5593
5686
|
src
|
|
5594
5687
|
});
|
|
5595
5688
|
}
|
|
5596
5689
|
if (fileType === "txt") {
|
|
5597
|
-
return /* @__PURE__ */
|
|
5690
|
+
return /* @__PURE__ */ jsx52(TextViewer, {
|
|
5598
5691
|
src
|
|
5599
5692
|
});
|
|
5600
5693
|
}
|
|
5601
|
-
return /* @__PURE__ */
|
|
5694
|
+
return /* @__PURE__ */ jsxs18(Fragment7, {
|
|
5602
5695
|
children: [
|
|
5603
|
-
/* @__PURE__ */
|
|
5696
|
+
/* @__PURE__ */ jsx52("div", {
|
|
5604
5697
|
style: msgStyle,
|
|
5605
5698
|
children: currentAsset
|
|
5606
5699
|
}),
|
|
5607
|
-
/* @__PURE__ */
|
|
5700
|
+
/* @__PURE__ */ jsx52(Spacing, {
|
|
5608
5701
|
y: 0.5
|
|
5609
5702
|
}),
|
|
5610
|
-
/* @__PURE__ */
|
|
5703
|
+
/* @__PURE__ */ jsxs18("div", {
|
|
5611
5704
|
style: msgStyle,
|
|
5612
5705
|
children: [
|
|
5613
5706
|
"Size: ",
|
|
@@ -5620,7 +5713,7 @@ var FilePreview = ({ fileType, src, currentAsset, assetMetadata }) => {
|
|
|
5620
5713
|
};
|
|
5621
5714
|
|
|
5622
5715
|
// src/components/RenderPreview.tsx
|
|
5623
|
-
import { jsx as
|
|
5716
|
+
import { jsx as jsx53, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
5624
5717
|
var msgStyle2 = {
|
|
5625
5718
|
fontSize: 13,
|
|
5626
5719
|
color: "white",
|
|
@@ -5669,13 +5762,13 @@ var RenderPreview = ({ path, assetMetadata, getBlob }) => {
|
|
|
5669
5762
|
}, [getBlob]);
|
|
5670
5763
|
const src = blobUrl ?? remotion_outputsBase + path;
|
|
5671
5764
|
if (connectionStatus === "disconnected") {
|
|
5672
|
-
return /* @__PURE__ */
|
|
5765
|
+
return /* @__PURE__ */ jsx53("div", {
|
|
5673
5766
|
style: errMsgStyle,
|
|
5674
5767
|
children: "Studio server disconnected"
|
|
5675
5768
|
});
|
|
5676
5769
|
}
|
|
5677
5770
|
if (getBlob && blobError) {
|
|
5678
|
-
return /* @__PURE__ */
|
|
5771
|
+
return /* @__PURE__ */ jsxs19("div", {
|
|
5679
5772
|
style: errMsgStyle,
|
|
5680
5773
|
children: [
|
|
5681
5774
|
"Failed to load preview: ",
|
|
@@ -5684,12 +5777,12 @@ var RenderPreview = ({ path, assetMetadata, getBlob }) => {
|
|
|
5684
5777
|
});
|
|
5685
5778
|
}
|
|
5686
5779
|
if (getBlob && !blobUrl) {
|
|
5687
|
-
return /* @__PURE__ */
|
|
5780
|
+
return /* @__PURE__ */ jsx53("div", {
|
|
5688
5781
|
style: msgStyle2,
|
|
5689
5782
|
children: "Loading preview..."
|
|
5690
5783
|
});
|
|
5691
5784
|
}
|
|
5692
|
-
return /* @__PURE__ */
|
|
5785
|
+
return /* @__PURE__ */ jsx53(FilePreview, {
|
|
5693
5786
|
assetMetadata,
|
|
5694
5787
|
currentAsset: path,
|
|
5695
5788
|
fileType,
|
|
@@ -5698,23 +5791,23 @@ var RenderPreview = ({ path, assetMetadata, getBlob }) => {
|
|
|
5698
5791
|
};
|
|
5699
5792
|
|
|
5700
5793
|
// src/components/Spinner.tsx
|
|
5701
|
-
import { useMemo as
|
|
5702
|
-
import { jsx as
|
|
5794
|
+
import { useMemo as useMemo33 } from "react";
|
|
5795
|
+
import { jsx as jsx54, jsxs as jsxs20, Fragment as Fragment8 } from "react/jsx-runtime";
|
|
5703
5796
|
var viewBox = 100;
|
|
5704
5797
|
var lines = 8;
|
|
5705
5798
|
var className = "__remotion_spinner_line";
|
|
5706
5799
|
var remotionSpinnerAnimation = "__remotion_spinner_animation";
|
|
5707
5800
|
var translated = "M 44 0 L 50 0 a 6 6 0 0 1 6 6 L 56 26 a 6 6 0 0 1 -6 6 L 50 32 a 6 6 0 0 1 -6 -6 L 44 6 a 6 6 0 0 1 6 -6 Z";
|
|
5708
5801
|
var Spinner = ({ size, duration }) => {
|
|
5709
|
-
const style3 =
|
|
5802
|
+
const style3 = useMemo33(() => {
|
|
5710
5803
|
return {
|
|
5711
5804
|
width: size,
|
|
5712
5805
|
height: size
|
|
5713
5806
|
};
|
|
5714
5807
|
}, [size]);
|
|
5715
|
-
return /* @__PURE__ */
|
|
5808
|
+
return /* @__PURE__ */ jsxs20(Fragment8, {
|
|
5716
5809
|
children: [
|
|
5717
|
-
/* @__PURE__ */
|
|
5810
|
+
/* @__PURE__ */ jsx54("style", {
|
|
5718
5811
|
type: "text/css",
|
|
5719
5812
|
children: `
|
|
5720
5813
|
@keyframes ${remotionSpinnerAnimation} {
|
|
@@ -5731,11 +5824,11 @@ var Spinner = ({ size, duration }) => {
|
|
|
5731
5824
|
}
|
|
5732
5825
|
`
|
|
5733
5826
|
}),
|
|
5734
|
-
/* @__PURE__ */
|
|
5827
|
+
/* @__PURE__ */ jsx54("svg", {
|
|
5735
5828
|
style: style3,
|
|
5736
5829
|
viewBox: `0 0 ${viewBox} ${viewBox}`,
|
|
5737
5830
|
children: new Array(lines).fill(true).map((_, index) => {
|
|
5738
|
-
return /* @__PURE__ */
|
|
5831
|
+
return /* @__PURE__ */ jsx54("path", {
|
|
5739
5832
|
className,
|
|
5740
5833
|
style: {
|
|
5741
5834
|
rotate: `${index * Math.PI * 2 / lines}rad`,
|
|
@@ -5754,7 +5847,7 @@ var Spinner = ({ size, duration }) => {
|
|
|
5754
5847
|
// src/components/StaticFilePreview.tsx
|
|
5755
5848
|
import { useContext as useContext18 } from "react";
|
|
5756
5849
|
import { staticFile as staticFile3 } from "remotion";
|
|
5757
|
-
import { jsx as
|
|
5850
|
+
import { jsx as jsx55, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
5758
5851
|
var msgStyle3 = {
|
|
5759
5852
|
fontSize: 13,
|
|
5760
5853
|
color: "white",
|
|
@@ -5773,13 +5866,13 @@ var StaticFilePreview = ({ currentAsset, assetMetadata }) => {
|
|
|
5773
5866
|
const connectionStatus = useContext18(StudioServerConnectionCtx).previewServerState.type;
|
|
5774
5867
|
const exists = staticFiles.find((file) => file.name === currentAsset);
|
|
5775
5868
|
if (connectionStatus === "disconnected") {
|
|
5776
|
-
return /* @__PURE__ */
|
|
5869
|
+
return /* @__PURE__ */ jsx55("div", {
|
|
5777
5870
|
style: errMsgStyle2,
|
|
5778
5871
|
children: "Studio server disconnected"
|
|
5779
5872
|
});
|
|
5780
5873
|
}
|
|
5781
5874
|
if (!exists) {
|
|
5782
|
-
return /* @__PURE__ */
|
|
5875
|
+
return /* @__PURE__ */ jsxs21("div", {
|
|
5783
5876
|
style: errMsgStyle2,
|
|
5784
5877
|
children: [
|
|
5785
5878
|
currentAsset,
|
|
@@ -5790,7 +5883,7 @@ var StaticFilePreview = ({ currentAsset, assetMetadata }) => {
|
|
|
5790
5883
|
if (!currentAsset) {
|
|
5791
5884
|
return null;
|
|
5792
5885
|
}
|
|
5793
|
-
return /* @__PURE__ */
|
|
5886
|
+
return /* @__PURE__ */ jsx55(FilePreview, {
|
|
5794
5887
|
currentAsset,
|
|
5795
5888
|
fileType,
|
|
5796
5889
|
src: `${staticFileSrc}?date=${assetMetadata && assetMetadata.type === "found" ? assetMetadata.fetchedAt : 0}`,
|
|
@@ -5799,7 +5892,7 @@ var StaticFilePreview = ({ currentAsset, assetMetadata }) => {
|
|
|
5799
5892
|
};
|
|
5800
5893
|
|
|
5801
5894
|
// src/components/Preview.tsx
|
|
5802
|
-
import { jsx as
|
|
5895
|
+
import { jsx as jsx56 } from "react/jsx-runtime";
|
|
5803
5896
|
var centeredContainer = {
|
|
5804
5897
|
display: "flex",
|
|
5805
5898
|
flex: 1,
|
|
@@ -5857,24 +5950,24 @@ var containerStyle = (options) => {
|
|
|
5857
5950
|
};
|
|
5858
5951
|
var VideoPreview = ({ canvasSize, contentDimensions, canvasContent, assetMetadata }) => {
|
|
5859
5952
|
if (assetMetadata && assetMetadata.type === "not-found") {
|
|
5860
|
-
return /* @__PURE__ */
|
|
5953
|
+
return /* @__PURE__ */ jsx56("div", {
|
|
5861
5954
|
style: centeredContainer,
|
|
5862
|
-
children: /* @__PURE__ */
|
|
5955
|
+
children: /* @__PURE__ */ jsx56("div", {
|
|
5863
5956
|
style: label3,
|
|
5864
5957
|
children: "File does not exist"
|
|
5865
5958
|
})
|
|
5866
5959
|
});
|
|
5867
5960
|
}
|
|
5868
5961
|
if (contentDimensions === null) {
|
|
5869
|
-
return /* @__PURE__ */
|
|
5962
|
+
return /* @__PURE__ */ jsx56("div", {
|
|
5870
5963
|
style: centeredContainer,
|
|
5871
|
-
children: /* @__PURE__ */
|
|
5964
|
+
children: /* @__PURE__ */ jsx56(Spinner, {
|
|
5872
5965
|
duration: 0.5,
|
|
5873
5966
|
size: 24
|
|
5874
5967
|
})
|
|
5875
5968
|
});
|
|
5876
5969
|
}
|
|
5877
|
-
return /* @__PURE__ */
|
|
5970
|
+
return /* @__PURE__ */ jsx56(CompWhenItHasDimensions, {
|
|
5878
5971
|
contentDimensions,
|
|
5879
5972
|
canvasSize,
|
|
5880
5973
|
canvasContent,
|
|
@@ -5883,7 +5976,7 @@ var VideoPreview = ({ canvasSize, contentDimensions, canvasContent, assetMetadat
|
|
|
5883
5976
|
};
|
|
5884
5977
|
var CompWhenItHasDimensions = ({ contentDimensions, canvasSize, canvasContent, assetMetadata }) => {
|
|
5885
5978
|
const { size: previewSize } = useContext19(Internals13.PreviewSizeContext);
|
|
5886
|
-
const { centerX, centerY, yCorrection, xCorrection, scale } =
|
|
5979
|
+
const { centerX, centerY, yCorrection, xCorrection, scale } = useMemo34(() => {
|
|
5887
5980
|
if (contentDimensions === "none") {
|
|
5888
5981
|
return {
|
|
5889
5982
|
centerX: 0,
|
|
@@ -5900,7 +5993,7 @@ var CompWhenItHasDimensions = ({ contentDimensions, canvasSize, canvasContent, a
|
|
|
5900
5993
|
previewSize: previewSize.size
|
|
5901
5994
|
});
|
|
5902
5995
|
}, [canvasSize, contentDimensions, previewSize.size]);
|
|
5903
|
-
const outer =
|
|
5996
|
+
const outer = useMemo34(() => {
|
|
5904
5997
|
return {
|
|
5905
5998
|
width: contentDimensions === "none" ? "100%" : contentDimensions.width * scale,
|
|
5906
5999
|
height: contentDimensions === "none" ? "100%" : contentDimensions.height * scale,
|
|
@@ -5923,36 +6016,36 @@ var CompWhenItHasDimensions = ({ contentDimensions, canvasSize, canvasContent, a
|
|
|
5923
6016
|
canvasContent
|
|
5924
6017
|
]);
|
|
5925
6018
|
if (canvasContent.type === "asset") {
|
|
5926
|
-
return /* @__PURE__ */
|
|
6019
|
+
return /* @__PURE__ */ jsx56("div", {
|
|
5927
6020
|
style: outer,
|
|
5928
|
-
children: /* @__PURE__ */
|
|
6021
|
+
children: /* @__PURE__ */ jsx56(StaticFilePreview, {
|
|
5929
6022
|
assetMetadata,
|
|
5930
6023
|
currentAsset: canvasContent.asset
|
|
5931
6024
|
})
|
|
5932
6025
|
});
|
|
5933
6026
|
}
|
|
5934
6027
|
if (canvasContent.type === "output") {
|
|
5935
|
-
return /* @__PURE__ */
|
|
6028
|
+
return /* @__PURE__ */ jsx56("div", {
|
|
5936
6029
|
style: outer,
|
|
5937
|
-
children: /* @__PURE__ */
|
|
6030
|
+
children: /* @__PURE__ */ jsx56(RenderPreview, {
|
|
5938
6031
|
path: canvasContent.path,
|
|
5939
6032
|
assetMetadata
|
|
5940
6033
|
})
|
|
5941
6034
|
});
|
|
5942
6035
|
}
|
|
5943
6036
|
if (canvasContent.type === "output-blob") {
|
|
5944
|
-
return /* @__PURE__ */
|
|
6037
|
+
return /* @__PURE__ */ jsx56("div", {
|
|
5945
6038
|
style: outer,
|
|
5946
|
-
children: /* @__PURE__ */
|
|
6039
|
+
children: /* @__PURE__ */ jsx56(RenderPreview, {
|
|
5947
6040
|
path: canvasContent.displayName,
|
|
5948
6041
|
assetMetadata,
|
|
5949
6042
|
getBlob: canvasContent.getBlob
|
|
5950
6043
|
})
|
|
5951
6044
|
});
|
|
5952
6045
|
}
|
|
5953
|
-
return /* @__PURE__ */
|
|
6046
|
+
return /* @__PURE__ */ jsx56("div", {
|
|
5954
6047
|
style: outer,
|
|
5955
|
-
children: /* @__PURE__ */
|
|
6048
|
+
children: /* @__PURE__ */ jsx56(PortalContainer, {
|
|
5956
6049
|
contentDimensions,
|
|
5957
6050
|
scale,
|
|
5958
6051
|
xCorrection,
|
|
@@ -5962,7 +6055,7 @@ var CompWhenItHasDimensions = ({ contentDimensions, canvasSize, canvasContent, a
|
|
|
5962
6055
|
};
|
|
5963
6056
|
var PortalContainer = ({ scale, xCorrection, yCorrection, contentDimensions }) => {
|
|
5964
6057
|
const { checkerboard } = useContext19(CheckerboardContext);
|
|
5965
|
-
const style3 =
|
|
6058
|
+
const style3 = useMemo34(() => {
|
|
5966
6059
|
return containerStyle({
|
|
5967
6060
|
checkerboard,
|
|
5968
6061
|
scale,
|
|
@@ -5987,14 +6080,14 @@ var PortalContainer = ({ scale, xCorrection, yCorrection, contentDimensions }) =
|
|
|
5987
6080
|
};
|
|
5988
6081
|
}, []);
|
|
5989
6082
|
const portalContainer = useRef17(null);
|
|
5990
|
-
return /* @__PURE__ */
|
|
6083
|
+
return /* @__PURE__ */ jsx56("div", {
|
|
5991
6084
|
ref: portalContainer,
|
|
5992
6085
|
style: style3
|
|
5993
6086
|
});
|
|
5994
6087
|
};
|
|
5995
6088
|
|
|
5996
6089
|
// src/components/SizeSelector.tsx
|
|
5997
|
-
import { jsx as
|
|
6090
|
+
import { jsx as jsx57 } from "react/jsx-runtime";
|
|
5998
6091
|
var commonPreviewSizes = [
|
|
5999
6092
|
{
|
|
6000
6093
|
size: "auto",
|
|
@@ -6055,12 +6148,12 @@ var zoomableFileTypes = ["video", "image"];
|
|
|
6055
6148
|
var SizeSelector = () => {
|
|
6056
6149
|
const { size, setSize } = useContext20(Internals14.PreviewSizeContext);
|
|
6057
6150
|
const { canvasContent } = useContext20(Internals14.CompositionManager);
|
|
6058
|
-
const style3 =
|
|
6151
|
+
const style3 = useMemo35(() => {
|
|
6059
6152
|
return {
|
|
6060
6153
|
padding: CONTROL_BUTTON_PADDING
|
|
6061
6154
|
};
|
|
6062
6155
|
}, []);
|
|
6063
|
-
const zoomable =
|
|
6156
|
+
const zoomable = useMemo35(() => {
|
|
6064
6157
|
if (!canvasContent) {
|
|
6065
6158
|
return null;
|
|
6066
6159
|
}
|
|
@@ -6075,7 +6168,7 @@ var SizeSelector = () => {
|
|
|
6075
6168
|
}
|
|
6076
6169
|
return false;
|
|
6077
6170
|
}, [canvasContent]);
|
|
6078
|
-
const items =
|
|
6171
|
+
const items = useMemo35(() => {
|
|
6079
6172
|
return getUniqueSizes(size).map((newSize) => {
|
|
6080
6173
|
return {
|
|
6081
6174
|
id: String(newSize.size),
|
|
@@ -6088,7 +6181,7 @@ var SizeSelector = () => {
|
|
|
6088
6181
|
type: "item",
|
|
6089
6182
|
value: newSize.size,
|
|
6090
6183
|
keyHint: newSize.size === "auto" ? "0" : null,
|
|
6091
|
-
leftItem: String(size.size) === String(newSize.size) ? /* @__PURE__ */
|
|
6184
|
+
leftItem: String(size.size) === String(newSize.size) ? /* @__PURE__ */ jsx57(Checkmark, {}) : null,
|
|
6092
6185
|
subMenu: null,
|
|
6093
6186
|
quickSwitcherLabel: null
|
|
6094
6187
|
};
|
|
@@ -6097,10 +6190,10 @@ var SizeSelector = () => {
|
|
|
6097
6190
|
if (!zoomable) {
|
|
6098
6191
|
return null;
|
|
6099
6192
|
}
|
|
6100
|
-
return /* @__PURE__ */
|
|
6193
|
+
return /* @__PURE__ */ jsx57("div", {
|
|
6101
6194
|
style: style3,
|
|
6102
6195
|
"aria-label": accessibilityLabel,
|
|
6103
|
-
children: /* @__PURE__ */
|
|
6196
|
+
children: /* @__PURE__ */ jsx57(Combobox, {
|
|
6104
6197
|
title: accessibilityLabel,
|
|
6105
6198
|
style: comboStyle,
|
|
6106
6199
|
selectedId: String(size.size),
|
|
@@ -6121,13 +6214,13 @@ import { Internals as Internals16 } from "remotion";
|
|
|
6121
6214
|
import { NoReactInternals as NoReactInternals4 } from "remotion/no-react";
|
|
6122
6215
|
|
|
6123
6216
|
// src/icons/timelineInOutPointer.tsx
|
|
6124
|
-
import { jsx as
|
|
6217
|
+
import { jsx as jsx58 } from "react/jsx-runtime";
|
|
6125
6218
|
var TimelineInPointer = (props) => {
|
|
6126
|
-
return /* @__PURE__ */
|
|
6219
|
+
return /* @__PURE__ */ jsx58("svg", {
|
|
6127
6220
|
viewBox: "0 0 256 256",
|
|
6128
6221
|
fill: "none",
|
|
6129
6222
|
...props,
|
|
6130
|
-
children: /* @__PURE__ */
|
|
6223
|
+
children: /* @__PURE__ */ jsx58("path", {
|
|
6131
6224
|
d: "M158 25H99V230.5H158",
|
|
6132
6225
|
stroke: props.color,
|
|
6133
6226
|
strokeWidth: "42",
|
|
@@ -6137,11 +6230,11 @@ var TimelineInPointer = (props) => {
|
|
|
6137
6230
|
});
|
|
6138
6231
|
};
|
|
6139
6232
|
var TimelineOutPointer = (props) => {
|
|
6140
|
-
return /* @__PURE__ */
|
|
6233
|
+
return /* @__PURE__ */ jsx58("svg", {
|
|
6141
6234
|
viewBox: "0 0 256 256",
|
|
6142
6235
|
fill: "none",
|
|
6143
6236
|
...props,
|
|
6144
|
-
children: /* @__PURE__ */
|
|
6237
|
+
children: /* @__PURE__ */ jsx58("path", {
|
|
6145
6238
|
d: "M98 25H157V230.5H98",
|
|
6146
6239
|
stroke: props.color,
|
|
6147
6240
|
strokeWidth: "42",
|
|
@@ -6152,7 +6245,7 @@ var TimelineOutPointer = (props) => {
|
|
|
6152
6245
|
};
|
|
6153
6246
|
|
|
6154
6247
|
// src/state/in-out.ts
|
|
6155
|
-
import { createContext as createContext12, useContext as useContext21, useMemo as
|
|
6248
|
+
import { createContext as createContext12, useContext as useContext21, useMemo as useMemo36 } from "react";
|
|
6156
6249
|
import { Internals as Internals15 } from "remotion";
|
|
6157
6250
|
var TimelineInOutContext = createContext12({});
|
|
6158
6251
|
var SetTimelineInOutContext = createContext12({
|
|
@@ -6165,7 +6258,7 @@ var useTimelineInOutFramePosition = () => {
|
|
|
6165
6258
|
const state = useContext21(TimelineInOutContext);
|
|
6166
6259
|
const id = videoConfig?.id;
|
|
6167
6260
|
const durationInFrames = videoConfig?.durationInFrames;
|
|
6168
|
-
return
|
|
6261
|
+
return useMemo36(() => {
|
|
6169
6262
|
if (!id || !durationInFrames) {
|
|
6170
6263
|
return { inFrame: null, outFrame: null };
|
|
6171
6264
|
}
|
|
@@ -6184,7 +6277,7 @@ var useTimelineSetInOutFramePosition = () => {
|
|
|
6184
6277
|
};
|
|
6185
6278
|
|
|
6186
6279
|
// src/components/TimelineInOutToggle.tsx
|
|
6187
|
-
import { jsx as
|
|
6280
|
+
import { jsx as jsx59, jsxs as jsxs22, Fragment as Fragment9 } from "react/jsx-runtime";
|
|
6188
6281
|
var getTooltipText = (pointType, key) => [
|
|
6189
6282
|
`Mark ${pointType}`,
|
|
6190
6283
|
areKeyboardShortcutsDisabled() ? null : `(${key})`,
|
|
@@ -6399,26 +6492,26 @@ var TimelineInOutPointToggle = () => {
|
|
|
6399
6492
|
outMarkClick: onOutMark
|
|
6400
6493
|
};
|
|
6401
6494
|
}, [confId, onInMark, onInOutClear, onOutMark]);
|
|
6402
|
-
return /* @__PURE__ */
|
|
6495
|
+
return /* @__PURE__ */ jsxs22(Fragment9, {
|
|
6403
6496
|
children: [
|
|
6404
|
-
/* @__PURE__ */
|
|
6497
|
+
/* @__PURE__ */ jsx59(ControlButton, {
|
|
6405
6498
|
title: getTooltipText("In", "I"),
|
|
6406
6499
|
"aria-label": getTooltipText("In", "I"),
|
|
6407
6500
|
onClick: onInMark,
|
|
6408
6501
|
onContextMenu: clearInMark,
|
|
6409
6502
|
disabled: !videoConfig || isFirstFrame,
|
|
6410
|
-
children: /* @__PURE__ */
|
|
6503
|
+
children: /* @__PURE__ */ jsx59(TimelineInPointer, {
|
|
6411
6504
|
color: inFrame === null ? "white" : BLUE,
|
|
6412
6505
|
style: style3
|
|
6413
6506
|
})
|
|
6414
6507
|
}),
|
|
6415
|
-
/* @__PURE__ */
|
|
6508
|
+
/* @__PURE__ */ jsx59(ControlButton, {
|
|
6416
6509
|
title: getTooltipText("Out", "O"),
|
|
6417
6510
|
"aria-label": getTooltipText("Out", "O"),
|
|
6418
6511
|
onClick: onOutMark,
|
|
6419
6512
|
onContextMenu: clearOutMark,
|
|
6420
6513
|
disabled: !videoConfig || isLastFrame,
|
|
6421
|
-
children: /* @__PURE__ */
|
|
6514
|
+
children: /* @__PURE__ */ jsx59(TimelineOutPointer, {
|
|
6422
6515
|
color: outFrame === null ? "white" : BLUE,
|
|
6423
6516
|
style: style3
|
|
6424
6517
|
})
|
|
@@ -6427,43 +6520,6 @@ var TimelineInOutPointToggle = () => {
|
|
|
6427
6520
|
});
|
|
6428
6521
|
};
|
|
6429
6522
|
|
|
6430
|
-
// src/error-overlay/remotion-overlay/ShortcutHint.tsx
|
|
6431
|
-
import { useMemo as useMemo36 } from "react";
|
|
6432
|
-
import { jsx as jsx59, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
6433
|
-
var cmdOrCtrlCharacter = window.navigator.platform.startsWith("Mac") ? "⌘" : "Ctrl";
|
|
6434
|
-
var container14 = {
|
|
6435
|
-
display: "inline-block",
|
|
6436
|
-
marginLeft: 6,
|
|
6437
|
-
opacity: 0.6,
|
|
6438
|
-
verticalAlign: "middle",
|
|
6439
|
-
fontSize: 14
|
|
6440
|
-
};
|
|
6441
|
-
var ShortcutHint = ({ keyToPress, cmdOrCtrl }) => {
|
|
6442
|
-
const style4 = useMemo36(() => {
|
|
6443
|
-
if (keyToPress === "↵") {
|
|
6444
|
-
return {
|
|
6445
|
-
display: "inline-block",
|
|
6446
|
-
transform: `translateY(2px)`,
|
|
6447
|
-
fontSize: 14
|
|
6448
|
-
};
|
|
6449
|
-
}
|
|
6450
|
-
return {};
|
|
6451
|
-
}, [keyToPress]);
|
|
6452
|
-
if (areKeyboardShortcutsDisabled()) {
|
|
6453
|
-
return null;
|
|
6454
|
-
}
|
|
6455
|
-
return /* @__PURE__ */ jsxs22("span", {
|
|
6456
|
-
style: container14,
|
|
6457
|
-
children: [
|
|
6458
|
-
cmdOrCtrl ? `${cmdOrCtrlCharacter}` : "",
|
|
6459
|
-
/* @__PURE__ */ jsx59("span", {
|
|
6460
|
-
style: style4,
|
|
6461
|
-
children: keyToPress.toUpperCase()
|
|
6462
|
-
})
|
|
6463
|
-
]
|
|
6464
|
-
});
|
|
6465
|
-
};
|
|
6466
|
-
|
|
6467
6523
|
// src/state/editor-guides.ts
|
|
6468
6524
|
import { createContext as createContext13 } from "react";
|
|
6469
6525
|
var persistEditorShowGuidesOption = (option) => {
|
|
@@ -16618,7 +16674,10 @@ var ClientRenderQueueProcessor = () => {
|
|
|
16618
16674
|
onProgress: (progress) => {
|
|
16619
16675
|
onProgress(job.id, {
|
|
16620
16676
|
encodedFrames: progress.encodedFrames,
|
|
16621
|
-
totalFrames
|
|
16677
|
+
totalFrames,
|
|
16678
|
+
doneIn: progress.doneIn,
|
|
16679
|
+
renderEstimatedTime: progress.renderEstimatedTime,
|
|
16680
|
+
progress: progress.progress
|
|
16622
16681
|
});
|
|
16623
16682
|
},
|
|
16624
16683
|
outputTarget: "web-fs",
|
|
@@ -16909,8 +16968,7 @@ var RenderQueueItemStatus = ({ job }) => {
|
|
|
16909
16968
|
if (job.status === "running") {
|
|
16910
16969
|
let progressValue;
|
|
16911
16970
|
if (isClientJob) {
|
|
16912
|
-
|
|
16913
|
-
progressValue = totalFrames > 0 ? encodedFrames / totalFrames : 0;
|
|
16971
|
+
progressValue = job.progress.progress;
|
|
16914
16972
|
} else {
|
|
16915
16973
|
progressValue = job.progress.value;
|
|
16916
16974
|
}
|
|
@@ -17002,6 +17060,34 @@ var RenderQueueOutputName = ({ job }) => {
|
|
|
17002
17060
|
|
|
17003
17061
|
// src/components/RenderQueue/RenderQueueProgressMessage.tsx
|
|
17004
17062
|
import { useCallback as useCallback77, useContext as useContext43 } from "react";
|
|
17063
|
+
|
|
17064
|
+
// src/components/RenderQueue/client-render-progress.ts
|
|
17065
|
+
var formatEtaString = (timeRemainingInMilliseconds) => {
|
|
17066
|
+
const remainingTime = timeRemainingInMilliseconds / 1000;
|
|
17067
|
+
const remainingTimeHours = Math.floor(remainingTime / 3600);
|
|
17068
|
+
const remainingTimeMinutes = Math.floor(remainingTime % 3600 / 60);
|
|
17069
|
+
const remainingTimeSeconds = Math.floor(remainingTime % 60);
|
|
17070
|
+
return [
|
|
17071
|
+
remainingTimeHours ? `${remainingTimeHours}h` : null,
|
|
17072
|
+
remainingTimeMinutes ? `${remainingTimeMinutes}m` : null,
|
|
17073
|
+
`${remainingTimeSeconds}s`
|
|
17074
|
+
].filter((value) => Boolean(value)).join(" ");
|
|
17075
|
+
};
|
|
17076
|
+
var getClientRenderProgressMessage = (progress) => {
|
|
17077
|
+
if (progress.totalFrames === 0) {
|
|
17078
|
+
return "Getting composition";
|
|
17079
|
+
}
|
|
17080
|
+
if (progress.doneIn !== null) {
|
|
17081
|
+
return `Encoded ${progress.totalFrames}/${progress.totalFrames}`;
|
|
17082
|
+
}
|
|
17083
|
+
if (progress.renderEstimatedTime > 0) {
|
|
17084
|
+
const etaString = `, time remaining: ${formatEtaString(progress.renderEstimatedTime)}`;
|
|
17085
|
+
return `Rendering ${progress.encodedFrames}/${progress.totalFrames}${etaString}`;
|
|
17086
|
+
}
|
|
17087
|
+
return `Encoded ${progress.encodedFrames}/${progress.totalFrames}`;
|
|
17088
|
+
};
|
|
17089
|
+
|
|
17090
|
+
// src/components/RenderQueue/RenderQueueProgressMessage.tsx
|
|
17005
17091
|
import { jsx as jsx153 } from "react/jsx-runtime";
|
|
17006
17092
|
var outputLocation2 = {
|
|
17007
17093
|
...renderQueueItemSubtitleStyle
|
|
@@ -17019,7 +17105,7 @@ var RenderQueueProgressMessage = ({ job }) => {
|
|
|
17019
17105
|
jobId: job.id
|
|
17020
17106
|
});
|
|
17021
17107
|
}, [job.id, setSelectedModal]);
|
|
17022
|
-
const message = isClientJob ? job.progress
|
|
17108
|
+
const message = isClientJob ? getClientRenderProgressMessage(job.progress) : job.progress.message;
|
|
17023
17109
|
return /* @__PURE__ */ jsx153("button", {
|
|
17024
17110
|
onClick,
|
|
17025
17111
|
type: "button",
|
|
@@ -26871,9 +26957,15 @@ var right3 = {
|
|
|
26871
26957
|
textAlign: "right",
|
|
26872
26958
|
flex: 1
|
|
26873
26959
|
};
|
|
26874
|
-
var
|
|
26875
|
-
const done =
|
|
26876
|
-
const
|
|
26960
|
+
var ProgressStatus = ({ encodedFrames, totalFrames, doneIn, renderEstimatedTime, progress }) => {
|
|
26961
|
+
const done = doneIn !== null;
|
|
26962
|
+
const message = getClientRenderProgressMessage({
|
|
26963
|
+
encodedFrames,
|
|
26964
|
+
totalFrames,
|
|
26965
|
+
doneIn,
|
|
26966
|
+
renderEstimatedTime,
|
|
26967
|
+
progress
|
|
26968
|
+
});
|
|
26877
26969
|
return /* @__PURE__ */ jsxs120("div", {
|
|
26878
26970
|
style: progressItem,
|
|
26879
26971
|
children: [
|
|
@@ -26885,8 +26977,15 @@ var EncodingProgress = ({ encodedFrames, totalFrames }) => {
|
|
|
26885
26977
|
}),
|
|
26886
26978
|
/* @__PURE__ */ jsx237("div", {
|
|
26887
26979
|
style: label10,
|
|
26888
|
-
children:
|
|
26889
|
-
})
|
|
26980
|
+
children: message
|
|
26981
|
+
}),
|
|
26982
|
+
doneIn !== null ? /* @__PURE__ */ jsxs120("div", {
|
|
26983
|
+
style: right3,
|
|
26984
|
+
children: [
|
|
26985
|
+
doneIn,
|
|
26986
|
+
"ms"
|
|
26987
|
+
]
|
|
26988
|
+
}) : null
|
|
26890
26989
|
]
|
|
26891
26990
|
});
|
|
26892
26991
|
};
|
|
@@ -26944,15 +27043,18 @@ var ClientRenderProgress = ({ job }) => {
|
|
|
26944
27043
|
]
|
|
26945
27044
|
});
|
|
26946
27045
|
}
|
|
26947
|
-
const { encodedFrames, totalFrames } = job.progress;
|
|
27046
|
+
const { encodedFrames, totalFrames, doneIn, renderEstimatedTime, progress } = job.progress;
|
|
26948
27047
|
return /* @__PURE__ */ jsxs120("div", {
|
|
26949
27048
|
children: [
|
|
26950
27049
|
/* @__PURE__ */ jsx237(Spacing, {
|
|
26951
27050
|
y: 0.5
|
|
26952
27051
|
}),
|
|
26953
|
-
job.type === "client-video" && /* @__PURE__ */ jsx237(
|
|
27052
|
+
job.type === "client-video" && /* @__PURE__ */ jsx237(ProgressStatus, {
|
|
26954
27053
|
encodedFrames,
|
|
26955
|
-
totalFrames
|
|
27054
|
+
totalFrames,
|
|
27055
|
+
doneIn,
|
|
27056
|
+
renderEstimatedTime,
|
|
27057
|
+
progress
|
|
26956
27058
|
}),
|
|
26957
27059
|
/* @__PURE__ */ jsx237(Spacing, {
|
|
26958
27060
|
y: 1
|
|
@@ -27373,7 +27475,7 @@ var addTrueBooleanFlagsIfChanged = (flags, mappings) => {
|
|
|
27373
27475
|
}
|
|
27374
27476
|
};
|
|
27375
27477
|
var getNpmRemotionCommandPrefix = (version) => {
|
|
27376
|
-
return version.trim() === "" ? "
|
|
27478
|
+
return version.trim() === "" ? "bunx --yes --location=global -p @remotion/cli remotion" : `bunx --yes --location=global -p @remotion/cli@${version} remotion`;
|
|
27377
27479
|
};
|
|
27378
27480
|
var normalizeServeUrlForRenderCommand = ({
|
|
27379
27481
|
locationHref,
|