hyperframes 0.8.190 → 0.8.192

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 (222) hide show
  1. package/dist/{add-DBKN5H7H.js → add-TZU2UW7A.js} +17 -17
  2. package/dist/{animatedGifPrep-YVBKKLQY.js → animatedGifPrep-NLAXC3VV.js} +11 -10
  3. package/dist/api.js +24 -23
  4. package/dist/{appHistory-TH3TL6N6.js → appHistory-QVCSAOI4.js} +1 -1
  5. package/dist/{asset-2OHQKUMQ.js → asset-JAJXA6LB.js} +2 -2
  6. package/dist/{assetCataloger-O3QAUWIK.js → assetCataloger-4WTX3J4I.js} +13 -12
  7. package/dist/{audio-IR3JGCMM.js → audio-XLWC7JKS.js} +22 -21
  8. package/dist/{auth-J6TAJLGD.js → auth-5K6X3NPJ.js} +4 -4
  9. package/dist/{autoUpdate-D7BJJUT2.js → autoUpdate-RNV7SKGB.js} +4 -4
  10. package/dist/{backgroundChecks-AILHY2YZ.js → backgroundChecks-QXLVZVGX.js} +5 -5
  11. package/dist/backgroundChecksWorker.js +5 -5
  12. package/dist/{batchRender-QZKFVWEI.js → batchRender-THKSPDZR.js} +14 -7
  13. package/dist/{beats-6LOEKZPB.js → beats-K7CGCFVL.js} +53 -15
  14. package/dist/{benchmark-RJMHI3YW.js → benchmark-PHRDIXNL.js} +18 -14
  15. package/dist/{browser-Q3Q36FE3.js → browser-GN6R5ZSK.js} +7 -7
  16. package/dist/{bundleWithLocalizedFonts-RWHFMSFL.js → bundleWithLocalizedFonts-C325UNR4.js} +3 -3
  17. package/dist/{capture-2PNTGVYV.js → capture-6UBQFHZQ.js} +76 -68
  18. package/dist/{capture-FO3ZZCT4.js → capture-BZ7APOGQ.js} +3 -3
  19. package/dist/{captureCompositionFrame-WTMLWVEJ.js → captureCompositionFrame-VORSCTWC.js} +19 -16
  20. package/dist/{catalog-LUZYPUYT.js → catalog-PHU2RUZ3.js} +18 -18
  21. package/dist/{catch-up-TUTLUTFP.js → catch-up-HCNRM46J.js} +7 -7
  22. package/dist/{check-K2TBTJZS.js → check-TJ5ZLB4I.js} +43 -42
  23. package/dist/{checkBrowser-JT7CXDT6.js → checkBrowser-DWP7ZXJ7.js} +38 -37
  24. package/dist/{chunk-STJ2ANMF.js → chunk-2HP5GIQ3.js} +3 -3
  25. package/dist/{chunk-L34DPWY4.js → chunk-2J3NA3OB.js} +13 -13
  26. package/dist/{chunk-B2A56S5C.js → chunk-2MCXIY4B.js} +13 -10
  27. package/dist/{chunk-DCAI5DBR.js → chunk-2ST4WAFY.js} +9 -1
  28. package/dist/{chunk-TSFA2Y5C.js → chunk-2VXY3PEF.js} +99 -69
  29. package/dist/{chunk-AYFF3GX6.js → chunk-32NB4VMH.js} +1 -1
  30. package/dist/{chunk-IXLUTE6N.js → chunk-3422KMTD.js} +5 -1
  31. package/dist/{chunk-JB7LML5B.js → chunk-3CXIX6XS.js} +68 -7
  32. package/dist/{chunk-F6DNM676.js → chunk-3FV5BVWS.js} +2 -2
  33. package/dist/{chunk-OTQXYTQZ.js → chunk-4E75LHAL.js} +23 -3
  34. package/dist/{chunk-TMBUBLZB.js → chunk-4HCJOFMB.js} +166 -46
  35. package/dist/{chunk-UZ7RJDEC.js → chunk-5IPKQHOL.js} +17 -6
  36. package/dist/{chunk-WBUO6WH6.js → chunk-5TRFLZ5Z.js} +2 -2
  37. package/dist/{chunk-HRPWRZGF.js → chunk-6N65ZMC5.js} +1 -1
  38. package/dist/{chunk-XUXGIA7H.js → chunk-6NLPPKBO.js} +1 -2
  39. package/dist/{chunk-3QLT727N.js → chunk-6WNLQI63.js} +4 -4
  40. package/dist/{chunk-XNLYMHX2.js → chunk-6XVKMBUA.js} +9 -6
  41. package/dist/{chunk-JLSXXMRU.js → chunk-7JJMT6LN.js} +1 -1
  42. package/dist/{chunk-7JHTNUF2.js → chunk-7LLRMYP6.js} +2 -2
  43. package/dist/{chunk-BT64TTSE.js → chunk-7RSY7SZN.js} +2 -2
  44. package/dist/{chunk-DX7VEUBO.js → chunk-7UZC4N62.js} +1 -1
  45. package/dist/{chunk-YT5VLUHM.js → chunk-A4OI5ZNX.js} +1 -1
  46. package/dist/{chunk-TSQAPPRS.js → chunk-AEXVVABM.js} +83 -45
  47. package/dist/{chunk-Y5L5I4US.js → chunk-AMZJFCOX.js} +8 -8
  48. package/dist/{chunk-WCT6KGGT.js → chunk-AR46ND2Q.js} +1 -1
  49. package/dist/chunk-B2XLXD7V.js +3897 -0
  50. package/dist/{chunk-KNQQZRB2.js → chunk-BEOK6F26.js} +2 -2
  51. package/dist/{chunk-76ITJYXX.js → chunk-BPKLUHFT.js} +7 -7
  52. package/dist/{chunk-OOAVKK2W.js → chunk-BV6YE455.js} +2 -2
  53. package/dist/{chunk-XGHHVYC7.js → chunk-BY6OQ6XP.js} +2 -2
  54. package/dist/{chunk-JQYJXUJW.js → chunk-C6KE4AFW.js} +1 -1
  55. package/dist/{chunk-TMK4Q7JA.js → chunk-CFUCHO4T.js} +20 -5
  56. package/dist/{chunk-FANFO5HI.js → chunk-CXRZBWSH.js} +11 -11
  57. package/dist/chunk-CZGHFATT.js +31 -0
  58. package/dist/{chunk-CYBXXSC4.js → chunk-DIKAPMMF.js} +2 -2
  59. package/dist/{chunk-7L37AB57.js → chunk-E3P3LJG6.js} +9 -9
  60. package/dist/{chunk-EU5HTY3E.js → chunk-E5V6WEMK.js} +58 -23
  61. package/dist/{chunk-HJZ5CPZA.js → chunk-EKGGSAWR.js} +6 -5
  62. package/dist/{chunk-7KVVNF7B.js → chunk-ELP5QZWL.js} +1 -1
  63. package/dist/{chunk-QH3T4WI2.js → chunk-EXAX37XR.js} +8 -2
  64. package/dist/{chunk-EI7FP7F3.js → chunk-FBVUAH7N.js} +12 -2
  65. package/dist/{chunk-TTZTGXKG.js → chunk-GANST5K3.js} +2 -2
  66. package/dist/{chunk-EQF6TVWB.js → chunk-IMSI7IFW.js} +65 -29
  67. package/dist/{chunk-W64L7IFS.js → chunk-IW5G323T.js} +1 -1
  68. package/dist/{chunk-RBGNU7VD.js → chunk-J2ASTCU6.js} +2 -2
  69. package/dist/{chunk-SUSSMCWL.js → chunk-J2BSUF6X.js} +1 -1
  70. package/dist/{chunk-GGVGOY6M.js → chunk-JCDYDF54.js} +2 -2
  71. package/dist/{chunk-EPOYPP36.js → chunk-K2AKVYNR.js} +2 -2
  72. package/dist/{chunk-XBGEWNGQ.js → chunk-KZOZN4PI.js} +4 -4
  73. package/dist/{chunk-E7DXKMKU.js → chunk-L2YGSAOL.js} +3 -3
  74. package/dist/{chunk-2FFOLLU2.js → chunk-LOKCBZYF.js} +3 -3
  75. package/dist/{chunk-56IDMP37.js → chunk-MEE4NTPZ.js} +2 -2
  76. package/dist/{chunk-56IOFIYB.js → chunk-MGBUWPXX.js} +2 -2
  77. package/dist/{chunk-K4664CDS.js → chunk-MVIJTXN5.js} +35 -14
  78. package/dist/{chunk-S2IEO6TH.js → chunk-ODBYZIOH.js} +28 -16
  79. package/dist/{chunk-45U3KY7Z.js → chunk-OQL4AJ4X.js} +6 -6
  80. package/dist/{chunk-5C7R55BJ.js → chunk-P2I4RLJE.js} +1 -1
  81. package/dist/{chunk-S7C6EM7N.js → chunk-PFRG5P32.js} +1 -1
  82. package/dist/{chunk-RUOG4VB7.js → chunk-PKZ7RK5N.js} +5 -4
  83. package/dist/{chunk-LLFQA7XF.js → chunk-QFPBRZJD.js} +1 -1
  84. package/dist/{chunk-CWVSJA52.js → chunk-QWLES6YV.js} +3 -3
  85. package/dist/{chunk-OAPYPSEB.js → chunk-QX4TB4NH.js} +292 -79
  86. package/dist/{chunk-BWPY64WA.js → chunk-R2U2G4OS.js} +1 -1
  87. package/dist/{chunk-46HEFGXJ.js → chunk-REUL2KH2.js} +1 -1
  88. package/dist/{chunk-R4QASDTN.js → chunk-RHYOWDI6.js} +2 -2
  89. package/dist/{chunk-DYAPHNV6.js → chunk-RWGASWT7.js} +1 -1
  90. package/dist/chunk-RXATE6FZ.js +385 -0
  91. package/dist/{chunk-CWYS2UNQ.js → chunk-SBBQFPCJ.js} +1 -1
  92. package/dist/{chunk-RDHEG7RX.js → chunk-SK7TR7BL.js} +4 -4
  93. package/dist/{chunk-KNU5COPB.js → chunk-T2EUWCJE.js} +1 -1
  94. package/dist/{chunk-6HYHHMX3.js → chunk-T6O5OLN2.js} +3 -3
  95. package/dist/{chunk-FVD44EQX.js → chunk-ULTKB5FC.js} +65 -23
  96. package/dist/{chunk-B7JFAXDP.js → chunk-VNPADTDD.js} +3 -3
  97. package/dist/{chunk-FUHI34T4.js → chunk-VOM2HLUI.js} +4 -4
  98. package/dist/{chunk-IARWN467.js → chunk-VRAXIQ6I.js} +2 -2
  99. package/dist/{chunk-NAUKCKCJ.js → chunk-W24SZ5FL.js} +4 -4
  100. package/dist/{chunk-ZFFKWHXN.js → chunk-WOKVXK4J.js} +1 -1
  101. package/dist/{chunk-WLG4OYH7.js → chunk-XF77MK3J.js} +1 -1
  102. package/dist/{chunk-DRTIIAIZ.js → chunk-XX2PA4L3.js} +2 -2
  103. package/dist/{chunk-A5YHWTSP.js → chunk-YMQQXPD5.js} +2 -2
  104. package/dist/{chunk-KUMUK6QS.js → chunk-YWRQHRDY.js} +17 -12
  105. package/dist/{chunk-EUUHVDMN.js → chunk-ZEMDV6W2.js} +29 -59
  106. package/dist/{clean-UVTWBPXK.js → clean-2RNCTDBT.js} +40 -27
  107. package/dist/cli.js +69 -67
  108. package/dist/{cloud-M42IPKFD.js → cloud-NFIKESNZ.js} +4 -4
  109. package/dist/{cloudrun-CTNX64R6.js → cloudrun-7224BCX3.js} +9 -9
  110. package/dist/commands/contrast-audit.browser.js +1 -1
  111. package/dist/commands/layout-audit.browser.js +64 -3
  112. package/dist/{compare-MQI7TG5M.js → compare-HL44MXVX.js} +80 -48
  113. package/dist/{compiler-EJE3HLCS.js → compiler-WF5QTXV7.js} +8 -7
  114. package/dist/{component-QSYOSFVV.js → component-ZBZXSJBR.js} +3 -3
  115. package/dist/{compositions-ITDFE7K4.js → compositions-76P7LDDX.js} +19 -17
  116. package/dist/{contactSheet-CAGMKI3E.js → contactSheet-43ISAESM.js} +2 -2
  117. package/dist/{delete-NTGTENKJ.js → delete-4YZBYOHJ.js} +7 -7
  118. package/dist/{deploy-AOJOXEYX.js → deploy-UGUUGYLF.js} +1 -1
  119. package/dist/{deterministicFonts-EGAAE7QL.js → deterministicFonts-RO2TCMLZ.js} +3 -3
  120. package/dist/{dist-NHW2JQCA.js → dist-5KKCRFPT.js} +5 -5
  121. package/dist/{dist-JH32CBQL.js → dist-QQ26RUDV.js} +5 -4
  122. package/dist/docs/rendering.md +2 -2
  123. package/dist/{doctor-Q6DAYVSQ.js → doctor-GGVUK4NB.js} +20 -19
  124. package/dist/{events-BQIBYPCF.js → events-OXPTHVDB.js} +4 -4
  125. package/dist/{events-PV3CDO4A.js → events-V2VU4J3B.js} +5 -5
  126. package/dist/{feedback-BZH26JQE.js → feedback-HFZ5SCUK.js} +16 -16
  127. package/dist/{ffmpeg-KU7RNT3U.js → ffmpeg-3VHY7GO3.js} +13 -12
  128. package/dist/{figma-PBGZUEIL.js → figma-7SEZTLBJ.js} +3 -3
  129. package/dist/fontLocalizeCli.js +14 -13
  130. package/dist/{get-MM2JZ5ET.js → get-Y2S2PXCM.js} +7 -7
  131. package/dist/{gpuPolicy-DQE2CD5T.js → gpuPolicy-UHPOWRV5.js} +11 -10
  132. package/dist/{grade-compare-YTDQ7YXW.js → grade-compare-4VTXSQM5.js} +38 -37
  133. package/dist/{gsapParserAcorn-SKODXC2N.js → gsapParserAcorn-OOTY2MVN.js} +2 -2
  134. package/dist/{help-M4B2DN7E.js → help-HXNOACHI.js} +1 -1
  135. package/dist/{history-ZW4UYKAJ.js → history-XDJUI4LC.js} +39 -16
  136. package/dist/hyperframe.manifest.json +1 -1
  137. package/dist/hyperframe.runtime.iife.js +64 -64
  138. package/dist/hyperframes-player.global.js +3 -3
  139. package/dist/hyperframes-slideshow.global.js +1 -1
  140. package/dist/{info-L7LQAXLK.js → info-KYRI3EZV.js} +56 -22
  141. package/dist/{init-HTSQ535A.js → init-IL7EWMT5.js} +38 -45
  142. package/dist/{inspect-EWF2THRR.js → inspect-TBNH23UC.js} +36 -35
  143. package/dist/{installer-PQKH2S7C.js → installer-O2YMFSI4.js} +8 -8
  144. package/dist/{keyframes-X2QKJ4DP.js → keyframes-4GF62KAJ.js} +13 -14
  145. package/dist/{lambda-BURM66GP.js → lambda-JFL6M4XZ.js} +12 -12
  146. package/dist/{layout-3Z3SJGZZ.js → layout-7MAEFR65.js} +36 -35
  147. package/dist/{lint-OMNZ2K5J.js → lint-4AYHKYAM.js} +23 -16
  148. package/dist/{lintProject-XM3DLUKG.js → lintProject-52SLJPRC.js} +5 -4
  149. package/dist/{list-5ZSQEH6N.js → list-3DP3D3MW.js} +7 -7
  150. package/dist/{login-YNCQPHLA.js → login-T54WQYRQ.js} +7 -7
  151. package/dist/{logout-DDC4QLVK.js → logout-JYFWWUGK.js} +3 -3
  152. package/dist/{manager-UHWEKPXC.js → manager-MZIJY73J.js} +3 -3
  153. package/dist/{manager-N6XXRQN3.js → manager-QROK2IH3.js} +14 -13
  154. package/dist/{media-treatment-EOKBRJPY.js → media-treatment-4CXF7MSG.js} +20 -19
  155. package/dist/{models-6T4CCKUV.js → models-IS3I6JKU.js} +18 -17
  156. package/dist/{motionShot-KXKMYZ3A.js → motionShot-DVYJZOTQ.js} +21 -20
  157. package/dist/{normalize-3AYFSN2F.js → normalize-FASIPBUM.js} +1 -1
  158. package/dist/{normalize-audio-VWB7RHHA.js → normalize-audio-4527JIK4.js} +12 -8
  159. package/dist/{open-32SQCNUP.js → open-5JE46SAX.js} +18 -18
  160. package/dist/{parakeetRunner-BXW2WX6Q.js → parakeetRunner-7JIJGJJ7.js} +20 -19
  161. package/dist/{pipeline-V5ONFRCY.js → pipeline-YEN3WFD2.js} +15 -14
  162. package/dist/{play-BBL262JE.js → play-WFX67I7M.js} +27 -26
  163. package/dist/{policies-MBWGLMWB.js → policies-GHVXA5PE.js} +1 -1
  164. package/dist/{preflight-LCNGQFNY.js → preflight-D377HVUZ.js} +15 -14
  165. package/dist/{present-RY4HO4ZQ.js → present-XTSEKAC7.js} +24 -23
  166. package/dist/{preview-BLLPCCLG.js → preview-5XH7EK6O.js} +28 -26
  167. package/dist/{producer-QG4AQ35S.js → producer-TFFYF4ZM.js} +1 -1
  168. package/dist/{projectConfig-LN3NR5OM.js → projectConfig-6YUJHMCL.js} +10 -10
  169. package/dist/{publication-TXMCS4KM.js → publication-JK33Y55E.js} +5 -5
  170. package/dist/{publish-57VURD7Z.js → publish-JHDGXWXU.js} +18 -17
  171. package/dist/{refresh-RXTOPRBB.js → refresh-USSFPJAU.js} +3 -3
  172. package/dist/{remove-background-VEWVIO3A.js → remove-background-P44MYAPJ.js} +16 -15
  173. package/dist/{render-SP7WAUB4.js → render-HJ34EGMN.js} +10 -9
  174. package/dist/{render-XMN3NJIQ.js → render-RBINWWP5.js} +43 -42
  175. package/dist/{render-4E7QDVOI.js → render-RJ3I4E3A.js} +26 -25
  176. package/dist/{render-batch-7ULP5RIJ.js → render-batch-3D6XQYUC.js} +11 -10
  177. package/dist/renderSetupWorker.js +9 -8
  178. package/dist/{resolver-D3XERO6U.js → resolver-HCLTFZUW.js} +7 -7
  179. package/dist/{screenshotCapture-UBY6TT75.js → screenshotCapture-I5EDCITF.js} +6 -3
  180. package/dist/{sherpa-5B5G426W.js → sherpa-IPOUJM6Q.js} +19 -18
  181. package/dist/{sites-5PWHAMEG.js → sites-Q2S3DZY4.js} +2 -1
  182. package/dist/skills/hyperframes/references/captions.md +1 -1
  183. package/dist/skills/hyperframes/references/skill-lifecycle.md +8 -4
  184. package/dist/skills/hyperframes-cli/references/cloudrun.md +1 -1
  185. package/dist/skills/hyperframes-cli/references/init-and-scaffold.md +1 -1
  186. package/dist/skills/hyperframes-cli/references/lambda.md +1 -1
  187. package/dist/skills/hyperframes-cli/references/lint-validate-inspect.md +2 -2
  188. package/dist/skills/hyperframes-cli/references/preview-render.md +1 -1
  189. package/dist/skills/hyperframes-cli/references/upgrade-info-misc.md +0 -8
  190. package/dist/skills/media-use/audio/references/transcribe.md +2 -2
  191. package/dist/skills/media-use/references/audio.md +1 -1
  192. package/dist/{skills-RXHRF7O7.js → skills-P67QEERC.js} +13 -75
  193. package/dist/{skillsUpdateCheck-JOTDZJAE.js → skillsUpdateCheck-IFMLRVIF.js} +5 -5
  194. package/dist/{slideshow-YTWATJRT.js → slideshow-SJGK4RQS.js} +1 -1
  195. package/dist/{snapshot-DN4MP4VN.js → snapshot-4YM4NNWJ.js} +66 -48
  196. package/dist/{src-W6Y5ZYRQ.js → src-DCD3YMXX.js} +13 -12
  197. package/dist/{src-XSDYRKLG.js → src-SSV66L3F.js} +14 -9
  198. package/dist/{staticProjectServer-JMFGTPMX.js → staticProjectServer-C7PPGLEQ.js} +22 -21
  199. package/dist/{status-CM7IQTU2.js → status-H5WLKQDS.js} +3 -3
  200. package/dist/studio/assets/{hyperframes-player-0HXJPmYC.js → hyperframes-player-ChN3cOr0.js} +3 -3
  201. package/dist/studio/assets/{index-DsSfhjUS.js → index-BYbFcRR0.js} +1 -1
  202. package/dist/studio/assets/{index-BYw97F07.js → index-CHu83hHM.js} +126 -125
  203. package/dist/studio/assets/{index-B3vk3hfU.css → index-CYbvOVp-.css} +1 -1
  204. package/dist/studio/index.html +2 -2
  205. package/dist/{studio-api-SZ4OMFPN.js → studio-api-6YZ7PIQR.js} +17 -14
  206. package/dist/{studioServer-LWO33H7D.js → studioServer-EWHSE4GC.js} +60 -59
  207. package/dist/{telemetry-QG5AANZ4.js → telemetry-4K6CPMNT.js} +2 -2
  208. package/dist/{telemetry-K3AFDKOP.js → telemetry-GGLBHZRZ.js} +5 -5
  209. package/dist/{timeline-NYQOAQDH.js → timeline-NKHQJXJ2.js} +65 -43
  210. package/dist/{tokens-K7YWUVOK.js → tokens-FWNNDJ6R.js} +2 -2
  211. package/dist/{transcribe-QAUMODXM.js → transcribe-TRPKXZ7L.js} +27 -26
  212. package/dist/{transcribe-ANPUQDZD.js → transcribe-VD2TMMC2.js} +17 -16
  213. package/dist/{tts-A2WILYGN.js → tts-5I2AJNLM.js} +1 -1
  214. package/dist/{updateCheck-RNR4HMDI.js → updateCheck-CUPS6LU3.js} +4 -4
  215. package/dist/{upgrade-MKUGZZPA.js → upgrade-23XO6MEX.js} +4 -4
  216. package/dist/{urlDownloader-5USPXLCS.js → urlDownloader-YOAOONCK.js} +10 -9
  217. package/dist/{validate-OJHPDLC5.js → validate-BWIW24G5.js} +30 -29
  218. package/dist/{video-BCKRR6LU.js → video-XRXJS4GC.js} +12 -11
  219. package/dist/warmCheck.js +43 -42
  220. package/package.json +2 -1
  221. package/dist/chunk-DIV37NUE.js +0 -3896
  222. package/dist/chunk-I5JRXMCV.js +0 -6077
