hyperframes 0.8.147 → 0.8.149

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 (184) hide show
  1. package/dist/{add-5CNUY3EW.js → add-MG53577L.js} +18 -18
  2. package/dist/{animatedGifPrep-ZID2XJRQ.js → animatedGifPrep-HV4ZFVPV.js} +5 -5
  3. package/dist/api.d.ts +209 -0
  4. package/dist/api.js +75 -0
  5. package/dist/{asset-TFEENZ7K.js → asset-3GIBXLLL.js} +3 -3
  6. package/dist/{assetCataloger-GX4B55VB.js → assetCataloger-JJQ4JW2P.js} +2 -2
  7. package/dist/{auth-EJVZW6C3.js → auth-XQMT727H.js} +4 -4
  8. package/dist/{autoUpdate-MBNEZ2U4.js → autoUpdate-CREZJGMU.js} +2 -2
  9. package/dist/{backgroundChecks-DNW5NPTY.js → backgroundChecks-K3S5QKR3.js} +3 -3
  10. package/dist/backgroundChecksWorker.js +3 -3
  11. package/dist/{batchRender-T7S2CGJE.js → batchRender-42AKNX73.js} +6 -6
  12. package/dist/{beats-STXBGN6Z.js → beats-Y7IKETUS.js} +21 -21
  13. package/dist/{benchmark-AC6IGEQP.js → benchmark-22SAXSO5.js} +18 -18
  14. package/dist/{browser-FB5AK32T.js → browser-ABNISCC3.js} +14 -13
  15. package/dist/{bundleWithLocalizedFonts-HSCWGCFO.js → bundleWithLocalizedFonts-OE5ZI4JE.js} +5 -5
  16. package/dist/{capture-VEIVUHWB.js → capture-DBNHO4WJ.js} +2 -2
  17. package/dist/{capture-I24MXH3Y.js → capture-HQG5W42I.js} +19 -19
  18. package/dist/{catalog-JRC4VTTI.js → catalog-KICZFIDX.js} +34 -34
  19. package/dist/{catch-up-NTCK7Z3G.js → catch-up-ZCQUCI45.js} +13 -13
  20. package/dist/{check-7M7W4LPN.js → check-TGXIICEF.js} +48 -48
  21. package/dist/{checkBrowser-2YRVCAYB.js → checkBrowser-3N23I56J.js} +36 -36
  22. package/dist/{chunk-A72OAGNB.js → chunk-2HWB4TCI.js} +1 -1
  23. package/dist/chunk-3WD4JNMU.js +3795 -0
  24. package/dist/{chunk-XOJDBRNF.js → chunk-4S4VUXW3.js} +1 -1
  25. package/dist/{chunk-JBQJKC23.js → chunk-62RUQJ5J.js} +1 -1
  26. package/dist/{chunk-A6S35NYA.js → chunk-7IEGPJ4P.js} +1 -1
  27. package/dist/{chunk-BAKPN2D2.js → chunk-AHBYQRGI.js} +1 -1
  28. package/dist/{chunk-H7B6JSHI.js → chunk-AY2BONTF.js} +1 -1
  29. package/dist/{chunk-A4Q7W4LV.js → chunk-B3XLIBFL.js} +4 -2
  30. package/dist/{chunk-ZVZSFDW3.js → chunk-BNYRD7PQ.js} +2 -2
  31. package/dist/{chunk-DYWSCPCR.js → chunk-CNPJHUOX.js} +17 -17
  32. package/dist/{chunk-B45OFFOQ.js → chunk-CT6ZQRLD.js} +6 -8
  33. package/dist/chunk-CYFFYK2F.js +56 -0
  34. package/dist/{chunk-KVGDFUVO.js → chunk-CZQLCBWY.js} +26 -13
  35. package/dist/{chunk-6IIGT7BX.js → chunk-DNZMBQTH.js} +1 -1
  36. package/dist/{chunk-SYUGVPYH.js → chunk-DUUFDLC4.js} +1 -1
  37. package/dist/{chunk-3YUFN37G.js → chunk-GESJSXFH.js} +1 -1
  38. package/dist/chunk-HU2SPFNG.js +103 -0
  39. package/dist/{chunk-4OA4LDTU.js → chunk-IYLHJV34.js} +1 -1
  40. package/dist/{chunk-KBB4RG6F.js → chunk-JZIEZCQM.js} +9 -2
  41. package/dist/{chunk-XVIYZU3D.js → chunk-K35E45SI.js} +1 -1
  42. package/dist/{chunk-EGO6Z24R.js → chunk-K44HCHZN.js} +3 -3
  43. package/dist/{chunk-4YVMMRHR.js → chunk-K4RIT6PX.js} +2 -2
  44. package/dist/chunk-KGPLIH7B.js +127 -0
  45. package/dist/{chunk-B4P5VDFQ.js → chunk-KMAAOHLO.js} +1 -1
  46. package/dist/{chunk-MOL32UKR.js → chunk-KMJLHHBF.js} +1 -1
  47. package/dist/{chunk-3HSWLZ6S.js → chunk-KQHJKJ3V.js} +1 -1
  48. package/dist/{chunk-2IDHEEAN.js → chunk-KUTT3JXL.js} +88 -28
  49. package/dist/{chunk-3BETQ4XI.js → chunk-L274XRWA.js} +81 -8
  50. package/dist/{chunk-3PPO64IB.js → chunk-LACFOFWX.js} +10 -10
  51. package/dist/chunk-LCILS4AF.js +329 -0
  52. package/dist/{chunk-6BSIQJPW.js → chunk-LTJDUBSQ.js} +1 -1
  53. package/dist/{chunk-66SAATRI.js → chunk-M5B42RL5.js} +9 -9
  54. package/dist/{chunk-6WD636E5.js → chunk-MI6U3OIN.js} +2 -2
  55. package/dist/{chunk-YCGU3UNU.js → chunk-MXB6CWVH.js} +1 -1
  56. package/dist/{chunk-Z5C4LEAD.js → chunk-NKM53WMI.js} +11 -11
  57. package/dist/{chunk-QTTDKWSM.js → chunk-OMBSUO4T.js} +2 -2
  58. package/dist/{chunk-AL2YEVOT.js → chunk-P7NTODQE.js} +3 -3
  59. package/dist/{chunk-BHVFTYSI.js → chunk-PO2SDVQA.js} +4 -1
  60. package/dist/{chunk-DDNS2674.js → chunk-PR7QQBSC.js} +1 -1
  61. package/dist/{chunk-FDL4HV44.js → chunk-Q2Y5OZCY.js} +2 -2
  62. package/dist/{chunk-P6HELLPU.js → chunk-QIJLIULK.js} +2 -2
  63. package/dist/{chunk-5OKZLMQK.js → chunk-RMIFSBRV.js} +1 -1
  64. package/dist/{chunk-AFIATIKS.js → chunk-SFUBSJFP.js} +1 -1
  65. package/dist/{chunk-LE7T4ML7.js → chunk-SP6XL3NP.js} +1 -1
  66. package/dist/{chunk-SEABQTBP.js → chunk-TPIG7ZBX.js} +9 -9
  67. package/dist/{chunk-POKK6XXU.js → chunk-U7SASZC5.js} +15 -15
  68. package/dist/{chunk-JF5L5SQ6.js → chunk-VC7JBNPS.js} +72 -107
  69. package/dist/{chunk-N53FLAMZ.js → chunk-VGCEMOQA.js} +10 -10
  70. package/dist/{normalize-U3SL5VG3.js → chunk-VHZ6DL3M.js} +3 -3
  71. package/dist/chunk-VX4AL2FQ.js +26 -0
  72. package/dist/{chunk-3BYMCR4O.js → chunk-VXM4BH23.js} +23 -12
  73. package/dist/{chunk-ZLL72U3I.js → chunk-WX7VCRM7.js} +2 -2
  74. package/dist/{chunk-KPJMBC4K.js → chunk-XHBX7QN6.js} +4 -4
  75. package/dist/{chunk-BYSBRF24.js → chunk-XPQSL5VS.js} +5 -120
  76. package/dist/{chunk-55RZG5SQ.js → chunk-Y475GD4L.js} +4 -4
  77. package/dist/{chunk-ZQXNL5DL.js → chunk-YDRX42P3.js} +6 -6
  78. package/dist/{chunk-4SFGME7K.js → chunk-YJDB4FLT.js} +1 -1
  79. package/dist/{chunk-QATWIE4K.js → chunk-YU2QRNWN.js} +2 -2
  80. package/dist/{chunk-BPUFVVSH.js → chunk-ZK3BQXHC.js} +1 -1
  81. package/dist/{chunk-QHRPB2JQ.js → chunk-ZKDKFJCK.js} +13 -13
  82. package/dist/{clean-3RY3Y2GX.js → clean-6QP7VAV4.js} +32 -31
  83. package/dist/cli.js +55 -55
  84. package/dist/{cloud-MLPBFCVE.js → cloud-5TME5ROM.js} +4 -4
  85. package/dist/{cloudrun-NQF5KFQI.js → cloudrun-F5VVCVF5.js} +6 -6
  86. package/dist/{compare-6EZX2754.js → compare-XPY2EXX6.js} +35 -35
  87. package/dist/{compiler-ACCPOZMQ.js → compiler-NPD3MYMO.js} +2 -2
  88. package/dist/{component-F5PQHP6A.js → component-OPVL3PUX.js} +4 -4
  89. package/dist/{compositions-AUHWSI2H.js → compositions-WSEOI454.js} +19 -19
  90. package/dist/{delete-VUF4SHHJ.js → delete-SLMH57VH.js} +11 -11
  91. package/dist/{dist-GPDOV3IQ.js → dist-CUIR3GFX.js} +2 -2
  92. package/dist/{doctor-3XHCA5JM.js → doctor-QZW3EKIH.js} +20 -19
  93. package/dist/{events-FKOIB3R3.js → events-6C3ZG7LS.js} +8 -8
  94. package/dist/{events-TIU72LZM.js → events-FIFWFRGC.js} +6 -6
  95. package/dist/{feedback-V6VATYBE.js → feedback-VKXM7YJ5.js} +24 -24
  96. package/dist/{ffmpeg-5V4FP3R6.js → ffmpeg-TZB5WAYE.js} +3 -2
  97. package/dist/{figma-YBJM2VGE.js → figma-3UYNADNA.js} +3 -3
  98. package/dist/fontLocalizeCli.js +10 -10
  99. package/dist/{get-3YVCGZBX.js → get-VH7VMRVX.js} +11 -11
  100. package/dist/{gpuPolicy-ZOUG66M7.js → gpuPolicy-M2JZGGVW.js} +5 -5
  101. package/dist/{grade-compare-MYXIRKQI.js → grade-compare-OSC2YQWN.js} +40 -39
  102. package/dist/{help-WFZ2SUUR.js → help-DCBFEZPT.js} +3 -3
  103. package/dist/{history-HWPRJFR5.js → history-XYJMQE26.js} +15 -15
  104. package/dist/hyperframe-runtime.js +62 -62
  105. package/dist/hyperframe.manifest.json +1 -1
  106. package/dist/hyperframe.runtime.iife.js +62 -62
  107. package/dist/hyperframes-player.global.js +1 -1
  108. package/dist/{info-WJDTQ4OZ.js → info-YEHGENAH.js} +17 -17
  109. package/dist/{init-EXHDN7RO.js → init-64SML7PY.js} +52 -51
  110. package/dist/{inspect-EAOLZOMQ.js → inspect-GFOQKRJI.js} +32 -32
  111. package/dist/{installer-LZ4X5TZZ.js → installer-Q4MMZKLA.js} +4 -4
  112. package/dist/{keyframes-FSZYNEDN.js → keyframes-ORYFWKBZ.js} +16 -16
  113. package/dist/{lambda-3GAKHMC3.js → lambda-DRMOJGTC.js} +8 -8
  114. package/dist/{layout-M2TQ2CIX.js → layout-ZEQBE6UQ.js} +32 -32
  115. package/dist/{lint-7C5UPTNQ.js → lint-67KGFY63.js} +19 -19
  116. package/dist/{list-GU5KBZ73.js → list-T6OU5ARJ.js} +11 -11
  117. package/dist/{login-ZL2NYBIZ.js → login-2PXIGDP7.js} +9 -9
  118. package/dist/{logout-B4KS4A7S.js → logout-DKJANASY.js} +3 -3
  119. package/dist/{manager-5ORDVWJB.js → manager-ES2UFT4X.js} +6 -4
  120. package/dist/{manager-BPSR6D3V.js → manager-GWU5J6RJ.js} +3 -2
  121. package/dist/{media-treatment-QC3TAHVU.js → media-treatment-NAAHID6M.js} +27 -26
  122. package/dist/{models-A54I4QR5.js → models-P6XB6RWK.js} +19 -17
  123. package/dist/{motionShot-ZXPK562F.js → motionShot-7MHRIV6V.js} +13 -13
  124. package/dist/normalize-4UDISLPL.js +24 -0
  125. package/dist/{normalize-audio-CAP3DAE6.js → normalize-audio-LWNFYR2F.js} +15 -15
  126. package/dist/{open-GUSBNMDB.js → open-DAP5C7UD.js} +13 -13
  127. package/dist/{parakeetRunner-GCCH72CO.js → parakeetRunner-3ZVFPOD4.js} +17 -27
  128. package/dist/{pipeline-SCJ2MWYH.js → pipeline-V4YJCPUX.js} +9 -9
  129. package/dist/{play-FP2QLMGM.js → play-UDCESJO3.js} +35 -35
  130. package/dist/{preflight-ONF5AJNO.js → preflight-JOD4OXGC.js} +5 -4
  131. package/dist/{present-H5SA4APW.js → present-DXTHBH3F.js} +26 -26
  132. package/dist/{preview-ATPVKA6K.js → preview-YHXKRXKB.js} +39 -37
  133. package/dist/{producer-VBYUC27R.js → producer-343ENLAM.js} +1 -1
  134. package/dist/{projectConfig-SBRMQZGG.js → projectConfig-YXKU3CTB.js} +6 -6
  135. package/dist/{publication-5BQICRZO.js → publication-ODXP3JI7.js} +2 -2
  136. package/dist/{publish-XDUZA3E3.js → publish-UEFBFGV3.js} +22 -22
  137. package/dist/{refresh-PVHBEABE.js → refresh-MGCVWX56.js} +3 -3
  138. package/dist/{remove-background-GA6F7JZW.js → remove-background-FMV6IDOH.js} +38 -34
  139. package/dist/{render-XCYXFZTL.js → render-N7QGX6RJ.js} +30 -30
  140. package/dist/{render-PCFO45RK.js → render-SYC4RPGT.js} +6 -6
  141. package/dist/{render-KUVZFNQD.js → render-ZTXNPRGF.js} +61 -60
  142. package/dist/{render-batch-7R2NRNVJ.js → render-batch-SZRPCRUJ.js} +6 -6
  143. package/dist/renderSetupWorker.js +4 -3
  144. package/dist/{resolver-C4FPX72I.js → resolver-7MYXNEAX.js} +4 -4
  145. package/dist/{sherpa-IQY52XU6.js → sherpa-M4Z2Q5Y2.js} +15 -14
  146. package/dist/sherpaWorker.js +3 -1
  147. package/dist/{skills-JSSAEKUW.js → skills-NEHNSHZK.js} +15 -15
  148. package/dist/{skillsUpdateCheck-XE5E2K2F.js → skillsUpdateCheck-O77QR72A.js} +3 -3
  149. package/dist/{snapshot-QMQOE2DD.js → snapshot-GDVXFBVY.js} +54 -53
  150. package/dist/{src-R55QLGWI.js → src-PTIV7IVV.js} +6 -6
  151. package/dist/{src-2GMPFYHL.js → src-VMTHSARJ.js} +6 -4
  152. package/dist/{staticProjectServer-YH2RHYKW.js → staticProjectServer-3D2NXQ6W.js} +14 -14
  153. package/dist/{status-PTKNQD2E.js → status-NBRMGL7D.js} +5 -5
  154. package/dist/studio/assets/{hyperframes-player-_eMxRXF_.js → hyperframes-player-C-2YwYre.js} +1 -1
  155. package/dist/studio/assets/{index-bXzd7tvF.js → index-ByJU5J6n.js} +115 -115
  156. package/dist/studio/assets/{index-CEq9KmY2.js → index-BybGk67U.js} +1 -1
  157. package/dist/studio/assets/{index-6okhHdnH.js → index-Cfs2r3fz.js} +1 -1
  158. package/dist/studio/assets/{index-CVd4O6eH.css → index-DkQKsFxx.css} +1 -1
  159. package/dist/studio/index.html +2 -2
  160. package/dist/{studio-api-T2TS2CHL.js → studio-api-XIBDLRHB.js} +7 -7
  161. package/dist/{studioServer-Q4MT44LT.js → studioServer-QIQK47UN.js} +70 -69
  162. package/dist/{synthesize-UCI4X5O7.js → synthesize-22B7L5GX.js} +6 -6
  163. package/dist/{telemetry-V5JYZDS4.js → telemetry-565KDZUW.js} +8 -8
  164. package/dist/{timeline-KTCTOKF5.js → timeline-E6XB7I6W.js} +24 -24
  165. package/dist/{tokens-ZHREZPK6.js → tokens-3ZAJENSE.js} +3 -3
  166. package/dist/transcribe-WODP3T77.js +332 -0
  167. package/dist/{transcribe-CRAV4FU3.js → transcribe-XWQQCCBG.js} +13 -12
  168. package/dist/{tts-B6AHFQEO.js → tts-QSAQZVEZ.js} +3 -3
  169. package/dist/{updateCheck-E7RMSK3E.js → updateCheck-QPYU4GRL.js} +2 -2
  170. package/dist/{upgrade-27PFTDCV.js → upgrade-2FJ5ZEN6.js} +5 -5
  171. package/dist/{urlDownloader-EAF6PLUP.js → urlDownloader-352AY25I.js} +4 -4
  172. package/dist/{validate-OKNFDBMG.js → validate-SP2VGNEI.js} +25 -25
  173. package/dist/{video-IEVS4FIH.js → video-RVNPFEA6.js} +8 -8
  174. package/package.json +8 -1
  175. package/dist/chunk-6IHWCZ3W.js +0 -54
  176. package/dist/chunk-SQLK7SJL.js +0 -88
  177. package/dist/chunk-Z6FLHIDV.js +0 -3795
  178. package/dist/manager-RFZNG5YT.js +0 -30
  179. package/dist/renderCancellation-NIXEWRAO.js +0 -43
  180. package/dist/transcribe-4QDEWCE6.js +0 -466
  181. package/dist/{chunk-DKSDVDXG.js → chunk-NAMGMP3R.js} +3 -3
  182. package/dist/{policies-4FEXMXPK.js → policies-DCSIM4AB.js} +3 -3
  183. package/dist/{screenshotCapture-3JXXUZND.js → screenshotCapture-TEUIWXWN.js} +3 -3
  184. package/dist/{telemetry-W5AKPI4R.js → telemetry-CQYHCCPL.js} +3 -3
