hyperframes 0.8.142 → 0.8.144

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-YS2RCWEK.js → add-CWRTVGDB.js} +18 -17
  2. package/dist/{animatedGifPrep-SAMCDT7T.js → animatedGifPrep-JTOHIWI4.js} +15 -14
  3. package/dist/{asset-BLWC2NWB.js → asset-KU2Z4UFM.js} +4 -4
  4. package/dist/{assetCataloger-FVNBBRP3.js → assetCataloger-3CS2P7PA.js} +8 -7
  5. package/dist/{auth-DRZB7OAC.js → auth-IDSOIQWG.js} +1 -1
  6. package/dist/{autoUpdate-I5I3BOJK.js → autoUpdate-373B4BA2.js} +2 -2
  7. package/dist/{backgroundChecks-VR2QHGNY.js → backgroundChecks-53Q3NAMG.js} +3 -3
  8. package/dist/backgroundChecksWorker.js +3 -3
  9. package/dist/{batchRender-4YUHQI6X.js → batchRender-UKZA6BME.js} +11 -10
  10. package/dist/{beats-7OT7ALV3.js → beats-N5JGEOFR.js} +33 -28
  11. package/dist/{benchmark-Q2XQCRTR.js → benchmark-CUN3LN4V.js} +15 -14
  12. package/dist/{browser-7VAWQQZC.js → browser-NCZT5AP6.js} +40 -56
  13. package/dist/{bundleWithLocalizedFonts-DDMLLL2R.js → bundleWithLocalizedFonts-FWC7PE2D.js} +2 -2
  14. package/dist/{capture-HEJS6M5A.js → capture-QBLG3VJR.js} +26 -25
  15. package/dist/{capture-U7ABPKS5.js → capture-YLS32UHT.js} +2 -2
  16. package/dist/{catalog-DVJ3XPDN.js → catalog-HIWNAFHW.js} +19 -18
  17. package/dist/{catch-up-DF6AVSN2.js → catch-up-HGS7KIAC.js} +5 -5
  18. package/dist/{check-KXORRWAE.js → check-FH6UYYLO.js} +78 -66
  19. package/dist/{checkBrowser-J7HZJTRH.js → checkBrowser-RNWNOMCZ.js} +93 -41
  20. package/dist/{chunk-R2JEKLDZ.js → chunk-2DA2BBNY.js} +3 -3
  21. package/dist/{chunk-TQFG7HTI.js → chunk-3RM2ETQT.js} +0 -168
  22. package/dist/{chunk-YFT3BL7N.js → chunk-3VYNNWVA.js} +30 -12
  23. package/dist/{chunk-7FCDA4RH.js → chunk-3XTEXWNN.js} +8 -5
  24. package/dist/{chunk-PFCFR3KZ.js → chunk-442JNXRM.js} +1 -1
  25. package/dist/{chunk-BPZVDBHY.js → chunk-4LAR447G.js} +1 -1
  26. package/dist/{chunk-AM5L5YIA.js → chunk-4OA4LDTU.js} +1 -1
  27. package/dist/{chunk-DZEVA7DI.js → chunk-4OC7MQNB.js} +2 -2
  28. package/dist/{chunk-75JJVANE.js → chunk-54QISXOC.js} +3 -3
  29. package/dist/{chunk-FZK35GT4.js → chunk-5HJ343GH.js} +1 -1
  30. package/dist/{chunk-IDX52YJN.js → chunk-5VMR4WBS.js} +458 -159
  31. package/dist/{chunk-OSUKETIH.js → chunk-5WADG7PR.js} +1 -1
  32. package/dist/{chunk-JYYOAKHS.js → chunk-6IIGT7BX.js} +1 -1
  33. package/dist/{chunk-6UYZB4TY.js → chunk-7RAYSCYT.js} +4 -4
  34. package/dist/{chunk-WTMUCJ6Z.js → chunk-7SDCIWHQ.js} +11 -2
  35. package/dist/{chunk-LAOCA3MQ.js → chunk-A4Q7W4LV.js} +13 -8
  36. package/dist/{chunk-B6SMSALD.js → chunk-A53CBD24.js} +18 -12
  37. package/dist/{chunk-4PFZPP2N.js → chunk-A6S35NYA.js} +54 -16
  38. package/dist/{chunk-JOTLPC6S.js → chunk-AUBOF2PN.js} +1 -1
  39. package/dist/{chunk-WCJGTLPF.js → chunk-BHVFTYSI.js} +6 -3
  40. package/dist/chunk-BSQ7XANM.js +210 -0
  41. package/dist/{chunk-LCSMOLGX.js → chunk-BYSBRF24.js} +69 -8
  42. package/dist/{chunk-U7E736AJ.js → chunk-DDIVWXN7.js} +32 -14
  43. package/dist/{chunk-KOEWEFHK.js → chunk-DIRJ322I.js} +10 -5
  44. package/dist/{chunk-HMUF7FEO.js → chunk-EX6C672Y.js} +2 -2
  45. package/dist/{chunk-QGRFOOLE.js → chunk-F2SMS24Q.js} +288 -85
  46. package/dist/{chunk-5Z63TBTX.js → chunk-FH7WODJH.js} +1 -1
  47. package/dist/{chunk-XTLBLWOV.js → chunk-GEWKFRFI.js} +1 -1
  48. package/dist/{chunk-RVCWIIZ7.js → chunk-GV5R5B7Q.js} +1 -1
  49. package/dist/{chunk-TY6XOHEM.js → chunk-GZM2EFOE.js} +3 -3
  50. package/dist/chunk-GZVP4TWN.js +76 -0
  51. package/dist/{chunk-QXPCARFE.js → chunk-I5KY7EZP.js} +1 -1
  52. package/dist/{chunk-IW2CKH6A.js → chunk-IEIJRMLZ.js} +94 -59
  53. package/dist/chunk-IR35BCLK.js +13 -0
  54. package/dist/{chunk-JFKL3WAE.js → chunk-IWFLMU2N.js} +104 -19
  55. package/dist/{chunk-EFDXGAAD.js → chunk-JEHFZQYT.js} +1 -1
  56. package/dist/{chunk-IHFUKJOR.js → chunk-K2FLNJVB.js} +8 -2
  57. package/dist/{chunk-KDPYVTEU.js → chunk-KBB4RG6F.js} +6 -1
  58. package/dist/{chunk-LJAU4TPS.js → chunk-KFKZ3ISO.js} +2 -2
  59. package/dist/{sherpa-ZYTNFHD5.js → chunk-L5TUCXWR.js} +11 -44
  60. package/dist/{chunk-KYN364DU.js → chunk-LC3RQURJ.js} +7 -9
  61. package/dist/{chunk-IMY4QQTQ.js → chunk-LFX2HEYP.js} +8 -8
  62. package/dist/{chunk-PXSM4HPB.js → chunk-MAYCCGMQ.js} +12 -3
  63. package/dist/{chunk-OZUQF4NB.js → chunk-MQZVBHEY.js} +123 -8
  64. package/dist/{chunk-FWRNQOLT.js → chunk-MXNDKDFT.js} +3 -3
  65. package/dist/{chunk-A4KQZXZI.js → chunk-NE55C6S5.js} +4 -2
  66. package/dist/{chunk-GYE63V4P.js → chunk-NOPBBSLA.js} +24 -19
  67. package/dist/{chunk-H2X52H2N.js → chunk-NV4RXIQ7.js} +3 -3
  68. package/dist/{chunk-WGVOWWVK.js → chunk-OIDN7G42.js} +3 -3
  69. package/dist/{chunk-DPHJKWP5.js → chunk-OUSLVRO4.js} +107 -108
  70. package/dist/{chunk-JLKMWY2T.js → chunk-P6WH6QTV.js} +8 -5
  71. package/dist/{chunk-7M4KAPAA.js → chunk-PUGIRFPX.js} +2 -2
  72. package/dist/{chunk-6RAD4BCC.js → chunk-QATWIE4K.js} +2 -2
  73. package/dist/{chunk-D2KNWIQ6.js → chunk-QFSCCQIR.js} +1 -1
  74. package/dist/{chunk-XGMNQQTJ.js → chunk-RG3QWWIE.js} +1 -1
  75. package/dist/{chunk-MVTUV4TP.js → chunk-RI53TS2Y.js} +14 -6
  76. package/dist/{chunk-LQASVU3I.js → chunk-RVFEDAUV.js} +12 -4
  77. package/dist/{chunk-GK4AIFIH.js → chunk-SDYDNHEE.js} +34 -3
  78. package/dist/{chunk-WSGY5CDQ.js → chunk-SLCFKB3Y.js} +14 -10
  79. package/dist/{chunk-2NCHQUPX.js → chunk-SQLK7SJL.js} +1 -1
  80. package/dist/{chunk-PMRBLBUP.js → chunk-T42U2W2R.js} +14 -2
  81. package/dist/chunk-UPFUC4DB.js +136 -0
  82. package/dist/{chunk-IXCTG2WY.js → chunk-VYSUZEJG.js} +5 -5
  83. package/dist/chunk-WJB7WI4J.js +3753 -0
  84. package/dist/{chunk-YEIFI443.js → chunk-WPNE5NEP.js} +1 -1
  85. package/dist/{chunk-YHRZQJXH.js → chunk-XGFHYAYN.js} +265 -68
  86. package/dist/{chunk-LBKDQKWV.js → chunk-XU5GGV6R.js} +1 -1
  87. package/dist/{chunk-LTGGTEMA.js → chunk-Y6UPYWJS.js} +2 -2
  88. package/dist/{chunk-OKCR3JTO.js → chunk-YJXHMIZA.js} +13 -10
  89. package/dist/{chunk-JU6Y5TTZ.js → chunk-YUAXFWSQ.js} +3 -3
  90. package/dist/{chunk-TVCRUG2S.js → chunk-ZEUONDQG.js} +1 -1
  91. package/dist/{chunk-THXFSPLV.js → chunk-ZIRIDSDB.js} +1 -1
  92. package/dist/{chunk-6UM3R7PP.js → chunk-ZOA2SC4P.js} +129 -60
  93. package/dist/{clean-KTHTV5G5.js → clean-KPX27IKJ.js} +27 -26
  94. package/dist/cli.js +70 -160
  95. package/dist/{cloud-ARSZWALC.js → cloud-P7DAOISN.js} +4 -4
  96. package/dist/{cloudrun-NM7RXOCL.js → cloudrun-XM56TBOH.js} +13 -12
  97. package/dist/commands/contrast-audit.browser.js +60 -4
  98. package/dist/commands/layout-audit.browser.js +68 -0
  99. package/dist/{compare-CY4UO3RW.js → compare-F6YAFZZM.js} +37 -36
  100. package/dist/{compiler-VTH2D3ID.js → compiler-JZ4GNFMG.js} +16 -10
  101. package/dist/{component-FRUIAXIR.js → component-3CFOGIQA.js} +5 -5
  102. package/dist/{compositions-CUSY6ZYY.js → compositions-CPCMWF24.js} +38 -33
  103. package/dist/{delete-KT3VHP4L.js → delete-GYVKOKB6.js} +4 -4
  104. package/dist/{deterministicFonts-F6WIVL2W.js → deterministicFonts-U2BIMGPG.js} +3 -3
  105. package/dist/{dist-7SZU7MA7.js → dist-KDJTFJHA.js} +7 -6
  106. package/dist/{dist-2GC6XKRQ.js → dist-YPWQDWJ4.js} +42 -40
  107. package/dist/{doctor-4ROTBL5U.js → doctor-GWI3B6JT.js} +21 -20
  108. package/dist/{dom-IROKGVJI.js → dom-37K6YOH4.js} +2 -2
  109. package/dist/{events-QJDVMKSR.js → events-BRRUDPPT.js} +3 -3
  110. package/dist/{events-Q5PXT5UC.js → events-V2QFN4YM.js} +2 -2
  111. package/dist/{feedback-PQ7TWESA.js → feedback-CXMD7FWL.js} +14 -13
  112. package/dist/{ffmpeg-QIUFEFTY.js → ffmpeg-T5SH2EFJ.js} +3 -2
  113. package/dist/{figma-JN5DDBDS.js → figma-YABDWD66.js} +3 -3
  114. package/dist/fontLocalizeCli.js +18 -17
  115. package/dist/{get-KT6OTERO.js → get-L2SOQKHX.js} +4 -4
  116. package/dist/{gpuPolicy-LCBWVGEH.js → gpuPolicy-NBJNWHYS.js} +19 -16
  117. package/dist/{grade-compare-VS3RP73G.js → grade-compare-STXQPKYQ.js} +39 -38
  118. package/dist/{help-AD6FIZIO.js → help-4H6BSFLB.js} +2 -2
  119. package/dist/{history-ZRWYRY7R.js → history-4IQOLTHJ.js} +6 -6
  120. package/dist/hyperframe-runtime.js +56 -56
  121. package/dist/hyperframe.manifest.json +1 -1
  122. package/dist/hyperframe.runtime.iife.js +56 -56
  123. package/dist/hyperframes-player.global.js +3 -3
  124. package/dist/hyperframes-slideshow.global.js +23 -23
  125. package/dist/{info-WBBQA2AX.js → info-2CZOTNBC.js} +17 -16
  126. package/dist/{init-A2XBDFGF.js → init-6BXK42VS.js} +46 -46
  127. package/dist/{inspect-CLTZHA5O.js → inspect-VKU47TBH.js} +38 -37
  128. package/dist/{installer-WQDRVXH4.js → installer-T2BSSUDY.js} +11 -10
  129. package/dist/{keyframes-3FYOK6H6.js → keyframes-IEYVHRPI.js} +10 -10
  130. package/dist/{lambda-Y2PA2BGS.js → lambda-TIKG25CK.js} +12 -11
  131. package/dist/{layout-4KP5O7IJ.js → layout-XOI4PT7A.js} +38 -37
  132. package/dist/{lint-V4GRFHOJ.js → lint-DWCMVIX5.js} +14 -13
  133. package/dist/{lintProject-RG2KGAXB.js → lintProject-UBZ3TDHU.js} +7 -6
  134. package/dist/{list-OQ4VED6E.js → list-7GXKG5QM.js} +5 -5
  135. package/dist/{login-W47NKN5S.js → login-BQ5L2UHX.js} +4 -4
  136. package/dist/{manager-CT3D67CG.js → manager-BPSR6D3V.js} +2 -2
  137. package/dist/{manager-524RPYO7.js → manager-RFZNG5YT.js} +2 -2
  138. package/dist/{manager-DXB7JDHU.js → manager-YKMHR6LN.js} +9 -6
  139. package/dist/{media-treatment-HJYL3EME.js → media-treatment-IFB7OSZ3.js} +24 -22
  140. package/dist/{models-DYBAD2GQ.js → models-TY4PJ545.js} +68 -27
  141. package/dist/{motionShot-7NE2YBB3.js → motionShot-WXMFHICW.js} +33 -33
  142. package/dist/{normalize-IGLHCWTF.js → normalize-U3SL5VG3.js} +19 -8
  143. package/dist/{normalize-audio-INKCLMS2.js → normalize-audio-RFD776HQ.js} +10 -6
  144. package/dist/{open-TYC5THVY.js → open-7IXXGO2E.js} +5 -5
  145. package/dist/parakeetRunner-IHLYYMTZ.js +67 -0
  146. package/dist/{pipeline-EVKEPQEW.js → pipeline-TXKPLL2U.js} +20 -18
  147. package/dist/{play-QMZEM6X3.js → play-J2KP64UK.js} +31 -29
  148. package/dist/{preflight-Y5DN5D37.js → preflight-B4AFK3RG.js} +4 -4
  149. package/dist/{present-Y7IK3C4W.js → present-MHHNRVRA.js} +26 -25
  150. package/dist/{preview-5OQRYE6A.js → preview-CONUOFFQ.js} +28 -27
  151. package/dist/{producer-Q6G6JU7B.js → producer-ZI46K7HH.js} +1 -1
  152. package/dist/{projectConfig-RJN3DKDB.js → projectConfig-FGGVG5MV.js} +13 -12
  153. package/dist/{publication-QCPGGN3U.js → publication-TXFBMW6B.js} +8 -7
  154. package/dist/{publish-VZLFIGYY.js → publish-YZSPBFRD.js} +18 -17
  155. package/dist/{remove-background-TKOEHBA5.js → remove-background-4ATVLHLG.js} +22 -20
  156. package/dist/{render-KIIIF6PS.js → render-6FBYLYGJ.js} +20 -19
  157. package/dist/{render-XTXE5CRU.js → render-GFW5BPES.js} +13 -12
  158. package/dist/{render-X3NFNVEQ.js → render-MH4IUPWB.js} +41 -40
  159. package/dist/{render-batch-M55YZLZ5.js → render-batch-XUCZ2PUJ.js} +13 -12
  160. package/dist/{renderCancellation-X5BEHAZU.js → renderCancellation-XF7M7IUP.js} +18 -16
  161. package/dist/renderSetupWorker.js +37 -48
  162. package/dist/{resolver-GAMXRA42.js → resolver-W7AYCQGS.js} +10 -9
  163. package/dist/sherpa-LDUB5NLY.js +75 -0
  164. package/dist/sherpaWorker.js +2 -1
  165. package/dist/skills/hyperframes-cli/references/doctor-browser.md +24 -1
  166. package/dist/skills/hyperframes-cli/references/lint-validate-inspect.md +1 -1
  167. package/dist/skills/media-use/scripts/lib/cache.mjs +28 -14
  168. package/dist/skills/media-use/scripts/lib/cache.test.mjs +110 -0
  169. package/dist/skills/media-use/scripts/lib/duck.mjs +2 -1
  170. package/dist/skills/media-use/scripts/lib/duck.test.mjs +87 -0
  171. package/dist/skills/media-use/scripts/lib/probe.mjs +6 -1
  172. package/dist/skills/media-use/scripts/lib/probe.test.mjs +73 -0
  173. package/dist/skills/media-use/scripts/lib/words.mjs +1 -1
  174. package/dist/{skills-CZHVAD3J.js → skills-VENERS5X.js} +7 -7
  175. package/dist/{skillsUpdateCheck-6WLLX53A.js → skillsUpdateCheck-UXFYTACG.js} +3 -3
  176. package/dist/{slideshow-EJ4IMY6P.js → slideshow-4OJEPWNZ.js} +1 -1
  177. package/dist/{snapshot-K7BTJPYQ.js → snapshot-C6T74HTI.js} +44 -40
  178. package/dist/{src-YUW26JU5.js → src-FS5RSVEI.js} +17 -16
  179. package/dist/{src-3I3RH3V5.js → src-VUJ2FUFK.js} +18 -13
  180. package/dist/{staticProjectServer-IKCSGN2B.js → staticProjectServer-V2RZ4DWD.js} +23 -22
  181. package/dist/studio/assets/hyperframes-player-Bw_jIaSX.js +473 -0
  182. package/dist/studio/assets/{index-B-wffzRH.js → index-BVM9NuWl.js} +153 -153
  183. package/dist/studio/assets/{index-D3Vij9t1.js → index-Cj7W_c7p.js} +1 -1
  184. package/dist/studio/assets/{index-D5q2_7Gw.js → index-DyH9dT7b.js} +1 -1
  185. package/dist/studio/{chunk-TFLU2MGI.js → chunk-3GHTHPZD.js} +8 -1
  186. package/dist/studio/chunk-3GHTHPZD.js.map +1 -0
  187. package/dist/studio/{chunk-H2DUOXTF.js → chunk-G3EDKRZH.js} +3 -3
  188. package/dist/studio/{chunk-UYWON5AX.js → chunk-PEAKCOUW.js} +7 -3
  189. package/dist/studio/chunk-PEAKCOUW.js.map +1 -0
  190. package/dist/studio/{chunk-LOVBLSMR.js → chunk-Y2OHHNM2.js} +35 -19
  191. package/dist/studio/chunk-Y2OHHNM2.js.map +1 -0
  192. package/dist/studio/{domEditingLayers-KBTPQKGA.js → domEditingLayers-PYST4G45.js} +3 -3
  193. package/dist/studio/index.html +1 -1
  194. package/dist/studio/index.js +261 -230
  195. package/dist/studio/index.js.map +1 -1
  196. package/dist/studio/player.js +3 -3
  197. package/dist/studio/ui.d.ts +4 -5
  198. package/dist/studio/ui.js +1 -1
  199. package/dist/{studio-api-SQ3NXFSM.js → studio-api-TQE7KWKO.js} +22 -17
  200. package/dist/{studioServer-VVEO7XCH.js → studioServer-CYKSQK7L.js} +81 -64
  201. package/dist/{synthesize-77PTU6C5.js → synthesize-UCI4X5O7.js} +6 -6
  202. package/dist/{telemetry-FQDKR5XA.js → telemetry-A23PPRD6.js} +3 -3
  203. package/dist/{timeline-N6ZASFNE.js → timeline-T3QSGT3A.js} +143 -99
  204. package/dist/{tokens-2OIIBBCW.js → tokens-RT5HWA6C.js} +4 -4
  205. package/dist/{transcribe-7YTUCXDX.js → transcribe-FOLNOC5G.js} +116 -52
  206. package/dist/{transcribe-4F6MK73N.js → transcribe-HCF64LQK.js} +23 -20
  207. package/dist/{tts-TOHSPWEG.js → tts-B6AHFQEO.js} +6 -6
  208. package/dist/{updateCheck-AZ2COZFR.js → updateCheck-27PIP3AA.js} +2 -2
  209. package/dist/{upgrade-QAJEYB4X.js → upgrade-TVGXBUPJ.js} +2 -2
  210. package/dist/{urlDownloader-LSMFEO3R.js → urlDownloader-KBLBJKRL.js} +14 -13
  211. package/dist/{validate-GW5MDL36.js → validate-ZMYGK4QI.js} +40 -27
  212. package/dist/{video-PRNOKUK3.js → video-AVE5GIGM.js} +15 -14
  213. package/package.json +1 -1
  214. package/dist/chunk-J4UX3RS3.js +0 -3717
  215. package/dist/studio/assets/hyperframes-player-sAsRuV73.js +0 -473
  216. package/dist/studio/chunk-LOVBLSMR.js.map +0 -1
  217. package/dist/studio/chunk-TFLU2MGI.js.map +0 -1
  218. package/dist/studio/chunk-UYWON5AX.js.map +0 -1
  219. package/dist/{chunk-HBBJFK6I.js → chunk-APDLWWFG.js} +0 -0
  220. package/dist/{screenshotCapture-TEUIWXWN.js → screenshotCapture-3JXXUZND.js} +3 -3
  221. /package/dist/studio/{chunk-H2DUOXTF.js.map → chunk-G3EDKRZH.js.map} +0 -0
  222. /package/dist/studio/{domEditingLayers-KBTPQKGA.js.map → domEditingLayers-PYST4G45.js.map} +0 -0
