hyperframes 0.8.106 → 0.8.107

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/dist/{add-QRAI4CAF.js → add-DXZ3HNQI.js} +16 -16
  2. package/dist/{animatedGifPrep-RZVYVAXD.js → animatedGifPrep-2IQB4DGE.js} +7 -7
  3. package/dist/{asset-WFBQ5VS6.js → asset-KZIG3MZN.js} +2 -2
  4. package/dist/{assetCataloger-BQREHRS2.js → assetCataloger-4GE6PIUA.js} +3 -3
  5. package/dist/{auth-LVD6TWYG.js → auth-5IYF3H67.js} +2 -2
  6. package/dist/{autoUpdate-HGE2PUZY.js → autoUpdate-5C3FXM6Y.js} +2 -2
  7. package/dist/{backgroundChecks-63CSE4XR.js → backgroundChecks-75WGW4NB.js} +3 -3
  8. package/dist/backgroundChecksWorker.js +3 -3
  9. package/dist/{batchRender-AQN5PRXM.js → batchRender-FKKS3YBX.js} +4 -4
  10. package/dist/{beats-OBCN5OSQ.js → beats-ISR36NSK.js} +11 -11
  11. package/dist/{benchmark-DYHJSR7W.js → benchmark-U6TQ6DS2.js} +13 -13
  12. package/dist/{browser-JLYV5T7O.js → browser-VDS6QAVA.js} +10 -10
  13. package/dist/{bundleWithLocalizedFonts-JKJKZR2S.js → bundleWithLocalizedFonts-PMWWW5YG.js} +2 -2
  14. package/dist/{capture-5BCJWVC7.js → capture-5KE34KCD.js} +2 -2
  15. package/dist/{capture-QYLHIYKJ.js → capture-BKA3UCZS.js} +8 -8
  16. package/dist/{catalog-6UYNKENR.js → catalog-ZXOSU27O.js} +16 -16
  17. package/dist/{check-YOGAZ6UE.js → check-MZMZCXPN.js} +31 -31
  18. package/dist/{checkBrowser-M73YHPNM.js → checkBrowser-UIZJXYCQ.js} +30 -30
  19. package/dist/{chunk-LAHK4P7Q.js → chunk-3CYAZWF2.js} +3 -3
  20. package/dist/{chunk-TMLEIURT.js → chunk-3LBFLW7E.js} +1 -1
  21. package/dist/{chunk-JXXE3SWC.js → chunk-3WG63KFW.js} +11 -11
  22. package/dist/{chunk-UUE5BZGE.js → chunk-4DJXCVQJ.js} +53 -20
  23. package/dist/{chunk-I77CAR4W.js → chunk-4W4UDPCH.js} +2 -2
  24. package/dist/{chunk-PB2OX2JY.js → chunk-6QWHIARJ.js} +1 -1
  25. package/dist/{chunk-4WAMN4IF.js → chunk-73VPF3SS.js} +1 -1
  26. package/dist/{chunk-YVWILZCO.js → chunk-7BI5BYMQ.js} +5 -5
  27. package/dist/{chunk-4I6AQUWG.js → chunk-ADP6TMYP.js} +8 -8
  28. package/dist/{chunk-OSZJCBZX.js → chunk-AO4PBESP.js} +7 -7
  29. package/dist/{chunk-TYA65W4U.js → chunk-BRTGJ73L.js} +2 -2
  30. package/dist/{chunk-PUB5XZYL.js → chunk-C3KEF3UA.js} +1 -1
  31. package/dist/{chunk-VW5OMJNG.js → chunk-D5EJCP26.js} +14 -10
  32. package/dist/{chunk-Y2CZEJPK.js → chunk-FLUBCMNT.js} +2 -2
  33. package/dist/{chunk-5TBFBLIX.js → chunk-GLTHJJIF.js} +2 -2
  34. package/dist/{chunk-NRMYDPFQ.js → chunk-HGL4WJDI.js} +9 -9
  35. package/dist/{chunk-HFFR7TN7.js → chunk-HJCTKNXF.js} +2 -1
  36. package/dist/{chunk-FTXU3TQ4.js → chunk-I73Z6OOE.js} +1 -1
  37. package/dist/{chunk-2IZZZJDZ.js → chunk-J6CSEDK7.js} +4 -4
  38. package/dist/{chunk-USWOTTSP.js → chunk-JNY3VJWB.js} +1 -1
  39. package/dist/{chunk-J3Q3YC6P.js → chunk-KTPQ67TX.js} +1 -1
  40. package/dist/{chunk-JYRPUDVZ.js → chunk-L7XDI3DT.js} +1 -1
  41. package/dist/{chunk-6CN2QLB5.js → chunk-NHTRUAMD.js} +1 -1
  42. package/dist/{chunk-DVCYGZ7R.js → chunk-NX6G66F4.js} +2 -2
  43. package/dist/{chunk-6LPWMCPY.js → chunk-OGTR33KN.js} +2 -2
  44. package/dist/{chunk-HUHJYNST.js → chunk-P7XRDAWU.js} +1 -1
  45. package/dist/{chunk-FOKUJKBN.js → chunk-PMLZPNIB.js} +13 -2
  46. package/dist/{chunk-6F6EEQNB.js → chunk-PSGDNMM6.js} +1 -1
  47. package/dist/{chunk-O5TBFZ7X.js → chunk-PU2IOWX4.js} +2 -2
  48. package/dist/{chunk-AZQLJHAO.js → chunk-PZTEY73C.js} +1 -1
  49. package/dist/{chunk-XZSH5GS7.js → chunk-QH6UFY2O.js} +4 -4
  50. package/dist/{chunk-UVUAU3CH.js → chunk-QM2NUN2B.js} +47 -25
  51. package/dist/{chunk-TH4APNRP.js → chunk-R4IB642V.js} +2 -2
  52. package/dist/{chunk-GOI4GCUB.js → chunk-SGBOZ2HF.js} +1 -1
  53. package/dist/{chunk-GVZYTDOD.js → chunk-SKPL32FI.js} +1 -1
  54. package/dist/{chunk-IQ4UCWV7.js → chunk-T3BOWXPX.js} +1 -1
  55. package/dist/{chunk-AXWBDWAV.js → chunk-T4Z4UNSX.js} +3 -3
  56. package/dist/{chunk-IBCGKQB5.js → chunk-TI5Z4SWP.js} +3 -3
  57. package/dist/{chunk-2LCIQS3K.js → chunk-TPPIERG3.js} +3 -3
  58. package/dist/{chunk-TLYU5625.js → chunk-UUDQD62L.js} +6 -6
  59. package/dist/{chunk-TEXPOC5V.js → chunk-VMDEGITC.js} +2 -2
  60. package/dist/{chunk-I6M4GXMC.js → chunk-WBVPQC7J.js} +1 -1
  61. package/dist/{chunk-4Z5O7BTD.js → chunk-WEATBQTR.js} +10 -1
  62. package/dist/{chunk-R5RF3LGS.js → chunk-XMAL2A7Y.js} +1 -1
  63. package/dist/{chunk-4NJZZHYT.js → chunk-YVEZT6WT.js} +1 -1
  64. package/dist/{chunk-M4KS6MJN.js → chunk-YY5J75H5.js} +4 -4
  65. package/dist/{chunk-32Y3HRS3.js → chunk-Z4UAXNWV.js} +2 -2
  66. package/dist/{clean-GRX3GXKR.js → clean-46MZVA37.js} +16 -16
  67. package/dist/cli.js +50 -50
  68. package/dist/{cloud-TQCNBM6H.js → cloud-GAZQGPCW.js} +4 -4
  69. package/dist/{cloudrun-ISE6GSUO.js → cloudrun-ZWL7SLDD.js} +5 -5
  70. package/dist/{compare-QAWB3O4U.js → compare-66AAJESM.js} +25 -25
  71. package/dist/{compiler-QMEZK6CU.js → compiler-3N7XQRH6.js} +3 -3
  72. package/dist/{component-NXNNSXN7.js → component-3OCOHK2B.js} +3 -3
  73. package/dist/{compositions-I4PIPJKO.js → compositions-H2BP4N6F.js} +12 -12
  74. package/dist/{delete-ZC4ZRBBF.js → delete-WNJLVPGO.js} +4 -4
  75. package/dist/{deterministicFonts-XS3PGWH5.js → deterministicFonts-A4CNCSAL.js} +2 -2
  76. package/dist/{dist-E44WU6LH.js → dist-AY2RBEXL.js} +1 -1
  77. package/dist/{dist-R24TLUYO.js → dist-HSEMXPG3.js} +3 -3
  78. package/dist/docs/data-attributes.md +1 -1
  79. package/dist/{doctor-EFQ4XNT3.js → doctor-IFOZS45N.js} +11 -11
  80. package/dist/{events-COIPJKSK.js → events-5EKFJCCZ.js} +9 -9
  81. package/dist/{events-AVPSJNYU.js → events-6TH3FU3F.js} +10 -10
  82. package/dist/{feedback-3DYZDMLC.js → feedback-QRQNMORT.js} +11 -11
  83. package/dist/{figma-7XPHSMNG.js → figma-WONEPLUQ.js} +3 -3
  84. package/dist/fontLocalizeCli.js +10 -10
  85. package/dist/{get-TSBHDMKL.js → get-C7FCYNI2.js} +4 -4
  86. package/dist/{gpuPolicy-BQFPO7UA.js → gpuPolicy-BXXQF3VC.js} +7 -7
  87. package/dist/{grade-compare-5Y4LXQFG.js → grade-compare-SCCSZ5P3.js} +25 -25
  88. package/dist/{gsapParser-EZGJSSV5.js → gsapParser-KVMPC2SC.js} +5 -1
  89. package/dist/{help-5YBRP3C4.js → help-FJOUNXVD.js} +1 -1
  90. package/dist/{history-SRNXKL6D.js → history-OZY36NEC.js} +16 -16
  91. package/dist/hyperframe-runtime.js +10 -10
  92. package/dist/hyperframe.manifest.json +1 -1
  93. package/dist/hyperframe.runtime.iife.js +10 -10
  94. package/dist/hyperframes-player.global.js +1 -1
  95. package/dist/{info-U4BOXV2I.js → info-RG4SZQ2C.js} +12 -12
  96. package/dist/{init-T4JYHIBM.js → init-YGZCDKSS.js} +98 -42
  97. package/dist/{inspect-XYLD2BMM.js → inspect-X547EZ4I.js} +26 -26
  98. package/dist/{installer-UZSVMUKT.js → installer-6J24NTIV.js} +5 -5
  99. package/dist/{keyframes-BGPXWP7O.js → keyframes-EIWEION2.js} +13 -13
  100. package/dist/{lambda-U4WIJQCJ.js → lambda-DSZDMP7P.js} +6 -6
  101. package/dist/{layout-UREZQ37U.js → layout-B7KCBLBH.js} +26 -26
  102. package/dist/{lint-LSTEZZ6T.js → lint-RBDG4ERJ.js} +13 -13
  103. package/dist/{lintProject-4P4C6AN2.js → lintProject-CMPAR7BS.js} +1 -1
  104. package/dist/{list-6VICFTAM.js → list-BPHPHLDJ.js} +4 -4
  105. package/dist/{login-MXDIDOOG.js → login-HV7KBW2J.js} +4 -4
  106. package/dist/{media-treatment-ZVCWEACM.js → media-treatment-RS6BZSQC.js} +13 -13
  107. package/dist/{models-LXUIU5DC.js → models-K4U7GRXV.js} +8 -8
  108. package/dist/{motionShot-2LYUQF3T.js → motionShot-5AI2DALY.js} +11 -11
  109. package/dist/{normalize-audio-H3SI5V63.js → normalize-audio-J2PG6YXH.js} +11 -11
  110. package/dist/{pipeline-OFFKTFXS.js → pipeline-HIUESSET.js} +7 -7
  111. package/dist/{play-P56CWNVC.js → play-TTLQXBAH.js} +21 -21
  112. package/dist/{preflight-TVCVP5P2.js → preflight-63ODQ625.js} +8 -8
  113. package/dist/{present-ATMOWKMH.js → present-XKGZ26FQ.js} +17 -17
  114. package/dist/{preview-7U6HYHYE.js → preview-O2YEKMYJ.js} +18 -18
  115. package/dist/{producer-LGG3TOUI.js → producer-ZTQIJO7E.js} +1 -1
  116. package/dist/{projectConfig-V53SEFIS.js → projectConfig-VVFH7XW5.js} +7 -7
  117. package/dist/{publication-7RKKPKLM.js → publication-NALPAHDC.js} +3 -3
  118. package/dist/{publish-TRRFCEMQ.js → publish-G7OL45EL.js} +9 -9
  119. package/dist/{remove-background-HJFT46Z5.js → remove-background-LOLKFKLT.js} +8 -8
  120. package/dist/{render-2QZBNE2V.js → render-EXSRG666.js} +22 -22
  121. package/dist/{render-TPZ5FXHS.js → render-I65IU7RM.js} +4 -4
  122. package/dist/{render-YB7BARWL.js → render-ULQLUIWD.js} +15 -15
  123. package/dist/{render-batch-4ZF5C2LN.js → render-batch-RSNCREPB.js} +4 -4
  124. package/dist/{renderCancellation-4PYGAN5D.js → renderCancellation-2WB4SGXR.js} +7 -7
  125. package/dist/renderSetupWorker.js +1 -1
  126. package/dist/{resolver-4JRJPC6S.js → resolver-CVN2IM2R.js} +5 -5
  127. package/dist/{sherpa-MNCWRFD4.js → sherpa-OJUI54HG.js} +10 -10
  128. package/dist/{skills-ETBA5B46.js → skills-CPS5E5YP.js} +12 -12
  129. package/dist/{skillsUpdateCheck-DQOUIYV5.js → skillsUpdateCheck-3IT5CJWU.js} +3 -3
  130. package/dist/{snapshot-W3HTBAYH.js → snapshot-MSGC7HTA.js} +26 -26
  131. package/dist/{src-QF6RYX76.js → src-EZBJT4VH.js} +9 -9
  132. package/dist/{src-QX5PPANW.js → src-SV7CNZXN.js} +6 -6
  133. package/dist/{staticProjectServer-WBXW2CA4.js → staticProjectServer-5JAGMYT7.js} +15 -15
  134. package/dist/{status-C3IDZFDG.js → status-4W3EJYEH.js} +7 -7
  135. package/dist/studio/assets/{hyperframes-player-dl6K6ABp.js → hyperframes-player-h4mktSdm.js} +1 -1
  136. package/dist/studio/assets/{index-CMiYVGv5.js → index-CM1xA_jD.js} +195 -200
  137. package/dist/studio/assets/{index-ooaZZhKf.js → index-D8GKc2D9.js} +1 -1
  138. package/dist/studio/assets/{index-DKT5NF1Y.js → index-zoqPmBF6.js} +1 -1
  139. package/dist/studio/{chunk-ICTZJPQQ.js → chunk-4OZC426H.js} +12 -3
  140. package/dist/studio/chunk-4OZC426H.js.map +1 -0
  141. package/dist/studio/index.d.ts +367 -11
  142. package/dist/studio/index.html +1 -1
  143. package/dist/studio/index.js +1064 -714
  144. package/dist/studio/index.js.map +1 -1
  145. package/dist/studio/player.js +1 -1
  146. package/dist/{studio-api-6IJPJVG6.js → studio-api-L2TJ2JTK.js} +9 -9
  147. package/dist/{studioServer-77CY4XPO.js → studioServer-UV7YRYWN.js} +42 -41
  148. package/dist/{system-OAB2LYBV.js → system-OL4MXRPK.js} +7 -7
  149. package/dist/{telemetry-XTN5BO5S.js → telemetry-WRUU725E.js} +10 -10
  150. package/dist/templates/_shared/AGENTS.md +1 -1
  151. package/dist/templates/_shared/CLAUDE.md +1 -1
  152. package/dist/templates/from-file/index.html +3 -2
  153. package/dist/templates/warm-grain/index.html +2 -10
  154. package/dist/{timeline-YKKTGPL7.js → timeline-P43A53BW.js} +16 -16
  155. package/dist/{tokens-LU25F3IJ.js → tokens-NUHTJM2V.js} +2 -2
  156. package/dist/{transcribe-O7OL4RRU.js → transcribe-FSVNIFGF.js} +13 -13
  157. package/dist/{transcribe-AL3E5MBZ.js → transcribe-TRLZJK73.js} +10 -8
  158. package/dist/{updateCheck-MZZML4DL.js → updateCheck-33TAG46I.js} +2 -2
  159. package/dist/{upgrade-PQRTEJJY.js → upgrade-AJ6QBTH2.js} +2 -2
  160. package/dist/{urlDownloader-U3TNOPD5.js → urlDownloader-MP6GJIDV.js} +6 -6
  161. package/dist/{validate-KQETGCIR.js → validate-VL3A6VTJ.js} +16 -16
  162. package/dist/{video-KAHL76HG.js → video-KO7VT63P.js} +7 -7
  163. package/package.json +1 -1
  164. package/dist/studio/chunk-ICTZJPQQ.js.map +0 -1
