hyperframes 0.8.145 → 0.8.146

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 (186) hide show
  1. package/dist/{add-B6OUH46W.js → add-6J4TLUDW.js} +15 -15
  2. package/dist/{animatedGifPrep-MIWRDJIO.js → animatedGifPrep-TPYA45ZZ.js} +10 -10
  3. package/dist/{asset-XJ2B2PU3.js → asset-B4C6ZU4V.js} +2 -2
  4. package/dist/{assetCataloger-A5ZLSCMZ.js → assetCataloger-GX4B55VB.js} +4 -4
  5. package/dist/{auth-5HOVCZMV.js → auth-T2V3URGO.js} +2 -2
  6. package/dist/{autoUpdate-WVNL5K3D.js → autoUpdate-O4R7IOYP.js} +2 -2
  7. package/dist/{backgroundChecks-IGF54SFH.js → backgroundChecks-SQHGZCSH.js} +3 -3
  8. package/dist/backgroundChecksWorker.js +3 -3
  9. package/dist/{batchRender-T6JEGCQV.js → batchRender-T7S2CGJE.js} +5 -5
  10. package/dist/{beats-37T6Y6QP.js → beats-RNEXDM7U.js} +16 -16
  11. package/dist/{benchmark-ZVVLOWPP.js → benchmark-IVK6FCEU.js} +12 -12
  12. package/dist/{browser-4SSJOLH4.js → browser-WUE6VK2N.js} +5 -5
  13. package/dist/{bundleWithLocalizedFonts-XWK423QP.js → bundleWithLocalizedFonts-EEIRL7FT.js} +2 -2
  14. package/dist/{capture-2SF7YP57.js → capture-K3EONGGU.js} +2 -2
  15. package/dist/{capture-KZXOPBMO.js → capture-LEKIGJ4G.js} +13 -13
  16. package/dist/{catalog-NLD4A2C6.js → catalog-IXYQ2KXW.js} +15 -15
  17. package/dist/{catch-up-4BSRN6IR.js → catch-up-IIF7HKR6.js} +6 -6
  18. package/dist/{check-IA44QQWM.js → check-W7CDOXNP.js} +38 -38
  19. package/dist/{checkBrowser-VM35KZMW.js → checkBrowser-5VSXEHBZ.js} +118 -61
  20. package/dist/{chunk-ZF7SXQJ7.js → chunk-2NAUEDA6.js} +2 -2
  21. package/dist/{chunk-FXJJCPPB.js → chunk-3HSWLZ6S.js} +1 -1
  22. package/dist/{chunk-ZSVUAVMT.js → chunk-4RUILXS6.js} +5 -5
  23. package/dist/{chunk-FBCULCAL.js → chunk-54UXJKFF.js} +1 -1
  24. package/dist/{chunk-DIRJ322I.js → chunk-66SAATRI.js} +3 -3
  25. package/dist/{chunk-QLSM7K5S.js → chunk-6TTAXMDG.js} +2 -2
  26. package/dist/{chunk-5WVW7P23.js → chunk-A72OAGNB.js} +6 -6
  27. package/dist/{chunk-G75ENCEZ.js → chunk-AIJS74LG.js} +3 -3
  28. package/dist/{chunk-HB7FJOY4.js → chunk-AJ5R4GM6.js} +1 -1
  29. package/dist/{chunk-VRW6EBHV.js → chunk-BAKPN2D2.js} +101 -94
  30. package/dist/{chunk-OTHDVXOJ.js → chunk-CVPWZ5LY.js} +3 -3
  31. package/dist/{chunk-BIAC7IJT.js → chunk-DDNS2674.js} +1 -1
  32. package/dist/{chunk-QFSCCQIR.js → chunk-DMKI64EZ.js} +1 -1
  33. package/dist/{chunk-EPE2HRJK.js → chunk-DUU77E2S.js} +69 -64
  34. package/dist/{chunk-ZIYZ77MR.js → chunk-EGO6Z24R.js} +3 -3
  35. package/dist/{chunk-KC5XXX3X.js → chunk-EOOEC32M.js} +1 -1
  36. package/dist/{chunk-3IBMBNYY.js → chunk-ETNQF37F.js} +10 -10
  37. package/dist/{chunk-XIHCMVMG.js → chunk-FDL4HV44.js} +2 -2
  38. package/dist/{chunk-GBGJ7A3D.js → chunk-FJLHVAPO.js} +6 -6
  39. package/dist/{chunk-QZ3AZTXI.js → chunk-FJWEYVEM.js} +42 -16
  40. package/dist/{chunk-IHTRYDFN.js → chunk-FKLYMV3U.js} +1 -1
  41. package/dist/{chunk-PUGIRFPX.js → chunk-FMNVTKX2.js} +4 -4
  42. package/dist/{chunk-GEMJYBRU.js → chunk-HBGJYBGE.js} +2 -2
  43. package/dist/{chunk-U5QY7KTN.js → chunk-HTM4CIFS.js} +11 -8
  44. package/dist/{chunk-T42U2W2R.js → chunk-IXLUTE6N.js} +1 -1
  45. package/dist/{chunk-FDT6KQV4.js → chunk-JBQJKC23.js} +2 -2
  46. package/dist/{chunk-IEIJRMLZ.js → chunk-JDB65PPT.js} +62 -63
  47. package/dist/{chunk-USDEMXXL.js → chunk-JYVGYKXG.js} +1 -1
  48. package/dist/{chunk-PLR7Z6TC.js → chunk-K7ES5RSK.js} +1 -1
  49. package/dist/{chunk-VHFEMFYL.js → chunk-KFZUUXUN.js} +3 -3
  50. package/dist/{chunk-GRY3PN3K.js → chunk-KG265HQ7.js} +2 -2
  51. package/dist/{chunk-R42WWQVB.js → chunk-KPJMBC4K.js} +2 -2
  52. package/dist/{chunk-MAYCCGMQ.js → chunk-KVGDFUVO.js} +1 -1
  53. package/dist/{chunk-CFUXNBWH.js → chunk-LE7T4ML7.js} +1 -1
  54. package/dist/{chunk-MQZVBHEY.js → chunk-LFNQDTSH.js} +1 -1
  55. package/dist/{chunk-KIFHYXPB.js → chunk-MOL32UKR.js} +45 -11
  56. package/dist/{chunk-ICKDMTLA.js → chunk-QSSPIATO.js} +2 -2
  57. package/dist/{chunk-3KU3PFDW.js → chunk-R6R74HNZ.js} +74 -66
  58. package/dist/{chunk-ADF3X6GM.js → chunk-SYMSKGXI.js} +2 -2
  59. package/dist/{chunk-ZEUONDQG.js → chunk-SYUGVPYH.js} +1 -1
  60. package/dist/{chunk-BFACGEII.js → chunk-TBOMPYG6.js} +2 -2
  61. package/dist/{chunk-XBX4QJP7.js → chunk-TH4OXAWY.js} +1 -1
  62. package/dist/{chunk-GMAJB2P6.js → chunk-UOBYRLDD.js} +1 -1
  63. package/dist/{chunk-4QWD6JYN.js → chunk-UZUUVYAO.js} +3 -3
  64. package/dist/{chunk-PJ3HDUCY.js → chunk-VAS6HQX3.js} +39 -9
  65. package/dist/{chunk-6LGNTUZN.js → chunk-VT563F4O.js} +7 -7
  66. package/dist/{chunk-UXO2L7HJ.js → chunk-WU2B74TL.js} +267 -65
  67. package/dist/{chunk-OB5MJR4W.js → chunk-WUZ6TMAO.js} +1 -1
  68. package/dist/{chunk-GQJZORQP.js → chunk-XBSPQ52S.js} +1 -1
  69. package/dist/{chunk-4ORLNTET.js → chunk-XJUZEB44.js} +1 -1
  70. package/dist/{chunk-LAFJSYDL.js → chunk-XVIYZU3D.js} +1 -1
  71. package/dist/{chunk-GXJEGZL2.js → chunk-Z5C4LEAD.js} +17 -18
  72. package/dist/chunk-Z6FLHIDV.js +3795 -0
  73. package/dist/{chunk-DDIVWXN7.js → chunk-ZFN6GQU4.js} +4 -4
  74. package/dist/{chunk-DWUKJQTO.js → chunk-ZVZSFDW3.js} +2 -2
  75. package/dist/{chunk-5NRXZGKK.js → chunk-ZZ7H4IJ6.js} +9 -9
  76. package/dist/{clean-RDKJB5FK.js → clean-2GDD2B4F.js} +23 -23
  77. package/dist/cli.js +52 -52
  78. package/dist/{cloud-QVPVVNCW.js → cloud-LUKGDTTE.js} +4 -4
  79. package/dist/{cloudrun-3RE2UCQG.js → cloudrun-NQF5KFQI.js} +6 -6
  80. package/dist/{compare-LEDOY7MO.js → compare-4P6O4ONG.js} +32 -32
  81. package/dist/{compiler-F54OZZPM.js → compiler-ACCPOZMQ.js} +6 -6
  82. package/dist/{component-N42M67WY.js → component-SDDOLNJD.js} +3 -3
  83. package/dist/{compositions-VB2J2LZI.js → compositions-P2L6HUVQ.js} +15 -15
  84. package/dist/{delete-Q6RWMJ4Z.js → delete-Q6S4BJ3F.js} +2 -2
  85. package/dist/{deterministicFonts-U2BIMGPG.js → deterministicFonts-C5JQLCTS.js} +2 -2
  86. package/dist/{dist-Q4BI5A73.js → dist-GPDOV3IQ.js} +4 -4
  87. package/dist/{dist-KDJTFJHA.js → dist-HUMFCJ6T.js} +3 -3
  88. package/dist/{doctor-JMMUHDRV.js → doctor-NL73UKHV.js} +15 -15
  89. package/dist/{events-RGUAHIBW.js → events-AVOPOKO3.js} +5 -5
  90. package/dist/{events-6ZBSIBE5.js → events-X7KPU7LG.js} +4 -4
  91. package/dist/{feedback-FIID6MZW.js → feedback-GJZ5NXSH.js} +10 -10
  92. package/dist/{ffmpeg-T5SH2EFJ.js → ffmpeg-5V4FP3R6.js} +2 -2
  93. package/dist/{figma-BL3JJC36.js → figma-V7SVQQI5.js} +3 -3
  94. package/dist/fontLocalizeCli.js +14 -14
  95. package/dist/{get-P46GS7S6.js → get-FO3YZYEU.js} +2 -2
  96. package/dist/{gpuPolicy-AQ2BPLBK.js → gpuPolicy-QGS4TFWP.js} +10 -10
  97. package/dist/{grade-compare-GDCWU7ZZ.js → grade-compare-7ICSN7KE.js} +33 -33
  98. package/dist/{help-HJR3RWFG.js → help-Y5LYZG7K.js} +2 -2
  99. package/dist/{history-GGO5AWJB.js → history-RKGBRNLD.js} +49 -22
  100. package/dist/hyperframe-runtime.js +214 -68
  101. package/dist/hyperframe.manifest.json +1 -1
  102. package/dist/hyperframe.runtime.iife.js +214 -68
  103. package/dist/hyperframes-player.global.js +4 -5
  104. package/dist/hyperframes-slideshow.global.js +3 -4
  105. package/dist/{info-3GFWUBJC.js → info-GGUTL2NR.js} +11 -11
  106. package/dist/{init-36OPU2ZG.js → init-PG7NA5SQ.js} +31 -31
  107. package/dist/{inspect-F2HEL5ON.js → inspect-FCXUB6DE.js} +33 -33
  108. package/dist/{installer-NI6P6GC4.js → installer-LZ4X5TZZ.js} +6 -6
  109. package/dist/{keyframes-7OY3LMAZ.js → keyframes-R3K6WJ3N.js} +8 -8
  110. package/dist/{lambda-6GJIWNJ3.js → lambda-3GAKHMC3.js} +7 -7
  111. package/dist/{layout-FTMLNL5A.js → layout-XNIZIGA2.js} +33 -33
  112. package/dist/{lint-U6POHUON.js → lint-4KDS2F4O.js} +11 -11
  113. package/dist/{lintProject-UBZ3TDHU.js → lintProject-SSEXWCH6.js} +3 -3
  114. package/dist/{list-IP5KI5Q2.js → list-OVPURFPK.js} +2 -2
  115. package/dist/{login-4VWTVPHG.js → login-EE2AX2PE.js} +4 -4
  116. package/dist/{manager-YKMHR6LN.js → manager-5ORDVWJB.js} +3 -3
  117. package/dist/{media-treatment-XGV44AGV.js → media-treatment-UDUEOP67.js} +82 -54
  118. package/dist/{models-UCXB6UR5.js → models-LPK2O4B2.js} +14 -14
  119. package/dist/{motionShot-WPVNBXKA.js → motionShot-G76XBOYI.js} +35 -29
  120. package/dist/{normalize-audio-TYJ3UEHO.js → normalize-audio-TUKWZ3OR.js} +10 -10
  121. package/dist/{open-HENOLVB2.js → open-7XB2TGVB.js} +6 -6
  122. package/dist/{parakeetRunner-VFQ6WFTD.js → parakeetRunner-DL556HXL.js} +14 -14
  123. package/dist/{pipeline-6WPSC3H4.js → pipeline-34N5DLWU.js} +11 -11
  124. package/dist/{play-OI53WNUM.js → play-DDA2UUQF.js} +26 -26
  125. package/dist/{preflight-B4AFK3RG.js → preflight-ONF5AJNO.js} +5 -5
  126. package/dist/{present-NGMEQ4NO.js → present-LLNRKXF5.js} +23 -23
  127. package/dist/{preview-VT2HWRWZ.js → preview-H3ZZS46F.js} +57 -26
  128. package/dist/{producer-7TYEAUF7.js → producer-IFQOZK2G.js} +1 -1
  129. package/dist/{projectConfig-B2AF5DXY.js → projectConfig-SBRMQZGG.js} +8 -8
  130. package/dist/{publication-2PANQVC6.js → publication-5BQICRZO.js} +4 -4
  131. package/dist/{publish-O5OL42BG.js → publish-XDUZA3E3.js} +27 -26
  132. package/dist/{remove-background-T2JM6UVP.js → remove-background-GNKRMFQS.js} +12 -12
  133. package/dist/{render-Z253WHBK.js → render-JM6KNRIA.js} +27 -27
  134. package/dist/{render-OLPKOJRU.js → render-KTTC3EE5.js} +12 -12
  135. package/dist/{render-W7OFXDOJ.js → render-PCFO45RK.js} +5 -5
  136. package/dist/{render-batch-46IIBFKL.js → render-batch-7R2NRNVJ.js} +5 -5
  137. package/dist/{renderCancellation-QTZOCDJ2.js → renderCancellation-GP3XD2FS.js} +10 -10
  138. package/dist/renderSetupWorker.js +3 -3
  139. package/dist/{resolver-J2PL5FVJ.js → resolver-C4FPX72I.js} +6 -6
  140. package/dist/{sherpa-ZF42V3RN.js → sherpa-MZP3MV2X.js} +14 -14
  141. package/dist/skills/media-use/references/media-treatments.md +5 -1
  142. package/dist/{skills-ACDOO3PX.js → skills-OET4XSHR.js} +7 -7
  143. package/dist/{skillsUpdateCheck-L5OXVVPU.js → skillsUpdateCheck-IPFSKKJD.js} +3 -3
  144. package/dist/{slideshow-4OJEPWNZ.js → slideshow-YTWATJRT.js} +1 -1
  145. package/dist/{snapshot-UUVNZOW5.js → snapshot-EC4N75MS.js} +34 -34
  146. package/dist/{src-BSLKXEGX.js → src-LIERUCFW.js} +11 -9
  147. package/dist/{src-KS3AWFGT.js → src-ZZQJOKO6.js} +13 -13
  148. package/dist/{staticProjectServer-2TTVGPQH.js → staticProjectServer-YH2RHYKW.js} +20 -20
  149. package/dist/{status-LXPGSSKY.js → status-PTKNQD2E.js} +2 -2
  150. package/dist/studio/assets/{hyperframes-player-DZ5JrMDg.js → hyperframes-player-tkxyWf5H.js} +3 -3
  151. package/dist/studio/assets/{index-BqFRhNZa.js → index-BrdqOkqP.js} +1 -1
  152. package/dist/studio/assets/{index-D8W0a0Z9.js → index-Cg48BxAo.js} +135 -135
  153. package/dist/studio/assets/{index-BOs6C0aZ.js → index-Dllxg4aU.js} +1 -1
  154. package/dist/studio/index.html +1 -1
  155. package/dist/{studio-api-WYWF7XRC.js → studio-api-T2TS2CHL.js} +16 -14
  156. package/dist/{studioServer-3FG4YTP7.js → studioServer-GJVVJUEL.js} +50 -50
  157. package/dist/{system-OQLOGGPJ.js → system-OXRG57F2.js} +2 -2
  158. package/dist/{telemetry-PAOOB4T4.js → telemetry-ZQ5XVE6Z.js} +5 -5
  159. package/dist/{timeline-JIIJKKPC.js → timeline-I2T5WIPD.js} +34 -25
  160. package/dist/{tokens-3QRAM75Z.js → tokens-ONUWOXEX.js} +2 -2
  161. package/dist/{transcribe-QSBP5MUG.js → transcribe-BCQMA537.js} +12 -12
  162. package/dist/{transcribe-SZB6UMXE.js → transcribe-ZLJF7V5Y.js} +13 -13
  163. package/dist/{updateCheck-V3DSB26K.js → updateCheck-ZWHDXF73.js} +2 -2
  164. package/dist/{upgrade-L5GISOEV.js → upgrade-32JGFZWS.js} +2 -2
  165. package/dist/{urlDownloader-52FERT4X.js → urlDownloader-EVDP43GM.js} +9 -9
  166. package/dist/{validate-HVVLX7KO.js → validate-G4PUGQCI.js} +27 -27
  167. package/dist/{video-MEOWRMFG.js → video-TILEY3VJ.js} +10 -10
  168. package/package.json +3 -2
  169. package/dist/chunk-AUWHD7RA.js +0 -3753
  170. package/dist/studio/chunk-6JY3MTIX.js +0 -1204
  171. package/dist/studio/chunk-EEXSYY5F.js +0 -190
  172. package/dist/studio/chunk-NZPJUZKT.js +0 -1538
  173. package/dist/studio/chunk-PZ5AY32C.js +0 -10
  174. package/dist/studio/chunk-TP6D3U37.js +0 -845
  175. package/dist/studio/chunk-Y2OHHNM2.js +0 -970
  176. package/dist/studio/domEditingLayers-PTP2ICGM.js +0 -47
  177. package/dist/studio/index.css +0 -165
  178. package/dist/studio/index.d.ts +0 -4318
  179. package/dist/studio/index.js +0 -100952
  180. package/dist/studio/player.d.ts +0 -30
  181. package/dist/studio/player.js +0 -10
  182. package/dist/studio/styles/tailwind-preset.d.ts +0 -39
  183. package/dist/studio/styles/tailwind-preset.js +0 -50
  184. package/dist/studio/styles.css +0 -1
  185. package/dist/studio/ui.d.ts +0 -297
  186. package/dist/studio/ui.js +0 -66