@@ -8,21 +8,21 @@ import {
8
8
  auditClipDurations,
9
9
  shouldIgnoreHttpError,
10
10
  shouldIgnoreRequestFailure
11
- } from "./chunk-GYE63V4P.js";
11
+ } from "./chunk-NOPBBSLA.js";
12
12
  import {
13
13
  rectToBbox
14
14
  } from "./chunk-WBLXWOYK.js";
15
15
  import {
16
16
  ambiguousIssue,
17
17
  loadBrowserScript
18
- } from "./chunk-B6SMSALD.js";
18
+ } from "./chunk-A53CBD24.js";
19
19
  import {
20
20
  serveStaticProjectHtml
21
- } from "./chunk-LQASVU3I.js";
21
+ } from "./chunk-RVFEDAUV.js";
22
22
  import "./chunk-XUHOIDKG.js";
23
23
  import "./chunk-X7MTZ4T2.js";
24
- import "./chunk-LTGGTEMA.js";
25
- import "./chunk-LJAU4TPS.js";
24
+ import "./chunk-Y6UPYWJS.js";
25
+ import "./chunk-KFKZ3ISO.js";
26
26
  import {
27
27
  AUDIT_SEEK_OPTIONS,
28
28
  DEFAULT_ZOOM_PADDING_PX,
@@ -34,40 +34,40 @@ import {
34
34
  resolveCliChromeGpuMode,
35
35
  seekCompositionTimeline,
36
36
  waitForPreferredSeekTarget
37
- } from "./chunk-WSGY5CDQ.js";
38
- import "./chunk-5Z63TBTX.js";
39
- import "./chunk-OSUKETIH.js";
40
- import "./chunk-TY6XOHEM.js";
41
- import "./chunk-YEIFI443.js";
42
- import "./chunk-IHFUKJOR.js";
43
- import "./chunk-YHRZQJXH.js";
44
- import "./chunk-OKCR3JTO.js";
37
+ } from "./chunk-SLCFKB3Y.js";
38
+ import "./chunk-FH7WODJH.js";
39
+ import "./chunk-5WADG7PR.js";
40
+ import "./chunk-GZM2EFOE.js";
41
+ import "./chunk-WPNE5NEP.js";
42
+ import "./chunk-K2FLNJVB.js";
43
+ import "./chunk-XGFHYAYN.js";
44
+ import "./chunk-YJXHMIZA.js";
45
45
  import "./chunk-QZ3AZTXI.js";