@@ -1633,7 +1633,8 @@
1633
1633
  // Chromium 150+ includes independently painted descendants in text masks;
1634
1634
  // older builds drop their glyphs: https://github.com/heygen-com/hyperframes/issues/5117.
1635
1635
  const chromium = window.navigator.userAgent.match(/(?:HeadlessChrome|Chrome)\/(\d+)/);
1636
- if (!chromium || Number(chromium[1]) < 150 || !(element instanceof HTMLElement)) return false;
1636
+ const chromiumVersion = chromium ? Number(chromium[1]) : 0;
1637
+ if (!chromiumVersion || !(element instanceof HTMLElement)) return false;
1637
1638
 
1638
1639
  for (
1639
1640
  let ancestor = element.parentElement;
@@ -1645,6 +1646,7 @@
1645
1646
  style.webkitBackgroundClip || style.backgroundClip || "border-box",
1646
1647
  ).map((clip) => clip.trim());
1647
1648
  if (!clips.includes("text")) continue;
1649
+ if (chromiumVersion < 150 && hasIndependentTextPaint(element, ancestor)) continue;
1648
1650
  // Chromium builds the mask before descendant transforms, so moving the
1649
1651
  // child must not move its glyphs out of the mask for this check.
1650
1652
  const offset = layoutOffset(element);