@@ -1,4 +1,4 @@
1
- "use strict";var HyperframesPlayer=(()=>{var We=Object.defineProperty;var Jn=Object.getOwnPropertyDescriptor;var Zn=Object.getOwnPropertyNames;var Qn=Object.prototype.hasOwnProperty;var ei=(n,e)=>{for(var t in e)We(n,t,{get:e[t],enumerable:!0})},ti=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Zn(e))!Qn.call(n,r)&&r!==t&&We(n,r,{get:()=>e[r],enumerable:!(i=Jn(e,r))||i.enumerable});return n};var ni=n=>ti(We({},"__esModule",{value:!0}),n);var zr={};ei(zr,{HyperframesPlayer:()=>He,SPEED_PRESETS:()=>ut,formatSpeed:()=>ae,formatTime:()=>Ie});var Ct=n=>n!==null&&Number.isFinite(n)&&n>0;function _e(n){let e=n.clipEndsSeconds.filter(i=>i===null).length;if(Ct(n.authoredDurationSeconds))return{seconds:n.authoredDurationSeconds,source:"authored",pendingClips:e};let t=n.clipEndsSeconds.filter(Ct);return t.length>0?{seconds:Math.max(...t),source:"derived",pendingClips:e}:{seconds:null,source:"unresolved",pendingClips:e,reason:e>0?"every clip's length is still pending":"no authored duration and no clip with a length"}}var ii="http://www.w3.org/1999/xhtml";function Dt(n){return n!=null&&n.nodeType===1}function Ge(n){return Dt(n)&&n.namespaceURI===ii}function Be(n,e){return Ge(n)&&n.localName===e}function ri(n){return Be(n,"video")}function oi(n){return Be(n,"audio")}function M(n){return ri(n)||oi(n)}function $e(n){return Be(n,"img")}function ye(n){if(n==null||n.trim()==="")return null;let e=Number.parseInt(n,10);return Number.isFinite(e)&&e>0?e:null}function ve(n=document){let e=n.querySelector('[data-composition-id][data-root="true"]');return Ge(e)?e:n.querySelector("[data-composition-id]")}var V=Object.freeze({start:"data-start",duration:"data-duration",trackIndex:"data-track-index",derivedEnd:"data-end",legacyTrack:"data-layer"}),Jr=Object.freeze([V.start,V.duration,V.trackIndex]),Zr=Object.freeze([V.derivedEnd]),Qr=Object.freeze([V.derivedEnd,V.legacyTrack]);function ze(n){if(n==null||n.trim()==="")return null;let e=Number(n);return Number.isFinite(e)?e:null}var Nt=n=>{let e=ze(n);return e!==null&&e>=0?e:null};function Ae(n){return Nt(n("data-playback-start"))??Nt(n("data-media-start"))??0}var X=.1,K=10;function je(n){return Number.isFinite(n)&&n>0?Math.max(X,Math.min(K,n)):1}function Pt(n,e=1){let t=Number.parseFloat(n("data-playback-rate")??"");return je(Number.isFinite(t)&&t>0?t:e)}function qe(n){let e=ze(n("data-duration"));return e!==null&&e>0?e:null}function Lt(n,e){let t=qe(n);if(t!==null)return t;let i=ze(n("data-end"));return i!==null?i-e:null}var ai=3;function Ye(n,e,t){return Number.isFinite(n)?Math.max(0,n-e)/je(t):null}function Xe(n){let{tag:e,authoredDurationSeconds:t,sourceDurationSeconds:i,mediaStartSeconds:r,playbackRate:o}=n;if(t!==null&&t>0)return{seconds:t,source:"authored"};if(e==="img")return{seconds:ai,source:"default"};if(i===null)return{seconds:null,source:"pending",reason:"source duration not yet probed"};let a=Ye(i,r,o);return a===null?{seconds:null,source:"pending",reason:"source reported a non-finite duration"}:{seconds:a,source:"media"}}var Ft="data-fx-chain",to=Ft.slice(5);var J=(n="frequency",e="Frequency",t=1e3,i=20,r=2e4)=>({kind:"number",key:n,label:e,unit:"Hz",min:i,max:r,step:1,default:t,scale:"log",automatable:!0}),Ke=(n=.707,e="Bandwidth: higher is narrower.")=>({kind:"number",key:"q",label:"Q",unit:"",min:.1,max:20,step:.01,default:n,scale:"log",automatable:!0,hint:e}),Se=(n=-40,e=40,t=0)=>({kind:"number",key:"gain",label:"Gain",unit:"dB",min:n,max:e,step:.1,default:t,automatable:!0}),Ot={kind:"enum",key:"poles",label:"Slope",options:[{value:"1",label:"6 dB/oct"},{value:"2",label:"12 dB/oct"}],default:"2",hint:"Two poles is the usual biquad; one pole is gentler."},Vt=[{id:"gain",label:"Gain",group:"dynamics",description:"Raise or lower the whole signal. Automate it to duck under something else.",params:[Se(-60,12,0)],web:"gain-node"},{id:"peaking",label:"Peaking EQ",group:"filter",description:"Boost or cut a band, leaving everything either side alone.",params:[J("frequency","Frequency",1e3),Se(-40,40,0),Ke(1)],web:"biquad-peaking"},{id:"lowshelf",label:"Low Shelf",group:"filter",description:"Lift or drop everything below the corner frequency.",params:[J("frequency","Frequency",200,20,2e3),Se(-40,40,0)],web:"biquad-lowshelf"},{id:"highshelf",label:"High Shelf",group:"filter",description:"Lift or drop everything above the corner frequency.",params:[J("frequency","Frequency",4e3,500,2e4),Se(-40,40,0)],web:"biquad-highshelf"},{id:"highpass",label:"High-pass",group:"filter",description:"Remove low frequencies: the usual fix for rumble on a voice.",params:[J("frequency","Cutoff",300,20,2e4),Ke(.707),Ot],web:"biquad-highpass"},{id:"lowpass",label:"Low-pass",group:"filter",description:"Remove high frequencies, which darkens or muffles a track.",params:[J("frequency","Cutoff",8e3,100,2e4),Ke(.707),Ot],web:"biquad-lowpass"},{id:"compressor",label:"Compressor",group:"dynamics",description:"Pull loud parts down so the quiet ones can come up.",params:[{kind:"number",key:"threshold",label:"Threshold",unit:"dB",min:-60,max:0,step:.5,default:-24,hint:"Level above which the compressor starts working."},{kind:"number",key:"ratio",label:"Ratio",unit:":1",min:1,max:20,step:.1,default:4},{kind:"number",key:"attack",label:"Attack",unit:"ms",min:.01,max:2e3,step:.1,default:20,scale:"log"},{kind:"number",key:"release",label:"Release",unit:"ms",min:.01,max:9e3,step:1,default:250,scale:"log"},{kind:"number",key:"knee",label:"Knee",unit:"",min:1,max:8,step:.01,default:2.83,hint:"1 is a hard corner; higher eases into it."},{kind:"number",key:"makeup",label:"Makeup",unit:"dB",min:0,max:36,step:.1,default:0},{kind:"number",key:"mix",label:"Mix",unit:"",min:0,max:1,step:.01,default:1,hint:"Below 1 blends the dry signal back in."}],web:"worklet-compressor"},{id:"limiter",label:"Limiter",group:"dynamics",description:"Hard ceiling: nothing gets past the limit.",params:[{kind:"number",key:"limit",label:"Ceiling",unit:"dB",min:-24,max:0,step:.1,default:-1},{kind:"number",key:"attack",label:"Attack",unit:"ms",min:.1,max:80,step:.1,default:5},{kind:"number",key:"release",label:"Release",unit:"ms",min:1,max:8e3,step:1,default:50,scale:"log"},{kind:"number",key:"level_out",label:"Output",unit:"dB",min:-24,max:24,step:.1,default:0}],web:"worklet-limiter"},{id:"truepeak",label:"True-peak limiter",group:"dynamics",description:"Lookahead limiter that holds a 4x estimate of the inter-sample peak at a dBTP ceiling; full-band noise can land up to about 1.7 dB above it. Adds lookahead plus about 0.3 ms of latency.",params:[{kind:"number",key:"ceiling",label:"Ceiling",unit:"dBTP",min:-24,max:0,step:.1,default:-1,hint:"Target true peak, measured on a 4x oversampled signal. Dense full-band sound can end up to about 1.7 dB above it."},{kind:"number",key:"lookahead",label:"Lookahead",unit:"ms",min:.5,max:10,step:.1,default:3,hint:"How far ahead the gain starts falling. Longer is smoother and adds the same latency."},{kind:"number",key:"release",label:"Release",unit:"ms",min:10,max:2e3,step:1,default:80,scale:"log"}],web:"worklet-truepeak"},{id:"gate",label:"Noise Gate",group:"dynamics",description:"Silence the track when it drops below the threshold.",params:[{kind:"number",key:"threshold",label:"Threshold",unit:"dB",min:-80,max:0,step:.5,default:-35},{kind:"number",key:"range",label:"Range",unit:"dB",min:-80,max:0,step:.5,default:-24,hint:"How far down the gate pulls when closed."},{kind:"number",key:"ratio",label:"Ratio",unit:":1",min:1,max:20,step:.1,default:10},{kind:"number",key:"attack",label:"Attack",unit:"ms",min:.01,max:9e3,step:.1,default:1,scale:"log"},{kind:"number",key:"release",label:"Release",unit:"ms",min:.01,max:9e3,step:1,default:100,scale:"log"},{kind:"number",key:"knee",label:"Knee",unit:"",min:1,max:8,step:.01,default:2.83}],web:"worklet-gate"},{id:"saturate",label:"Saturation",group:"nonlinear",description:"Soft-clip the waveform for warmth or outright distortion.",params:[{kind:"enum",key:"type",label:"Curve",options:[{value:"tanh",label:"Tanh"},{value:"atan",label:"Arctan"},{value:"cubic",label:"Cubic"},{value:"exp",label:"Exponential"},{value:"alg",label:"Algebraic"},{value:"quintic",label:"Quintic"},{value:"sin",label:"Sine"},{value:"erf",label:"Error function"},{value:"hard",label:"Hard clip"}],default:"tanh"},{kind:"number",key:"threshold",label:"Threshold",unit:"dB",min:-40,max:0,step:.1,default:-6},{kind:"number",key:"output",automatable:!0,label:"Output",unit:"dB",min:-24,max:24,step:.1,default:0},{kind:"number",key:"oversample",label:"Oversample",unit:"x",min:1,max:8,step:1,default:4,hint:"Higher costs more but keeps aliasing down."}],web:"waveshaper"},{id:"bitcrush",label:"Bitcrush",group:"nonlinear",description:"Drop bit depth and sample rate for a lo-fi, digital sound.",params:[{kind:"number",key:"bits",label:"Bit depth",unit:"bit",min:1,max:32,step:.1,default:8},{kind:"number",key:"samples",label:"Sample hold",unit:"x",min:1,max:250,step:1,default:1,hint:"Repeats each sample N times, a crude downsample."},{kind:"number",key:"mix",label:"Mix",unit:"",min:0,max:1,step:.01,default:1}],web:"worklet-bitcrush"},{id:"pitchshift",label:"Pitch shift",group:"time",description:"Shifts pitch up or down without changing playback speed. Adds ~50 ms of latency.",params:[{kind:"number",key:"semitones",label:"Semitones",unit:"st",min:-12,max:12,step:1,default:0},{kind:"number",key:"mix",label:"Mix",unit:"",min:0,max:1,step:.01,default:1}],web:"worklet-pitchshift"},{id:"delay",label:"Delay",group:"time",description:"Repeating echoes behind the dry signal.",params:[{kind:"number",key:"time",automatable:!0,label:"Time",unit:"ms",min:1,max:5e3,step:1,default:250,scale:"log"},{kind:"number",key:"feedback",automatable:!0,label:"Feedback",unit:"",min:.01,max:.95,step:.01,default:.35},{kind:"number",key:"mix",automatable:!0,label:"Mix",unit:"",min:0,max:1,step:.01,default:.4}],web:"delay-feedback"},{id:"chorus",label:"Chorus",group:"time",description:"Detuned copies of the signal for width and thickness.",params:[{kind:"number",key:"delay",automatable:!0,label:"Delay",unit:"ms",min:1,max:100,step:.1,default:7},{kind:"number",key:"depth",automatable:!0,label:"Depth",unit:"ms",min:0,max:10,step:.01,default:2},{kind:"number",key:"speed",automatable:!0,label:"Rate",unit:"Hz",min:.01,max:10,step:.01,default:1},{kind:"number",key:"mix",automatable:!0,label:"Mix",unit:"",min:0,max:1,step:.01,default:.5}],web:"chorus-lfo"},{id:"phaser",label:"Phaser",group:"time",description:"Sweeping notches moving through the spectrum.",params:[{kind:"number",key:"in_gain",automatable:!0,label:"Input",unit:"",min:0,max:1,step:.01,default:.4},{kind:"number",key:"out_gain",automatable:!0,label:"Output",unit:"",min:0,max:2,step:.01,default:.74},{kind:"number",key:"delay",label:"Delay",unit:"ms",min:.1,max:5,step:.1,default:3},{kind:"number",key:"decay",label:"Decay",unit:"",min:0,max:.99,step:.01,default:.4},{kind:"number",key:"speed",automatable:!0,label:"Rate",unit:"Hz",min:.1,max:2,step:.01,default:.5},{kind:"enum",key:"type",label:"Waveform",options:[{value:"0",label:"Triangular"},{value:"1",label:"Sinusoidal"}],default:"0"}],web:"allpass-phaser"},{id:"reverb",label:"Reverb",group:"time",description:"Room tail. Both ends convolve the same generated impulse, so preview matches render.",params:[{kind:"number",key:"size",label:"Room size",unit:"",min:.05,max:1,step:.01,default:.7},{kind:"number",key:"damping",label:"Damping",unit:"",min:0,max:1,step:.01,default:.5,hint:"Higher rolls the top off the tail faster."},{kind:"number",key:"wet",automatable:!0,label:"Wet",unit:"",min:0,max:1,step:.01,default:.35},{kind:"number",key:"dry",automatable:!0,label:"Dry",unit:"",min:0,max:1,step:.01,default:.7}],web:"convolver"}],no=new Map(Vt.map(n=>[n.id,n]));var io=Vt.map(n=>n.id);function si(n){return 10**(n/20)}var Ut=si(12);var Ze="data-automation",po=Ze.slice(5),Je=1,ui=512,I=class extends Error{constructor(e){super(e),this.name="AudioAutomationError"}},Ee="volume",Te="rate";function Ht(n){if(n===Ee)return{kind:"volume"};if(n===Te)return{kind:"rate"};let e=n.split(".");if(e.length===3&&e[0]==="fx"&&e[1]===li){let r=e[2];return r?{kind:"preset",presetId:r}:null}if(e.length!==3||e[0]!=="fx")return null;let[,t,i]=e;return!t||!i?null:{kind:"fx",nodeId:t,param:i}}var li="preset";var di={min:0,max:Ut,step:.01,unit:"",label:"Volume",scale:"linear",default:1},ci={min:X,max:K,step:.05,unit:"x",label:"Speed",scale:"log",default:1};function Z(n){if(typeof n=="number")return Number.isFinite(n)?n:null;if(typeof n=="string"&&n.trim()!==""){let e=Number(n);return Number.isFinite(e)?e:null}return null}function mi(n){let e=Z(n);return e===null||e===0?0:Math.min(1,Math.max(-1,e))}function Wt(n,e){let t=Z(n),i=Z(e);if(t===null||i===null)return null;let r=s=>Math.min(.999,Math.max(.001,s)),o=r(t),a=r(i);return Math.abs(o-a)<1e-6?null:{x:o,y:a}}function pi(n){let e=mi(n?.curve),t=Wt(n?.viaX,n?.viaY);return{...e?{curve:e}:{},...t?{viaX:t.x,viaY:t.y}:{}}}function fi(n,e){let t=Z(n?.t),i=Z(n?.v);if(t===null||i===null)return null;let r=e?Math.min(e.max,Math.max(e.min,i)):i;return{t:Math.max(0,t),v:r,...pi(n)}}function hi(n,e){let t=n.map(r=>fi(r,e)).filter(r=>r!==null).sort((r,o)=>r.t-o.t),i=[];for(let r of t)i.length>0&&i[i.length-1].t===r.t?i[i.length-1]=r:i.push(r);return i.slice(0,ui)}function bi(n){let e=[];for(let t of n.lanes){if(!Ht(t.target))continue;let i=t.target===Ee?di:t.target===Te?ci:null,r=hi(t.points??[],i);r.length>0&&e.push({target:t.target,points:r})}return{version:Je,lanes:e}}function Gt(n){let e;try{e=JSON.parse(n)}catch(r){throw new I(`Automation is not valid JSON: ${r.message}`)}if(typeof e!="object"||e===null)throw new I("Automation must be a JSON object.");let t=e;if(t.version!==Je)throw new I(`Unsupported automation version: ${String(t.version)}`);if(!Array.isArray(t.lanes))throw new I("Automation is missing a `lanes` array.");let i=t.lanes.map((r,o)=>{if(typeof r!="object"||r===null)throw new I(`Lane ${o} is not an object.`);let a=r;if(typeof a.target!="string"||!Ht(a.target))throw new I(`Lane ${o} has an unreadable target: ${String(a.target)}`);if(!Array.isArray(a.points))throw new I(`Lane ${o} is missing a \`points\` array.`);return{target:a.target,points:a.points}});return bi({version:Je,lanes:i})}function gi(n,e){return e?Math.pow(n,Math.pow(2,2*e)):n}function _i(n,e){let t=n-.5,i=e-.5,r=.999,o=1e6,a=t>0?t/(r-n):t<0?-t/(n-(1-r)):0,s=i>0?i/(r-e):i<0?-i/(e-(1-r)):0,u=Math.min(o,Math.max(1,a,s));return{cx:n+t/u,cy:e+i/u,w:u}}function yi(n,e,t){let{cx:i,cy:r,w:o}=_i(e,t),a=2-2*o,s=n*a-1+2*o*i,u=-n*a-2*o*i,d=vi(s,u,n),m=1-d,g=m*m+2*o*d*m+d*d;return g>0?(2*o*r*d*m+d*d)/g:n}function vi(n,e,t){if(Math.abs(n)<1e-12)return Math.abs(e)<1e-12?t:-t/e;let i=Math.sqrt(Math.max(0,e*e-4*n*t)),r=(-e+i)/(2*n),o=(-e-i)/(2*n),a=s=>s>=-1e-9&&s<=1+1e-9;return a(r)?Math.min(1,Math.max(0,r)):a(o)?Math.min(1,Math.max(0,o)):t}function Ai(n,e){let t=Wt(e.viaX,e.viaY);return t?yi(Math.min(1,Math.max(0,n)),t.x,t.y):gi(n,e.curve)}function Si(n,e,t,i){return i==="log"&&n>0&&e>0?Math.exp(Math.log(n)+(Math.log(e)-Math.log(n))*t):n+(e-n)*t}function Re(n,e,t="linear"){let i=n.points;if(i.length===0)return 0;let r=i[0];if(e<=r.t)return r.v;let o=i[i.length-1];if(e>=o.t)return o.v;let a=0,s=i.length-1;for(;s-a>1;){let g=a+s>>1;i[g].t<=e?a=g:s=g}let u=i[a],d=i[s],m=d.t-u.t;return m<=0?d.v:Si(u.v,d.v,Ai((e-u.t)/m,u),t)}var xe=new Map,Ei=64;function Bt(n,e=Ee){let t=`${e}\0${n}`,i=xe.get(t);if(i!==void 0)return i;let r=null;try{r=Gt(n).lanes.find(o=>o.target===e)??null}catch{r=null}return xe.size>Ei&&xe.clear(),xe.set(t,r),r}var $t=48,zt=new WeakMap;function Ti(n){let e=n.points,t=e[0].v,i=e[e.length-1].v,r=[0],o=[0],a=u=>{let d=r[r.length-1];if(u<=d)return;let m=Re(n,d,"log");r.push(u),o.push(o[o.length-1]+(m+Re(n,u,"log"))/2*(u-d))},s=Math.max(0,e[0].t);a(s);for(let u=1;u<e.length;u+=1){let d=e[u-1].t,m=e[u].t;if(!(m<=0))for(let g=1;g<=$t;g+=1)a(Math.max(d,0)+(m-d)*g/$t)}return{ts:Float64Array.from(r),ss:Float64Array.from(o),firstRate:t,lastRate:i}}function Ri(n){let e=zt.get(n);return e||(e=Ti(n),zt.set(n,e)),e}function xi(n){return typeof n!="number"&&n.points.length>0}function wi(n,e,t){let i=0,r=n.length-1;for(;r-i>1;){let o=i+r>>1;n[o]<=t?i=o:r=o}return e[i]+(e[r]-e[i])*(t-n[i])/(n[r]-n[i])}function Qe(n,e){if(typeof n=="number")return e/n;if(!xi(n))return e;let{ts:t,ss:i,firstRate:r,lastRate:o}=Ri(n),a=t.length-1;return e<=0?e/r:e>=i[a]?t[a]+(e-i[a])/o:wi(i,t,e)}function ki(n){return n?Bt(n,Te):null}function jt(n,e){return ki(n)??e}var vo=[{id:"montage",label:"Montage",points:[[0,.9],[.15,.3],[.5,2.5],[.85,.3],[1,.9]]},{id:"hero",label:"Hero",points:[[0,1],[.25,1.6],[.5,.25],[.75,1.6],[1,1]]},{id:"bullet",label:"Bullet",points:[[0,3],[.4,3],[.5,.15],[.6,3],[1,3]]},{id:"jump-cut",label:"Jump cut",points:[[0,.5],[.24,.5],[.26,3],[.5,3],[.52,.5],[.74,.5],[.76,3],[1,3]]},{id:"flash-in",label:"Flash in",points:[[0,.3],[.6,.6],[1,5]]},{id:"flash-out",label:"Flash out",points:[[0,5],[.4,.6],[1,.3]]},{id:"ramp-in",label:"Ramp in",points:[[0,.5],[1,1]]},{id:"ramp-out",label:"Ramp out",points:[[0,1],[1,.5]]},{id:"slowmo-middle",label:"Slow-mo middle",points:[[0,1],[1/3,.35],[2/3,.35],[1,1]]}];var v=Object.freeze({start:"data-start",duration:"data-duration",trackIndex:"data-track-index",derivedEnd:"data-end",legacyTrack:"data-layer"}),So=Object.freeze([v.start,v.duration,v.trackIndex]),Eo=Object.freeze([v.derivedEnd]),To=Object.freeze([v.derivedEnd,v.legacyTrack]);function C(n){if(n==null||n.trim()==="")return null;let e=Number(n);return Number.isFinite(e)?e:null}var Xt=/^[A-Za-z0-9_.:-]+$/;function Kt(n,e){let t=n.charCodeAt(e);return t>=48&&t<=57}function qt(n,e){let t=e;for(;t>=0&&Kt(n,t);)t--;return t}function Mi(n,e){let t=e;for(;t>=0&&(n[t]??"").trim()==="";)t--;return t}function Ii(n){let e=n.length-1;if(!Kt(n,e))return null;let t=qt(n,e);return n[t]==="."&&(t=qt(n,t-1)),t+1}function Ci(n){let e=Ii(n);if(e==null)return null;let t=Mi(n,e-1),i=n[t];if(i!=="+"&&i!=="-")return null;let r=n.slice(0,t).trim();if(!Xt.test(r))return null;let o=Number(n.slice(e));return Number.isFinite(o)?{refId:r,operator:i,magnitude:o}:null}function Q(n){let e=(n??"").trim();if(!e)return null;let t=C(e);if(t!=null)return{kind:"absolute",value:t};if(Xt.test(e))return{kind:"reference",refId:e,offset:0};let i=Ci(e);return i?{kind:"reference",refId:i.refId,offset:i.operator==="-"?-i.magnitude:i.magnitude}:null}function T(n,e,t,i){n.push({code:e,attribute:t,value:i})}function Di(n,e,t,i){if(e==null||e.trim()==="")return t.defaultStart===void 0?0:t.defaultStart;if(!n)return T(i,"invalid-start",v.start,e),null;if(n.kind==="absolute")return Math.max(0,n.value);let r=t.resolveReferenceEnd?.(n.refId);return r==null||!Number.isFinite(r)?(T(i,"unresolved-start-reference",v.start,e),null):Math.max(0,r+n.offset)}var Ni=1e-9;function Pi(n,e){return Math.abs(n-e)<=Ni}function Li(n,e,t){let i=C(n);if(i==null){T(t,"deprecated-end",v.derivedEnd,n),T(t,"invalid-end",v.derivedEnd,n);return}if(e==null){T(t,"deprecated-end",v.derivedEnd,n);return}Pi(i,e)||(T(t,"deprecated-end",v.derivedEnd,n),T(t,"conflicting-end",v.derivedEnd,n))}function Oi(n,e,t){let i=C(n);return i==null||i<0?(T(t,"invalid-duration",v.duration,n),{duration:null,end:null,durationSource:"invalid"}):{duration:i,end:e==null?null:e+i,durationSource:"duration"}}function Fi(n,e,t){T(t,"deprecated-end",v.derivedEnd,n);let i=C(n);return i==null?(T(t,"invalid-end",v.derivedEnd,n),{duration:null,end:null,durationSource:"invalid"}):e==null?{duration:null,end:i,durationSource:"legacy-end"}:i<e?(T(t,"end-before-start",v.derivedEnd,n),{duration:null,end:null,durationSource:"invalid"}):{duration:i-e,end:i,durationSource:"legacy-end"}}function Vi(n,e,t){let i=n.getAttribute(v.duration),r=n.getAttribute(v.derivedEnd);if(i==null)return r==null?{duration:null,end:null,durationSource:"missing"}:Fi(r,e,t);let o=Oi(i,e,t);return r!=null&&Li(r,o.end,t),o}function Yt(n,e,t,i){let r=C(n);return r==null||!Number.isInteger(r)?(T(i,"invalid-track-index",e,n),{trackIndex:0,trackSource:"invalid"}):{trackIndex:r,trackSource:t}}function Ui(n,e){let t=n.getAttribute(v.trackIndex),i=n.getAttribute(v.legacyTrack);if(t==null&&i==null)return{trackIndex:0,trackSource:"default"};if(t==null&&i!=null)return T(e,"deprecated-layer",v.legacyTrack,i),Yt(i,v.legacyTrack,"legacy-layer",e);let r=Yt(t??"",v.trackIndex,"track-index",e);if(i==null)return r;T(e,"deprecated-layer",v.legacyTrack,i);let o=C(i);return o!=null&&o!==r.trackIndex&&T(e,"conflicting-layer",v.legacyTrack,i),r}function et(n,e={}){let t=[],i=n.getAttribute(v.start),r=Q(i),o=Di(r,i,e,t),a=Vi(n,o,t),s=Ui(n,t);return{startExpression:r,start:o,...a,...s,diagnostics:t}}function P(n){return C(n)}function ee(n){return Pt(e=>n.getAttribute(e),M(n)?n.defaultPlaybackRate:1)}function tt(n){return jt(n.getAttribute("data-automation"),ee(n))}function nt(n){return Ae(e=>n.getAttribute(e))}function U(n,e){return Hi(e,nt(n),tt(n))}function it(n){let e=Xe({tag:"video",authoredDurationSeconds:qe(t=>n.getAttribute(t)),sourceDurationSeconds:Number.isFinite(n.duration)?n.duration:null,mediaStartSeconds:nt(n),playbackRate:ee(n)});return e.source==="media"?U(n,n.duration):e.seconds}function we(n,e=0){return!$e(n)||!n.hasAttribute("data-start")&&!n.hasAttribute("data-track-index")?null:Xe({tag:"img",authoredDurationSeconds:Lt(t=>n.getAttribute(t),e),sourceDurationSeconds:null,mediaStartSeconds:0,playbackRate:1}).seconds}function Hi(n,e,t){return typeof t=="number"?Ye(n,e,t):Number.isFinite(n)?Qe(t,Math.max(0,n-e)):null}function Jt(){return globalThis}function te(n,e){if(typeof window>"u")return;let t=Jt(),i=t.__hf?.onSwallowed;if(i)try{i({label:n,error:e})}catch(r){}(t.__hfDebug||t.__HYPERFRAMES_DEBUG)&&console.debug(`[hyperframes] ${n} swallowed:`,e)}function ne(n){try{if(typeof n?.duration!="function")return null;let e=Number(n.duration());return Number.isFinite(e)?e:null}catch(e){return te("runtime.timelineDuration",e),null}}var Zt="data-hf-authored-duration",Qt="data-hf-authored-end";function ie(n){if(n==null||typeof n=="string"&&n.trim()==="")return null;let e=typeof n=="number"?n:Number(n);return Number.isFinite(e)?e:null}function ke(n){let e=ie(n.start);if(e==null)return null;let t=Math.max(0,e),i=ie(n.duration),r=ie(n.authoredDuration),o=i!=null&&i>0?i:r!=null&&r>0?r:null;if(o!=null)return{start:t,duration:o,end:t+o};let a=ie(n.end),s=ie(n.authoredEnd),u=a!=null&&a>t?a:s!=null&&s>t?s:null;return{start:t,duration:u==null?null:u-t,end:u}}var en="data-hf-media-start-basis";function tn(n){return n?.trim().toLowerCase()==="global"?"global":"local"}function Wi(n){return tn(n.basis)==="global"?n.authoredStart:n.hostStart+n.authoredStart}function nn(n){return on(n)?Wi({authoredStart:n.authoredStart,hostStart:n.hostStart,basis:n.basis}):n.ordinaryStart()}function rn(n){return on(n)&&tn(n.basis)==="global"}function on(n){return!n.hasAutoStart&&n.authoredStart!=null&&n.hostStart!==0}function rt(n){return Ae(e=>n.getAttribute(e))}function an(n,e){return n-rt(e)}function H(n){let e=n.timelineRegistry??{},t=n.includeAuthoredTimingAttrs??!1,i=n.documentRef??document,r=new WeakMap,o=new WeakMap,a=new Set,s=l=>{let f=i.getElementById(l);return f||(i.querySelector(`[data-composition-id="${CSS.escape(l)}"]`)??null)},u=(l,f)=>t?l.getAttribute(f):null,d=l=>ke({start:0,duration:l.getAttribute("data-duration"),authoredDuration:u(l,"data-hf-authored-duration")})?.duration??ke({start:R(l,0),end:l.getAttribute("data-end"),authoredEnd:u(l,"data-hf-authored-end")})?.duration??null,m=l=>l!=null&&Number.isFinite(l)&&l>0?l:null,g=l=>{let f=l.getAttribute("data-composition-id");return f?m(ne(e[f])):null},_=l=>{let f=o.get(l);if(f!==void 0)return f;let y=d(l)??m(M(l)?U(l,l.duration):null)??m(we(l))??g(l);return o.set(l,y),y},h=l=>l.hasAttribute("data-composition-src")||l.hasAttribute("data-composition-id")||l.hasAttribute("data-composition-file"),A=l=>{let f=l.parentElement;return!f||!l.hasAttribute("data-composition-id")||Q(l.getAttribute("data-start"))?null:h(f)?f:null},b=(l,f)=>an(R(l,f),A(l)??l),S=(l,f)=>{let y=l.hasAttribute("data-composition-id")?l.parentElement?.closest("[data-composition-id]"):l.closest("[data-composition-id]");return y?b(y,f):0},D=(l,f)=>{let y=Q(l.getAttribute("data-start"));if(!y){let Y=A(l);return Y?R(Y,f):f}if(y.kind==="absolute")return S(l,f)+Math.max(0,y.value);let w=s(y.refId);if(!w)return f;let L=R(w,0),fe=_(w)??0,he=Math.min(0,S(l,0));return Math.max(he,L+fe+y.offset)},R=(l,f)=>{let y=r.get(l);if(y!==void 0)return y??f;if(a.has(l))return f;a.add(l);try{let w=D(l,f);return r.set(l,w),w}finally{a.delete(l)}},k=l=>{let f=l.closest("[data-composition-id]");return{authoredStart:P(l.getAttribute("data-start")),hostStart:f?b(f,0):0,hasAutoStart:l.hasAttribute("data-hf-auto-start"),basis:l.getAttribute(en)}};return{resolveStartForElement:(l,f=0)=>R(l,Math.max(0,f)),resolveDurationForElement:l=>_(l),resolveMediaStartForElement:l=>{let f=k(l);return nn({...f,ordinaryStart:()=>R(l,f.hostStart)})},resolveHostStartForElement:l=>S(l,0),resolveHostSlotsForElement:l=>{let f=[];for(let y=l.parentElement;y;y=y.parentElement){if(!h(y)||A(y)||rt(y)<=0)continue;let w=R(y,0),L=d(y);f.push({start:w,end:L?w+L:1/0})}return f},isRootGlobalMediaStartForElement:l=>M(l)&&rn(k(l))}}function sn(){return{capturedTimeline:null,isPlaying:!1,currentTime:0,deterministicAdapters:[],canonicalFps:30,bridgeMuted:!1,bridgeVolume:1,mediaOutputMuted:!1,nativeMediaSyncDisabled:!1,webAudioMediaDisabled:!1,mediaAutoplayBlockedPosted:!1,mediaForceSyncNextTick:!1,playbackRate:1,bridgeLastPostedFrame:-1,bridgeLastPostedAt:0,bridgeLastPostedPlaying:!1,bridgeLastPostedMuted:!1,bridgeMaxPostIntervalMs:80,controlBridgeHandler:null,beforeUnloadHandler:null,injectedCompStyles:[],injectedCompScripts:[],injectedCompLinks:[],cachedTimedMediaEls:[],cachedMediaClips:[],cachedVideoClips:[],cachedMediaTimelineDurationSeconds:0,tornDown:!1,transportClock:null,transportRafId:null}}var un=7200,ot=1/60,re=n=>n!==null&&n>ot?n:null;function Gi(n){return{width:ye(n.getAttribute("data-width")),height:ye(n.getAttribute("data-height"))}}function Bi(n,e){let t=[];for(let i of n.querySelectorAll("video[data-start], audio[data-start]")){let r=e.mediaStart(i);if(!Number.isFinite(r))continue;let o=e.mediaDuration(i);o==null||o<=ot||t.push(Math.max(0,r)+o)}return re(_e({authoredDurationSeconds:null,clipEndsSeconds:t}).seconds)}function $i(n,e){let t=[];for(let r of n.querySelectorAll("[data-composition-id][data-start]")){if(r.parentElement?.closest("[data-composition-id]")!==n)continue;let o=e.resolveStartForElement(r,0),a=e.resolveDurationForElement(r);!Number.isFinite(o)||a==null||a<=0||t.push(Math.max(0,o)+a)}let i=P(n.getAttribute("data-duration"));return re(_e({authoredDurationSeconds:null,clipEndsSeconds:[i,...t]}).seconds)}var zi=n=>n.hasAttribute("data-composition-id")||n.hasAttribute("data-composition-src");function ji(n,e,{unregisteredLottie:t}){let i=[];for(let o of n.querySelectorAll("[data-start]")){let a=e.resolveStartForElement(o,0);if(!Number.isFinite(a))continue;let s=e.resolveDurationForElement(o);s!=null?i.push(Math.max(0,a)+s):(M(o)||zi(o))&&i.push(null)}(t||n.querySelector("[data-lottie-src]"))&&i.push(null);let r=_e({authoredDurationSeconds:null,clipEndsSeconds:i});return r.pendingClips>0?{...r,seconds:null,source:"unresolved",reason:"a clip's length is pending"}:r}function qi(n){if(n.declared!==null&&Number.isFinite(n.declared)&&n.declared>0)return n.declared;let e=re(n.timeline()),t=Math.max(0,...n.floors().map(u=>u??0)),i=Number.isFinite(n.fallback)&&n.fallback>ot?n.fallback:0,r=Math.max(t,i),a=e!==null&&e>=un&&re(r)!==null?null:e,s;return a!==null?s=Math.max(a,r):re(t)!==null?s=r:i>0?s=i:s=n.derived(),s>0?s:0}function ln(n){let e=ve(n);if(!e)return null;let t=H({timelineRegistry:{},includeAuthoredTimingAttrs:!0,documentRef:n}),i=qi({declared:P(e.getAttribute("data-duration")),timeline:()=>null,floors:()=>[Bi(n,{mediaStart:t.resolveMediaStartForElement,mediaDuration:it}),$i(e,t)],fallback:0,derived:()=>ji(e,t,{unregisteredLottie:!1}).seconds??0});return{...Gi(e),fps:sn().canonicalFps,durationSeconds:i}}var dn="hyperframes-studio-preview";var cn="__hfPreviewErrors";function mn(n){return n.hasRuntime||n.runtimeInjected?!1:!!(n.hasNestedCompositions||n.hasTimelines&&n.attempts>=5)}function W(n){return typeof n=="object"&&n!==null}function pn(n){return W(n)&&typeof n.getDuration=="function"}function fn(n){return W(n)&&typeof n.duration=="function"&&typeof n.time=="function"&&typeof n.seek=="function"&&typeof n.play=="function"&&typeof n.pause=="function"}var G="https://cdn.jsdelivr.net/npm/@hyperframes/core@0.8.147/dist/hyperframe.runtime.iife.js";function oe(n){if(n===null)return null;let e=Number.parseInt(n,10);return Number.isFinite(e)&&e>0?e:null}function Yi(n){let e=n?.querySelector("[data-composition-id][data-width][data-height]")??n?.querySelector("[data-width][data-height]");if(!e)return null;let t=oe(e.getAttribute("data-width")),i=oe(e.getAttribute("data-height"));return t!==null&&i!==null?{width:t,height:i}:null}function Xi(n){return Array.isArray(n)?n.find(e=>typeof e=="string"&&e.trim()!==""&&e!=="[object Event]")??null:null}var Me=class{constructor(e,t){this._iframe=e;this._callbacks=t}_iframe;_callbacks;_interval=null;_runtimeInjected=!1;_runtimeScript=null;_failure=null;get failed(){return this._failure!==null&&this._failure.document===this._iframe.contentDocument}get runtimeInjected(){return this._runtimeInjected}start(){this.stop(),this._failure=null,this._runtimeInjected=!1;let e=0;this._interval=setInterval(()=>{e++;let t=null;try{t=this._poll(e)}catch(i){i instanceof DOMException&&i.name==="SecurityError"||(t={kind:"error",message:i instanceof Error?i.message:String(i)})}if(t){this.stop(),t.kind==="error"?(this._failure={document:this._iframe.contentDocument},this._callbacks.onError(t.message)):this._callbacks.onReady(t.result);return}e>=40&&(this.stop(),this._failure={document:this._iframe.contentDocument},this._callbacks.onError("Composition timeline not found after 8s"))},200)}_poll(e){let t=this._iframe.contentWindow;if(!t)return null;let i=Xi(Reflect.get(t,cn));if(i!==null)return{kind:"error",message:i};let r=this._iframe.contentDocument,o=Reflect.get(t,"__timelines"),a=this.hasRuntimeBridge(t);if(mn({hasRuntime:a,hasTimelines:W(o)&&Object.keys(o).length>0,hasNestedCompositions:!!r?.querySelector("[data-composition-src]"),runtimeInjected:this._runtimeInjected,attempts:e}))return this._injectRuntime(),null;if(this._runtimeInjected&&!a)return null;let s=this._resolveReadyResult(t,r);return s?{kind:"ready",result:s}:null}_resolveReadyResult(e,t){let i=this._resolvePlaybackDurationAdapter(e)??{kind:"document",getDuration:()=>0},r=i.getDuration();if(!Number.isFinite(r)||r<=0){if(i.kind==="direct-timeline")return null;r=t?ln(t)?.durationSeconds??0:0}return r<=0?null:{duration:r,adapter:{...i,getDuration:()=>r},compositionSize:Yi(t)}}stop(){this._runtimeScript&&(this._runtimeScript.onerror=null,this._runtimeScript=null),this.failed||(this._failure=null),this._interval!==null&&(clearInterval(this._interval),this._interval=null)}resolveDirectTimelineAdapter(){try{let e=this._iframe.contentWindow;return e?this._resolveDirectTimelineAdapterFromWindow(e):null}catch{return null}}resolveDirectTimelineAdapterFromWindow(e){return this._resolveDirectTimelineAdapterFromWindow(e)}hasRuntimeBridge(e){return W(Reflect.get(e,"__player"))}_injectRuntime(){this._runtimeInjected=!0;try{let e=this._iframe.contentDocument;if(!e)return;let t=e.createElement("script");t.src=this._callbacks.resolveRuntimeUrl?.()??G,this._runtimeScript=t,t.onerror=()=>{this._runtimeScript!==t||this._iframe.contentDocument!==e||(this.stop(),this._failure={document:e},this._callbacks.onError("HyperFrames runtime failed to load from "+t.src))},(e.head||e.documentElement).appendChild(t),this._callbacks.onRuntimeInjected?.()}catch{}}_resolveDirectTimelineAdapterFromWindow(e){if(this.hasRuntimeBridge(e))return null;let t=Reflect.get(e,"__timelines");if(!W(t))return null;let i=Object.keys(t);if(i.length===0)return null;let r=this._iframe.contentDocument?.querySelector("[data-composition-id]")?.getAttribute("data-composition-id"),o=r&&r in t?r:i[i.length-1],a=t[o];return fn(a)?a:null}_resolvePlaybackDurationAdapter(e){let t=Reflect.get(e,"__player");if(pn(t))return{kind:"runtime",getDuration:()=>t.getDuration()};let i=this._resolveDirectTimelineAdapterFromWindow(e);return i?{kind:"direct-timeline",timeline:i,getDuration:()=>i.duration()}:null}};var hn=`
1
+ "use strict";var HyperframesPlayer=(()=>{var We=Object.defineProperty;var Jn=Object.getOwnPropertyDescriptor;var Zn=Object.getOwnPropertyNames;var Qn=Object.prototype.hasOwnProperty;var ei=(n,e)=>{for(var t in e)We(n,t,{get:e[t],enumerable:!0})},ti=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Zn(e))!Qn.call(n,r)&&r!==t&&We(n,r,{get:()=>e[r],enumerable:!(i=Jn(e,r))||i.enumerable});return n};var ni=n=>ti(We({},"__esModule",{value:!0}),n);var zr={};ei(zr,{HyperframesPlayer:()=>He,SPEED_PRESETS:()=>ut,formatSpeed:()=>ae,formatTime:()=>Ie});var Ct=n=>n!==null&&Number.isFinite(n)&&n>0;function _e(n){let e=n.clipEndsSeconds.filter(i=>i===null).length;if(Ct(n.authoredDurationSeconds))return{seconds:n.authoredDurationSeconds,source:"authored",pendingClips:e};let t=n.clipEndsSeconds.filter(Ct);return t.length>0?{seconds:Math.max(...t),source:"derived",pendingClips:e}:{seconds:null,source:"unresolved",pendingClips:e,reason:e>0?"every clip's length is still pending":"no authored duration and no clip with a length"}}var ii="http://www.w3.org/1999/xhtml";function Dt(n){return n!=null&&n.nodeType===1}function Ge(n){return Dt(n)&&n.namespaceURI===ii}function Be(n,e){return Ge(n)&&n.localName===e}function ri(n){return Be(n,"video")}function oi(n){return Be(n,"audio")}function M(n){return ri(n)||oi(n)}function $e(n){return Be(n,"img")}function ye(n){if(n==null||n.trim()==="")return null;let e=Number.parseInt(n,10);return Number.isFinite(e)&&e>0?e:null}function ve(n=document){let e=n.querySelector('[data-composition-id][data-root="true"]');return Ge(e)?e:n.querySelector("[data-composition-id]")}var V=Object.freeze({start:"data-start",duration:"data-duration",trackIndex:"data-track-index",derivedEnd:"data-end",legacyTrack:"data-layer"}),Jr=Object.freeze([V.start,V.duration,V.trackIndex]),Zr=Object.freeze([V.derivedEnd]),Qr=Object.freeze([V.derivedEnd,V.legacyTrack]);function ze(n){if(n==null||n.trim()==="")return null;let e=Number(n);return Number.isFinite(e)?e:null}var Nt=n=>{let e=ze(n);return e!==null&&e>=0?e:null};function Ae(n){return Nt(n("data-playback-start"))??Nt(n("data-media-start"))??0}var X=.1,K=10;function je(n){return Number.isFinite(n)&&n>0?Math.max(X,Math.min(K,n)):1}function Pt(n,e=1){let t=Number.parseFloat(n("data-playback-rate")??"");return je(Number.isFinite(t)&&t>0?t:e)}function qe(n){let e=ze(n("data-duration"));return e!==null&&e>0?e:null}function Lt(n,e){let t=qe(n);if(t!==null)return t;let i=ze(n("data-end"));return i!==null?i-e:null}var ai=3;function Ye(n,e,t){return Number.isFinite(n)?Math.max(0,n-e)/je(t):null}function Xe(n){let{tag:e,authoredDurationSeconds:t,sourceDurationSeconds:i,mediaStartSeconds:r,playbackRate:o}=n;if(t!==null&&t>0)return{seconds:t,source:"authored"};if(e==="img")return{seconds:ai,source:"default"};if(i===null)return{seconds:null,source:"pending",reason:"source duration not yet probed"};let a=Ye(i,r,o);return a===null?{seconds:null,source:"pending",reason:"source reported a non-finite duration"}:{seconds:a,source:"media"}}var Ft="data-fx-chain",to=Ft.slice(5);var J=(n="frequency",e="Frequency",t=1e3,i=20,r=2e4)=>({kind:"number",key:n,label:e,unit:"Hz",min:i,max:r,step:1,default:t,scale:"log",automatable:!0}),Ke=(n=.707,e="Bandwidth: higher is narrower.")=>({kind:"number",key:"q",label:"Q",unit:"",min:.1,max:20,step:.01,default:n,scale:"log",automatable:!0,hint:e}),Se=(n=-40,e=40,t=0)=>({kind:"number",key:"gain",label:"Gain",unit:"dB",min:n,max:e,step:.1,default:t,automatable:!0}),Ot={kind:"enum",key:"poles",label:"Slope",options:[{value:"1",label:"6 dB/oct"},{value:"2",label:"12 dB/oct"}],default:"2",hint:"Two poles is the usual biquad; one pole is gentler."},Vt=[{id:"gain",label:"Gain",group:"dynamics",description:"Raise or lower the whole signal. Automate it to duck under something else.",params:[Se(-60,12,0)],web:"gain-node"},{id:"peaking",label:"Peaking EQ",group:"filter",description:"Boost or cut a band, leaving everything either side alone.",params:[J("frequency","Frequency",1e3),Se(-40,40,0),Ke(1)],web:"biquad-peaking"},{id:"lowshelf",label:"Low Shelf",group:"filter",description:"Lift or drop everything below the corner frequency.",params:[J("frequency","Frequency",200,20,2e3),Se(-40,40,0)],web:"biquad-lowshelf"},{id:"highshelf",label:"High Shelf",group:"filter",description:"Lift or drop everything above the corner frequency.",params:[J("frequency","Frequency",4e3,500,2e4),Se(-40,40,0)],web:"biquad-highshelf"},{id:"highpass",label:"High-pass",group:"filter",description:"Remove low frequencies: the usual fix for rumble on a voice.",params:[J("frequency","Cutoff",300,20,2e4),Ke(.707),Ot],web:"biquad-highpass"},{id:"lowpass",label:"Low-pass",group:"filter",description:"Remove high frequencies, which darkens or muffles a track.",params:[J("frequency","Cutoff",8e3,100,2e4),Ke(.707),Ot],web:"biquad-lowpass"},{id:"compressor",label:"Compressor",group:"dynamics",description:"Pull loud parts down so the quiet ones can come up.",params:[{kind:"number",key:"threshold",label:"Threshold",unit:"dB",min:-60,max:0,step:.5,default:-24,hint:"Level above which the compressor starts working."},{kind:"number",key:"ratio",label:"Ratio",unit:":1",min:1,max:20,step:.1,default:4},{kind:"number",key:"attack",label:"Attack",unit:"ms",min:.01,max:2e3,step:.1,default:20,scale:"log"},{kind:"number",key:"release",label:"Release",unit:"ms",min:.01,max:9e3,step:1,default:250,scale:"log"},{kind:"number",key:"knee",label:"Knee",unit:"",min:1,max:8,step:.01,default:2.83,hint:"1 is a hard corner; higher eases into it."},{kind:"number",key:"makeup",label:"Makeup",unit:"dB",min:0,max:36,step:.1,default:0},{kind:"number",key:"mix",label:"Mix",unit:"",min:0,max:1,step:.01,default:1,hint:"Below 1 blends the dry signal back in."}],web:"worklet-compressor"},{id:"limiter",label:"Limiter",group:"dynamics",description:"Hard ceiling: nothing gets past the limit.",params:[{kind:"number",key:"limit",label:"Ceiling",unit:"dB",min:-24,max:0,step:.1,default:-1},{kind:"number",key:"attack",label:"Attack",unit:"ms",min:.1,max:80,step:.1,default:5},{kind:"number",key:"release",label:"Release",unit:"ms",min:1,max:8e3,step:1,default:50,scale:"log"},{kind:"number",key:"level_out",label:"Output",unit:"dB",min:-24,max:24,step:.1,default:0}],web:"worklet-limiter"},{id:"truepeak",label:"True-peak limiter",group:"dynamics",description:"Lookahead limiter that holds a 4x estimate of the inter-sample peak at a dBTP ceiling; full-band noise can land up to about 1.7 dB above it. Adds lookahead plus about 0.3 ms of latency.",params:[{kind:"number",key:"ceiling",label:"Ceiling",unit:"dBTP",min:-24,max:0,step:.1,default:-1,hint:"Target true peak, measured on a 4x oversampled signal. Dense full-band sound can end up to about 1.7 dB above it."},{kind:"number",key:"lookahead",label:"Lookahead",unit:"ms",min:.5,max:10,step:.1,default:3,hint:"How far ahead the gain starts falling. Longer is smoother and adds the same latency."},{kind:"number",key:"release",label:"Release",unit:"ms",min:10,max:2e3,step:1,default:80,scale:"log"}],web:"worklet-truepeak"},{id:"gate",label:"Noise Gate",group:"dynamics",description:"Silence the track when it drops below the threshold.",params:[{kind:"number",key:"threshold",label:"Threshold",unit:"dB",min:-80,max:0,step:.5,default:-35},{kind:"number",key:"range",label:"Range",unit:"dB",min:-80,max:0,step:.5,default:-24,hint:"How far down the gate pulls when closed."},{kind:"number",key:"ratio",label:"Ratio",unit:":1",min:1,max:20,step:.1,default:10},{kind:"number",key:"attack",label:"Attack",unit:"ms",min:.01,max:9e3,step:.1,default:1,scale:"log"},{kind:"number",key:"release",label:"Release",unit:"ms",min:.01,max:9e3,step:1,default:100,scale:"log"},{kind:"number",key:"knee",label:"Knee",unit:"",min:1,max:8,step:.01,default:2.83}],web:"worklet-gate"},{id:"saturate",label:"Saturation",group:"nonlinear",description:"Soft-clip the waveform for warmth or outright distortion.",params:[{kind:"enum",key:"type",label:"Curve",options:[{value:"tanh",label:"Tanh"},{value:"atan",label:"Arctan"},{value:"cubic",label:"Cubic"},{value:"exp",label:"Exponential"},{value:"alg",label:"Algebraic"},{value:"quintic",label:"Quintic"},{value:"sin",label:"Sine"},{value:"erf",label:"Error function"},{value:"hard",label:"Hard clip"}],default:"tanh"},{kind:"number",key:"threshold",label:"Threshold",unit:"dB",min:-40,max:0,step:.1,default:-6},{kind:"number",key:"output",automatable:!0,label:"Output",unit:"dB",min:-24,max:24,step:.1,default:0},{kind:"number",key:"oversample",label:"Oversample",unit:"x",min:1,max:8,step:1,default:4,hint:"Higher costs more but keeps aliasing down."}],web:"waveshaper"},{id:"bitcrush",label:"Bitcrush",group:"nonlinear",description:"Drop bit depth and sample rate for a lo-fi, digital sound.",params:[{kind:"number",key:"bits",label:"Bit depth",unit:"bit",min:1,max:32,step:.1,default:8},{kind:"number",key:"samples",label:"Sample hold",unit:"x",min:1,max:250,step:1,default:1,hint:"Repeats each sample N times, a crude downsample."},{kind:"number",key:"mix",label:"Mix",unit:"",min:0,max:1,step:.01,default:1}],web:"worklet-bitcrush"},{id:"pitchshift",label:"Pitch shift",group:"time",description:"Shifts pitch up or down without changing playback speed. Adds ~50 ms of latency.",params:[{kind:"number",key:"semitones",label:"Semitones",unit:"st",min:-12,max:12,step:1,default:0},{kind:"number",key:"mix",label:"Mix",unit:"",min:0,max:1,step:.01,default:1}],web:"worklet-pitchshift"},{id:"delay",label:"Delay",group:"time",description:"Repeating echoes behind the dry signal.",params:[{kind:"number",key:"time",automatable:!0,label:"Time",unit:"ms",min:1,max:5e3,step:1,default:250,scale:"log"},{kind:"number",key:"feedback",automatable:!0,label:"Feedback",unit:"",min:.01,max:.95,step:.01,default:.35},{kind:"number",key:"mix",automatable:!0,label:"Mix",unit:"",min:0,max:1,step:.01,default:.4}],web:"delay-feedback"},{id:"chorus",label:"Chorus",group:"time",description:"Detuned copies of the signal for width and thickness.",params:[{kind:"number",key:"delay",automatable:!0,label:"Delay",unit:"ms",min:1,max:100,step:.1,default:7},{kind:"number",key:"depth",automatable:!0,label:"Depth",unit:"ms",min:0,max:10,step:.01,default:2},{kind:"number",key:"speed",automatable:!0,label:"Rate",unit:"Hz",min:.01,max:10,step:.01,default:1},{kind:"number",key:"mix",automatable:!0,label:"Mix",unit:"",min:0,max:1,step:.01,default:.5}],web:"chorus-lfo"},{id:"phaser",label:"Phaser",group:"time",description:"Sweeping notches moving through the spectrum.",params:[{kind:"number",key:"in_gain",automatable:!0,label:"Input",unit:"",min:0,max:1,step:.01,default:.4},{kind:"number",key:"out_gain",automatable:!0,label:"Output",unit:"",min:0,max:2,step:.01,default:.74},{kind:"number",key:"delay",label:"Delay",unit:"ms",min:.1,max:5,step:.1,default:3},{kind:"number",key:"decay",label:"Decay",unit:"",min:0,max:.99,step:.01,default:.4},{kind:"number",key:"speed",automatable:!0,label:"Rate",unit:"Hz",min:.1,max:2,step:.01,default:.5},{kind:"enum",key:"type",label:"Waveform",options:[{value:"0",label:"Triangular"},{value:"1",label:"Sinusoidal"}],default:"0"}],web:"allpass-phaser"},{id:"reverb",label:"Reverb",group:"time",description:"Room tail. Both ends convolve the same generated impulse, so preview matches render.",params:[{kind:"number",key:"size",label:"Room size",unit:"",min:.05,max:1,step:.01,default:.7},{kind:"number",key:"damping",label:"Damping",unit:"",min:0,max:1,step:.01,default:.5,hint:"Higher rolls the top off the tail faster."},{kind:"number",key:"wet",automatable:!0,label:"Wet",unit:"",min:0,max:1,step:.01,default:.35},{kind:"number",key:"dry",automatable:!0,label:"Dry",unit:"",min:0,max:1,step:.01,default:.7}],web:"convolver"}],no=new Map(Vt.map(n=>[n.id,n]));var io=Vt.map(n=>n.id);function si(n){return 10**(n/20)}var Ut=si(12);var Ze="data-automation",po=Ze.slice(5),Je=1,ui=512,I=class extends Error{constructor(e){super(e),this.name="AudioAutomationError"}},Ee="volume",Te="rate";function Ht(n){if(n===Ee)return{kind:"volume"};if(n===Te)return{kind:"rate"};let e=n.split(".");if(e.length===3&&e[0]==="fx"&&e[1]===li){let r=e[2];return r?{kind:"preset",presetId:r}:null}if(e.length!==3||e[0]!=="fx")return null;let[,t,i]=e;return!t||!i?null:{kind:"fx",nodeId:t,param:i}}var li="preset";var di={min:0,max:Ut,step:.01,unit:"",label:"Volume",scale:"linear",default:1},ci={min:X,max:K,step:.05,unit:"x",label:"Speed",scale:"log",default:1};function Z(n){if(typeof n=="number")return Number.isFinite(n)?n:null;if(typeof n=="string"&&n.trim()!==""){let e=Number(n);return Number.isFinite(e)?e:null}return null}function mi(n){let e=Z(n);return e===null||e===0?0:Math.min(1,Math.max(-1,e))}function Wt(n,e){let t=Z(n),i=Z(e);if(t===null||i===null)return null;let r=s=>Math.min(.999,Math.max(.001,s)),o=r(t),a=r(i);return Math.abs(o-a)<1e-6?null:{x:o,y:a}}function pi(n){let e=mi(n?.curve),t=Wt(n?.viaX,n?.viaY);return{...e?{curve:e}:{},...t?{viaX:t.x,viaY:t.y}:{}}}function fi(n,e){let t=Z(n?.t),i=Z(n?.v);if(t===null||i===null)return null;let r=e?Math.min(e.max,Math.max(e.min,i)):i;return{t:Math.max(0,t),v:r,...pi(n)}}function hi(n,e){let t=n.map(r=>fi(r,e)).filter(r=>r!==null).sort((r,o)=>r.t-o.t),i=[];for(let r of t)i.length>0&&i[i.length-1].t===r.t?i[i.length-1]=r:i.push(r);return i.slice(0,ui)}function bi(n){let e=[];for(let t of n.lanes){if(!Ht(t.target))continue;let i=t.target===Ee?di:t.target===Te?ci:null,r=hi(t.points??[],i);r.length>0&&e.push({target:t.target,points:r})}return{version:Je,lanes:e}}function Gt(n){let e;try{e=JSON.parse(n)}catch(r){throw new I(`Automation is not valid JSON: ${r.message}`)}if(typeof e!="object"||e===null)throw new I("Automation must be a JSON object.");let t=e;if(t.version!==Je)throw new I(`Unsupported automation version: ${String(t.version)}`);if(!Array.isArray(t.lanes))throw new I("Automation is missing a `lanes` array.");let i=t.lanes.map((r,o)=>{if(typeof r!="object"||r===null)throw new I(`Lane ${o} is not an object.`);let a=r;if(typeof a.target!="string"||!Ht(a.target))throw new I(`Lane ${o} has an unreadable target: ${String(a.target)}`);if(!Array.isArray(a.points))throw new I(`Lane ${o} is missing a \`points\` array.`);return{target:a.target,points:a.points}});return bi({version:Je,lanes:i})}function gi(n,e){return e?Math.pow(n,Math.pow(2,2*e)):n}function _i(n,e){let t=n-.5,i=e-.5,r=.999,o=1e6,a=t>0?t/(r-n):t<0?-t/(n-(1-r)):0,s=i>0?i/(r-e):i<0?-i/(e-(1-r)):0,u=Math.min(o,Math.max(1,a,s));return{cx:n+t/u,cy:e+i/u,w:u}}function yi(n,e,t){let{cx:i,cy:r,w:o}=_i(e,t),a=2-2*o,s=n*a-1+2*o*i,u=-n*a-2*o*i,d=vi(s,u,n),m=1-d,g=m*m+2*o*d*m+d*d;return g>0?(2*o*r*d*m+d*d)/g:n}function vi(n,e,t){if(Math.abs(n)<1e-12)return Math.abs(e)<1e-12?t:-t/e;let i=Math.sqrt(Math.max(0,e*e-4*n*t)),r=(-e+i)/(2*n),o=(-e-i)/(2*n),a=s=>s>=-1e-9&&s<=1+1e-9;return a(r)?Math.min(1,Math.max(0,r)):a(o)?Math.min(1,Math.max(0,o)):t}function Ai(n,e){let t=Wt(e.viaX,e.viaY);return t?yi(Math.min(1,Math.max(0,n)),t.x,t.y):gi(n,e.curve)}function Si(n,e,t,i){return i==="log"&&n>0&&e>0?Math.exp(Math.log(n)+(Math.log(e)-Math.log(n))*t):n+(e-n)*t}function Re(n,e,t="linear"){let i=n.points;if(i.length===0)return 0;let r=i[0];if(e<=r.t)return r.v;let o=i[i.length-1];if(e>=o.t)return o.v;let a=0,s=i.length-1;for(;s-a>1;){let g=a+s>>1;i[g].t<=e?a=g:s=g}let u=i[a],d=i[s],m=d.t-u.t;return m<=0?d.v:Si(u.v,d.v,Ai((e-u.t)/m,u),t)}var xe=new Map,Ei=64;function Bt(n,e=Ee){let t=`${e}\0${n}`,i=xe.get(t);if(i!==void 0)return i;let r=null;try{r=Gt(n).lanes.find(o=>o.target===e)??null}catch{r=null}return xe.size>Ei&&xe.clear(),xe.set(t,r),r}var $t=48,zt=new WeakMap;function Ti(n){let e=n.points,t=e[0].v,i=e[e.length-1].v,r=[0],o=[0],a=u=>{let d=r[r.length-1];if(u<=d)return;let m=Re(n,d,"log");r.push(u),o.push(o[o.length-1]+(m+Re(n,u,"log"))/2*(u-d))},s=Math.max(0,e[0].t);a(s);for(let u=1;u<e.length;u+=1){let d=e[u-1].t,m=e[u].t;if(!(m<=0))for(let g=1;g<=$t;g+=1)a(Math.max(d,0)+(m-d)*g/$t)}return{ts:Float64Array.from(r),ss:Float64Array.from(o),firstRate:t,lastRate:i}}function Ri(n){let e=zt.get(n);return e||(e=Ti(n),zt.set(n,e)),e}function xi(n){return typeof n!="number"&&n.points.length>0}function wi(n,e,t){let i=0,r=n.length-1;for(;r-i>1;){let o=i+r>>1;n[o]<=t?i=o:r=o}return e[i]+(e[r]-e[i])*(t-n[i])/(n[r]-n[i])}function Qe(n,e){if(typeof n=="number")return e/n;if(!xi(n))return e;let{ts:t,ss:i,firstRate:r,lastRate:o}=Ri(n),a=t.length-1;return e<=0?e/r:e>=i[a]?t[a]+(e-i[a])/o:wi(i,t,e)}function ki(n){return n?Bt(n,Te):null}function jt(n,e){return ki(n)??e}var vo=[{id:"montage",label:"Montage",points:[[0,.9],[.15,.3],[.5,2.5],[.85,.3],[1,.9]]},{id:"hero",label:"Hero",points:[[0,1],[.25,1.6],[.5,.25],[.75,1.6],[1,1]]},{id:"bullet",label:"Bullet",points:[[0,3],[.4,3],[.5,.15],[.6,3],[1,3]]},{id:"jump-cut",label:"Jump cut",points:[[0,.5],[.24,.5],[.26,3],[.5,3],[.52,.5],[.74,.5],[.76,3],[1,3]]},{id:"flash-in",label:"Flash in",points:[[0,.3],[.6,.6],[1,5]]},{id:"flash-out",label:"Flash out",points:[[0,5],[.4,.6],[1,.3]]},{id:"ramp-in",label:"Ramp in",points:[[0,.5],[1,1]]},{id:"ramp-out",label:"Ramp out",points:[[0,1],[1,.5]]},{id:"slowmo-middle",label:"Slow-mo middle",points:[[0,1],[1/3,.35],[2/3,.35],[1,1]]}];var v=Object.freeze({start:"data-start",duration:"data-duration",trackIndex:"data-track-index",derivedEnd:"data-end",legacyTrack:"data-layer"}),So=Object.freeze([v.start,v.duration,v.trackIndex]),Eo=Object.freeze([v.derivedEnd]),To=Object.freeze([v.derivedEnd,v.legacyTrack]);function C(n){if(n==null||n.trim()==="")return null;let e=Number(n);return Number.isFinite(e)?e:null}var Xt=/^[A-Za-z0-9_.:-]+$/;function Kt(n,e){let t=n.charCodeAt(e);return t>=48&&t<=57}function qt(n,e){let t=e;for(;t>=0&&Kt(n,t);)t--;return t}function Mi(n,e){let t=e;for(;t>=0&&(n[t]??"").trim()==="";)t--;return t}function Ii(n){let e=n.length-1;if(!Kt(n,e))return null;let t=qt(n,e);return n[t]==="."&&(t=qt(n,t-1)),t+1}function Ci(n){let e=Ii(n);if(e==null)return null;let t=Mi(n,e-1),i=n[t];if(i!=="+"&&i!=="-")return null;let r=n.slice(0,t).trim();if(!Xt.test(r))return null;let o=Number(n.slice(e));return Number.isFinite(o)?{refId:r,operator:i,magnitude:o}:null}function Q(n){let e=(n??"").trim();if(!e)return null;let t=C(e);if(t!=null)return{kind:"absolute",value:t};if(Xt.test(e))return{kind:"reference",refId:e,offset:0};let i=Ci(e);return i?{kind:"reference",refId:i.refId,offset:i.operator==="-"?-i.magnitude:i.magnitude}:null}function T(n,e,t,i){n.push({code:e,attribute:t,value:i})}function Di(n,e,t,i){if(e==null||e.trim()==="")return t.defaultStart===void 0?0:t.defaultStart;if(!n)return T(i,"invalid-start",v.start,e),null;if(n.kind==="absolute")return Math.max(0,n.value);let r=t.resolveReferenceEnd?.(n.refId);return r==null||!Number.isFinite(r)?(T(i,"unresolved-start-reference",v.start,e),null):Math.max(0,r+n.offset)}var Ni=1e-9;function Pi(n,e){return Math.abs(n-e)<=Ni}function Li(n,e,t){let i=C(n);if(i==null){T(t,"deprecated-end",v.derivedEnd,n),T(t,"invalid-end",v.derivedEnd,n);return}if(e==null){T(t,"deprecated-end",v.derivedEnd,n);return}Pi(i,e)||(T(t,"deprecated-end",v.derivedEnd,n),T(t,"conflicting-end",v.derivedEnd,n))}function Oi(n,e,t){let i=C(n);return i==null||i<0?(T(t,"invalid-duration",v.duration,n),{duration:null,end:null,durationSource:"invalid"}):{duration:i,end:e==null?null:e+i,durationSource:"duration"}}function Fi(n,e,t){T(t,"deprecated-end",v.derivedEnd,n);let i=C(n);return i==null?(T(t,"invalid-end",v.derivedEnd,n),{duration:null,end:null,durationSource:"invalid"}):e==null?{duration:null,end:i,durationSource:"legacy-end"}:i<e?(T(t,"end-before-start",v.derivedEnd,n),{duration:null,end:null,durationSource:"invalid"}):{duration:i-e,end:i,durationSource:"legacy-end"}}function Vi(n,e,t){let i=n.getAttribute(v.duration),r=n.getAttribute(v.derivedEnd);if(i==null)return r==null?{duration:null,end:null,durationSource:"missing"}:Fi(r,e,t);let o=Oi(i,e,t);return r!=null&&Li(r,o.end,t),o}function Yt(n,e,t,i){let r=C(n);return r==null||!Number.isInteger(r)?(T(i,"invalid-track-index",e,n),{trackIndex:0,trackSource:"invalid"}):{trackIndex:r,trackSource:t}}function Ui(n,e){let t=n.getAttribute(v.trackIndex),i=n.getAttribute(v.legacyTrack);if(t==null&&i==null)return{trackIndex:0,trackSource:"default"};if(t==null&&i!=null)return T(e,"deprecated-layer",v.legacyTrack,i),Yt(i,v.legacyTrack,"legacy-layer",e);let r=Yt(t??"",v.trackIndex,"track-index",e);if(i==null)return r;T(e,"deprecated-layer",v.legacyTrack,i);let o=C(i);return o!=null&&o!==r.trackIndex&&T(e,"conflicting-layer",v.legacyTrack,i),r}function et(n,e={}){let t=[],i=n.getAttribute(v.start),r=Q(i),o=Di(r,i,e,t),a=Vi(n,o,t),s=Ui(n,t);return{startExpression:r,start:o,...a,...s,diagnostics:t}}function P(n){return C(n)}function ee(n){return Pt(e=>n.getAttribute(e),M(n)?n.defaultPlaybackRate:1)}function tt(n){return jt(n.getAttribute("data-automation"),ee(n))}function nt(n){return Ae(e=>n.getAttribute(e))}function U(n,e){return Hi(e,nt(n),tt(n))}function it(n){let e=Xe({tag:"video",authoredDurationSeconds:qe(t=>n.getAttribute(t)),sourceDurationSeconds:Number.isFinite(n.duration)?n.duration:null,mediaStartSeconds:nt(n),playbackRate:ee(n)});return e.source==="media"?U(n,n.duration):e.seconds}function we(n,e=0){return!$e(n)||!n.hasAttribute("data-start")&&!n.hasAttribute("data-track-index")?null:Xe({tag:"img",authoredDurationSeconds:Lt(t=>n.getAttribute(t),e),sourceDurationSeconds:null,mediaStartSeconds:0,playbackRate:1}).seconds}function Hi(n,e,t){return typeof t=="number"?Ye(n,e,t):Number.isFinite(n)?Qe(t,Math.max(0,n-e)):null}function Jt(){return globalThis}function te(n,e){if(typeof window>"u")return;let t=Jt(),i=t.__hf?.onSwallowed;if(i)try{i({label:n,error:e})}catch(r){}(t.__hfDebug||t.__HYPERFRAMES_DEBUG)&&console.debug(`[hyperframes] ${n} swallowed:`,e)}function ne(n){try{if(typeof n?.duration!="function")return null;let e=Number(n.duration());return Number.isFinite(e)?e:null}catch(e){return te("runtime.timelineDuration",e),null}}var Zt="data-hf-authored-duration",Qt="data-hf-authored-end";function ie(n){if(n==null||typeof n=="string"&&n.trim()==="")return null;let e=typeof n=="number"?n:Number(n);return Number.isFinite(e)?e:null}function ke(n){let e=ie(n.start);if(e==null)return null;let t=Math.max(0,e),i=ie(n.duration),r=ie(n.authoredDuration),o=i!=null&&i>0?i:r!=null&&r>0?r:null;if(o!=null)return{start:t,duration:o,end:t+o};let a=ie(n.end),s=ie(n.authoredEnd),u=a!=null&&a>t?a:s!=null&&s>t?s:null;return{start:t,duration:u==null?null:u-t,end:u}}var en="data-hf-media-start-basis";function tn(n){return n?.trim().toLowerCase()==="global"?"global":"local"}function Wi(n){return tn(n.basis)==="global"?n.authoredStart:n.hostStart+n.authoredStart}function nn(n){return on(n)?Wi({authoredStart:n.authoredStart,hostStart:n.hostStart,basis:n.basis}):n.ordinaryStart()}function rn(n){return on(n)&&tn(n.basis)==="global"}function on(n){return!n.hasAutoStart&&n.authoredStart!=null&&n.hostStart!==0}function rt(n){return Ae(e=>n.getAttribute(e))}function an(n,e){return n-rt(e)}function H(n){let e=n.timelineRegistry??{},t=n.includeAuthoredTimingAttrs??!1,i=n.documentRef??document,r=new WeakMap,o=new WeakMap,a=new Set,s=l=>{let f=i.getElementById(l);return f||(i.querySelector(`[data-composition-id="${CSS.escape(l)}"]`)??null)},u=(l,f)=>t?l.getAttribute(f):null,d=l=>ke({start:0,duration:l.getAttribute("data-duration"),authoredDuration:u(l,"data-hf-authored-duration")})?.duration??ke({start:R(l,0),end:l.getAttribute("data-end"),authoredEnd:u(l,"data-hf-authored-end")})?.duration??null,m=l=>l!=null&&Number.isFinite(l)&&l>0?l:null,g=l=>{let f=l.getAttribute("data-composition-id");return f?m(ne(e[f])):null},_=l=>{let f=o.get(l);if(f!==void 0)return f;let y=d(l)??m(M(l)?U(l,l.duration):null)??m(we(l))??g(l);return o.set(l,y),y},h=l=>l.hasAttribute("data-composition-src")||l.hasAttribute("data-composition-id")||l.hasAttribute("data-composition-file"),A=l=>{let f=l.parentElement;return!f||!l.hasAttribute("data-composition-id")||Q(l.getAttribute("data-start"))?null:h(f)?f:null},b=(l,f)=>an(R(l,f),A(l)??l),S=(l,f)=>{let y=l.hasAttribute("data-composition-id")?l.parentElement?.closest("[data-composition-id]"):l.closest("[data-composition-id]");return y?b(y,f):0},D=(l,f)=>{let y=Q(l.getAttribute("data-start"));if(!y){let Y=A(l);return Y?R(Y,f):f}if(y.kind==="absolute")return S(l,f)+Math.max(0,y.value);let w=s(y.refId);if(!w)return f;let L=R(w,0),fe=_(w)??0,he=Math.min(0,S(l,0));return Math.max(he,L+fe+y.offset)},R=(l,f)=>{let y=r.get(l);if(y!==void 0)return y??f;if(a.has(l))return f;a.add(l);try{let w=D(l,f);return r.set(l,w),w}finally{a.delete(l)}},k=l=>{let f=l.closest("[data-composition-id]");return{authoredStart:P(l.getAttribute("data-start")),hostStart:f?b(f,0):0,hasAutoStart:l.hasAttribute("data-hf-auto-start"),basis:l.getAttribute(en)}};return{resolveStartForElement:(l,f=0)=>R(l,Math.max(0,f)),resolveDurationForElement:l=>_(l),resolveMediaStartForElement:l=>{let f=k(l);return nn({...f,ordinaryStart:()=>R(l,f.hostStart)})},resolveHostStartForElement:l=>S(l,0),resolveHostSlotsForElement:l=>{let f=[];for(let y=l.parentElement;y;y=y.parentElement){if(!h(y)||A(y)||rt(y)<=0)continue;let w=R(y,0),L=d(y);f.push({start:w,end:L?w+L:1/0})}return f},isRootGlobalMediaStartForElement:l=>M(l)&&rn(k(l))}}function sn(){return{capturedTimeline:null,isPlaying:!1,currentTime:0,deterministicAdapters:[],canonicalFps:30,bridgeMuted:!1,bridgeVolume:1,mediaOutputMuted:!1,nativeMediaSyncDisabled:!1,webAudioMediaDisabled:!1,mediaAutoplayBlockedPosted:!1,mediaForceSyncNextTick:!1,playbackRate:1,bridgeLastPostedFrame:-1,bridgeLastPostedAt:0,bridgeLastPostedPlaying:!1,bridgeLastPostedMuted:!1,bridgeMaxPostIntervalMs:80,controlBridgeHandler:null,beforeUnloadHandler:null,injectedCompStyles:[],injectedCompScripts:[],injectedCompLinks:[],cachedTimedMediaEls:[],cachedMediaClips:[],cachedVideoClips:[],cachedMediaTimelineDurationSeconds:0,tornDown:!1,transportClock:null,transportRafId:null}}var un=7200,ot=1/60,re=n=>n!==null&&n>ot?n:null;function Gi(n){return{width:ye(n.getAttribute("data-width")),height:ye(n.getAttribute("data-height"))}}function Bi(n,e){let t=[];for(let i of n.querySelectorAll("video[data-start], audio[data-start]")){let r=e.mediaStart(i);if(!Number.isFinite(r))continue;let o=e.mediaDuration(i);o==null||o<=ot||t.push(Math.max(0,r)+o)}return re(_e({authoredDurationSeconds:null,clipEndsSeconds:t}).seconds)}function $i(n,e){let t=[];for(let r of n.querySelectorAll("[data-composition-id][data-start]")){if(r.parentElement?.closest("[data-composition-id]")!==n)continue;let o=e.resolveStartForElement(r,0),a=e.resolveDurationForElement(r);!Number.isFinite(o)||a==null||a<=0||t.push(Math.max(0,o)+a)}let i=P(n.getAttribute("data-duration"));return re(_e({authoredDurationSeconds:null,clipEndsSeconds:[i,...t]}).seconds)}var zi=n=>n.hasAttribute("data-composition-id")||n.hasAttribute("data-composition-src");function ji(n,e,{unregisteredLottie:t}){let i=[];for(let o of n.querySelectorAll("[data-start]")){let a=e.resolveStartForElement(o,0);if(!Number.isFinite(a))continue;let s=e.resolveDurationForElement(o);s!=null?i.push(Math.max(0,a)+s):(M(o)||zi(o))&&i.push(null)}(t||n.querySelector("[data-lottie-src]"))&&i.push(null);let r=_e({authoredDurationSeconds:null,clipEndsSeconds:i});return r.pendingClips>0?{...r,seconds:null,source:"unresolved",reason:"a clip's length is pending"}:r}function qi(n){if(n.declared!==null&&Number.isFinite(n.declared)&&n.declared>0)return n.declared;let e=re(n.timeline()),t=Math.max(0,...n.floors().map(u=>u??0)),i=Number.isFinite(n.fallback)&&n.fallback>ot?n.fallback:0,r=Math.max(t,i),a=e!==null&&e>=un&&re(r)!==null?null:e,s;return a!==null?s=Math.max(a,r):re(t)!==null?s=r:i>0?s=i:s=n.derived(),s>0?s:0}function ln(n){let e=ve(n);if(!e)return null;let t=H({timelineRegistry:{},includeAuthoredTimingAttrs:!0,documentRef:n}),i=qi({declared:P(e.getAttribute("data-duration")),timeline:()=>null,floors:()=>[Bi(n,{mediaStart:t.resolveMediaStartForElement,mediaDuration:it}),$i(e,t)],fallback:0,derived:()=>ji(e,t,{unregisteredLottie:!1}).seconds??0});return{...Gi(e),fps:sn().canonicalFps,durationSeconds:i}}var dn="hyperframes-studio-preview";var cn="__hfPreviewErrors";function mn(n){return n.hasRuntime||n.runtimeInjected?!1:!!(n.hasNestedCompositions||n.hasTimelines&&n.attempts>=5)}function W(n){return typeof n=="object"&&n!==null}function pn(n){return W(n)&&typeof n.getDuration=="function"}function fn(n){return W(n)&&typeof n.duration=="function"&&typeof n.time=="function"&&typeof n.seek=="function"&&typeof n.play=="function"&&typeof n.pause=="function"}var G="https://cdn.jsdelivr.net/npm/@hyperframes/core@0.8.149/dist/hyperframe.runtime.iife.js";function oe(n){if(n===null)return null;let e=Number.parseInt(n,10);return Number.isFinite(e)&&e>0?e:null}function Yi(n){let e=n?.querySelector("[data-composition-id][data-width][data-height]")??n?.querySelector("[data-width][data-height]");if(!e)return null;let t=oe(e.getAttribute("data-width")),i=oe(e.getAttribute("data-height"));return t!==null&&i!==null?{width:t,height:i}:null}function Xi(n){return Array.isArray(n)?n.find(e=>typeof e=="string"&&e.trim()!==""&&e!=="[object Event]")??null:null}var Me=class{constructor(e,t){this._iframe=e;this._callbacks=t}_iframe;_callbacks;_interval=null;_runtimeInjected=!1;_runtimeScript=null;_failure=null;get failed(){return this._failure!==null&&this._failure.document===this._iframe.contentDocument}get runtimeInjected(){return this._runtimeInjected}start(){this.stop(),this._failure=null,this._runtimeInjected=!1;let e=0;this._interval=setInterval(()=>{e++;let t=null;try{t=this._poll(e)}catch(i){i instanceof DOMException&&i.name==="SecurityError"||(t={kind:"error",message:i instanceof Error?i.message:String(i)})}if(t){this.stop(),t.kind==="error"?(this._failure={document:this._iframe.contentDocument},this._callbacks.onError(t.message)):this._callbacks.onReady(t.result);return}e>=40&&(this.stop(),this._failure={document:this._iframe.contentDocument},this._callbacks.onError("Composition timeline not found after 8s"))},200)}_poll(e){let t=this._iframe.contentWindow;if(!t)return null;let i=Xi(Reflect.get(t,cn));if(i!==null)return{kind:"error",message:i};let r=this._iframe.contentDocument,o=Reflect.get(t,"__timelines"),a=this.hasRuntimeBridge(t);if(mn({hasRuntime:a,hasTimelines:W(o)&&Object.keys(o).length>0,hasNestedCompositions:!!r?.querySelector("[data-composition-src]"),runtimeInjected:this._runtimeInjected,attempts:e}))return this._injectRuntime(),null;if(this._runtimeInjected&&!a)return null;let s=this._resolveReadyResult(t,r);return s?{kind:"ready",result:s}:null}_resolveReadyResult(e,t){let i=this._resolvePlaybackDurationAdapter(e)??{kind:"document",getDuration:()=>0},r=i.getDuration();if(!Number.isFinite(r)||r<=0){if(i.kind==="direct-timeline")return null;r=t?ln(t)?.durationSeconds??0:0}return r<=0?null:{duration:r,adapter:{...i,getDuration:()=>r},compositionSize:Yi(t)}}stop(){this._runtimeScript&&(this._runtimeScript.onerror=null,this._runtimeScript=null),this.failed||(this._failure=null),this._interval!==null&&(clearInterval(this._interval),this._interval=null)}resolveDirectTimelineAdapter(){try{let e=this._iframe.contentWindow;return e?this._resolveDirectTimelineAdapterFromWindow(e):null}catch{return null}}resolveDirectTimelineAdapterFromWindow(e){return this._resolveDirectTimelineAdapterFromWindow(e)}hasRuntimeBridge(e){return W(Reflect.get(e,"__player"))}_injectRuntime(){this._runtimeInjected=!0;try{let e=this._iframe.contentDocument;if(!e)return;let t=e.createElement("script");t.src=this._callbacks.resolveRuntimeUrl?.()??G,this._runtimeScript=t,t.onerror=()=>{this._runtimeScript!==t||this._iframe.contentDocument!==e||(this.stop(),this._failure={document:e},this._callbacks.onError("HyperFrames runtime failed to load from "+t.src))},(e.head||e.documentElement).appendChild(t),this._callbacks.onRuntimeInjected?.()}catch{}}_resolveDirectTimelineAdapterFromWindow(e){if(this.hasRuntimeBridge(e))return null;let t=Reflect.get(e,"__timelines");if(!W(t))return null;let i=Object.keys(t);if(i.length===0)return null;let r=this._iframe.contentDocument?.querySelector("[data-composition-id]")?.getAttribute("data-composition-id"),o=r&&r in t?r:i[i.length-1],a=t[o];return fn(a)?a:null}_resolvePlaybackDurationAdapter(e){let t=Reflect.get(e,"__player");if(pn(t))return{kind:"runtime",getDuration:()=>t.getDuration()};let i=this._resolveDirectTimelineAdapterFromWindow(e);return i?{kind:"direct-timeline",timeline:i,getDuration:()=>i.duration()}:null}};var hn=`
2
2
  :host {
3
3
  display: block;
4
4
  position: relative;
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  resolveProject
9
- } from "./chunk-AFIATIKS.js";
9
+ } from "./chunk-SFUBSJFP.js";
10
10
  import {
11
11
  formatBytes,
12
12
  label
@@ -14,19 +14,30 @@ import {
14
14
  import {
15
15
  ensureDOMParser
16
16
  } from "./chunk-442JNXRM.js";
17
- import "./chunk-55RZG5SQ.js";
18
- import "./chunk-3PPO64IB.js";
17
+ import "./chunk-Y475GD4L.js";
18
+ import "./chunk-LACFOFWX.js";
19
19
  import "./chunk-VWG7OQKU.js";
20
20
  import "./chunk-XBSPQ52S.js";
21
- import "./chunk-AMKC3AXA.js";
22
21
  import {
23
22
  defineCommand
24
23
  } from "./chunk-S3S4TGEH.js";
25
24
  import "./chunk-54HJ63Q2.js";
26
25
  import "./chunk-PBN6GBJE.js";
26
+ import {
27
+ c
28
+ } from "./chunk-ZTZA4UWZ.js";
29
+ import {
30
+ withMeta
31
+ } from "./chunk-GESJSXFH.js";
32
+ import "./chunk-K4WIOZFP.js";
33
+ import "./chunk-XUXGIA7H.js";
34
+ import "./chunk-WERLJGIC.js";
35
+ import "./chunk-ISN5GRYI.js";
36
+ import "./chunk-OMBSUO4T.js";
37
+ import "./chunk-AMKC3AXA.js";
27
38
  import "./chunk-JYVGYKXG.js";
28
- import "./chunk-BAKPN2D2.js";
29
- import "./chunk-Z6FLHIDV.js";
39
+ import "./chunk-AHBYQRGI.js";
40
+ import "./chunk-3WD4JNMU.js";
30
41
  import "./chunk-VC76R6W2.js";
31
42
  import "./chunk-YA62XGXS.js";
32
43
  import {
@@ -43,18 +54,7 @@ import "./chunk-BSQ7XANM.js";
43
54
  import "./chunk-SDYDNHEE.js";
44
55
  import "./chunk-2PSPARWP.js";
45
56
  import "./chunk-IXLUTE6N.js";
46
- import {
47
- withMeta
48
- } from "./chunk-3YUFN37G.js";
49
- import "./chunk-K4WIOZFP.js";
50
- import "./chunk-XUXGIA7H.js";
51
- import "./chunk-WERLJGIC.js";
52
- import "./chunk-ISN5GRYI.js";
53
- import "./chunk-QTTDKWSM.js";
54
57
  import "./chunk-KNU5COPB.js";
55
- import {
56
- c
57
- } from "./chunk-ZTZA4UWZ.js";
58
58
  import "./chunk-M2WBOQ2Q.js";
59
59
 
60
60
  // src/commands/info.ts
@@ -6,12 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  gateRegistryItemsCompatibility
9
- } from "./chunk-6BSIQJPW.js";
10
- import {
11
- initialModelForLanguage
12
- } from "./chunk-2IDHEEAN.js";
13
- import "./chunk-6IHWCZ3W.js";
14
- import "./chunk-AL2YEVOT.js";
9
+ } from "./chunk-LTJDUBSQ.js";
15
10
  import "./chunk-XT7X6QCP.js";
16
11
  import {
17
12
  writeNewFileSync
@@ -20,30 +15,20 @@ import {
20
15
  listRegistryItems,
21
16
  loadAllItems,
22
17
  resolveItemWithDependencies
23
- } from "./chunk-DDNS2674.js";
18
+ } from "./chunk-PR7QQBSC.js";
24
19
  import {
25
20
  installItem
26
- } from "./chunk-FDL4HV44.js";
27
- import "./chunk-XVIYZU3D.js";
21
+ } from "./chunk-Q2Y5OZCY.js";
22
+ import "./chunk-K35E45SI.js";
28
23
  import "./chunk-AWDFDFI3.js";
29
24
  import "./chunk-P6LJ4Y32.js";
30
- import {
31
- DEFAULT_MODEL,
32
- hasFFmpeg
33
- } from "./chunk-KVGDFUVO.js";
34
- import "./chunk-BHVFTYSI.js";
35
- import {
36
- findFFmpeg,
37
- findFFprobe,
38
- getFFmpegInstallHint
39
- } from "./chunk-SYUGVPYH.js";
25
+ import "./chunk-GMECXFAN.js";
40
26
  import {
41
27
  trackInitTemplate
42
- } from "./chunk-55RZG5SQ.js";
43
- import "./chunk-3PPO64IB.js";
28
+ } from "./chunk-Y475GD4L.js";
29
+ import "./chunk-LACFOFWX.js";
44
30
  import "./chunk-VWG7OQKU.js";
45
31
  import "./chunk-XBSPQ52S.js";
46
- import "./chunk-AMKC3AXA.js";
47
32
  import {
48
33
  Ee,
49
34
  R,
@@ -55,7 +40,6 @@ import {
55
40
  q,
56
41
  ue
57
42
  } from "./chunk-WMQNIQDJ.js";
58
- import "./chunk-GMECXFAN.js";
59
43
  import {
60
44
  defineCommand,
61
45
  runCommand
@@ -65,12 +49,38 @@ import {
65
49
  failCommand,
66
50
  finishCommand
67
51
  } from "./chunk-PBN6GBJE.js";
68
- import "./chunk-JF5L5SQ6.js";
69
- import "./chunk-JBQJKC23.js";
52
+ import {
53
+ c,
54
+ isColorSupported
55
+ } from "./chunk-ZTZA4UWZ.js";
56
+ import "./chunk-K4WIOZFP.js";
57
+ import "./chunk-XUXGIA7H.js";
58
+ import "./chunk-WERLJGIC.js";
59
+ import "./chunk-ISN5GRYI.js";
60
+ import {
61
+ VERSION
62
+ } from "./chunk-OMBSUO4T.js";
63
+ import {
64
+ initialModelForLanguage
65
+ } from "./chunk-KUTT3JXL.js";
66
+ import "./chunk-P7NTODQE.js";
67
+ import {
68
+ DEFAULT_MODEL,
69
+ hasFFmpeg
70
+ } from "./chunk-CZQLCBWY.js";
71
+ import "./chunk-PO2SDVQA.js";
72
+ import {
73
+ findFFmpeg,
74
+ findFFprobe,
75
+ getFFmpegInstallHint
76
+ } from "./chunk-DUUFDLC4.js";
77
+ import "./chunk-AMKC3AXA.js";
78
+ import "./chunk-VC7JBNPS.js";
79
+ import "./chunk-62RUQJ5J.js";
70
80
  import "./chunk-NE55C6S5.js";
71
81
  import "./chunk-JYVGYKXG.js";
72
- import "./chunk-BAKPN2D2.js";
73
- import "./chunk-Z6FLHIDV.js";
82
+ import "./chunk-AHBYQRGI.js";
83
+ import "./chunk-3WD4JNMU.js";
74
84
  import "./chunk-VC76R6W2.js";
75
85
  import "./chunk-YA62XGXS.js";
76
86
  import {
@@ -85,8 +95,8 @@ import "./chunk-DPVXBVLL.js";
85
95
  import "./chunk-T76PLPD6.js";
86
96
  import "./chunk-FXMKHHPO.js";
87
97
  import "./chunk-RQVDTPGD.js";
88
- import "./chunk-A4Q7W4LV.js";
89
- import "./chunk-BYSBRF24.js";
98
+ import "./chunk-B3XLIBFL.js";
99
+ import "./chunk-XPQSL5VS.js";
90
100
  import "./chunk-TWWSYAKJ.js";
91
101
  import "./chunk-JDB65PPT.js";
92
102
  import "./chunk-IWFLMU2N.js";
@@ -97,23 +107,14 @@ import "./chunk-BSQ7XANM.js";
97
107
  import "./chunk-SDYDNHEE.js";
98
108
  import "./chunk-2PSPARWP.js";
99
109
  import "./chunk-IXLUTE6N.js";
100
- import "./chunk-K4WIOZFP.js";
101
- import "./chunk-XUXGIA7H.js";
102
- import "./chunk-WERLJGIC.js";
103
- import "./chunk-ISN5GRYI.js";
104
- import {
105
- VERSION
106
- } from "./chunk-QTTDKWSM.js";
107
110
  import "./chunk-KNU5COPB.js";
108
111
  import "./chunk-UOFAE5RF.js";
109
112
  import {
110
113
  TRANSCRIPT_FILE
111
114
  } from "./chunk-IR35BCLK.js";
115
+ import "./chunk-HU2SPFNG.js";
116
+ import "./chunk-KGPLIH7B.js";
112
117
  import "./chunk-3GXQPCJC.js";
113
- import {
114
- c,
115
- isColorSupported
116
- } from "./chunk-ZTZA4UWZ.js";
117
118
  import "./chunk-M2WBOQ2Q.js";
118
119
 
119
120
  // src/commands/initMedia.ts
@@ -518,7 +519,7 @@ function patchVideoSrc(dir, media) {
518
519
  }
519
520
  }
520
521
  async function patchTranscript(dir, transcriptPath) {
521
- const { loadTranscript, patchCaptionHtml } = await import("./normalize-U3SL5VG3.js");
522
+ const { loadTranscript, patchCaptionHtml } = await import("./normalize-4UDISLPL.js");
522
523
  const { words } = loadTranscript(transcriptPath);
523
524
  if (words.length === 0) return;
524
525
  patchCaptionHtml(dir, words);
@@ -675,7 +676,7 @@ async function scaffoldProject(destDir, name, templateId, media, tailwind = fals
675
676
  "utf-8"
676
677
  );
677
678
  if (!existsSync2(resolve(destDir, "hyperframes.json"))) {
678
- const { createProjectConfig, DEFAULT_PROJECT_CONFIG } = await import("./projectConfig-SBRMQZGG.js");
679
+ const { createProjectConfig, DEFAULT_PROJECT_CONFIG } = await import("./projectConfig-YXKU3CTB.js");
679
680
  const { normalizeSkillSlug } = await import("./skill-ZHVLH7KX.js");
680
681
  const skill = normalizeSkillSlug(authoringSkill);
681
682
  createProjectConfig(
@@ -696,7 +697,7 @@ async function scaffoldProject(destDir, name, templateId, media, tailwind = fals
696
697
  }
697
698
  }
698
699
  async function keepSkillsCurrent(destDir) {
699
- const { updateSkills } = await import("./skills-JSSAEKUW.js");
700
+ const { updateSkills } = await import("./skills-NEHNSHZK.js");
700
701
  console.log();
701
702
  console.log(c.bold("Checking AI coding skills against GitHub..."));
702
703
  try {
@@ -893,17 +894,17 @@ var init_default = defineCommand({
893
894
  if (audioPath) {
894
895
  sourceFilePath2 = audioPath;
895
896
  copyFileSync(audioPath, resolve(destDir2, basename(audioPath)));
896
- const { getMediaDurationSeconds } = await import("./transcribe-CRAV4FU3.js");
897
+ const { getMediaDurationSeconds } = await import("./transcribe-XWQQCCBG.js");
897
898
  videoDuration2 = getMediaDurationSeconds(audioPath) ?? void 0;
898
899
  console.log(`Audio: ${basename(audioPath)}`);
899
900
  }
900
901
  if (sourceFilePath2 && !skipTranscribe) {
901
902
  try {
902
- const { ensureWhisper, ensureModel } = await import("./manager-5ORDVWJB.js");
903
+ const { ensureWhisper, ensureModel } = await import("./manager-ES2UFT4X.js");
903
904
  await ensureWhisper();
904
905
  await ensureModel(initialTranscriptionModel);
905
906
  console.log("Transcribing...");
906
- const { transcribe: runTranscribe } = await import("./transcribe-CRAV4FU3.js");
907
+ const { transcribe: runTranscribe } = await import("./transcribe-XWQQCCBG.js");
907
908
  const result = await runTranscribe(sourceFilePath2, destDir2, {
908
909
  model: modelFlag,
909
910
  language: languageFlag
@@ -1051,7 +1052,7 @@ var init_default = defineCommand({
1051
1052
  mkdirSync(destDir, { recursive: true });
1052
1053
  sourceFilePath = audioPath;
1053
1054
  copyFileSync(audioPath, resolve(destDir, basename(audioPath)));
1054
- const { getMediaDurationSeconds } = await import("./transcribe-CRAV4FU3.js");
1055
+ const { getMediaDurationSeconds } = await import("./transcribe-XWQQCCBG.js");
1055
1056
  videoDuration = getMediaDurationSeconds(audioPath) ?? void 0;
1056
1057
  R.info(`Audio copied to ${c.accent(basename(audioPath))}`);
1057
1058
  }
@@ -1061,7 +1062,7 @@ var init_default = defineCommand({
1061
1062
  initialValue: true
1062
1063
  });
1063
1064
  if (!q(transcribeChoice) && transcribeChoice) {
1064
- const { findWhisper } = await import("./manager-5ORDVWJB.js");
1065
+ const { findWhisper } = await import("./manager-ES2UFT4X.js");
1065
1066
  const needsInstall = findWhisper() === void 0;
1066
1067
  if (needsInstall) {
1067
1068
  R.info(c.dim("whisper-cpp not found \u2014 installing automatically..."));
@@ -1071,7 +1072,7 @@ var init_default = defineCommand({
1071
1072
  needsInstall ? "Installing whisper-cpp (this may take a moment)..." : "Preparing transcription..."
1072
1073
  );
1073
1074
  try {
1074
- const { ensureWhisper, ensureModel } = await import("./manager-5ORDVWJB.js");
1075
+ const { ensureWhisper, ensureModel } = await import("./manager-ES2UFT4X.js");
1075
1076
  await ensureWhisper({
1076
1077
  onProgress: (msg) => spin2.message(msg)
1077
1078
  });
@@ -1079,7 +1080,7 @@ var init_default = defineCommand({
1079
1080
  onProgress: (msg) => spin2.message(msg)
1080
1081
  });
1081
1082
  spin2.message("Transcribing audio...");
1082
- const { transcribe: runTranscribe } = await import("./transcribe-CRAV4FU3.js");
1083
+ const { transcribe: runTranscribe } = await import("./transcribe-XWQQCCBG.js");
1083
1084
  const transcribeResult = await runTranscribe(sourceFilePath, destDir, {
1084
1085
  model: modelFlag,
1085
1086
  language: languageFlag,
@@ -1161,7 +1162,7 @@ ${c.dim("Use --example blank for offline use.")}`
1161
1162
  }