46
- import "./chunk-U7E736AJ.js";
46
+ import "./chunk-DDIVWXN7.js";
47
47
  import {
48
48
  decideMediaProxyEligibility,
49
49
  proxyVariantFor,
50
50
  resolveProxy,
51
51
  scanProjectMediaCodecMap
52
- } from "./chunk-6UM3R7PP.js";
52
+ } from "./chunk-ZOA2SC4P.js";
53
53
  import "./chunk-G75ENCEZ.js";
54
54
  import "./chunk-EOVYQ3IG.js";
55
- import "./chunk-WTMUCJ6Z.js";
56
- import "./chunk-PFCFR3KZ.js";
55
+ import "./chunk-7SDCIWHQ.js";
56
+ import "./chunk-442JNXRM.js";
57
57
  import {
58
58
  resolveAutoProxy
59
- } from "./chunk-EFDXGAAD.js";
59
+ } from "./chunk-JEHFZQYT.js";
60
60
  import "./chunk-XT7X6QCP.js";
61
61
  import "./chunk-4YYJOFKS.js";
62
62
  import "./chunk-HVW7ABXD.js";
63
- import "./chunk-JOTLPC6S.js";
64
- import "./chunk-75JJVANE.js";
65
- import "./chunk-QXPCARFE.js";
63
+ import "./chunk-AUBOF2PN.js";
64
+ import "./chunk-54QISXOC.js";
65
+ import "./chunk-I5KY7EZP.js";
66
66
  import "./chunk-AWDFDFI3.js";