@@ -1,4 +1,4 @@
1
- "use strict";var HyperframesPlayer=(()=>{var k=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var Y=Object.getOwnPropertyNames;var X=Object.prototype.hasOwnProperty;var J=(n,e)=>{for(var t in e)k(n,t,{get:e[t],enumerable:!0})},Q=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Y(e))!X.call(n,r)&&r!==t&&k(n,r,{get:()=>e[r],enumerable:!(i=V(e,r))||i.enumerable});return n};var Z=n=>Q(k({},"__esModule",{value:!0}),n);var Fe={};J(Fe,{HyperframesSlideshow:()=>b,childrenMayStillArrive:()=>B,dropInvalidSlides:()=>K,locateSlideshowParts:()=>_});var ee="application/hyperframes-slideshow+json";function te(n="i"){let e=ee.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`<script[^>]*type=["']${e}["'][^>]*>([\\s\\S]*?)<\\/script>`,n)}function A(n){let t=te("i").exec(n);if(!t||t[1]===void 0)return null;let i=t[1].trim();if(i.length===0)return null;let r=JSON.parse(i);if(!ae(r))throw new Error("slideshow island is not a valid SlideshowManifest");return r}function ne(n){return n===void 0||Array.isArray(n)&&n.every(e=>typeof e=="number")}function ie(n){return n===void 0||typeof n=="boolean"}function S(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}function re(n){return S(n)&&[n.x,n.y,n.w,n.h].every(e=>typeof e=="number"&&Number.isFinite(e))}function se(n){return S(n)&&typeof n.id=="string"&&typeof n.label=="string"&&typeof n.target=="string"&&(n.region===void 0||re(n.region))}function C(n){if(!S(n))return!1;let e=n;return!(typeof e.sceneId!="string"||!ne(e.fragments)||e.hotspots!==void 0&&(!Array.isArray(e.hotspots)||!e.hotspots.every(se))||!ie(e.autoplay))}function oe(n){if(typeof n!="object"||n===null)return!1;let e=n;return typeof e.id=="string"&&typeof e.label=="string"&&Array.isArray(e.slides)&&e.slides.every(C)}function ae(n){if(typeof n!="object"||n===null||Array.isArray(n))return!1;let e=n;return!(!Array.isArray(e.slides)||!e.slides.every(C)||e.slideSequences!==void 0&&(!Array.isArray(e.slideSequences)||!e.slideSequences.every(oe)))}function le(n,e){return`slide "${n}" sets ${e==="startTime"?"endTime":"startTime"} but ${e} cannot be resolved (no scene "${n}")`}function de(n,e,t){let{startTime:i,endTime:r,sceneId:s}=n;if(i!==void 0&&r!==void 0)return{start:i,end:r};if(i===void 0&&r===void 0)return e?{start:e.start,end:e.start+e.duration}:(t.push(`slide references unresolved sceneId "${s}"`),{start:0,end:0});if(!e){let a=i===void 0?"startTime":"endTime";t.push(le(s,a));let d=i??r??0;return{start:d,end:d}}return{start:i??e.start,end:r??e.start+e.duration}}function ue(n,e,t,i,r){for(let s of e)(s<t||s>i)&&r.push(`slide "${n}" fragment ${s} is outside range [${t}, ${i}]`)}function P(n,e,t){let i=e.get(n.sceneId),{start:r,end:s}=de(n,i,t);n.startTime!==void 0&&n.endTime!==void 0&&s<=r&&t.push(`slide "${n.sceneId}" has endTime (${s}) <= startTime (${r})`);let a=[...new Set(n.fragments??[])].sort((d,o)=>d-o);return ue(n.sceneId,a,r,s,t),{...n,start:r,end:s,fragments:a,hotspots:n.hotspots??[]}}function L(n,e){let t=[],i=new Map(e.map(o=>[o.id,o])),r={};for(let o of n.slideSequences??[])Object.prototype.hasOwnProperty.call(r,o.id)&&t.push(`duplicate slideSequence id "${o.id}" \u2014 only the last definition is kept`),r[o.id]={id:o.id,label:o.label,slides:o.slides.map(l=>P(l,i,t))};let s=n.slides.map(o=>P(o,i,t)),a=[...s,...Object.values(r).flatMap(o=>o.slides)];for(let o of a)for(let l of o.hotspots){let u=r[l.target];u?u.slides.length===0&&t.push(`hotspot "${l.id}" targets empty sequence "${l.target}"`):t.push(`hotspot "${l.id}" targets unknown sequence "${l.target}"`)}let d=[...s].sort((o,l)=>o.start-l.start);for(let o=1;o<d.length;o++){let l=d[o-1],u=d[o];l!==void 0&&u!==void 0&&u.start<l.end&&t.push(`main-line slides "${l.sceneId}" and "${u.sceneId}" overlap`)}return{resolved:{slides:s,sequences:r},errors:t}}var f="main",y=class{constructor(e,t){this.player=e;this.show=t;this.enterSlide(0)}player;show;stack=[{sequenceId:f,slideIndex:0,fragmentIndex:-1}];changeCbs=new Set;dispose(){}slidesOf(e){return e===f?this.show.slides:this.show.sequences[e]?.slides??[]}get frame(){return this.stack[this.stack.length-1]}get currentSlide(){return this.slidesOf(this.frame.sequenceId)[this.frame.slideIndex]}get nextSlide(){return this.slidesOf(this.frame.sequenceId)[this.frame.slideIndex+1]??null}get position(){return{...this.frame}}get counter(){return{index:this.frame.slideIndex+1,total:this.slidesOf(this.frame.sequenceId).length}}get canPrev(){return this.frame.slideIndex>0||this.stack.length>1}get canNext(){let e=this.slidesOf(this.frame.sequenceId);return this.frame.slideIndex+1<e.length||this.stack.length>1}get breadcrumb(){return this.stack.map(e=>e.sequenceId===f?{id:f,label:"Main deck"}:{id:e.sequenceId,label:this.show.sequences[e.sequenceId]?.label??e.sequenceId})}onChange(e){return this.changeCbs.add(e),()=>this.changeCbs.delete(e)}emitChange(){for(let e of this.changeCbs)e()}stopSlideMedia(){this.player.stopMedia?.()}enterSlide(e){e!==this.frame.slideIndex&&this.stopSlideMedia(),this.frame.slideIndex=e;let t=this.currentSlide;if(!t){this.frame.fragmentIndex=-1;return}t.fragments.length>0?(this.frame.fragmentIndex=0,this.playTo(t.fragments[0]??t.end)):(this.frame.fragmentIndex=-1,this.playTo(this.restFrame(t))),t.autoplay&&this.player.playSceneMedia?.(t.sceneId),this.emitChange()}restFrame(e){return e.start+(e.end-e.start)*.5}resumeSlide(e,t){this.frame.slideIndex=e,this.frame.fragmentIndex=t;let i=this.currentSlide;if(!i)return;let r=t>=0&&t<i.fragments.length?i.fragments[t]??i.start:i.fragments.length>0?i.start:this.restFrame(i);this.playTo(r),this.emitChange()}playTo(e){this.player.seek(e)}next(){let e=this.currentSlide;if(!e)return;if(this.frame.fragmentIndex+1<e.fragments.length){this.frame.fragmentIndex+=1;let r=e.fragments[this.frame.fragmentIndex]??e.end;this.playTo(r),this.emitChange();return}let i=this.slidesOf(this.frame.sequenceId);this.frame.slideIndex+1<i.length?this.enterSlide(this.frame.slideIndex+1):this.stack.length>1&&this.back()}prev(){if(this.frame.slideIndex>0){this.enterSlide(this.frame.slideIndex-1);return}this.stack.length>1&&this.back()}goToSlide(e){let t=this.slidesOf(this.frame.sequenceId);e>=0&&e<t.length&&this.enterSlide(e)}enterBranch(e){let t=this.show.sequences[e];!t||t.slides.length===0||(this.stopSlideMedia(),this.stack.push({sequenceId:e,slideIndex:0,fragmentIndex:-1}),this.enterSlide(0))}back(){this.stack.length<=1||(this.stopSlideMedia(),this.stack.pop(),this.resumeSlide(this.frame.slideIndex,this.frame.fragmentIndex))}backToMain(){this.stack.length<=1||(this.stopSlideMedia(),this.stack=[this.stack[0]],this.resumeSlide(this.frame.slideIndex,this.frame.fragmentIndex))}syncTo(e,t,i){this.isValidSyncTarget(e,t)&&(this.isCrossSlide(e,t)&&this.stopSlideMedia(),this.rerootStackTo(e)&&this.resumeSlide(t,i))}isValidSyncTarget(e,t){if(!this.stack[0])return!1;let i=e===f?this.show.slides:this.show.sequences[e]?.slides??null;return i?t>=0&&t<i.length:!1}isCrossSlide(e,t){return this.frame.sequenceId!==e||this.frame.slideIndex!==t}rerootStackTo(e){if(this.frame.sequenceId===e)return!0;let t=this.stack[0];if(!t)return!1;if(this.stack=[t],e===f)return!0;let i=this.show.sequences[e];return!i||i.slides.length===0?!1:(this.stack.push({sequenceId:e,slideIndex:0,fragmentIndex:-1}),!0)}};var $="Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",ce=new Set(["play","pause","seeking","seeked","ratechange","volumechange","ended","timeupdate"]),he=["currentTime","volume","playbackRate"],pe=["paused","ended","muted"];function R(n){return!(typeof n!="object"||n===null)}function fe(n){if(!R(n))return!1;let e=n;return e.type==="goto"&&typeof e.sequenceId=="string"&&typeof e.slideIndex=="number"&&typeof e.fragmentIndex=="number"}function me(n){return ce.has(n)}function ve(n){return n==="presenter"||n==="audience"}function ye(n){return he.every(e=>typeof n[e]=="number")}function ge(n){return pe.every(e=>typeof n[e]=="boolean")}function be(n){if(!R(n))return!1;let e=n;return e.type==="media"&&ve(e.sender)&&typeof e.key=="string"&&me(e.action)&&ye(e)&&ge(e)}function Me(){return`hf-slideshow:${typeof location<"u"?location.pathname:""}`}var m=class{constructor(e,t,i=()=>{}){this.mode=e;this.onGoto=t;this.onMedia=i;try{this.channel=new BroadcastChannel(Me())}catch{return}this.channel.onmessage=r=>{if(fe(r.data)){e==="audience"&&this.onGoto(r.data);return}be(r.data)&&r.data.sender!==e&&this.onMedia(r.data)}}mode;onGoto;onMedia;channel=null;postPosition(e){if(this.mode!=="presenter"||!this.channel)return;let t={type:"goto",...e};this.channel.postMessage(t)}postMedia(e){this.channel&&this.channel.postMessage({type:"media",sender:this.mode,...e})}destroy(){this.channel&&(this.channel.onmessage=null,this.channel.close(),this.channel=null)}};function F(n){let e=s=>s.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),t=s=>e(s).replace(/"/g,"&quot;"),i=e(n.notes),r=n.hotspots.length?`<div style="display:flex;flex-direction:column;gap:6px;">
1
+ "use strict";var HyperframesPlayer=(()=>{var k=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var Y=Object.getOwnPropertyNames;var X=Object.prototype.hasOwnProperty;var J=(n,e)=>{for(var t in e)k(n,t,{get:e[t],enumerable:!0})},Q=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Y(e))!X.call(n,r)&&r!==t&&k(n,r,{get:()=>e[r],enumerable:!(i=V(e,r))||i.enumerable});return n};var Z=n=>Q(k({},"__esModule",{value:!0}),n);var Fe={};J(Fe,{HyperframesSlideshow:()=>b,childrenMayStillArrive:()=>B,dropInvalidSlides:()=>K,locateSlideshowParts:()=>_});var ee="application/hyperframes-slideshow+json";function te(n="i"){let e=ee.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`<script[^>]*type=["']${e}["'][^>]*>([\\s\\S]*?)<\\/script>`,n)}function A(n){let t=te("i").exec(n);if(!t||t[1]===void 0)return null;let i=t[1].trim();if(i.length===0)return null;let r=JSON.parse(i);if(!ae(r))throw new Error("slideshow island is not a valid SlideshowManifest");return r}function ne(n){return n===void 0||Array.isArray(n)&&n.every(e=>typeof e=="number")}function ie(n){return n===void 0||typeof n=="boolean"}function S(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}function re(n){return S(n)&&[n.x,n.y,n.w,n.h].every(e=>typeof e=="number"&&Number.isFinite(e))}function se(n){return S(n)&&typeof n.id=="string"&&typeof n.label=="string"&&typeof n.target=="string"&&(n.region===void 0||re(n.region))}function C(n){if(!S(n))return!1;let e=n;return!(typeof e.sceneId!="string"||!ne(e.fragments)||e.hotspots!==void 0&&(!Array.isArray(e.hotspots)||!e.hotspots.every(se))||!ie(e.autoplay))}function oe(n){if(typeof n!="object"||n===null)return!1;let e=n;return typeof e.id=="string"&&typeof e.label=="string"&&Array.isArray(e.slides)&&e.slides.every(C)}function ae(n){if(typeof n!="object"||n===null||Array.isArray(n))return!1;let e=n;return!(!Array.isArray(e.slides)||!e.slides.every(C)||e.slideSequences!==void 0&&(!Array.isArray(e.slideSequences)||!e.slideSequences.every(oe)))}function le(n,e){return`slide "${n}" sets ${e==="startTime"?"endTime":"startTime"} but ${e} cannot be resolved (no scene "${n}")`}function de(n,e,t){let{startTime:i,endTime:r,sceneId:s}=n;if(i!==void 0&&r!==void 0)return{start:i,end:r};if(i===void 0&&r===void 0)return e?{start:e.start,end:e.start+e.duration}:(t.push(`slide references unresolved sceneId "${s}"`),{start:0,end:0});if(!e){let a=i===void 0?"startTime":"endTime";t.push(le(s,a));let d=i??r??0;return{start:d,end:d}}return{start:i??e.start,end:r??e.start+e.duration}}function ue(n,e,t,i,r){for(let s of e)(s<t||s>i)&&r.push(`slide "${n}" fragment ${s} is outside range [${t}, ${i}]`)}function P(n,e,t){let i=e.get(n.sceneId),{start:r,end:s}=de(n,i,t);n.startTime!==void 0&&n.endTime!==void 0&&s<=r&&t.push(`slide "${n.sceneId}" has endTime (${s}) <= startTime (${r})`);let a=[...new Set(n.fragments??[])].sort((d,o)=>d-o);return ue(n.sceneId,a,r,s,t),{...n,start:r,end:s,fragments:a,hotspots:n.hotspots??[]}}function L(n,e){let t=[],i=new Map(e.map(o=>[o.id,o])),r={};for(let o of n.slideSequences??[])Object.prototype.hasOwnProperty.call(r,o.id)&&t.push(`duplicate slideSequence id "${o.id}": only the last definition is kept`),r[o.id]={id:o.id,label:o.label,slides:o.slides.map(l=>P(l,i,t))};let s=n.slides.map(o=>P(o,i,t)),a=[...s,...Object.values(r).flatMap(o=>o.slides)];for(let o of a)for(let l of o.hotspots){let u=r[l.target];u?u.slides.length===0&&t.push(`hotspot "${l.id}" targets empty sequence "${l.target}"`):t.push(`hotspot "${l.id}" targets unknown sequence "${l.target}"`)}let d=[...s].sort((o,l)=>o.start-l.start);for(let o=1;o<d.length;o++){let l=d[o-1],u=d[o];l!==void 0&&u!==void 0&&u.start<l.end&&t.push(`main-line slides "${l.sceneId}" and "${u.sceneId}" overlap`)}return{resolved:{slides:s,sequences:r},errors:t}}var f="main",y=class{constructor(e,t){this.player=e;this.show=t;this.enterSlide(0)}player;show;stack=[{sequenceId:f,slideIndex:0,fragmentIndex:-1}];changeCbs=new Set;dispose(){}slidesOf(e){return e===f?this.show.slides:this.show.sequences[e]?.slides??[]}get frame(){return this.stack[this.stack.length-1]}get currentSlide(){return this.slidesOf(this.frame.sequenceId)[this.frame.slideIndex]}get nextSlide(){return this.slidesOf(this.frame.sequenceId)[this.frame.slideIndex+1]??null}get position(){return{...this.frame}}get counter(){return{index:this.frame.slideIndex+1,total:this.slidesOf(this.frame.sequenceId).length}}get canPrev(){return this.frame.slideIndex>0||this.stack.length>1}get canNext(){let e=this.slidesOf(this.frame.sequenceId);return this.frame.slideIndex+1<e.length||this.stack.length>1}get breadcrumb(){return this.stack.map(e=>e.sequenceId===f?{id:f,label:"Main deck"}:{id:e.sequenceId,label:this.show.sequences[e.sequenceId]?.label??e.sequenceId})}onChange(e){return this.changeCbs.add(e),()=>this.changeCbs.delete(e)}emitChange(){for(let e of this.changeCbs)e()}stopSlideMedia(){this.player.stopMedia?.()}enterSlide(e){e!==this.frame.slideIndex&&this.stopSlideMedia(),this.frame.slideIndex=e;let t=this.currentSlide;if(!t){this.frame.fragmentIndex=-1;return}t.fragments.length>0?(this.frame.fragmentIndex=0,this.playTo(t.fragments[0]??t.end)):(this.frame.fragmentIndex=-1,this.playTo(this.restFrame(t))),t.autoplay&&this.player.playSceneMedia?.(t.sceneId),this.emitChange()}restFrame(e){return e.start+(e.end-e.start)*.5}resumeSlide(e,t){this.frame.slideIndex=e,this.frame.fragmentIndex=t;let i=this.currentSlide;if(!i)return;let r=t>=0&&t<i.fragments.length?i.fragments[t]??i.start:i.fragments.length>0?i.start:this.restFrame(i);this.playTo(r),this.emitChange()}playTo(e){this.player.seek(e)}next(){let e=this.currentSlide;if(!e)return;if(this.frame.fragmentIndex+1<e.fragments.length){this.frame.fragmentIndex+=1;let r=e.fragments[this.frame.fragmentIndex]??e.end;this.playTo(r),this.emitChange();return}let i=this.slidesOf(this.frame.sequenceId);this.frame.slideIndex+1<i.length?this.enterSlide(this.frame.slideIndex+1):this.stack.length>1&&this.back()}prev(){if(this.frame.slideIndex>0){this.enterSlide(this.frame.slideIndex-1);return}this.stack.length>1&&this.back()}goToSlide(e){let t=this.slidesOf(this.frame.sequenceId);e>=0&&e<t.length&&this.enterSlide(e)}enterBranch(e){let t=this.show.sequences[e];!t||t.slides.length===0||(this.stopSlideMedia(),this.stack.push({sequenceId:e,slideIndex:0,fragmentIndex:-1}),this.enterSlide(0))}back(){this.stack.length<=1||(this.stopSlideMedia(),this.stack.pop(),this.resumeSlide(this.frame.slideIndex,this.frame.fragmentIndex))}backToMain(){this.stack.length<=1||(this.stopSlideMedia(),this.stack=[this.stack[0]],this.resumeSlide(this.frame.slideIndex,this.frame.fragmentIndex))}syncTo(e,t,i){this.isValidSyncTarget(e,t)&&(this.isCrossSlide(e,t)&&this.stopSlideMedia(),this.rerootStackTo(e)&&this.resumeSlide(t,i))}isValidSyncTarget(e,t){if(!this.stack[0])return!1;let i=e===f?this.show.slides:this.show.sequences[e]?.slides??null;return i?t>=0&&t<i.length:!1}isCrossSlide(e,t){return this.frame.sequenceId!==e||this.frame.slideIndex!==t}rerootStackTo(e){if(this.frame.sequenceId===e)return!0;let t=this.stack[0];if(!t)return!1;if(this.stack=[t],e===f)return!0;let i=this.show.sequences[e];return!i||i.slides.length===0?!1:(this.stack.push({sequenceId:e,slideIndex:0,fragmentIndex:-1}),!0)}};var $="Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",ce=new Set(["play","pause","seeking","seeked","ratechange","volumechange","ended","timeupdate"]),he=["currentTime","volume","playbackRate"],pe=["paused","ended","muted"];function R(n){return!(typeof n!="object"||n===null)}function fe(n){if(!R(n))return!1;let e=n;return e.type==="goto"&&typeof e.sequenceId=="string"&&typeof e.slideIndex=="number"&&typeof e.fragmentIndex=="number"}function me(n){return ce.has(n)}function ve(n){return n==="presenter"||n==="audience"}function ye(n){return he.every(e=>typeof n[e]=="number")}function ge(n){return pe.every(e=>typeof n[e]=="boolean")}function be(n){if(!R(n))return!1;let e=n;return e.type==="media"&&ve(e.sender)&&typeof e.key=="string"&&me(e.action)&&ye(e)&&ge(e)}function Me(){return`hf-slideshow:${typeof location<"u"?location.pathname:""}`}var m=class{constructor(e,t,i=()=>{}){this.mode=e;this.onGoto=t;this.onMedia=i;try{this.channel=new BroadcastChannel(Me())}catch{return}this.channel.onmessage=r=>{if(fe(r.data)){e==="audience"&&this.onGoto(r.data);return}be(r.data)&&r.data.sender!==e&&this.onMedia(r.data)}}mode;onGoto;onMedia;channel=null;postPosition(e){if(this.mode!=="presenter"||!this.channel)return;let t={type:"goto",...e};this.channel.postMessage(t)}postMedia(e){this.channel&&this.channel.postMessage({type:"media",sender:this.mode,...e})}destroy(){this.channel&&(this.channel.onmessage=null,this.channel.close(),this.channel=null)}};function F(n){let e=s=>s.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),t=s=>e(s).replace(/"/g,"&quot;"),i=e(n.notes),r=n.hotspots.length?`<div style="display:flex;flex-direction:column;gap:6px;">
2
2
  <div style="font-size:12px;text-transform:uppercase;letter-spacing:.12em;opacity:.55;">Branches</div>
3
3
  ${n.hotspots.map(s=>`<button data-hotspot-id="${t(s.id)}" data-hotspot-target="${t(s.target)}" type="button" title="${t(s.label)}" style="text-align:left;background:rgba(244,183,64,0.14);color:#f4b740;border:1px solid rgba(244,183,64,0.4);border-radius:8px;padding:8px 12px;font-size:15px;cursor:pointer;pointer-events:auto;font-family:inherit;">&#8627; ${e(s.label)}</button>`).join("")}
4
4
  </div>`:"";return`
@@ -25,7 +25,7 @@
25
25
  .hf-hotspot-pill,
26
26
  .hf-nav-spinner { animation: none !important; }
27
27
  }