1162
1163
  R.info("Opening studio preview...");
1163
1164
  try {
1164
- const previewCmd = await import("./preview-ATPVKA6K.js").then((m) => m.default);
1165
+ const previewCmd = await import("./preview-YHXKRXKB.js").then((m) => m.default);
1165
1166
  await runCommand(previewCmd, { rawArgs: [destDir] });
1166
1167
  } catch {
1167
1168
  }
@@ -6,54 +6,61 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  createInspectCommand
9
- } from "./chunk-POKK6XXU.js";
10
- import "./chunk-EGO6Z24R.js";
9
+ } from "./chunk-U7SASZC5.js";
10
+ import "./chunk-K44HCHZN.js";
11
11
  import "./chunk-XUHOIDKG.js";
12
+ import "./chunk-BNYRD7PQ.js";
12
13
  import "./chunk-X7MTZ4T2.js";
13
- import "./chunk-ZVZSFDW3.js";
14
- import "./chunk-AFIATIKS.js";
15
- import "./chunk-SEABQTBP.js";
14
+ import "./chunk-TPIG7ZBX.js";
16
15
  import "./chunk-FH7WODJH.js";
17
- import "./chunk-XOJDBRNF.js";
18
- import "./chunk-3HSWLZ6S.js";
16
+ import "./chunk-4S4VUXW3.js";
17
+ import "./chunk-KQHJKJ3V.js";
19
18
  import "./chunk-WPNE5NEP.js";