@@ -9,10 +9,10 @@ import {
9
9
  } from "./chunk-WBLXWOYK.js";
10
10
  import {
11
11
  loadProducer
12
- } from "./chunk-GOI4GCUB.js";
12
+ } from "./chunk-SGBOZ2HF.js";
13
13
  import {
14
14
  trackLintRun
15
- } from "./chunk-IBCGKQB5.js";
15
+ } from "./chunk-TI5Z4SWP.js";
16
16
  import {
17
17
  assertionTargets,
18
18
  buildLayoutSampleTimes,
@@ -27,48 +27,48 @@ import {
27
27
  mergeSampleTimes,
28
28
  parseAt,
29
29
  readMotionSpec
30
- } from "./chunk-4I6AQUWG.js";
31
- import "./chunk-AXWBDWAV.js";
30
+ } from "./chunk-ADP6TMYP.js";
31
+ import "./chunk-T4Z4UNSX.js";
32
32
  import "./chunk-XUHOIDKG.js";
33
- import "./chunk-5TBFBLIX.js";
33
+ import "./chunk-GLTHJJIF.js";
34
34
  import "./chunk-X7MTZ4T2.js";
35
- import "./chunk-XZSH5GS7.js";
35
+ import "./chunk-QH6UFY2O.js";
36
36
  import "./chunk-5Z63TBTX.js";