28
- /* Nav-button hover (replaces inline onmouseover/onmouseout \u2014 CSP-safe).
28
+ /* Nav-button hover (replaces inline onmouseover/onmouseout, CSP-safe).
29
29
  !important beats the inline base color set on each button. */
30
30
  [data-hf-nav-cluster] button:hover {
31
31
  background: rgba(255,255,255,0.12) !important;
@@ -77,7 +77,7 @@
77
77
  [data-hf-muted] [data-hf-mute]:hover {
78
78
  color: rgba(255,255,255,0.6) !important;
79
79
  }
80
- `,document.head.appendChild(n)}var q='<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 3H5a2 2 0 0 0-2 2v3M21 8V5a2 2 0 0 0-2-2h-3M3 16v3a2 2 0 0 0 2 2h3M16 21h3a2 2 0 0 0 2-2v-3"/></svg>',O='<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 3v3a2 2 0 0 1-2 2H3M21 8h-3a2 2 0 0 1-2-2V3M3 16h3a2 2 0 0 1 2 2v3M16 21v-3a2 2 0 0 1 2-2h3"/></svg>',Ie='<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="4" width="18" height="13" rx="2"/><path d="M8 21h8"/><path d="M12 17v4"/><path d="M10 8.5v4l4-2-4-2z"/></svg>',Pe="Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",b=class extends HTMLElement{controller=null;offChange=null;chrome=null;touchStartX=0;touchStartY=0;channel=null;presenterStartMs=null;presenterInterval=null;presenterPositionTimers=[];disconnected=!1;initTimer=null;initRetry=null;initInFlight=!1;initGeneration=0;keyForwardFrame=null;detachIframeKeys=null;warnedIframeKeyForwardingUnavailable=!1;_muted=!1;mediaWireInterval=null;playerObserver=null;applyingRemoteMedia=!1;lastMediaTimeBroadcastMs=0;audienceMutedPlaybackKeys=new Set;blockedAudienceMedia=new Map;audienceMediaUnlockButton=null;autoplayToken=0;ownedMedia=new g(we,(e,t,i)=>this.publishMediaState(e,t,i));get muted(){return this._muted}resolveMode(){let e=this.getAttribute("mode");if(e)return e;try{return new URLSearchParams(location.search).get("mode")}catch{return null}}static get observedAttributes(){return["sound","mode"]}attributeChangedCallback(){this.controller&&this.render()}connectedCallback(){this.disconnected=!1,this.initInFlight=!1,this.initGeneration+=1,this.tabIndex=0,window.addEventListener("keydown",this.onKey),this.addEventListener("touchstart",this.onTouchStart,{passive:!0}),this.addEventListener("touchend",this.onTouchEnd),window.addEventListener("message",this.onMessage),document.addEventListener("fullscreenchange",this.onFsChange),this.initChannel(),this.observeInteractivePlayers(),this.initTimer=setTimeout(()=>{this.initTimer=null,this.isConnected&&!this.disconnected&&(this.ensureInteractivePlayers(),this.init())},0)}disconnectedCallback(){this.disconnected=!0,this.initGeneration+=1,this.autoplayToken++,this.initTimer!==null&&(clearTimeout(this.initTimer),this.initTimer=null),this.initRetry!==null&&(document.removeEventListener("DOMContentLoaded",this.initRetry),this.initRetry=null),window.removeEventListener("keydown",this.onKey),this.detachIframeKeys?.(),this.removeEventListener("touchstart",this.onTouchStart),this.removeEventListener("touchend",this.onTouchEnd),window.removeEventListener("message",this.onMessage),document.removeEventListener("fullscreenchange",this.onFsChange),this.offChange?.(),this.offChange=null,this.controller?.dispose?.(),this.controller=null,this.chrome=null,this.channel?.destroy(),this.channel=null,this.mediaWireInterval!==null&&(clearInterval(this.mediaWireInterval),this.mediaWireInterval=null),this.playerObserver!==null&&(this.playerObserver.disconnect(),this.playerObserver=null),this.ownedMedia.clear(),this.audienceMediaUnlockButton?.remove(),this.audienceMediaUnlockButton=null,this.audienceMutedPlaybackKeys.clear(),this.blockedAudienceMedia.clear(),this.presenterInterval!==null&&(clearInterval(this.presenterInterval),this.presenterInterval=null),this.clearPresenterPositionTimers()}__setControllerForTest(e){this.bindController(e)}present(){if(this.resolveMode()==="audience"||this.getAttribute("data-hf-presenting")==="true")return;let e=new URL(location.href);if(e.searchParams.set("mode","audience"),!this.openAudienceTab(e.href)){console.warn("[hyperframes-slideshow] present(): browser blocked the audience tab");return}this.setAttribute("data-hf-presenting","true"),this.postCurrentPresenterPositionBurst(),this.presenterStartMs=Date.now(),this.presenterInterval===null&&(this.presenterInterval=setInterval(()=>this.updateElapsed(),1e3)),this.render()}openAudienceTab(e){let t=navigator.userActivation;if(t&&t.isActive===!1)return!1;let i=document.createElement("a");return i.href=e,i.target="_blank",i.rel="noopener noreferrer",i.style.display="none",(document.body??document.documentElement).appendChild(i),i.click(),i.remove(),!0}updateElapsed(){if(this.presenterStartMs===null)return;let e=this.chrome?.querySelector("[data-hf-presenter-elapsed]");e&&(e.textContent=T(Math.floor((Date.now()-this.presenterStartMs)/1e3)))}initChannel(){this.resolveMode()==="audience"?this.channel=new m("audience",t=>{this.controller&&this.controller.syncTo?.(t.sequenceId,t.slideIndex,t.fragmentIndex)},this.onRemoteMedia):this.channel=new m("presenter",()=>{},this.onRemoteMedia)}async init(){if(this.initInFlight)return;this.initInFlight=!0;let e=this.initGeneration;try{let t=_(this);if(t.kind==="incomplete"){this.retryInitWhenParsed(e);return}let{player:i,manifest:r}=t;if(this.renderInitialChrome(r),!Se(i)||(await $e(i),e!==this.initGeneration))return;this.attachIframeKeyForwarding(i);let s=await Re(i,2500,()=>e!==this.initGeneration);if(e!==this.initGeneration)return;let{resolved:a,errors:d}=L(r,s);d.length>0&&console.warn("[hyperframes-slideshow] manifest errors:",d);let o=K(a);o.slides.length===0&&r.slides.length>0&&console.error("[hyperframes-slideshow] no main-line slides resolved \u2014 the scene timeline may not have loaded in time, or sceneIds/timing are invalid:",d);let l={seek:u=>i.seek(u),play:()=>i.play(),pause:()=>i.pause(),stopMedia:()=>{i.stopMedia?.(),this.stopDocumentMedia()},playSceneMedia:u=>this.playSceneDocumentMedia(u),get currentTime(){return i.currentTime},onTimeUpdate:u=>{let p=c=>{let M=c.detail;u(M.currentTime)};return i.addEventListener("timeupdate",p),()=>i.removeEventListener("timeupdate",p)}};this.bindController(new y(l,o)),s.length===0&&r.slides.length>0&&i.addEventListener("scenes",()=>{e===this.initGeneration&&this.init()},{once:!0})}finally{this.initInFlight=!1}}retryInitWhenParsed(e){if(this.initRetry!==null||!B(document.readyState))return;let t=()=>{this.initRetry=null,e===this.initGeneration&&this.isConnected&&!this.disconnected&&this.init()};this.initRetry=t,document.addEventListener("DOMContentLoaded",t,{once:!0})}renderInitialChrome(e){if(this.controller||e.slides.length===0)return;let t={index:1,total:e.slides.length};if(this.resolveMode()==="audience"){this.paintChrome(this.buildNavCluster(t,"28px","fs-only"));return}this.paintChrome(this.buildNavCluster(t,"28px","full",{canPrev:!1,canNext:e.slides.length>1,loading:e.slides.length>1}))}bindController(e){this.offChange?.(),this.controller?.dispose?.(),this.controller=e,this.startMediaSync(),this.offChange=e.onChange(()=>{this.resolveMode()!=="audience"&&this.channel&&this.channel.postPosition(e.position),this.render()}),this.resolveMode()!=="audience"&&this.channel&&this.channel.postPosition(e.position),this.render()}postCurrentPresenterPosition(){this.resolveMode()==="audience"||!this.channel||!this.controller||this.channel.postPosition(this.controller.position)}postCurrentPresenterPositionBurst(){this.clearPresenterPositionTimers(),this.postCurrentPresenterPosition();for(let e of[250,750,1500,3e3,5e3]){let t=setTimeout(()=>{this.presenterPositionTimers=this.presenterPositionTimers.filter(i=>i!==t),this.postCurrentPresenterPosition()},e);this.presenterPositionTimers.push(t)}}clearPresenterPositionTimers(){for(let e of this.presenterPositionTimers)clearTimeout(e);this.presenterPositionTimers=[]}startMediaSync(){this.wireSlideshowMedia(),this.mediaWireInterval===null&&(this.mediaWireInterval=setInterval(()=>this.wireSlideshowMedia(),1e3))}mediaPlayerElements(){return Array.from(this.querySelectorAll("hyperframes-player")).filter(e=>e instanceof HTMLElement)}ensureInteractivePlayers(){for(let e of this.querySelectorAll("hyperframes-player"))e.hasAttribute("interactive")||e.setAttribute("interactive","")}observeInteractivePlayers(){typeof MutationObserver>"u"||this.playerObserver===null&&(this.playerObserver=new MutationObserver(()=>this.ensureInteractivePlayers()),this.playerObserver.observe(this,{childList:!0,subtree:!0}))}attachIframeKeyForwarding(e){let t=e.iframeElement;if(!(t instanceof HTMLIFrameElement)||t===this.keyForwardFrame)return;this.detachIframeKeys?.();let i=()=>{try{t.contentWindow?.addEventListener("keydown",this.onKey)}catch{this.warnIframeKeyForwardingUnavailable()}};i(),t.addEventListener("load",i),this.keyForwardFrame=t,this.detachIframeKeys=()=>{t.removeEventListener("load",i);try{t.contentWindow?.removeEventListener("keydown",this.onKey)}catch{this.warnIframeKeyForwardingUnavailable()}this.keyForwardFrame=null,this.detachIframeKeys=null}}warnIframeKeyForwardingUnavailable(){this.warnedIframeKeyForwardingUnavailable||(this.warnedIframeKeyForwardingUnavailable=!0,console.warn("[hyperframes-slideshow] iframe keyboard forwarding is unavailable for this composition, likely because the player iframe is cross-origin. Arrow shortcuts work when focus is outside the iframe."))}playerFrameDocument(e){let t=e.iframeElement;if(!(t instanceof HTMLIFrameElement))return null;try{return t.contentDocument}catch{return null}}mediaKey(e,t,i,r){let s=e.id?`player-id:${e.id}`:`player:${t}`,a=i.id?`id:${i.id}`:`${i.tagName.toLowerCase()}:${r}`;return`${s}|${a}`}mediaEntries(){let e=[];return this.mediaPlayerElements().forEach((t,i)=>{let r=this.playerFrameDocument(t);r&&Array.from(r.querySelectorAll("video,audio")).filter(Ce).forEach((s,a)=>{e.push({key:this.mediaKey(t,i,s,a),el:s})})}),e}wireSlideshowMedia(){let e=this.ownedMedia.sync(this.mediaEntries());for(let t of e)t.muted=this._muted||t.defaultMuted}publishMediaState(e,t,i){if(!(this.applyingRemoteMedia||this.resolveMode()==="audience"||!this.channel)){if(i==="timeupdate"){let r=performance.now();if(r-this.lastMediaTimeBroadcastMs<450&&!e.paused)return;this.lastMediaTimeBroadcastMs=r}this.channel.postMedia({key:t,action:i,currentTime:v(e.currentTime,0),paused:e.paused,ended:e.ended,muted:e.muted,volume:v(e.volume,1),playbackRate:v(e.playbackRate,1)})}}onRemoteMedia=e=>{if(this.resolveMode()!=="audience")return;if(this.blockedAudienceMedia.has(e.key)&&e.action==="timeupdate"){this.blockedAudienceMedia.set(e.key,e),this.showAudienceMediaUnlock();return}this.wireSlideshowMedia();let t=this.mediaEntries().find(i=>i.key===e.key);if(t){this.applyingRemoteMedia=!0;try{this.applyRemoteMedia(t.el,e)}finally{setTimeout(()=>{this.applyingRemoteMedia=!1},300)}}};applyRemoteMedia(e,t){if(t.action==="pause"||t.action==="ended"){this.audienceMutedPlaybackKeys.delete(t.key),this.blockedAudienceMedia.delete(t.key),this.syncRemoteMediaState(e,t,!0),e.pause(),this.hideAudienceMediaUnlockIfClear();return}if(t.action==="play"||t.action==="timeupdate"&&t.paused===!1&&e.paused){this.playAudienceMediaMuted(e,t);return}this.syncRemoteMediaState(e,t,!0)}syncRemoteMediaState(e,t,i){e.playbackRate=v(t.playbackRate,1),e.volume=Math.max(0,Math.min(1,v(t.volume,1))),e.muted=this.audienceMutedPlaybackKeys.has(t.key)?!0:t.muted,i&&Number.isFinite(t.currentTime)&&Math.abs((e.currentTime||0)-t.currentTime)>.35&&(e.currentTime=Math.max(0,t.currentTime))}playAudienceMediaMuted(e,t){this.audienceMutedPlaybackKeys.add(t.key),this.syncRemoteMediaState(e,t,!0),e.muted=!0;try{e.play().then(()=>{this.blockedAudienceMedia.delete(t.key),this.hideAudienceMediaUnlockIfClear()}).catch(()=>{this.blockedAudienceMedia.set(t.key,t),this.showAudienceMediaUnlock()})}catch{this.blockedAudienceMedia.set(t.key,t),this.showAudienceMediaUnlock()}}retryBlockedAudienceMedia=()=>{this.wireSlideshowMedia();let e=new Map(this.mediaEntries().map(t=>[t.key,t.el]));for(let[t,i]of this.blockedAudienceMedia){let r=e.get(t);r&&this.playAudienceMediaMuted(r,i)}};showAudienceMediaUnlock(){if(this.resolveMode()!=="audience"||this.audienceMediaUnlockButton)return;let e=document.createElement("button");e.type="button",e.textContent="Play audience media muted",e.style.cssText="position:fixed;left:50%;bottom:96px;transform:translateX(-50%);z-index:100000;border:0;border-radius:999px;padding:12px 18px;background:#fff;color:#111827;box-shadow:0 10px 32px rgba(0,0,0,.28);font:700 14px/1 system-ui,sans-serif;cursor:pointer;pointer-events:auto;",e.addEventListener("click",this.retryBlockedAudienceMedia),this.appendChild(e),this.audienceMediaUnlockButton=e}hideAudienceMediaUnlockIfClear(){this.blockedAudienceMedia.size>0||!this.audienceMediaUnlockButton||(this.audienceMediaUnlockButton.remove(),this.audienceMediaUnlockButton=null)}onKey=e=>{if(ke(e.target))return;let t=document.activeElement,i=t===this||this.contains(t),r=document.querySelectorAll("hyperframes-slideshow").length>1,s=i||!r&&(t===document.body||t===null);if((e.key==="p"||e.key==="P")&&!e.metaKey&&!e.ctrlKey&&!e.altKey){if(!s||!this.shouldShowPresentControl())return;this.present(),e.preventDefault();return}if(this.controller){if(e.key==="ArrowRight"){if(!s)return;this.controller.next(),e.preventDefault()}else if(e.key==="ArrowLeft"){if(!s)return;this.controller.prev(),e.preventDefault()}else if(e.key===" "){if(!i)return;this.controller.next(),e.preventDefault()}else if(e.key==="Backspace"){if(!i)return;this.controller.prev(),e.preventDefault()}else if((e.key==="f"||e.key==="F")&&!e.metaKey&&!e.ctrlKey&&!e.altKey){if(!i)return;this.toggleFullscreen(),e.preventDefault()}}};onMessage=e=>{if(e.source!==window.parent&&e.source!==window||this.resolveMode()==="audience")return;let t=e.data;!t||!this.controller||(t.type==="next"?this.controller.next():t.type==="prev"?this.controller.prev():t.type==="goto"&&typeof t.slideIndex=="number"?this.controller.goToSlide?.(t.slideIndex):t.type==="back"&&this.controller.back?.())};onTouchStart=e=>{let t=e.touches[0];t&&(this.touchStartX=t.clientX,this.touchStartY=t.clientY)};onTouchEnd=e=>{if(!this.controller)return;let t=e.changedTouches[0];if(!t)return;let i=t.clientX-this.touchStartX,r=t.clientY-this.touchStartY;Math.abs(i)<=40||Math.abs(i)<=Math.abs(r)||(i<0?this.controller.next():this.controller.prev())};render(){if(!this.controller)return;if(this.resolveMode()==="audience"){let{counter:r}=this.controller;this.paintChrome(this.buildNavCluster(r,"28px","fs-only"));return}if(this.getAttribute("data-hf-presenting")==="true"){this.renderPresenter();return}let{counter:e,currentSlide:t}=this.controller;if(!t)return;let i=t.hotspots.map(r=>{let s=r.region?`left:${r.region.x}%;top:${r.region.y}%;`:"right:5%;bottom:18%;";return`<button
80
+ `,document.head.appendChild(n)}var q='<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 3H5a2 2 0 0 0-2 2v3M21 8V5a2 2 0 0 0-2-2h-3M3 16v3a2 2 0 0 0 2 2h3M16 21h3a2 2 0 0 0 2-2v-3"/></svg>',O='<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 3v3a2 2 0 0 1-2 2H3M21 8h-3a2 2 0 0 1-2-2V3M3 16h3a2 2 0 0 1 2 2v3M16 21v-3a2 2 0 0 1 2-2h3"/></svg>',Ie='<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="4" width="18" height="13" rx="2"/><path d="M8 21h8"/><path d="M12 17v4"/><path d="M10 8.5v4l4-2-4-2z"/></svg>',Pe="Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",b=class extends HTMLElement{controller=null;offChange=null;chrome=null;touchStartX=0;touchStartY=0;channel=null;presenterStartMs=null;presenterInterval=null;presenterPositionTimers=[];disconnected=!1;initTimer=null;initRetry=null;initInFlight=!1;initGeneration=0;keyForwardFrame=null;detachIframeKeys=null;warnedIframeKeyForwardingUnavailable=!1;_muted=!1;mediaWireInterval=null;playerObserver=null;applyingRemoteMedia=!1;lastMediaTimeBroadcastMs=0;audienceMutedPlaybackKeys=new Set;blockedAudienceMedia=new Map;audienceMediaUnlockButton=null;autoplayToken=0;ownedMedia=new g(we,(e,t,i)=>this.publishMediaState(e,t,i));get muted(){return this._muted}resolveMode(){let e=this.getAttribute("mode");if(e)return e;try{return new URLSearchParams(location.search).get("mode")}catch{return null}}static get observedAttributes(){return["sound","mode"]}attributeChangedCallback(){this.controller&&this.render()}connectedCallback(){this.disconnected=!1,this.initInFlight=!1,this.initGeneration+=1,this.tabIndex=0,window.addEventListener("keydown",this.onKey),this.addEventListener("touchstart",this.onTouchStart,{passive:!0}),this.addEventListener("touchend",this.onTouchEnd),window.addEventListener("message",this.onMessage),document.addEventListener("fullscreenchange",this.onFsChange),this.initChannel(),this.observeInteractivePlayers(),this.initTimer=setTimeout(()=>{this.initTimer=null,this.isConnected&&!this.disconnected&&(this.ensureInteractivePlayers(),this.init())},0)}disconnectedCallback(){this.disconnected=!0,this.initGeneration+=1,this.autoplayToken++,this.initTimer!==null&&(clearTimeout(this.initTimer),this.initTimer=null),this.initRetry!==null&&(document.removeEventListener("DOMContentLoaded",this.initRetry),this.initRetry=null),window.removeEventListener("keydown",this.onKey),this.detachIframeKeys?.(),this.removeEventListener("touchstart",this.onTouchStart),this.removeEventListener("touchend",this.onTouchEnd),window.removeEventListener("message",this.onMessage),document.removeEventListener("fullscreenchange",this.onFsChange),this.offChange?.(),this.offChange=null,this.controller?.dispose?.(),this.controller=null,this.chrome=null,this.channel?.destroy(),this.channel=null,this.mediaWireInterval!==null&&(clearInterval(this.mediaWireInterval),this.mediaWireInterval=null),this.playerObserver!==null&&(this.playerObserver.disconnect(),this.playerObserver=null),this.ownedMedia.clear(),this.audienceMediaUnlockButton?.remove(),this.audienceMediaUnlockButton=null,this.audienceMutedPlaybackKeys.clear(),this.blockedAudienceMedia.clear(),this.presenterInterval!==null&&(clearInterval(this.presenterInterval),this.presenterInterval=null),this.clearPresenterPositionTimers()}__setControllerForTest(e){this.bindController(e)}present(){if(this.resolveMode()==="audience"||this.getAttribute("data-hf-presenting")==="true")return;let e=new URL(location.href);if(e.searchParams.set("mode","audience"),!this.openAudienceTab(e.href)){console.warn("[hyperframes-slideshow] present(): browser blocked the audience tab");return}this.setAttribute("data-hf-presenting","true"),this.postCurrentPresenterPositionBurst(),this.presenterStartMs=Date.now(),this.presenterInterval===null&&(this.presenterInterval=setInterval(()=>this.updateElapsed(),1e3)),this.render()}openAudienceTab(e){let t=navigator.userActivation;if(t&&t.isActive===!1)return!1;let i=document.createElement("a");return i.href=e,i.target="_blank",i.rel="noopener noreferrer",i.style.display="none",(document.body??document.documentElement).appendChild(i),i.click(),i.remove(),!0}updateElapsed(){if(this.presenterStartMs===null)return;let e=this.chrome?.querySelector("[data-hf-presenter-elapsed]");e&&(e.textContent=T(Math.floor((Date.now()-this.presenterStartMs)/1e3)))}initChannel(){this.resolveMode()==="audience"?this.channel=new m("audience",t=>{this.controller&&this.controller.syncTo?.(t.sequenceId,t.slideIndex,t.fragmentIndex)},this.onRemoteMedia):this.channel=new m("presenter",()=>{},this.onRemoteMedia)}async init(){if(this.initInFlight)return;this.initInFlight=!0;let e=this.initGeneration;try{let t=_(this);if(t.kind==="incomplete"){this.retryInitWhenParsed(e);return}let{player:i,manifest:r}=t;if(this.renderInitialChrome(r),!Se(i)||(await $e(i),e!==this.initGeneration))return;this.attachIframeKeyForwarding(i);let s=await Re(i,2500,()=>e!==this.initGeneration);if(e!==this.initGeneration)return;let{resolved:a,errors:d}=L(r,s);d.length>0&&console.warn("[hyperframes-slideshow] manifest errors:",d);let o=K(a);o.slides.length===0&&r.slides.length>0&&console.error("[hyperframes-slideshow] no main-line slides resolved. The scene timeline may not have loaded in time, or sceneIds/timing are invalid:",d);let l={seek:u=>i.seek(u),play:()=>i.play(),pause:()=>i.pause(),stopMedia:()=>{i.stopMedia?.(),this.stopDocumentMedia()},playSceneMedia:u=>this.playSceneDocumentMedia(u),get currentTime(){return i.currentTime},onTimeUpdate:u=>{let p=c=>{let M=c.detail;u(M.currentTime)};return i.addEventListener("timeupdate",p),()=>i.removeEventListener("timeupdate",p)}};this.bindController(new y(l,o)),s.length===0&&r.slides.length>0&&i.addEventListener("scenes",()=>{e===this.initGeneration&&this.init()},{once:!0})}finally{this.initInFlight=!1}}retryInitWhenParsed(e){if(this.initRetry!==null||!B(document.readyState))return;let t=()=>{this.initRetry=null,e===this.initGeneration&&this.isConnected&&!this.disconnected&&this.init()};this.initRetry=t,document.addEventListener("DOMContentLoaded",t,{once:!0})}renderInitialChrome(e){if(this.controller||e.slides.length===0)return;let t={index:1,total:e.slides.length};if(this.resolveMode()==="audience"){this.paintChrome(this.buildNavCluster(t,"28px","fs-only"));return}this.paintChrome(this.buildNavCluster(t,"28px","full",{canPrev:!1,canNext:e.slides.length>1,loading:e.slides.length>1}))}bindController(e){this.offChange?.(),this.controller?.dispose?.(),this.controller=e,this.startMediaSync(),this.offChange=e.onChange(()=>{this.resolveMode()!=="audience"&&this.channel&&this.channel.postPosition(e.position),this.render()}),this.resolveMode()!=="audience"&&this.channel&&this.channel.postPosition(e.position),this.render()}postCurrentPresenterPosition(){this.resolveMode()==="audience"||!this.channel||!this.controller||this.channel.postPosition(this.controller.position)}postCurrentPresenterPositionBurst(){this.clearPresenterPositionTimers(),this.postCurrentPresenterPosition();for(let e of[250,750,1500,3e3,5e3]){let t=setTimeout(()=>{this.presenterPositionTimers=this.presenterPositionTimers.filter(i=>i!==t),this.postCurrentPresenterPosition()},e);this.presenterPositionTimers.push(t)}}clearPresenterPositionTimers(){for(let e of this.presenterPositionTimers)clearTimeout(e);this.presenterPositionTimers=[]}startMediaSync(){this.wireSlideshowMedia(),this.mediaWireInterval===null&&(this.mediaWireInterval=setInterval(()=>this.wireSlideshowMedia(),1e3))}mediaPlayerElements(){return Array.from(this.querySelectorAll("hyperframes-player")).filter(e=>e instanceof HTMLElement)}ensureInteractivePlayers(){for(let e of this.querySelectorAll("hyperframes-player"))e.hasAttribute("interactive")||e.setAttribute("interactive","")}observeInteractivePlayers(){typeof MutationObserver>"u"||this.playerObserver===null&&(this.playerObserver=new MutationObserver(()=>this.ensureInteractivePlayers()),this.playerObserver.observe(this,{childList:!0,subtree:!0}))}attachIframeKeyForwarding(e){let t=e.iframeElement;if(!(t instanceof HTMLIFrameElement)||t===this.keyForwardFrame)return;this.detachIframeKeys?.();let i=()=>{try{t.contentWindow?.addEventListener("keydown",this.onKey)}catch{this.warnIframeKeyForwardingUnavailable()}};i(),t.addEventListener("load",i),this.keyForwardFrame=t,this.detachIframeKeys=()=>{t.removeEventListener("load",i);try{t.contentWindow?.removeEventListener("keydown",this.onKey)}catch{this.warnIframeKeyForwardingUnavailable()}this.keyForwardFrame=null,this.detachIframeKeys=null}}warnIframeKeyForwardingUnavailable(){this.warnedIframeKeyForwardingUnavailable||(this.warnedIframeKeyForwardingUnavailable=!0,console.warn("[hyperframes-slideshow] iframe keyboard forwarding is unavailable for this composition, likely because the player iframe is cross-origin. Arrow shortcuts work when focus is outside the iframe."))}playerFrameDocument(e){let t=e.iframeElement;if(!(t instanceof HTMLIFrameElement))return null;try{return t.contentDocument}catch{return null}}mediaKey(e,t,i,r){let s=e.id?`player-id:${e.id}`:`player:${t}`,a=i.id?`id:${i.id}`:`${i.tagName.toLowerCase()}:${r}`;return`${s}|${a}`}mediaEntries(){let e=[];return this.mediaPlayerElements().forEach((t,i)=>{let r=this.playerFrameDocument(t);r&&Array.from(r.querySelectorAll("video,audio")).filter(Ce).forEach((s,a)=>{e.push({key:this.mediaKey(t,i,s,a),el:s})})}),e}wireSlideshowMedia(){let e=this.ownedMedia.sync(this.mediaEntries());for(let t of e)t.muted=this._muted||t.defaultMuted}publishMediaState(e,t,i){if(!(this.applyingRemoteMedia||this.resolveMode()==="audience"||!this.channel)){if(i==="timeupdate"){let r=performance.now();if(r-this.lastMediaTimeBroadcastMs<450&&!e.paused)return;this.lastMediaTimeBroadcastMs=r}this.channel.postMedia({key:t,action:i,currentTime:v(e.currentTime,0),paused:e.paused,ended:e.ended,muted:e.muted,volume:v(e.volume,1),playbackRate:v(e.playbackRate,1)})}}onRemoteMedia=e=>{if(this.resolveMode()!=="audience")return;if(this.blockedAudienceMedia.has(e.key)&&e.action==="timeupdate"){this.blockedAudienceMedia.set(e.key,e),this.showAudienceMediaUnlock();return}this.wireSlideshowMedia();let t=this.mediaEntries().find(i=>i.key===e.key);if(t){this.applyingRemoteMedia=!0;try{this.applyRemoteMedia(t.el,e)}finally{setTimeout(()=>{this.applyingRemoteMedia=!1},300)}}};applyRemoteMedia(e,t){if(t.action==="pause"||t.action==="ended"){this.audienceMutedPlaybackKeys.delete(t.key),this.blockedAudienceMedia.delete(t.key),this.syncRemoteMediaState(e,t,!0),e.pause(),this.hideAudienceMediaUnlockIfClear();return}if(t.action==="play"||t.action==="timeupdate"&&t.paused===!1&&e.paused){this.playAudienceMediaMuted(e,t);return}this.syncRemoteMediaState(e,t,!0)}syncRemoteMediaState(e,t,i){e.playbackRate=v(t.playbackRate,1),e.volume=Math.max(0,Math.min(1,v(t.volume,1))),e.muted=this.audienceMutedPlaybackKeys.has(t.key)?!0:t.muted,i&&Number.isFinite(t.currentTime)&&Math.abs((e.currentTime||0)-t.currentTime)>.35&&(e.currentTime=Math.max(0,t.currentTime))}playAudienceMediaMuted(e,t){this.audienceMutedPlaybackKeys.add(t.key),this.syncRemoteMediaState(e,t,!0),e.muted=!0;try{e.play().then(()=>{this.blockedAudienceMedia.delete(t.key),this.hideAudienceMediaUnlockIfClear()}).catch(()=>{this.blockedAudienceMedia.set(t.key,t),this.showAudienceMediaUnlock()})}catch{this.blockedAudienceMedia.set(t.key,t),this.showAudienceMediaUnlock()}}retryBlockedAudienceMedia=()=>{this.wireSlideshowMedia();let e=new Map(this.mediaEntries().map(t=>[t.key,t.el]));for(let[t,i]of this.blockedAudienceMedia){let r=e.get(t);r&&this.playAudienceMediaMuted(r,i)}};showAudienceMediaUnlock(){if(this.resolveMode()!=="audience"||this.audienceMediaUnlockButton)return;let e=document.createElement("button");e.type="button",e.textContent="Play audience media muted",e.style.cssText="position:fixed;left:50%;bottom:96px;transform:translateX(-50%);z-index:100000;border:0;border-radius:999px;padding:12px 18px;background:#fff;color:#111827;box-shadow:0 10px 32px rgba(0,0,0,.28);font:700 14px/1 system-ui,sans-serif;cursor:pointer;pointer-events:auto;",e.addEventListener("click",this.retryBlockedAudienceMedia),this.appendChild(e),this.audienceMediaUnlockButton=e}hideAudienceMediaUnlockIfClear(){this.blockedAudienceMedia.size>0||!this.audienceMediaUnlockButton||(this.audienceMediaUnlockButton.remove(),this.audienceMediaUnlockButton=null)}onKey=e=>{if(ke(e.target))return;let t=document.activeElement,i=t===this||this.contains(t),r=document.querySelectorAll("hyperframes-slideshow").length>1,s=i||!r&&(t===document.body||t===null);if((e.key==="p"||e.key==="P")&&!e.metaKey&&!e.ctrlKey&&!e.altKey){if(!s||!this.shouldShowPresentControl())return;this.present(),e.preventDefault();return}if(this.controller){if(e.key==="ArrowRight"){if(!s)return;this.controller.next(),e.preventDefault()}else if(e.key==="ArrowLeft"){if(!s)return;this.controller.prev(),e.preventDefault()}else if(e.key===" "){if(!i)return;this.controller.next(),e.preventDefault()}else if(e.key==="Backspace"){if(!i)return;this.controller.prev(),e.preventDefault()}else if((e.key==="f"||e.key==="F")&&!e.metaKey&&!e.ctrlKey&&!e.altKey){if(!i)return;this.toggleFullscreen(),e.preventDefault()}}};onMessage=e=>{if(e.source!==window.parent&&e.source!==window||this.resolveMode()==="audience")return;let t=e.data;!t||!this.controller||(t.type==="next"?this.controller.next():t.type==="prev"?this.controller.prev():t.type==="goto"&&typeof t.slideIndex=="number"?this.controller.goToSlide?.(t.slideIndex):t.type==="back"&&this.controller.back?.())};onTouchStart=e=>{let t=e.touches[0];t&&(this.touchStartX=t.clientX,this.touchStartY=t.clientY)};onTouchEnd=e=>{if(!this.controller)return;let t=e.changedTouches[0];if(!t)return;let i=t.clientX-this.touchStartX,r=t.clientY-this.touchStartY;Math.abs(i)<=40||Math.abs(i)<=Math.abs(r)||(i<0?this.controller.next():this.controller.prev())};render(){if(!this.controller)return;if(this.resolveMode()==="audience"){let{counter:r}=this.controller;this.paintChrome(this.buildNavCluster(r,"28px","fs-only"));return}if(this.getAttribute("data-hf-presenting")==="true"){this.renderPresenter();return}let{counter:e,currentSlide:t}=this.controller;if(!t)return;let i=t.hotspots.map(r=>{let s=r.region?`left:${r.region.x}%;top:${r.region.y}%;`:"right:5%;bottom:18%;";return`<button
81
81
  class="hf-hotspot-pill"
82
82
  data-hotspot-id="${h(r.id)}"
83
83
  data-hotspot-target="${h(r.target)}"
@@ -146,4 +146,3 @@
146
146
  ${I}
147
147
  </div>`}wireChromeButtons(){let e=this.chrome;e&&(this.wireChromeClick(e,"[data-hf-mute]",()=>this.toggleMute()),this.wireChromeClick(e,"[data-hf-prev]",()=>this.controller?.prev()),this.wireChromeClick(e,"[data-hf-next]",()=>this.controller?.next()),this.wireChromeClick(e,"[data-hf-present]",()=>this.present()),this.wireChromeClick(e,"[data-hf-fullscreen]",()=>this.toggleFullscreen()),this.wirePresenterNotes(e),this.wireHotspots(e))}wireChromeClick(e,t,i){let r=e.querySelector(t);r&&r.addEventListener("click",i)}wirePresenterNotes(e){let t=e.querySelector("[data-hf-presenter-notes]");if(t instanceof HTMLTextAreaElement){let i=t.getAttribute("data-hf-presenter-notes-key");t.addEventListener("input",()=>this.writePresenterNotes(i,t.value))}}wireHotspots(e){for(let t of e.querySelectorAll("[data-hotspot-id]")){let i=t.getAttribute("data-hotspot-target")??"";t.addEventListener("click",()=>this.controller?.enterBranch?.(i))}}onFsChange=()=>{let e=this.chrome?.querySelector("[data-hf-fullscreen]");if(!e)return;let t=document.fullscreenElement===this;e.innerHTML=t?O:q;let i=t?"Exit full screen":"Full screen";e.setAttribute("aria-label",i),e.setAttribute("title",i),e.setAttribute("data-hf-tooltip",i),e.setAttribute("aria-pressed",t?"true":"false")};toggleFullscreen(){document.fullscreenElement===this?document.exitFullscreen().catch(()=>{}):this.requestFullscreen().catch(()=>{})}shouldShowPresentControl(){return this.resolveMode()!=="audience"&&this.getAttribute("data-hf-presenting")!=="true"}toggleMute(){this._muted=!this._muted,this._muted?this.setAttribute("data-hf-muted",""):this.removeAttribute("data-hf-muted"),this.applyGlobalMute(this._muted),this.dispatchEvent(new CustomEvent("hf-sound",{detail:{muted:this._muted},bubbles:!0,composed:!0})),this.render()}applyGlobalMute(e){for(let t of this.querySelectorAll("hyperframes-player")){if(!(t instanceof HTMLElement))continue;let i=t;"muted"in i?i.muted=e:e?i.setAttribute("muted",""):i.removeAttribute("muted")}this.ownedMedia.sync(this.mediaEntries()),this.ownedMedia.setMuted(e)}stopDocumentMedia(){this.autoplayToken++,this.ownedMedia.sync(this.mediaEntries()),this.ownedMedia.pauseAll()}playSceneDocumentMedia(e){if(this.resolveMode()==="audience")return;let t=e.replace(/["\\]/g,"\\$&"),i=++this.autoplayToken,r={started:!1,lastTime:-1,advancingTicks:0,waited:0,warned:!1},s=()=>{if(i!==this.autoplayToken)return;let a=this.stepAutoplay(t,r);r.waited+=H,!a&&r.waited<=xe&&window.setTimeout(s,H)};s()}findSceneVideo(e){for(let t of this.mediaPlayerElements()){let r=this.playerFrameDocument(t)?.querySelector(`[data-composition-id="${e}"] video`)??null;if(r instanceof HTMLVideoElement)return r}return null}stepAutoplay(e,t){let i=this.findSceneVideo(e);if(!i)return!1;if(!t.started){t.started=!0,i.muted=this._muted||i.defaultMuted;try{i.currentTime=0}catch{}}let r=!i.paused&&i.currentTime>t.lastTime;return t.lastTime=i.currentTime,r?++t.advancingTicks>=2:(t.advancingTicks=0,i.play().catch(s=>{let a=s instanceof DOMException?s.name:"";a!=="AbortError"&&a!=="NotAllowedError"&&!t.warned&&(t.warned=!0,console.warn("[hyperframes-slideshow] autoplay play() failed:",s))}),!1)}presenterNotesDeckKey(){let e=this.getAttribute("notes-storage-key")?.trim();if(e)return e;let t=this.querySelector("hyperframes-player")?.getAttribute("src")??"",i=t;try{let a=typeof location<"u"?location.href:"http://localhost/";i=new URL(t,a).href}catch{}let r=typeof location<"u"?`${location.origin}${location.pathname}`:"",s=this.ownerDocument.title;return`${r}|${s}|${i}`}presenterNotesStorageKey(e){let t=this.controller?.position;return t?`${Te}${JSON.stringify([this.presenterNotesDeckKey(),t.sequenceId,t.slideIndex,e.sceneId??""])}`:null}readPresenterNotes(e){if(!e||typeof window>"u")return null;try{return window.localStorage.getItem(e)}catch{return null}}writePresenterNotes(e,t){if(e&&!(typeof window>"u"))try{window.localStorage.setItem(e,t)}catch{}}renderPresenter(){if(!this.controller)return;let{counter:e,currentSlide:t,nextSlide:i}=this.controller;if(!t)return;let r=this.presenterStartMs!==null?Math.floor((Date.now()-this.presenterStartMs)/1e3):0,s=this.querySelector("hyperframes-player");s instanceof HTMLElement&&(s.style.top="0",s.style.bottom="32%",s.style.height="auto");let a=this.presenterNotesStorageKey(t),d=this.readPresenterNotes(a)??t.notes??"";this.paintChrome(F({notes:d,notesStorageKey:a,nextText:Ae(i),counterText:`${e.index} / ${e.total}`,elapsedText:T(r),hotspots:t.hotspots})+this.buildNavCluster(e,"calc(32% + 18px)"))}};function Ae(n){if(n===null)return"End of sequence";let e=n.notes!=null?n.notes.split(`
148
148
  `)[0]??"":"";return e.length>0?`${h(n.sceneId)}: ${h(e)}`:h(n.sceneId)}function Ce(n){let e=n.ownerDocument.defaultView;return!e||typeof e.HTMLMediaElement!="function"?!1:n instanceof e.HTMLMediaElement}function v(n,e){return Number.isFinite(n)?n:e}function E(n){return"scenes"in n&&Array.isArray(n.scenes)?n.scenes:[]}var Le=5e3;function $e(n){return n.ready===!0?Promise.resolve():new Promise(e=>{let t=null,i=()=>{t!==null&&(clearTimeout(t),t=null),e()};n.addEventListener("ready",i,{once:!0}),t=setTimeout(()=>{n.removeEventListener("ready",i),e()},Le)})}function Re(n,e,t=()=>!1){let i=E(n);if(i.length>0)return Promise.resolve(i);let r=Math.ceil(e/100);return new Promise(s=>{let a=!1,d=null,o=0,l=c=>{a||(a=!0,d!==null&&clearTimeout(d),n.removeEventListener("scenes",u),s(c))},u=()=>{if(t())return l([]);let c=E(n);c.length>0&&l(c)},p=()=>{if(a)return;if(t())return l([]);let c=E(n);if(c.length>0)return l(c);if(o+=1,o>=r)return l([]);d=setTimeout(p,100)};n.addEventListener("scenes",u),d=setTimeout(p,100)})}function K(n){let e=r=>r.end>r.start,t=n.slides.filter(e),i={};for(let[r,s]of Object.entries(n.sequences))i[r]={...s,slides:s.slides.filter(e)};return{slides:t,sequences:i}}function h(n){return n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}customElements.get("hyperframes-slideshow")||customElements.define("hyperframes-slideshow",b);return Z(Fe);})();
149
- //# sourceMappingURL=hyperframes-slideshow.global.js.map
@@ -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-XBX4QJP7.js";
9
+ } from "./chunk-TH4OXAWY.js";
10
10
  import {
11
11
  formatBytes,
12
12
  label
@@ -14,25 +14,25 @@ import {
14
14
  import {
15
15
  ensureDOMParser
16
16
  } from "./chunk-442JNXRM.js";
17
- import "./chunk-ICKDMTLA.js";
18
- import "./chunk-ZF7SXQJ7.js";
17
+ import "./chunk-QSSPIATO.js";
18
+ import "./chunk-2NAUEDA6.js";
19
19
  import "./chunk-VWG7OQKU.js";
20
- import "./chunk-GQJZORQP.js";
20
+ import "./chunk-XBSPQ52S.js";
21
21
  import "./chunk-AMKC3AXA.js";
22
22
  import {
23
23
  defineCommand
24
24
  } from "./chunk-S3S4TGEH.js";
25
25
  import "./chunk-54HJ63Q2.js";
26
26
  import "./chunk-PBN6GBJE.js";
27
- import "./chunk-USDEMXXL.js";
28
- import "./chunk-VRW6EBHV.js";
29
- import "./chunk-AUWHD7RA.js";
27
+ import "./chunk-JYVGYKXG.js";
28
+ import "./chunk-BAKPN2D2.js";
29
+ import "./chunk-Z6FLHIDV.js";
30
30
  import "./chunk-VC76R6W2.js";
31
31
  import "./chunk-YA62XGXS.js";
32
32
  import {
33
33
  CANVAS_DIMENSIONS,
34
34
  parseHtml
35
- } from "./chunk-MQZVBHEY.js";
35
+ } from "./chunk-LFNQDTSH.js";
36
36
  import "./chunk-OFQWTKPW.js";
37
37
  import "./chunk-DPVXBVLL.js";
38
38
  import "./chunk-T76PLPD6.js";
@@ -42,15 +42,15 @@ import "./chunk-3RM2ETQT.js";
42
42
  import "./chunk-BSQ7XANM.js";
43
43
  import "./chunk-SDYDNHEE.js";
44
44
  import "./chunk-2PSPARWP.js";
45
- import "./chunk-T42U2W2R.js";
45
+ import "./chunk-IXLUTE6N.js";
46
46
  import {
47
47
  withMeta
48
- } from "./chunk-PLR7Z6TC.js";
48
+ } from "./chunk-K7ES5RSK.js";
49
49
  import "./chunk-K4WIOZFP.js";
50
50
  import "./chunk-XUXGIA7H.js";
51
51
  import "./chunk-WERLJGIC.js";
52
52
  import "./chunk-ISN5GRYI.js";
53
- import "./chunk-BFACGEII.js";
53
+ import "./chunk-TBOMPYG6.js";
54
54
  import "./chunk-KNU5COPB.js";
55
55
  import {
56
56
  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-GMAJB2P6.js";
9
+ } from "./chunk-UOBYRLDD.js";
10
10
  import {
11
11
  initialModelForLanguage
12
- } from "./chunk-OTHDVXOJ.js";
12
+ } from "./chunk-CVPWZ5LY.js";
13
13
  import "./chunk-6IHWCZ3W.js";
14
- import "./chunk-FBCULCAL.js";
14
+ import "./chunk-54UXJKFF.js";
15
15
  import "./chunk-XT7X6QCP.js";
16
16
  import {
17
17
  writeNewFileSync
@@ -20,29 +20,29 @@ import {
20
20
  listRegistryItems,
21
21
  loadAllItems,
22
22
  resolveItemWithDependencies
23
- } from "./chunk-BIAC7IJT.js";
23
+ } from "./chunk-DDNS2674.js";
24
24
  import {
25
25
  installItem
26
- } from "./chunk-XIHCMVMG.js";
27
- import "./chunk-LAFJSYDL.js";
26
+ } from "./chunk-FDL4HV44.js";
27
+ import "./chunk-XVIYZU3D.js";
28
28
  import "./chunk-AWDFDFI3.js";
29
29
  import "./chunk-P6LJ4Y32.js";
30
30
  import {
31
31
  DEFAULT_MODEL,
32
32
  hasFFmpeg
33
- } from "./chunk-MAYCCGMQ.js";
33
+ } from "./chunk-KVGDFUVO.js";
34
34
  import "./chunk-BHVFTYSI.js";
35
35
  import {
36
36
  findFFmpeg,
37
37
  findFFprobe,
38
38
  getFFmpegInstallHint
39
- } from "./chunk-ZEUONDQG.js";
39
+ } from "./chunk-SYUGVPYH.js";
40
40
  import {
41
41
  trackInitTemplate
42
- } from "./chunk-ICKDMTLA.js";
43
- import "./chunk-ZF7SXQJ7.js";
42
+ } from "./chunk-QSSPIATO.js";
43
+ import "./chunk-2NAUEDA6.js";
44
44
  import "./chunk-VWG7OQKU.js";
45
- import "./chunk-GQJZORQP.js";
45
+ import "./chunk-XBSPQ52S.js";
46
46
  import "./chunk-AMKC3AXA.js";
47
47
  import {
48
48
  Ee,
@@ -65,12 +65,12 @@ import {
65
65
  failCommand,
66
66
  finishCommand
67
67
  } from "./chunk-PBN6GBJE.js";
68
- import "./chunk-UXO2L7HJ.js";
69
- import "./chunk-FDT6KQV4.js";
68
+ import "./chunk-WU2B74TL.js";
69
+ import "./chunk-JBQJKC23.js";
70
70
  import "./chunk-NE55C6S5.js";
71
- import "./chunk-USDEMXXL.js";
72
- import "./chunk-VRW6EBHV.js";
73
- import "./chunk-AUWHD7RA.js";
71
+ import "./chunk-JYVGYKXG.js";
72
+ import "./chunk-BAKPN2D2.js";
73
+ import "./chunk-Z6FLHIDV.js";
74
74
  import "./chunk-VC76R6W2.js";
75
75
  import "./chunk-YA62XGXS.js";
76
76
  import {
@@ -79,7 +79,7 @@ import {
79
79
  HTML_BODY_CSS_WIDTH_FIRST_RE,
80
80
  VIEWPORT_META_SIZE_RE,
81
81
  normalizeResolutionFlag
82
- } from "./chunk-MQZVBHEY.js";
82
+ } from "./chunk-LFNQDTSH.js";
83
83
  import "./chunk-OFQWTKPW.js";
84
84
  import "./chunk-DPVXBVLL.js";
85
85
  import "./chunk-T76PLPD6.js";
@@ -88,22 +88,22 @@ import "./chunk-RQVDTPGD.js";
88
88
  import "./chunk-A4Q7W4LV.js";
89
89
  import "./chunk-BYSBRF24.js";
90
90
  import "./chunk-TWWSYAKJ.js";
91
- import "./chunk-IEIJRMLZ.js";
91
+ import "./chunk-JDB65PPT.js";
92
92
  import "./chunk-IWFLMU2N.js";
93
93
  import "./chunk-APDLWWFG.js";
94
- import "./chunk-PJ3HDUCY.js";
94
+ import "./chunk-VAS6HQX3.js";
95
95
  import "./chunk-3RM2ETQT.js";
96
96
  import "./chunk-BSQ7XANM.js";
97
97
  import "./chunk-SDYDNHEE.js";
98
98
  import "./chunk-2PSPARWP.js";
99
- import "./chunk-T42U2W2R.js";
99
+ import "./chunk-IXLUTE6N.js";
100
100
  import "./chunk-K4WIOZFP.js";
101
101
  import "./chunk-XUXGIA7H.js";
102
102
  import "./chunk-WERLJGIC.js";
103
103
  import "./chunk-ISN5GRYI.js";
104
104
  import {
105
105
  VERSION
106
- } from "./chunk-BFACGEII.js";
106
+ } from "./chunk-TBOMPYG6.js";
107
107
  import "./chunk-KNU5COPB.js";
108
108
  import "./chunk-UOFAE5RF.js";
109
109
  import {
@@ -675,7 +675,7 @@ async function scaffoldProject(destDir, name, templateId, media, tailwind = fals
675
675
  "utf-8"
676
676
  );
677
677
  if (!existsSync2(resolve(destDir, "hyperframes.json"))) {
678
- const { createProjectConfig, DEFAULT_PROJECT_CONFIG } = await import("./projectConfig-B2AF5DXY.js");
678
+ const { createProjectConfig, DEFAULT_PROJECT_CONFIG } = await import("./projectConfig-SBRMQZGG.js");
679
679
  const { normalizeSkillSlug } = await import("./skill-ZHVLH7KX.js");
680
680
  const skill = normalizeSkillSlug(authoringSkill);
681
681
  createProjectConfig(
@@ -696,7 +696,7 @@ async function scaffoldProject(destDir, name, templateId, media, tailwind = fals
696
696
  }
697
697
  }
698
698
  async function keepSkillsCurrent(destDir) {
699
- const { updateSkills } = await import("./skills-ACDOO3PX.js");
699
+ const { updateSkills } = await import("./skills-OET4XSHR.js");
700
700
  console.log();
701
701
  console.log(c.bold("Checking AI coding skills against GitHub..."));
702
702
  try {
@@ -893,17 +893,17 @@ var init_default = defineCommand({
893
893
  if (audioPath) {
894
894
  sourceFilePath2 = audioPath;
895
895
  copyFileSync(audioPath, resolve(destDir2, basename(audioPath)));
896
- const { getMediaDurationSeconds } = await import("./transcribe-SZB6UMXE.js");
896
+ const { getMediaDurationSeconds } = await import("./transcribe-ZLJF7V5Y.js");
897
897
  videoDuration2 = getMediaDurationSeconds(audioPath) ?? void 0;
898
898
  console.log(`Audio: ${basename(audioPath)}`);
899
899
  }
900
900
  if (sourceFilePath2 && !skipTranscribe) {
901
901
  try {
902
- const { ensureWhisper, ensureModel } = await import("./manager-YKMHR6LN.js");
902
+ const { ensureWhisper, ensureModel } = await import("./manager-5ORDVWJB.js");
903
903
  await ensureWhisper();
904
904
  await ensureModel(initialTranscriptionModel);
905
905
  console.log("Transcribing...");
906
- const { transcribe: runTranscribe } = await import("./transcribe-SZB6UMXE.js");
906
+ const { transcribe: runTranscribe } = await import("./transcribe-ZLJF7V5Y.js");
907
907
  const result = await runTranscribe(sourceFilePath2, destDir2, {
908
908
  model: modelFlag,
909
909
  language: languageFlag
@@ -1051,7 +1051,7 @@ var init_default = defineCommand({
1051
1051
  mkdirSync(destDir, { recursive: true });
1052
1052
  sourceFilePath = audioPath;
1053
1053
  copyFileSync(audioPath, resolve(destDir, basename(audioPath)));
1054
- const { getMediaDurationSeconds } = await import("./transcribe-SZB6UMXE.js");
1054
+ const { getMediaDurationSeconds } = await import("./transcribe-ZLJF7V5Y.js");
1055
1055
  videoDuration = getMediaDurationSeconds(audioPath) ?? void 0;
1056
1056
  R.info(`Audio copied to ${c.accent(basename(audioPath))}`);
1057
1057
  }
@@ -1061,7 +1061,7 @@ var init_default = defineCommand({
1061
1061
  initialValue: true
1062
1062
  });
1063
1063
  if (!q(transcribeChoice) && transcribeChoice) {
1064
- const { findWhisper } = await import("./manager-YKMHR6LN.js");
1064
+ const { findWhisper } = await import("./manager-5ORDVWJB.js");
1065
1065
  const needsInstall = findWhisper() === void 0;
1066
1066
  if (needsInstall) {
1067
1067
  R.info(c.dim("whisper-cpp not found \u2014 installing automatically..."));
@@ -1071,7 +1071,7 @@ var init_default = defineCommand({
1071
1071
  needsInstall ? "Installing whisper-cpp (this may take a moment)..." : "Preparing transcription..."
1072
1072
  );
1073
1073
  try {
1074
- const { ensureWhisper, ensureModel } = await import("./manager-YKMHR6LN.js");
1074
+ const { ensureWhisper, ensureModel } = await import("./manager-5ORDVWJB.js");
1075
1075
  await ensureWhisper({
1076
1076
  onProgress: (msg) => spin2.message(msg)
1077
1077
  });
@@ -1079,7 +1079,7 @@ var init_default = defineCommand({
1079
1079
  onProgress: (msg) => spin2.message(msg)
1080
1080
  });
1081
1081
  spin2.message("Transcribing audio...");
1082
- const { transcribe: runTranscribe } = await import("./transcribe-SZB6UMXE.js");
1082
+ const { transcribe: runTranscribe } = await import("./transcribe-ZLJF7V5Y.js");
1083
1083
  const transcribeResult = await runTranscribe(sourceFilePath, destDir, {
1084
1084
  model: modelFlag,
1085
1085
  language: languageFlag,
@@ -1161,7 +1161,7 @@ ${c.dim("Use --example blank for offline use.")}`
1161
1161
  }