20
- import "./chunk-K2FLNJVB.js";
21
- import "./chunk-Z5C4LEAD.js";
22
- import "./chunk-A72OAGNB.js";
19
+ import "./chunk-NKM53WMI.js";
20
+ import "./chunk-2HWB4TCI.js";
23
21
  import "./chunk-FJWEYVEM.js";
24
22
  import "./chunk-ZFN6GQU4.js";
25
- import "./chunk-MOL32UKR.js";
23
+ import "./chunk-KMJLHHBF.js";
26
24
  import "./chunk-AIJS74LG.js";
27
- import "./chunk-EOVYQ3IG.js";
28
- import "./chunk-P6HELLPU.js";
25
+ import "./chunk-SFUBSJFP.js";
26
+ import "./chunk-K2FLNJVB.js";
27
+ import "./chunk-QIJLIULK.js";
29
28
  import "./chunk-442JNXRM.js";
30
- import "./chunk-LE7T4ML7.js";
29
+ import "./chunk-SP6XL3NP.js";
31
30
  import "./chunk-XT7X6QCP.js";
32
31
  import "./chunk-4YYJOFKS.js";
33
32
  import "./chunk-HVW7ABXD.js";
34
- import "./chunk-DDNS2674.js";
35
- import "./chunk-FDL4HV44.js";
36
- import "./chunk-XVIYZU3D.js";
33
+ import "./chunk-PR7QQBSC.js";
34
+ import "./chunk-Q2Y5OZCY.js";
35
+ import "./chunk-K35E45SI.js";
37
36
  import "./chunk-AWDFDFI3.js";