@@ -1671,8 +1673,8 @@
1671
1673
  const imagePaints = images.some(
1672
1674
  (image, index) =>
1673
1675
  clips[index % clips.length] === "text" &&
1674
- /(?:linear|radial|conic)-gradient\(/i.test(image) &&
1675
- gradientMaxAlpha(image) > 0.05,
1676
+ (/url\(/i.test(image) ||
1677
+ (/(?:linear|radial|conic)-gradient\(/i.test(image) && gradientMaxAlpha(image) > 0.05)),
1676
1678
  );
1677
1679
  const colorPaints =
1678
1680
  clips[(images.length - 1) % clips.length] === "text" &&
@@ -1682,6 +1684,65 @@
1682
1684
  return false;
1683
1685
  }
1684
1686
 
1687
+ // Plain descendants share a text mask on older Chromium; independently
1688
+ // painted descendants do not. Check the whole path to the mask, including
1689
+ // wrappers: https://github.com/chromium/chromium/blob/148.0.7778.97/third_party/blink/renderer/core/layout/layout_inline.cc.
1690
+ function hasIndependentTextPaint(element, background) {
1691
+ for (let current = element; current !== background; current = current.parentElement) {
1692
+ const style = getComputedStyle(current);
1693
+ if (style.position && style.position !== "static") return true;
1694
+ if (Number.parseFloat(style.opacity || "1") < 1) return true;
1695
+ const isInline = style.display === "inline";
1696
+ if (
1697
+ [
1698
+ style.filter,
1699
+ style.backdropFilter,
1700
+ style.webkitBackdropFilter,
1701
+ style.maskImage,
1702
+ style.webkitMaskImage,
1703
+ style.clipPath,
1704
+ style.webkitClipPath,
1705
+ style.viewTransitionName,
1706
+ ].some((value) => value && value !== "none")
1707
+ )
1708
+ return true;
1709
+ if (
1710
+ !isInline &&
1711
+ [style.transform, style.translate, style.rotate, style.scale, style.perspective].some(
1712
+ (value) => value && value !== "none",
1713
+ )
1714
+ )
1715
+ return true;
1716
+ if (style.isolation === "isolate") return true;
1717
+ if (style.mixBlendMode && style.mixBlendMode !== "normal") return true;
1718
+ if (
1719
+ !isInline &&
1720
+ (style.backfaceVisibility === "hidden" || style.transformStyle === "preserve-3d")
1721
+ )
1722
+ return true;
1723
+ if (!isInline && /\b(?:paint|layout|content|strict)\b/.test(style.contain || "")) return true;
1724
+ if (style.contentVisibility && style.contentVisibility !== "visible") return true;
1725
+ if (
1726
+ (style.willChange || "")
1727
+ .split(",")
1728
+ .some(
1729
+ (property) =>
1730
+ /^(?:opacity|filter|backdrop-filter|position|isolation|mix-blend-mode|mask|mask-image|clip-path)$/.test(
1731
+ property.trim(),
1732
+ ) ||
1733
+ (!isInline &&
1734
+ /^(?:transform|translate|rotate|scale|perspective)$/.test(property.trim())),
1735
+ )
1736
+ )
1737
+ return true;
1738
+ if (style.zIndex && style.zIndex !== "auto" && current.parentElement) {
1739
+ const display = getComputedStyle(current.parentElement).display;
1740
+ if (/^(?:inline-)?(?:flex|grid)$/.test(display)) return true;
1741
+ }
1742
+ }
1743
+ return false;
1744
+ }
1745
+
1685
1746
  // Text whose glyphs paint with an effectively transparent fill renders
1686
1747
  // invisibly even though the element, its box, opacity and color all read as
1687
1748
  // present — so geometry/occlusion/contrast audits miss it (contrast reads
@@ -6,59 +6,60 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  createContactSheet
9
- } from "./chunk-NAUKCKCJ.js";
9
+ } from "./chunk-W24SZ5FL.js";
10
10
  import "./chunk-MRF4AMKD.js";