67
67
  import "./chunk-P6LJ4Y32.js";
68
68
  import "./chunk-374QQGBQ.js";
69
- import "./chunk-XGMNQQTJ.js";
70
- import "./chunk-LBKDQKWV.js";
69
+ import "./chunk-RG3QWWIE.js";
70
+ import "./chunk-XU5GGV6R.js";
71
71
  import "./chunk-VWG7OQKU.js";
72
72
  import "./chunk-GQJZORQP.js";
73
73
  import "./chunk-AMKC3AXA.js";
@@ -77,35 +77,36 @@ import "./chunk-54HJ63Q2.js";
77
77
  import "./chunk-PBN6GBJE.js";
78
78
  import "./chunk-KC5XXX3X.js";
79
79
  import "./chunk-TJSTGSAW.js";
80
- import "./chunk-IDX52YJN.js";
81
- import "./chunk-DPHJKWP5.js";
82
- import "./chunk-A4KQZXZI.js";
80
+ import "./chunk-5VMR4WBS.js";
81
+ import "./chunk-OUSLVRO4.js";
82
+ import "./chunk-NE55C6S5.js";
83
83
  import "./chunk-USDEMXXL.js";
84
- import "./chunk-YFT3BL7N.js";
85
- import "./chunk-OZUQF4NB.js";
86
- import "./chunk-DPVXBVLL.js";
87
- import "./chunk-J4UX3RS3.js";
84
+ import "./chunk-3VYNNWVA.js";
85
+ import "./chunk-WJB7WI4J.js";
88
86
  import "./chunk-VC76R6W2.js";