37
37
  import "./chunk-262C25DQ.js";
38
- import "./chunk-IQ4UCWV7.js";
38
+ import "./chunk-T3BOWXPX.js";
39
39
  import "./chunk-YEIFI443.js";
40
- import "./chunk-UUE5BZGE.js";
41
- import "./chunk-M4KS6MJN.js";
42
- import "./chunk-4Z5O7BTD.js";
43
- import "./chunk-O5TBFZ7X.js";
40
+ import "./chunk-4DJXCVQJ.js";
41
+ import "./chunk-YY5J75H5.js";
42
+ import "./chunk-WEATBQTR.js";
43
+ import "./chunk-PU2IOWX4.js";
44
44
  import {
45
45
  resolveProject
46
- } from "./chunk-FTXU3TQ4.js";
46
+ } from "./chunk-I73Z6OOE.js";
47
47
  import "./chunk-IHFUKJOR.js";
48
48
  import "./chunk-PFCFR3KZ.js";
49
- import "./chunk-HUHJYNST.js";
49
+ import "./chunk-P7XRDAWU.js";
50
50
  import "./chunk-XT7X6QCP.js";
51
51
  import "./chunk-4YYJOFKS.js";
52
52
  import "./chunk-HVW7ABXD.js";
53
53
  import {
54
54
  resolveLocalBrowserGpuMode
55
- } from "./chunk-4WAMN4IF.js";
56
- import "./chunk-USWOTTSP.js";
57
- import "./chunk-TYA65W4U.js";
58
- import "./chunk-6CN2QLB5.js";
55
+ } from "./chunk-73VPF3SS.js";
56
+ import "./chunk-JNY3VJWB.js";
57
+ import "./chunk-BRTGJ73L.js";
58
+ import "./chunk-NHTRUAMD.js";
59
59
  import "./chunk-AWDFDFI3.js";