1162
1162
  R.info("Opening studio preview...");
1163
1163
  try {
1164
- const previewCmd = await import("./preview-VT2HWRWZ.js").then((m) => m.default);
1164
+ const previewCmd = await import("./preview-H3ZZS46F.js").then((m) => m.default);
1165
1165
  await runCommand(previewCmd, { rawArgs: [destDir] });
1166
1166
  } catch {
1167
1167
  }
@@ -6,78 +6,78 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  createInspectCommand
9
- } from "./chunk-5NRXZGKK.js";
10
- import "./chunk-ZIYZ77MR.js";
9
+ } from "./chunk-ZZ7H4IJ6.js";
10
+ import "./chunk-EGO6Z24R.js";
11
11
  import "./chunk-XUHOIDKG.js";
12
12
  import "./chunk-X7MTZ4T2.js";
13
- import "./chunk-DWUKJQTO.js";
14
- import "./chunk-XBX4QJP7.js";
15
- import "./chunk-U5QY7KTN.js";
13
+ import "./chunk-ZVZSFDW3.js";
14
+ import "./chunk-TH4OXAWY.js";
15
+ import "./chunk-HTM4CIFS.js";
16
16
  import "./chunk-FH7WODJH.js";
17
- import "./chunk-4ORLNTET.js";
18
- import "./chunk-FXJJCPPB.js";
17
+ import "./chunk-XJUZEB44.js";
18
+ import "./chunk-3HSWLZ6S.js";
19
19
  import "./chunk-WPNE5NEP.js";