38
37
  import "./chunk-P6LJ4Y32.js";
38
+ import "./chunk-GMECXFAN.js";
39
39
  import "./chunk-374QQGBQ.js";
40
- import "./chunk-55RZG5SQ.js";
41
- import "./chunk-3PPO64IB.js";
40
+ import "./chunk-Y475GD4L.js";
41
+ import "./chunk-LACFOFWX.js";
42
42
  import "./chunk-VWG7OQKU.js";
43
43
  import "./chunk-XBSPQ52S.js";
44
- import "./chunk-AMKC3AXA.js";
45
- import "./chunk-GMECXFAN.js";
46
44
  import "./chunk-S3S4TGEH.js";
47
45
  import "./chunk-54HJ63Q2.js";
48
46
  import "./chunk-PBN6GBJE.js";
47
+ import "./chunk-ZTZA4UWZ.js";
49
48
  import "./chunk-EOOEC32M.js";
50
49
  import "./chunk-TJSTGSAW.js";
51
- import "./chunk-JF5L5SQ6.js";
52
- import "./chunk-JBQJKC23.js";
50
+ import "./chunk-GESJSXFH.js";
51
+ import "./chunk-K4WIOZFP.js";
52
+ import "./chunk-XUXGIA7H.js";
53
+ import "./chunk-WERLJGIC.js";
54
+ import "./chunk-ISN5GRYI.js";
55
+ import "./chunk-OMBSUO4T.js";
56
+ import "./chunk-EOVYQ3IG.js";
57
+ import "./chunk-AMKC3AXA.js";
58
+ import "./chunk-VC7JBNPS.js";
59
+ import "./chunk-62RUQJ5J.js";
53
60
  import "./chunk-NE55C6S5.js";
