hyperframes 0.8.172 → 0.8.173

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 (157) hide show
  1. package/dist/{add-TJNZWO7P.js → add-V7VBTFNG.js} +12 -12
  2. package/dist/{animatedGifPrep-K4WFG6KK.js → animatedGifPrep-62S72ZY6.js} +7 -7
  3. package/dist/api.js +13 -13
  4. package/dist/{asset-QN5J2P7H.js → asset-Z4JI2F6V.js} +2 -2
  5. package/dist/{assetCataloger-RLFDI5YD.js → assetCataloger-Q7LE7BCC.js} +7 -7
  6. package/dist/{audio-QJ4C3NMN.js → audio-HIHNLQJ7.js} +13 -13
  7. package/dist/{auth-K7EHUGWE.js → auth-4K6DSZCD.js} +1 -1
  8. package/dist/{autoUpdate-76QXHQRT.js → autoUpdate-DXZDD5VT.js} +2 -2
  9. package/dist/{backgroundChecks-NMYRM5LV.js → backgroundChecks-ODMKKJ4S.js} +3 -3
  10. package/dist/backgroundChecksWorker.js +3 -3
  11. package/dist/{batchRender-RENYERF5.js → batchRender-I4BFJGPA.js} +4 -4
  12. package/dist/{beats-ZOR2HBAR.js → beats-7QCA6GDR.js} +4 -4
  13. package/dist/{benchmark-CY2VFIKL.js → benchmark-IT4WTSMZ.js} +9 -9
  14. package/dist/{browser-NPCKLUT7.js → browser-5VHM72PM.js} +3 -3
  15. package/dist/{bundleWithLocalizedFonts-FKH55KKW.js → bundleWithLocalizedFonts-MKTQCB2Y.js} +2 -2
  16. package/dist/{capture-IC2QJMMQ.js → capture-B5Y45EWD.js} +10 -10
  17. package/dist/{capture-TMSBTUYU.js → capture-CMNNIMIL.js} +2 -2
  18. package/dist/{catalog-N7OCMRPT.js → catalog-AKPJ65GY.js} +12 -12
  19. package/dist/{catch-up-2MGK5I2D.js → catch-up-2SVYRMD3.js} +4 -4
  20. package/dist/{check-NU4GL2WC.js → check-Q7AX6K7O.js} +33 -33
  21. package/dist/{checkBrowser-HRXAL4QD.js → checkBrowser-CPXD5BZY.js} +30 -30
  22. package/dist/{chunk-VQSSP7XG.js → chunk-2BL7BJ22.js} +1 -1
  23. package/dist/{chunk-2VR7HIPZ.js → chunk-2DWYRHJS.js} +2 -2
  24. package/dist/{chunk-257IUNPQ.js → chunk-2QJDC4NT.js} +1 -1
  25. package/dist/{chunk-G47TXPYN.js → chunk-2TNPXPI5.js} +1 -1
  26. package/dist/{chunk-AG2O2USE.js → chunk-2YTOJ447.js} +3 -3
  27. package/dist/{chunk-5B57KZJX.js → chunk-3O45NOL7.js} +1 -1
  28. package/dist/{chunk-4UR2EQSR.js → chunk-45IAFBUP.js} +15 -17
  29. package/dist/{chunk-FYR6GKFN.js → chunk-4D2T6Y5Y.js} +3 -3
  30. package/dist/{chunk-YHECAUDC.js → chunk-4RDDUBOC.js} +6 -6
  31. package/dist/{chunk-NYXHZOPD.js → chunk-5E43335V.js} +1 -1
  32. package/dist/{chunk-MEEETF7G.js → chunk-5JTRGGTX.js} +1 -1
  33. package/dist/{chunk-HN5WVJZB.js → chunk-6HKO6VWS.js} +1 -1
  34. package/dist/{chunk-DQRZWV3B.js → chunk-6JQDH4O6.js} +1 -1
  35. package/dist/{chunk-HZWXDKYB.js → chunk-6RIH2NDU.js} +8 -12
  36. package/dist/chunk-7JDEZNBY.js +3805 -0
  37. package/dist/{chunk-EDUBJPGL.js → chunk-BCPJSBCS.js} +28 -6
  38. package/dist/{chunk-UIDRXHUY.js → chunk-BTPZ74Z3.js} +1 -1
  39. package/dist/{chunk-TV2N4UIJ.js → chunk-BYRHCRU3.js} +1 -1
  40. package/dist/{chunk-UFAKRR5G.js → chunk-BYVBP3U5.js} +12 -12
  41. package/dist/{chunk-QVVANKN2.js → chunk-C4QGOXO2.js} +9 -9
  42. package/dist/{chunk-7DVH2IQQ.js → chunk-CBOYQOLY.js} +1 -1
  43. package/dist/{chunk-MFWQEG2W.js → chunk-CHALU2TF.js} +1 -1
  44. package/dist/{chunk-K6SBDWUV.js → chunk-ETPPGNJB.js} +1 -1
  45. package/dist/{chunk-FQP7TLRF.js → chunk-FDWTZVA6.js} +1 -1
  46. package/dist/{chunk-KRMOJUVL.js → chunk-H5C375DW.js} +5 -5
  47. package/dist/{chunk-NLEDKGZT.js → chunk-HCOL75LA.js} +2 -2
  48. package/dist/{chunk-C2F37AXS.js → chunk-KR5ZHRF2.js} +2 -2
  49. package/dist/{chunk-EKKROA7V.js → chunk-KRWEUM4R.js} +1 -1
  50. package/dist/{chunk-DOV2QOFY.js → chunk-L3RCYYON.js} +2 -2
  51. package/dist/{chunk-CDXC2UQ7.js → chunk-L4SFGSSQ.js} +1 -1
  52. package/dist/{chunk-ZY43P2M7.js → chunk-LN4SZS7W.js} +1 -1
  53. package/dist/{chunk-V5IZAL3H.js → chunk-MWNSVO4P.js} +4 -4
  54. package/dist/{chunk-KRTCHLBA.js → chunk-N7RTLKMM.js} +2 -2
  55. package/dist/{chunk-Z6L3W5KZ.js → chunk-NOMPG5HQ.js} +2 -2
  56. package/dist/{chunk-NZ5HOUJH.js → chunk-O433SZAJ.js} +35 -20
  57. package/dist/{chunk-R73GAMUQ.js → chunk-ODR7V2JL.js} +1 -1
  58. package/dist/{chunk-M235XUHL.js → chunk-OFFNB2SU.js} +3 -3
  59. package/dist/{chunk-CUDHVUIF.js → chunk-PBVUVNWP.js} +1 -1
  60. package/dist/{chunk-R2P2SANE.js → chunk-PCLYCYBK.js} +3 -3
  61. package/dist/{chunk-UNALPZL6.js → chunk-QURKHVV5.js} +1 -1
  62. package/dist/{chunk-3RM2ETQT.js → chunk-QVPOR7WE.js} +6 -1
  63. package/dist/{chunk-KOMXCNZX.js → chunk-ROQBQHBK.js} +1 -1
  64. package/dist/{chunk-BQYQV6JP.js → chunk-SOAXQ7Q7.js} +2 -2
  65. package/dist/{chunk-6K2N6WPO.js → chunk-TNHRCZT3.js} +1 -1
  66. package/dist/{chunk-4N2YVSXH.js → chunk-TWZRU64W.js} +7 -7
  67. package/dist/{chunk-PDFMNU6D.js → chunk-U7EGMXQR.js} +2 -2
  68. package/dist/{chunk-Z5ENX63S.js → chunk-V2D4QZBC.js} +13 -7
  69. package/dist/{chunk-S6JCFZVB.js → chunk-WIAO42MD.js} +2 -2
  70. package/dist/{chunk-XEJUMBIC.js → chunk-X2ALZSKK.js} +3 -3
  71. package/dist/{chunk-FXHGO3NH.js → chunk-XDPXSQJO.js} +1 -1
  72. package/dist/{chunk-QQI7R2QL.js → chunk-XZNKIYIG.js} +1 -1
  73. package/dist/{chunk-YAA3AOBA.js → chunk-YOOW26KG.js} +2 -2
  74. package/dist/{clean-JDODBRVL.js → clean-SBFI3ZKR.js} +13 -13
  75. package/dist/cli.js +53 -53
  76. package/dist/{cloud-YHJZ72XP.js → cloud-IRE4HLEK.js} +4 -4
  77. package/dist/{cloudrun-E5EOHYTG.js → cloudrun-GIHWEBGM.js} +5 -5
  78. package/dist/{compare-VQQXHSE3.js → compare-S6NM2FSV.js} +25 -25
  79. package/dist/{compiler-I4GWSEK3.js → compiler-WCWRB2LZ.js} +4 -4
  80. package/dist/{component-WOSMKPL7.js → component-WDFZQ2HN.js} +3 -3
  81. package/dist/{compositions-WLJE5752.js → compositions-RMUBDPD4.js} +11 -11
  82. package/dist/{delete-PILRKH5C.js → delete-SDNARGJ4.js} +2 -2
  83. package/dist/{dist-SDXOTECD.js → dist-65ELHZOF.js} +3 -3
  84. package/dist/{dist-7TYQROOE.js → dist-FAN2FFAV.js} +2 -2
  85. package/dist/{doctor-FNICQNSA.js → doctor-YPCZILXV.js} +9 -9
  86. package/dist/{events-5WNYSVPY.js → events-INXDJ44V.js} +2 -2
  87. package/dist/{events-YXPWFV5S.js → events-Q2K7SNEZ.js} +3 -3
  88. package/dist/{feedback-KLA5RSSN.js → feedback-FRGRCTIX.js} +7 -7
  89. package/dist/{figma-PQIZI67M.js → figma-C262EFOC.js} +3 -3
  90. package/dist/fontLocalizeCli.js +9 -9
  91. package/dist/{get-OBOWSUA7.js → get-ZIUUGSVI.js} +2 -2
  92. package/dist/{gpuPolicy-HWH4OW6H.js → gpuPolicy-FRLW63IY.js} +7 -7
  93. package/dist/{grade-compare-5IOHWZX6.js → grade-compare-DN342HJC.js} +25 -25
  94. package/dist/{help-K4IK2N36.js → help-XQPBPSBP.js} +1 -1
  95. package/dist/{history-AC5ZUFOX.js → history-PF5FUC6M.js} +6 -6
  96. package/dist/hyperframe-runtime.js +10 -10
  97. package/dist/hyperframe.manifest.json +1 -1
  98. package/dist/hyperframe.runtime.iife.js +10 -10
  99. package/dist/hyperframes-player.global.js +1 -1
  100. package/dist/{info-BD6555FQ.js → info-PC7IKGVB.js} +8 -8
  101. package/dist/{init-KTNJH3QB.js → init-ORZX3PSQ.js} +22 -22
  102. package/dist/{inspect-PF2DWLRP.js → inspect-L5GRL6SP.js} +26 -26
  103. package/dist/{installer-72NGZ5BM.js → installer-KXS557O7.js} +5 -5
  104. package/dist/{keyframes-P3GRO3LL.js → keyframes-EIZDSXUH.js} +6 -6
  105. package/dist/{lambda-XRNX7HLH.js → lambda-U3N7MRD7.js} +6 -6
  106. package/dist/{layout-KN7SX3WH.js → layout-WHAVE2H5.js} +26 -26
  107. package/dist/{lint-TXBEZUA5.js → lint-I7PYIW56.js} +8 -8
  108. package/dist/{lintProject-65YGC4UB.js → lintProject-7IEOAXJY.js} +2 -2
  109. package/dist/{list-4YL3BA2G.js → list-XXQM3WDO.js} +2 -2
  110. package/dist/{login-JUI7PHHJ.js → login-64NUUDYU.js} +4 -4
  111. package/dist/{media-treatment-6DDWZLLE.js → media-treatment-5XIM4A3F.js} +17 -14
  112. package/dist/{models-CLSFYHTD.js → models-WRB3S67Z.js} +10 -10
  113. package/dist/{motionShot-WMJSRE67.js → motionShot-BOFBL73C.js} +16 -16
  114. package/dist/{normalize-audio-YZTHI75G.js → normalize-audio-PP4BSZSU.js} +4 -4
  115. package/dist/{open-VSJ3TPAB.js → open-F4CUWMZF.js} +29 -5
  116. package/dist/{parakeetRunner-YCZT3DG2.js → parakeetRunner-O7QYJ7V7.js} +10 -10
  117. package/dist/{pipeline-RV64A4MZ.js → pipeline-BCHSFFT3.js} +7 -7
  118. package/dist/{play-CF6TJIQL.js → play-PPBR2GJK.js} +18 -18
  119. package/dist/{present-5XKI26BN.js → present-Y7VTCZRZ.js} +14 -14
  120. package/dist/{preview-RORZIRSN.js → preview-53AD4OME.js} +18 -18
  121. package/dist/{producer-K2H3YFX5.js → producer-WBJDNLBF.js} +1 -1
  122. package/dist/{projectConfig-Q2ECBQUG.js → projectConfig-4KUGQ4P6.js} +7 -7
  123. package/dist/{publication-2V3WX4HW.js → publication-OFDIFS4R.js} +3 -3
  124. package/dist/{publish-7COI3FRD.js → publish-RWWTY743.js} +9 -9
  125. package/dist/{remove-background-QSOESZXW.js → remove-background-G7VK3VKP.js} +8 -8
  126. package/dist/{render-3ZLZDN64.js → render-52W63I3Y.js} +9 -9
  127. package/dist/{render-KHDJ2P4J.js → render-6CXZNXXZ.js} +4 -4
  128. package/dist/{render-ACRKADG6.js → render-7PPMS4P6.js} +25 -25
  129. package/dist/{render-batch-OG3JHMDF.js → render-batch-2EJVUVVN.js} +4 -4
  130. package/dist/renderSetupWorker.js +2 -2
  131. package/dist/{resolver-ALLVWDQE.js → resolver-FF5GV6IA.js} +5 -5
  132. package/dist/{sherpa-QY3NGRLC.js → sherpa-QJPI6B5S.js} +9 -9
  133. package/dist/{skills-YIZYEARC.js → skills-H6ZJNOLH.js} +5 -5
  134. package/dist/{skillsUpdateCheck-EXZOQQRS.js → skillsUpdateCheck-4EBGMO2A.js} +3 -3
  135. package/dist/{snapshot-3XMGHMRD.js → snapshot-DZRUBWRH.js} +28 -28
  136. package/dist/{src-RY4V2ZZT.js → src-WD5GOYON.js} +8 -6
  137. package/dist/{src-CGIRN4KP.js → src-ZL7ACIZ3.js} +8 -8
  138. package/dist/{staticProjectServer-4E3ODA5P.js → staticProjectServer-72JF5PPO.js} +14 -14
  139. package/dist/studio/assets/{hyperframes-player-BDj9J28W.js → hyperframes-player-B-wEZiX3.js} +1 -1
  140. package/dist/studio/assets/{index-CVxB8lqm.js → index-Bvkb0Zxy.js} +128 -128
  141. package/dist/studio/assets/{index-DkQKsFxx.css → index-CESvLzz0.css} +1 -1
  142. package/dist/studio/assets/{index--HWjGqrU.js → index-DPugLDRK.js} +1 -1
  143. package/dist/studio/index.html +2 -2
  144. package/dist/{studio-api-LTHBT45F.js → studio-api-BL6CLOA6.js} +8 -8
  145. package/dist/{studioServer-NDRRYB5V.js → studioServer-TRWCZZXP.js} +55 -46
  146. package/dist/{telemetry-QBHPMHPC.js → telemetry-FDSW3ZOZ.js} +3 -3
  147. package/dist/{timeline-J22LXNAI.js → timeline-ZRN336EA.js} +16 -16
  148. package/dist/{tokens-EAPT2GUT.js → tokens-RMLNQHIB.js} +2 -2
  149. package/dist/{transcribe-6LCZK44H.js → transcribe-AEHHCYAL.js} +14 -14
  150. package/dist/{transcribe-L5GHBNR6.js → transcribe-SOODKU6H.js} +8 -8
  151. package/dist/{updateCheck-B3U7O3QS.js → updateCheck-OSPEYRBY.js} +2 -2
  152. package/dist/{upgrade-UMJEDSYD.js → upgrade-AK4S7DMX.js} +2 -2
  153. package/dist/{urlDownloader-SRL6J4NU.js → urlDownloader-FSCMLFG7.js} +6 -6
  154. package/dist/{validate-I3KHH5Z4.js → validate-JJTCKZIV.js} +20 -22
  155. package/dist/{video-HWLZYFUC.js → video-ZDM5CFI2.js} +7 -7
  156. package/package.json +1 -1
  157. package/dist/chunk-Q2E3DQII.js +0 -3803