60
60
  import "./chunk-GMECXFAN.js";
61
61
  import "./chunk-RDMAU7AJ.js";
62
62
  import {
63
63
  trackCheckReport,
64
64
  trackCommandFailure
65
- } from "./chunk-2LCIQS3K.js";
66
- import "./chunk-LAHK4P7Q.js";
65
+ } from "./chunk-TPPIERG3.js";
66
+ import "./chunk-3CYAZWF2.js";
67
67
  import "./chunk-VWG7OQKU.js";
68
68
  import {
69
69
  c
70
70
  } from "./chunk-ZTZA4UWZ.js";
71
- import "./chunk-PUB5XZYL.js";
71
+ import "./chunk-C3KEF3UA.js";
72
72
  import "./chunk-AMKC3AXA.js";
73
73
  import {
74
74
  defineCommand,
@@ -85,12 +85,12 @@ import "./chunk-TJSTGSAW.js";
85
85
  import {
86
86
  extractMediaMetadata,
87
87
  findHdrAutoPromotion
88
- } from "./chunk-VW5OMJNG.js";
89
- import "./chunk-TEXPOC5V.js";
90
- import "./chunk-TLYU5625.js";
88
+ } from "./chunk-D5EJCP26.js";
89
+ import "./chunk-VMDEGITC.js";
90
+ import "./chunk-UUDQD62L.js";
91
91
  import "./chunk-DPVXBVLL.js";
92
- import "./chunk-TH4APNRP.js";
93
- import "./chunk-FOKUJKBN.js";
92
+ import "./chunk-R4IB642V.js";
93
+ import "./chunk-PMLZPNIB.js";
94
94
  import "./chunk-VC76R6W2.js";
95
95
  import "./chunk-OFQWTKPW.js";
96
96
  import "./chunk-Q5X2B5WT.js";
@@ -99,7 +99,7 @@ import {
99
99
  lintProject,
100
100
  resolveProjectRelativeSrc,
101
101
  shouldBlockRender
102
- } from "./chunk-UVUAU3CH.js";
102
+ } from "./chunk-QM2NUN2B.js";
103
103
  import "./chunk-HBBJFK6I.js";
104
104
  import "./chunk-PJ3HDUCY.js";
105
105
  import "./chunk-TQFG7HTI.js";
@@ -107,12 +107,12 @@ import "./chunk-GK4AIFIH.js";
107
107
  import "./chunk-2PSPARWP.js";
108
108
  import {
109
109
  withMeta
110
- } from "./chunk-4NJZZHYT.js";
110
+ } from "./chunk-YVEZT6WT.js";
111
111
  import "./chunk-K4WIOZFP.js";
112
112
  import "./chunk-XUXGIA7H.js";
113
113
  import "./chunk-WERLJGIC.js";
114
114
  import "./chunk-ISN5GRYI.js";
115
- import "./chunk-6LPWMCPY.js";
115
+ import "./chunk-OGTR33KN.js";
116
116
  import {
117
117
  normalizeErrorMessage
118
118
  } from "./chunk-KNU5COPB.js";
@@ -127,7 +127,7 @@ import { join, relative } from "path";
127
127
 
128
128
  // src/utils/hdrPromotion.ts
129
129
  async function bundleProjectHtml(projectDir) {
130
- const { bundleToSingleHtml } = await import("./compiler-QMEZK6CU.js");
130
+ const { bundleToSingleHtml } = await import("./compiler-3N7XQRH6.js");
131
131
  return bundleToSingleHtml(projectDir);
132
132
  }
133
133
  async function collectBundledRenderMedia(html) {
@@ -1239,7 +1239,7 @@ function resolveMotionSpec(projectDir) {
1239
1239
  };
1240
1240
  }
1241
1241
  async function runBrowserCheck(project, options, motion) {
1242
- const module = await import("./checkBrowser-M73YHPNM.js");
1242
+ const module = await import("./checkBrowser-UIZJXYCQ.js");
1243
1243
  return module.runBrowserCheck(project, options, motion, runAuditGrid);
1244
1244
  }
1245
1245
  async function writeSnapshot(projectDir, index, time, pngBase64) {
@@ -1251,7 +1251,7 @@ async function writeSnapshot(projectDir, index, time, pngBase64) {
1251
1251
  return join("snapshots", filename);
1252
1252
  }
1253
1253
  async function captureFindingCrops(project, options, requests) {
1254
- const module = await import("./checkBrowser-M73YHPNM.js");
1254
+ const module = await import("./checkBrowser-UIZJXYCQ.js");
1255
1255
  return module.captureFindingCrops(project, options, requests);
1256
1256
  }
1257
1257
  var DEFAULT_DEPENDENCIES2 = {
@@ -10,17 +10,17 @@ import {
10
10
  import {
11
11
  ambiguousIssue,
12
12
  loadBrowserScript
13
- } from "./chunk-4I6AQUWG.js";
13
+ } from "./chunk-ADP6TMYP.js";
14
14
  import {
15
15
  serveStaticProjectHtml
16
- } from "./chunk-AXWBDWAV.js";
16
+ } from "./chunk-T4Z4UNSX.js";
17
17
  import {
18
18
  auditClipDurations,
19
19
  shouldIgnoreHttpError,
20
20
  shouldIgnoreRequestFailure
21
- } from "./chunk-NRMYDPFQ.js";
21
+ } from "./chunk-HGL4WJDI.js";
22
22
  import "./chunk-XUHOIDKG.js";
23
- import "./chunk-5TBFBLIX.js";
23
+ import "./chunk-GLTHJJIF.js";
24
24
  import "./chunk-X7MTZ4T2.js";
25
25
  import {
26
26
  AUDIT_SEEK_OPTIONS,
@@ -33,68 +33,68 @@ import {
33
33
  resolveCliChromeGpuMode,
34
34
  seekCompositionTimeline,
35
35
  waitForPreferredSeekTarget
36
- } from "./chunk-XZSH5GS7.js";
36
+ } from "./chunk-QH6UFY2O.js";
37
37
  import "./chunk-5Z63TBTX.js";
38
38
  import "./chunk-262C25DQ.js";
39
- import "./chunk-IQ4UCWV7.js";
39
+ import "./chunk-T3BOWXPX.js";
40
40
  import "./chunk-YEIFI443.js";