54
61
  import "./chunk-JYVGYKXG.js";
55
- import "./chunk-BAKPN2D2.js";
56
- import "./chunk-Z6FLHIDV.js";
62
+ import "./chunk-AHBYQRGI.js";
63
+ import "./chunk-3WD4JNMU.js";
57
64
  import "./chunk-VC76R6W2.js";
58
65
  import "./chunk-YA62XGXS.js";
59
66
  import "./chunk-LFNQDTSH.js";
@@ -72,15 +79,8 @@ import "./chunk-BSQ7XANM.js";
72
79
  import "./chunk-SDYDNHEE.js";
73
80
  import "./chunk-2PSPARWP.js";
74
81
  import "./chunk-IXLUTE6N.js";
75
- import "./chunk-3YUFN37G.js";
76
- import "./chunk-K4WIOZFP.js";
77
- import "./chunk-XUXGIA7H.js";
78
- import "./chunk-WERLJGIC.js";
79
- import "./chunk-ISN5GRYI.js";
80
- import "./chunk-QTTDKWSM.js";
81
82
  import "./chunk-KNU5COPB.js";
82
83
  import "./chunk-3GXQPCJC.js";
83
- import "./chunk-ZTZA4UWZ.js";
84
84
  import "./chunk-M2WBOQ2Q.js";
85
85
 
86
86
  // src/commands/inspect.ts
@@ -10,13 +10,13 @@ import {
10
10
  prepareItem,
11
11
  publishItem,
12
12
  recordRewrittenInstall
13
- } from "./chunk-FDL4HV44.js";
14
- import "./chunk-XVIYZU3D.js";
13
+ } from "./chunk-Q2Y5OZCY.js";
14
+ import "./chunk-K35E45SI.js";
15
15
  import "./chunk-AWDFDFI3.js";
16
16
  import "./chunk-P6LJ4Y32.js";
17
17
  import "./chunk-GMECXFAN.js";
18
- import "./chunk-BAKPN2D2.js";
19
- import "./chunk-Z6FLHIDV.js";
18
+ import "./chunk-AHBYQRGI.js";
19
+ import "./chunk-3WD4JNMU.js";
20
20
  import "./chunk-VC76R6W2.js";
21
21
  import "./chunk-YA62XGXS.js";
22
22
  import "./chunk-LFNQDTSH.js";