11
11
  import {
12
12
  displayPathFromInput,
13
13
  readOptionalString,
14
14
  resolveFromBase
15
15
  } from "./chunk-ZKDMAOFU.js";
16
- import "./chunk-QH3T4WI2.js";
16
+ import "./chunk-EXAX37XR.js";
17
17
  import "./chunk-6BEFEWFB.js";
18
18
  import {
19
19
  serveStaticProjectHtml
20
- } from "./chunk-HJZ5CPZA.js";
21
- import "./chunk-EPOYPP36.js";
20
+ } from "./chunk-EKGGSAWR.js";
21
+ import "./chunk-K2AKVYNR.js";
22
22
  import "./chunk-X7MTZ4T2.js";
23
23
  import "./chunk-XUHOIDKG.js";
24
- import "./chunk-L34DPWY4.js";
25
- import "./chunk-RDHEG7RX.js";
24
+ import "./chunk-2J3NA3OB.js";
25
+ import "./chunk-SK7TR7BL.js";
26
26
  import "./chunk-6JR2XUEE.js";
27
- import "./chunk-EI7FP7F3.js";
28
- import "./chunk-TMBUBLZB.js";
29
- import "./chunk-BT64TTSE.js";
27
+ import "./chunk-FBVUAH7N.js";
28
+ import "./chunk-4HCJOFMB.js";
29
+ import "./chunk-7RSY7SZN.js";
30
30
  import "./chunk-ALVXFXUG.js";