89
87
  import "./chunk-YA62XGXS.js";
88
+ import "./chunk-MQZVBHEY.js";
90
89
  import "./chunk-OFQWTKPW.js";
90
+ import "./chunk-DPVXBVLL.js";
91
91
  import "./chunk-T76PLPD6.js";
92
92
  import "./chunk-FXMKHHPO.js";
93
93
  import "./chunk-RQVDTPGD.js";
94
94
  import "./chunk-TWWSYAKJ.js";
95
- import "./chunk-IW2CKH6A.js";
96
- import "./chunk-JFKL3WAE.js";
97
- import "./chunk-HBBJFK6I.js";
95
+ import "./chunk-IEIJRMLZ.js";
96
+ import "./chunk-IWFLMU2N.js";
97
+ import "./chunk-APDLWWFG.js";
98
98
  import "./chunk-PJ3HDUCY.js";
99
- import "./chunk-TQFG7HTI.js";
100
- import "./chunk-GK4AIFIH.js";
99
+ import "./chunk-3RM2ETQT.js";
100
+ import "./chunk-BSQ7XANM.js";
101
+ import "./chunk-SDYDNHEE.js";
101
102
  import "./chunk-2PSPARWP.js";
102
- import "./chunk-PMRBLBUP.js";
103
- import "./chunk-JLKMWY2T.js";
103
+ import "./chunk-T42U2W2R.js";
104
+ import "./chunk-P6WH6QTV.js";
104
105
  import "./chunk-K4WIOZFP.js";
105
106
  import "./chunk-XUXGIA7H.js";
106
107
  import "./chunk-WERLJGIC.js";
107
108
  import "./chunk-ISN5GRYI.js";
108
- import "./chunk-DZEVA7DI.js";
109
+ import "./chunk-4OC7MQNB.js";
109
110
  import {
110
111
  normalizeErrorMessage
111
112
  } from "./chunk-KNU5COPB.js";
@@ -147,7 +148,7 @@ async function preResolveHostileMediaProxies(projectDir, html, autoProxyOverride
147
148
  );
148
149
  }