20
20
  import "./chunk-K2FLNJVB.js";
21
- import "./chunk-GXJEGZL2.js";
22
- import "./chunk-5WVW7P23.js";
23
- import "./chunk-QZ3AZTXI.js";
24
- import "./chunk-DDIVWXN7.js";
25
- import "./chunk-KIFHYXPB.js";
26
- import "./chunk-G75ENCEZ.js";
21
+ import "./chunk-Z5C4LEAD.js";
22
+ import "./chunk-A72OAGNB.js";
23
+ import "./chunk-FJWEYVEM.js";
24
+ import "./chunk-ZFN6GQU4.js";
25
+ import "./chunk-MOL32UKR.js";
26
+ import "./chunk-AIJS74LG.js";
27
27
  import "./chunk-EOVYQ3IG.js";
28
- import "./chunk-ADF3X6GM.js";
28
+ import "./chunk-SYMSKGXI.js";
29
29
  import "./chunk-442JNXRM.js";
30
- import "./chunk-CFUXNBWH.js";
30
+ import "./chunk-LE7T4ML7.js";
31
31
  import "./chunk-XT7X6QCP.js";
32
32
  import "./chunk-4YYJOFKS.js";
33
33
  import "./chunk-HVW7ABXD.js";
34
- import "./chunk-BIAC7IJT.js";
35
- import "./chunk-XIHCMVMG.js";
36
- import "./chunk-LAFJSYDL.js";
34
+ import "./chunk-DDNS2674.js";
35
+ import "./chunk-FDL4HV44.js";
36
+ import "./chunk-XVIYZU3D.js";
37
37
  import "./chunk-AWDFDFI3.js";
