hyperframes 0.8.143 → 0.8.145
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/README.md +3 -2
- package/dist/{add-Q5EYDUAY.js → add-B6OUH46W.js} +12 -12
- package/dist/{animatedGifPrep-H2DUQEZ3.js → animatedGifPrep-MIWRDJIO.js} +7 -7
- package/dist/{asset-C7JBYYX4.js → asset-XJ2B2PU3.js} +2 -2
- package/dist/{assetCataloger-FRO4G6OU.js → assetCataloger-A5ZLSCMZ.js} +3 -3
- package/dist/{auth-FRWLCO36.js → auth-5HOVCZMV.js} +1 -1
- package/dist/{autoUpdate-E4OZXQK6.js → autoUpdate-WVNL5K3D.js} +2 -2
- package/dist/{backgroundChecks-FSUVHN5L.js → backgroundChecks-IGF54SFH.js} +3 -3
- package/dist/backgroundChecksWorker.js +3 -3
- package/dist/{batchRender-4U73BYTU.js → batchRender-T6JEGCQV.js} +4 -4
- package/dist/{beats-U6KJWF35.js → beats-37T6Y6QP.js} +13 -13
- package/dist/{benchmark-5ONT7V7B.js → benchmark-ZVVLOWPP.js} +9 -9
- package/dist/{browser-R4DU46IE.js → browser-4SSJOLH4.js} +39 -55
- package/dist/{bundleWithLocalizedFonts-VH55VOAL.js → bundleWithLocalizedFonts-XWK423QP.js} +2 -2
- package/dist/{capture-OGQAEYKO.js → capture-2SF7YP57.js} +2 -2
- package/dist/{capture-26G2DPSI.js → capture-KZXOPBMO.js} +18 -18
- package/dist/{catalog-RKORTIUE.js → catalog-NLD4A2C6.js} +12 -12
- package/dist/{catch-up-4OBERRQO.js → catch-up-4BSRN6IR.js} +4 -4
- package/dist/{check-P2XDN57S.js → check-IA44QQWM.js} +66 -55
- package/dist/{checkBrowser-NTGJGAEA.js → checkBrowser-VM35KZMW.js} +81 -30
- package/dist/{chunk-LVX6NK36.js → chunk-3IBMBNYY.js} +1 -1
- package/dist/{chunk-6XMFEICO.js → chunk-3KU3PFDW.js} +77 -92
- package/dist/{chunk-PJU63L6W.js → chunk-4ORLNTET.js} +1 -1
- package/dist/{chunk-DF2BHILQ.js → chunk-4QWD6JYN.js} +3 -3
- package/dist/{chunk-BT27OYYX.js → chunk-5NRXZGKK.js} +18 -12
- package/dist/{chunk-UM2GRYM3.js → chunk-5WVW7P23.js} +3 -3
- package/dist/{chunk-I7QGQAZM.js → chunk-6LGNTUZN.js} +7 -7
- package/dist/{chunk-LAOCA3MQ.js → chunk-A4Q7W4LV.js} +13 -8
- package/dist/{chunk-4PFZPP2N.js → chunk-A6S35NYA.js} +54 -16
- package/dist/{chunk-QRKLPWEX.js → chunk-ADF3X6GM.js} +11 -2
- package/dist/chunk-AUWHD7RA.js +3753 -0
- package/dist/{chunk-W35EKBS6.js → chunk-BFACGEII.js} +2 -2
- package/dist/{chunk-HW4AKJ5F.js → chunk-BIAC7IJT.js} +1 -1
- package/dist/{chunk-ZLW2V65P.js → chunk-BSQ7XANM.js} +3 -2
- package/dist/{chunk-LCSMOLGX.js → chunk-BYSBRF24.js} +69 -8
- package/dist/{chunk-2LBBHMKT.js → chunk-CFUXNBWH.js} +1 -1
- package/dist/{chunk-BFDJ63J5.js → chunk-DDIVWXN7.js} +1 -1
- package/dist/{chunk-KOEWEFHK.js → chunk-DIRJ322I.js} +10 -5
- package/dist/{chunk-FVYXDXEV.js → chunk-DWUKJQTO.js} +2 -2
- package/dist/{chunk-POLR33RB.js → chunk-EPE2HRJK.js} +15 -17
- package/dist/{chunk-UICWP23D.js → chunk-FBCULCAL.js} +3 -3
- package/dist/{chunk-F26LCYRY.js → chunk-FDT6KQV4.js} +142 -81
- package/dist/{chunk-P7THMINS.js → chunk-FXJJCPPB.js} +1 -1
- package/dist/{chunk-BYK73CR7.js → chunk-GBGJ7A3D.js} +5 -5
- package/dist/{sherpa-LVIUEAGF.js → chunk-GEMJYBRU.js} +11 -45
- package/dist/{chunk-KO5QBV73.js → chunk-GMAJB2P6.js} +1 -1
- package/dist/{chunk-KQLGTGE5.js → chunk-GRY3PN3K.js} +2 -2
- package/dist/{chunk-7UYBQ6NF.js → chunk-GXJEGZL2.js} +30 -20
- package/dist/{chunk-KJJLA674.js → chunk-GZVP4TWN.js} +1 -46
- package/dist/{chunk-QVYVUCWD.js → chunk-HB7FJOY4.js} +1 -1
- package/dist/{chunk-QFN7NVWM.js → chunk-ICKDMTLA.js} +1 -1
- package/dist/{chunk-XONFUK3M.js → chunk-IEIJRMLZ.js} +47 -35
- package/dist/{chunk-PAGIICKN.js → chunk-IHTRYDFN.js} +1 -1
- package/dist/chunk-IR35BCLK.js +13 -0
- package/dist/{chunk-KDPYVTEU.js → chunk-KBB4RG6F.js} +6 -1
- package/dist/{chunk-ZQQ3SEIE.js → chunk-KIFHYXPB.js} +99 -31
- package/dist/{chunk-TAMQYQGJ.js → chunk-LAFJSYDL.js} +1 -1
- package/dist/{chunk-U3X3TPBW.js → chunk-MAYCCGMQ.js} +11 -2
- package/dist/{chunk-HC7EVDEL.js → chunk-OB5MJR4W.js} +1 -1
- package/dist/{chunk-N3DQEVSI.js → chunk-OTHDVXOJ.js} +8 -5
- package/dist/{chunk-Y6QL2LGO.js → chunk-PLR7Z6TC.js} +1 -1
- package/dist/{chunk-OBXQRJWQ.js → chunk-QATWIE4K.js} +1 -1
- package/dist/{chunk-HLYOEIWM.js → chunk-QLSM7K5S.js} +2 -2
- package/dist/{chunk-LW6HO6U3.js → chunk-R42WWQVB.js} +1 -1
- package/dist/{chunk-HMT2RPZU.js → chunk-U5QY7KTN.js} +13 -9
- package/dist/chunk-UPFUC4DB.js +136 -0
- package/dist/{chunk-33RZPZ4K.js → chunk-UXO2L7HJ.js} +366 -156
- package/dist/{chunk-GNBGPUJ7.js → chunk-VHFEMFYL.js} +3 -3
- package/dist/{chunk-4M4EC7JX.js → chunk-VRW6EBHV.js} +12 -1
- package/dist/{chunk-VIVBA6E6.js → chunk-XBX4QJP7.js} +1 -1
- package/dist/{chunk-CLOH4LIB.js → chunk-XIHCMVMG.js} +2 -2
- package/dist/{chunk-TVCRUG2S.js → chunk-ZEUONDQG.js} +1 -1
- package/dist/{chunk-OSSHSIMD.js → chunk-ZF7SXQJ7.js} +1 -1
- package/dist/{chunk-5FISWJ37.js → chunk-ZIYZ77MR.js} +4 -4
- package/dist/{chunk-3NE7ZYU2.js → chunk-ZSVUAVMT.js} +3 -3
- package/dist/{clean-YHGPY33K.js → clean-RDKJB5FK.js} +18 -18
- package/dist/cli.js +68 -56
- package/dist/{cloud-DOFI5ISR.js → cloud-QVPVVNCW.js} +4 -4
- package/dist/{cloudrun-KTZ4XDHL.js → cloudrun-3RE2UCQG.js} +4 -4
- package/dist/{compare-SMMIZN2C.js → compare-LEDOY7MO.js} +25 -25
- package/dist/{compiler-TEXQWW6N.js → compiler-F54OZZPM.js} +10 -4
- package/dist/{component-B3GCNGSS.js → component-N42M67WY.js} +3 -3
- package/dist/{compositions-OQNZZTKF.js → compositions-VB2J2LZI.js} +11 -11
- package/dist/{delete-EL5LVSEP.js → delete-Q6RWMJ4Z.js} +2 -2
- package/dist/{dist-5UVIRMSM.js → dist-KDJTFJHA.js} +2 -2
- package/dist/{dist-XN234YFQ.js → dist-Q4BI5A73.js} +4 -4
- package/dist/{doctor-UOL3OI2A.js → doctor-JMMUHDRV.js} +13 -13
- package/dist/{events-K2DB2PBC.js → events-6ZBSIBE5.js} +2 -2
- package/dist/{events-NIZBS6S7.js → events-RGUAHIBW.js} +3 -3
- package/dist/{feedback-QMP4E6L7.js → feedback-FIID6MZW.js} +9 -9
- package/dist/{ffmpeg-QIUFEFTY.js → ffmpeg-T5SH2EFJ.js} +3 -2
- package/dist/{figma-2AUJRNVC.js → figma-BL3JJC36.js} +3 -3
- package/dist/fontLocalizeCli.js +9 -9
- package/dist/{get-P5NC7SRM.js → get-P46GS7S6.js} +2 -2
- package/dist/{gpuPolicy-7N5MCE2G.js → gpuPolicy-AQ2BPLBK.js} +11 -9
- package/dist/{grade-compare-HV5AFZ6P.js → grade-compare-GDCWU7ZZ.js} +27 -27
- package/dist/{help-3TSTXBLN.js → help-HJR3RWFG.js} +2 -2
- package/dist/{history-D65XFJ6D.js → history-GGO5AWJB.js} +5 -5
- package/dist/hyperframe-runtime.js +59 -59
- package/dist/hyperframe.manifest.json +1 -1
- package/dist/hyperframe.runtime.iife.js +59 -59
- package/dist/hyperframes-player.global.js +3 -3
- package/dist/{info-TXV7MLFO.js → info-3GFWUBJC.js} +8 -8
- package/dist/{init-OSDMJZJV.js → init-36OPU2ZG.js} +35 -36
- package/dist/{inspect-RQQSAYIJ.js → inspect-F2HEL5ON.js} +26 -26
- package/dist/{installer-CDOB32HE.js → installer-NI6P6GC4.js} +5 -5
- package/dist/{keyframes-V75Q6GRM.js → keyframes-7OY3LMAZ.js} +6 -6
- package/dist/{lambda-RODV4RCX.js → lambda-6GJIWNJ3.js} +5 -5
- package/dist/{layout-IZAI5SFC.js → layout-FTMLNL5A.js} +26 -26
- package/dist/{lint-PLXOXY5R.js → lint-U6POHUON.js} +8 -8
- package/dist/{lintProject-OQ6H6XBR.js → lintProject-UBZ3TDHU.js} +2 -2
- package/dist/{list-BQBPNKDZ.js → list-IP5KI5Q2.js} +2 -2
- package/dist/{login-NP6F4FHC.js → login-4VWTVPHG.js} +4 -4
- package/dist/{manager-CT3D67CG.js → manager-BPSR6D3V.js} +2 -2
- package/dist/{manager-GXYF4AVO.js → manager-YKMHR6LN.js} +8 -5
- package/dist/{media-treatment-PXGMZ4A4.js → media-treatment-XGV44AGV.js} +16 -13
- package/dist/{models-CEZM6XZ7.js → models-UCXB6UR5.js} +59 -19
- package/dist/{motionShot-R4GHYWYM.js → motionShot-WPVNBXKA.js} +21 -22
- package/dist/{normalize-H6KUHHEI.js → normalize-U3SL5VG3.js} +2 -2
- package/dist/{normalize-audio-MQ7NFCOV.js → normalize-audio-TYJ3UEHO.js} +6 -6
- package/dist/{open-AKQTGNXF.js → open-HENOLVB2.js} +4 -4
- package/dist/parakeetRunner-VFQ6WFTD.js +67 -0
- package/dist/{pipeline-SYJYP2RM.js → pipeline-6WPSC3H4.js} +10 -9
- package/dist/{play-NBH4B7PL.js → play-OI53WNUM.js} +19 -19
- package/dist/{preflight-Y5DN5D37.js → preflight-B4AFK3RG.js} +4 -4
- package/dist/{present-XAX55CFS.js → present-NGMEQ4NO.js} +15 -15
- package/dist/{preview-OLANKNFA.js → preview-VT2HWRWZ.js} +19 -19
- package/dist/{producer-Q6YNZZUJ.js → producer-7TYEAUF7.js} +1 -1
- package/dist/{projectConfig-EM26P45P.js → projectConfig-B2AF5DXY.js} +7 -7
- package/dist/{publication-OXWJZKSX.js → publication-2PANQVC6.js} +3 -3
- package/dist/{publish-4VBWP2UB.js → publish-O5OL42BG.js} +11 -11
- package/dist/{remove-background-REB7427G.js → remove-background-T2JM6UVP.js} +11 -10
- package/dist/{render-K25YOG3M.js → render-OLPKOJRU.js} +11 -11
- package/dist/{render-3CVZ2SZG.js → render-W7OFXDOJ.js} +4 -4
- package/dist/{render-TSE75QUL.js → render-Z253WHBK.js} +26 -26
- package/dist/{render-batch-GGUOK3DS.js → render-batch-46IIBFKL.js} +4 -4
- package/dist/{renderCancellation-PZRWB53I.js → renderCancellation-QTZOCDJ2.js} +10 -9
- package/dist/renderSetupWorker.js +32 -44
- package/dist/{resolver-S5VK6UCB.js → resolver-J2PL5FVJ.js} +5 -5
- package/dist/sherpa-ZF42V3RN.js +75 -0
- package/dist/sherpaWorker.js +2 -1
- package/dist/skills/hyperframes/scripts/lib/frame-packets-core.mjs +2 -20
- package/dist/skills/hyperframes/scripts/lib/main-module.mjs +13 -0
- package/dist/skills/hyperframes/scripts/lib/main-module.test.mjs +51 -0
- package/dist/skills/hyperframes/scripts/plugin-cli.mjs +4 -3
- package/dist/skills/hyperframes/scripts/plugin-cli.test.mjs +5 -1
- package/dist/skills/hyperframes-cli/SKILL.md +2 -0
- package/dist/skills/hyperframes-cli/references/lint-validate-inspect.md +1 -1
- package/dist/skills/media-use/audio/scripts/heygen-voice.mjs +2 -2
- package/dist/skills/media-use/audio/scripts/lib/main-module.mjs +13 -0
- package/dist/skills/media-use/scripts/lib/cube-validate.mjs +2 -3
- package/dist/skills/media-use/scripts/lib/main-module.mjs +13 -0
- package/dist/{skills-I65FU5HD.js → skills-ACDOO3PX.js} +7 -7
- package/dist/{skillsUpdateCheck-J57RNNIV.js → skillsUpdateCheck-L5OXVVPU.js} +3 -3
- package/dist/{snapshot-YROOGY22.js → snapshot-UUVNZOW5.js} +28 -28
- package/dist/{src-JO5JOV7Y.js → src-BSLKXEGX.js} +10 -6
- package/dist/{src-X426BZAG.js → src-KS3AWFGT.js} +8 -8
- package/dist/{staticProjectServer-5VMBS262.js → staticProjectServer-2TTVGPQH.js} +15 -15
- package/dist/studio/assets/{hyperframes-player-BXSuksFh.js → hyperframes-player-DZ5JrMDg.js} +3 -3
- package/dist/studio/assets/{index-FgyO_5Kv.js → index-BOs6C0aZ.js} +1 -1
- package/dist/studio/assets/{index-BgOVCqjo.js → index-BqFRhNZa.js} +1 -1
- package/dist/studio/assets/{index-J7jpL4pj.js → index-D8W0a0Z9.js} +149 -149
- package/dist/studio/{chunk-TFLU2MGI.js → chunk-6JY3MTIX.js} +108 -2
- package/dist/studio/{chunk-H2DUOXTF.js → chunk-NZPJUZKT.js} +100 -4
- package/dist/studio/{chunk-UYWON5AX.js → chunk-TP6D3U37.js} +7 -100
- package/dist/studio/{chunk-LOVBLSMR.js → chunk-Y2OHHNM2.js} +35 -19
- package/dist/studio/{domEditingLayers-KBTPQKGA.js → domEditingLayers-PTP2ICGM.js} +3 -3
- package/dist/studio/index.d.ts +8 -5
- package/dist/studio/index.html +1 -1
- package/dist/studio/index.js +545 -495
- package/dist/studio/player.js +3 -3
- package/dist/studio/ui.d.ts +4 -5
- package/dist/studio/ui.js +1 -1
- package/dist/{studio-api-VRBZUGAE.js → studio-api-WYWF7XRC.js} +9 -9
- package/dist/{studioServer-DBNKZ6I6.js → studioServer-3FG4YTP7.js} +72 -54
- package/dist/{telemetry-CXAX3TO3.js → telemetry-PAOOB4T4.js} +3 -3
- package/dist/{timeline-VQ34WH7J.js → timeline-JIIJKKPC.js} +69 -47
- package/dist/{tokens-62R7VFAZ.js → tokens-3QRAM75Z.js} +2 -2
- package/dist/{transcribe-XOHPPL2O.js → transcribe-QSBP5MUG.js} +115 -51
- package/dist/{transcribe-7KR7IPJA.js → transcribe-SZB6UMXE.js} +14 -12
- package/dist/{tts-MUV42JXT.js → tts-B6AHFQEO.js} +1 -1
- package/dist/{updateCheck-POYNH3B5.js → updateCheck-V3DSB26K.js} +2 -2
- package/dist/{upgrade-NBNOT7J2.js → upgrade-L5GISOEV.js} +2 -2
- package/dist/{urlDownloader-3NS63A7B.js → urlDownloader-52FERT4X.js} +6 -6
- package/dist/{validate-Y2QDHAEP.js → validate-HVVLX7KO.js} +20 -20
- package/dist/{video-SJDMTSTL.js → video-MEOWRMFG.js} +7 -7
- package/package.json +1 -1
- package/dist/chunk-6TPZSTCL.js +0 -3681
- package/dist/studio/chunk-EEXSYY5F.js.map +0 -1
- package/dist/studio/chunk-H2DUOXTF.js.map +0 -1
- package/dist/studio/chunk-LOVBLSMR.js.map +0 -1
- package/dist/studio/chunk-PZ5AY32C.js.map +0 -1
- package/dist/studio/chunk-TFLU2MGI.js.map +0 -1
- package/dist/studio/chunk-UYWON5AX.js.map +0 -1
- package/dist/studio/domEditingLayers-KBTPQKGA.js.map +0 -1
- package/dist/studio/index.css.map +0 -1
- package/dist/studio/index.js.map +0 -1
- package/dist/studio/player.js.map +0 -1
- package/dist/studio/styles/tailwind-preset.js.map +0 -1
- package/dist/studio/ui.js.map +0 -1
- package/dist/{screenshotCapture-TEUIWXWN.js → screenshotCapture-3JXXUZND.js} +3 -3
- package/dist/{synthesize-C3IWDAXF.js → synthesize-UCI4X5O7.js} +4 -4
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__export
|
|
3
|
+
} from "./chunk-PZ5AY32C.js";
|
|
4
|
+
|
|
1
5
|
// src/utils/sourceScopedSelectorIndex.ts
|
|
2
6
|
var activePass = null;
|
|
3
7
|
function withSelectorIndexPass(doc, run) {
|
|
@@ -303,6 +307,12 @@ function roundTo3(val) {
|
|
|
303
307
|
function roundToLayoutPx(val) {
|
|
304
308
|
return Math.round(val);
|
|
305
309
|
}
|
|
310
|
+
function roundToLayoutSize(size) {
|
|
311
|
+
return {
|
|
312
|
+
width: roundToLayoutPx(Math.max(1, size.width)),
|
|
313
|
+
height: roundToLayoutPx(Math.max(1, size.height))
|
|
314
|
+
};
|
|
315
|
+
}
|
|
306
316
|
function roundToCenti(val) {
|
|
307
317
|
return Math.round(val * 100) / 100;
|
|
308
318
|
}
|
|
@@ -1026,6 +1036,94 @@ function buildProjectApiPath(projectId, suffix = "") {
|
|
|
1026
1036
|
return `/api/projects/${encodeProjectId(projectId)}${normalizedSuffix}`;
|
|
1027
1037
|
}
|
|
1028
1038
|
|
|
1039
|
+
// src/components/editor/manualEditingAvailability.ts
|
|
1040
|
+
var manualEditingAvailability_exports = {};
|
|
1041
|
+
__export(manualEditingAvailability_exports, {
|
|
1042
|
+
STUDIO_API_SAME_ORIGIN_CREDENTIALS: () => STUDIO_API_SAME_ORIGIN_CREDENTIALS,
|
|
1043
|
+
STUDIO_FLAT_INSPECTOR_ENABLED: () => STUDIO_FLAT_INSPECTOR_ENABLED,
|
|
1044
|
+
STUDIO_SDK_CUTOVER_ENABLED: () => STUDIO_SDK_CUTOVER_ENABLED,
|
|
1045
|
+
STUDIO_SDK_CUTOVER_FAMILIES: () => STUDIO_SDK_CUTOVER_FAMILIES,
|
|
1046
|
+
STUDIO_SDK_RESOLVER_SHADOW_ENABLED: () => STUDIO_SDK_RESOLVER_SHADOW_ENABLED,
|
|
1047
|
+
resolveStudioBooleanEnvFlag: () => resolveStudioBooleanEnvFlag
|
|
1048
|
+
});
|
|
1049
|
+
|
|
1050
|
+
// src/utils/sdkCutoverPolicy.ts
|
|
1051
|
+
var STUDIO_SDK_OPERATION_FAMILIES = [
|
|
1052
|
+
"dom",
|
|
1053
|
+
"timing",
|
|
1054
|
+
"gsap-animation",
|
|
1055
|
+
"gsap-keyframe",
|
|
1056
|
+
"lifecycle"
|
|
1057
|
+
];
|
|
1058
|
+
function resolveEnabledSdkFamilies(env2, masterEnabled) {
|
|
1059
|
+
if (!masterEnabled) return /* @__PURE__ */ new Set();
|
|
1060
|
+
const raw = env2["VITE_STUDIO_SDK_CUTOVER_FAMILIES"];
|
|
1061
|
+
if (typeof raw !== "string" || raw.trim() === "") return new Set(STUDIO_SDK_OPERATION_FAMILIES);
|
|
1062
|
+
const requested = raw.split(",").map((family) => family.trim()).filter(Boolean);
|
|
1063
|
+
const known = new Set(STUDIO_SDK_OPERATION_FAMILIES);
|
|
1064
|
+
const unknown = requested.filter((family) => !known.has(family));
|
|
1065
|
+
if (unknown.length > 0) {
|
|
1066
|
+
throw new Error(`Unknown Studio SDK cutover families: ${unknown.join(", ")}`);
|
|
1067
|
+
}
|
|
1068
|
+
return new Set(requested);
|
|
1069
|
+
}
|
|
1070
|
+
function isSdkFamilyEnabled(masterEnabled, configured, family) {
|
|
1071
|
+
return masterEnabled && (configured?.has(family) ?? true);
|
|
1072
|
+
}
|
|
1073
|
+
|
|
1074
|
+
// src/components/editor/manualEditingAvailability.ts
|
|
1075
|
+
var TRUTHY_ENV_VALUES = /* @__PURE__ */ new Set(["1", "true", "yes", "on", "enabled"]);
|
|
1076
|
+
var FALSY_ENV_VALUES = /* @__PURE__ */ new Set(["0", "false", "no", "off", "disabled"]);
|
|
1077
|
+
function resolveStudioBooleanEnvFlag(env2, names, fallback) {
|
|
1078
|
+
for (const name of names) {
|
|
1079
|
+
const value = env2[name];
|
|
1080
|
+
if (typeof value === "boolean") return value;
|
|
1081
|
+
if (typeof value !== "string") continue;
|
|
1082
|
+
const normalized = value.trim().toLowerCase();
|
|
1083
|
+
if (!normalized) continue;
|
|
1084
|
+
if (TRUTHY_ENV_VALUES.has(normalized)) return true;
|
|
1085
|
+
if (FALSY_ENV_VALUES.has(normalized)) return false;
|
|
1086
|
+
}
|
|
1087
|
+
return fallback;
|
|
1088
|
+
}
|
|
1089
|
+
var runtimeEnv = typeof window !== "undefined" ? window.__HF_STUDIO_ENV__ ?? {} : {};
|
|
1090
|
+
var env = { ...import.meta.env ?? {}, ...runtimeEnv };
|
|
1091
|
+
var STUDIO_SDK_CUTOVER_ENABLED = resolveStudioBooleanEnvFlag(
|
|
1092
|
+
env,
|
|
1093
|
+
["VITE_STUDIO_SDK_CUTOVER_ENABLED"],
|
|
1094
|
+
true
|
|
1095
|
+
);
|
|
1096
|
+
var STUDIO_SDK_CUTOVER_FAMILIES = resolveEnabledSdkFamilies(
|
|
1097
|
+
env,
|
|
1098
|
+
STUDIO_SDK_CUTOVER_ENABLED
|
|
1099
|
+
);
|
|
1100
|
+
var STUDIO_SDK_RESOLVER_SHADOW_ENABLED = resolveStudioBooleanEnvFlag(
|
|
1101
|
+
env,
|
|
1102
|
+
["VITE_STUDIO_SDK_RESOLVER_SHADOW_ENABLED"],
|
|
1103
|
+
true
|
|
1104
|
+
);
|
|
1105
|
+
var STUDIO_FLAT_INSPECTOR_ENABLED = resolveStudioBooleanEnvFlag(
|
|
1106
|
+
env,
|
|
1107
|
+
["VITE_STUDIO_ENABLE_FLAT_INSPECTOR", "VITE_STUDIO_FLAT_INSPECTOR_ENABLED"],
|
|
1108
|
+
true
|
|
1109
|
+
);
|
|
1110
|
+
var STUDIO_API_SAME_ORIGIN_CREDENTIALS = resolveStudioBooleanEnvFlag(
|
|
1111
|
+
env,
|
|
1112
|
+
["VITE_STUDIO_API_SAME_ORIGIN_CREDENTIALS"],
|
|
1113
|
+
false
|
|
1114
|
+
);
|
|
1115
|
+
|
|
1116
|
+
// src/utils/studioApiFetch.ts
|
|
1117
|
+
var LOOPBACK_HOSTS = /* @__PURE__ */ new Set(["localhost", "127.0.0.1", "[::1]"]);
|
|
1118
|
+
function studioApiCredentials() {
|
|
1119
|
+
if (STUDIO_API_SAME_ORIGIN_CREDENTIALS) return "same-origin";
|
|
1120
|
+
const host = globalThis.location?.hostname;
|
|
1121
|
+
return !host || LOOPBACK_HOSTS.has(host) ? "omit" : "same-origin";
|
|
1122
|
+
}
|
|
1123
|
+
function studioApiFetch(input, init) {
|
|
1124
|
+
return globalThis.fetch(input, { ...init, credentials: studioApiCredentials() });
|
|
1125
|
+
}
|
|
1126
|
+
|
|
1029
1127
|
export {
|
|
1030
1128
|
buildProjectHash,
|
|
1031
1129
|
parseProjectHashRoute,
|
|
@@ -1033,6 +1131,7 @@ export {
|
|
|
1033
1131
|
buildProjectApiPath,
|
|
1034
1132
|
roundTo3,
|
|
1035
1133
|
roundToLayoutPx,
|
|
1134
|
+
roundToLayoutSize,
|
|
1036
1135
|
roundToCenti,
|
|
1037
1136
|
parseCssColor,
|
|
1038
1137
|
resolvePickerColor,
|
|
@@ -1093,6 +1192,13 @@ export {
|
|
|
1093
1192
|
deriveTimelineStoreKeyForDomId,
|
|
1094
1193
|
previewElementFinder,
|
|
1095
1194
|
findClipElementById,
|
|
1096
|
-
createTimelineDomNodeResolver
|
|
1195
|
+
createTimelineDomNodeResolver,
|
|
1196
|
+
isSdkFamilyEnabled,
|
|
1197
|
+
STUDIO_SDK_CUTOVER_ENABLED,
|
|
1198
|
+
STUDIO_SDK_CUTOVER_FAMILIES,
|
|
1199
|
+
STUDIO_SDK_RESOLVER_SHADOW_ENABLED,
|
|
1200
|
+
STUDIO_FLAT_INSPECTOR_ENABLED,
|
|
1201
|
+
manualEditingAvailability_exports,
|
|
1202
|
+
studioApiFetch
|
|
1097
1203
|
};
|
|
1098
|
-
//# sourceMappingURL=chunk-
|
|
1204
|
+
//# sourceMappingURL=chunk-6JY3MTIX.js.map
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
HyperframesLoader
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-Y2OHHNM2.js";
|
|
4
4
|
import {
|
|
5
5
|
buildProjectApiPath,
|
|
6
|
-
splitTimelineElementKey
|
|
7
|
-
|
|
6
|
+
splitTimelineElementKey,
|
|
7
|
+
studioApiFetch
|
|
8
|
+
} from "./chunk-6JY3MTIX.js";
|
|
8
9
|
|
|
9
10
|
// src/player/lib/time.ts
|
|
10
11
|
var STUDIO_PREVIEW_FPS = 30;
|
|
@@ -959,6 +960,87 @@ function whenPreviewBooted(projectId) {
|
|
|
959
960
|
});
|
|
960
961
|
}
|
|
961
962
|
|
|
963
|
+
// src/player/sceneSwap.ts
|
|
964
|
+
var SCENES_SWAPPED = "hf-scenes-swapped";
|
|
965
|
+
var SCENE_SWAP_MS = 5e3;
|
|
966
|
+
var PREVIEW_DOCUMENT_LOADED = "hf-preview-document-loaded";
|
|
967
|
+
function announcePreviewDocumentLoaded(iframe) {
|
|
968
|
+
iframe.dispatchEvent(new Event(PREVIEW_DOCUMENT_LOADED));
|
|
969
|
+
}
|
|
970
|
+
function onPreviewDocumentLoaded(iframe, onLoaded) {
|
|
971
|
+
iframe.addEventListener(PREVIEW_DOCUMENT_LOADED, onLoaded);
|
|
972
|
+
return () => iframe.removeEventListener(PREVIEW_DOCUMENT_LOADED, onLoaded);
|
|
973
|
+
}
|
|
974
|
+
function onPreviewContentReplaced(iframe, onReplaced) {
|
|
975
|
+
const stopLoaded = onPreviewDocumentLoaded(iframe, onReplaced);
|
|
976
|
+
iframe.addEventListener(SCENES_SWAPPED, onReplaced);
|
|
977
|
+
return () => {
|
|
978
|
+
stopLoaded();
|
|
979
|
+
iframe.removeEventListener(SCENES_SWAPPED, onReplaced);
|
|
980
|
+
};
|
|
981
|
+
}
|
|
982
|
+
var PREVIEW_PROMOTED = "hf-preview-promoted";
|
|
983
|
+
function announcePreviewPromoted(promotion) {
|
|
984
|
+
promotion.live.ownerDocument.dispatchEvent(
|
|
985
|
+
new CustomEvent(PREVIEW_PROMOTED, { detail: promotion })
|
|
986
|
+
);
|
|
987
|
+
}
|
|
988
|
+
function onPreviewPromoted(doc, listener) {
|
|
989
|
+
const handle = (event) => listener(event.detail);
|
|
990
|
+
doc.addEventListener(PREVIEW_PROMOTED, handle);
|
|
991
|
+
return () => doc.removeEventListener(PREVIEW_PROMOTED, handle);
|
|
992
|
+
}
|
|
993
|
+
function markScenesStale(iframe, files) {
|
|
994
|
+
const doc = iframe?.contentDocument;
|
|
995
|
+
const meta = doc?.querySelector('meta[name="hf-scene-parts"]');
|
|
996
|
+
if (!doc || !meta) return;
|
|
997
|
+
let parts;
|
|
998
|
+
try {
|
|
999
|
+
parts = JSON.parse(meta.content);
|
|
1000
|
+
} catch {
|
|
1001
|
+
return;
|
|
1002
|
+
}
|
|
1003
|
+
for (const file of files) {
|
|
1004
|
+
const hosts = doc.querySelectorAll(`[data-composition-file="${CSS.escape(file)}"]`);
|
|
1005
|
+
if (hosts.length === 0 && file.endsWith(".html")) parts.shared = "";
|
|
1006
|
+
for (const host of hosts) {
|
|
1007
|
+
const scene = host.closest("[data-hf-scene]")?.getAttribute("data-hf-scene");
|
|
1008
|
+
if (scene && scene in parts.scenes) parts.scenes[scene] = "";
|
|
1009
|
+
}
|
|
1010
|
+
}
|
|
1011
|
+
meta.content = JSON.stringify(parts);
|
|
1012
|
+
}
|
|
1013
|
+
function sceneSwapFor(iframe) {
|
|
1014
|
+
const win = iframe.contentWindow;
|
|
1015
|
+
const swap = win?.__hfSwapScenes;
|
|
1016
|
+
if (typeof swap !== "function") return null;
|
|
1017
|
+
return async (url, isCurrent, cancel) => {
|
|
1018
|
+
if (cancel?.aborted) throw cancel.reason;
|
|
1019
|
+
const deadline = new AbortController();
|
|
1020
|
+
const timer = setTimeout(
|
|
1021
|
+
() => deadline.abort(new Error("the preview took too long to swap")),
|
|
1022
|
+
SCENE_SWAP_MS
|
|
1023
|
+
);
|
|
1024
|
+
cancel?.addEventListener("abort", () => deadline.abort(cancel.reason), { once: true });
|
|
1025
|
+
const swapping = (async () => {
|
|
1026
|
+
const response = await studioApiFetch(url, { signal: deadline.signal });
|
|
1027
|
+
if (!response.ok) throw new Error(`preview request failed with ${response.status}`);
|
|
1028
|
+
const html = await response.text();
|
|
1029
|
+
if (!isCurrent()) throw new Error("superseded by a newer reload");
|
|
1030
|
+
await swap.call(win, html, deadline.signal);
|
|
1031
|
+
})();
|
|
1032
|
+
const expired = new Promise(
|
|
1033
|
+
(_resolve, reject) => deadline.signal.addEventListener("abort", () => reject(deadline.signal.reason))
|
|
1034
|
+
);
|
|
1035
|
+
try {
|
|
1036
|
+
await Promise.race([swapping, expired]);
|
|
1037
|
+
} finally {
|
|
1038
|
+
clearTimeout(timer);
|
|
1039
|
+
}
|
|
1040
|
+
iframe.dispatchEvent(new Event(SCENES_SWAPPED));
|
|
1041
|
+
};
|
|
1042
|
+
}
|
|
1043
|
+
|
|
962
1044
|
// src/player/components/Player.tsx
|
|
963
1045
|
import { forwardRef, useEffect as useEffect2, useRef, useState } from "react";
|
|
964
1046
|
import { isLottieAnimationLoaded } from "@hyperframes/core/runtime/lottie-readiness";
|
|
@@ -1052,6 +1134,7 @@ function hasUnloadedAssets(iframe, lastResult) {
|
|
|
1052
1134
|
return lastResult;
|
|
1053
1135
|
}
|
|
1054
1136
|
}
|
|
1137
|
+
var runtimeBootedIn = (iframe) => iframe.contentWindow?.__playerReady === true;
|
|
1055
1138
|
var Player = forwardRef(
|
|
1056
1139
|
({
|
|
1057
1140
|
projectId,
|
|
@@ -1130,9 +1213,11 @@ var Player = forwardRef(
|
|
|
1130
1213
|
const loading = getShaderTransitionLoading(event);
|
|
1131
1214
|
if (loading !== null) setShaderTransitionLoading(loading);
|
|
1132
1215
|
};
|
|
1216
|
+
let loadedDocument = null;
|
|
1133
1217
|
const handleReady = () => {
|
|
1134
1218
|
setPreviewError(null);
|
|
1135
1219
|
setCompositionLoading(false);
|
|
1220
|
+
if (iframe.contentDocument && runtimeBootedIn(iframe)) handleLoad();
|
|
1136
1221
|
};
|
|
1137
1222
|
const handlePainted = () => {
|
|
1138
1223
|
setPainted(true);
|
|
@@ -1145,6 +1230,9 @@ var Player = forwardRef(
|
|
|
1145
1230
|
setCompositionLoading(false);
|
|
1146
1231
|
};
|
|
1147
1232
|
const handleLoad = () => {
|
|
1233
|
+
const doc = iframe.contentDocument;
|
|
1234
|
+
if (doc && doc === loadedDocument) return;
|
|
1235
|
+
loadedDocument = doc;
|
|
1148
1236
|
loadCountRef.current++;
|
|
1149
1237
|
setLoaded(true);
|
|
1150
1238
|
setPreviewError(null);
|
|
@@ -1159,6 +1247,7 @@ var Player = forwardRef(
|
|
|
1159
1247
|
container.addEventListener("animationend", onEnd, { once: true });
|
|
1160
1248
|
}
|
|
1161
1249
|
onLoadRef.current();
|
|
1250
|
+
announcePreviewDocumentLoaded(iframe);
|
|
1162
1251
|
if (assetPollRef.current) clearInterval(assetPollRef.current);
|
|
1163
1252
|
const isContentRefresh = loadCountRef.current > 1;
|
|
1164
1253
|
let lastUnloaded = isContentRefresh ? false : hasUnloadedAssets(iframe, false);
|
|
@@ -1437,6 +1526,13 @@ export {
|
|
|
1437
1526
|
usePlayerStore,
|
|
1438
1527
|
isPreviewBooted,
|
|
1439
1528
|
whenPreviewBooted,
|
|
1529
|
+
announcePreviewDocumentLoaded,
|
|
1530
|
+
onPreviewDocumentLoaded,
|
|
1531
|
+
onPreviewContentReplaced,
|
|
1532
|
+
announcePreviewPromoted,
|
|
1533
|
+
onPreviewPromoted,
|
|
1534
|
+
markScenesStale,
|
|
1535
|
+
sceneSwapFor,
|
|
1440
1536
|
Player
|
|
1441
1537
|
};
|
|
1442
|
-
//# sourceMappingURL=chunk-
|
|
1538
|
+
//# sourceMappingURL=chunk-NZPJUZKT.js.map
|
|
@@ -17,99 +17,12 @@ import {
|
|
|
17
17
|
normalizeTimelineCompositionSource,
|
|
18
18
|
parsePx,
|
|
19
19
|
querySelectorAllSafely,
|
|
20
|
+
studioApiFetch,
|
|
20
21
|
withSelectorIndexPass
|
|
21
|
-
} from "./chunk-
|
|
22
|
-
import {
|
|
23
|
-
__export
|
|
24
|
-
} from "./chunk-PZ5AY32C.js";
|
|
25
|
-
|
|
26
|
-
// src/components/editor/manualEditingAvailability.ts
|
|
27
|
-
var manualEditingAvailability_exports = {};
|
|
28
|
-
__export(manualEditingAvailability_exports, {
|
|
29
|
-
STUDIO_API_SAME_ORIGIN_CREDENTIALS: () => STUDIO_API_SAME_ORIGIN_CREDENTIALS,
|
|
30
|
-
STUDIO_FLAT_INSPECTOR_ENABLED: () => STUDIO_FLAT_INSPECTOR_ENABLED,
|
|
31
|
-
STUDIO_SDK_CUTOVER_ENABLED: () => STUDIO_SDK_CUTOVER_ENABLED,
|
|
32
|
-
STUDIO_SDK_CUTOVER_FAMILIES: () => STUDIO_SDK_CUTOVER_FAMILIES,
|
|
33
|
-
STUDIO_SDK_RESOLVER_SHADOW_ENABLED: () => STUDIO_SDK_RESOLVER_SHADOW_ENABLED,
|
|
34
|
-
resolveStudioBooleanEnvFlag: () => resolveStudioBooleanEnvFlag
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
// src/utils/sdkCutoverPolicy.ts
|
|
38
|
-
var STUDIO_SDK_OPERATION_FAMILIES = [
|
|
39
|
-
"dom",
|
|
40
|
-
"timing",
|
|
41
|
-
"gsap-animation",
|
|
42
|
-
"gsap-keyframe",
|
|
43
|
-
"lifecycle"
|
|
44
|
-
];
|
|
45
|
-
function resolveEnabledSdkFamilies(env2, masterEnabled) {
|
|
46
|
-
if (!masterEnabled) return /* @__PURE__ */ new Set();
|
|
47
|
-
const raw = env2["VITE_STUDIO_SDK_CUTOVER_FAMILIES"];
|
|
48
|
-
if (typeof raw !== "string" || raw.trim() === "") return new Set(STUDIO_SDK_OPERATION_FAMILIES);
|
|
49
|
-
const requested = raw.split(",").map((family) => family.trim()).filter(Boolean);
|
|
50
|
-
const known = new Set(STUDIO_SDK_OPERATION_FAMILIES);
|
|
51
|
-
const unknown = requested.filter((family) => !known.has(family));
|
|
52
|
-
if (unknown.length > 0) {
|
|
53
|
-
throw new Error(`Unknown Studio SDK cutover families: ${unknown.join(", ")}`);
|
|
54
|
-
}
|
|
55
|
-
return new Set(requested);
|
|
56
|
-
}
|
|
57
|
-
function isSdkFamilyEnabled(masterEnabled, configured, family) {
|
|
58
|
-
return masterEnabled && (configured?.has(family) ?? true);
|
|
59
|
-
}
|
|
22
|
+
} from "./chunk-6JY3MTIX.js";
|
|
60
23
|
|
|
61
|
-
// src/components/editor/
|
|
62
|
-
|
|
63
|
-
var FALSY_ENV_VALUES = /* @__PURE__ */ new Set(["0", "false", "no", "off", "disabled"]);
|
|
64
|
-
function resolveStudioBooleanEnvFlag(env2, names, fallback) {
|
|
65
|
-
for (const name of names) {
|
|
66
|
-
const value = env2[name];
|
|
67
|
-
if (typeof value === "boolean") return value;
|
|
68
|
-
if (typeof value !== "string") continue;
|
|
69
|
-
const normalized = value.trim().toLowerCase();
|
|
70
|
-
if (!normalized) continue;
|
|
71
|
-
if (TRUTHY_ENV_VALUES.has(normalized)) return true;
|
|
72
|
-
if (FALSY_ENV_VALUES.has(normalized)) return false;
|
|
73
|
-
}
|
|
74
|
-
return fallback;
|
|
75
|
-
}
|
|
76
|
-
var runtimeEnv = typeof window !== "undefined" ? window.__HF_STUDIO_ENV__ ?? {} : {};
|
|
77
|
-
var env = { ...import.meta.env ?? {}, ...runtimeEnv };
|
|
78
|
-
var STUDIO_SDK_CUTOVER_ENABLED = resolveStudioBooleanEnvFlag(
|
|
79
|
-
env,
|
|
80
|
-
["VITE_STUDIO_SDK_CUTOVER_ENABLED"],
|
|
81
|
-
true
|
|
82
|
-
);
|
|
83
|
-
var STUDIO_SDK_CUTOVER_FAMILIES = resolveEnabledSdkFamilies(
|
|
84
|
-
env,
|
|
85
|
-
STUDIO_SDK_CUTOVER_ENABLED
|
|
86
|
-
);
|
|
87
|
-
var STUDIO_SDK_RESOLVER_SHADOW_ENABLED = resolveStudioBooleanEnvFlag(
|
|
88
|
-
env,
|
|
89
|
-
["VITE_STUDIO_SDK_RESOLVER_SHADOW_ENABLED"],
|
|
90
|
-
true
|
|
91
|
-
);
|
|
92
|
-
var STUDIO_FLAT_INSPECTOR_ENABLED = resolveStudioBooleanEnvFlag(
|
|
93
|
-
env,
|
|
94
|
-
["VITE_STUDIO_ENABLE_FLAT_INSPECTOR", "VITE_STUDIO_FLAT_INSPECTOR_ENABLED"],
|
|
95
|
-
true
|
|
96
|
-
);
|
|
97
|
-
var STUDIO_API_SAME_ORIGIN_CREDENTIALS = resolveStudioBooleanEnvFlag(
|
|
98
|
-
env,
|
|
99
|
-
["VITE_STUDIO_API_SAME_ORIGIN_CREDENTIALS"],
|
|
100
|
-
false
|
|
101
|
-
);
|
|
102
|
-
|
|
103
|
-
// src/utils/studioApiFetch.ts
|
|
104
|
-
var LOOPBACK_HOSTS = /* @__PURE__ */ new Set(["localhost", "127.0.0.1", "[::1]"]);
|
|
105
|
-
function studioApiCredentials() {
|
|
106
|
-
if (STUDIO_API_SAME_ORIGIN_CREDENTIALS) return "same-origin";
|
|
107
|
-
const host = globalThis.location?.hostname;
|
|
108
|
-
return !host || LOOPBACK_HOSTS.has(host) ? "omit" : "same-origin";
|
|
109
|
-
}
|
|
110
|
-
function studioApiFetch(input, init) {
|
|
111
|
-
return globalThis.fetch(input, { ...init, credentials: studioApiCredentials() });
|
|
112
|
-
}
|
|
24
|
+
// src/components/editor/domEditingLayers.ts
|
|
25
|
+
import { PREVIEW_ONLY_ATTRS } from "@hyperframes/core/studio-preview-mark";
|
|
113
26
|
|
|
114
27
|
// src/components/editor/probeSourceElement.ts
|
|
115
28
|
function knownSourceAnswer(previous, element, sourceFile, target) {
|
|
@@ -548,6 +461,7 @@ function getTextFieldLabel(_tagName, index, total, source) {
|
|
|
548
461
|
if (source === "self" || total === 1) return "Content";
|
|
549
462
|
return `Text ${index + 1}`;
|
|
550
463
|
}
|
|
464
|
+
var NOT_COPIED_ATTRS = /* @__PURE__ */ new Set(["style", ...PREVIEW_ONLY_ATTRS]);
|
|
551
465
|
function buildTextField(el, index, total, source, sourceChildIndex) {
|
|
552
466
|
const tagName = el.tagName.toLowerCase();
|
|
553
467
|
const key = el.getAttribute("data-hf-text-key") ?? `${source}:${index}:${tagName}`;
|
|
@@ -556,7 +470,7 @@ function buildTextField(el, index, total, source, sourceChildIndex) {
|
|
|
556
470
|
label: getTextFieldLabel(tagName, index, total, source),
|
|
557
471
|
value: el.textContent ?? "",
|
|
558
472
|
tagName,
|
|
559
|
-
attributes: Array.from(el.attributes).filter((attribute) => attribute.name
|
|
473
|
+
attributes: Array.from(el.attributes).filter((attribute) => !NOT_COPIED_ATTRS.has(attribute.name)).map((attribute) => ({
|
|
560
474
|
name: attribute.name,
|
|
561
475
|
value: attribute.value
|
|
562
476
|
})),
|
|
@@ -898,13 +812,6 @@ function buildDomEditPatchTarget(selection) {
|
|
|
898
812
|
}
|
|
899
813
|
|
|
900
814
|
export {
|
|
901
|
-
isSdkFamilyEnabled,
|
|
902
|
-
STUDIO_SDK_CUTOVER_ENABLED,
|
|
903
|
-
STUDIO_SDK_CUTOVER_FAMILIES,
|
|
904
|
-
STUDIO_SDK_RESOLVER_SHADOW_ENABLED,
|
|
905
|
-
STUDIO_FLAT_INSPECTOR_ENABLED,
|
|
906
|
-
manualEditingAvailability_exports,
|
|
907
|
-
studioApiFetch,
|
|
908
815
|
isElementComputedVisible,
|
|
909
816
|
getDomLayerPatchTarget,
|
|
910
817
|
resolveAllVisualDomEditTargets,
|
|
@@ -935,4 +842,4 @@ export {
|
|
|
935
842
|
readHfId,
|
|
936
843
|
buildDomEditPatchTarget
|
|
937
844
|
};
|
|
938
|
-
//# sourceMappingURL=chunk-
|
|
845
|
+
//# sourceMappingURL=chunk-TP6D3U37.js.map
|
|
@@ -271,7 +271,17 @@ function HyperframesLoader({
|
|
|
271
271
|
// src/components/ui/Menu.tsx
|
|
272
272
|
import { ContextMenu as BaseContextMenu } from "@base-ui/react/context-menu";
|
|
273
273
|
import { Menu as BaseMenu } from "@base-ui/react/menu";
|
|
274
|
+
import { useRef } from "react";
|
|
274
275
|
import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
276
|
+
var CONTENTS = { display: "contents" };
|
|
277
|
+
function useInlinePortal(container) {
|
|
278
|
+
const host = useRef(null);
|
|
279
|
+
if (container !== null) return { host: null, portal: { container } };
|
|
280
|
+
return {
|
|
281
|
+
host: /* @__PURE__ */ jsx6("span", { ref: host, style: CONTENTS }),
|
|
282
|
+
portal: { container: host, style: CONTENTS }
|
|
283
|
+
};
|
|
284
|
+
}
|
|
275
285
|
var SIDE_OFFSET = 6;
|
|
276
286
|
var VIEWPORT_MARGIN = 8;
|
|
277
287
|
function floatingMotion(openDuration) {
|
|
@@ -315,9 +325,11 @@ function Menu({
|
|
|
315
325
|
"data-preview-state": previewState,
|
|
316
326
|
...root
|
|
317
327
|
}) {
|
|
328
|
+
const inline = useInlinePortal(container);
|
|
318
329
|
return /* @__PURE__ */ jsxs4(BaseMenu.Root, { ...root, children: [
|
|
319
330
|
/* @__PURE__ */ jsx6(BaseMenu.Trigger, { render: trigger }),
|
|
320
|
-
|
|
331
|
+
inline.host,
|
|
332
|
+
/* @__PURE__ */ jsx6(BaseMenu.Portal, { ...inline.portal, children: /* @__PURE__ */ jsx6(
|
|
321
333
|
BaseMenu.Positioner,
|
|
322
334
|
{
|
|
323
335
|
side,
|
|
@@ -347,9 +359,11 @@ function ContextMenu({
|
|
|
347
359
|
"data-preview-state": previewState,
|
|
348
360
|
...root
|
|
349
361
|
}) {
|
|
362
|
+
const inline = useInlinePortal(container);
|
|
350
363
|
return /* @__PURE__ */ jsxs4(BaseContextMenu.Root, { ...root, children: [
|
|
351
364
|
/* @__PURE__ */ jsx6(BaseContextMenu.Trigger, { render: trigger }),
|
|
352
|
-
|
|
365
|
+
inline.host,
|
|
366
|
+
/* @__PURE__ */ jsx6(BaseContextMenu.Portal, { ...inline.portal, children: /* @__PURE__ */ jsx6(BaseContextMenu.Positioner, { collisionPadding: VIEWPORT_MARGIN, className: POPUP_LAYER, children: /* @__PURE__ */ jsx6(
|
|
353
367
|
BaseContextMenu.Popup,
|
|
354
368
|
{
|
|
355
369
|
"aria-label": ariaLabel,
|
|
@@ -401,7 +415,7 @@ function MenuSeparator({ className, ...props }) {
|
|
|
401
415
|
|
|
402
416
|
// src/components/ui/Tooltip.tsx
|
|
403
417
|
import { Tooltip as BaseTooltip } from "@base-ui/react/tooltip";
|
|
404
|
-
import { cloneElement, useId as useId2, useRef, useState } from "react";
|
|
418
|
+
import { cloneElement, useId as useId2, useRef as useRef2, useState } from "react";
|
|
405
419
|
import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
406
420
|
var SIDE_OFFSET2 = 6;
|
|
407
421
|
var VIEWPORT_MARGIN2 = 8;
|
|
@@ -413,7 +427,7 @@ function Tooltip({
|
|
|
413
427
|
disabled = false
|
|
414
428
|
}) {
|
|
415
429
|
const [open, setOpen] = useState(false);
|
|
416
|
-
const boxRef =
|
|
430
|
+
const boxRef = useRef2(null);
|
|
417
431
|
const tooltipId = useId2();
|
|
418
432
|
return /* @__PURE__ */ jsxs5(BaseTooltip.Root, { open, onOpenChange: setOpen, disabled, children: [
|
|
419
433
|
/* @__PURE__ */ jsx7(BaseTooltip.Trigger, { delay, render: /* @__PURE__ */ jsx7("span", { ref: boxRef, className: "contents" }), children: cloneElement(children, {
|
|
@@ -470,9 +484,11 @@ function Popover({
|
|
|
470
484
|
"data-preview-state": previewState,
|
|
471
485
|
...root
|
|
472
486
|
}) {
|
|
487
|
+
const inline = useInlinePortal(container);
|
|
473
488
|
return /* @__PURE__ */ jsxs6(BasePopover.Root, { ...root, children: [
|
|
474
489
|
/* @__PURE__ */ jsx8(BasePopover.Trigger, { render: trigger }),
|
|
475
|
-
|
|
490
|
+
inline.host,
|
|
491
|
+
/* @__PURE__ */ jsx8(BasePopover.Portal, { ...inline.portal, children: /* @__PURE__ */ jsx8(
|
|
476
492
|
BasePopover.Positioner,
|
|
477
493
|
{
|
|
478
494
|
side,
|
|
@@ -501,7 +517,7 @@ function Popover({
|
|
|
501
517
|
|
|
502
518
|
// src/components/ui/Input.tsx
|
|
503
519
|
import { Input as BaseInput } from "@base-ui/react/input";
|
|
504
|
-
import { useEffect, useRef as
|
|
520
|
+
import { useEffect, useRef as useRef3, useState as useState2 } from "react";
|
|
505
521
|
import { jsx as jsx9 } from "react/jsx-runtime";
|
|
506
522
|
var fieldBase = cn(
|
|
507
523
|
"flex min-w-0 items-center gap-1.5 h-ctl px-2 rounded-md",
|
|
@@ -532,9 +548,9 @@ function Input({
|
|
|
532
548
|
...props
|
|
533
549
|
}) {
|
|
534
550
|
const [draft, setDraft] = useState2(value);
|
|
535
|
-
const valueRef =
|
|
551
|
+
const valueRef = useRef3(value);
|
|
536
552
|
valueRef.current = value;
|
|
537
|
-
const dirtyRef =
|
|
553
|
+
const dirtyRef = useRef3(false);
|
|
538
554
|
useEffect(() => {
|
|
539
555
|
if (!dirtyRef.current) setDraft(value);
|
|
540
556
|
}, [value]);
|
|
@@ -585,7 +601,7 @@ function Input({
|
|
|
585
601
|
|
|
586
602
|
// src/components/ui/NumberField.tsx
|
|
587
603
|
import { NumberField as BaseNumberField } from "@base-ui/react/number-field";
|
|
588
|
-
import { useEffect as useEffect2, useRef as
|
|
604
|
+
import { useEffect as useEffect2, useRef as useRef4, useState as useState3 } from "react";
|
|
589
605
|
import { jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
590
606
|
function NumberField({
|
|
591
607
|
label,
|
|
@@ -602,9 +618,9 @@ function NumberField({
|
|
|
602
618
|
}) {
|
|
603
619
|
const [draft, setDraft] = useState3(value);
|
|
604
620
|
const [invalid, setInvalid] = useState3(false);
|
|
605
|
-
const inputRef =
|
|
606
|
-
const committedRef =
|
|
607
|
-
const valueRef =
|
|
621
|
+
const inputRef = useRef4(null);
|
|
622
|
+
const committedRef = useRef4(value);
|
|
623
|
+
const valueRef = useRef4(value);
|
|
608
624
|
valueRef.current = value;
|
|
609
625
|
useEffect2(() => {
|
|
610
626
|
committedRef.current = value;
|
|
@@ -756,7 +772,7 @@ function Select({
|
|
|
756
772
|
|
|
757
773
|
// src/components/ui/Slider.tsx
|
|
758
774
|
import { Slider as BaseSlider } from "@base-ui/react/slider";
|
|
759
|
-
import { useEffect as useEffect3, useRef as
|
|
775
|
+
import { useEffect as useEffect3, useRef as useRef5, useState as useState4 } from "react";
|
|
760
776
|
import { jsx as jsx12, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
761
777
|
var first = (next) => Array.isArray(next) ? next[0] : next;
|
|
762
778
|
function Slider({
|
|
@@ -773,11 +789,11 @@ function Slider({
|
|
|
773
789
|
"data-preview-state": previewState
|
|
774
790
|
}) {
|
|
775
791
|
const [draft, setDraft] = useState4(value);
|
|
776
|
-
const draggingRef =
|
|
777
|
-
const abortedRef =
|
|
778
|
-
const dragStartRef =
|
|
779
|
-
const committedRef =
|
|
780
|
-
const valueRef =
|
|
792
|
+
const draggingRef = useRef5(false);
|
|
793
|
+
const abortedRef = useRef5(false);
|
|
794
|
+
const dragStartRef = useRef5(value);
|
|
795
|
+
const committedRef = useRef5(value);
|
|
796
|
+
const valueRef = useRef5(value);
|
|
781
797
|
valueRef.current = value;
|
|
782
798
|
useEffect3(() => {
|
|
783
799
|
if (draggingRef.current) return;
|
|
@@ -951,4 +967,4 @@ export {
|
|
|
951
967
|
Slider,
|
|
952
968
|
Toggle
|
|
953
969
|
};
|
|
954
|
-
//# sourceMappingURL=chunk-
|
|
970
|
+
//# sourceMappingURL=chunk-Y2OHHNM2.js.map
|
|
@@ -19,8 +19,8 @@ import {
|
|
|
19
19
|
resolveDomEditCapabilities,
|
|
20
20
|
resolveDomEditSelection,
|
|
21
21
|
serializeDomEditTextFields
|
|
22
|
-
} from "./chunk-
|
|
23
|
-
import "./chunk-
|
|
22
|
+
} from "./chunk-TP6D3U37.js";
|
|
23
|
+
import "./chunk-6JY3MTIX.js";
|
|
24
24
|
import "./chunk-PZ5AY32C.js";
|
|
25
25
|
export {
|
|
26
26
|
buildDefaultDomEditTextField,
|
|
@@ -44,4 +44,4 @@ export {
|
|
|
44
44
|
resolveDomEditSelection,
|
|
45
45
|
serializeDomEditTextFields
|
|
46
46
|
};
|
|
47
|
-
//# sourceMappingURL=domEditingLayers-
|
|
47
|
+
//# sourceMappingURL=domEditingLayers-PTP2ICGM.js.map
|
package/dist/studio/index.d.ts
CHANGED
|
@@ -2692,6 +2692,7 @@ interface StartRenderOptions {
|
|
|
2692
2692
|
format?: "mp4" | "webm" | "mov";
|
|
2693
2693
|
/** `"auto"` (default) renders at the composition's authored dimensions. */
|
|
2694
2694
|
resolution?: ResolutionPreset | "auto";
|
|
2695
|
+
gpu?: boolean;
|
|
2695
2696
|
/**
|
|
2696
2697
|
* Render a specific composition file. Omit it to render the composition the
|
|
2697
2698
|
* user currently has open — only the sidebar's per-composition Render button
|
|
@@ -2728,7 +2729,7 @@ interface CompositionDimensions {
|
|
|
2728
2729
|
width: number;
|
|
2729
2730
|
height: number;
|
|
2730
2731
|
}
|
|
2731
|
-
type StartRenderHandler = (format: "mp4" | "webm" | "mov", quality: "draft" | "standard" | "high", resolution: ResolutionPreset | "auto", fps: 24 | 30 | 60) => void | Promise<void>;
|
|
2732
|
+
type StartRenderHandler = (format: "mp4" | "webm" | "mov", quality: "draft" | "standard" | "high", resolution: ResolutionPreset | "auto", fps: 24 | 30 | 60, gpu?: boolean) => void | Promise<void>;
|
|
2732
2733
|
interface RenderQueueProps {
|
|
2733
2734
|
jobs: RenderJob[];
|
|
2734
2735
|
projectId: string;
|
|
@@ -2764,9 +2765,10 @@ interface PersistedRenderSettings {
|
|
|
2764
2765
|
format: "mp4" | "webm" | "mov";
|
|
2765
2766
|
quality: "draft" | "standard" | "high";
|
|
2766
2767
|
fps: 24 | 30 | 60;
|
|
2768
|
+
gpu: boolean;
|
|
2767
2769
|
}
|
|
2768
2770
|
declare function getPersistedRenderSettings(): PersistedRenderSettings;
|
|
2769
|
-
declare function persistRenderSettings(format: PersistedRenderSettings["format"], quality: PersistedRenderSettings["quality"], fps: PersistedRenderSettings["fps"]): void;
|
|
2771
|
+
declare function persistRenderSettings(format: PersistedRenderSettings["format"], quality: PersistedRenderSettings["quality"], fps: PersistedRenderSettings["fps"], gpu?: boolean): void;
|
|
2770
2772
|
|
|
2771
2773
|
interface PickedElement {
|
|
2772
2774
|
id: string | null;
|
|
@@ -3590,6 +3592,7 @@ declare function useDomEditSession({ projectId, activeCompPath, compIdToSrc, cap
|
|
|
3590
3592
|
/** The one source for which preview is on screen: the host's iframe, then each reload promoted in its place. */
|
|
3591
3593
|
declare function useLivePreviewIframe(host: HTMLIFrameElement | null): HTMLIFrameElement | null;
|
|
3592
3594
|
|
|
3595
|
+
declare function announcePreviewDocumentLoaded(iframe: HTMLIFrameElement): void;
|
|
3593
3596
|
type PreviewPromotion = {
|
|
3594
3597
|
retired: HTMLIFrameElement | null;
|
|
3595
3598
|
live: HTMLIFrameElement;
|
|
@@ -3842,8 +3845,8 @@ interface StudioPlaybackValue {
|
|
|
3842
3845
|
refreshPreviewDocumentVersion: () => void;
|
|
3843
3846
|
}
|
|
3844
3847
|
|
|
3845
|
-
/** Studio state the panel reads; passed by hosts outside Studio's providers. Keep previewIframeRef stable
|
|
3846
|
-
*
|
|
3848
|
+
/** Studio state the panel reads; passed by hosts outside Studio's providers. Keep previewIframeRef stable;
|
|
3849
|
+
* a host with its own player calls announcePreviewDocumentLoaded on each new page, or bumps refreshKey. */
|
|
3847
3850
|
type LayersPanelHost = Pick<StudioShellValue, "previewIframeRef" | "activeCompPath" | "showToast"> & Pick<StudioPlaybackValue, "timelineElements" | "isPlaying"> & Partial<Pick<StudioPlaybackValue, "refreshKey" | "compositionLoading">>;
|
|
3848
3851
|
declare const LayersPanel: react.NamedExoticComponent<{
|
|
3849
3852
|
host?: LayersPanelHost;
|
|
@@ -4312,4 +4315,4 @@ declare function buildStudioTools(depsRef: {
|
|
|
4312
4315
|
readonly current: StudioAgentToolsDeps;
|
|
4313
4316
|
}): ModelContextTool[];
|
|
4314
4317
|
|
|
4315
|
-
export { type AgentModalAnchorPoint, type AgentPromptElementInfo, AskAgentModal, type AskAgentModalProps, AudioMeterStrip, type AudioMeterStripProps, AudioWaveform, type AudioWaveformProps, type BlockedTimelineEditIntent, type CanEditTimelineElement, ColorField, CompositionBreadcrumb, type CompositionDimensions, type CompositionLevel, CompositionThumbnail, ConnectedDomEditOverlay, type ConnectedDomEditOverlayProps, DEFAULT_SHORTCUT_SECTIONS, Dock, type DockController, type DomEditCapabilities, type DomEditCommitDeclineReason, type DomEditCommitOutcome, type DomEditGroupPathOffsetCommit, DomEditOverlay, type DomEditOverlayProps, DomEditProvider, type DomEditSelection, type DomEditZOrder, type DomGeometryCommits, type EditHistoryHandle, EditorShell, type EditorShellProps, type ExternalFileChangeBlockedState, type ExternalFileChangeCoordinatorHandle, ExternalFileConflictBanner, type FadeEdge, type FadeHandleBox, type FadeHandleClipBox, type FfmpegStatus, FileTree, GradientField, GridOverlay, ImageThumbnail, type ImageThumbnailProps, LayersPanel, type LayersPanelHost, type LinkShortcutCallbacks, type MarqueeGestures, type MarqueeGesturesDeps, MarqueeOverlay, type MarqueeOverlayProps, type Rect$1 as MarqueeRect, type ModelContextTool, NLEPreview, type PanelId, type PatchOperation, type PersistedRenderSettings, type PickedElement, PlayerControls, type PlayerHandle, type PlayerHandleElement, type PlayerHandleListener, type PlayerHandleTimeListener, type DomEditCompositionRect as PreviewCompositionRect, PreviewGuides, PreviewOverlayProvider, type PreviewOverlayProviderProps, type PreviewPromotion, PreviewReadOnlyProvider, type PreviewSnapPreferences, PropertyPanel, type RenderJob, RenderQueue, type RenderQueueProps, type ResolutionPreset, SNAP_THRESHOLD_PX, type ShortcutHint, type ShortcutSection, ShortcutsButton, type ShortcutsButtonProps, type SnapContext, type SnapEdge, type SnapGuide, SnapGuideOverlay, type SnapGuideOverlayProps, type SnapGuidesState, type Rect as SnapRect, type SnapResult, type SnapTarget, SnapToolbar, SourceEditor, type SpacingGuide, type StartRenderOptions, type StudioAgentToolsDeps, StudioApp, StudioFileConflictError, type StudioLookSnapshot, type StudioPendingEditsDrainResult, TRACK_H, type ThumbnailPriority, type ThumbnailStill, Timeline, TimelineClipMenu, type TimelineClipMenuItem, type TimelineClipRenderContext, type TimelineEditCallbacks, type TimelineEditOutcome, type TimelineEditPermission, TimelineEditPopover, TimelineEditProvider, type TimelineElement, TimelineEmptyStatePart, TimelineFrame, TimelineGapMenu, TimelineHistoryButtons, type TimelineHistoryButtonsProps, TimelineKeyframeMenu, TimelineLanes, TimelineOverlays, TimelinePane, type TimelinePaneProps, TimelinePlayhead, TimelineProvider, TimelineRazorGuide, TimelineRuler, TimelineShortcutHint, type TimelineTheme, type TimelineTimeRange$1 as TimelineTimeRange, TimelineToolbar, type TimelineToolbarProps, type TimelineTrackPadding, type TimelineZIndexReorderCommit, type ToolResult, type UseClipboardOptions, type UseDomEditSessionParams, type UseDomGeometryCommitOptions, type UseDomStyleCommitOptions, type UseEditHistoryActionsOptions, type UsePersistentEditHistoryOptions, type UsePreviewPersistenceParams, type UseProjectFileWriterOptions, type UseRenderClipContentOptions, type UseThumbnailStillOptions, type UseTimelineEditingOptions, VideoThumbnail, type ZOrderAction, applyPatch, buildCompositionSnapTarget, buildGridSnapEdges, buildPickerAgentContextPreview, buildPickerAgentPrompt, buildStudioTools, cancelNewestStudioWaitingPress, collectSnapContext, collectStudioLookScene, currentTimelineRange, dispatchLinkShortcut, displayTrackOrder, extractSnapTargets, fadeHandleBoxes, findElementBlock, flushStudioPendingEdits, formatTime, getPersistedRenderSettings, liveTime, mergeStyleIntoTag, openAudioGainDialog, parseStyleString, persistRenderSettings, resolveDomEditSelection, resolveEquidistanceGuides, resolveGuideLineRect, resolveIframe, resolveSnapAdjustment, resolveSourceFile, revertNewestStudioPendingEdit, snapEngagedForTravel, useAudioGainDialogStore, useAudioMetersVisible, useClipboard, useCompositionStack, useDockLayoutStore, useDomEditSelectionContext, useDomEditSession, useDomEditZOrder, useDomGeometryCommit, useDomStyleCommit, useEditHistoryActions, useElementPicker, useLivePreviewIframe, useMarqueeGestures, usePersistentEditHistory, usePlayerHandle, usePlayerStore, usePreviewCompositionRect, usePreviewGuidesStore, usePreviewIframeStore, usePreviewOverlayContext, usePreviewPersistence, useProjectFileWriter, useRenderClipContent, useRenderQueue, useThumbnailStill, useTimelineContext, useTimelineEditing, useTimelinePlayer, zoomTimelineToRange };
|
|
4318
|
+
export { type AgentModalAnchorPoint, type AgentPromptElementInfo, AskAgentModal, type AskAgentModalProps, AudioMeterStrip, type AudioMeterStripProps, AudioWaveform, type AudioWaveformProps, type BlockedTimelineEditIntent, type CanEditTimelineElement, ColorField, CompositionBreadcrumb, type CompositionDimensions, type CompositionLevel, CompositionThumbnail, ConnectedDomEditOverlay, type ConnectedDomEditOverlayProps, DEFAULT_SHORTCUT_SECTIONS, Dock, type DockController, type DomEditCapabilities, type DomEditCommitDeclineReason, type DomEditCommitOutcome, type DomEditGroupPathOffsetCommit, DomEditOverlay, type DomEditOverlayProps, DomEditProvider, type DomEditSelection, type DomEditZOrder, type DomGeometryCommits, type EditHistoryHandle, EditorShell, type EditorShellProps, type ExternalFileChangeBlockedState, type ExternalFileChangeCoordinatorHandle, ExternalFileConflictBanner, type FadeEdge, type FadeHandleBox, type FadeHandleClipBox, type FfmpegStatus, FileTree, GradientField, GridOverlay, ImageThumbnail, type ImageThumbnailProps, LayersPanel, type LayersPanelHost, type LinkShortcutCallbacks, type MarqueeGestures, type MarqueeGesturesDeps, MarqueeOverlay, type MarqueeOverlayProps, type Rect$1 as MarqueeRect, type ModelContextTool, NLEPreview, type PanelId, type PatchOperation, type PersistedRenderSettings, type PickedElement, PlayerControls, type PlayerHandle, type PlayerHandleElement, type PlayerHandleListener, type PlayerHandleTimeListener, type DomEditCompositionRect as PreviewCompositionRect, PreviewGuides, PreviewOverlayProvider, type PreviewOverlayProviderProps, type PreviewPromotion, PreviewReadOnlyProvider, type PreviewSnapPreferences, PropertyPanel, type RenderJob, RenderQueue, type RenderQueueProps, type ResolutionPreset, SNAP_THRESHOLD_PX, type ShortcutHint, type ShortcutSection, ShortcutsButton, type ShortcutsButtonProps, type SnapContext, type SnapEdge, type SnapGuide, SnapGuideOverlay, type SnapGuideOverlayProps, type SnapGuidesState, type Rect as SnapRect, type SnapResult, type SnapTarget, SnapToolbar, SourceEditor, type SpacingGuide, type StartRenderOptions, type StudioAgentToolsDeps, StudioApp, StudioFileConflictError, type StudioLookSnapshot, type StudioPendingEditsDrainResult, TRACK_H, type ThumbnailPriority, type ThumbnailStill, Timeline, TimelineClipMenu, type TimelineClipMenuItem, type TimelineClipRenderContext, type TimelineEditCallbacks, type TimelineEditOutcome, type TimelineEditPermission, TimelineEditPopover, TimelineEditProvider, type TimelineElement, TimelineEmptyStatePart, TimelineFrame, TimelineGapMenu, TimelineHistoryButtons, type TimelineHistoryButtonsProps, TimelineKeyframeMenu, TimelineLanes, TimelineOverlays, TimelinePane, type TimelinePaneProps, TimelinePlayhead, TimelineProvider, TimelineRazorGuide, TimelineRuler, TimelineShortcutHint, type TimelineTheme, type TimelineTimeRange$1 as TimelineTimeRange, TimelineToolbar, type TimelineToolbarProps, type TimelineTrackPadding, type TimelineZIndexReorderCommit, type ToolResult, type UseClipboardOptions, type UseDomEditSessionParams, type UseDomGeometryCommitOptions, type UseDomStyleCommitOptions, type UseEditHistoryActionsOptions, type UsePersistentEditHistoryOptions, type UsePreviewPersistenceParams, type UseProjectFileWriterOptions, type UseRenderClipContentOptions, type UseThumbnailStillOptions, type UseTimelineEditingOptions, VideoThumbnail, type ZOrderAction, announcePreviewDocumentLoaded, applyPatch, buildCompositionSnapTarget, buildGridSnapEdges, buildPickerAgentContextPreview, buildPickerAgentPrompt, buildStudioTools, cancelNewestStudioWaitingPress, collectSnapContext, collectStudioLookScene, currentTimelineRange, dispatchLinkShortcut, displayTrackOrder, extractSnapTargets, fadeHandleBoxes, findElementBlock, flushStudioPendingEdits, formatTime, getPersistedRenderSettings, liveTime, mergeStyleIntoTag, openAudioGainDialog, parseStyleString, persistRenderSettings, resolveDomEditSelection, resolveEquidistanceGuides, resolveGuideLineRect, resolveIframe, resolveSnapAdjustment, resolveSourceFile, revertNewestStudioPendingEdit, snapEngagedForTravel, useAudioGainDialogStore, useAudioMetersVisible, useClipboard, useCompositionStack, useDockLayoutStore, useDomEditSelectionContext, useDomEditSession, useDomEditZOrder, useDomGeometryCommit, useDomStyleCommit, useEditHistoryActions, useElementPicker, useLivePreviewIframe, useMarqueeGestures, usePersistentEditHistory, usePlayerHandle, usePlayerStore, usePreviewCompositionRect, usePreviewGuidesStore, usePreviewIframeStore, usePreviewOverlayContext, usePreviewPersistence, useProjectFileWriter, useRenderClipContent, useRenderQueue, useThumbnailStill, useTimelineContext, useTimelineEditing, useTimelinePlayer, zoomTimelineToRange };
|
package/dist/studio/index.html
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
document.documentElement.dataset.theme = "paper";
|
|
15
15
|
}
|
|
16
16
|
</script>
|
|
17
|
-
<script type="module" crossorigin src="/assets/index-
|
|
17
|
+
<script type="module" crossorigin src="/assets/index-D8W0a0Z9.js"></script>
|
|
18
18
|
<link rel="stylesheet" crossorigin href="/assets/index-CVd4O6eH.css">
|
|
19
19
|
</head>
|
|
20
20
|
<body>
|