@@ -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 Dt=n=>n!==null&&Number.isFinite(n)&&n>0;function _e(n){let e=n.clipEndsSeconds.filter(i=>i===null).length;if(Dt(n.authoredDurationSeconds))return{seconds:n.authoredDurationSeconds,source:"authored",pendingClips:e};let t=n.clipEndsSeconds.filter(Dt);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 Ct(n){return n!=null&&n.nodeType===1}function Ge(n){return Ct(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"}),Zr=Object.freeze([V.start,V.duration,V.trackIndex]),Qr=Object.freeze([V.derivedEnd]),eo=Object.freeze([V.derivedEnd,V.legacyTrack]);function je(n){if(n==null||n.trim()==="")return null;let e=Number(n);return Number.isFinite(e)?e:null}var Nt=n=>{let e=je(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 ze(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 ze(Number.isFinite(t)&&t>0?t:e)}function qe(n){let e=je(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=je(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)/ze(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",no=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:"Peak limiter that follows the signal's level. It has no lookahead, so a fast peak or an inter-sample peak can pass the ceiling; use the true-peak limiter for a delivery 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"}],io=new Map(Vt.map(n=>[n.id,n]));var ro=Vt.map(n=>n.id);function si(n){return 10**(n/20)}var Ut=si(12);var Ze="data-automation",fo=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 we=new Map,Ei=64;function Bt(n,e=Ee){let t=`${e}\0${n}`,i=we.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 we.size>Ei&&we.clear(),we.set(t,r),r}var $t=48,jt=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=jt.get(n);return e||(e=Ti(n),jt.set(n,e)),e}function wi(n){return typeof n!="number"&&n.points.length>0}function xi(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(!wi(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:xi(i,t,e)}function ki(n){return n?Bt(n,Te):null}function zt(n,e){return ki(n)??e}var Ao=[{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"}),Eo=Object.freeze([v.start,v.duration,v.trackIndex]),To=Object.freeze([v.derivedEnd]),Ro=Object.freeze([v.derivedEnd,v.legacyTrack]);function D(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 Di(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=D(e);if(t!=null)return{kind:"absolute",value:t};if(Xt.test(e))return{kind:"reference",refId:e,offset:0};let i=Di(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 Ci(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=D(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=D(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=D(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=D(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=D(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=Ci(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 D(n)}function ee(n){return Pt(e=>n.getAttribute(e),M(n)?n.defaultPlaybackRate:1)}function tt(n){return zt(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 xe(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)}var Wi=n=>n.paused?.()===!0?(n.startTime?.()??0)+(n.totalDuration?.()??0)/Math.abs(n.timeScale?.()||1):0;function ne(n){try{if(typeof n?.duration!="function")return null;let e=n.getChildren?.(!1,!1,!0),t=Array.isArray(e)?e:[],i=Math.max(Number(n.duration()),...t.map(Wi));return Number.isFinite(i)?i: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 Gi(n){return tn(n.basis)==="global"?n.authoredStart:n.hostStart+n.authoredStart}function nn(n){return on(n)?Gi({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||(Array.from(i.querySelectorAll("[data-composition-id]")).find(_=>_.getAttribute("data-composition-id")===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},y=l=>{let f=o.get(l);if(f!==void 0)return f;let _=d(l)??m(M(l)?U(l,l.duration):null)??m(xe(l))??g(l);return o.set(l,_),_},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 _=l.hasAttribute("data-composition-id")?l.parentElement?.closest("[data-composition-id]"):l.closest("[data-composition-id]");return _?b(_,f):0},C=(l,f)=>{let _=Q(l.getAttribute("data-start"));if(!_){let Y=A(l);return Y?R(Y,f):f}if(_.kind==="absolute")return S(l,f)+Math.max(0,_.value);let x=s(_.refId);if(!x)return f;let L=R(x,0),fe=y(x)??0,he=Math.min(0,S(l,0));return Math.max(he,L+fe+_.offset)},R=(l,f)=>{let _=r.get(l);if(_!==void 0)return _??f;if(a.has(l))return f;a.add(l);try{let x=C(l,f);return r.set(l,x),x}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=>y(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 _=l.parentElement;_;_=_.parentElement){if(!h(_)||A(_)||rt(_)<=0)continue;let x=R(_,0),L=d(_);f.push({start:x,end:L?x+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 Bi(n){return{width:ye(n.getAttribute("data-width")),height:ye(n.getAttribute("data-height"))}}function $i(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 ji(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 qi(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 Yi(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=Yi({declared:P(e.getAttribute("data-duration")),timeline:()=>null,floors:()=>[$i(n,{mediaStart:t.resolveMediaStartForElement,mediaDuration:it}),ji(e,t)],fallback:0,derived:()=>qi(e,t,{unregisteredLottie:!1}).seconds??0});return{...Bi(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.172/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 Xi(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 Ki(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)})}t??=this._deadlineOutcome(e),t&&(this.stop(),t.kind==="error"?(this._failure={document:this._iframe.contentDocument},this._callbacks.onError(t.message)):this._callbacks.onReady(t.result))},200)}_deadlineOutcome(e){return e<40||this._callbacks.hostOwnsDeadline?.()?null:{kind:"error",message:"Composition timeline not found after 8s"}}_poll(e){let t=this._iframe.contentWindow;if(!t)return null;let i=Ki(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:Xi(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 Dt=n=>n!==null&&Number.isFinite(n)&&n>0;function _e(n){let e=n.clipEndsSeconds.filter(i=>i===null).length;if(Dt(n.authoredDurationSeconds))return{seconds:n.authoredDurationSeconds,source:"authored",pendingClips:e};let t=n.clipEndsSeconds.filter(Dt);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 Ct(n){return n!=null&&n.nodeType===1}function Ge(n){return Ct(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"}),Zr=Object.freeze([V.start,V.duration,V.trackIndex]),Qr=Object.freeze([V.derivedEnd]),eo=Object.freeze([V.derivedEnd,V.legacyTrack]);function je(n){if(n==null||n.trim()==="")return null;let e=Number(n);return Number.isFinite(e)?e:null}var Nt=n=>{let e=je(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 ze(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 ze(Number.isFinite(t)&&t>0?t:e)}function qe(n){let e=je(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=je(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)/ze(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",no=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:"Peak limiter that follows the signal's level. It has no lookahead, so a fast peak or an inter-sample peak can pass the ceiling; use the true-peak limiter for a delivery 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"}],io=new Map(Vt.map(n=>[n.id,n]));var ro=Vt.map(n=>n.id);function si(n){return 10**(n/20)}var Ut=si(12);var Ze="data-automation",fo=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 we=new Map,Ei=64;function Bt(n,e=Ee){let t=`${e}\0${n}`,i=we.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 we.size>Ei&&we.clear(),we.set(t,r),r}var $t=48,jt=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=jt.get(n);return e||(e=Ti(n),jt.set(n,e)),e}function wi(n){return typeof n!="number"&&n.points.length>0}function xi(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(!wi(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:xi(i,t,e)}function ki(n){return n?Bt(n,Te):null}function zt(n,e){return ki(n)??e}var Ao=[{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"}),Eo=Object.freeze([v.start,v.duration,v.trackIndex]),To=Object.freeze([v.derivedEnd]),Ro=Object.freeze([v.derivedEnd,v.legacyTrack]);function D(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 Di(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=D(e);if(t!=null)return{kind:"absolute",value:t};if(Xt.test(e))return{kind:"reference",refId:e,offset:0};let i=Di(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 Ci(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=D(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=D(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=D(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=D(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=D(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=Ci(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 D(n)}function ee(n){return Pt(e=>n.getAttribute(e),M(n)?n.defaultPlaybackRate:1)}function tt(n){return zt(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 xe(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)}var Wi=n=>n.paused?.()===!0?(n.startTime?.()??0)+(n.totalDuration?.()??0)/Math.abs(n.timeScale?.()||1):0;function ne(n){try{if(typeof n?.duration!="function")return null;let e=n.getChildren?.(!1,!1,!0),t=Array.isArray(e)?e:[],i=Math.max(Number(n.duration()),...t.map(Wi));return Number.isFinite(i)?i: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 Gi(n){return tn(n.basis)==="global"?n.authoredStart:n.hostStart+n.authoredStart}function nn(n){return on(n)?Gi({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||(Array.from(i.querySelectorAll("[data-composition-id]")).find(_=>_.getAttribute("data-composition-id")===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},y=l=>{let f=o.get(l);if(f!==void 0)return f;let _=d(l)??m(M(l)?U(l,l.duration):null)??m(xe(l))??g(l);return o.set(l,_),_},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 _=l.hasAttribute("data-composition-id")?l.parentElement?.closest("[data-composition-id]"):l.closest("[data-composition-id]");return _?b(_,f):0},C=(l,f)=>{let _=Q(l.getAttribute("data-start"));if(!_){let Y=A(l);return Y?R(Y,f):f}if(_.kind==="absolute")return S(l,f)+Math.max(0,_.value);let x=s(_.refId);if(!x)return f;let L=R(x,0),fe=y(x)??0,he=Math.min(0,S(l,0));return Math.max(he,L+fe+_.offset)},R=(l,f)=>{let _=r.get(l);if(_!==void 0)return _??f;if(a.has(l))return f;a.add(l);try{let x=C(l,f);return r.set(l,x),x}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=>y(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 _=l.parentElement;_;_=_.parentElement){if(!h(_)||A(_)||rt(_)<=0)continue;let x=R(_,0),L=d(_);f.push({start:x,end:L?x+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 Bi(n){return{width:ye(n.getAttribute("data-width")),height:ye(n.getAttribute("data-height"))}}function $i(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 ji(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 qi(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 Yi(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=Yi({declared:P(e.getAttribute("data-duration")),timeline:()=>null,floors:()=>[$i(n,{mediaStart:t.resolveMediaStartForElement,mediaDuration:it}),ji(e,t)],fallback:0,derived:()=>qi(e,t,{unregisteredLottie:!1}).seconds??0});return{...Bi(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.173/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 Xi(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 Ki(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)})}t??=this._deadlineOutcome(e),t&&(this.stop(),t.kind==="error"?(this._failure={document:this._iframe.contentDocument},this._callbacks.onError(t.message)):this._callbacks.onReady(t.result))},200)}_deadlineOutcome(e){return e<40||this._callbacks.hostOwnsDeadline?.()?null:{kind:"error",message:"Composition timeline not found after 8s"}}_poll(e){let t=this._iframe.contentWindow;if(!t)return null;let i=Ki(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:Xi(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-DQRZWV3B.js";
9
+ } from "./chunk-6JQDH4O6.js";
10
10
  import {
11
11
  formatBytes,
12
12
  label
@@ -14,8 +14,8 @@ import {
14
14
  import {
15
15
  ensureDOMParser
16
16
  } from "./chunk-442JNXRM.js";
17
- import "./chunk-TV2N4UIJ.js";
18
- import "./chunk-K6SBDWUV.js";
17
+ import "./chunk-BYRHCRU3.js";
18
+ import "./chunk-ETPPGNJB.js";
19
19
  import "./chunk-VWG7OQKU.js";
20
20
  import "./chunk-QWQ6GQTI.js";
21
21
  import {
@@ -28,17 +28,17 @@ import {
28
28
  } from "./chunk-ZTZA4UWZ.js";
29
29
  import {
30
30
  withMeta
31
- } from "./chunk-QQI7R2QL.js";
31
+ } from "./chunk-XZNKIYIG.js";
32
32
  import "./chunk-K4WIOZFP.js";
33
33
  import "./chunk-XUXGIA7H.js";
34
34
  import "./chunk-WERLJGIC.js";
35
35
  import "./chunk-ISN5GRYI.js";
36
- import "./chunk-YAA3AOBA.js";
36
+ import "./chunk-YOOW26KG.js";
37
37
  import "./chunk-XT6MXC7A.js";
38
38
  import "./chunk-JYVGYKXG.js";
39
39
  import "./chunk-7KDQAD2W.js";
40
- import "./chunk-PDFMNU6D.js";
41
- import "./chunk-Q2E3DQII.js";
40
+ import "./chunk-U7EGMXQR.js";
41
+ import "./chunk-7JDEZNBY.js";
42
42
  import "./chunk-VC76R6W2.js";
43
43
  import "./chunk-UJKQWGFF.js";
44
44
  import {
@@ -50,7 +50,7 @@ import "./chunk-DPVXBVLL.js";
50
50
  import "./chunk-T76PLPD6.js";
51
51
  import "./chunk-FXMKHHPO.js";
52
52
  import "./chunk-RQVDTPGD.js";
53
- import "./chunk-3RM2ETQT.js";
53
+ import "./chunk-QVPOR7WE.js";
54
54
  import "./chunk-BSQ7XANM.js";
55
55
  import "./chunk-SDYDNHEE.js";
56
56
  import "./chunk-TYXH3EKP.js";
@@ -6,7 +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-5B57KZJX.js";
9
+ } from "./chunk-3O45NOL7.js";
10
10
  import "./chunk-XT7X6QCP.js";
11
11
  import {
12
12
  writeNewFileSync
@@ -15,19 +15,19 @@ import {
15
15
  listRegistryItems,
16
16
  loadAllItems,
17
17
  resolveItemWithDependencies
18
- } from "./chunk-NYXHZOPD.js";
18
+ } from "./chunk-5E43335V.js";
19
19
  import "./chunk-JHOCK3DG.js";
20
20
  import {
21
21
  installItem
22
- } from "./chunk-DOV2QOFY.js";
23
- import "./chunk-UNALPZL6.js";
22
+ } from "./chunk-L3RCYYON.js";
23
+ import "./chunk-QURKHVV5.js";
24
24
  import "./chunk-AWDFDFI3.js";
25
25
  import "./chunk-P6LJ4Y32.js";
26
26
  import "./chunk-GMECXFAN.js";
27
27
  import {
28
28
  trackInitTemplate
29
- } from "./chunk-TV2N4UIJ.js";
30
- import "./chunk-K6SBDWUV.js";
29
+ } from "./chunk-BYRHCRU3.js";
30
+ import "./chunk-ETPPGNJB.js";
31
31
  import "./chunk-VWG7OQKU.js";
32
32
  import "./chunk-QWQ6GQTI.js";
33
33
  import {
@@ -60,11 +60,11 @@ import "./chunk-WERLJGIC.js";
60
60
  import "./chunk-ISN5GRYI.js";
61
61
  import {
62
62
  VERSION
63
- } from "./chunk-YAA3AOBA.js";
63
+ } from "./chunk-YOOW26KG.js";
64
64
  import {
65
65
  initialModelForLanguage
66
- } from "./chunk-ZY43P2M7.js";
67
- import "./chunk-CDXC2UQ7.js";
66
+ } from "./chunk-LN4SZS7W.js";
67
+ import "./chunk-L4SFGSSQ.js";
68
68
  import {
69
69
  DEFAULT_MODEL,
70
70
  hasFFmpeg
@@ -76,13 +76,13 @@ import {
76
76
  getFFmpegInstallHint
77
77
  } from "./chunk-IK3SOMZ4.js";
78
78
  import "./chunk-XT6MXC7A.js";
79
- import "./chunk-NZ5HOUJH.js";
80
- import "./chunk-M235XUHL.js";
79
+ import "./chunk-O433SZAJ.js";
80
+ import "./chunk-OFFNB2SU.js";
81
81
  import "./chunk-KCF6GHJP.js";
82
82
  import "./chunk-JYVGYKXG.js";
83
83
  import "./chunk-7KDQAD2W.js";
84
- import "./chunk-PDFMNU6D.js";
85
- import "./chunk-Q2E3DQII.js";
84
+ import "./chunk-U7EGMXQR.js";
85
+ import "./chunk-7JDEZNBY.js";
86
86
  import "./chunk-VC76R6W2.js";
87
87
  import "./chunk-UJKQWGFF.js";
88
88
  import {
@@ -100,11 +100,11 @@ import "./chunk-RQVDTPGD.js";
100
100
  import "./chunk-22QHO26F.js";
101
101
  import "./chunk-D3ZWBHZP.js";
102
102
  import "./chunk-TWWSYAKJ.js";
103
- import "./chunk-G47TXPYN.js";
103
+ import "./chunk-2TNPXPI5.js";
104
104
  import "./chunk-6BNTGNGD.js";
105
105
  import "./chunk-OYLO6TYK.js";
106
106
  import "./chunk-VAS6HQX3.js";
107
- import "./chunk-3RM2ETQT.js";
107
+ import "./chunk-QVPOR7WE.js";
108
108
  import "./chunk-BSQ7XANM.js";
109
109
  import "./chunk-SDYDNHEE.js";
110
110
  import "./chunk-TYXH3EKP.js";
@@ -678,7 +678,7 @@ async function scaffoldProject(destDir, name, templateId, media, tailwind = fals
678
678
  "utf-8"
679
679
  );
680
680
  if (!existsSync2(resolve(destDir, "hyperframes.json"))) {
681
- const { createProjectConfig, DEFAULT_PROJECT_CONFIG } = await import("./projectConfig-Q2ECBQUG.js");
681
+ const { createProjectConfig, DEFAULT_PROJECT_CONFIG } = await import("./projectConfig-4KUGQ4P6.js");
682
682
  const { normalizeSkillSlug } = await import("./skill-ZHVLH7KX.js");
683
683
  const skill = normalizeSkillSlug(authoringSkill);
684
684
  createProjectConfig(
@@ -699,7 +699,7 @@ async function scaffoldProject(destDir, name, templateId, media, tailwind = fals
699
699
  }
700
700
  }
701
701
  async function keepSkillsCurrent(destDir) {
702
- const { updateSkills } = await import("./skills-YIZYEARC.js");
702
+ const { updateSkills } = await import("./skills-H6ZJNOLH.js");
703
703
  console.log();
704
704
  console.log(c.bold("Checking AI coding skills against GitHub..."));
705
705
  try {
@@ -901,7 +901,7 @@ var init_default = defineCommand({
901
901
  if (audioPath) {
902
902
  sourceFilePath2 = audioPath;
903
903
  copyFileSync(audioPath, resolve(destDir2, basename(audioPath)));
904
- const { getMediaDurationSeconds } = await import("./transcribe-L5GHBNR6.js");
904
+ const { getMediaDurationSeconds } = await import("./transcribe-SOODKU6H.js");
905
905
  videoDuration2 = getMediaDurationSeconds(audioPath) ?? void 0;
906
906
  console.log(`Audio: ${basename(audioPath)}`);
907
907
  }
@@ -911,7 +911,7 @@ var init_default = defineCommand({
911
911
  await ensureWhisper();
912
912
  await ensureModel(initialTranscriptionModel);
913
913
  console.log("Transcribing...");
914
- const { transcribe: runTranscribe } = await import("./transcribe-L5GHBNR6.js");
914
+ const { transcribe: runTranscribe } = await import("./transcribe-SOODKU6H.js");
915
915
  const result = await runTranscribe(sourceFilePath2, destDir2, {
916
916
  model: modelFlag,
917
917
  language: languageFlag
@@ -1059,7 +1059,7 @@ var init_default = defineCommand({
1059
1059
  mkdirSync(destDir, { recursive: true });
1060
1060
  sourceFilePath = audioPath;
1061
1061
  copyFileSync(audioPath, resolve(destDir, basename(audioPath)));
1062
- const { getMediaDurationSeconds } = await import("./transcribe-L5GHBNR6.js");
1062
+ const { getMediaDurationSeconds } = await import("./transcribe-SOODKU6H.js");
1063
1063
  videoDuration = getMediaDurationSeconds(audioPath) ?? void 0;
1064
1064
  R.info(`Audio copied to ${c.accent(basename(audioPath))}`);
1065
1065
  }
@@ -1087,7 +1087,7 @@ var init_default = defineCommand({
1087
1087
  onProgress: (msg) => spin2.message(msg)
1088
1088
  });
1089
1089
  spin2.message("Transcribing audio...");
1090
- const { transcribe: runTranscribe } = await import("./transcribe-L5GHBNR6.js");
1090
+ const { transcribe: runTranscribe } = await import("./transcribe-SOODKU6H.js");
1091
1091
  const transcribeResult = await runTranscribe(sourceFilePath, destDir, {
1092
1092
  model: modelFlag,
1093
1093
  language: languageFlag,
@@ -1169,7 +1169,7 @@ ${c.dim("Use --example blank for offline use.")}`
1169
1169
  }
1170
1170
  R.info("Opening studio preview...");
1171
1171
  try {
1172
- const previewCmd = await import("./preview-RORZIRSN.js").then((m) => m.default);
1172
+ const previewCmd = await import("./preview-53AD4OME.js").then((m) => m.default);
1173
1173
  await runCommand(previewCmd, { rawArgs: [destDir] });
1174
1174
  } catch {
1175
1175
  }
@@ -6,43 +6,43 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  createInspectCommand
9
- } from "./chunk-UFAKRR5G.js";
10
- import "./chunk-HZWXDKYB.js";
11
- import "./chunk-6K2N6WPO.js";
9
+ } from "./chunk-BYVBP3U5.js";
10
+ import "./chunk-6RIH2NDU.js";
11
+ import "./chunk-TNHRCZT3.js";
12
12
  import "./chunk-FH7WODJH.js";
13
- import "./chunk-Z5ENX63S.js";
13
+ import "./chunk-V2D4QZBC.js";
14
14
  import "./chunk-BRHI7EIA.js";
15
- import "./chunk-7DVH2IQQ.js";
16
- import "./chunk-DQRZWV3B.js";
15
+ import "./chunk-CBOYQOLY.js";
16
+ import "./chunk-6JQDH4O6.js";
17
17
  import "./chunk-K2FLNJVB.js";
18
- import "./chunk-AG2O2USE.js";
18
+ import "./chunk-2YTOJ447.js";
19
19
  import "./chunk-X7MTZ4T2.js";
20
- import "./chunk-KRTCHLBA.js";
20
+ import "./chunk-N7RTLKMM.js";
21
21
  import "./chunk-XUHOIDKG.js";
22
- import "./chunk-YHECAUDC.js";
23
- import "./chunk-R2P2SANE.js";
22
+ import "./chunk-4RDDUBOC.js";
23
+ import "./chunk-PCLYCYBK.js";
24
24
  import "./chunk-6JR2XUEE.js";
25
25
  import "./chunk-C6TPGUWD.js";
26
- import "./chunk-FXHGO3NH.js";
26
+ import "./chunk-XDPXSQJO.js";
27
27
  import "./chunk-GMJ3ILLW.js";
28
28
  import "./chunk-FFDC5OWV.js";
29
- import "./chunk-C2F37AXS.js";
29
+ import "./chunk-KR5ZHRF2.js";
30
30
  import "./chunk-442JNXRM.js";
31
31
  import "./chunk-RGHQID2E.js";
32
- import "./chunk-MFWQEG2W.js";
32
+ import "./chunk-CHALU2TF.js";
33
33
  import "./chunk-XT7X6QCP.js";
34
34
  import "./chunk-4YYJOFKS.js";
35
35
  import "./chunk-HVW7ABXD.js";
36
- import "./chunk-NYXHZOPD.js";
36
+ import "./chunk-5E43335V.js";
37
37
  import "./chunk-JHOCK3DG.js";
38
- import "./chunk-DOV2QOFY.js";
39
- import "./chunk-UNALPZL6.js";
38
+ import "./chunk-L3RCYYON.js";
39
+ import "./chunk-QURKHVV5.js";
40
40
  import "./chunk-AWDFDFI3.js";
41
41
  import "./chunk-P6LJ4Y32.js";
42
42
  import "./chunk-GMECXFAN.js";
43
43
  import "./chunk-5CS4T6C6.js";
44
- import "./chunk-TV2N4UIJ.js";
45
- import "./chunk-K6SBDWUV.js";
44
+ import "./chunk-BYRHCRU3.js";
45
+ import "./chunk-ETPPGNJB.js";
46
46
  import "./chunk-VWG7OQKU.js";
47
47
  import "./chunk-QWQ6GQTI.js";
48
48
  import "./chunk-S3S4TGEH.js";
@@ -52,21 +52,21 @@ import "./chunk-ZTZA4UWZ.js";
52
52
  import "./chunk-KLIKCX6Q.js";
53
53
  import "./chunk-EOOEC32M.js";
54
54
  import "./chunk-7FMUTGOH.js";
55
- import "./chunk-QQI7R2QL.js";
55
+ import "./chunk-XZNKIYIG.js";
56
56
  import "./chunk-K4WIOZFP.js";
57
57
  import "./chunk-XUXGIA7H.js";
58
58
  import "./chunk-WERLJGIC.js";
59
59
  import "./chunk-ISN5GRYI.js";
60
- import "./chunk-YAA3AOBA.js";
60
+ import "./chunk-YOOW26KG.js";
61
61
  import "./chunk-EOVYQ3IG.js";
62
62
  import "./chunk-XT6MXC7A.js";
63
- import "./chunk-NZ5HOUJH.js";
64
- import "./chunk-M235XUHL.js";
63
+ import "./chunk-O433SZAJ.js";
64
+ import "./chunk-OFFNB2SU.js";
65
65
  import "./chunk-KCF6GHJP.js";
66
66
  import "./chunk-JYVGYKXG.js";
67
67
  import "./chunk-7KDQAD2W.js";
68
- import "./chunk-PDFMNU6D.js";
69
- import "./chunk-Q2E3DQII.js";
68
+ import "./chunk-U7EGMXQR.js";
69
+ import "./chunk-7JDEZNBY.js";
70
70
  import "./chunk-VC76R6W2.js";
71
71
  import "./chunk-UJKQWGFF.js";
72
72
  import "./chunk-YMS5FOMC.js";
@@ -76,11 +76,11 @@ import "./chunk-T76PLPD6.js";
76
76
  import "./chunk-FXMKHHPO.js";
77
77
  import "./chunk-RQVDTPGD.js";
78
78
  import "./chunk-TWWSYAKJ.js";
79
- import "./chunk-G47TXPYN.js";
79
+ import "./chunk-2TNPXPI5.js";
80
80
  import "./chunk-6BNTGNGD.js";
81
81
  import "./chunk-OYLO6TYK.js";
82
82
  import "./chunk-VAS6HQX3.js";
83
- import "./chunk-3RM2ETQT.js";
83
+ import "./chunk-QVPOR7WE.js";
84
84
  import "./chunk-BSQ7XANM.js";
85
85
  import "./chunk-SDYDNHEE.js";
86
86
  import "./chunk-TYXH3EKP.js";
@@ -10,13 +10,13 @@ import {
10
10
  prepareItem,
11
11
  publishItem,
12
12
  recordRewrittenInstall
13
- } from "./chunk-DOV2QOFY.js";
14
- import "./chunk-UNALPZL6.js";
13
+ } from "./chunk-L3RCYYON.js";
14
+ import "./chunk-QURKHVV5.js";
15
15
  import "./chunk-AWDFDFI3.js";
16
16
  import "./chunk-P6LJ4Y32.js";
17
17
  import "./chunk-GMECXFAN.js";
18
- import "./chunk-PDFMNU6D.js";
19
- import "./chunk-Q2E3DQII.js";
18
+ import "./chunk-U7EGMXQR.js";
19
+ import "./chunk-7JDEZNBY.js";
20
20
  import "./chunk-VC76R6W2.js";
21
21
  import "./chunk-UJKQWGFF.js";
22
22
  import "./chunk-YMS5FOMC.js";
@@ -26,7 +26,7 @@ import "./chunk-T76PLPD6.js";
26
26
  import "./chunk-FXMKHHPO.js";
27
27
  import "./chunk-RQVDTPGD.js";
28
28
  import "./chunk-OYLO6TYK.js";
29
- import "./chunk-3RM2ETQT.js";
29
+ import "./chunk-QVPOR7WE.js";
30
30
  import "./chunk-BSQ7XANM.js";
31
31
  import "./chunk-SDYDNHEE.js";
32
32
  import "./chunk-TYXH3EKP.js";
@@ -6,13 +6,13 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  resolveProject
9
- } from "./chunk-DQRZWV3B.js";
9
+ } from "./chunk-6JQDH4O6.js";
10
10
  import "./chunk-K2FLNJVB.js";
11
11
  import {
12
12
  ensureDOMParser
13
13
  } from "./chunk-442JNXRM.js";
14
- import "./chunk-TV2N4UIJ.js";
15
- import "./chunk-K6SBDWUV.js";
14
+ import "./chunk-BYRHCRU3.js";
15
+ import "./chunk-ETPPGNJB.js";
16
16
  import "./chunk-VWG7OQKU.js";
17
17
  import "./chunk-QWQ6GQTI.js";
18
18
  import {
@@ -25,12 +25,12 @@ import {
25
25
  } from "./chunk-ZTZA4UWZ.js";
26
26
  import {
27
27
  withMeta
28
- } from "./chunk-QQI7R2QL.js";
28
+ } from "./chunk-XZNKIYIG.js";
29
29
  import "./chunk-K4WIOZFP.js";
30
30
  import "./chunk-XUXGIA7H.js";
31
31
  import "./chunk-WERLJGIC.js";
32
32
  import "./chunk-ISN5GRYI.js";
33
- import "./chunk-YAA3AOBA.js";
33
+ import "./chunk-YOOW26KG.js";
34
34
  import "./chunk-XT6MXC7A.js";
35
35
  import "./chunk-JYVGYKXG.js";
36
36
  import "./chunk-7KDQAD2W.js";
@@ -2515,7 +2515,7 @@ function printOnionShotSaved(saved, elementCount) {
2515
2515
  console.log();
2516
2516
  }
2517
2517
  async function runOnionShot(comps, allComps, projectDir, entryFile, args) {
2518
- const { captureMotionPathShot } = await import("./motionShot-WMJSRE67.js");
2518
+ const { captureMotionPathShot } = await import("./motionShot-BOFBL73C.js");
2519
2519
  const requests = collectShotSelectors(args.selector ? allComps : comps);
2520
2520
  const guardError = onionShotGuardError(projectDir, requests, args.ghost ?? false);
2521
2521
  if (guardError) {
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-FE2XTCTM.js";
12
12
  import {
13
13
  defaultCloudFps
14
- } from "./chunk-7DVH2IQQ.js";
14
+ } from "./chunk-CBOYQOLY.js";
15
15
  import {
16
16
  defineCommand
17
17
  } from "./chunk-S3S4TGEH.js";
@@ -24,8 +24,8 @@ import {
24
24
  import {
25
25
  DISTRIBUTED_FPS,
26
26
  isDistributedFps
27
- } from "./chunk-PDFMNU6D.js";
28
- import "./chunk-Q2E3DQII.js";
27
+ } from "./chunk-U7EGMXQR.js";
28
+ import "./chunk-7JDEZNBY.js";
29
29
  import "./chunk-VC76R6W2.js";
30
30
  import "./chunk-UJKQWGFF.js";
31
31
  import "./chunk-YMS5FOMC.js";
@@ -34,7 +34,7 @@ import "./chunk-DPVXBVLL.js";
34
34
  import "./chunk-T76PLPD6.js";
35
35
  import "./chunk-FXMKHHPO.js";
36
36
  import "./chunk-RQVDTPGD.js";
37
- import "./chunk-3RM2ETQT.js";
37
+ import "./chunk-QVPOR7WE.js";
38
38
  import "./chunk-BSQ7XANM.js";
39
39
  import "./chunk-SDYDNHEE.js";
40
40
  import "./chunk-TYXH3EKP.js";
@@ -298,7 +298,7 @@ var lambda_default = defineCommand({
298
298
  );
299
299
  failCommand();
300
300
  }
301
- const { runRender } = await import("./render-KHDJ2P4J.js");
301
+ const { runRender } = await import("./render-6CXZNXXZ.js");
302
302
  const renderResolution = parseOutputResolution(args["output-resolution"]);
303
303
  await runRender({
304
304
  projectDir,
@@ -354,7 +354,7 @@ var lambda_default = defineCommand({
354
354
  );
355
355
  failCommand();
356
356
  }
357
- const { runRenderBatch } = await import("./render-batch-OG3JHMDF.js");
357
+ const { runRenderBatch } = await import("./render-batch-2EJVUVVN.js");
358
358
  const batchResolution = parseOutputResolution(args["output-resolution"]);
359
359
  await runRenderBatch({
360
360
  projectDir,