41
- import "./chunk-UUE5BZGE.js";
42
- import "./chunk-M4KS6MJN.js";
43
- import "./chunk-4Z5O7BTD.js";
41
+ import "./chunk-4DJXCVQJ.js";
42
+ import "./chunk-YY5J75H5.js";
43
+ import "./chunk-WEATBQTR.js";
44
44
  import {
45
45
  decideMediaProxyEligibility,
46
46
  proxyVariantFor,
47
47
  resolveProxy,
48
48
  scanProjectMediaCodecMap
49
- } from "./chunk-O5TBFZ7X.js";
50
- import "./chunk-FTXU3TQ4.js";
49
+ } from "./chunk-PU2IOWX4.js";
50
+ import "./chunk-I73Z6OOE.js";
51
51
  import "./chunk-IHFUKJOR.js";
52
52
  import "./chunk-PFCFR3KZ.js";
53
53
  import {
54
54
  resolveAutoProxy
55
- } from "./chunk-HUHJYNST.js";
55
+ } from "./chunk-P7XRDAWU.js";
56
56
  import "./chunk-XT7X6QCP.js";
57
57
  import "./chunk-4YYJOFKS.js";
58
58
  import "./chunk-HVW7ABXD.js";
59
- import "./chunk-4WAMN4IF.js";
60
- import "./chunk-USWOTTSP.js";
61
- import "./chunk-TYA65W4U.js";
62
- import "./chunk-6CN2QLB5.js";
59
+ import "./chunk-73VPF3SS.js";
60
+ import "./chunk-JNY3VJWB.js";
61
+ import "./chunk-BRTGJ73L.js";
62
+ import "./chunk-NHTRUAMD.js";
63
63
  import "./chunk-AWDFDFI3.js";
64
64
  import "./chunk-GMECXFAN.js";
65
65
  import "./chunk-RDMAU7AJ.js";
66
- import "./chunk-2LCIQS3K.js";
67
- import "./chunk-LAHK4P7Q.js";
66
+ import "./chunk-TPPIERG3.js";
67
+ import "./chunk-3CYAZWF2.js";
68
68
  import "./chunk-VWG7OQKU.js";
69
69
  import "./chunk-ZTZA4UWZ.js";
70
- import "./chunk-PUB5XZYL.js";
70
+ import "./chunk-C3KEF3UA.js";
71
71
  import "./chunk-AMKC3AXA.js";
72
72
  import "./chunk-S3S4TGEH.js";
73
73
  import "./chunk-54HJ63Q2.js";
74
74
  import "./chunk-PBN6GBJE.js";
75
75
  import "./chunk-KC5XXX3X.js";
76
76
  import "./chunk-TJSTGSAW.js";
77
- import "./chunk-VW5OMJNG.js";
78
- import "./chunk-TEXPOC5V.js";
79
- import "./chunk-TLYU5625.js";
77
+ import "./chunk-D5EJCP26.js";
78
+ import "./chunk-VMDEGITC.js";
79
+ import "./chunk-UUDQD62L.js";
80
80
  import "./chunk-DPVXBVLL.js";
81
- import "./chunk-TH4APNRP.js";
82
- import "./chunk-FOKUJKBN.js";
81
+ import "./chunk-R4IB642V.js";
82
+ import "./chunk-PMLZPNIB.js";
83
83
  import "./chunk-VC76R6W2.js";
84
84
  import "./chunk-OFQWTKPW.js";
85
85
  import "./chunk-TWWSYAKJ.js";
86
- import "./chunk-UVUAU3CH.js";
86
+ import "./chunk-QM2NUN2B.js";
87
87
  import "./chunk-HBBJFK6I.js";
88
88
  import "./chunk-PJ3HDUCY.js";
89
89
  import "./chunk-TQFG7HTI.js";
90
90
  import "./chunk-GK4AIFIH.js";
91
91
  import "./chunk-2PSPARWP.js";
92
- import "./chunk-4NJZZHYT.js";
92
+ import "./chunk-YVEZT6WT.js";
93
93
  import "./chunk-K4WIOZFP.js";
94
94
  import "./chunk-XUXGIA7H.js";
95
95
  import "./chunk-WERLJGIC.js";
96
96
  import "./chunk-ISN5GRYI.js";
97
- import "./chunk-6LPWMCPY.js";
97
+ import "./chunk-OGTR33KN.js";
98
98
  import {
99
99
  normalizeErrorMessage
100
100
  } from "./chunk-KNU5COPB.js";
@@ -137,7 +137,7 @@ async function preResolveHostileMediaProxies(projectDir, html, autoProxyOverride
137
137
  );
138
138
  }
139
139
  async function runBrowserCheck(project, options, motion, runGrid) {
140
- const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-JKJKZR2S.js");
140
+ const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-PMWWW5YG.js");
141
141
  const html = await bundleWithLocalizedFonts(project.dir);
142
142
  await preResolveHostileMediaProxies(project.dir, html, options.autoProxy);
143
143
  const server = await serveStaticProjectHtml(
@@ -164,7 +164,7 @@ async function runBrowserCheck(project, options, motion, runGrid) {
164
164
  await waitForPreferredSeekTarget(page);
165
165
  const rootAnchor = await resolveRootAnchor(page);
166
166
  const launchSettleMs = Date.now() - launchSettleStart;
167
- const { analyzeClipMediaFit } = await import("./src-QX5PPANW.js");
167
+ const { analyzeClipMediaFit } = await import("./src-SV7CNZXN.js");
168
168
  for (const entry of await auditClipDurations(page, analyzeClipMediaFit, options.timeout)) {
169
169
  drafts.push({ code: "clip_media_fit", severity: entry.level, message: entry.text, time: 0 });
170
170
  }
@@ -184,7 +184,7 @@ async function runBrowserCheck(project, options, motion, runGrid) {
184
184
  }
185
185
  async function captureFindingCrops(project, options, requests) {
186
186
  if (requests.length === 0) return [];
187
- const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-JKJKZR2S.js");
187
+ const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-PMWWW5YG.js");
188
188
  const html = await bundleWithLocalizedFonts(project.dir);
189
189
  const server = await serveStaticProjectHtml(
190
190
  project.dir,
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-ZTZA4UWZ.js";
13
13
  import {
14
14
  getSystemMeta
15
- } from "./chunk-PUB5XZYL.js";
15
+ } from "./chunk-C3KEF3UA.js";
16
16
  import {
17
17
  getInvocationId
18
18
  } from "./chunk-54HJ63Q2.js";
@@ -23,7 +23,7 @@ import {
23
23
  evaluateCanary,
24
24
  findCanary,
25
25
  parseCanaryOverride
26
- } from "./chunk-TEXPOC5V.js";
26
+ } from "./chunk-VMDEGITC.js";
27
27
  import {
28
28
  hostAnswers
29
29
  } from "./chunk-K4WIOZFP.js";
@@ -37,7 +37,7 @@ import {
37
37
  } from "./chunk-XUXGIA7H.js";
38
38
  import {
39
39
  VERSION
40
- } from "./chunk-6LPWMCPY.js";
40
+ } from "./chunk-OGTR33KN.js";
41
41
 
42
42
  // src/telemetry/transport.ts
43
43
  import { spawn } from "child_process";
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  setHostHandlesSigint
9
- } from "./chunk-VW5OMJNG.js";
9
+ } from "./chunk-D5EJCP26.js";
10
10
  import {
11
11
  processAncestorSnapshot,
12
12
  processIdentity,
@@ -12,12 +12,12 @@ import {
12
12
  iterateFontFamilyDeclarations,
13
13
  normalizeSystemFontPrimaryFamilies,
14
14
  resolveFontFamilyDeclarationFamilies
15
- } from "./chunk-R5RF3LGS.js";
15
+ } from "./chunk-XMAL2A7Y.js";
16
16
  import {
17
17
  EncoderInterruptedError,
18
18
  encoderFailureError,
19
19
  prepareAnimatedGifInputs
20
- } from "./chunk-32Y3HRS3.js";
20
+ } from "./chunk-Z4UAXNWV.js";
21
21
  import {
22
22
  createStudioPositionSeekReapplyScript
23
23
  } from "./chunk-KC5XXX3X.js";