38
38
  import "./chunk-P6LJ4Y32.js";
39
39
  import "./chunk-374QQGBQ.js";
40
- import "./chunk-ICKDMTLA.js";
41
- import "./chunk-ZF7SXQJ7.js";
40
+ import "./chunk-QSSPIATO.js";
41
+ import "./chunk-2NAUEDA6.js";
42
42
  import "./chunk-VWG7OQKU.js";
43
- import "./chunk-GQJZORQP.js";
43
+ import "./chunk-XBSPQ52S.js";
44
44
  import "./chunk-AMKC3AXA.js";
45
45
  import "./chunk-GMECXFAN.js";
46
46
  import "./chunk-S3S4TGEH.js";
47
47
  import "./chunk-54HJ63Q2.js";
48
48
  import "./chunk-PBN6GBJE.js";
49
- import "./chunk-KC5XXX3X.js";
49
+ import "./chunk-EOOEC32M.js";
50
50
  import "./chunk-TJSTGSAW.js";
51
- import "./chunk-UXO2L7HJ.js";
52
- import "./chunk-FDT6KQV4.js";
51
+ import "./chunk-WU2B74TL.js";
52
+ import "./chunk-JBQJKC23.js";
53
53
  import "./chunk-NE55C6S5.js";
54
- import "./chunk-USDEMXXL.js";
55
- import "./chunk-VRW6EBHV.js";
56
- import "./chunk-AUWHD7RA.js";
54
+ import "./chunk-JYVGYKXG.js";
55
+ import "./chunk-BAKPN2D2.js";
56
+ import "./chunk-Z6FLHIDV.js";
57
57
  import "./chunk-VC76R6W2.js";
