hyperframes 0.8.141 → 0.8.142

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 (160) hide show
  1. package/dist/{add-KH2CF4FD.js → add-YS2RCWEK.js} +11 -11
  2. package/dist/{animatedGifPrep-QO4BSKR7.js → animatedGifPrep-SAMCDT7T.js} +6 -7
  3. package/dist/{asset-4RDZILVJ.js → asset-BLWC2NWB.js} +2 -2
  4. package/dist/{assetCataloger-WGR4LYYN.js → assetCataloger-FVNBBRP3.js} +2 -2
  5. package/dist/{auth-WYQCOYE5.js → auth-DRZB7OAC.js} +5 -4
  6. package/dist/{autoUpdate-PC5TN3NL.js → autoUpdate-I5I3BOJK.js} +2 -2
  7. package/dist/{backgroundChecks-7M3T44EP.js → backgroundChecks-VR2QHGNY.js} +3 -3
  8. package/dist/backgroundChecksWorker.js +3 -3
  9. package/dist/{batchRender-GOLLOE4V.js → batchRender-4YUHQI6X.js} +3 -3
  10. package/dist/{beats-XJ7WP6QS.js → beats-7OT7ALV3.js} +11 -12
  11. package/dist/{benchmark-HCGFBEZJ.js → benchmark-Q2XQCRTR.js} +8 -8
  12. package/dist/{browser-VQKO2FKG.js → browser-7VAWQQZC.js} +3 -3
  13. package/dist/{bundleWithLocalizedFonts-FH7PHTTX.js → bundleWithLocalizedFonts-DDMLLL2R.js} +2 -2
  14. package/dist/{capture-TFZZSF6F.js → capture-HEJS6M5A.js} +74 -33
  15. package/dist/{capture-XD3P3YQR.js → capture-U7ABPKS5.js} +24 -8
  16. package/dist/{catalog-4S33QWJJ.js → catalog-DVJ3XPDN.js} +11 -11
  17. package/dist/{catch-up-RW7YXXNT.js → catch-up-DF6AVSN2.js} +4 -4
  18. package/dist/{check-XVTRRN4Y.js → check-KXORRWAE.js} +75 -72
  19. package/dist/{checkBrowser-HZXJ2EDU.js → checkBrowser-J7HZJTRH.js} +28 -29
  20. package/dist/{chunk-XTFJOR3K.js → chunk-4SFGME7K.js} +1 -1
  21. package/dist/{chunk-EDYBFSPE.js → chunk-6RAD4BCC.js} +5 -8
  22. package/dist/{chunk-4BB7V6AI.js → chunk-6UM3R7PP.js} +1 -1
  23. package/dist/{chunk-BM5PX3DJ.js → chunk-6UYZB4TY.js} +1 -1
  24. package/dist/{chunk-L3JSAB4L.js → chunk-75JJVANE.js} +2 -2
  25. package/dist/{chunk-IV7EI5E2.js → chunk-7FCDA4RH.js} +1 -1
  26. package/dist/{chunk-HKCNZITN.js → chunk-AM5L5YIA.js} +1 -1
  27. package/dist/{chunk-BRITLL56.js → chunk-B4P5VDFQ.js} +1 -1
  28. package/dist/{chunk-IO7ZIDRP.js → chunk-B6SMSALD.js} +53 -12
  29. package/dist/{chunk-XWVGSEUT.js → chunk-BPZVDBHY.js} +1 -1
  30. package/dist/{chunk-246MOR5U.js → chunk-DKSDVDXG.js} +175 -162
  31. package/dist/{chunk-35RSNI77.js → chunk-DPHJKWP5.js} +2 -2
  32. package/dist/{chunk-W6HTOVHU.js → chunk-DZEVA7DI.js} +2 -2
  33. package/dist/{chunk-AVWEIOEN.js → chunk-EFDXGAAD.js} +1 -1
  34. package/dist/{chunk-3A5AAPMP.js → chunk-FWRNQOLT.js} +1 -1
  35. package/dist/{chunk-GS6FE3IW.js → chunk-FZK35GT4.js} +1 -1
  36. package/dist/{chunk-RPYPW5NN.js → chunk-GYE63V4P.js} +10 -10
  37. package/dist/{chunk-R7UDXKI3.js → chunk-H2X52H2N.js} +3 -3
  38. package/dist/{chunk-3NBKW2QJ.js → chunk-HMUF7FEO.js} +1 -1
  39. package/dist/{chunk-E6SDW5FV.js → chunk-IDX52YJN.js} +5 -5
  40. package/dist/{chunk-OLDDJS3S.js → chunk-IMY4QQTQ.js} +7 -7
  41. package/dist/{chunk-WY5OODN5.js → chunk-IW2CKH6A.js} +3645 -3
  42. package/dist/{chunk-KFH6UD26.js → chunk-IXCTG2WY.js} +3 -3
  43. package/dist/chunk-J4UX3RS3.js +3717 -0
  44. package/dist/{chunk-IYFKBFTW.js → chunk-JLKMWY2T.js} +1 -1
  45. package/dist/{chunk-IKVBTDLO.js → chunk-JOTLPC6S.js} +1 -1
  46. package/dist/{chunk-6IFXWJDX.js → chunk-JU6Y5TTZ.js} +2 -2
  47. package/dist/{chunk-YURXPGAM.js → chunk-KYN364DU.js} +2 -2
  48. package/dist/{chunk-RCFCZT5O.js → chunk-LBKDQKWV.js} +1 -1
  49. package/dist/{chunk-TC2FBZJZ.js → chunk-LJAU4TPS.js} +1 -1
  50. package/dist/{chunk-34TXESM7.js → chunk-LQASVU3I.js} +3 -3
  51. package/dist/{chunk-NORZWWLK.js → chunk-LTGGTEMA.js} +2 -2
  52. package/dist/{chunk-K2GOFLTX.js → chunk-MVTUV4TP.js} +2 -2
  53. package/dist/{chunk-A7YQNIQT.js → chunk-OKCR3JTO.js} +104 -4
  54. package/dist/{chunk-O3SKIXQK.js → chunk-OSUKETIH.js} +1 -1
  55. package/dist/chunk-P36MALQF.js +15 -0
  56. package/dist/{chunk-P6E4HFFU.js → chunk-QGRFOOLE.js} +8 -8
  57. package/dist/{chunk-Q65ZQFF2.js → chunk-QXPCARFE.js} +1 -1
  58. package/dist/{chunk-E4BSCXMU.js → chunk-R2JEKLDZ.js} +1 -1
  59. package/dist/{chunk-EKA4ZZBI.js → chunk-TY6XOHEM.js} +1 -1
  60. package/dist/{chunk-INI3TM6I.js → chunk-WGVOWWVK.js} +2 -2
  61. package/dist/{chunk-XDSOIJC3.js → chunk-WSGY5CDQ.js} +5 -5
  62. package/dist/{chunk-J5IPIQU2.js → chunk-WTMUCJ6Z.js} +1 -1
  63. package/dist/{chunk-7XTZVLE6.js → chunk-XGMNQQTJ.js} +1 -1
  64. package/dist/{chunk-N77KD7ZZ.js → chunk-XTLBLWOV.js} +1 -1
  65. package/dist/{chunk-6E6CM7WS.js → chunk-YFT3BL7N.js} +1 -1
  66. package/dist/{chunk-6Q6FR4KH.js → chunk-YHRZQJXH.js} +43 -29
  67. package/dist/{clean-L2E4VD57.js → clean-KTHTV5G5.js} +12 -13
  68. package/dist/cli.js +52 -52
  69. package/dist/{cloud-IDUQRYLO.js → cloud-ARSZWALC.js} +4 -4
  70. package/dist/{cloudrun-R3JXWXGG.js → cloudrun-NM7RXOCL.js} +3 -3
  71. package/dist/commands/layout-audit.browser.js +20 -20
  72. package/dist/{compare-VYBWSP3Y.js → compare-CY4UO3RW.js} +23 -24
  73. package/dist/{compiler-ACHWOU5N.js → compiler-VTH2D3ID.js} +3 -4
  74. package/dist/{component-PYYV2V3F.js → component-FRUIAXIR.js} +3 -3
  75. package/dist/{compositions-B5GQSXH7.js → compositions-CUSY6ZYY.js} +10 -11
  76. package/dist/{delete-EAX2U3WI.js → delete-KT3VHP4L.js} +5 -5
  77. package/dist/{dist-ROUDWGLO.js → dist-2GC6XKRQ.js} +2 -2
  78. package/dist/{dist-NZSQCYOF.js → dist-7SZU7MA7.js} +1 -2
  79. package/dist/{doctor-PJX7MLFG.js → doctor-4ROTBL5U.js} +8 -9
  80. package/dist/{events-SBC54MHO.js → events-Q5PXT5UC.js} +2 -2
  81. package/dist/{events-YFFXKAQQ.js → events-QJDVMKSR.js} +3 -3
  82. package/dist/{feedback-UETLWREV.js → feedback-PQ7TWESA.js} +10 -10
  83. package/dist/{figma-QDSJPIRW.js → figma-JN5DDBDS.js} +3 -3
  84. package/dist/fontLocalizeCli.js +8 -9
  85. package/dist/{get-B5TS6C7H.js → get-KT6OTERO.js} +5 -5
  86. package/dist/{gpuPolicy-LYOVBAJP.js → gpuPolicy-LCBWVGEH.js} +6 -7
  87. package/dist/{grade-compare-LBIHMAUN.js → grade-compare-VS3RP73G.js} +23 -24
  88. package/dist/{help-XBP6A6LT.js → help-AD6FIZIO.js} +1 -1
  89. package/dist/{history-2S42ZXKL.js → history-ZRWYRY7R.js} +5 -5
  90. package/dist/hyperframe-runtime.js +2 -2
  91. package/dist/hyperframe.manifest.json +1 -1
  92. package/dist/hyperframe.runtime.iife.js +2 -2
  93. package/dist/hyperframes-player.global.js +1 -1
  94. package/dist/{info-I2VDAWT7.js → info-WBBQA2AX.js} +7 -7
  95. package/dist/{init-BGHSDODI.js → init-A2XBDFGF.js} +21 -22
  96. package/dist/{inspect-MZK5B5RP.js → inspect-CLTZHA5O.js} +24 -25
  97. package/dist/{installer-LL4QAKFW.js → installer-WQDRVXH4.js} +4 -4
  98. package/dist/{keyframes-2EBF7OSS.js → keyframes-3FYOK6H6.js} +6 -6
  99. package/dist/{lambda-XKFPAOFE.js → lambda-Y2PA2BGS.js} +4 -4
  100. package/dist/{layout-TP5ERKEF.js → layout-4KP5O7IJ.js} +24 -25
  101. package/dist/{lint-FQ6CEI7E.js → lint-V4GRFHOJ.js} +7 -8
  102. package/dist/{lintProject-LM3XZRPZ.js → lintProject-RG2KGAXB.js} +1 -2
  103. package/dist/{list-FRNUJXZ3.js → list-OQ4VED6E.js} +5 -5
  104. package/dist/{login-C25QU3BQ.js → login-W47NKN5S.js} +20 -24
  105. package/dist/{logout-GJXZQKOA.js → logout-B4KS4A7S.js} +6 -6
  106. package/dist/{media-treatment-DCANGWSV.js → media-treatment-HJYL3EME.js} +43 -24
  107. package/dist/{models-GOD6ARB3.js → models-DYBAD2GQ.js} +7 -8
  108. package/dist/{motionShot-FSKETANX.js → motionShot-7NE2YBB3.js} +12 -13
  109. package/dist/{normalize-audio-C2IM7OID.js → normalize-audio-INKCLMS2.js} +4 -4
  110. package/dist/{open-VVISXIII.js → open-TYC5THVY.js} +4 -4
  111. package/dist/{pipeline-7YHZPYIS.js → pipeline-EVKEPQEW.js} +6 -7
  112. package/dist/{play-DSELK7G3.js → play-QMZEM6X3.js} +17 -18
  113. package/dist/{present-N72YFDKP.js → present-Y7IK3C4W.js} +13 -14
  114. package/dist/{preview-XTYN4NJ2.js → preview-5OQRYE6A.js} +16 -17
  115. package/dist/{producer-NDCU3MHK.js → producer-Q6G6JU7B.js} +1 -1
  116. package/dist/{projectConfig-MH4QU4AC.js → projectConfig-RJN3DKDB.js} +6 -6
  117. package/dist/{publication-KUSHI5MG.js → publication-QCPGGN3U.js} +2 -2
  118. package/dist/{publish-3XEEFWMF.js → publish-VZLFIGYY.js} +15 -15
  119. package/dist/{refresh-MFITBIKV.js → refresh-PVHBEABE.js} +2 -2
  120. package/dist/{remove-background-2QKJ7XOD.js → remove-background-TKOEHBA5.js} +7 -8
  121. package/dist/{render-S73DW4KK.js → render-KIIIF6PS.js} +13 -13
  122. package/dist/{render-2DVYTVLQ.js → render-X3NFNVEQ.js} +19 -20
  123. package/dist/{render-75E342ZU.js → render-XTXE5CRU.js} +3 -3
  124. package/dist/{render-batch-YURBS54Q.js → render-batch-M55YZLZ5.js} +3 -3
  125. package/dist/{renderCancellation-373ASJTO.js → renderCancellation-X5BEHAZU.js} +6 -7
  126. package/dist/renderSetupWorker.js +1 -2
  127. package/dist/{resolver-FE3GBZ4T.js → resolver-GAMXRA42.js} +4 -4
  128. package/dist/{screenshotCapture-ECBTLCU6.js → screenshotCapture-TEUIWXWN.js} +53 -33
  129. package/dist/{sherpa-B2D3AGP6.js → sherpa-ZYTNFHD5.js} +7 -8
  130. package/dist/skills/hyperframes-cli/references/cloud.md +1 -1
  131. package/dist/skills/media-use/references/grading.md +4 -2
  132. package/dist/{skills-ICJ22CZZ.js → skills-CZHVAD3J.js} +5 -5
  133. package/dist/{skillsUpdateCheck-GXZN56I5.js → skillsUpdateCheck-6WLLX53A.js} +3 -3
  134. package/dist/{snapshot-XHKOAWF4.js → snapshot-K7BTJPYQ.js} +24 -25
  135. package/dist/{src-I7UC3JTL.js → src-3I3RH3V5.js} +5 -6
  136. package/dist/{src-74PFDTDX.js → src-YUW26JU5.js} +7 -8
  137. package/dist/{staticProjectServer-2DGKD6TF.js → staticProjectServer-IKCSGN2B.js} +13 -14
  138. package/dist/{status-JA6SKQVH.js → status-LXPGSSKY.js} +6 -4
  139. package/dist/studio/assets/{hyperframes-player-5Vx2AiUz.js → hyperframes-player-sAsRuV73.js} +1 -1
  140. package/dist/studio/assets/{index-C0thd4eM.js → index-B-wffzRH.js} +126 -126
  141. package/dist/studio/assets/{index-BAnh7cSQ.js → index-D3Vij9t1.js} +1 -1
  142. package/dist/studio/assets/{index-P8fgj_Xa.js → index-D5q2_7Gw.js} +1 -1
  143. package/dist/studio/index.html +1 -1
  144. package/dist/studio/index.js +26 -15
  145. package/dist/studio/index.js.map +1 -1
  146. package/dist/{studio-api-PROBO7JG.js → studio-api-SQ3NXFSM.js} +7 -8
  147. package/dist/{studioServer-ID6UV2NE.js → studioServer-VVEO7XCH.js} +35 -36
  148. package/dist/{telemetry-65LFHIWH.js → telemetry-FQDKR5XA.js} +3 -3
  149. package/dist/{timeline-6UV3JJXD.js → timeline-N6ZASFNE.js} +13 -14
  150. package/dist/{tokens-HIL4TZXI.js → tokens-2OIIBBCW.js} +2 -2
  151. package/dist/{transcribe-TIO6W3EQ.js → transcribe-4F6MK73N.js} +7 -8
  152. package/dist/{transcribe-V7F6QDSN.js → transcribe-7YTUCXDX.js} +6 -6
  153. package/dist/{updateCheck-GZELANMA.js → updateCheck-AZ2COZFR.js} +2 -2
  154. package/dist/{upgrade-BX3KDDZJ.js → upgrade-QAJEYB4X.js} +2 -2
  155. package/dist/{urlDownloader-R76OHFIE.js → urlDownloader-LSMFEO3R.js} +5 -6
  156. package/dist/{validate-7UX4I443.js → validate-GW5MDL36.js} +15 -16
  157. package/dist/{video-RVGYEFQU.js → video-PRNOKUK3.js} +6 -7
  158. package/package.json +1 -1
  159. package/dist/chunk-24OWOBQH.js +0 -3656
  160. package/dist/chunk-SYKKFAUW.js +0 -3711