31
31
  import {
32
+ SCREENSHOT_IMAGE_WAIT_MS,
32
33
  openSettledCompositionPage,
33
34
  seekCompositionTimeline
34
- } from "./chunk-EU5HTY3E.js";
35
- import "./chunk-GGVGOY6M.js";
35
+ } from "./chunk-E5V6WEMK.js";
36
+ import "./chunk-JCDYDF54.js";
36
37
  import "./chunk-MOEGCMKI.js";
37
- import "./chunk-CWVSJA52.js";
38
+ import "./chunk-QWLES6YV.js";
38
39
  import "./chunk-DKPNNYBZ.js";
39
- import "./chunk-XNLYMHX2.js";
40
+ import "./chunk-6XVKMBUA.js";
40
41
  import "./chunk-K2FLNJVB.js";
41
42
  import "./chunk-EHSBBBR2.js";
42
- import "./chunk-ZFFKWHXN.js";
43
+ import "./chunk-WOKVXK4J.js";
43
44
  import "./chunk-442JNXRM.js";
44
- import "./chunk-KNQQZRB2.js";
45
- import "./chunk-UZ7RJDEC.js";
45
+ import "./chunk-BEOK6F26.js";
46
+ import "./chunk-5IPKQHOL.js";
46
47
  import "./chunk-XT7X6QCP.js";
47
48
  import "./chunk-4YYJOFKS.js";
48
49
  import "./chunk-HVW7ABXD.js";
49
- import "./chunk-SUSSMCWL.js";
50
+ import "./chunk-J2BSUF6X.js";
50
51
  import "./chunk-JHOCK3DG.js";
51
- import "./chunk-6HYHHMX3.js";
52
- import "./chunk-AYFF3GX6.js";
52
+ import "./chunk-T6O5OLN2.js";
53
+ import "./chunk-32NB4VMH.js";
53
54
  import "./chunk-AWDFDFI3.js";
54
55
  import "./chunk-P6LJ4Y32.js";
55
56
  import "./chunk-GMECXFAN.js";
56
- import "./chunk-7L37AB57.js";
57
+ import "./chunk-E3P3LJG6.js";
57
58
  import "./chunk-EOVYQ3IG.js";
58
59
  import {
59
60
  trackCompareSheet
60
- } from "./chunk-OOAVKK2W.js";
61
- import "./chunk-TTZTGXKG.js";
61
+ } from "./chunk-BV6YE455.js";
62
+ import "./chunk-GANST5K3.js";
62
63
  import "./chunk-VWG7OQKU.js";