58
58
  import "./chunk-YA62XGXS.js";
59
- import "./chunk-MQZVBHEY.js";
59
+ import "./chunk-LFNQDTSH.js";
60
60
  import "./chunk-OFQWTKPW.js";
61
61
  import "./chunk-DPVXBVLL.js";
62
62
  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-IEIJRMLZ.js";
66
+ import "./chunk-JDB65PPT.js";
67
67
  import "./chunk-IWFLMU2N.js";
68
68
  import "./chunk-APDLWWFG.js";
69
- import "./chunk-PJ3HDUCY.js";
69
+ import "./chunk-VAS6HQX3.js";
70
70
  import "./chunk-3RM2ETQT.js";
71
71
  import "./chunk-BSQ7XANM.js";
72
72
  import "./chunk-SDYDNHEE.js";
73
73
  import "./chunk-2PSPARWP.js";
74
- import "./chunk-T42U2W2R.js";
75
- import "./chunk-PLR7Z6TC.js";
74
+ import "./chunk-IXLUTE6N.js";
75
+ import "./chunk-K7ES5RSK.js";
76
76
  import "./chunk-K4WIOZFP.js";
77
77
  import "./chunk-XUXGIA7H.js";
78
78
  import "./chunk-WERLJGIC.js";
79
79
  import "./chunk-ISN5GRYI.js";