@@ -1,4 +1,4 @@
1
- "use strict";var HyperframesPlayer=(()=>{var Ne=Object.defineProperty;var jn=Object.getOwnPropertyDescriptor;var qn=Object.getOwnPropertyNames;var Yn=Object.prototype.hasOwnProperty;var Xn=(n,e)=>{for(var t in e)Ne(n,t,{get:e[t],enumerable:!0})},Kn=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of qn(e))!Yn.call(n,r)&&r!==t&&Ne(n,r,{get:()=>e[r],enumerable:!(i=jn(e,r))||i.enumerable});return n};var Jn=n=>Kn(Ne({},"__esModule",{value:!0}),n);var Hr={};Xn(Hr,{HyperframesPlayer:()=>De,SPEED_PRESETS:()=>Ze,formatSpeed:()=>Q,formatTime:()=>Se});var wt=n=>n!==null&&Number.isFinite(n)&&n>0;function le(n){let e=n.clipEndsSeconds.filter(i=>i===null).length;if(wt(n.authoredDurationSeconds))return{seconds:n.authoredDurationSeconds,source:"authored",pendingClips:e};let t=n.clipEndsSeconds.filter(wt);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 Qn="http://www.w3.org/1999/xhtml";function Mt(n){return n!=null&&n.nodeType===1}function Pe(n){return Mt(n)&&n.namespaceURI===Qn}function Le(n,e){return Pe(n)&&n.localName===e}function Zn(n){return Le(n,"video")}function ei(n){return Le(n,"audio")}function k(n){return Zn(n)||ei(n)}function Oe(n){return Le(n,"img")}function de(n){if(n==null||n.trim()==="")return null;let e=Number.parseInt(n,10);return Number.isFinite(e)&&e>0?e:null}function ce(n=document){let e=n.querySelector('[data-composition-id][data-root="true"]');return Pe(e)?e:n.querySelector("[data-composition-id]")}var O=Object.freeze({start:"data-start",duration:"data-duration",trackIndex:"data-track-index",derivedEnd:"data-end",legacyTrack:"data-layer"}),jr=Object.freeze([O.start,O.duration,O.trackIndex]),qr=Object.freeze([O.derivedEnd]),Yr=Object.freeze([O.derivedEnd,O.legacyTrack]);function Fe(n){if(n==null||n.trim()==="")return null;let e=Number(n);return Number.isFinite(e)?e:null}var kt=n=>{let e=Fe(n);return e!==null&&e>=0?e:null};function It(n){return kt(n("data-playback-start"))??kt(n("data-media-start"))??0}var $=.1,z=10;function Ve(n){return Number.isFinite(n)&&n>0?Math.max($,Math.min(z,n)):1}function Ct(n,e=1){let t=Number.parseFloat(n("data-playback-rate")??"");return Ve(Number.isFinite(t)&&t>0?t:e)}function Ue(n){let e=Fe(n("data-duration"));return e!==null&&e>0?e:null}function Dt(n,e){let t=Ue(n);if(t!==null)return t;let i=Fe(n("data-end"));return i!==null?i-e:null}var ti=3;function He(n,e,t){return Number.isFinite(n)?Math.max(0,n-e)/Ve(t):null}function We(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:ti,source:"default"};if(i===null)return{seconds:null,source:"pending",reason:"source duration not yet probed"};let a=He(i,r,o);return a===null?{seconds:null,source:"pending",reason:"source reported a non-finite duration"}:{seconds:a,source:"media"}}var Pt="data-fx-chain",Kr=Pt.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}),Ge=(n=.707,e="Bandwidth \u2014 higher is narrower.")=>({kind:"number",key:"q",label:"Q",unit:"",min:.1,max:20,step:.01,default:n,scale:"log",automatable:!0,hint:e}),me=(n=-40,e=40,t=0)=>({kind:"number",key:"gain",label:"Gain",unit:"dB",min:n,max:e,step:.1,default:t,automatable:!0}),Nt={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."},Lt=[{id:"gain",label:"Gain",group:"dynamics",description:"Raise or lower the whole signal. Automate it to duck under something else.",params:[me(-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),me(-40,40,0),Ge(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),me(-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),me(-40,40,0)],web:"biquad-highshelf"},{id:"highpass",label:"High-pass",group:"filter",description:"Remove low frequencies \u2014 the usual fix for rumble on a voice.",params:[j("frequency","Cutoff",300,20,2e4),Ge(.707),Nt],web:"biquad-highpass"},{id:"lowpass",label:"Low-pass",group:"filter",description:"Remove high frequencies \u2014 darkens or muffles a track.",params:[j("frequency","Cutoff",8e3,100,2e4),Ge(.707),Nt],web:"biquad-lowpass"},{id:"compressor",label:"Compressor",group:"dynamics",description:"Pull loud parts down so the quiet ones can come up.",params:[{kind:"number",key:"threshold",label:"Threshold",unit:"dB",min:-60,max:0,step:.5,default:-24,hint:"Level above which the compressor starts working."},{kind:"number",key:"ratio",label:"Ratio",unit:":1",min:1,max:20,step:.1,default:4},{kind:"number",key:"attack",label:"Attack",unit:"ms",min:.01,max:2e3,step:.1,default:20,scale:"log"},{kind:"number",key:"release",label:"Release",unit:"ms",min:.01,max:9e3,step:1,default:250,scale:"log"},{kind:"number",key:"knee",label:"Knee",unit:"",min:1,max:8,step:.01,default:2.83,hint:"1 is a hard corner; higher eases into it."},{kind:"number",key:"makeup",label:"Makeup",unit:"dB",min:0,max:36,step:.1,default:0},{kind:"number",key:"mix",label:"Mix",unit:"",min:0,max:1,step:.01,default:1,hint:"Below 1 blends the dry signal back in."}],web:"worklet-compressor"},{id:"limiter",label:"Limiter",group:"dynamics",description:"Hard ceiling \u2014 nothing gets past the limit.",params:[{kind:"number",key:"limit",label:"Ceiling",unit:"dB",min:-24,max:0,step:.1,default:-1},{kind:"number",key:"attack",label:"Attack",unit:"ms",min:.1,max:80,step:.1,default:5},{kind:"number",key:"release",label:"Release",unit:"ms",min:1,max:8e3,step:1,default:50,scale:"log"},{kind:"number",key:"level_out",label:"Output",unit:"dB",min:-24,max:24,step:.1,default:0}],web:"worklet-limiter"},{id:"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 \u2014 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"}],Jr=new Map(Lt.map(n=>[n.id,n]));var Qr=Lt.map(n=>n.id);function ni(n){return 10**(n/20)}var Ot=ni(12);var $e="data-automation",so=$e.slice(5),Be=1,ii=512,I=class extends Error{constructor(e){super(e),this.name="AudioAutomationError"}},pe="volume",fe="rate";function Ft(n){if(n===pe)return{kind:"volume"};if(n===fe)return{kind:"rate"};let e=n.split(".");if(e.length===3&&e[0]==="fx"&&e[1]===ri){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 ri="preset";var oi={min:0,max:Ot,step:.01,unit:"",label:"Volume",scale:"linear",default:1},ai={min:$,max:z,step:.05,unit:"x",label:"Speed",scale:"log",default:1};function q(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 si(n){let e=q(n);return e===null||e===0?0:Math.min(1,Math.max(-1,e))}function Vt(n,e){let t=q(n),i=q(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 ui(n){let e=si(n?.curve),t=Vt(n?.viaX,n?.viaY);return{...e?{curve:e}:{},...t?{viaX:t.x,viaY:t.y}:{}}}function li(n,e){let t=q(n?.t),i=q(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,...ui(n)}}function di(n,e){let t=n.map(r=>li(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,ii)}function ci(n){let e=[];for(let t of n.lanes){if(!Ft(t.target))continue;let i=t.target===pe?oi:t.target===fe?ai:null,r=di(t.points??[],i);r.length>0&&e.push({target:t.target,points:r})}return{version:Be,lanes:e}}function Ut(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!==Be)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"||!Ft(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 ci({version:Be,lanes:i})}function mi(n,e){return e?Math.pow(n,Math.pow(2,2*e)):n}function pi(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 fi(n,e,t){let{cx:i,cy:r,w:o}=pi(e,t),a=2-2*o,s=n*a-1+2*o*i,u=-n*a-2*o*i,d=hi(s,u,n),l=1-d,b=l*l+2*o*d*l+d*d;return b>0?(2*o*r*d*l+d*d)/b:n}function hi(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 bi(n,e){let t=Vt(e.viaX,e.viaY);return t?fi(Math.min(1,Math.max(0,n)),t.x,t.y):mi(n,e.curve)}function gi(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 he(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 b=a+s>>1;i[b].t<=e?a=b:s=b}let u=i[a],d=i[s],l=d.t-u.t;return l<=0?d.v:gi(u.v,d.v,bi((e-u.t)/l,u),t)}var be=new Map,_i=64;function Ht(n,e=pe){let t=`${e}\0${n}`,i=be.get(t);if(i!==void 0)return i;let r=null;try{r=Ut(n).lanes.find(o=>o.target===e)??null}catch{r=null}return be.size>_i&&be.clear(),be.set(t,r),r}var Wt=48,Gt=new WeakMap;function yi(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 l=he(n,d,"log");r.push(u),o.push(o[o.length-1]+(l+he(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,l=e[u].t;if(!(l<=0))for(let b=1;b<=Wt;b+=1)a(Math.max(d,0)+(l-d)*b/Wt)}return{ts:Float64Array.from(r),ss:Float64Array.from(o),firstRate:t,lastRate:i}}function vi(n){let e=Gt.get(n);return e||(e=yi(n),Gt.set(n,e)),e}function Ai(n){return typeof n!="number"&&n.points.length>0}function Si(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 ze(n,e){if(typeof n=="number")return e/n;if(!Ai(n))return e;let{ts:t,ss:i,firstRate:r,lastRate:o}=vi(n),a=t.length-1;return e<=0?e/r:e>=i[a]?t[a]+(e-i[a])/o:Si(i,t,e)}function Ei(n){return n?Ht(n,fe):null}function Bt(n,e){return Ei(n)??e}var ho=[{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 _=Object.freeze({start:"data-start",duration:"data-duration",trackIndex:"data-track-index",derivedEnd:"data-end",legacyTrack:"data-layer"}),go=Object.freeze([_.start,_.duration,_.trackIndex]),_o=Object.freeze([_.derivedEnd]),yo=Object.freeze([_.derivedEnd,_.legacyTrack]);function C(n){if(n==null||n.trim()==="")return null;let e=Number(n);return Number.isFinite(e)?e:null}var jt=/^[A-Za-z0-9_.:-]+$/;function qt(n,e){let t=n.charCodeAt(e);return t>=48&&t<=57}function $t(n,e){let t=e;for(;t>=0&&qt(n,t);)t--;return t}function Ti(n,e){let t=e;for(;t>=0&&(n[t]??"").trim()==="";)t--;return t}function Ri(n){let e=n.length-1;if(!qt(n,e))return null;let t=$t(n,e);return n[t]==="."&&(t=$t(n,t-1)),t+1}function xi(n){let e=Ri(n);if(e==null)return null;let t=Ti(n,e-1),i=n[t];if(i!=="+"&&i!=="-")return null;let r=n.slice(0,t).trim();if(!jt.test(r))return null;let o=Number(n.slice(e));return Number.isFinite(o)?{refId:r,operator:i,magnitude:o}:null}function ge(n){let e=(n??"").trim();if(!e)return null;let t=C(e);if(t!=null)return{kind:"absolute",value:t};if(jt.test(e))return{kind:"reference",refId:e,offset:0};let i=xi(e);return i?{kind:"reference",refId:i.refId,offset:i.operator==="-"?-i.magnitude:i.magnitude}:null}function x(n,e,t,i){n.push({code:e,attribute:t,value:i})}function wi(n,e,t,i){if(e==null||e.trim()==="")return t.defaultStart===void 0?0:t.defaultStart;if(!n)return x(i,"invalid-start",_.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)?(x(i,"unresolved-start-reference",_.start,e),null):Math.max(0,r+n.offset)}var Mi=1e-9;function ki(n,e){return Math.abs(n-e)<=Mi}function Ii(n,e,t){let i=C(n);if(i==null){x(t,"deprecated-end",_.derivedEnd,n),x(t,"invalid-end",_.derivedEnd,n);return}if(e==null){x(t,"deprecated-end",_.derivedEnd,n);return}ki(i,e)||(x(t,"deprecated-end",_.derivedEnd,n),x(t,"conflicting-end",_.derivedEnd,n))}function Ci(n,e,t){let i=C(n);return i==null||i<0?(x(t,"invalid-duration",_.duration,n),{duration:null,end:null,durationSource:"invalid"}):{duration:i,end:e==null?null:e+i,durationSource:"duration"}}function Di(n,e,t){x(t,"deprecated-end",_.derivedEnd,n);let i=C(n);return i==null?(x(t,"invalid-end",_.derivedEnd,n),{duration:null,end:null,durationSource:"invalid"}):e==null?{duration:null,end:i,durationSource:"legacy-end"}:i<e?(x(t,"end-before-start",_.derivedEnd,n),{duration:null,end:null,durationSource:"invalid"}):{duration:i-e,end:i,durationSource:"legacy-end"}}function Ni(n,e,t){let i=n.getAttribute(_.duration),r=n.getAttribute(_.derivedEnd);if(i==null)return r==null?{duration:null,end:null,durationSource:"missing"}:Di(r,e,t);let o=Ci(i,e,t);return r!=null&&Ii(r,o.end,t),o}function zt(n,e,t,i){let r=C(n);return r==null||!Number.isInteger(r)?(x(i,"invalid-track-index",e,n),{trackIndex:0,trackSource:"invalid"}):{trackIndex:r,trackSource:t}}function Pi(n,e){let t=n.getAttribute(_.trackIndex),i=n.getAttribute(_.legacyTrack);if(t==null&&i==null)return{trackIndex:0,trackSource:"default"};if(t==null&&i!=null)return x(e,"deprecated-layer",_.legacyTrack,i),zt(i,_.legacyTrack,"legacy-layer",e);let r=zt(t??"",_.trackIndex,"track-index",e);if(i==null)return r;x(e,"deprecated-layer",_.legacyTrack,i);let o=C(i);return o!=null&&o!==r.trackIndex&&x(e,"conflicting-layer",_.legacyTrack,i),r}function je(n,e={}){let t=[],i=n.getAttribute(_.start),r=ge(i),o=wi(r,i,e,t),a=Ni(n,o,t),s=Pi(n,t);return{startExpression:r,start:o,...a,...s,diagnostics:t}}function N(n){return C(n)}function Y(n){return Ct(e=>n.getAttribute(e),k(n)?n.defaultPlaybackRate:1)}function qe(n){return Bt(n.getAttribute("data-automation"),Y(n))}function Ye(n){return It(e=>n.getAttribute(e))}function F(n,e){return Li(e,Ye(n),qe(n))}function Xe(n){let e=We({tag:"video",authoredDurationSeconds:Ue(t=>n.getAttribute(t)),sourceDurationSeconds:Number.isFinite(n.duration)?n.duration:null,mediaStartSeconds:Ye(n),playbackRate:Y(n)});return e.source==="media"?F(n,n.duration):e.seconds}function _e(n,e=0){return!Oe(n)||!n.hasAttribute("data-start")&&!n.hasAttribute("data-track-index")?null:We({tag:"img",authoredDurationSeconds:Dt(t=>n.getAttribute(t),e),sourceDurationSeconds:null,mediaStartSeconds:0,playbackRate:1}).seconds}function Li(n,e,t){return typeof t=="number"?He(n,e,t):Number.isFinite(n)?ze(t,Math.max(0,n-e)):null}function Yt(){return globalThis}function X(n,e){if(typeof window>"u")return;let t=Yt(),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 Xt="data-hf-authored-duration",Kt="data-hf-authored-end";function K(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 ye(n){let e=K(n.start);if(e==null)return null;let t=Math.max(0,e),i=K(n.duration),r=K(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=K(n.end),s=K(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 Jt="data-hf-media-start-basis";function Qt(n){return n?.trim().toLowerCase()==="global"?"global":"local"}function Oi(n){return Qt(n.basis)==="global"?n.authoredStart:n.hostStart+n.authoredStart}function Zt(n){return tn(n)?Oi({authoredStart:n.authoredStart,hostStart:n.hostStart,basis:n.basis}):n.ordinaryStart()}function en(n){return tn(n)&&Qt(n.basis)==="global"}function tn(n){return!n.hasAutoStart&&n.authoredStart!=null&&n.hostStart>0}function V(n){let e=n.timelineRegistry??{},t=n.includeAuthoredTimingAttrs??!1,i=n.documentRef??document,r=new WeakMap,o=new WeakMap,a=new Set,s=m=>{let p=i.getElementById(m);return p||(i.querySelector(`[data-composition-id="${CSS.escape(m)}"]`)??null)},u=m=>{let p=o.get(m);if(p!==void 0)return p;let h=null,v=ye({start:0,duration:m.getAttribute("data-duration"),authoredDuration:t?m.getAttribute("data-hf-authored-duration"):null});if(v?.duration!=null&&v.duration>0&&(h=v.duration),h==null||h<=0){let E=l(m,0),A=ye({start:E,end:m.getAttribute("data-end"),authoredEnd:t?m.getAttribute("data-hf-authored-end"):null});A?.duration!=null&&A.duration>0&&(h=A.duration)}if((h==null||h<=0)&&k(m)&&(h=F(m,m.duration)),(h==null||h<=0)&&(h=_e(m)),h==null||h<=0){let E=m.getAttribute("data-composition-id");if(E){let A=e[E]??null;if(A&&typeof A.duration=="function")try{let T=Number(A.duration());Number.isFinite(T)&&T>0&&(h=T)}catch(T){X("runtime.startResolver.site1",T)}}}return h!=null&&Number.isFinite(h)&&h>0?(o.set(m,h),h):(o.set(m,null),null)},d=(m,p)=>{if(m.hasAttribute("data-composition-id")){let v=m.parentElement?.closest("[data-composition-id]");return v?l(v,p):0}let h=m.closest("[data-composition-id]");return h?l(h,p):0},l=(m,p)=>{let h=r.get(m);if(h!==void 0)return h??p;if(a.has(m))return p;a.add(m);try{let v=ge(m.getAttribute("data-start"));if(!v){if(m.hasAttribute("data-composition-id")){let R=m.parentElement;if(R&&(R.hasAttribute("data-composition-src")||R.hasAttribute("data-composition-id")||R.hasAttribute("data-composition-file"))){let M=l(R,p);return r.set(m,M),M}}return r.set(m,p),p}if(v.kind==="absolute"){let R=Math.max(0,v.value),M=Math.max(0,d(m,p)+R);return r.set(m,M),M}let E=s(v.refId);if(!E)return r.set(m,p),p;let A=l(E,0),T=u(E);if(T==null||T<=0){let R=Math.max(0,A+v.offset);return r.set(m,R),R}let P=Math.max(0,A+T+v.offset);return r.set(m,P),P}finally{a.delete(m)}},b=m=>{let p=m.closest("[data-composition-id]");return{authoredStart:N(m.getAttribute("data-start")),hostStart:p?l(p,0):0,hasAutoStart:m.hasAttribute("data-hf-auto-start"),basis:m.getAttribute(Jt)}};return{resolveStartForElement:(m,p=0)=>l(m,Math.max(0,p)),resolveDurationForElement:m=>u(m),resolveMediaStartForElement:m=>{let p=b(m);return Zt({...p,ordinaryStart:()=>l(m,p.hostStart)})},resolveHostStartForElement:m=>d(m,0),isRootGlobalMediaStartForElement:m=>k(m)&&en(b(m))}}function nn(){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 Ke=1/60,ve=n=>n!==null&&n>Ke?n:null;function Fi(n){return{width:de(n.getAttribute("data-width")),height:de(n.getAttribute("data-height"))}}function Vi(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<=Ke||t.push(Math.max(0,r)+o)}return ve(le({authoredDurationSeconds:null,clipEndsSeconds:t}).seconds)}function Ui(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=N(n.getAttribute("data-duration"));return ve(le({authoredDurationSeconds:null,clipEndsSeconds:[i,...t]}).seconds)}var Hi=n=>n.hasAttribute("data-composition-id")||n.hasAttribute("data-composition-src");function Wi(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):(k(o)||Hi(o))&&i.push(null)}(t||n.querySelector("[data-lottie-src]"))&&i.push(null);let r=le({authoredDurationSeconds:null,clipEndsSeconds:i});return r.pendingClips>0?{...r,seconds:null,source:"unresolved",reason:"a clip's length is pending"}:r}function Gi(n){if(n.declared!==null&&Number.isFinite(n.declared)&&n.declared>0)return n.declared;let e=ve(n.timeline()),t=Math.max(0,...n.floors().map(o=>o??0)),i=Number.isFinite(n.fallback)&&n.fallback>Ke?n.fallback:0,r;return e!==null?r=Math.max(e,t,i):ve(t)!==null?r=Math.max(t,i):i>0?r=i:r=n.derived(),r>0?r:0}function rn(n){let e=ce(n);if(!e)return null;let t=V({timelineRegistry:{},includeAuthoredTimingAttrs:!0,documentRef:n}),i=Gi({declared:N(e.getAttribute("data-duration")),timeline:()=>null,floors:()=>[Vi(n,{mediaStart:t.resolveMediaStartForElement,mediaDuration:Xe}),Ui(e,t)],fallback:0,derived:()=>Wi(e,t,{unregisteredLottie:!1}).seconds??0});return{...Fi(e),fps:nn().canonicalFps,durationSeconds:i}}var on="hyperframes-studio-preview";var an="__hfPreviewErrors";function sn(n){return n.hasRuntime||n.runtimeInjected?!1:!!(n.hasNestedCompositions||n.hasTimelines&&n.attempts>=5)}function U(n){return typeof n=="object"&&n!==null}function un(n){return U(n)&&typeof n.getDuration=="function"}function ln(n){return U(n)&&typeof n.duration=="function"&&typeof n.time=="function"&&typeof n.seek=="function"&&typeof n.play=="function"&&typeof n.pause=="function"}var H="https://cdn.jsdelivr.net/npm/@hyperframes/core@0.8.141/dist/hyperframe.runtime.iife.js";function J(n){if(n===null)return null;let e=Number.parseInt(n,10);return Number.isFinite(e)&&e>0?e:null}function Bi(n){let e=n?.querySelector("[data-composition-id][data-width][data-height]")??n?.querySelector("[data-width][data-height]");if(!e)return null;let t=J(e.getAttribute("data-width")),i=J(e.getAttribute("data-height"));return t!==null&&i!==null?{width:t,height:i}:null}function $i(n){return Array.isArray(n)?n.find(e=>typeof e=="string"&&e.trim()!==""&&e!=="[object Event]")??null:null}var Ae=class{constructor(e,t){this._iframe=e;this._callbacks=t}_iframe;_callbacks;_interval=null;_runtimeInjected=!1;_failure=null;get failed(){return this._failure!==null&&this._failure.document===this._iframe.contentDocument}get runtimeInjected(){return this._runtimeInjected}start(){this.stop(),this._failure=null,this._runtimeInjected=!1;let e=0;this._interval=setInterval(()=>{e++;let t=null;try{t=this._poll(e)}catch(i){i instanceof DOMException&&i.name==="SecurityError"||(t={kind:"error",message:i instanceof Error?i.message:String(i)})}if(t){this.stop(),t.kind==="error"?(this._failure={document:this._iframe.contentDocument},this._callbacks.onError(t.message)):this._callbacks.onReady(t.result);return}e>=40&&(this.stop(),this._failure={document:this._iframe.contentDocument},this._callbacks.onError("Composition timeline not found after 8s"))},200)}_poll(e){let t=this._iframe.contentWindow;if(!t)return null;let i=$i(Reflect.get(t,an));if(i!==null)return{kind:"error",message:i};let r=this._iframe.contentDocument,o=Reflect.get(t,"__timelines"),a=this.hasRuntimeBridge(t);if(sn({hasRuntime:a,hasTimelines:U(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?rn(t)?.durationSeconds??0:0}return r<=0?null:{duration:r,adapter:{...i,getDuration:()=>r},compositionSize:Bi(t)}}stop(){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 Reflect.get(e,"__hf")!==void 0||U(Reflect.get(e,"__player"))}_injectRuntime(){this._runtimeInjected=!0;try{let e=this._iframe.contentDocument;if(!e)return;let t=e.createElement("script");t.src=H,(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(!U(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 ln(a)?a:null}_resolvePlaybackDurationAdapter(e){let t=Reflect.get(e,"__player");if(un(t))return{kind:"runtime",getDuration:()=>t.getDuration()};let i=this._resolveDirectTimelineAdapterFromWindow(e);return i?{kind:"direct-timeline",timeline:i,getDuration:()=>i.duration()}:null}};var dn=`
1
+ "use strict";var HyperframesPlayer=(()=>{var Ne=Object.defineProperty;var jn=Object.getOwnPropertyDescriptor;var qn=Object.getOwnPropertyNames;var Yn=Object.prototype.hasOwnProperty;var Xn=(n,e)=>{for(var t in e)Ne(n,t,{get:e[t],enumerable:!0})},Kn=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of qn(e))!Yn.call(n,r)&&r!==t&&Ne(n,r,{get:()=>e[r],enumerable:!(i=jn(e,r))||i.enumerable});return n};var Jn=n=>Kn(Ne({},"__esModule",{value:!0}),n);var Hr={};Xn(Hr,{HyperframesPlayer:()=>De,SPEED_PRESETS:()=>Ze,formatSpeed:()=>Q,formatTime:()=>Se});var wt=n=>n!==null&&Number.isFinite(n)&&n>0;function le(n){let e=n.clipEndsSeconds.filter(i=>i===null).length;if(wt(n.authoredDurationSeconds))return{seconds:n.authoredDurationSeconds,source:"authored",pendingClips:e};let t=n.clipEndsSeconds.filter(wt);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 Qn="http://www.w3.org/1999/xhtml";function Mt(n){return n!=null&&n.nodeType===1}function Pe(n){return Mt(n)&&n.namespaceURI===Qn}function Le(n,e){return Pe(n)&&n.localName===e}function Zn(n){return Le(n,"video")}function ei(n){return Le(n,"audio")}function k(n){return Zn(n)||ei(n)}function Oe(n){return Le(n,"img")}function de(n){if(n==null||n.trim()==="")return null;let e=Number.parseInt(n,10);return Number.isFinite(e)&&e>0?e:null}function ce(n=document){let e=n.querySelector('[data-composition-id][data-root="true"]');return Pe(e)?e:n.querySelector("[data-composition-id]")}var O=Object.freeze({start:"data-start",duration:"data-duration",trackIndex:"data-track-index",derivedEnd:"data-end",legacyTrack:"data-layer"}),jr=Object.freeze([O.start,O.duration,O.trackIndex]),qr=Object.freeze([O.derivedEnd]),Yr=Object.freeze([O.derivedEnd,O.legacyTrack]);function Fe(n){if(n==null||n.trim()==="")return null;let e=Number(n);return Number.isFinite(e)?e:null}var kt=n=>{let e=Fe(n);return e!==null&&e>=0?e:null};function It(n){return kt(n("data-playback-start"))??kt(n("data-media-start"))??0}var $=.1,z=10;function Ve(n){return Number.isFinite(n)&&n>0?Math.max($,Math.min(z,n)):1}function Ct(n,e=1){let t=Number.parseFloat(n("data-playback-rate")??"");return Ve(Number.isFinite(t)&&t>0?t:e)}function Ue(n){let e=Fe(n("data-duration"));return e!==null&&e>0?e:null}function Dt(n,e){let t=Ue(n);if(t!==null)return t;let i=Fe(n("data-end"));return i!==null?i-e:null}var ti=3;function He(n,e,t){return Number.isFinite(n)?Math.max(0,n-e)/Ve(t):null}function We(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:ti,source:"default"};if(i===null)return{seconds:null,source:"pending",reason:"source duration not yet probed"};let a=He(i,r,o);return a===null?{seconds:null,source:"pending",reason:"source reported a non-finite duration"}:{seconds:a,source:"media"}}var Pt="data-fx-chain",Kr=Pt.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}),Ge=(n=.707,e="Bandwidth \u2014 higher is narrower.")=>({kind:"number",key:"q",label:"Q",unit:"",min:.1,max:20,step:.01,default:n,scale:"log",automatable:!0,hint:e}),me=(n=-40,e=40,t=0)=>({kind:"number",key:"gain",label:"Gain",unit:"dB",min:n,max:e,step:.1,default:t,automatable:!0}),Nt={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."},Lt=[{id:"gain",label:"Gain",group:"dynamics",description:"Raise or lower the whole signal. Automate it to duck under something else.",params:[me(-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),me(-40,40,0),Ge(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),me(-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),me(-40,40,0)],web:"biquad-highshelf"},{id:"highpass",label:"High-pass",group:"filter",description:"Remove low frequencies \u2014 the usual fix for rumble on a voice.",params:[j("frequency","Cutoff",300,20,2e4),Ge(.707),Nt],web:"biquad-highpass"},{id:"lowpass",label:"Low-pass",group:"filter",description:"Remove high frequencies \u2014 darkens or muffles a track.",params:[j("frequency","Cutoff",8e3,100,2e4),Ge(.707),Nt],web:"biquad-lowpass"},{id:"compressor",label:"Compressor",group:"dynamics",description:"Pull loud parts down so the quiet ones can come up.",params:[{kind:"number",key:"threshold",label:"Threshold",unit:"dB",min:-60,max:0,step:.5,default:-24,hint:"Level above which the compressor starts working."},{kind:"number",key:"ratio",label:"Ratio",unit:":1",min:1,max:20,step:.1,default:4},{kind:"number",key:"attack",label:"Attack",unit:"ms",min:.01,max:2e3,step:.1,default:20,scale:"log"},{kind:"number",key:"release",label:"Release",unit:"ms",min:.01,max:9e3,step:1,default:250,scale:"log"},{kind:"number",key:"knee",label:"Knee",unit:"",min:1,max:8,step:.01,default:2.83,hint:"1 is a hard corner; higher eases into it."},{kind:"number",key:"makeup",label:"Makeup",unit:"dB",min:0,max:36,step:.1,default:0},{kind:"number",key:"mix",label:"Mix",unit:"",min:0,max:1,step:.01,default:1,hint:"Below 1 blends the dry signal back in."}],web:"worklet-compressor"},{id:"limiter",label:"Limiter",group:"dynamics",description:"Hard ceiling \u2014 nothing gets past the limit.",params:[{kind:"number",key:"limit",label:"Ceiling",unit:"dB",min:-24,max:0,step:.1,default:-1},{kind:"number",key:"attack",label:"Attack",unit:"ms",min:.1,max:80,step:.1,default:5},{kind:"number",key:"release",label:"Release",unit:"ms",min:1,max:8e3,step:1,default:50,scale:"log"},{kind:"number",key:"level_out",label:"Output",unit:"dB",min:-24,max:24,step:.1,default:0}],web:"worklet-limiter"},{id:"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 \u2014 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"}],Jr=new Map(Lt.map(n=>[n.id,n]));var Qr=Lt.map(n=>n.id);function ni(n){return 10**(n/20)}var Ot=ni(12);var $e="data-automation",so=$e.slice(5),Be=1,ii=512,I=class extends Error{constructor(e){super(e),this.name="AudioAutomationError"}},pe="volume",fe="rate";function Ft(n){if(n===pe)return{kind:"volume"};if(n===fe)return{kind:"rate"};let e=n.split(".");if(e.length===3&&e[0]==="fx"&&e[1]===ri){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 ri="preset";var oi={min:0,max:Ot,step:.01,unit:"",label:"Volume",scale:"linear",default:1},ai={min:$,max:z,step:.05,unit:"x",label:"Speed",scale:"log",default:1};function q(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 si(n){let e=q(n);return e===null||e===0?0:Math.min(1,Math.max(-1,e))}function Vt(n,e){let t=q(n),i=q(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 ui(n){let e=si(n?.curve),t=Vt(n?.viaX,n?.viaY);return{...e?{curve:e}:{},...t?{viaX:t.x,viaY:t.y}:{}}}function li(n,e){let t=q(n?.t),i=q(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,...ui(n)}}function di(n,e){let t=n.map(r=>li(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,ii)}function ci(n){let e=[];for(let t of n.lanes){if(!Ft(t.target))continue;let i=t.target===pe?oi:t.target===fe?ai:null,r=di(t.points??[],i);r.length>0&&e.push({target:t.target,points:r})}return{version:Be,lanes:e}}function Ut(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!==Be)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"||!Ft(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 ci({version:Be,lanes:i})}function mi(n,e){return e?Math.pow(n,Math.pow(2,2*e)):n}function pi(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 fi(n,e,t){let{cx:i,cy:r,w:o}=pi(e,t),a=2-2*o,s=n*a-1+2*o*i,u=-n*a-2*o*i,d=hi(s,u,n),l=1-d,b=l*l+2*o*d*l+d*d;return b>0?(2*o*r*d*l+d*d)/b:n}function hi(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 bi(n,e){let t=Vt(e.viaX,e.viaY);return t?fi(Math.min(1,Math.max(0,n)),t.x,t.y):mi(n,e.curve)}function gi(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 he(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 b=a+s>>1;i[b].t<=e?a=b:s=b}let u=i[a],d=i[s],l=d.t-u.t;return l<=0?d.v:gi(u.v,d.v,bi((e-u.t)/l,u),t)}var be=new Map,_i=64;function Ht(n,e=pe){let t=`${e}\0${n}`,i=be.get(t);if(i!==void 0)return i;let r=null;try{r=Ut(n).lanes.find(o=>o.target===e)??null}catch{r=null}return be.size>_i&&be.clear(),be.set(t,r),r}var Wt=48,Gt=new WeakMap;function yi(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 l=he(n,d,"log");r.push(u),o.push(o[o.length-1]+(l+he(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,l=e[u].t;if(!(l<=0))for(let b=1;b<=Wt;b+=1)a(Math.max(d,0)+(l-d)*b/Wt)}return{ts:Float64Array.from(r),ss:Float64Array.from(o),firstRate:t,lastRate:i}}function vi(n){let e=Gt.get(n);return e||(e=yi(n),Gt.set(n,e)),e}function Ai(n){return typeof n!="number"&&n.points.length>0}function Si(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 ze(n,e){if(typeof n=="number")return e/n;if(!Ai(n))return e;let{ts:t,ss:i,firstRate:r,lastRate:o}=vi(n),a=t.length-1;return e<=0?e/r:e>=i[a]?t[a]+(e-i[a])/o:Si(i,t,e)}function Ei(n){return n?Ht(n,fe):null}function Bt(n,e){return Ei(n)??e}var ho=[{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 _=Object.freeze({start:"data-start",duration:"data-duration",trackIndex:"data-track-index",derivedEnd:"data-end",legacyTrack:"data-layer"}),go=Object.freeze([_.start,_.duration,_.trackIndex]),_o=Object.freeze([_.derivedEnd]),yo=Object.freeze([_.derivedEnd,_.legacyTrack]);function C(n){if(n==null||n.trim()==="")return null;let e=Number(n);return Number.isFinite(e)?e:null}var jt=/^[A-Za-z0-9_.:-]+$/;function qt(n,e){let t=n.charCodeAt(e);return t>=48&&t<=57}function $t(n,e){let t=e;for(;t>=0&&qt(n,t);)t--;return t}function Ti(n,e){let t=e;for(;t>=0&&(n[t]??"").trim()==="";)t--;return t}function Ri(n){let e=n.length-1;if(!qt(n,e))return null;let t=$t(n,e);return n[t]==="."&&(t=$t(n,t-1)),t+1}function xi(n){let e=Ri(n);if(e==null)return null;let t=Ti(n,e-1),i=n[t];if(i!=="+"&&i!=="-")return null;let r=n.slice(0,t).trim();if(!jt.test(r))return null;let o=Number(n.slice(e));return Number.isFinite(o)?{refId:r,operator:i,magnitude:o}:null}function ge(n){let e=(n??"").trim();if(!e)return null;let t=C(e);if(t!=null)return{kind:"absolute",value:t};if(jt.test(e))return{kind:"reference",refId:e,offset:0};let i=xi(e);return i?{kind:"reference",refId:i.refId,offset:i.operator==="-"?-i.magnitude:i.magnitude}:null}function x(n,e,t,i){n.push({code:e,attribute:t,value:i})}function wi(n,e,t,i){if(e==null||e.trim()==="")return t.defaultStart===void 0?0:t.defaultStart;if(!n)return x(i,"invalid-start",_.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)?(x(i,"unresolved-start-reference",_.start,e),null):Math.max(0,r+n.offset)}var Mi=1e-9;function ki(n,e){return Math.abs(n-e)<=Mi}function Ii(n,e,t){let i=C(n);if(i==null){x(t,"deprecated-end",_.derivedEnd,n),x(t,"invalid-end",_.derivedEnd,n);return}if(e==null){x(t,"deprecated-end",_.derivedEnd,n);return}ki(i,e)||(x(t,"deprecated-end",_.derivedEnd,n),x(t,"conflicting-end",_.derivedEnd,n))}function Ci(n,e,t){let i=C(n);return i==null||i<0?(x(t,"invalid-duration",_.duration,n),{duration:null,end:null,durationSource:"invalid"}):{duration:i,end:e==null?null:e+i,durationSource:"duration"}}function Di(n,e,t){x(t,"deprecated-end",_.derivedEnd,n);let i=C(n);return i==null?(x(t,"invalid-end",_.derivedEnd,n),{duration:null,end:null,durationSource:"invalid"}):e==null?{duration:null,end:i,durationSource:"legacy-end"}:i<e?(x(t,"end-before-start",_.derivedEnd,n),{duration:null,end:null,durationSource:"invalid"}):{duration:i-e,end:i,durationSource:"legacy-end"}}function Ni(n,e,t){let i=n.getAttribute(_.duration),r=n.getAttribute(_.derivedEnd);if(i==null)return r==null?{duration:null,end:null,durationSource:"missing"}:Di(r,e,t);let o=Ci(i,e,t);return r!=null&&Ii(r,o.end,t),o}function zt(n,e,t,i){let r=C(n);return r==null||!Number.isInteger(r)?(x(i,"invalid-track-index",e,n),{trackIndex:0,trackSource:"invalid"}):{trackIndex:r,trackSource:t}}function Pi(n,e){let t=n.getAttribute(_.trackIndex),i=n.getAttribute(_.legacyTrack);if(t==null&&i==null)return{trackIndex:0,trackSource:"default"};if(t==null&&i!=null)return x(e,"deprecated-layer",_.legacyTrack,i),zt(i,_.legacyTrack,"legacy-layer",e);let r=zt(t??"",_.trackIndex,"track-index",e);if(i==null)return r;x(e,"deprecated-layer",_.legacyTrack,i);let o=C(i);return o!=null&&o!==r.trackIndex&&x(e,"conflicting-layer",_.legacyTrack,i),r}function je(n,e={}){let t=[],i=n.getAttribute(_.start),r=ge(i),o=wi(r,i,e,t),a=Ni(n,o,t),s=Pi(n,t);return{startExpression:r,start:o,...a,...s,diagnostics:t}}function N(n){return C(n)}function Y(n){return Ct(e=>n.getAttribute(e),k(n)?n.defaultPlaybackRate:1)}function qe(n){return Bt(n.getAttribute("data-automation"),Y(n))}function Ye(n){return It(e=>n.getAttribute(e))}function F(n,e){return Li(e,Ye(n),qe(n))}function Xe(n){let e=We({tag:"video",authoredDurationSeconds:Ue(t=>n.getAttribute(t)),sourceDurationSeconds:Number.isFinite(n.duration)?n.duration:null,mediaStartSeconds:Ye(n),playbackRate:Y(n)});return e.source==="media"?F(n,n.duration):e.seconds}function _e(n,e=0){return!Oe(n)||!n.hasAttribute("data-start")&&!n.hasAttribute("data-track-index")?null:We({tag:"img",authoredDurationSeconds:Dt(t=>n.getAttribute(t),e),sourceDurationSeconds:null,mediaStartSeconds:0,playbackRate:1}).seconds}function Li(n,e,t){return typeof t=="number"?He(n,e,t):Number.isFinite(n)?ze(t,Math.max(0,n-e)):null}function Yt(){return globalThis}function X(n,e){if(typeof window>"u")return;let t=Yt(),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 Xt="data-hf-authored-duration",Kt="data-hf-authored-end";function K(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 ye(n){let e=K(n.start);if(e==null)return null;let t=Math.max(0,e),i=K(n.duration),r=K(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=K(n.end),s=K(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 Jt="data-hf-media-start-basis";function Qt(n){return n?.trim().toLowerCase()==="global"?"global":"local"}function Oi(n){return Qt(n.basis)==="global"?n.authoredStart:n.hostStart+n.authoredStart}function Zt(n){return tn(n)?Oi({authoredStart:n.authoredStart,hostStart:n.hostStart,basis:n.basis}):n.ordinaryStart()}function en(n){return tn(n)&&Qt(n.basis)==="global"}function tn(n){return!n.hasAutoStart&&n.authoredStart!=null&&n.hostStart>0}function V(n){let e=n.timelineRegistry??{},t=n.includeAuthoredTimingAttrs??!1,i=n.documentRef??document,r=new WeakMap,o=new WeakMap,a=new Set,s=m=>{let p=i.getElementById(m);return p||(i.querySelector(`[data-composition-id="${CSS.escape(m)}"]`)??null)},u=m=>{let p=o.get(m);if(p!==void 0)return p;let h=null,v=ye({start:0,duration:m.getAttribute("data-duration"),authoredDuration:t?m.getAttribute("data-hf-authored-duration"):null});if(v?.duration!=null&&v.duration>0&&(h=v.duration),h==null||h<=0){let E=l(m,0),A=ye({start:E,end:m.getAttribute("data-end"),authoredEnd:t?m.getAttribute("data-hf-authored-end"):null});A?.duration!=null&&A.duration>0&&(h=A.duration)}if((h==null||h<=0)&&k(m)&&(h=F(m,m.duration)),(h==null||h<=0)&&(h=_e(m)),h==null||h<=0){let E=m.getAttribute("data-composition-id");if(E){let A=e[E]??null;if(A&&typeof A.duration=="function")try{let T=Number(A.duration());Number.isFinite(T)&&T>0&&(h=T)}catch(T){X("runtime.startResolver.site1",T)}}}return h!=null&&Number.isFinite(h)&&h>0?(o.set(m,h),h):(o.set(m,null),null)},d=(m,p)=>{if(m.hasAttribute("data-composition-id")){let v=m.parentElement?.closest("[data-composition-id]");return v?l(v,p):0}let h=m.closest("[data-composition-id]");return h?l(h,p):0},l=(m,p)=>{let h=r.get(m);if(h!==void 0)return h??p;if(a.has(m))return p;a.add(m);try{let v=ge(m.getAttribute("data-start"));if(!v){if(m.hasAttribute("data-composition-id")){let R=m.parentElement;if(R&&(R.hasAttribute("data-composition-src")||R.hasAttribute("data-composition-id")||R.hasAttribute("data-composition-file"))){let M=l(R,p);return r.set(m,M),M}}return r.set(m,p),p}if(v.kind==="absolute"){let R=Math.max(0,v.value),M=Math.max(0,d(m,p)+R);return r.set(m,M),M}let E=s(v.refId);if(!E)return r.set(m,p),p;let A=l(E,0),T=u(E);if(T==null||T<=0){let R=Math.max(0,A+v.offset);return r.set(m,R),R}let P=Math.max(0,A+T+v.offset);return r.set(m,P),P}finally{a.delete(m)}},b=m=>{let p=m.closest("[data-composition-id]");return{authoredStart:N(m.getAttribute("data-start")),hostStart:p?l(p,0):0,hasAutoStart:m.hasAttribute("data-hf-auto-start"),basis:m.getAttribute(Jt)}};return{resolveStartForElement:(m,p=0)=>l(m,Math.max(0,p)),resolveDurationForElement:m=>u(m),resolveMediaStartForElement:m=>{let p=b(m);return Zt({...p,ordinaryStart:()=>l(m,p.hostStart)})},resolveHostStartForElement:m=>d(m,0),isRootGlobalMediaStartForElement:m=>k(m)&&en(b(m))}}function nn(){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 Ke=1/60,ve=n=>n!==null&&n>Ke?n:null;function Fi(n){return{width:de(n.getAttribute("data-width")),height:de(n.getAttribute("data-height"))}}function Vi(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<=Ke||t.push(Math.max(0,r)+o)}return ve(le({authoredDurationSeconds:null,clipEndsSeconds:t}).seconds)}function Ui(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=N(n.getAttribute("data-duration"));return ve(le({authoredDurationSeconds:null,clipEndsSeconds:[i,...t]}).seconds)}var Hi=n=>n.hasAttribute("data-composition-id")||n.hasAttribute("data-composition-src");function Wi(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):(k(o)||Hi(o))&&i.push(null)}(t||n.querySelector("[data-lottie-src]"))&&i.push(null);let r=le({authoredDurationSeconds:null,clipEndsSeconds:i});return r.pendingClips>0?{...r,seconds:null,source:"unresolved",reason:"a clip's length is pending"}:r}function Gi(n){if(n.declared!==null&&Number.isFinite(n.declared)&&n.declared>0)return n.declared;let e=ve(n.timeline()),t=Math.max(0,...n.floors().map(o=>o??0)),i=Number.isFinite(n.fallback)&&n.fallback>Ke?n.fallback:0,r;return e!==null?r=Math.max(e,t,i):ve(t)!==null?r=Math.max(t,i):i>0?r=i:r=n.derived(),r>0?r:0}function rn(n){let e=ce(n);if(!e)return null;let t=V({timelineRegistry:{},includeAuthoredTimingAttrs:!0,documentRef:n}),i=Gi({declared:N(e.getAttribute("data-duration")),timeline:()=>null,floors:()=>[Vi(n,{mediaStart:t.resolveMediaStartForElement,mediaDuration:Xe}),Ui(e,t)],fallback:0,derived:()=>Wi(e,t,{unregisteredLottie:!1}).seconds??0});return{...Fi(e),fps:nn().canonicalFps,durationSeconds:i}}var on="hyperframes-studio-preview";var an="__hfPreviewErrors";function sn(n){return n.hasRuntime||n.runtimeInjected?!1:!!(n.hasNestedCompositions||n.hasTimelines&&n.attempts>=5)}function U(n){return typeof n=="object"&&n!==null}function un(n){return U(n)&&typeof n.getDuration=="function"}function ln(n){return U(n)&&typeof n.duration=="function"&&typeof n.time=="function"&&typeof n.seek=="function"&&typeof n.play=="function"&&typeof n.pause=="function"}var H="https://cdn.jsdelivr.net/npm/@hyperframes/core@0.8.142/dist/hyperframe.runtime.iife.js";function J(n){if(n===null)return null;let e=Number.parseInt(n,10);return Number.isFinite(e)&&e>0?e:null}function Bi(n){let e=n?.querySelector("[data-composition-id][data-width][data-height]")??n?.querySelector("[data-width][data-height]");if(!e)return null;let t=J(e.getAttribute("data-width")),i=J(e.getAttribute("data-height"));return t!==null&&i!==null?{width:t,height:i}:null}function $i(n){return Array.isArray(n)?n.find(e=>typeof e=="string"&&e.trim()!==""&&e!=="[object Event]")??null:null}var Ae=class{constructor(e,t){this._iframe=e;this._callbacks=t}_iframe;_callbacks;_interval=null;_runtimeInjected=!1;_failure=null;get failed(){return this._failure!==null&&this._failure.document===this._iframe.contentDocument}get runtimeInjected(){return this._runtimeInjected}start(){this.stop(),this._failure=null,this._runtimeInjected=!1;let e=0;this._interval=setInterval(()=>{e++;let t=null;try{t=this._poll(e)}catch(i){i instanceof DOMException&&i.name==="SecurityError"||(t={kind:"error",message:i instanceof Error?i.message:String(i)})}if(t){this.stop(),t.kind==="error"?(this._failure={document:this._iframe.contentDocument},this._callbacks.onError(t.message)):this._callbacks.onReady(t.result);return}e>=40&&(this.stop(),this._failure={document:this._iframe.contentDocument},this._callbacks.onError("Composition timeline not found after 8s"))},200)}_poll(e){let t=this._iframe.contentWindow;if(!t)return null;let i=$i(Reflect.get(t,an));if(i!==null)return{kind:"error",message:i};let r=this._iframe.contentDocument,o=Reflect.get(t,"__timelines"),a=this.hasRuntimeBridge(t);if(sn({hasRuntime:a,hasTimelines:U(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?rn(t)?.durationSeconds??0:0}return r<=0?null:{duration:r,adapter:{...i,getDuration:()=>r},compositionSize:Bi(t)}}stop(){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 Reflect.get(e,"__hf")!==void 0||U(Reflect.get(e,"__player"))}_injectRuntime(){this._runtimeInjected=!0;try{let e=this._iframe.contentDocument;if(!e)return;let t=e.createElement("script");t.src=H,(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(!U(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 ln(a)?a:null}_resolvePlaybackDurationAdapter(e){let t=Reflect.get(e,"__player");if(un(t))return{kind:"runtime",getDuration:()=>t.getDuration()};let i=this._resolveDirectTimelineAdapterFromWindow(e);return i?{kind:"direct-timeline",timeline:i,getDuration:()=>i.duration()}:null}};var dn=`
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-TC2FBZJZ.js";
9
+ } from "./chunk-LJAU4TPS.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-PFCFR3KZ.js";
17
- import "./chunk-7XTZVLE6.js";
18
- import "./chunk-RCFCZT5O.js";
17
+ import "./chunk-XGMNQQTJ.js";
18
+ import "./chunk-LBKDQKWV.js";
19
19
  import "./chunk-VWG7OQKU.js";
20
20
  import "./chunk-GQJZORQP.js";
21
21
  import "./chunk-AMKC3AXA.js";
@@ -25,13 +25,13 @@ import {
25
25
  import "./chunk-54HJ63Q2.js";
26
26
  import "./chunk-PBN6GBJE.js";
27
27
  import "./chunk-USDEMXXL.js";
28
- import "./chunk-6E6CM7WS.js";
28
+ import "./chunk-YFT3BL7N.js";
29
29
  import {
30
30
  CANVAS_DIMENSIONS,
31
31
  parseHtml
32
32
  } from "./chunk-OZUQF4NB.js";
33
33
  import "./chunk-DPVXBVLL.js";
34
- import "./chunk-SYKKFAUW.js";
34
+ import "./chunk-J4UX3RS3.js";
35
35
  import "./chunk-VC76R6W2.js";
36
36
  import "./chunk-YA62XGXS.js";
37
37
  import "./chunk-OFQWTKPW.js";
@@ -44,12 +44,12 @@ import "./chunk-2PSPARWP.js";
44
44
  import "./chunk-PMRBLBUP.js";
45
45
  import {
46
46
  withMeta
47
- } from "./chunk-IYFKBFTW.js";
47
+ } from "./chunk-JLKMWY2T.js";
48
48
  import "./chunk-K4WIOZFP.js";
49
49
  import "./chunk-XUXGIA7H.js";
50
50
  import "./chunk-WERLJGIC.js";
51
51
  import "./chunk-ISN5GRYI.js";
52
- import "./chunk-W6HTOVHU.js";
52
+ import "./chunk-DZEVA7DI.js";
53
53
  import "./chunk-KNU5COPB.js";
54
54
  import {
55
55
  c
@@ -6,12 +6,12 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  gateRegistryItemsCompatibility
9
- } from "./chunk-XWVGSEUT.js";
9
+ } from "./chunk-BPZVDBHY.js";
10
10
  import {
11
11
  initialModelForLanguage
12
- } from "./chunk-IV7EI5E2.js";
12
+ } from "./chunk-7FCDA4RH.js";
13
13
  import "./chunk-6IHWCZ3W.js";
14
- import "./chunk-3A5AAPMP.js";
14
+ import "./chunk-FWRNQOLT.js";
15
15
  import "./chunk-XT7X6QCP.js";
16
16
  import {
17
17
  writeNewFileSync
@@ -20,11 +20,11 @@ import {
20
20
  listRegistryItems,
21
21
  loadAllItems,
22
22
  resolveItemWithDependencies
23
- } from "./chunk-IKVBTDLO.js";
23
+ } from "./chunk-JOTLPC6S.js";
24
24
  import {
25
25
  installItem
26
- } from "./chunk-L3JSAB4L.js";
27
- import "./chunk-Q65ZQFF2.js";
26
+ } from "./chunk-75JJVANE.js";
27
+ import "./chunk-QXPCARFE.js";
28
28
  import "./chunk-AWDFDFI3.js";
29
29
  import "./chunk-P6LJ4Y32.js";
30
30
  import {
@@ -39,8 +39,8 @@ import {
39
39
  } from "./chunk-TVCRUG2S.js";
40
40
  import {
41
41
  trackInitTemplate
42
- } from "./chunk-7XTZVLE6.js";
43
- import "./chunk-RCFCZT5O.js";
42
+ } from "./chunk-XGMNQQTJ.js";
43
+ import "./chunk-LBKDQKWV.js";
44
44
  import "./chunk-VWG7OQKU.js";
45
45
  import "./chunk-GQJZORQP.js";
46
46
  import "./chunk-AMKC3AXA.js";
@@ -65,11 +65,11 @@ import {
65
65
  failCommand,
66
66
  finishCommand
67
67
  } from "./chunk-PBN6GBJE.js";
68
- import "./chunk-E6SDW5FV.js";
69
- import "./chunk-35RSNI77.js";
68
+ import "./chunk-IDX52YJN.js";
69
+ import "./chunk-DPHJKWP5.js";
70
70
  import "./chunk-A4KQZXZI.js";
71
71
  import "./chunk-USDEMXXL.js";
72
- import "./chunk-6E6CM7WS.js";
72
+ import "./chunk-YFT3BL7N.js";
73
73
  import {
74
74
  CANVAS_DIMENSIONS,
75
75
  HTML_BODY_CSS_HEIGHT_FIRST_RE,
@@ -78,7 +78,7 @@ import {
78
78
  normalizeResolutionFlag
79
79
  } from "./chunk-OZUQF4NB.js";
80
80
  import "./chunk-DPVXBVLL.js";
81
- import "./chunk-SYKKFAUW.js";
81
+ import "./chunk-J4UX3RS3.js";
82
82
  import "./chunk-VC76R6W2.js";
83
83
  import "./chunk-YA62XGXS.js";
84
84
  import "./chunk-OFQWTKPW.js";
@@ -88,8 +88,7 @@ import "./chunk-RQVDTPGD.js";
88
88
  import "./chunk-LAOCA3MQ.js";
89
89
  import "./chunk-LCSMOLGX.js";
90
90
  import "./chunk-TWWSYAKJ.js";
91
- import "./chunk-WY5OODN5.js";
92
- import "./chunk-24OWOBQH.js";
91
+ import "./chunk-IW2CKH6A.js";
93
92
  import "./chunk-JFKL3WAE.js";
94
93
  import "./chunk-HBBJFK6I.js";
95
94
  import "./chunk-PJ3HDUCY.js";
@@ -103,7 +102,7 @@ import "./chunk-WERLJGIC.js";
103
102
  import "./chunk-ISN5GRYI.js";
104
103
  import {
105
104
  VERSION
106
- } from "./chunk-W6HTOVHU.js";
105
+ } from "./chunk-DZEVA7DI.js";
107
106
  import "./chunk-KNU5COPB.js";
108
107
  import "./chunk-UOFAE5RF.js";
109
108
  import "./chunk-3GXQPCJC.js";
@@ -672,7 +671,7 @@ async function scaffoldProject(destDir, name, templateId, media, tailwind = fals
672
671
  "utf-8"
673
672
  );
674
673
  if (!existsSync2(resolve(destDir, "hyperframes.json"))) {
675
- const { createProjectConfig, DEFAULT_PROJECT_CONFIG } = await import("./projectConfig-MH4QU4AC.js");
674
+ const { createProjectConfig, DEFAULT_PROJECT_CONFIG } = await import("./projectConfig-RJN3DKDB.js");
676
675
  const { normalizeSkillSlug } = await import("./skill-ZHVLH7KX.js");
677
676
  const skill = normalizeSkillSlug(authoringSkill);
678
677
  createProjectConfig(
@@ -693,7 +692,7 @@ async function scaffoldProject(destDir, name, templateId, media, tailwind = fals
693
692
  }
694
693
  }
695
694
  async function keepSkillsCurrent(destDir) {
696
- const { updateSkills } = await import("./skills-ICJ22CZZ.js");
695
+ const { updateSkills } = await import("./skills-CZHVAD3J.js");
697
696
  console.log();
698
697
  console.log(c.bold("Checking AI coding skills against GitHub..."));
699
698
  try {
@@ -894,7 +893,7 @@ var init_default = defineCommand({
894
893
  if (audioPath) {
895
894
  sourceFilePath2 = audioPath;
896
895
  copyFileSync(audioPath, resolve(destDir2, basename(audioPath)));
897
- const { getMediaDurationSeconds } = await import("./transcribe-TIO6W3EQ.js");
896
+ const { getMediaDurationSeconds } = await import("./transcribe-4F6MK73N.js");
898
897
  videoDuration2 = getMediaDurationSeconds(audioPath) ?? void 0;
899
898
  console.log(`Audio: ${basename(audioPath)}`);
900
899
  }
@@ -904,7 +903,7 @@ var init_default = defineCommand({
904
903
  await ensureWhisper();
905
904
  await ensureModel(initialTranscriptionModel);
906
905
  console.log("Transcribing...");
907
- const { transcribe: runTranscribe } = await import("./transcribe-TIO6W3EQ.js");
906
+ const { transcribe: runTranscribe } = await import("./transcribe-4F6MK73N.js");
908
907
  const result = await runTranscribe(sourceFilePath2, destDir2, {
909
908
  model: modelFlag,
910
909
  language: languageFlag
@@ -1052,7 +1051,7 @@ var init_default = defineCommand({
1052
1051
  mkdirSync(destDir, { recursive: true });
1053
1052
  sourceFilePath = audioPath;
1054
1053
  copyFileSync(audioPath, resolve(destDir, basename(audioPath)));
1055
- const { getMediaDurationSeconds } = await import("./transcribe-TIO6W3EQ.js");
1054
+ const { getMediaDurationSeconds } = await import("./transcribe-4F6MK73N.js");
1056
1055
  videoDuration = getMediaDurationSeconds(audioPath) ?? void 0;
1057
1056
  R.info(`Audio copied to ${c.accent(basename(audioPath))}`);
1058
1057
  }
@@ -1080,7 +1079,7 @@ var init_default = defineCommand({
1080
1079
  onProgress: (msg) => spin2.message(msg)
1081
1080
  });
1082
1081
  spin2.message("Transcribing audio...");
1083
- const { transcribe: runTranscribe } = await import("./transcribe-TIO6W3EQ.js");
1082
+ const { transcribe: runTranscribe } = await import("./transcribe-4F6MK73N.js");
1084
1083
  const transcribeResult = await runTranscribe(sourceFilePath, destDir, {
1085
1084
  model: modelFlag,
1086
1085
  language: languageFlag,
@@ -1162,7 +1161,7 @@ ${c.dim("Use --example blank for offline use.")}`
1162
1161
  }
1163
1162
  R.info("Opening studio preview...");
1164
1163
  try {
1165
- const previewCmd = await import("./preview-XTYN4NJ2.js").then((m) => m.default);
1164
+ const previewCmd = await import("./preview-5OQRYE6A.js").then((m) => m.default);
1166
1165
  await runCommand(previewCmd, { rawArgs: [destDir] });
1167
1166
  } catch {
1168
1167
  }
@@ -6,39 +6,39 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  createInspectCommand
9
- } from "./chunk-IO7ZIDRP.js";
10
- import "./chunk-34TXESM7.js";
9
+ } from "./chunk-B6SMSALD.js";
10
+ import "./chunk-LQASVU3I.js";
11
11
  import "./chunk-XUHOIDKG.js";
12
12
  import "./chunk-X7MTZ4T2.js";
13
- import "./chunk-NORZWWLK.js";
14
- import "./chunk-TC2FBZJZ.js";
15
- import "./chunk-XDSOIJC3.js";
13
+ import "./chunk-LTGGTEMA.js";
14
+ import "./chunk-LJAU4TPS.js";
15
+ import "./chunk-WSGY5CDQ.js";
16
16
  import "./chunk-5Z63TBTX.js";
17
- import "./chunk-O3SKIXQK.js";
18
- import "./chunk-EKA4ZZBI.js";
17
+ import "./chunk-OSUKETIH.js";
18
+ import "./chunk-TY6XOHEM.js";
19
19
  import "./chunk-YEIFI443.js";
20
20
  import "./chunk-IHFUKJOR.js";
21
- import "./chunk-6Q6FR4KH.js";
22
- import "./chunk-A7YQNIQT.js";
21
+ import "./chunk-YHRZQJXH.js";
22
+ import "./chunk-OKCR3JTO.js";
23
23
  import "./chunk-QZ3AZTXI.js";
24
24
  import "./chunk-U7E736AJ.js";
25
- import "./chunk-4BB7V6AI.js";
25
+ import "./chunk-6UM3R7PP.js";
26
26
  import "./chunk-G75ENCEZ.js";
27
27
  import "./chunk-EOVYQ3IG.js";
28
- import "./chunk-J5IPIQU2.js";
28
+ import "./chunk-WTMUCJ6Z.js";
29
29
  import "./chunk-PFCFR3KZ.js";
30
- import "./chunk-AVWEIOEN.js";
30
+ import "./chunk-EFDXGAAD.js";
31
31
  import "./chunk-XT7X6QCP.js";
32
32
  import "./chunk-4YYJOFKS.js";
33
33
  import "./chunk-HVW7ABXD.js";
34
- import "./chunk-IKVBTDLO.js";
35
- import "./chunk-L3JSAB4L.js";
36
- import "./chunk-Q65ZQFF2.js";
34
+ import "./chunk-JOTLPC6S.js";
35
+ import "./chunk-75JJVANE.js";
36
+ import "./chunk-QXPCARFE.js";
37
37
  import "./chunk-AWDFDFI3.js";
38
38
  import "./chunk-P6LJ4Y32.js";
39
39
  import "./chunk-374QQGBQ.js";
40
- import "./chunk-7XTZVLE6.js";
41
- import "./chunk-RCFCZT5O.js";
40
+ import "./chunk-XGMNQQTJ.js";
41
+ import "./chunk-LBKDQKWV.js";
42
42
  import "./chunk-VWG7OQKU.js";
43
43
  import "./chunk-GQJZORQP.js";
44
44
  import "./chunk-AMKC3AXA.js";
@@ -48,14 +48,14 @@ import "./chunk-54HJ63Q2.js";
48
48
  import "./chunk-PBN6GBJE.js";
49
49
  import "./chunk-KC5XXX3X.js";
50
50
  import "./chunk-TJSTGSAW.js";
51
- import "./chunk-E6SDW5FV.js";
52
- import "./chunk-35RSNI77.js";
51
+ import "./chunk-IDX52YJN.js";
52
+ import "./chunk-DPHJKWP5.js";
53
53
  import "./chunk-A4KQZXZI.js";
54
54
  import "./chunk-USDEMXXL.js";
55
- import "./chunk-6E6CM7WS.js";
55
+ import "./chunk-YFT3BL7N.js";
56
56
  import "./chunk-OZUQF4NB.js";
57
57
  import "./chunk-DPVXBVLL.js";
58
- import "./chunk-SYKKFAUW.js";
58
+ import "./chunk-J4UX3RS3.js";
59
59
  import "./chunk-VC76R6W2.js";
60
60
  import "./chunk-YA62XGXS.js";
61
61
  import "./chunk-OFQWTKPW.js";
@@ -63,8 +63,7 @@ import "./chunk-T76PLPD6.js";
63
63
  import "./chunk-FXMKHHPO.js";
64
64
  import "./chunk-RQVDTPGD.js";
65
65
  import "./chunk-TWWSYAKJ.js";
66
- import "./chunk-WY5OODN5.js";
67
- import "./chunk-24OWOBQH.js";
66
+ import "./chunk-IW2CKH6A.js";
68
67
  import "./chunk-JFKL3WAE.js";
69
68
  import "./chunk-HBBJFK6I.js";
70
69
  import "./chunk-PJ3HDUCY.js";
@@ -72,12 +71,12 @@ import "./chunk-TQFG7HTI.js";
72
71
  import "./chunk-GK4AIFIH.js";
73
72
  import "./chunk-2PSPARWP.js";
74
73
  import "./chunk-PMRBLBUP.js";
75
- import "./chunk-IYFKBFTW.js";
74
+ import "./chunk-JLKMWY2T.js";
76
75
  import "./chunk-K4WIOZFP.js";
77
76
  import "./chunk-XUXGIA7H.js";
78
77
  import "./chunk-WERLJGIC.js";
79
78
  import "./chunk-ISN5GRYI.js";
80
- import "./chunk-W6HTOVHU.js";
79
+ import "./chunk-DZEVA7DI.js";
81
80
  import "./chunk-KNU5COPB.js";
82
81
  import "./chunk-3GXQPCJC.js";
83
82
  import "./chunk-ZTZA4UWZ.js";
@@ -10,15 +10,15 @@ import {
10
10
  prepareItem,
11
11
  publishItem,
12
12
  recordRewrittenInstall
13
- } from "./chunk-L3JSAB4L.js";
14
- import "./chunk-Q65ZQFF2.js";
13
+ } from "./chunk-75JJVANE.js";
14
+ import "./chunk-QXPCARFE.js";
15
15
  import "./chunk-AWDFDFI3.js";
16
16
  import "./chunk-P6LJ4Y32.js";
17
17
  import "./chunk-GMECXFAN.js";
18
- import "./chunk-6E6CM7WS.js";
18
+ import "./chunk-YFT3BL7N.js";
19
19
  import "./chunk-OZUQF4NB.js";
20
20
  import "./chunk-DPVXBVLL.js";
21
- import "./chunk-SYKKFAUW.js";
21
+ import "./chunk-J4UX3RS3.js";
22
22
  import "./chunk-VC76R6W2.js";
23
23
  import "./chunk-YA62XGXS.js";
24
24
  import "./chunk-OFQWTKPW.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-TC2FBZJZ.js";
9
+ } from "./chunk-LJAU4TPS.js";
10
10
  import "./chunk-IHFUKJOR.js";
11
11
  import {
12
12
  ensureDOMParser
13
13
  } from "./chunk-PFCFR3KZ.js";
14
- import "./chunk-7XTZVLE6.js";
15
- import "./chunk-RCFCZT5O.js";
14
+ import "./chunk-XGMNQQTJ.js";
15
+ import "./chunk-LBKDQKWV.js";
16
16
  import "./chunk-VWG7OQKU.js";
17
17
  import "./chunk-GQJZORQP.js";
18
18
  import "./chunk-AMKC3AXA.js";
@@ -39,12 +39,12 @@ import {
39
39
  } from "./chunk-2PSPARWP.js";
40
40
  import {
41
41
  withMeta
42
- } from "./chunk-IYFKBFTW.js";
42
+ } from "./chunk-JLKMWY2T.js";
43
43
  import "./chunk-K4WIOZFP.js";
44
44
  import "./chunk-XUXGIA7H.js";
45
45
  import "./chunk-WERLJGIC.js";
46
46
  import "./chunk-ISN5GRYI.js";
47
- import "./chunk-W6HTOVHU.js";
47
+ import "./chunk-DZEVA7DI.js";
48
48
  import "./chunk-KNU5COPB.js";
49
49
  import {
50
50
  c
@@ -2369,7 +2369,7 @@ function printOnionShotSaved(saved, elementCount) {
2369
2369
  console.log();
2370
2370
  }
2371
2371
  async function runOnionShot(comps, allComps, projectDir, entryFile, args) {
2372
- const { captureMotionPathShot } = await import("./motionShot-FSKETANX.js");
2372
+ const { captureMotionPathShot } = await import("./motionShot-7NE2YBB3.js");
2373
2373
  const requests = collectShotSelectors(args.selector ? allComps : comps);
2374
2374
  const guardError = onionShotGuardError(projectDir, requests, args.ghost ?? false);
2375
2375
  if (guardError) {
@@ -16,10 +16,10 @@ import {
16
16
  import {
17
17
  failCommand
18
18
  } from "./chunk-PBN6GBJE.js";
19
- import "./chunk-6E6CM7WS.js";
19
+ import "./chunk-YFT3BL7N.js";
20
20
  import "./chunk-OZUQF4NB.js";
21
21
  import "./chunk-DPVXBVLL.js";
22
- import "./chunk-SYKKFAUW.js";
22
+ import "./chunk-J4UX3RS3.js";
23
23
  import "./chunk-VC76R6W2.js";
24
24
  import "./chunk-YA62XGXS.js";
25
25
  import "./chunk-OFQWTKPW.js";
@@ -288,7 +288,7 @@ Or, for an opt-in dev setup:
288
288
  console.error(`[lambda render] --fps must be 24, 30, or 60; got ${fpsRaw}.`);
289
289
  failCommand();
290
290
  }
291
- const { runRender } = await import("./render-75E342ZU.js");
291
+ const { runRender } = await import("./render-XTXE5CRU.js");
292
292
  const renderResolution = parseOutputResolution(args["output-resolution"]);
293
293
  await runRender({
294
294
  projectDir,
@@ -342,7 +342,7 @@ Or, for an opt-in dev setup:
342
342
  console.error(`[lambda render-batch] --fps must be 24, 30, or 60; got ${fpsRaw}.`);
343
343
  failCommand();
344
344
  }
345
- const { runRenderBatch } = await import("./render-batch-YURBS54Q.js");
345
+ const { runRenderBatch } = await import("./render-batch-M55YZLZ5.js");
346
346
  const batchResolution = parseOutputResolution(args["output-resolution"]);
347
347
  await runRenderBatch({
348
348
  projectDir,