63
64
  import {
64
65
  defineCommand
@@ -73,15 +74,15 @@ import {
73
74
  import "./chunk-KLIKCX6Q.js";
74
75
  import "./chunk-EVMY7IPL.js";
75
76
  import "./chunk-7FMUTGOH.js";
76
- import "./chunk-OAPYPSEB.js";
77
+ import "./chunk-QX4TB4NH.js";
77
78
  import "./chunk-IZCW2NKT.js";
78
- import "./chunk-56IOFIYB.js";
79
+ import "./chunk-MGBUWPXX.js";
79
80
  import "./chunk-RQVDTPGD.js";
80
- import "./chunk-TSQAPPRS.js";
81
- import "./chunk-DIV37NUE.js";
81
+ import "./chunk-AEXVVABM.js";
82
+ import "./chunk-B2XLXD7V.js";
82
83
  import "./chunk-VC76R6W2.js";
83
84
  import "./chunk-X7HBSTCZ.js";
84
- import "./chunk-B2A56S5C.js";
85
+ import "./chunk-2MCXIY4B.js";
85
86
  import "./chunk-OFQWTKPW.js";
86
87
  import "./chunk-DPVXBVLL.js";
87
88
  import "./chunk-3GXQPCJC.js";
@@ -90,32 +91,45 @@ import "./chunk-FXMKHHPO.js";
90
91
  import "./chunk-T6AGUTZJ.js";
91
92
  import "./chunk-XT6MXC7A.js";
92
93
  import "./chunk-4UMPIPCQ.js";
93
- import "./chunk-TSFA2Y5C.js";
94
+ import "./chunk-2VXY3PEF.js";
94
95
  import "./chunk-VAS6HQX3.js";
95
96
  import "./chunk-6BNTGNGD.js";
96
- import "./chunk-RUOG4VB7.js";
97
+ import "./chunk-CZGHFATT.js";
98
+ import "./chunk-PKZ7RK5N.js";
97
99
  import "./chunk-MMQ52NIZ.js";
98
- import "./chunk-BSQ7XANM.js";
100
+ import {
101
+ isPathInside
102
+ } from "./chunk-BSQ7XANM.js";
99
103
  import "./chunk-SDYDNHEE.js";
100
- import "./chunk-IXLUTE6N.js";
101
- import "./chunk-I5JRXMCV.js";
104
+ import "./chunk-3422KMTD.js";
105
+ import "./chunk-RXATE6FZ.js";
102
106
  import "./chunk-W2LGJSEN.js";
103
107
  import {
104
108
  withMeta
105
- } from "./chunk-STJ2ANMF.js";
109
+ } from "./chunk-2HP5GIQ3.js";
106
110
  import "./chunk-K4WIOZFP.js";
107
- import "./chunk-XUXGIA7H.js";
111
+ import "./chunk-6NLPPKBO.js";
108
112
  import "./chunk-WERLJGIC.js";
109
113
  import "./chunk-ISN5GRYI.js";
110
- import "./chunk-F6DNM676.js";
114
+ import "./chunk-3FV5BVWS.js";
111
115
  import {
112
116
  normalizeErrorMessage
113
- } from "./chunk-KNU5COPB.js";
117
+ } from "./chunk-T2EUWCJE.js";
114
118
  import "./chunk-KGPLIH7B.js";
115
119
  import "./chunk-M2WBOQ2Q.js";
116
120
 
117
121
  // src/commands/compare.ts
118
- import { cpSync, existsSync, mkdirSync, mkdtempSync, renameSync, rmSync, statSync } from "fs";
122
+ import {
123
+ cpSync,
124
+ existsSync,
125
+ mkdirSync,
126
+ mkdtempSync,
127
+ readdirSync,
128
+ realpathSync,
129
+ renameSync,
130
+ rmSync,
131
+ statSync
132
+ } from "fs";
119
133
  import { tmpdir } from "os";
120
134
  import { basename, dirname, extname, join } from "path";
121
135
  var MAX_COMPARE_VARIANTS = 16;
@@ -228,16 +242,29 @@ function inputError(variant) {
228
242
  `Variant "${variant.label}" is not a composition input (${variant.displayPath}): expected a directory containing index.html or a .html file`
229
243
  );
230
244
  }