80
- import "./chunk-BFACGEII.js";
80
+ import "./chunk-TBOMPYG6.js";
81
81
  import "./chunk-KNU5COPB.js";
82
82
  import "./chunk-3GXQPCJC.js";
83
83
  import "./chunk-ZTZA4UWZ.js";
@@ -10,16 +10,16 @@ import {
10
10
  prepareItem,
11
11
  publishItem,
12
12
  recordRewrittenInstall
13
- } from "./chunk-XIHCMVMG.js";
14
- import "./chunk-LAFJSYDL.js";
13
+ } from "./chunk-FDL4HV44.js";
14
+ import "./chunk-XVIYZU3D.js";
15
15
  import "./chunk-AWDFDFI3.js";
16
16
  import "./chunk-P6LJ4Y32.js";
17
17
  import "./chunk-GMECXFAN.js";
18
- import "./chunk-VRW6EBHV.js";
19
- import "./chunk-AUWHD7RA.js";
18
+ import "./chunk-BAKPN2D2.js";
19
+ import "./chunk-Z6FLHIDV.js";
20
20
  import "./chunk-VC76R6W2.js";
21
21
  import "./chunk-YA62XGXS.js";
22
- import "./chunk-MQZVBHEY.js";
22
+ import "./chunk-LFNQDTSH.js";
23
23
  import "./chunk-OFQWTKPW.js";
24
24
  import "./chunk-DPVXBVLL.js";
25
25
  import "./chunk-T76PLPD6.js";
@@ -30,7 +30,7 @@ import "./chunk-3RM2ETQT.js";
30
30
  import "./chunk-BSQ7XANM.js";
31
31
  import "./chunk-SDYDNHEE.js";
32
32
  import "./chunk-2PSPARWP.js";
33
- import "./chunk-T42U2W2R.js";
33
+ import "./chunk-IXLUTE6N.js";
34
34
  import "./chunk-M2WBOQ2Q.js";
35
35
  export {
36
36
  hasLocalEdits,
@@ -6,22 +6,22 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  resolveProject
9
- } from "./chunk-XBX4QJP7.js";
9
+ } from "./chunk-TH4OXAWY.js";
10
10
  import "./chunk-K2FLNJVB.js";
11
11
  import {
12
12
  ensureDOMParser
13
13
  } from "./chunk-442JNXRM.js";
14
- import "./chunk-ICKDMTLA.js";
15
- import "./chunk-ZF7SXQJ7.js";
14
+ import "./chunk-QSSPIATO.js";
15
+ import "./chunk-2NAUEDA6.js";
16
16
  import "./chunk-VWG7OQKU.js";
17
- import "./chunk-GQJZORQP.js";
17
+ import "./chunk-XBSPQ52S.js";
18
18
  import "./chunk-AMKC3AXA.js";
19
19
  import {
20
20
  defineCommand
21
21
  } from "./chunk-S3S4TGEH.js";
22
22
  import "./chunk-54HJ63Q2.js";
23
23
  import "./chunk-PBN6GBJE.js";
24
- import "./chunk-USDEMXXL.js";
24
+ import "./chunk-JYVGYKXG.js";
25
25
  import {
26
26
  require_lib,
27
27
  require_main
@@ -39,12 +39,12 @@ import {
39
39
  } from "./chunk-2PSPARWP.js";
40
40
  import {
41
41
  withMeta
42
- } from "./chunk-PLR7Z6TC.js";
42
+ } from "./chunk-K7ES5RSK.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-BFACGEII.js";
47
+ import "./chunk-TBOMPYG6.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-WPVNBXKA.js");
2372
+ const { captureMotionPathShot } = await import("./motionShot-G76XBOYI.js");
2373
2373
  const requests = collectShotSelectors(args.selector ? allComps : comps);
2374
2374
  const guardError = onionShotGuardError(projectDir, requests, args.ghost ?? false);
2375
2375
  if (guardError) {