149
150
  async function runBrowserCheck(project, options, motion, runGrid) {
150
- const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-DDMLLL2R.js");
151
+ const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-FWC7PE2D.js");
151
152
  const html = await bundleWithLocalizedFonts(project.dir);
152
153
  await preResolveHostileMediaProxies(project.dir, html, options.autoProxy);
153
154
  const server = await serveStaticProjectHtml(
@@ -174,7 +175,7 @@ async function runBrowserCheck(project, options, motion, runGrid) {
174
175
  await waitForPreferredSeekTarget(page);
175
176
  const rootAnchor = await resolveRootAnchor(page);
176
177
  const launchSettleMs = Date.now() - launchSettleStart;
177
- const { analyzeClipMediaFit } = await import("./src-3I3RH3V5.js");
178
+ const { analyzeClipMediaFit } = await import("./src-VUJ2FUFK.js");
178
179
  for (const entry of await auditClipDurations(page, analyzeClipMediaFit, options.timeout)) {
179
180
  drafts.push({ code: "clip_media_fit", severity: entry.level, message: entry.text, time: 0 });
180
181
  }
@@ -197,7 +198,7 @@ async function runBrowserCheck(project, options, motion, runGrid) {
197
198
  }
198
199
  async function captureFindingCrops(project, options, requests) {
199
200
  if (requests.length === 0) return [];
200
- const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-DDMLLL2R.js");
201
+ const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-FWC7PE2D.js");
201
202
  const html = await bundleWithLocalizedFonts(project.dir);
202
203
  const server = await serveStaticProjectHtml(
203
204
  project.dir,
@@ -395,6 +396,7 @@ function createPageDriver(page, setTime) {
395
396
  collectLayout: (time, tolerance, layout) => collectLayout(page, time, tolerance, layout),
396
397
  collectOverlap: (time) => collectOverlap(page, time),
397
398
  collectLayoutGeometry: () => collectLayoutGeometry(page),
399
+ collectSeekClock: () => collectSeekClock(page),
398
400
  collectRotationSample: (time) => collectRotationSample(page, time),
399
401
  collectOffPivotRotationSample: (time) => collectOffPivotRotationSample(page, time),
400
402
  collectGeometryCandidates: (time, request) => collectGeometryCandidates(page, time, request),
@@ -520,6 +522,55 @@ async function collectLayoutGeometry(page) {
520
522
  return typeof result === "string" ? result : "";
521
523
  });
522
524
  }
525
+ async function collectSeekClock(page) {
526
+ return page.evaluate(() => {
527
+ const callOrUndefined = (target, key, args = []) => {
528
+ try {
529
+ return Reflect.apply(Reflect.get(Object(target), key), target, args);
530
+ } catch {
531
+ return void 0;
532
+ }
533
+ };
534
+ const known = Reflect.get(
535
+ window,
536
+ "__hfSeekClocks"
537
+ ) ?? {
538
+ ids: /* @__PURE__ */ new WeakMap(),
539
+ next: 0
540
+ };
541
+ Reflect.set(window, "__hfSeekClocks", known);
542
+ const idOf = (target) => {
543
+ if (!known.ids.has(target)) known.ids.set(target, ++known.next);
544
+ return known.ids.get(target) ?? 0;
545
+ };
546
+ const clocks = [];
547
+ const timelines = Reflect.get(window, "__timelines");
548
+ const registered = typeof timelines === "object" && timelines ? Object.values(timelines) : [];
549
+ const gsapRoot = Reflect.get(Reflect.get(window, "gsap") ?? {}, "globalTimeline");
550
+ const children = callOrUndefined(gsapRoot, "getChildren", [false, true, true]);
551
+ for (const timeline of [...registered, ...Array.isArray(children) ? children : []]) {
552
+ const total = Number(
553
+ callOrUndefined(timeline, "totalDuration") ?? callOrUndefined(timeline, "duration")
554
+ );
555
+ if (typeof timeline !== "object" || !timeline || !(total > 0)) continue;
556
+ const time = Number(
557
+ callOrUndefined(timeline, "totalTime") ?? callOrUndefined(timeline, "time")
558
+ );
559
+ if (!Number.isFinite(time)) continue;
560
+ const progress = Number(callOrUndefined(timeline, "totalProgress") ?? time / total);
561
+ const done = callOrUndefined(timeline, "reversed") === true ? progress <= 0 : progress >= 1;
562
+ clocks.push({ id: idOf(timeline), time, done });
563
+ }
564
+ for (const animation of document.getAnimations?.() ?? []) {
565
+ if (typeof animation.currentTime !== "number") continue;
566
+ const time = animation.currentTime;
567
+ const end = Number(animation.effect?.getComputedTiming().endTime ?? Number.POSITIVE_INFINITY);
568
+ const atEnd = animation.playbackRate < 0 ? time <= 0 : time >= end;
569
+ clocks.push({ id: idOf(animation), time, done: animation.playState === "finished" || atEnd });
570
+ }
571
+ return clocks;
572
+ });
573
+ }
523
574
  async function evaluateSampler(page, globalName) {
524
575
  return page.evaluate((name) => {
525
576
  const sample = Reflect.get(window, name);
@@ -1070,6 +1121,7 @@ function urlPath(url) {
1070
1121
  export {
1071
1122
  captureFindingCrops,
1072
1123
  captureOverviewShot,
1124
+ collectSeekClock,
1073
1125
  keepBrokenImageAborts,
1074
1126
  preResolveHostileMediaProxies,
1075
1127
  runBrowserCheck
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  errorBox
9
- } from "./chunk-IHFUKJOR.js";
9
+ } from "./chunk-K2FLNJVB.js";
10
10
  import {
11
11
  failCommand
12
12
  } from "./chunk-PBN6GBJE.js";
@@ -16,7 +16,7 @@ import {
16
16
  } from "./chunk-VC76R6W2.js";
17
17
  import {
18
18
  DOMParser
19
- } from "./chunk-GK4AIFIH.js";
19
+ } from "./chunk-SDYDNHEE.js";
20
20
 
21
21
  // ../core/dist/figma/client.js
22
22
  var FigmaClientError = class extends Error {
@@ -1278,7 +1278,7 @@ async function withFigmaErrors(command, fn) {
1278
1278
  } catch (err) {
1279
1279
  if (err instanceof Error) {
1280
1280
  try {
1281
- const { trackCommandFailure } = await import("./events-QJDVMKSR.js");
1281
+ const { trackCommandFailure } = await import("./events-BRRUDPPT.js");
1282
1282
  trackCommandFailure(
1283
1283
  command,
1284
1284
  err,
@@ -287,157 +287,6 @@ function writeClipTiming(attributes, update) {
287
287
  return readClipTiming(attributes);
288
288
  }
289
289
 
290
- // ../parsers/dist/mediaDuration.js
291
- var COMPOSITION_ATTRIBUTES2 = Object.freeze({
292
- start: "data-start",
293
- duration: "data-duration",
294
- trackIndex: "data-track-index",
295
- derivedEnd: "data-end",
296
- legacyTrack: "data-layer"
297
- });
298
- var CANONICAL_AUTHORED_TIMING_ATTRIBUTES2 = Object.freeze([
299
- COMPOSITION_ATTRIBUTES2.start,
300
- COMPOSITION_ATTRIBUTES2.duration,
301
- COMPOSITION_ATTRIBUTES2.trackIndex
302
- ]);
303
- var DERIVED_TIMING_ATTRIBUTES2 = Object.freeze([
304
- COMPOSITION_ATTRIBUTES2.derivedEnd
305
- ]);
306
- var LEGACY_TIMING_ATTRIBUTES2 = Object.freeze([
307
- COMPOSITION_ATTRIBUTES2.derivedEnd,
308
- COMPOSITION_ATTRIBUTES2.legacyTrack
309
- ]);
310
- function parseNumeric2(value) {
311
- if (value == null || value.trim() === "") return null;
312
- const parsed = Number(value);
313
- return Number.isFinite(parsed) ? parsed : null;
314
- }
315
- var nonNegative = (raw) => {
316
- const value = parseNumeric2(raw);
317
- return value !== null && value >= 0 ? value : null;
318
- };
319
- function readMediaOffsetSeconds(getAttr) {
320
- return nonNegative(getAttr("data-playback-start")) ?? nonNegative(getAttr("data-media-start")) ?? 0;
321
- }
322
- var MIN_PLAYBACK_RATE = 0.1;
323
- var MAX_PLAYBACK_RATE = 10;
324
- function clampPlaybackRate(raw) {
325
- return Number.isFinite(raw) && raw > 0 ? Math.max(MIN_PLAYBACK_RATE, Math.min(MAX_PLAYBACK_RATE, raw)) : 1;
326
- }
327
- function readPlaybackRate(getAttr, fallback = 1) {
328
- const authored = Number.parseFloat(getAttr("data-playback-rate") ?? "");
329
- return clampPlaybackRate(Number.isFinite(authored) && authored > 0 ? authored : fallback);
330
- }
331
- function readDataDurationSeconds(getAttr) {
332
- const duration = parseNumeric2(getAttr("data-duration"));
333
- return duration !== null && duration > 0 ? duration : null;
334
- }
335
- function readAuthoredDurationSeconds(getAttr, startSeconds) {
336
- const duration = readDataDurationSeconds(getAttr);
337
- if (duration !== null) return duration;
338
- const end = parseNumeric2(getAttr("data-end"));
339
- return end !== null ? end - startSeconds : null;
340
- }
341
- var DEFAULT_IMAGE_TIMELINE_DURATION_SECONDS = 3;
342
- function resolveNaturalDurationSeconds(sourceDurationSeconds, mediaStartSeconds, playbackRate) {
343
- if (!Number.isFinite(sourceDurationSeconds)) return null;
344
- const remaining = Math.max(0, sourceDurationSeconds - mediaStartSeconds);
345
- return remaining / clampPlaybackRate(playbackRate);
346
- }
347
- function resolveMediaDuration(input) {
348
- const { tag, authoredDurationSeconds, sourceDurationSeconds, mediaStartSeconds, playbackRate } = input;
349
- if (authoredDurationSeconds !== null && authoredDurationSeconds > 0) {
350
- return { seconds: authoredDurationSeconds, source: "authored" };
351
- }
352
- if (tag === "img") {
353
- return { seconds: DEFAULT_IMAGE_TIMELINE_DURATION_SECONDS, source: "default" };
354
- }
355
- if (sourceDurationSeconds === null) {
356
- return { seconds: null, source: "pending", reason: "source duration not yet probed" };
357
- }
358
- const seconds = resolveNaturalDurationSeconds(
359
- sourceDurationSeconds,
360
- mediaStartSeconds,
361
- playbackRate
362
- );
363
- if (seconds === null) {
364
- return { seconds: null, source: "pending", reason: "source reported a non-finite duration" };
365
- }
366
- return { seconds, source: "media" };
367
- }
368
-
369
- // ../parsers/dist/assets.js
370
- import { isAbsolute, relative, resolve } from "path";
371
- import { posix } from "path";
372
- var CSS_URL_RE = /\burl\(\s*(["']?)([^)"'\s](?:[^)"']*[^)"'\s])?)\1\s*\)/g;
373
- var PATH_ATTRS = ["src", "href"];
374
- function isNonRelativeUrl(val) {
375
- return !val || val.startsWith("http://") || val.startsWith("https://") || val.startsWith("//") || val.startsWith("data:") || val.startsWith("#") || val.startsWith("/");
376
- }
377
- function isPathInside(childPath, parentPath) {
378
- const absChild = resolve(childPath);
379
- const absParent = resolve(parentPath);
380
- if (absChild === absParent) return true;
381
- const rel = relative(absParent, absChild);
382
- return rel !== "" && !rel.startsWith("..") && !isAbsolute(rel);
383
- }
384
- var { join, resolve: resolve2, dirname } = posix;
385
- var isAbsoluteOrSpecial = isNonRelativeUrl;
386
- function needsRewrite(val) {
387
- return val.startsWith("../") || val === "..";
388
- }
389
- function splitPathSuffix(value) {
390
- const marker = value.search(/[?#]/);
391
- return marker === -1 ? [value, ""] : [value.slice(0, marker), value.slice(marker)];
392
- }
393
- function rewriteAssetPath(compSrcPath, relativePath, assetExists) {
394
- if (isAbsoluteOrSpecial(relativePath)) return relativePath;
395
- const compDir = dirname(compSrcPath);
396
- if (!compDir || compDir === ".") return relativePath;
397
- if (!needsRewrite(relativePath)) {
398
- if (!assetExists) return relativePath;
399
- const [filePart, suffix] = splitPathSuffix(relativePath);
400
- if (!filePart) return relativePath;
401
- const sibling = resolve2("/", join(compDir, filePart)).slice(1);
402
- return assetExists(sibling) ? sibling + suffix : relativePath;
403
- }
404
- const resolved = join(compDir, relativePath);
405
- const normalized = resolve2("/", resolved).slice(1);
406
- return normalized;
407
- }
408
- function rewriteAssetPaths(elements, compSrcPath, getAttr, setAttr, assetExists) {
409
- for (const el of elements) {
410
- for (const attr of PATH_ATTRS) {
411
- const val = (getAttr(el, attr) || "").trim();
412
- const rewritten = rewriteAssetPath(compSrcPath, val, assetExists);
413
- if (rewritten !== val) {
414
- setAttr(el, attr, rewritten);
415
- }
416
- }
417
- }
418
- }
419
- function rewriteInlineStyleAssetUrls(elements, compSrcPath, getStyle, setStyle, assetExists) {
420
- const compDir = dirname(compSrcPath);
421
- if (!compDir || compDir === ".") return;
422
- for (const el of elements) {
423
- const style = getStyle(el);
424
- if (!style) continue;
425
- const rewritten = rewriteCssAssetUrls(style, compSrcPath, assetExists);
426
- if (rewritten !== style) {
427
- setStyle(el, rewritten);
428
- }
429
- }
430
- }
431
- function rewriteCssAssetUrls(cssText, compSrcPath, assetExists) {
432
- if (!cssText) return cssText;
433
- return cssText.replace(CSS_URL_RE, (full, quote, rawUrl) => {
434
- const urlValue = (rawUrl || "").trim();
435
- const rewritten = rewriteAssetPath(compSrcPath, urlValue, assetExists);
436
- if (rewritten === urlValue) return full;
437
- return `url(${quote || ""}${rewritten}${quote || ""})`;
438
- });
439
- }
440
-
441
290
  // ../parsers/dist/subCompositionValidity.js
442
291
  function resolveSubCompositionContent(html, document) {
443
292
  const template = document.querySelector("template");
@@ -987,23 +836,6 @@ export {
987
836
  parseStartExpression,
988
837
  readClipTiming,
989
838
  writeClipTiming,
990
- readMediaOffsetSeconds,
991
- MIN_PLAYBACK_RATE,
992
- MAX_PLAYBACK_RATE,
993
- clampPlaybackRate,
994
- readPlaybackRate,
995
- readDataDurationSeconds,
996
- readAuthoredDurationSeconds,
997
- resolveNaturalDurationSeconds,
998
- resolveMediaDuration,
999
- CSS_URL_RE,
1000
- PATH_ATTRS,
1001
- isNonRelativeUrl,
1002
- isPathInside,
1003
- rewriteAssetPath,
1004
- rewriteAssetPaths,
1005
- rewriteInlineStyleAssetUrls,
1006
- rewriteCssAssetUrls,
1007
839
  resolveSubCompositionContent,
1008
840
  checkSubCompositionUsability,
1009
841
  COLOR_GRADING_CONTRACT_VERSION,
@@ -4,6 +4,12 @@ import { dirname as __hf_dirname } from "node:path";
4
4
  var require = __hf_createRequire(import.meta.url);
5
5
  var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
+ import {
8
+ isMediaElement as isMediaElement2,
9
+ parseStrictFiniteTimingNumber,
10
+ resolveNaturalMediaTimelineDuration,
11
+ resolveTimedImageDurationSeconds
12
+ } from "./chunk-WJB7WI4J.js";
7
13
  import {
8
14
  CANVAS_DIMENSIONS,
9
15
  isCompositionElement,
@@ -11,20 +17,14 @@ import {
11
17
  isTextElement,
12
18
  keyframesToGsapAnimations,
13
19
  serializeGsapAnimations
14
- } from "./chunk-OZUQF4NB.js";
15
- import {
16
- isMediaElement as isMediaElement2,
17
- parseStrictFiniteTimingNumber,
18
- resolveNaturalMediaTimelineDuration,
19
- resolveTimedImageDurationSeconds
20
- } from "./chunk-J4UX3RS3.js";
20
+ } from "./chunk-MQZVBHEY.js";
21
21
  import {
22
22
  COMPOSITION_ATTRIBUTES,
23
23
  parseStartExpression
24
- } from "./chunk-TQFG7HTI.js";
24
+ } from "./chunk-3RM2ETQT.js";
25
25
  import {
26
26
  parseHTML
27
- } from "./chunk-GK4AIFIH.js";
27
+ } from "./chunk-SDYDNHEE.js";
28
28
 
29
29
  // ../core/dist/runtime/authoredTiming.js
30
30
  function finiteNumber(value) {
@@ -927,6 +927,16 @@ function renderFrameIdForRenderId(renderId) {
927
927
  return `${RENDER_FRAME_ID_PREFIX}${renderId}${RENDER_FRAME_ID_SUFFIX}`;
928
928
  }
929
929
 
930
+ // ../core/dist/utils/cssSelector.js
931
+ function queryByAttr(root, attr, value, tag) {
932
+ const selector = tag ? `${tag}[${attr}]` : `[${attr}]`;
933
+ for (const el of root.querySelectorAll(selector)) {
934
+ if (el.getAttribute(attr) === value)
935
+ return el;
936
+ }
937
+ return null;
938
+ }
939
+
930
940
  // ../core/dist/media/gif.js
931
941
  var BROWSER_MIN_DELAY_CENTISECONDS = 10;
932
942
  function normalizeDelayCentiseconds(delay) {
@@ -1005,6 +1015,7 @@ function parseAnimatedGifMetadata(bytes, onFrame) {
1005
1015
  }
1006
1016
  let frameCount = 0;
1007
1017
  let controlPackedOffset = null;
1018
+ let delayCentiseconds = 0;
1008
1019
  const delaysCentiseconds = [];
1009
1020
  let loopCount = null;
1010
1021
  while (pos < bytes.length) {
@@ -1026,7 +1037,7 @@ function parseAnimatedGifMetadata(bytes, onFrame) {
1026
1037
  const delay = readU16LE(bytes, pos + 2);
1027
1038
  if (delay == null)
1028
1039
  return null;
1029
- delaysCentiseconds.push(normalizeDelayCentiseconds(delay));
1040
+ delayCentiseconds = delay;
1030
1041
  controlPackedOffset = pos + 1;
1031
1042
  pos += 1 + blockSize;
1032
1043
  if (bytes[pos] !== 0)
@@ -1043,8 +1054,10 @@ function parseAnimatedGifMetadata(bytes, onFrame) {
1043
1054
  pos = parsed.nextOffset;
1044
1055
  continue;
1045
1056
  }
1046
- if (label === PLAIN_TEXT_LABEL)
1057
+ if (label === PLAIN_TEXT_LABEL) {
1047
1058
  controlPackedOffset = null;
1059
+ delayCentiseconds = 0;
1060
+ }
1048
1061
  const next = skipSubBlocks(bytes, pos);
1049
1062
  if (next == null)
1050
1063
  return null;
@@ -1069,6 +1082,8 @@ function parseAnimatedGifMetadata(bytes, onFrame) {
1069
1082
  if (next == null)
1070
1083
  return null;
1071
1084
  pos = next;
1085
+ delaysCentiseconds.push(normalizeDelayCentiseconds(delayCentiseconds));
1086
+ delayCentiseconds = 0;
1072
1087
  frameCount += 1;
1073
1088
  continue;
1074
1089
  }
@@ -4333,13 +4348,15 @@ var DEFAULTS = {
4333
4348
  function fitTextFontSize(text, options) {
4334
4349
  const opts = { ...DEFAULTS, ...options };
4335
4350
  const lineHeightRatio = 1.2;
4336
- for (let size = opts.baseFontSize; size >= opts.minFontSize; size -= opts.step) {
4351
+ for (let size = opts.baseFontSize; size >= opts.minFontSize; size = Math.max(opts.minFontSize, size - opts.step)) {
4337
4352
  const font = `${opts.fontWeight} ${size}px ${opts.fontFamily}`;
4338
4353
  const prepared = prepare(text, font);
4339
4354
  const { lineCount } = layout(prepared, opts.maxWidth, size * lineHeightRatio);
4340
4355
  if (lineCount <= 1) {
4341
4356
  return { fontSize: size, fits: true };
4342
4357
  }
4358
+ if (size === opts.minFontSize)
4359
+ break;
4343
4360
  }
4344
4361
  return { fontSize: opts.minFontSize, fits: false };
4345
4362
  }
@@ -5546,6 +5563,7 @@ export {
5546
5563
  RENDER_FRAME_ID_PREFIX,
5547
5564
  RENDER_FRAME_ID_SUFFIX,
5548
5565
  renderFrameIdForRenderId,
5566
+ queryByAttr,
5549
5567
  parseAnimatedGifMetadata,
5550
5568
  gifClearsAfterLeavingFrameInPlace,
5551
5569
  clearGifFramesBeforeNext,
@@ -9,28 +9,31 @@ import {
9
9
  } from "./chunk-6IHWCZ3W.js";
10
10
  import {
11
11
  stoppedByCancelSignal
12
- } from "./chunk-FWRNQOLT.js";
12
+ } from "./chunk-MXNDKDFT.js";
13
13
  import {
14
14
  DEFAULT_MODEL,
15
15
  ensureModel,
16
16
  ensureWhisper,
17
17
  hasFFmpeg
18
- } from "./chunk-PXSM4HPB.js";
18
+ } from "./chunk-MAYCCGMQ.js";
19
19
  import {
20
20
  findFFmpeg,
21
21
  findFFprobe,
22
22
  getFFmpegInstallHint
23
- } from "./chunk-TVCRUG2S.js";
23
+ } from "./chunk-ZEUONDQG.js";
24
24
  import {
25
25
  findWavChunk
26
26
  } from "./chunk-UOFAE5RF.js";
27
+ import {
28
+ TRANSCRIPT_FILE
29
+ } from "./chunk-IR35BCLK.js";
27
30
 
28
31
  // src/whisper/transcribe.ts
29
32
  import { execFile, execFileSync } from "child_process";
30
33
  import { once } from "events";
31
34
  import { createInterface } from "readline";
32
35
  import { existsSync, readFileSync, mkdirSync, rmSync, statSync, unlinkSync } from "fs";
33
- import { join, extname } from "path";
36
+ import { basename, join, extname } from "path";
34
37
  import { tmpdir } from "os";
35
38
  import { randomUUID } from "crypto";
36
39
  var WHISPER_TIMEOUT_FLOOR_MS = 3e5;
@@ -297,7 +300,7 @@ async function transcribe(inputPath, outputDir, options) {
297
300
  status: "started",
298
301
  durationSeconds: wavSeconds
299
302
  });
300
- const outputBase = join(outputDir, "transcript");
303
+ const outputBase = join(outputDir, basename(TRANSCRIPT_FILE, ".json"));
301
304
  mkdirSync(outputDir, { recursive: true });
302
305
  const whisperArgs = [
303
306
  "--model",
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  DOMParser
9
- } from "./chunk-GK4AIFIH.js";
9
+ } from "./chunk-SDYDNHEE.js";
10
10
 
11
11
  // src/utils/dom.ts
12
12
  function ensureDOMParser() {
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  VERSION
9
- } from "./chunk-DZEVA7DI.js";
9
+ } from "./chunk-4OC7MQNB.js";
10
10
 
11
11
  // src/registry/compatibility.ts
12
12
  import { compareVersions } from "compare-versions";
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-B4P5VDFQ.js";
12
12
  import {
13
13
  errorBox
14
- } from "./chunk-IHFUKJOR.js";
14
+ } from "./chunk-K2FLNJVB.js";
15
15
  import {
16
16
  failCommand
17
17
  } from "./chunk-PBN6GBJE.js";
@@ -6,8 +6,8 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
 
8
8
  // src/version.ts
9
- var VERSION = true ? "0.8.142" : "0.0.0-dev";
10
- var PRODUCER_VERSION = true ? "0.8.142" : "0.0.0-dev";
9
+ var VERSION = true ? "0.8.144" : "0.0.0-dev";
10
+ var PRODUCER_VERSION = true ? "0.8.144" : "0.0.0-dev";
11
11
 
12
12
  export {
13
13
  VERSION,
@@ -8,20 +8,20 @@ import {
8
8
  DEFAULT_REGISTRY_URL,
9
9
  fetchItemFile,
10
10
  validRegistryItem
11
- } from "./chunk-QXPCARFE.js";
11
+ } from "./chunk-I5KY7EZP.js";
12
12
  import {
13
13
  publishRegistryFile,
14
14
  registryTargetPath
15
15
  } from "./chunk-GMECXFAN.js";
16
16
  import {
17
17
  validateVariables
18
- } from "./chunk-YFT3BL7N.js";
18
+ } from "./chunk-3VYNNWVA.js";
19
19
  import {
20
20
  realProjectRoot
21
21
  } from "./chunk-OFQWTKPW.js";
22
22
  import {
23
23
  isCompositionVariable
24
- } from "./chunk-HBBJFK6I.js";
24
+ } from "./chunk-APDLWWFG.js";
25
25
 
26
26
  // src/registry/installer.ts
27
27
  import { createHash } from "crypto";
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  updateNoticesSuppressed
9
- } from "./chunk-JLKMWY2T.js";
9
+ } from "./chunk-P6WH6QTV.js";
10
10
  import {
11
11
  hostAnswers
12
12
  } from "./chunk-K4WIOZFP.js";