231
- function stageHtmlVariant(variant) {
232
- const stagedDir = mkdtempSync(join(tmpdir(), "hf-compare-variant-"));
233
- try {
234
- cpSync(dirname(variant.inputPath), stagedDir, {
245
+ function copyVariantSiblings(sourceDir, destinationDir, stagingPaths) {
246
+ mkdirSync(destinationDir, { recursive: true });
247
+ for (const entry of readdirSync(sourceDir)) {
248
+ if (entry === "node_modules" || entry === ".git") continue;
249
+ const src = join(sourceDir, entry);
250
+ const dest = join(destinationDir, entry);
251
+ if (stagingPaths.includes(src)) continue;
252
+ if (stagingPaths.some((path) => isPathInside(path, src))) {
253
+ copyVariantSiblings(src, dest, stagingPaths);
254
+ continue;
255
+ }
256
+ cpSync(src, dest, {
235
257
  recursive: true,
236
- filter: (src) => {
237
- const base = basename(src);
238
- return base !== "node_modules" && base !== ".git";
239
- }
258
+ filter: (path) => basename(path) !== "node_modules" && basename(path) !== ".git"
240
259
  });
260
+ }
261
+ }
262
+ function stageHtmlVariant(variant, existingStagedDirs) {
263
+ const stagedDir = mkdtempSync(join(tmpdir(), "hf-compare-variant-"));
264
+ try {
265
+ const sourceDir = realpathSync(dirname(variant.inputPath));
266
+ const stagingPaths = [stagedDir, ...existingStagedDirs].map((path) => realpathSync(path));
267
+ copyVariantSiblings(sourceDir, realpathSync(stagedDir), stagingPaths);
241
268
  const sourceName = basename(variant.inputPath);
242
269
  if (sourceName !== "index.html") {
243
270
  renameSync(join(stagedDir, sourceName), join(stagedDir, "index.html"));
@@ -268,7 +295,10 @@ function prepareCompareVariantProjects(variants) {
268
295
  continue;
269
296
  }
270
297
  if (stat.isFile() && extname(variant.inputPath).toLowerCase() === ".html") {
271
- prepared.push(stageHtmlVariant(variant));
298
+ const stagedDirs = prepared.flatMap(
299
+ (project) => project.stagedDir ? [project.stagedDir] : []
300
+ );
301
+ prepared.push(stageHtmlVariant(variant, stagedDirs));
272
302
  continue;
273
303
  }
274
304
  throw inputError(variant);
@@ -292,7 +322,7 @@ function cleanupPreparedCompareVariants(variants) {
292
322
  }
293
323
  async function renderCompareVariant(variant, opts) {
294
324
  try {
295
- const { bundleToSingleHtml } = await import("./compiler-EJE3HLCS.js");
325
+ const { bundleToSingleHtml } = await import("./compiler-WF5QTXV7.js");
296
326
  const html = await bundleToSingleHtml(variant.projectDir);
297
327
  const server = await serveStaticProjectHtml(variant.projectDir, html);
298
328
  try {
@@ -306,7 +336,9 @@ async function renderCompareVariant(variant, opts) {
306
336
  });
307
337
  try {
308
338
  if (opts.atSeconds > 0) {
309
- await seekCompositionTimeline(page, opts.atSeconds);
339
+ await seekCompositionTimeline(page, opts.atSeconds, {
340
+ waitForImagesMs: SCREENSHOT_IMAGE_WAIT_MS
341
+ });
310
342
  }
311
343
  await page.screenshot({ path: opts.framePath, type: "png" });
312
344
  return { framePath: opts.framePath, renderReadyTimedOut };
@@ -24,7 +24,7 @@ import {
24
24
  scopeCssToComposition,
25
25
  validateHyperframeHtmlContract,
26
26
  wrapScopedCompositionScript
27
- } from "./chunk-TSQAPPRS.js";
27
+ } from "./chunk-AEXVVABM.js";
28
28
  import {
29
29
  AFTER_FONTS_SCRIPT_TYPE,
30
30
  AUDIO_GROUP_RENDER_ID_ATTR,
@@ -55,16 +55,17 @@ import {
55
55
  shouldClampResolvedMediaDuration,
56
56
  stripEmbeddedRuntimeScripts,
57
57
  styleElementsFor
58
- } from "./chunk-DIV37NUE.js";
58
+ } from "./chunk-B2XLXD7V.js";
59
59
  import "./chunk-VC76R6W2.js";
60
60
  import "./chunk-X7HBSTCZ.js";
61
- import "./chunk-B2A56S5C.js";
61
+ import "./chunk-2MCXIY4B.js";
62
62
  import "./chunk-OFQWTKPW.js";
63
63
  import "./chunk-DPVXBVLL.js";
64
- import "./chunk-TSFA2Y5C.js";
64
+ import "./chunk-2VXY3PEF.js";
65
65
  import "./chunk-VAS6HQX3.js";
66
66
  import "./chunk-6BNTGNGD.js";
67
- import "./chunk-RUOG4VB7.js";
67
+ import "./chunk-CZGHFATT.js";
68
+ import "./chunk-PKZ7RK5N.js";
68
69
  import {
69
70
  checkSubCompositionUsability
70
71
  } from "./chunk-MMQ52NIZ.js";
@@ -75,8 +76,8 @@ import {
75
76
  isPathInside
76
77
  } from "./chunk-BSQ7XANM.js";
77
78
  import "./chunk-SDYDNHEE.js";
78
- import "./chunk-IXLUTE6N.js";
79
- import "./chunk-I5JRXMCV.js";
79
+ import "./chunk-3422KMTD.js";
80
+ import "./chunk-RXATE6FZ.js";
80
81
  import "./chunk-M2WBOQ2Q.js";
81
82
  export {
82
83
  AFTER_FONTS_SCRIPT_TYPE,
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  downloadRender,
9
9
  runAssetImport
10
- } from "./chunk-R4QASDTN.js";
10
+ } from "./chunk-RHYOWDI6.js";
11
11
  import {
12
12
  FigmaClientError,
13
13
  createFigmaClient,
@@ -16,7 +16,7 @@ import {
16
16
  readBindings,
17
17
  resolveBindings,
18
18
  withFigmaErrors
19
- } from "./chunk-YT5VLUHM.js";
19
+ } from "./chunk-A4OI5ZNX.js";
20
20
  import "./chunk-K2FLNJVB.js";
21
21
  import {
22
22
  defineCommand
@@ -159,7 +159,7 @@ var component_default = defineCommand({
159
159
  `${result.unresolved.length} binding(s) reference tokens not yet imported \u2014 colors baked as literals (flagged data-figma-unresolved). Run \`hyperframes figma tokens\` on the source/library file, then re-import to link them.`
160
160
  );
161
161
  }
162
- const { trackFigmaImport } = await import("./telemetry-K3AFDKOP.js");
162
+ const { trackFigmaImport } = await import("./telemetry-GGLBHZRZ.js");
163
163
  trackFigmaImport({
164
164
  phase: "component",
165
165
  unresolvedBindings: result.unresolved.length,
@@ -6,13 +6,13 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  resolveProject
9
- } from "./chunk-OTQXYTQZ.js";
9
+ } from "./chunk-4E75LHAL.js";
10
10
  import "./chunk-K2FLNJVB.js";
11
11
  import {
12
12
  ensureDOMParser
13
13
  } from "./chunk-442JNXRM.js";
14
- import "./chunk-OOAVKK2W.js";
15
- import "./chunk-TTZTGXKG.js";
14
+ import "./chunk-BV6YE455.js";
15
+ import "./chunk-GANST5K3.js";
16
16
  import "./chunk-VWG7OQKU.js";
17
17
  import {
18
18
  defineCommand
@@ -22,15 +22,15 @@ import "./chunk-JVBRJMOP.js";
22
22
  import {
23
23
  c
24
24
  } from "./chunk-ZTZA4UWZ.js";
25
- import "./chunk-OAPYPSEB.js";
25
+ import "./chunk-QX4TB4NH.js";
26
26
  import "./chunk-IZCW2NKT.js";
27
- import "./chunk-56IOFIYB.js";
27
+ import "./chunk-MGBUWPXX.js";
28
28
  import "./chunk-RQVDTPGD.js";
29
- import "./chunk-TSQAPPRS.js";
30
- import "./chunk-DIV37NUE.js";
29
+ import "./chunk-AEXVVABM.js";
30
+ import "./chunk-B2XLXD7V.js";
31
31
  import "./chunk-VC76R6W2.js";
32
32
  import "./chunk-X7HBSTCZ.js";
33
- import "./chunk-B2A56S5C.js";
33
+ import "./chunk-2MCXIY4B.js";
34
34
  import "./chunk-OFQWTKPW.js";
35
35
  import "./chunk-DPVXBVLL.js";
36
36
  import "./chunk-3GXQPCJC.js";
@@ -40,31 +40,33 @@ import "./chunk-T6AGUTZJ.js";
40
40
  import "./chunk-XT6MXC7A.js";
41
41
  import "./chunk-4UMPIPCQ.js";
42
42
  import {
43
- resolveCompositionDuration,
44
43
  resolveReferencedStart
45
- } from "./chunk-TSFA2Y5C.js";
44
+ } from "./chunk-2VXY3PEF.js";
46
45
  import "./chunk-VAS6HQX3.js";
47
46
  import {
48
47
  readProjectFile
49
48
  } from "./chunk-6BNTGNGD.js";
50
- import "./chunk-RUOG4VB7.js";
49
+ import {
50
+ resolveCompositionDuration
51
+ } from "./chunk-CZGHFATT.js";
52
+ import "./chunk-PKZ7RK5N.js";
51
53
  import "./chunk-MMQ52NIZ.js";
52
54
  import {
53
55
  readDataDurationSeconds
54
56
  } from "./chunk-BSQ7XANM.js";
55
57
  import "./chunk-SDYDNHEE.js";
56
- import "./chunk-IXLUTE6N.js";
57
- import "./chunk-I5JRXMCV.js";
58
+ import "./chunk-3422KMTD.js";
59
+ import "./chunk-RXATE6FZ.js";
58
60
  import "./chunk-W2LGJSEN.js";
59
61
  import {
60
62
  withMeta
61
- } from "./chunk-STJ2ANMF.js";
63
+ } from "./chunk-2HP5GIQ3.js";
62
64
  import "./chunk-K4WIOZFP.js";
63
- import "./chunk-XUXGIA7H.js";
65
+ import "./chunk-6NLPPKBO.js";
64
66
  import "./chunk-WERLJGIC.js";
65
67
  import "./chunk-ISN5GRYI.js";
66
- import "./chunk-F6DNM676.js";
67
- import "./chunk-KNU5COPB.js";
68
+ import "./chunk-3FV5BVWS.js";
69
+ import "./chunk-T2EUWCJE.js";
68
70
  import "./chunk-M2WBOQ2Q.js";
69
71
 
70
72
  // src/commands/compositions.ts
@@ -10,9 +10,9 @@ import {
10
10
  createScrollContactSheet,
11
11
  createSnapshotContactSheet,
12
12
  createSvgContactSheet
13
- } from "./chunk-NAUKCKCJ.js";
13
+ } from "./chunk-W24SZ5FL.js";
14
14
  import "./chunk-MRF4AMKD.js";
15
- import "./chunk-QH3T4WI2.js";
15
+ import "./chunk-EXAX37XR.js";
16
16
  import "./chunk-6BEFEWFB.js";
17
17
  import "./chunk-M2WBOQ2Q.js";
18
18
  export {
@@ -7,10 +7,10 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  createCloudClient,
9
9
  reportApiError
10
- } from "./chunk-5C7R55BJ.js";
10
+ } from "./chunk-P2I4RLJE.js";
11
11
  import "./chunk-6A45RKAK.js";
12
- import "./chunk-HRPWRZGF.js";
13
- import "./chunk-7KVVNF7B.js";
12
+ import "./chunk-6N65ZMC5.js";
13
+ import "./chunk-ELP5QZWL.js";
14
14
  import "./chunk-CZUAX3BV.js";
15
15
  import {
16
16
  errorBox
@@ -28,13 +28,13 @@ import {
28
28
  import "./chunk-OFQWTKPW.js";
29
29
  import {
30
30
  withMeta
31
- } from "./chunk-STJ2ANMF.js";
31
+ } from "./chunk-2HP5GIQ3.js";
32
32
  import "./chunk-K4WIOZFP.js";
33
- import "./chunk-XUXGIA7H.js";
33
+ import "./chunk-6NLPPKBO.js";
34
34
  import "./chunk-WERLJGIC.js";
35
35
  import "./chunk-ISN5GRYI.js";
36
- import "./chunk-F6DNM676.js";
37
- import "./chunk-KNU5COPB.js";
36
+ import "./chunk-3FV5BVWS.js";
37
+ import "./chunk-T2EUWCJE.js";
38
38
  import "./chunk-M2WBOQ2Q.js";
39
39
 
40
40
  // src/commands/cloud/delete.ts
@@ -29,7 +29,7 @@ import {
29
29
  } from "./chunk-ZTZA4UWZ.js";
30
30
  import {
31
31
  VERSION
32
- } from "./chunk-F6DNM676.js";
32
+ } from "./chunk-3FV5BVWS.js";
33
33
  import "./chunk-M2WBOQ2Q.js";
34
34
 
35
35
  // src/commands/lambda/deploy.ts
@@ -20,15 +20,15 @@ import {
20
20
  normalizeSystemFontPrimaryFamilies,
21
21
  parseFontFamilyValue,
22
22
  resolveFontFamilyDeclarationFamilies
23
- } from "./chunk-LLFQA7XF.js";
23
+ } from "./chunk-QFPBRZJD.js";
24
24
  import "./chunk-FI4I7CME.js";
25
25
  import "./chunk-7FMUTGOH.js";
26
26
  import {
27
27
  FONT_ALIAS_KEYS
28
- } from "./chunk-B2A56S5C.js";
28
+ } from "./chunk-2MCXIY4B.js";
29
29
  import "./chunk-DPVXBVLL.js";
30
30
  import "./chunk-SDYDNHEE.js";
31
- import "./chunk-I5JRXMCV.js";
31
+ import "./chunk-RXATE6FZ.js";
32
32
  import "./chunk-M2WBOQ2Q.js";
33
33
  export {
34
34
  FONT_ALIASES,
@@ -75,7 +75,7 @@ import {
75
75
  serializeVfxChain,
76
76
  toFps,
77
77
  validateVariables
78
- } from "./chunk-56IOFIYB.js";
78
+ } from "./chunk-MGBUWPXX.js";
79
79
  import "./chunk-RQVDTPGD.js";
80
80
  import {
81
81
  AUDIO_GROUP_RENDER_ID_ATTR,
@@ -135,7 +135,7 @@ import {
135
135
  sourceTimeAt,
136
136
  stripEmbeddedRuntimeScripts,
137
137
  timeAtSourceTime
138
- } from "./chunk-DIV37NUE.js";
138
+ } from "./chunk-B2XLXD7V.js";
139
139
  import "./chunk-VC76R6W2.js";
140
140
  import {
141
141
  AUDIBLE_MEDIA_SELECTOR,
@@ -169,7 +169,7 @@ import {
169
169
  updateElementInHtml,
170
170
  validateCompositionGsap,
171
171
  validateCompositionHtml
172
- } from "./chunk-B2A56S5C.js";
172
+ } from "./chunk-2MCXIY4B.js";
173
173
  import {
174
174
  ProjectRootMissingError,
175
175
  folderGone,
@@ -221,8 +221,8 @@ import "./chunk-SDYDNHEE.js";
221
221
  import {
222
222
  parseSlideshowManifest,
223
223
  resolveSlideshow
224
- } from "./chunk-IXLUTE6N.js";
225
- import "./chunk-I5JRXMCV.js";
224
+ } from "./chunk-3422KMTD.js";
225
+ import "./chunk-RXATE6FZ.js";
226
226
  import "./chunk-M2WBOQ2Q.js";
227
227
  export {
228
228
  AUDIBLE_MEDIA_SELECTOR,
@@ -11,15 +11,16 @@ import {
11
11
  lintMediaUrls,
12
12
  lintProject,
13
13
  shouldBlockRender
14
- } from "./chunk-TSFA2Y5C.js";
14
+ } from "./chunk-2VXY3PEF.js";
15
15
  import "./chunk-VAS6HQX3.js";
16
16
  import "./chunk-6BNTGNGD.js";
17
- import "./chunk-RUOG4VB7.js";
17
+ import "./chunk-CZGHFATT.js";
18
+ import "./chunk-PKZ7RK5N.js";
18
19
  import "./chunk-MMQ52NIZ.js";
19
20
  import "./chunk-BSQ7XANM.js";
20
21
  import "./chunk-SDYDNHEE.js";
21
- import "./chunk-IXLUTE6N.js";
22
- import "./chunk-I5JRXMCV.js";
22
+ import "./chunk-3422KMTD.js";
23
+ import "./chunk-RXATE6FZ.js";
23
24
  import "./chunk-M2WBOQ2Q.js";
24
25
  export {
25
26
  LINT_RULE_COUNT,
@@ -14,8 +14,8 @@ Requires: Docker installed and running.
14
14
 
15
15
  ## Options
16
16
 
17
- - `-f, --fps` — 24, 30, or 60 (default: 30)
18
- - `-q, --quality` — draft, standard, high (default: standard)
17
+ - `-f, --fps` — 1-240 or a rational such as 30000/1001 (default: root `data-fps`, else 30)
18
+ - `-q, --quality` — draft, looks, delivery, or standard/high (default: looks)
19
19
  - `-w, --workers` — Parallel workers 1-8 (default: auto)
20
20
  - `--crf` — Override encoder CRF (mutually exclusive with `--video-bitrate`)
21
21
  - `--video-bitrate` — Target video bitrate such as `10M` (mutually exclusive with `--crf`)