@@ -145,7 +145,7 @@ import {
145
145
  validateEngineConfigSnapshot,
146
146
  verifyDiskDrawElementSamples,
147
147
  writeCapturedFrame
148
- } from "./chunk-VW5OMJNG.js";
148
+ } from "./chunk-D5EJCP26.js";
149
149
  import {
150
150
  HF_VFX_ATTR,
151
151
  MEDIA_START_BASIS_ATTR,
@@ -162,7 +162,7 @@ import {
162
162
  resolveAbsoluteMediaStartSeconds,
163
163
  resolveAuthoredTimingWindow,
164
164
  toFps
165
- } from "./chunk-TEXPOC5V.js";
165
+ } from "./chunk-VMDEGITC.js";
166
166
  import {
167
167
  CANVAS_DIMENSIONS,
168
168
  HTML_BODY_CSS_HEIGHT_FIRST_RE,
@@ -173,7 +173,7 @@ import {
173
173
  isAspectAgnosticResolutionAlias,
174
174
  normalizeResolutionFlag,
175
175
  suggestMatchingPreset
176
- } from "./chunk-TLYU5625.js";
176
+ } from "./chunk-UUDQD62L.js";
177
177
  import {
178
178
  assignBundledRuntimeCompositionIds,
179
179
  buildVariablesByCompScript,
@@ -186,7 +186,7 @@ import {
186
186
  inlineSubCompositions,
187
187
  prepareFlattenedInnerRoot,
188
188
  styleElementsFor
189
- } from "./chunk-TH4APNRP.js";
189
+ } from "./chunk-R4IB642V.js";
190
190
  import {
191
191
  HF_COLOR_GRADING_ATTR,
192
192
  MAX_AUDIO_GAIN,
@@ -207,7 +207,7 @@ import {
207
207
  resolveNaturalMediaTimelineDurationFromValues,
208
208
  shouldClampResolvedMediaDuration,
209
209
  sourceTimeAt
210
- } from "./chunk-FOKUJKBN.js";
210
+ } from "./chunk-PMLZPNIB.js";
211
211
  import {
212
212
  chromeMajorCeiling
213
213
  } from "./chunk-TWWSYAKJ.js";
@@ -216,7 +216,7 @@ import {
216
216
  lintHyperframeHtml,
217
217
  readProjectFile,
218
218
  resolveProjectRelativeSrc
219
- } from "./chunk-UVUAU3CH.js";
219
+ } from "./chunk-QM2NUN2B.js";
220
220
  import {
221
221
  CSS_URL_RE,
222
222
  checkSubCompositionUsability,
@@ -8042,7 +8042,7 @@ function appendAutoDetectedVideoAudio(composition, extracted) {
8042
8042
  for (const ext of extracted) {
8043
8043
  if (!ext.metadata.hasAudio) continue;
8044
8044
  const video = composition.videos.find((v) => v.id === ext.videoId);
8045
- if (!video || !video.hasAudio || existingAudioSrcs.has(video.src)) continue;
8045
+ if (!video || !video.hasAudio || video.hidden || existingAudioSrcs.has(video.src)) continue;
8046
8046
  composition.audios.push({
8047
8047
  id: `${video.id}-audio`,
8048
8048
  src: video.src,
@@ -14130,7 +14130,7 @@ function startServer(options = {}) {
14130
14130
  });
14131
14131
  async function shutdown(signal) {
14132
14132
  log.info(`Received ${signal}, shutting down`);
14133
- const { drainBrowserPool } = await import("./src-QX5PPANW.js");
14133
+ const { drainBrowserPool } = await import("./src-SV7CNZXN.js");
14134
14134
  await drainBrowserPool().catch(() => {
14135
14135
  });
14136
14136
  const handle = await Promise.race([
@@ -15253,7 +15253,7 @@ async function buildLocalExecutionPlan(projectDir, config, executionPlanDir, opt
15253
15253
  if (probeResult.fileServer) closeFileServerSafely(probeResult.fileServer, "plan", log);
15254
15254
  if (probeResult.probeSession) {
15255
15255
  try {
15256
- const { closeCaptureSession: closeCaptureSession2 } = await import("./src-QX5PPANW.js");
15256
+ const { closeCaptureSession: closeCaptureSession2 } = await import("./src-SV7CNZXN.js");
15257
15257
  await closeCaptureSession2(probeResult.probeSession);
15258
15258
  } catch (err) {
15259
15259
  log.warn("[plan] probe session close failed", {
@@ -15,11 +15,13 @@ import {
15
15
  splitElementInHtml,
16
16
  unwrapElementsFromHtml,
17
17
  wrapElementsInHtml
18
- } from "./chunk-M4KS6MJN.js";
18
+ } from "./chunk-YY5J75H5.js";
19
19
  import {
20
+ atomicTempPath,
20
21
  createFileAtomically,
22
+ isAtomicTempPath,
21
23
  replaceFileAtomically
22
- } from "./chunk-4Z5O7BTD.js";
24
+ } from "./chunk-WEATBQTR.js";
23
25
  import {
24
26
  PROXY_PARAMS_VERSION,
25
27
  PROXY_PENDING_RETRY_AFTER_SECONDS,
@@ -45,7 +47,7 @@ import {
45
47
  shouldPrewarmProxy,
46
48
  waitForProxy,
47
49
  walkDir
48
- } from "./chunk-O5TBFZ7X.js";
50
+ } from "./chunk-PU2IOWX4.js";
49
51
  import {
50
52
  findTimelineScript,
51
53
  parseGsapScriptAcorn
@@ -64,16 +66,16 @@ import {
64
66
  formatRenderOutputTimestamp,
65
67
  parseFps,
66
68
  sameInstant
67
- } from "./chunk-TEXPOC5V.js";
69
+ } from "./chunk-VMDEGITC.js";
68
70
  import {
69
71
  MagicString,
70
72
  VALID_CANVAS_RESOLUTIONS,
71
73
  unrollComputedTimeline
72
- } from "./chunk-TLYU5625.js";
74
+ } from "./chunk-UUDQD62L.js";
73
75
  import {
74
76
  addScenePartsManifest,
75
77
  ensureHfIds
76
- } from "./chunk-TH4APNRP.js";
78
+ } from "./chunk-R4IB642V.js";
77
79
  import {
78
80
  findStartTags,
79
81
  injectScriptsIntoHtml,
@@ -81,7 +83,7 @@ import {
81
83
  insertBeforeCloseTag,
82
84
  isFullHtmlDocument,
83
85
  stripEmbeddedRuntimeScripts
84
- } from "./chunk-FOKUJKBN.js";
86
+ } from "./chunk-PMLZPNIB.js";
85
87
  import {
86
88
  ProjectRootMissingError,
87
89
  folderGone,
@@ -94,7 +96,7 @@ import {
94
96
  import {
95
97
  isWithinProjectRoot,
96
98
  readProjectFile
97
- } from "./chunk-UVUAU3CH.js";
99
+ } from "./chunk-QM2NUN2B.js";
98
100
  import {
99
101
  FFPROBE_PATH_ENV,
100
102
  findFfBinary
@@ -198,7 +200,7 @@ function stampFileHfIds(filePath) {
198
200
  }
199
201
  }
200
202
 
201
- // ../studio-server/dist/chunk-IQK4ANAI.js
203
+ // ../studio-server/dist/chunk-KUEG5MYA.js
202
204
  import { randomUUID as randomUUID6 } from "crypto";
203
205
  import { mkdir as mkdir2, readdir as readdir3, rm as rm3, rmdir, writeFile } from "fs/promises";
204
206
  import {
@@ -338,7 +340,7 @@ var STUDIO_SIGNATURE_MANIFEST_PATHS = [
338
340
  ];
339
341
  function affectsProjectSignature(projectDir, changedPath) {
340
342
  const relativePath = relative(resolve(projectDir), resolve(changedPath));
341
- if (relativePath === "" || relativePath.startsWith("..") || isAbsolute(relativePath)) {
343
+ if (relativePath === "" || relativePath.startsWith("..") || isAbsolute(relativePath) || isAtomicTempPath(relativePath)) {
342
344
  return false;
343
345
  }
344
346
  const segments = relativePath.split(sep);
@@ -354,6 +356,7 @@ function isPathWithin(parentDir, childPath) {
354
356
  function isTextContentEligible(file, size) {
355
357
  return SIGNATURE_TEXT_EXTENSIONS.has(extname(file).toLowerCase()) && size <= MAX_SIGNATURE_TEXT_BYTES;
356
358
  }
359
+ var isSkippedEntry = (entry) => SIGNATURE_EXCLUDED_DIRS.has(entry) || isAtomicTempPath(entry);
357
360
  function collectProjectSignatureFiles(projectDir, dir, files) {
358
361
  let entries;
359
362
  try {
@@ -362,7 +365,7 @@ function collectProjectSignatureFiles(projectDir, dir, files) {
362
365
  return;
363
366
  }
364
367
  for (const entry of entries) {
365
- if (SIGNATURE_EXCLUDED_DIRS.has(entry)) continue;
368
+ if (isSkippedEntry(entry)) continue;
366
369
  const file = resolve(dir, entry);
367
370
  if (!isPathWithin(projectDir, file)) continue;
368
371
  let stat22;
@@ -491,7 +494,7 @@ async function hashFile(path) {
491
494
  }
492
495
  async function cloneOrCopy(from, to, beforeReplace) {
493
496
  await mkdir(dirname2(to), { recursive: true });
494
- const temp = `${to}.${randomUUID2()}.tmp`;
497
+ const temp = atomicTempPath(to);
495
498
  try {
496
499
  await copyFile(from, temp, constants2.COPYFILE_FICLONE);
497
500
  beforeReplace?.();
@@ -2133,6 +2136,10 @@ var PROP_TO_GROUP2 = /* @__PURE__ */ new Map();
2133
2136
  for (const [group, props] of Object.entries(PROPERTY_GROUPS2)) {
2134
2137
  for (const p of props) PROP_TO_GROUP2.set(p, group);
2135
2138
  }
2139
+ function isXYPositionWrite(a) {
2140
+ const xy = (props) => !!props && ("x" in props || "y" in props);
2141
+ return a.propertyGroup === "position" && (xy(a.properties) || xy(a.fromProperties) || !!a.keyframes?.keyframes.some((k) => xy(k.properties)));
2142
+ }
2136
2143
  function classifyPropertyGroup2(prop) {
2137
2144
  return PROP_TO_GROUP2.get(prop) ?? "other";
2138
2145
  }
@@ -3745,7 +3752,7 @@ function dedupePositionWritesInScript(script, selector, keepId) {
3745
3752
  const parsed = parseGsapScriptAcornForWrite(script);
3746
3753
  if (!parsed) return script;
3747
3754
  const posWrites = parsed.located.filter(
3748
- (l) => l.animation.targetSelector === selector && l.animation.propertyGroup === "position"
3755
+ (l) => l.animation.targetSelector === selector && isXYPositionWrite(l.animation)
3749
3756
  );
3750
3757
  if (posWrites.length <= 1) return script;
3751
3758
  const keeper = posWrites.find((l) => l.id === keepId) ?? posWrites[posWrites.length - 1];
@@ -5505,6 +5512,29 @@ function assertExpectedVersion(mutation, current) {
5505
5512
  const stale = mutation.expectedVersion === void 0 ? current !== mutation.before : fileContentVersion(current) !== mutation.expectedVersion;
5506
5513
  if (stale) throw new FileChangedError(mutation.sourceFile);
5507
5514
  }
5515
+ var FONT_STYLE_RE = /<style\b[^>]*data-hf-studio-fonts=(["'])true\1[^>]*>([\s\S]*?)<\/style>/i;
5516
+ var ONE_FONT_FACE_RULE = /^@font-face \{(?:[^{}<"'\\]|"(?:[^"\\<\n\r\f]|\\[^<\n\r\f])*"|'(?:[^'\\<\n\r\f]|\\[^<\n\r\f])*')*\}$/;
5517
+ function isStudioFontFaceCss(css) {
5518
+ return typeof css === "string" && ONE_FONT_FACE_RULE.test(css);
5519
+ }
5520
+ function ensureStudioFontFaceCss(html, css) {
5521
+ if (html.includes(css)) return html;
5522
+ const block = FONT_STYLE_RE.exec(html);
5523
+ if (block) {
5524
+ const next = `${(block[2] ?? "").trim()}
5525
+ ${css}`.trim();
5526
+ return html.replace(block[0], () => `<style data-hf-studio-fonts="true">
5527
+ ${next}
5528
+ </style>`);
5529
+ }
5530
+ const styleTag = `<style data-hf-studio-fonts="true">
5531
+ ${css}
5532
+ </style>`;
5533
+ if (/<\/head>/i.test(html)) return html.replace(/<\/head>/i, () => ` ${styleTag}
5534
+ </head>`);
5535
+ return `${styleTag}
5536
+ ${html}`;
5537
+ }
5508
5538
  var CompositionInsertionError = class extends Error {
5509
5539
  constructor(message, status) {
5510
5540
  super(message);
@@ -5764,7 +5794,7 @@ function requestSubPath(url, route) {
5764
5794
  return decodeURIComponent(segments.slice(start + routeSegments.length).join("/"));
5765
5795
  }
5766
5796
  async function loadGsapParser() {
5767
- return import("./gsapParser-EZGJSSV5.js");
5797
+ return import("./gsapParser-KVMPC2SC.js");
5768
5798
  }
5769
5799
  function isDanglingSymlinkInProject(projectDir, lexicalPath) {
5770
5800
  if (!isSafePath(projectDir, dirname32(lexicalPath))) return false;
@@ -6330,7 +6360,7 @@ async function prepareGsapMutationScript(c, res, firstMutation) {
6330
6360
  let block = extractGsapScriptBlock(html);
6331
6361
  if (!block && (firstMutation.type === "add" || firstMutation.type === "add-with-keyframes")) {
6332
6362
  const compId = html.match(/data-composition-id="([^"]+)"/)?.[1] ?? "main";
6333
- const { GSAP_CDN } = await import("./dist-R24TLUYO.js");
6363
+ const { GSAP_CDN } = await import("./dist-HSEMXPG3.js");
6334
6364
  const bootstrap = [
6335
6365
  `<script src="${GSAP_CDN}"></script>`,
6336
6366
  "<script>",
@@ -6340,6 +6370,7 @@ async function prepareGsapMutationScript(c, res, firstMutation) {
6340
6370
  "</script>"
6341
6371
  ].join("\n");
6342
6372
  html = insertBeforeCloseTag(html, "body", `${bootstrap}
6373
+ `) ?? insertBeforeCloseTag(html, "template", `${bootstrap}
6343
6374
  `) ?? `${html}
6344
6375
  ${bootstrap}`;
6345
6376
  block = extractGsapScriptBlock(html);
@@ -7668,6 +7699,10 @@ function registerFileRoutes(api, adapter) {
7668
7699
  if (!Array.isArray(parsed.body.operations) || parsed.body.operations.length === 0) {
7669
7700
  return c.json({ error: "target and operations required" }, 400);
7670
7701
  }
7702
+ const { fontFaceCss } = parsed.body;
7703
+ if (fontFaceCss !== void 0 && !isStudioFontFaceCss(fontFaceCss)) {
7704
+ return c.json({ error: "fontFaceCss must be one @font-face rule" }, 400);
7705
+ }
7671
7706
  const unsafeFields = findUnsafeDomPatchValues(parsed.body);
7672
7707
  if (unsafeFields.length > 0) {
7673
7708
  return rejectUnsafeMutationValues(c, unsafeFields);
@@ -7679,11 +7714,9 @@ function registerFileRoutes(api, adapter) {
7679
7714
  } catch {
7680
7715
  return c.json({ error: "not found" }, 404);
7681
7716
  }
7682
- const { html: patched, matched } = patchElementInHtml(
7683
- originalContent,
7684
- parsed.target,
7685
- parsed.body.operations
7686
- );
7717
+ const element = patchElementInHtml(originalContent, parsed.target, parsed.body.operations);
7718
+ const { matched } = element;
7719
+ const patched = matched && isStudioFontFaceCss(fontFaceCss) ? ensureStudioFontFaceCss(element.html, fontFaceCss) : element.html;
7687
7720
  if (patched === originalContent) {
7688
7721
  const version2 = fileContentVersion(originalContent);
7689
7722
  c.header("ETag", version2);
@@ -16,7 +16,7 @@ import {
16
16
  import {
17
17
  DEFAULT_VP9_CPU_USED,
18
18
  renderProvenanceArgs
19
- } from "./chunk-VW5OMJNG.js";
19
+ } from "./chunk-D5EJCP26.js";
20
20
  import {
21
21
  loadOptionalPackage
22
22
  } from "./chunk-XT5P4QMO.js";
@@ -202,7 +202,7 @@ function inferInputKind(inputPath) {
202
202
  }
203
203
  async function probeMedia(inputPath) {
204
204
  const isImage = inferInputKind(inputPath) === "image";
205
- const engine = await import("./src-QX5PPANW.js");
205
+ const engine = await import("./src-SV7CNZXN.js");
206
206
  const meta = await engine.extractMediaMetadata(inputPath);
207
207
  if (isImage) {
208
208
  return { width: meta.width, height: meta.height, fps: 0, frameCount: 1 };
@@ -13,7 +13,7 @@ import {
13
13
  } from "./chunk-TVCRUG2S.js";
14
14
  import {
15
15
  getFreeDiskMb
16
- } from "./chunk-PUB5XZYL.js";
16
+ } from "./chunk-C3KEF3UA.js";
17
17
  import {
18
18
  ensureBrowser,
19
19
  findBrowser
@@ -13,7 +13,7 @@ function resolveLocalBrowserGpuMode(browserGpuArg, envMode = process.env.PRODUCE
13
13
  return "auto";
14
14
  }
15
15
  async function resolveCaptureBrowserGpuMode(requestedMode, chromePath) {
16
- const { resolveBrowserGpuMode } = await import("./src-QX5PPANW.js");
16
+ const { resolveBrowserGpuMode } = await import("./src-SV7CNZXN.js");
17
17
  return resolveBrowserGpuMode(requestedMode, { chromePath });
18
18
  }
19
19