@officexapp/vidfarm-devcli 0.21.10

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 (516) hide show
  1. package/.agents/skills/dollarplatoon-skill/SKILL.md +1227 -0
  2. package/.agents/skills/editor-capabilities/SKILL.md +182 -0
  3. package/.agents/skills/editor-capabilities/references/re-theme-walkthrough.md +58 -0
  4. package/.agents/skills/embedded-captions/CATALOG.md +93 -0
  5. package/.agents/skills/embedded-captions/SKILL.md +286 -0
  6. package/.agents/skills/embedded-captions/assets/brand/CDPR-fankit-terms.txt +35 -0
  7. package/.agents/skills/embedded-captions/assets/brand/cyberpunk-widths.json +115 -0
  8. package/.agents/skills/embedded-captions/assets/fonts/char-widths.json +2211 -0
  9. package/.agents/skills/embedded-captions/assets/strokefonts/HersheyScript1.svg +242 -0
  10. package/.agents/skills/embedded-captions/assets/strokefonts/HersheyScriptMed.svg +242 -0
  11. package/.agents/skills/embedded-captions/dna/README.md +148 -0
  12. package/.agents/skills/embedded-captions/dna/chrome.json +68 -0
  13. package/.agents/skills/embedded-captions/dna/cream.json +69 -0
  14. package/.agents/skills/embedded-captions/dna/documentary.json +62 -0
  15. package/.agents/skills/embedded-captions/dna/editorial.json +70 -0
  16. package/.agents/skills/embedded-captions/dna/glitch.json +82 -0
  17. package/.agents/skills/embedded-captions/dna/ink.json +65 -0
  18. package/.agents/skills/embedded-captions/dna/keynote.json +62 -0
  19. package/.agents/skills/embedded-captions/dna/loud.json +75 -0
  20. package/.agents/skills/embedded-captions/dna/neon.json +58 -0
  21. package/.agents/skills/embedded-captions/dna/velocity.json +89 -0
  22. package/.agents/skills/embedded-captions/modes/cinematic/README.md +48 -0
  23. package/.agents/skills/embedded-captions/modes/cinematic/_archive/champion/spec.md +98 -0
  24. package/.agents/skills/embedded-captions/modes/cinematic/_archive/champion/template.html +188 -0
  25. package/.agents/skills/embedded-captions/modes/cinematic/_archive/memory-wall/spec.md +134 -0
  26. package/.agents/skills/embedded-captions/modes/cinematic/_archive/memory-wall/template.html +179 -0
  27. package/.agents/skills/embedded-captions/modes/cinematic/_archive/portrait-header/spec.md +81 -0
  28. package/.agents/skills/embedded-captions/modes/cinematic/_archive/portrait-header/template.html +170 -0
  29. package/.agents/skills/embedded-captions/modes/cinematic/cinematic-cream/spec.md +16 -0
  30. package/.agents/skills/embedded-captions/modes/cinematic/cinematic-cream/template.html +226 -0
  31. package/.agents/skills/embedded-captions/modes/cinematic/engine.html +355 -0
  32. package/.agents/skills/embedded-captions/modes/standard/_anatomy.md +233 -0
  33. package/.agents/skills/embedded-captions/modes/standard/_motion.md +192 -0
  34. package/.agents/skills/embedded-captions/modes/standard/fonts/build-fonts-css.cjs +97 -0
  35. package/.agents/skills/embedded-captions/references/aesthetic-principles.md +168 -0
  36. package/.agents/skills/embedded-captions/references/anti-patterns.md +188 -0
  37. package/.agents/skills/embedded-captions/references/bespoke-vs-presets.md +178 -0
  38. package/.agents/skills/embedded-captions/references/caption-grouping.md +130 -0
  39. package/.agents/skills/embedded-captions/references/composition-craft.md +522 -0
  40. package/.agents/skills/embedded-captions/references/direction-catalog.md +138 -0
  41. package/.agents/skills/embedded-captions/references/example-renders/champion.html +371 -0
  42. package/.agents/skills/embedded-captions/references/example-renders/memory-wall.html +334 -0
  43. package/.agents/skills/embedded-captions/references/failure-modes.md +145 -0
  44. package/.agents/skills/embedded-captions/references/layout-heuristics.md +238 -0
  45. package/.agents/skills/embedded-captions/references/motion-vocabulary.md +148 -0
  46. package/.agents/skills/embedded-captions/references/rail.md +68 -0
  47. package/.agents/skills/embedded-captions/references/reference-bar.md +47 -0
  48. package/.agents/skills/embedded-captions/references/scene-types.md +94 -0
  49. package/.agents/skills/embedded-captions/references/test-set.md +66 -0
  50. package/.agents/skills/embedded-captions/references/typographic-moves.md +266 -0
  51. package/.agents/skills/embedded-captions/references/typography-presets.md +63 -0
  52. package/.agents/skills/embedded-captions/scripts/audio-envelope.cjs +95 -0
  53. package/.agents/skills/embedded-captions/scripts/check-occlusion.cjs +250 -0
  54. package/.agents/skills/embedded-captions/scripts/check-overflow.cjs +194 -0
  55. package/.agents/skills/embedded-captions/scripts/check-rail-climax.cjs +233 -0
  56. package/.agents/skills/embedded-captions/scripts/check-timing.cjs +173 -0
  57. package/.agents/skills/embedded-captions/scripts/fill-timings.cjs +124 -0
  58. package/.agents/skills/embedded-captions/scripts/fit-fonts.cjs +158 -0
  59. package/.agents/skills/embedded-captions/scripts/gen-stroke-path.py +46 -0
  60. package/.agents/skills/embedded-captions/scripts/inject-fonts.cjs +169 -0
  61. package/.agents/skills/embedded-captions/scripts/lib-dna.cjs +201 -0
  62. package/.agents/skills/embedded-captions/scripts/make-cinematic.cjs +1205 -0
  63. package/.agents/skills/embedded-captions/scripts/make-composition.cjs +404 -0
  64. package/.agents/skills/embedded-captions/scripts/make-theme.cjs +8781 -0
  65. package/.agents/skills/embedded-captions/scripts/matte.cjs +294 -0
  66. package/.agents/skills/embedded-captions/scripts/measure-layout.cjs +293 -0
  67. package/.agents/skills/embedded-captions/scripts/prepare.sh +39 -0
  68. package/.agents/skills/embedded-captions/scripts/preview-frames.cjs +268 -0
  69. package/.agents/skills/embedded-captions/scripts/render-and-composite.sh +509 -0
  70. package/.agents/skills/embedded-captions/scripts/render-theme.sh +34 -0
  71. package/.agents/skills/embedded-captions/scripts/safe-zones.cjs +813 -0
  72. package/.agents/skills/embedded-captions/scripts/transcribe.cjs +349 -0
  73. package/.agents/skills/embedded-captions/themes/PORTING.md +49 -0
  74. package/.agents/skills/embedded-captions/themes/README.md +244 -0
  75. package/.agents/skills/embedded-captions/themes/anchor.json +27 -0
  76. package/.agents/skills/embedded-captions/themes/arcade.json +51 -0
  77. package/.agents/skills/embedded-captions/themes/aurora.json +41 -0
  78. package/.agents/skills/embedded-captions/themes/biolume.json +35 -0
  79. package/.agents/skills/embedded-captions/themes/brush.json +74 -0
  80. package/.agents/skills/embedded-captions/themes/chalkboard.json +52 -0
  81. package/.agents/skills/embedded-captions/themes/dossier.json +56 -0
  82. package/.agents/skills/embedded-captions/themes/graffiti.json +62 -0
  83. package/.agents/skills/embedded-captions/themes/hologram.json +41 -0
  84. package/.agents/skills/embedded-captions/themes/inkwater.json +43 -0
  85. package/.agents/skills/embedded-captions/themes/laser.json +46 -0
  86. package/.agents/skills/embedded-captions/themes/lastpage.json +33 -0
  87. package/.agents/skills/embedded-captions/themes/neonsign.json +53 -0
  88. package/.agents/skills/embedded-captions/themes/nightcity.json +56 -0
  89. package/.agents/skills/embedded-captions/themes/ordnance.json +54 -0
  90. package/.agents/skills/embedded-captions/themes/papercut.json +37 -0
  91. package/.agents/skills/embedded-captions/themes/popup.json +46 -0
  92. package/.agents/skills/embedded-captions/themes/ransom.json +62 -0
  93. package/.agents/skills/embedded-captions/themes/scoreboard.json +54 -0
  94. package/.agents/skills/embedded-captions/themes/spectrum.json +46 -0
  95. package/.agents/skills/embedded-captions/themes/stardust.json +29 -0
  96. package/.agents/skills/embedded-captions/themes/stomp.json +43 -0
  97. package/.agents/skills/embedded-captions/themes/terminal.json +49 -0
  98. package/.agents/skills/embedded-captions/themes/thunder.json +44 -0
  99. package/.agents/skills/embedded-captions/themes/transit.json +44 -0
  100. package/.agents/skills/embedded-captions/themes/vhs.json +47 -0
  101. package/.agents/skills/faceless-explainer/SKILL.md +209 -0
  102. package/.agents/skills/faceless-explainer/references/cut-catalog.md +215 -0
  103. package/.agents/skills/faceless-explainer/references/motion-language.md +156 -0
  104. package/.agents/skills/faceless-explainer/references/story-design.md +248 -0
  105. package/.agents/skills/faceless-explainer/references/visual-design.md +146 -0
  106. package/.agents/skills/faceless-explainer/scripts/assemble-index.mjs +570 -0
  107. package/.agents/skills/faceless-explainer/scripts/audio.mjs +260 -0
  108. package/.agents/skills/faceless-explainer/scripts/build-frame.mjs +536 -0
  109. package/.agents/skills/faceless-explainer/scripts/captions.mjs +508 -0
  110. package/.agents/skills/faceless-explainer/scripts/lib/assets.mjs +55 -0
  111. package/.agents/skills/faceless-explainer/scripts/lib/dimensions.mjs +45 -0
  112. package/.agents/skills/faceless-explainer/scripts/lib/storyboard.mjs +249 -0
  113. package/.agents/skills/faceless-explainer/scripts/lib/tokens.mjs +204 -0
  114. package/.agents/skills/faceless-explainer/scripts/lib/transition-registry.mjs +38 -0
  115. package/.agents/skills/faceless-explainer/scripts/lib/transitions.json +71 -0
  116. package/.agents/skills/faceless-explainer/scripts/transitions.mjs +320 -0
  117. package/.agents/skills/faceless-explainer/sub-agents/frame-worker.md +75 -0
  118. package/.agents/skills/farmville-saas-ux/SKILL.md +156 -0
  119. package/.agents/skills/farmville-saas-ux/assets/starter.html +294 -0
  120. package/.agents/skills/farmville-saas-ux/references/components.md +340 -0
  121. package/.agents/skills/farmville-saas-ux/references/porting-guide.md +121 -0
  122. package/.agents/skills/farmville-saas-ux/references/tokens.md +271 -0
  123. package/.agents/skills/flockposter/LICENSE +17 -0
  124. package/.agents/skills/flockposter/README.md +72 -0
  125. package/.agents/skills/flockposter/SKILL.md +562 -0
  126. package/.agents/skills/flockposter/examples/cli-instagram-reel.sh +21 -0
  127. package/.agents/skills/flockposter/examples/cli-multi-platform.json +69 -0
  128. package/.agents/skills/flockposter/examples/cli-tiktok-upload-only.sh +22 -0
  129. package/.agents/skills/flockposter/examples/cli-x-thread.sh +17 -0
  130. package/.agents/skills/flockposter/examples/cli-youtube-short.sh +21 -0
  131. package/.agents/skills/flockposter/examples/public-api-instagram-reel.json +28 -0
  132. package/.agents/skills/general-video/SKILL.md +143 -0
  133. package/.agents/skills/hyperframes/SKILL.md +160 -0
  134. package/.agents/skills/hyperframes-animation/SKILL.md +84 -0
  135. package/.agents/skills/hyperframes-animation/adapters/animate-text.md +64 -0
  136. package/.agents/skills/hyperframes-animation/adapters/animejs.md +114 -0
  137. package/.agents/skills/hyperframes-animation/adapters/css-animations.md +143 -0
  138. package/.agents/skills/hyperframes-animation/adapters/gsap-easing-and-stagger.md +118 -0
  139. package/.agents/skills/hyperframes-animation/adapters/gsap-timeline-and-labels.md +96 -0
  140. package/.agents/skills/hyperframes-animation/adapters/gsap-transforms-and-perf.md +96 -0
  141. package/.agents/skills/hyperframes-animation/adapters/gsap.md +105 -0
  142. package/.agents/skills/hyperframes-animation/adapters/html-in-canvas-patterns.md +507 -0
  143. package/.agents/skills/hyperframes-animation/adapters/lottie.md +117 -0
  144. package/.agents/skills/hyperframes-animation/adapters/three.md +131 -0
  145. package/.agents/skills/hyperframes-animation/adapters/typegpu.md +178 -0
  146. package/.agents/skills/hyperframes-animation/adapters/waapi.md +101 -0
  147. package/.agents/skills/hyperframes-animation/blueprints/comparison-split.md +27 -0
  148. package/.agents/skills/hyperframes-animation/blueprints/constellation-hub.md +44 -0
  149. package/.agents/skills/hyperframes-animation/blueprints/cta-morph-press.md +28 -0
  150. package/.agents/skills/hyperframes-animation/blueprints/cursor-ui-demo.md +57 -0
  151. package/.agents/skills/hyperframes-animation/blueprints/dataviz-countup.md +46 -0
  152. package/.agents/skills/hyperframes-animation/blueprints/device-surface-showcase.md +53 -0
  153. package/.agents/skills/hyperframes-animation/blueprints/grid-card-assemble.md +66 -0
  154. package/.agents/skills/hyperframes-animation/blueprints/kinetic-type-beats.md +78 -0
  155. package/.agents/skills/hyperframes-animation/blueprints/logo-assemble-lockup.md +69 -0
  156. package/.agents/skills/hyperframes-animation/blueprints/overwhelm-surround.md +28 -0
  157. package/.agents/skills/hyperframes-animation/blueprints/spatial-pan-stations.md +37 -0
  158. package/.agents/skills/hyperframes-animation/blueprints/ticker-takeover.md +29 -0
  159. package/.agents/skills/hyperframes-animation/blueprints/titlecard-reveal.md +42 -0
  160. package/.agents/skills/hyperframes-animation/blueprints/typewriter-reveal.md +51 -0
  161. package/.agents/skills/hyperframes-animation/blueprints/video-text-pivot.md +30 -0
  162. package/.agents/skills/hyperframes-animation/blueprints-index.md +146 -0
  163. package/.agents/skills/hyperframes-animation/examples/assets/avatars/02.avif +0 -0
  164. package/.agents/skills/hyperframes-animation/examples/assets/brands/github.avif +0 -0
  165. package/.agents/skills/hyperframes-animation/examples/assets/brands/nvidia.avif +0 -0
  166. package/.agents/skills/hyperframes-animation/examples/assets/brands/visa.avif +0 -0
  167. package/.agents/skills/hyperframes-animation/examples/assets/brands/zoominfo.avif +0 -0
  168. package/.agents/skills/hyperframes-animation/examples/brand-reveal-assemble-zoom.html +382 -0
  169. package/.agents/skills/hyperframes-animation/examples/comparison-split-cards.html +649 -0
  170. package/.agents/skills/hyperframes-animation/examples/concept-demo-decode-pan.html +520 -0
  171. package/.agents/skills/hyperframes-animation/examples/cta-morph-press.html +468 -0
  172. package/.agents/skills/hyperframes-animation/examples/cta-orbit-collapse.html +1298 -0
  173. package/.agents/skills/hyperframes-animation/examples/demo-page-scroll-spotlight.html +759 -0
  174. package/.agents/skills/hyperframes-animation/examples/hook-counter-burst.html +729 -0
  175. package/.agents/skills/hyperframes-animation/examples/messaging-multi-phrase.html +352 -0
  176. package/.agents/skills/hyperframes-animation/examples/metric-video-text-pivot.html +779 -0
  177. package/.agents/skills/hyperframes-animation/examples/problem-mockup-overwhelm.html +1374 -0
  178. package/.agents/skills/hyperframes-animation/examples/proof-logo-chain.html +861 -0
  179. package/.agents/skills/hyperframes-animation/examples/takeover-ticker-displace.html +347 -0
  180. package/.agents/skills/hyperframes-animation/examples/workflow-approve-press.html +606 -0
  181. package/.agents/skills/hyperframes-animation/rules/3d-page-scroll.md +227 -0
  182. package/.agents/skills/hyperframes-animation/rules/3d-text-depth-layers.md +297 -0
  183. package/.agents/skills/hyperframes-animation/rules/ai-tracking-box.md +382 -0
  184. package/.agents/skills/hyperframes-animation/rules/ambient-glow-bloom.md +305 -0
  185. package/.agents/skills/hyperframes-animation/rules/asr-keyword-glow.md +286 -0
  186. package/.agents/skills/hyperframes-animation/rules/avatar-cloud-network.md +371 -0
  187. package/.agents/skills/hyperframes-animation/rules/camera-cursor-tracking.md +246 -0
  188. package/.agents/skills/hyperframes-animation/rules/card-morph-anchor.md +267 -0
  189. package/.agents/skills/hyperframes-animation/rules/center-outward-expansion.md +227 -0
  190. package/.agents/skills/hyperframes-animation/rules/context-sensitive-cursor.md +257 -0
  191. package/.agents/skills/hyperframes-animation/rules/coordinate-target-zoom.md +332 -0
  192. package/.agents/skills/hyperframes-animation/rules/counting-dynamic-scale.md +283 -0
  193. package/.agents/skills/hyperframes-animation/rules/css-marker-patterns.md +373 -0
  194. package/.agents/skills/hyperframes-animation/rules/cursor-click-ripple.md +262 -0
  195. package/.agents/skills/hyperframes-animation/rules/depth-of-field-blur.md +313 -0
  196. package/.agents/skills/hyperframes-animation/rules/depth-scatter-assemble.md +303 -0
  197. package/.agents/skills/hyperframes-animation/rules/discrete-text-sequence.md +273 -0
  198. package/.agents/skills/hyperframes-animation/rules/dynamic-content-sequencing.md +307 -0
  199. package/.agents/skills/hyperframes-animation/rules/gsap-effects.md +299 -0
  200. package/.agents/skills/hyperframes-animation/rules/hacker-flip-3d.md +223 -0
  201. package/.agents/skills/hyperframes-animation/rules/kinetic-beat-slam.md +183 -0
  202. package/.agents/skills/hyperframes-animation/rules/motion-blur-streak.md +328 -0
  203. package/.agents/skills/hyperframes-animation/rules/multi-phase-camera.md +273 -0
  204. package/.agents/skills/hyperframes-animation/rules/orbit-3d-entry.md +301 -0
  205. package/.agents/skills/hyperframes-animation/rules/physics-press-reaction.md +350 -0
  206. package/.agents/skills/hyperframes-animation/rules/press-release-spring.md +296 -0
  207. package/.agents/skills/hyperframes-animation/rules/reactive-displacement.md +277 -0
  208. package/.agents/skills/hyperframes-animation/rules/scale-swap-transition.md +298 -0
  209. package/.agents/skills/hyperframes-animation/rules/sine-wave-loop.md +278 -0
  210. package/.agents/skills/hyperframes-animation/rules/split-tilt-cards.md +277 -0
  211. package/.agents/skills/hyperframes-animation/rules/spring-pop-entrance.md +273 -0
  212. package/.agents/skills/hyperframes-animation/rules/stat-bars-and-fills.md +156 -0
  213. package/.agents/skills/hyperframes-animation/rules/svg-icon-enrichment.md +329 -0
  214. package/.agents/skills/hyperframes-animation/rules/svg-path-draw.md +274 -0
  215. package/.agents/skills/hyperframes-animation/rules/vertical-spring-ticker.md +239 -0
  216. package/.agents/skills/hyperframes-animation/rules/viewport-change.md +349 -0
  217. package/.agents/skills/hyperframes-animation/rules-index.md +86 -0
  218. package/.agents/skills/hyperframes-animation/scripts/animation-map.mjs +606 -0
  219. package/.agents/skills/hyperframes-animation/scripts/package-loader.mjs +288 -0
  220. package/.agents/skills/hyperframes-animation/scripts/package-loader.test.mjs +62 -0
  221. package/.agents/skills/hyperframes-animation/techniques.md +507 -0
  222. package/.agents/skills/hyperframes-animation/transitions/TRANSITION-REGISTRY.md +167 -0
  223. package/.agents/skills/hyperframes-animation/transitions/catalog.md +127 -0
  224. package/.agents/skills/hyperframes-animation/transitions/css-3d.md +12 -0
  225. package/.agents/skills/hyperframes-animation/transitions/css-blur.md +51 -0
  226. package/.agents/skills/hyperframes-animation/transitions/css-cover.md +43 -0
  227. package/.agents/skills/hyperframes-animation/transitions/css-destruction.md +95 -0
  228. package/.agents/skills/hyperframes-animation/transitions/css-dissolve.md +66 -0
  229. package/.agents/skills/hyperframes-animation/transitions/css-distortion.md +45 -0
  230. package/.agents/skills/hyperframes-animation/transitions/css-grid.md +10 -0
  231. package/.agents/skills/hyperframes-animation/transitions/css-light.md +49 -0
  232. package/.agents/skills/hyperframes-animation/transitions/css-mechanical.md +30 -0
  233. package/.agents/skills/hyperframes-animation/transitions/css-other.md +25 -0
  234. package/.agents/skills/hyperframes-animation/transitions/css-push.md +41 -0
  235. package/.agents/skills/hyperframes-animation/transitions/css-radial.md +37 -0
  236. package/.agents/skills/hyperframes-animation/transitions/css-scale.md +24 -0
  237. package/.agents/skills/hyperframes-animation/transitions/overview.md +153 -0
  238. package/.agents/skills/hyperframes-cli/SKILL.md +113 -0
  239. package/.agents/skills/hyperframes-cli/references/doctor-browser.md +45 -0
  240. package/.agents/skills/hyperframes-cli/references/init-and-scaffold.md +55 -0
  241. package/.agents/skills/hyperframes-cli/references/lambda.md +132 -0
  242. package/.agents/skills/hyperframes-cli/references/lint-validate-inspect.md +121 -0
  243. package/.agents/skills/hyperframes-cli/references/preview-render.md +149 -0
  244. package/.agents/skills/hyperframes-cli/references/upgrade-info-misc.md +75 -0
  245. package/.agents/skills/hyperframes-core/SKILL.md +78 -0
  246. package/.agents/skills/hyperframes-core/references/composition-patterns.md +263 -0
  247. package/.agents/skills/hyperframes-core/references/data-attributes.md +70 -0
  248. package/.agents/skills/hyperframes-core/references/determinism-rules.md +68 -0
  249. package/.agents/skills/hyperframes-core/references/full-screen-motion.md +62 -0
  250. package/.agents/skills/hyperframes-core/references/minimal-composition.md +66 -0
  251. package/.agents/skills/hyperframes-core/references/script-format.md +49 -0
  252. package/.agents/skills/hyperframes-core/references/storyboard-format.md +95 -0
  253. package/.agents/skills/hyperframes-core/references/sub-compositions.md +237 -0
  254. package/.agents/skills/hyperframes-core/references/subagent-dispatch.md +41 -0
  255. package/.agents/skills/hyperframes-core/references/tailwind.md +125 -0
  256. package/.agents/skills/hyperframes-core/references/tracks-and-clips.md +76 -0
  257. package/.agents/skills/hyperframes-core/references/variables-and-media.md +90 -0
  258. package/.agents/skills/hyperframes-creative/SKILL.md +70 -0
  259. package/.agents/skills/hyperframes-creative/frame-presets/biennale-yellow/FRAME.md +289 -0
  260. package/.agents/skills/hyperframes-creative/frame-presets/biennale-yellow/caption-skin.html +221 -0
  261. package/.agents/skills/hyperframes-creative/frame-presets/biennale-yellow/frame-showcase.html +1214 -0
  262. package/.agents/skills/hyperframes-creative/frame-presets/blockframe/FRAME.md +275 -0
  263. package/.agents/skills/hyperframes-creative/frame-presets/blockframe/caption-skin.html +224 -0
  264. package/.agents/skills/hyperframes-creative/frame-presets/blockframe/frame-showcase.html +1347 -0
  265. package/.agents/skills/hyperframes-creative/frame-presets/blue-professional/FRAME.md +307 -0
  266. package/.agents/skills/hyperframes-creative/frame-presets/blue-professional/caption-skin.html +223 -0
  267. package/.agents/skills/hyperframes-creative/frame-presets/blue-professional/frame-showcase.html +1372 -0
  268. package/.agents/skills/hyperframes-creative/frame-presets/bold-poster/FRAME.md +275 -0
  269. package/.agents/skills/hyperframes-creative/frame-presets/bold-poster/caption-skin.html +230 -0
  270. package/.agents/skills/hyperframes-creative/frame-presets/bold-poster/frame-showcase.html +1140 -0
  271. package/.agents/skills/hyperframes-creative/frame-presets/broadside/FRAME.md +284 -0
  272. package/.agents/skills/hyperframes-creative/frame-presets/broadside/caption-skin.html +225 -0
  273. package/.agents/skills/hyperframes-creative/frame-presets/broadside/frame-showcase.html +1166 -0
  274. package/.agents/skills/hyperframes-creative/frame-presets/capsule/FRAME.md +284 -0
  275. package/.agents/skills/hyperframes-creative/frame-presets/capsule/caption-skin.html +224 -0
  276. package/.agents/skills/hyperframes-creative/frame-presets/capsule/frame-showcase.html +1465 -0
  277. package/.agents/skills/hyperframes-creative/frame-presets/cartesian/FRAME.md +278 -0
  278. package/.agents/skills/hyperframes-creative/frame-presets/cartesian/caption-skin.html +222 -0
  279. package/.agents/skills/hyperframes-creative/frame-presets/cartesian/frame-showcase.html +1263 -0
  280. package/.agents/skills/hyperframes-creative/frame-presets/claude/FRAME.md +277 -0
  281. package/.agents/skills/hyperframes-creative/frame-presets/claude/caption-skin.html +224 -0
  282. package/.agents/skills/hyperframes-creative/frame-presets/claude/frame-showcase.html +1439 -0
  283. package/.agents/skills/hyperframes-creative/frame-presets/cobalt-grid/FRAME.md +265 -0
  284. package/.agents/skills/hyperframes-creative/frame-presets/cobalt-grid/caption-skin.html +238 -0
  285. package/.agents/skills/hyperframes-creative/frame-presets/cobalt-grid/frame-showcase.html +1468 -0
  286. package/.agents/skills/hyperframes-creative/frame-presets/coral/FRAME.md +314 -0
  287. package/.agents/skills/hyperframes-creative/frame-presets/coral/caption-skin.html +226 -0
  288. package/.agents/skills/hyperframes-creative/frame-presets/coral/frame-showcase.html +1268 -0
  289. package/.agents/skills/hyperframes-creative/frame-presets/creative-mode/FRAME.md +333 -0
  290. package/.agents/skills/hyperframes-creative/frame-presets/creative-mode/caption-skin.html +227 -0
  291. package/.agents/skills/hyperframes-creative/frame-presets/creative-mode/frame-showcase.html +1330 -0
  292. package/.agents/skills/hyperframes-creative/frame-presets/daisy-days/FRAME.md +274 -0
  293. package/.agents/skills/hyperframes-creative/frame-presets/daisy-days/caption-skin.html +230 -0
  294. package/.agents/skills/hyperframes-creative/frame-presets/daisy-days/frame-showcase.html +1444 -0
  295. package/.agents/skills/hyperframes-creative/frame-presets/editorial-forest/FRAME.md +265 -0
  296. package/.agents/skills/hyperframes-creative/frame-presets/editorial-forest/caption-skin.html +223 -0
  297. package/.agents/skills/hyperframes-creative/frame-presets/editorial-forest/frame-showcase.html +1273 -0
  298. package/.agents/skills/hyperframes-creative/palettes/bold-energetic.md +14 -0
  299. package/.agents/skills/hyperframes-creative/palettes/clean-corporate.md +14 -0
  300. package/.agents/skills/hyperframes-creative/palettes/dark-premium.md +14 -0
  301. package/.agents/skills/hyperframes-creative/palettes/jewel-rich.md +14 -0
  302. package/.agents/skills/hyperframes-creative/palettes/monochrome.md +14 -0
  303. package/.agents/skills/hyperframes-creative/palettes/nature-earth.md +14 -0
  304. package/.agents/skills/hyperframes-creative/palettes/neon-electric.md +14 -0
  305. package/.agents/skills/hyperframes-creative/palettes/pastel-soft.md +14 -0
  306. package/.agents/skills/hyperframes-creative/palettes/warm-editorial.md +14 -0
  307. package/.agents/skills/hyperframes-creative/references/audio-reactive.md +76 -0
  308. package/.agents/skills/hyperframes-creative/references/beat-direction.md +164 -0
  309. package/.agents/skills/hyperframes-creative/references/composition-patterns.md +199 -0
  310. package/.agents/skills/hyperframes-creative/references/data-in-motion.md +19 -0
  311. package/.agents/skills/hyperframes-creative/references/design-adherence.md +19 -0
  312. package/.agents/skills/hyperframes-creative/references/design-picker.md +123 -0
  313. package/.agents/skills/hyperframes-creative/references/design-spec.md +55 -0
  314. package/.agents/skills/hyperframes-creative/references/house-style.md +73 -0
  315. package/.agents/skills/hyperframes-creative/references/motion-principles.md +150 -0
  316. package/.agents/skills/hyperframes-creative/references/narration.md +92 -0
  317. package/.agents/skills/hyperframes-creative/references/prompt-expansion.md +68 -0
  318. package/.agents/skills/hyperframes-creative/references/typography.md +218 -0
  319. package/.agents/skills/hyperframes-creative/references/video-composition.md +63 -0
  320. package/.agents/skills/hyperframes-creative/references/visual-styles.md +457 -0
  321. package/.agents/skills/hyperframes-creative/scripts/contrast-report.mjs +353 -0
  322. package/.agents/skills/hyperframes-creative/scripts/extract-audio-data.py +188 -0
  323. package/.agents/skills/hyperframes-creative/scripts/package-loader.mjs +288 -0
  324. package/.agents/skills/hyperframes-creative/scripts/package-loader.test.mjs +62 -0
  325. package/.agents/skills/hyperframes-creative/templates/design-picker.html +1432 -0
  326. package/.agents/skills/hyperframes-keyframes/SKILL.md +237 -0
  327. package/.agents/skills/hyperframes-keyframes/agents/openai.yaml +4 -0
  328. package/.agents/skills/hyperframes-keyframes/references/keyframe-patterns.md +106 -0
  329. package/.agents/skills/motion-graphics/SKILL.md +172 -0
  330. package/.agents/skills/motion-graphics/agents/builder.md +40 -0
  331. package/.agents/skills/motion-graphics/agents/director.md +53 -0
  332. package/.agents/skills/motion-graphics/agents/finalize.md +17 -0
  333. package/.agents/skills/motion-graphics/catalog-map.md +40 -0
  334. package/.agents/skills/motion-graphics/categories/asset-fusion/module.md +37 -0
  335. package/.agents/skills/motion-graphics/categories/charts/module.md +21 -0
  336. package/.agents/skills/motion-graphics/categories/kinetic-type/module.md +19 -0
  337. package/.agents/skills/motion-graphics/categories/logo-reveal/module.md +17 -0
  338. package/.agents/skills/motion-graphics/categories/lower-thirds/module.md +16 -0
  339. package/.agents/skills/motion-graphics/categories/maps/bake-basemap.mjs +273 -0
  340. package/.agents/skills/motion-graphics/categories/maps/module.md +61 -0
  341. package/.agents/skills/motion-graphics/categories/news/module.md +56 -0
  342. package/.agents/skills/motion-graphics/categories/stat/module.md +21 -0
  343. package/.agents/skills/motion-graphics/categories/tweet/module.md +16 -0
  344. package/.agents/skills/motion-graphics/categories/webpage/module.md +21 -0
  345. package/.agents/skills/motion-graphics/grounding/PROTOCOL.md +64 -0
  346. package/.agents/skills/motion-graphics/grounding/locate.mjs +227 -0
  347. package/.agents/skills/motion-graphics/phases/source/guide.md +21 -0
  348. package/.agents/skills/motion-graphics/references/builder-contract.md +38 -0
  349. package/.agents/skills/motion-graphics/references/motion-vocabulary.md +43 -0
  350. package/.agents/skills/motion-graphics/references/shot-plan-ir.md +54 -0
  351. package/.agents/skills/motion-graphics/samples/asset-fusion/_ref-circle-highlight.html +306 -0
  352. package/.agents/skills/music/SKILL.md +416 -0
  353. package/.agents/skills/music/references/api_reference.md +519 -0
  354. package/.agents/skills/music/references/installation.md +65 -0
  355. package/.agents/skills/product-launch-video/SKILL.md +208 -0
  356. package/.agents/skills/product-launch-video/references/cut-catalog.md +220 -0
  357. package/.agents/skills/product-launch-video/references/motion-language.md +156 -0
  358. package/.agents/skills/product-launch-video/references/story-design.md +373 -0
  359. package/.agents/skills/product-launch-video/references/visual-design.md +126 -0
  360. package/.agents/skills/product-launch-video/scripts/assemble-index.mjs +570 -0
  361. package/.agents/skills/product-launch-video/scripts/audio.mjs +260 -0
  362. package/.agents/skills/product-launch-video/scripts/build-frame.mjs +536 -0
  363. package/.agents/skills/product-launch-video/scripts/captions.mjs +508 -0
  364. package/.agents/skills/product-launch-video/scripts/lib/assets.mjs +55 -0
  365. package/.agents/skills/product-launch-video/scripts/lib/dimensions.mjs +45 -0
  366. package/.agents/skills/product-launch-video/scripts/lib/pad-frame-duration.mjs +36 -0
  367. package/.agents/skills/product-launch-video/scripts/lib/pad-frame-duration.test.mjs +76 -0
  368. package/.agents/skills/product-launch-video/scripts/lib/storyboard.mjs +249 -0
  369. package/.agents/skills/product-launch-video/scripts/lib/tokens.mjs +204 -0
  370. package/.agents/skills/product-launch-video/scripts/lib/transition-registry.mjs +38 -0
  371. package/.agents/skills/product-launch-video/scripts/lib/transitions.json +71 -0
  372. package/.agents/skills/product-launch-video/scripts/stage-assets.mjs +39 -0
  373. package/.agents/skills/product-launch-video/scripts/transitions.mjs +327 -0
  374. package/.agents/skills/product-launch-video/sub-agents/frame-worker.md +75 -0
  375. package/.agents/skills/slideshow/SKILL.md +550 -0
  376. package/.agents/skills/slideshow/references/standalone-harness.md +1020 -0
  377. package/.agents/skills/talking-head-recut/NOTICE.md +39 -0
  378. package/.agents/skills/talking-head-recut/SKILL.md +1195 -0
  379. package/.agents/skills/talking-head-recut/assets/vendor/gsap.min.js +10 -0
  380. package/.agents/skills/talking-head-recut/references/DESIGN_INDEX.md +145 -0
  381. package/.agents/skills/talking-head-recut/references/frames/clean.html +92 -0
  382. package/.agents/skills/talking-head-recut/references/frames/hairline.html +171 -0
  383. package/.agents/skills/talking-head-recut/references/frames/polaroid.html +131 -0
  384. package/.agents/skills/talking-head-recut/references/layouts/overlay.html +164 -0
  385. package/.agents/skills/talking-head-recut/references/layouts/pip.html +143 -0
  386. package/.agents/skills/talking-head-recut/references/layouts/split.html +121 -0
  387. package/.agents/skills/talking-head-recut/references/layouts/stack.html +109 -0
  388. package/.agents/skills/talking-head-recut/references/styles/academic.html +172 -0
  389. package/.agents/skills/talking-head-recut/references/styles/audit.html +170 -0
  390. package/.agents/skills/talking-head-recut/references/styles/editorial.html +189 -0
  391. package/.agents/skills/talking-head-recut/references/styles/geom.html +181 -0
  392. package/.agents/skills/talking-head-recut/references/styles/minimal.html +130 -0
  393. package/.agents/skills/talking-head-recut/references/styles/spotlight.html +142 -0
  394. package/.agents/skills/talking-head-recut/references/styles/swiss.html +188 -0
  395. package/.agents/skills/talking-head-recut/references/styles/terminal.html +196 -0
  396. package/.agents/skills/talking-head-recut/references/styles/whiteboard.html +170 -0
  397. package/.agents/skills/talking-head-recut/references/styles/xhs.html +206 -0
  398. package/.agents/skills/text-to-speech/SKILL.md +226 -0
  399. package/.agents/skills/text-to-speech/references/installation.md +90 -0
  400. package/.agents/skills/text-to-speech/references/streaming.md +307 -0
  401. package/.agents/skills/text-to-speech/references/voice-settings.md +115 -0
  402. package/.agents/skills/vidfarm-director/SKILL.md +179 -0
  403. package/.agents/skills/vidfarm-director/recipes/find-and-fork-template.md +16 -0
  404. package/.agents/skills/vidfarm-director/recipes/local-edit-render-approve.md +13 -0
  405. package/.agents/skills/vidfarm-director/recipes/onboard-a-new-director.md +13 -0
  406. package/.agents/skills/vidfarm-director/recipes/retheme-template.md +17 -0
  407. package/.agents/skills/vidfarm-director/references/assets-and-sourcing.md +117 -0
  408. package/.agents/skills/vidfarm-director/references/automation-and-local-dev.md +276 -0
  409. package/.agents/skills/vidfarm-director/references/core-workflows.md +301 -0
  410. package/.agents/skills/vidfarm-director/references/editor-workflows.md +367 -0
  411. package/.agents/skills/vidfarm-director/references/onboarding.md +28 -0
  412. package/.agents/skills/vidfarm-director/references/primitives.md +307 -0
  413. package/.agents/skills/vidfarm-director/references/rest-api.md +84 -0
  414. package/.agents/skills/vidfarm-media/SKILL.md +158 -0
  415. package/.agents/skills/vidfarm-media/references/tts.md +111 -0
  416. package/.agents/skills/vidfarm-media/scripts/audio.mjs +628 -0
  417. package/.agents/skills/vidfarm-media/scripts/wait-bgm.mjs +31 -0
  418. package/.agents/skills/website-to-video/SKILL.md +145 -0
  419. package/.agents/skills/website-to-video/assets/sfx/CREDITS.md +35 -0
  420. package/.agents/skills/website-to-video/assets/sfx/manifest.json +97 -0
  421. package/.agents/skills/website-to-video/references/beat-builder-guide.md +263 -0
  422. package/.agents/skills/website-to-video/references/capabilities.md +713 -0
  423. package/.agents/skills/website-to-video/references/step-0-capture.md +55 -0
  424. package/.agents/skills/website-to-video/references/step-1-design.md +333 -0
  425. package/.agents/skills/website-to-video/references/step-2-brief.md +178 -0
  426. package/.agents/skills/website-to-video/references/step-3-storyboard.md +572 -0
  427. package/.agents/skills/website-to-video/references/step-4-vo.md +225 -0
  428. package/.agents/skills/website-to-video/references/step-5-build.md +483 -0
  429. package/.agents/skills/website-to-video/references/step-6-validate.md +341 -0
  430. package/.agents/skills/website-to-video/scripts/w2h-verify.mjs +759 -0
  431. package/README.md +97 -0
  432. package/SKILL.director.md +1644 -0
  433. package/SKILL.md +83 -0
  434. package/demo/README.md +28 -0
  435. package/demo/dist/app.css +1 -0
  436. package/demo/dist/app.js +968 -0
  437. package/demo/dist/chunks/chunk-3OT2D42H.js +1 -0
  438. package/demo/dist/chunks/chunk-DXB73IDG.js +1 -0
  439. package/demo/dist/chunks/domEditingLayers-AT7G6F4L-ZTHJHB7R.js +1 -0
  440. package/demo/dist/chunks/hyperframes-player-7HKH6NSO.js +459 -0
  441. package/demo/dist/chunks/lib-XAQ37YOE.js +1 -0
  442. package/demo/dist/chunks/src-TJ2QYA4U.js +207 -0
  443. package/demo/dist/favicon.ico +0 -0
  444. package/demo/dist/icons/timeline/audio.svg +7 -0
  445. package/demo/dist/icons/timeline/captions.svg +5 -0
  446. package/demo/dist/icons/timeline/composition.svg +12 -0
  447. package/demo/dist/icons/timeline/image.svg +18 -0
  448. package/demo/dist/icons/timeline/music.svg +10 -0
  449. package/demo/dist/icons/timeline/text.svg +3 -0
  450. package/demo/dist/index.html +16 -0
  451. package/dist/src/cli.js +7258 -0
  452. package/dist/src/devcli/auth-store.js +67 -0
  453. package/dist/src/devcli/captions.js +310 -0
  454. package/dist/src/devcli/clip-store.js +368 -0
  455. package/dist/src/devcli/clips.js +1138 -0
  456. package/dist/src/devcli/composition-edit.js +1292 -0
  457. package/dist/src/devcli/cost-mode.js +149 -0
  458. package/dist/src/devcli/doctor.js +192 -0
  459. package/dist/src/devcli/hyperframes-cli.js +118 -0
  460. package/dist/src/devcli/local-backend.js +167 -0
  461. package/dist/src/devcli/local-frontend-server.js +681 -0
  462. package/dist/src/devcli/local-render.js +136 -0
  463. package/dist/src/devcli/skills.js +476 -0
  464. package/dist/src/devcli/speech.js +178 -0
  465. package/dist/src/devcli/stills.js +249 -0
  466. package/dist/src/devcli/telemetry.js +236 -0
  467. package/dist/src/devcli/timeline-edit.js +490 -0
  468. package/dist/src/devcli/transitions.js +205 -0
  469. package/dist/src/hyperframes/composition.js +780 -0
  470. package/dist/src/lib/crypto.js +45 -0
  471. package/dist/src/lib/dev-log.js +54 -0
  472. package/dist/src/lib/display-name.js +11 -0
  473. package/dist/src/lib/ids.js +24 -0
  474. package/dist/src/lib/images.js +19 -0
  475. package/dist/src/lib/json.js +15 -0
  476. package/dist/src/lib/package-root.js +47 -0
  477. package/dist/src/lib/render-media-prep.js +293 -0
  478. package/dist/src/lib/template-paths.js +28 -0
  479. package/dist/src/lib/time.js +7 -0
  480. package/dist/src/lib/url-clean.js +85 -0
  481. package/dist/src/services/captions.js +123 -0
  482. package/dist/src/services/clip-curation/cost.js +116 -0
  483. package/dist/src/services/clip-curation/ffmpeg.js +352 -0
  484. package/dist/src/services/clip-curation/gemini.js +418 -0
  485. package/dist/src/services/clip-curation/hunt.js +470 -0
  486. package/dist/src/services/clip-curation/index.js +19 -0
  487. package/dist/src/services/clip-curation/local-agent.js +248 -0
  488. package/dist/src/services/clip-curation/media-select.js +152 -0
  489. package/dist/src/services/clip-curation/presets.js +20 -0
  490. package/dist/src/services/clip-curation/presets.v1.json +59 -0
  491. package/dist/src/services/clip-curation/query.js +167 -0
  492. package/dist/src/services/clip-curation/refine.js +165 -0
  493. package/dist/src/services/clip-curation/scan.js +189 -0
  494. package/dist/src/services/clip-curation/source-naming.js +131 -0
  495. package/dist/src/services/clip-curation/taxonomy.js +73 -0
  496. package/dist/src/services/clip-curation/taxonomy.v1.json +102 -0
  497. package/dist/src/services/clip-curation/types.js +7 -0
  498. package/dist/src/services/composition-lint.js +199 -0
  499. package/dist/src/services/provider-errors.js +128 -0
  500. package/dist/src/services/speech.js +629 -0
  501. package/package.json +154 -0
  502. package/public/assets/discover-client-app.js +1 -0
  503. package/public/assets/favicon.ico +0 -0
  504. package/public/assets/file-directory-app.js +89 -0
  505. package/public/assets/homepage-app.js +54 -0
  506. package/public/assets/homepage-client-app.js +80 -0
  507. package/public/assets/landing-page-client-app.js +87 -0
  508. package/public/assets/logo-vidfarm.png +0 -0
  509. package/public/assets/page-runtime-client-app.js +94 -0
  510. package/public/assets/placeholders/scene-placeholder.png +0 -0
  511. package/public/serve-shells/editor.html +3146 -0
  512. package/public/serve-shells/library-files.html +3450 -0
  513. package/public/serve-shells/library-raws.html +4404 -0
  514. package/public/serve-shells/tools-clipper.html +3991 -0
  515. package/public/serve-shells/tools-image.html +5584 -0
  516. package/public/serve-shells/tools-video.html +4404 -0
@@ -0,0 +1 @@
1
+ function h(t){if(!t)return null;let e=t.trim();if(!e.endsWith("px"))return null;let n=parseFloat(e);return Number.isFinite(n)?n:null}function st(t){let e=(t??"none").trim();if(!e||e==="none")return!0;let n=e.match(/^matrix\(([^)]+)\)$/i);if(n&&n[1]){let s=n[1].split(",");if(s.length!==6)return!1;let a=s.map(c=>Number.parseFloat(c.trim()));if(a.some(c=>!Number.isFinite(c)))return!1;let[l=0,f=0,u=0,p=0,b=0,m=0]=a;return Math.abs(l-1)<1e-4&&Math.abs(f)<1e-4&&Math.abs(u)<1e-4&&Math.abs(p-1)<1e-4&&Math.abs(b)<1e-4&&Math.abs(m)<1e-4}let o=e.match(/^matrix3d\(([^)]+)\)$/i);if(!o||!o[1])return!1;let i=o[1].split(",").map(s=>Number.parseFloat(s.trim()));if(i.length!==16||i.some(s=>!Number.isFinite(s)))return!1;let r=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];return i.every((s,a)=>Math.abs(s-(r[a]??0))<1e-4)}function at(t){if(!t.hasStableTarget||t.isInsideLockedComposition)return{canSelect:!t.isInsideLockedComposition,canEditStyles:!1,canCrop:!1,canMove:!1,canResize:!1,canApplyManualOffset:!1,canApplyManualSize:!1,canApplyManualRotation:!1,reasonIfDisabled:t.isInsideLockedComposition?"This element belongs to a locked composition.":"Studio could not resolve a stable patch target for this element."};if(!t.existsInSource)return{canSelect:!0,canEditStyles:!1,canCrop:!1,canMove:!1,canResize:!1,canApplyManualOffset:!1,canApplyManualSize:!1,canApplyManualRotation:!1,reasonIfDisabled:"This element is generated by a script and cannot be edited visually."};if(t.isCompositionRoot)return{canSelect:!0,canEditStyles:!0,canCrop:!1,canMove:!1,canResize:!1,canApplyManualOffset:!1,canApplyManualSize:!1,canApplyManualRotation:!1,reasonIfDisabled:"The root composition defines the preview bounds."};let e=t.computedStyles??{},n=e.position,o=h(t.inlineStyles.left)??h(e.left),i=h(t.inlineStyles.top)??h(e.top),r=h(t.inlineStyles.width)??h(e.width),s=h(t.inlineStyles.height)??h(e.height),a=!st(e.transform),l=(n==="absolute"||n==="fixed")&&o!=null&&i!=null&&!a,f=l&&(r!=null||s!=null),u=!t.isCompositionHost,p=u?void 0:"Select an internal layer to transform it.";return{canSelect:!0,canEditStyles:!(t.isCompositionHost&&t.isMasterView),canCrop:!0,canMove:l,canResize:f,canApplyManualOffset:u,canApplyManualSize:u,canApplyManualRotation:u,reasonIfDisabled:p}}function D(t){let e=t.tag!=="audio";return{text:t.hasEditableText&&!t.isCompositionHost&&!t.isInsideLockedComposition,media:t.tag==="video"||t.tag==="audio"||t.tag==="img",colorGrading:t.tag==="video"||t.tag==="img",timing:t.hasTimingStart||t.animationCount>0,animation:t.animationCount>0,layout:e,style:e}}function F(t){return{capabilities:at(t),sections:D(t)}}var Qt="data-color-grading",P="data-hf-color-grading-source-hidden",te="data-hf-authored-opacity",ee="__hf_color_grading_",ct="rec709",I={exposure:0,contrast:0,highlights:0,shadows:0,whites:0,blacks:0,temperature:0,tint:0,vibrance:0,saturation:0},w={vignette:0,vignetteMidpoint:.5,vignetteRoundness:0,vignetteFeather:.65,grain:0,grainSize:.25,grainRoughness:.5},E={blur:0,pixelate:0},G=Object.keys(I),ut=Object.keys(w),H=Object.keys(E);function d(t,e,n={},o={}){return{id:t,label:e,adjust:{...I,...n},details:{...w,...o},effects:{...E}}}var lt=[d("neutral","Neutral"),d("natural-lift","Natural Lift",{exposure:.04,contrast:.06,highlights:-.06,shadows:.08,saturation:.05}),d("fresh-pop","Fresh Pop",{exposure:.08,contrast:.12,whites:.06,shadows:.04,temperature:-.02,vibrance:.08,saturation:.16}),d("warm-daylight","Warm Daylight",{exposure:.06,contrast:.07,highlights:-.06,shadows:.08,temperature:.18,saturation:.08}),d("clean-studio","Clean Studio",{contrast:.08,highlights:-.08,shadows:.06,temperature:-.08,tint:.03,saturation:.04}),d("skin-soft","Skin Soft",{exposure:.04,contrast:-.03,highlights:-.12,shadows:.12,temperature:.08,tint:.02,saturation:.04}),d("food-pop","Food Pop",{exposure:.06,contrast:.1,shadows:.06,temperature:.14,vibrance:.1,saturation:.18}),d("night-lift","Night Lift",{exposure:.08,contrast:.08,highlights:-.18,shadows:.2,blacks:-.08,saturation:.04},{vignette:.12}),d("muted-editorial","Muted Editorial",{exposure:-.02,contrast:.08,highlights:-.08,shadows:.06,blacks:-.05,temperature:-.03,saturation:-.12},{vignette:.1}),d("vintage-wash","Vintage Wash",{exposure:.03,contrast:-.12,highlights:-.1,shadows:.16,whites:-.04,blacks:.08,temperature:.13,vibrance:-.08,saturation:-.08},{vignette:.18}),d("mono-clean","Mono Clean",{contrast:.12,highlights:-.04,shadows:.04,blacks:-.08,saturation:-1}),d("mono-fade","Mono Fade",{contrast:-.04,highlights:-.06,shadows:.1,blacks:.12,saturation:-1},{vignette:.08}),d("warm-clean","Warm Clean",{exposure:.05,contrast:.08,highlights:-.08,shadows:.08,temperature:.16,vibrance:.04,saturation:.06}),d("cool-clean","Cool Clean",{contrast:.06,highlights:-.06,shadows:.06,temperature:-.12,tint:.04,saturation:.04}),d("soft-boost","Soft Boost",{exposure:.06,contrast:-.04,highlights:-.14,shadows:.16,vibrance:.08,saturation:.1}),d("bright-pop","Bright Pop",{exposure:.12,contrast:.12,whites:.08,blacks:-.04,vibrance:.08,saturation:.14}),d("deep-contrast","Deep Contrast",{exposure:-.03,contrast:.2,highlights:-.08,shadows:-.08,blacks:-.12,saturation:.06})],dt=new Map(lt.map(t=>[t.id,t]));var ft={exposure:{min:-2,max:2},contrast:{min:-1,max:1},highlights:{min:-1,max:1},shadows:{min:-1,max:1},whites:{min:-1,max:1},blacks:{min:-1,max:1},temperature:{min:-1,max:1},tint:{min:-1,max:1},vibrance:{min:-1,max:1},saturation:{min:-1,max:1}},pt={vignette:{min:0,max:1},vignetteMidpoint:{min:0,max:1},vignetteRoundness:{min:-1,max:1},vignetteFeather:{min:0,max:1},grain:{min:0,max:1},grainSize:{min:0,max:1},grainRoughness:{min:0,max:1}},mt={blur:{min:0,max:1},pixelate:{min:0,max:1}};function y(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function ht(t,e,n){return Number.isFinite(t)?Math.min(n,Math.max(e,t)):0}function j(t,e){let n=typeof t=="number"?t:Number(t);return Number.isFinite(n)?Math.min(1,Math.max(0,n)):e}function L(t,e){let n=typeof t=="number"?t:Number(t);return Number.isFinite(n)?ht(n,e.min,e.max):0}function gt(t){if(t==null)return null;let e=String(t).trim();return e||null}function bt(t){if(t==null)return null;if(typeof t=="string"){let n=t.trim();return n?{src:n,intensity:1}:null}if(!y(t))return null;let e=t.src;return typeof e!="string"||e.trim()===""?null:{src:e.trim(),intensity:j(t.intensity,1)}}function yt(t){if(typeof t=="string"){let e=t.trim();if(!e)return null;if(e.startsWith("{"))try{let n=JSON.parse(e);return y(n)?n:null}catch{return null}return{preset:e,intensity:1}}return y(t)?t:null}function xt(t){return t?dt.get(t)??null:null}function St(t){let e=yt(t);if(!e||e.enabled===!1)return null;let n=gt(e.preset),o=xt(n),i=o?.adjust??I,r=o?.details??w,s=o?.effects??E,a=y(e.adjust)?e.adjust:{},l=y(e.details)?e.details:{},f=y(e.effects)?e.effects:{},u=G.reduce((m,c)=>(m[c]=L(a[c]??i[c],ft[c]),m),{...I}),p=ut.reduce((m,c)=>(m[c]=L(l[c]??r[c],pt[c]),m),{...w}),b=H.reduce((m,c)=>(m[c]=L(f[c]??s[c],mt[c]),m),{...E});return{enabled:!0,preset:n,intensity:j(e.intensity,1),adjust:u,details:p,effects:b,lut:bt(e.lut),colorSpace:typeof e.colorSpace=="string"&&e.colorSpace.trim()?e.colorSpace.trim():ct}}function ne(t){let e=St(t);if(!e)return"";let{enabled:n,...o}=e;return JSON.stringify(o)}function ie(t){return!t?.enabled||t.intensity===0?!1:t.lut&&t.lut.intensity!==0?!0:G.some(e=>Math.abs(t.adjust[e])>1e-4)||Math.abs(t.details.vignette)>1e-4||Math.abs(t.details.grain)>1e-4||H.some(e=>Math.abs(t.effects[e])>1e-4)}function Ct(t,e,n,o,i){if(!(!n||n.startsWith("#")||n.startsWith("[data-composition-id=")))try{let r=o??"index.html",a=Array.from(t.querySelectorAll(n)).filter(l=>(i(l)??"index.html")===r).indexOf(e);return a>=0?a:void 0}catch{return}}var Y=["position","display","top","left","right","bottom","inset","width","height","gap","justify-content","align-items","flex-direction","font-size","font-style","font-weight","font-family","line-height","letter-spacing","text-align","text-transform","color","background-color","background-image","opacity","mix-blend-mode","border-radius","border-width","border-style","border-color","border-top-width","border-top-style","border-top-color","outline-color","overflow","clip-path","box-shadow","filter","backdrop-filter","z-index","transform","object-fit","object-position"];function g(t){return typeof t=="object"&&t!==null&&"nodeType"in t&&typeof t.nodeType=="number"&&t.nodeType===1}function At(t){return["div","span","p","strong","h1","h2","h3","h4","h5","h6"].includes(t)}function It(t){let e=t.ownerDocument.defaultView;if(!e)return!0;let n=t;for(;n;){let o=e.getComputedStyle(n);if(o.display==="none"||o.visibility==="hidden")return!1;let i=Number.parseFloat(o.opacity);if(Number.isFinite(i)&&i<=.01&&!n.hasAttribute(P))return!1;n=n.parentElement}return!0}function J(t){let e={},n=t.ownerDocument.defaultView?.getComputedStyle(t);if(!n)return e;for(let o of Y){let i=n.getPropertyValue(o);i&&(e[o]=i)}return e}function K(t){let e={};for(let n of Y){let o=t.style.getPropertyValue(n);o&&(e[n]=o)}return e}function wt(t){let e={};for(let n of t.attributes)n.name.startsWith("data-")&&(e[n.name.slice(5)]=n.value);return e}function O(t,e){let n=t;for(;n;){let o=n;if(e.some(i=>o.hasAttribute(i)))return o;n=n.parentElement}return null}var R=new Map;function ce(t){R=t}function Et(t){if(!t||R.size===0)return;let e=t.getAttribute("data-hf-original-composition-id"),n=t.getAttribute("data-composition-id");return(e?R.get(e):void 0)??(n?R.get(n):void 0)}function C(t,e){let n=O(t,["data-composition-file","data-composition-src"]),o=O(t,["data-composition-id"]),i=n?.getAttribute("data-composition-file")??n?.getAttribute("data-composition-src")??o?.getAttribute("data-composition-file")??o?.getAttribute("data-composition-src")??Et(o)??e??"index.html";return{sourceFile:i,compositionPath:i}}function z(t){let e=t?.trim();if(!e)return;let n=e;try{n=new URL(e,"http://studio.local").pathname}catch{n=e}for(let o of["/preview/comp/","/preview/"]){let i=n.indexOf(o);if(i<0)continue;return n.slice(i+o.length).replace(/^\/+/,"")||e}return e}function Z(t){let e=globalThis.CSS;if(typeof e?.escape=="function")return e.escape(t);if(t==="-")return"\\-";let n="";for(let o=0;o<t.length;o+=1){let i=t[o]??"",r=i.charCodeAt(0);if(r===0){n+="\uFFFD";continue}let s=r>=48&&r<=57,a=r>=65&&r<=90,l=r>=97&&r<=122,f=r>=1&&r<=31||r===127,u=o===0&&s,p=o===1&&t.startsWith("-")&&s;if(f||u||p){n+=`\\${r.toString(16)} `;continue}if(a||l||s||i==="-"||i==="_"||r>=128){n+=i;continue}n+=`\\${i}`}return n}function x(t){return t.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\a ").replace(/\r/g,"\\d ").replace(/\f/g,"\\c ")}function vt(t,e){try{return Array.from(t.querySelectorAll(e))}catch{return[]}}function v(t){return t.replace(/\.html$/i,"").replace(/^compositions\//i,"").split("/").at(-1)?.replace(/[-_]+/g," ").replace(/\b\w/g,e=>e.toUpperCase())??t}function X(t){if(t.id)return`#${Z(t.id)}`;let e=t.getAttribute("data-composition-id");if(e)return`[data-composition-id="${x(e)}"]`;let n=t.getAttribute("data-hf-group");return n?`[data-hf-group="${x(n)}"]`:Q(t)}function Q(t){let e=Array.from(t.classList).map(o=>o.trim()).filter(Boolean);if(e.length===0)return;let n=e.find(o=>o!=="clip"&&!o.startsWith("__hf-"))??e[0];return n?`.${Z(n)}`:void 0}function tt(t){let e=t.getAttribute("data-composition-id");if(e&&e!=="main")return v(e);let n=t.getAttribute("data-composition-src")??t.getAttribute("data-composition-file");if(n)return v(n);let o=t.getAttribute("data-hf-group");if(o)return o;if(t.id)return v(t.id);let i=Q(t);if(i)return v(i.replace(/^\./,""));let r=(t.textContent??"").trim().replace(/\s+/g," ");return r?r.length>40?`${r.slice(0,39)}\u2026`:r:t.tagName.toLowerCase()}function et(t,e,n,o,i){if(n?.startsWith("."))return Ct(t,e,n,o,r=>g(r)?C(r,i).sourceFile:void 0)}function Tt(t,e){return(e?.isConnected?Array.from(e.children):[t]).filter(g)}function V(t,e){let n=[];for(let i=t;i;i=i.parentElement)i.hasAttribute("data-hf-group")&&n.push(i);return(()=>{if(!e){let s=n[n.length-1];return s?{kind:"unit",element:s}:{kind:"child"}}let i=n.indexOf(e);if(i===-1)return{kind:"out-of-scope"};let r=n[i-1];return r?{kind:"unit",element:r}:{kind:"child"}})()}function nt(t){return It(t)}var B=new Set(["img","video","canvas","svg","audio"]);function Rt(t){let e=t.ownerDocument.defaultView;if(!e)return!1;let n=e.getComputedStyle(t);return!!(n.backgroundImage!=="none"||n.backgroundColor&&n.backgroundColor!=="transparent"&&n.backgroundColor!=="rgba(0, 0, 0, 0)"||n.borderWidth&&parseFloat(n.borderWidth)>0&&n.borderStyle!=="none"||n.boxShadow&&n.boxShadow!=="none")}function _t(t){let e=t.tagName.toLowerCase();if(B.has(e)||Rt(t))return!1;let{children:n}=t;if(n.length===0)return(t.textContent??"").trim().length===0;for(let o=0;o<n.length;o+=1){let i=n[o];if(g(i)&&(B.has(i.tagName.toLowerCase())||nt(i)))return!1}return!0}function Dt(t){let e=t.getBoundingClientRect();return!(e.width<=1||e.height<=1||!nt(t)||_t(t))}var Ft=new Set(["base","br","canvas","link","meta","script","source","style","template","track","wbr"]);function Lt(t){let e=t.tagName.toLowerCase();if(Ft.has(e))return!1;let n=t.ownerDocument.defaultView?.getComputedStyle(t);return!(n?.display==="none"||n?.visibility==="hidden")}function _(t,e){if(!Lt(t)||t.hasAttribute("data-composition-id"))return null;let n=X(t);if(!n)return null;let{sourceFile:o}=C(t,e);return{id:t.id||void 0,hfId:t.getAttribute("data-hf-id")||void 0,selector:n,selectorIndex:et(t.ownerDocument,t,n,o,e),sourceFile:o}}function Nt(t){let e=t;for(;e;){if(e.classList.contains("clip")&&(!(e.hasAttribute("data-composition-src")||e.hasAttribute("data-composition-file"))||e===t))return e;e=e.parentElement}return null}function Mt(t,e){if(e.preferClipAncestor){let n=Nt(t);if(n)return n}return t}function ue(t,e){let n=[];for(let r of t)g(r)&&Dt(r)&&_(r,e.activeCompositionPath)&&n.push(r);if(n.length===0)return[];let o=[],i=n[0];for(let r=1;r<n.length;r++){let s=n[r];i.contains(s)||o.push(i),i=s}return o.push(i),o}function it(t,e,n=null){let o=r=>g(r)&&(!e.sourceFile||C(r,n).sourceFile===e.sourceFile),i=r=>vt(t,r).filter(o);if(e.hfId){let r=i(`[data-hf-id="${x(e.hfId)}"]`)[0];if(r)return r}if(e.id){let r=i(`[id="${x(e.id)}"]`)[0];if(r)return r}return e.selector?i(e.selector)[e.selectorIndex??0]??null:null}function le(t,e,n){let o=typeof e.id=="string"?e.id:"",i=z(e.compositionSrc)??n.compIdToSrc?.get(o),r=i??z(e.sourceFile)??n.activeCompositionPath??"index.html",s=x(o),a=i?x(i):null,l=e.selector??(i?`[data-composition-src="${a}"],[data-composition-file="${a}"],[data-composition-id="${s}"]`:s?`[data-composition-id="${s}"]`:void 0);if(l||e.domId){let p=it(t,{id:e.domId??void 0,selector:l,selectorIndex:e.selectorIndex,sourceFile:r},n.activeCompositionPath);if(p)return p}let f=!!(e.domId||e.selector||i);if(n.isMasterView||f||!n.activeCompositionPath)return null;let u=t.querySelector("[data-composition-id]");return g(u)&&C(u,n.activeCompositionPath).sourceFile===r?u:null}function Ot(t,e){return Array.from(t.children).filter(n=>g(n)&&_(n,e.activeCompositionPath)!==null)}var kt=1;function W(t){if(!t)return null;let e=Number.parseFloat(t);return Number.isFinite(e)&&e>0?e:null}function T(t,e){return Math.abs(t-e)<=kt}function $t(t){let e=t.querySelector("[data-composition-id]")??t.documentElement??null,n=W(e?.getAttribute("data-width")??null),o=W(e?.getAttribute("data-height")??null);return!e||!n||!o?null:{rect:e.getBoundingClientRect(),width:n,height:o}}function Pt(t,e){let n=t.getBoundingClientRect(),o=n.width||h(e.width),i=n.height||h(e.height);return o&&i?{width:o,height:i}:null}function Gt(t,e,n){return T(t.left,n.rect.left)&&T(t.top,n.rect.top)&&T(e.width,n.width)&&T(e.height,n.height)}function Ht(t){return t.position==="absolute"||t.position==="fixed"}function jt(t,e,n){if(t.parentElement!==e.body||t.hasAttribute("data-hf-allow-root-edit")||Ht(n))return!1;let o=$t(e),i=Pt(t,n);return!!(o&&i&&Gt(t.getBoundingClientRect(),i,o))}function N(t){return At(t.tagName.toLowerCase())&&t.children.length===0}function U(t){let e=0,n=t.previousElementSibling;for(;n;)n.tagName===t.tagName&&(e+=1),n=n.previousElementSibling;return e}function zt(t,e,n,o){return o==="self"||n===1?"Content":`Text ${e+1}`}function M(t,e,n,o,i){let r=t.tagName.toLowerCase();return{key:t.getAttribute("data-hf-text-key")??`${o}:${e}:${r}`,label:zt(r,e,n,o),value:t.textContent??"",tagName:r,attributes:Array.from(t.attributes).filter(a=>a.name!=="style").map(a=>({name:a.name,value:a.value})),inlineStyles:K(t),computedStyles:J(t),source:o,...i==null?{}:{sourceChildIndex:i}}}function Vt(t){let e=Array.from(t.children).filter(g).filter(N);if(e.length>0){if(Array.from(t.childNodes).some(o=>o.nodeType===3&&o.textContent?.trim())){let o=[],i=0;for(let r of t.childNodes)if(r.nodeType===3){let s=r.textContent??"";if(!s.trim())continue;o.push({key:`text-node:${i}`,label:`Text ${i+1}`,value:s,tagName:"#text",attributes:[],inlineStyles:{},computedStyles:{},source:"text-node"}),i++}else g(r)&&N(r)&&(o.push(M(r,i,e.length,"child",U(r))),i++);return o}return e.map((o,i)=>M(o,i,e.length,"child",U(o)))}return N(t)?[M(t,0,1,"self")]:[]}function q(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function Bt(t){let e=Object.entries(t.inlineStyles).filter(([,n])=>!!n);return e.length===0?"":e.map(([n,o])=>`${n}: ${o}`).join("; ")}function de(t){return t.filter(e=>e.source==="child"||e.source==="text-node").map(e=>{if(e.source==="text-node")return q(e.value);let n=[...e.attributes.filter(r=>r.name!=="data-hf-text-key"),{name:"data-hf-text-key",value:e.key}].map(r=>` ${r.name}="${r.value.replace(/"/g,"&quot;")}"`).join(""),o=Bt(e),i=o?` style="${o.replace(/"/g,"&quot;")}"`:"";return`<${e.tagName}${n}${i}>${q(e.value)}</${e.tagName}>`}).join("")}function fe(t){return{key:`child:new:${Date.now()}`,label:"Text",value:"New text",tagName:"span",attributes:[],inlineStyles:{"font-family":t?.computedStyles?.["font-family"]??"inherit","font-size":t?.computedStyles?.["font-size"]??"16px","font-weight":t?.computedStyles?.["font-weight"]??"400",color:t?.computedStyles?.color??"inherit"},computedStyles:{},source:"child"}}function pe(t,e){let n=t.find(o=>o.key===e);return!n||n.source!=="child"||n.sourceChildIndex==null?null:{childSelector:`:scope > ${n.tagName}`,childIndex:n.sourceChildIndex}}function ot(t){return{...t,hasEditableText:!1,hasTimingStart:!1,animationCount:0}}function Wt(t,e=t.gsapAnimations?.length??0){return{hasStableTarget:!!(t.selector||t.hfId),tag:t.tagName,inlineStyles:t.inlineStyles,computedStyles:t.computedStyles,isCompositionHost:t.isCompositionHost,isCompositionRoot:!1,isInsideLockedComposition:t.isInsideLockedComposition,isMasterView:!1,existsInSource:!0,hasEditableText:t.textFields.length>0,hasTimingStart:t.dataAttributes.start!=null,animationCount:e}}function me(t){return F(ot({hasStableTarget:!!(t.selector||t.hfId),tag:(t.tagName??"div").toLowerCase(),inlineStyles:t.inlineStyles,computedStyles:t.computedStyles,isCompositionHost:t.isCompositionHost,isCompositionRoot:t.isCompositionRoot??!1,isInsideLockedComposition:t.isInsideLockedComposition??!1,isMasterView:t.isMasterView,existsInSource:t.existsInSource??!0})).capabilities}async function Ut(t,e,n){try{let o=await fetch(`/api/projects/${t}/file-mutations/probe-element/${encodeURIComponent(e)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({target:n})});if(!o.ok)return!0;let i=await o.json();return!(i&&typeof i=="object"&&"exists"in i&&i.exists===!1)}catch{return!0}}async function qt(t,e){if(!t)return null;let n=t.ownerDocument,o=V(t,e.activeGroupElement??null);o.kind==="out-of-scope"&&(o=V(t,null));let i=o.kind==="unit"?o.element:Mt(t,e);for(;i&&i!==n.body&&i!==n.documentElement;){let r=X(i),s=Kt(i);if(!r&&!s){i=i.parentElement;continue}let{sourceFile:a,compositionPath:l}=C(i,e.activeCompositionPath),f=r?et(n,i,r,a,e.activeCompositionPath):void 0,u=i.getAttribute("data-composition-src")??i.getAttribute("data-composition-file")??void 0,p=K(i),b=J(i),m=i.hasAttribute("data-composition-id")&&!u||jt(i,n,b),c=Vt(i),k=!!O(i,["data-timeline-locked"]),$;if(!e.skipSourceProbe&&e.projectId&&(i.id||r||s)){let S={};i.id&&(S.id=i.id),s&&(S.hfId=s),r&&(S.selector=r),f!=null&&(S.selectorIndex=f),$=await Ut(e.projectId,a,S)}let rt=F(ot({hasStableTarget:!!(r||s),tag:i.tagName.toLowerCase(),inlineStyles:p,computedStyles:b,isCompositionHost:!!u,isCompositionRoot:m,isInsideLockedComposition:k,isMasterView:e.isMasterView,existsInSource:$??!0})).capabilities,A=i.getBoundingClientRect();return{element:i,id:i.id||void 0,hfId:s,selector:r,selectorIndex:f,sourceFile:a,compositionPath:l,compositionSrc:u,isCompositionHost:!!u,isInsideLockedComposition:k,label:tt(i),tagName:i.tagName.toLowerCase(),boundingBox:{x:A.left,y:A.top,width:A.width,height:A.height},textContent:i.textContent?.trim()||null,dataAttributes:wt(i),inlineStyles:p,computedStyles:b,textFields:c,capabilities:rt}}return null}async function he(t,e){let n=t.element.ownerDocument,o=it(n,t,e);return o?qt(o,{activeCompositionPath:e,isMasterView:!e||e==="index.html"}):null}function Yt(t){let e=t.selectorIndex??0;return`${t.sourceFile}:${t.id??t.selector??"layer"}:${e}`}function ge(t,e,n=99){if(!t)return 0;let o=0,i=r=>{for(let s of Array.from(r.children))if(g(s)&&(_(s,e.activeCompositionPath)&&(o+=1,o>=n)||(i(s),o>=n)))return};return i(t),o}function be(t,e,n=80){if(!t)return[];let o=[],i=(r,s)=>{if(o.length>=n)return;let a=_(r,e.activeCompositionPath);a&&o.push({key:Yt(a),element:r,label:tt(r),tagName:r.tagName.toLowerCase(),depth:s,childCount:Ot(r,e).length,id:a.id??void 0,hfId:a.hfId??void 0,selector:a.selector??void 0,selectorIndex:a.selectorIndex,sourceFile:a.sourceFile});let l=a?s+1:s;for(let f of Array.from(r.children))if(g(f)&&(i(f,l),o.length>=n))return};for(let r of Tt(t,e.activeGroupElement??null))i(r,0);return o}function ye(t,e,n){return{type:"inline-style",property:t,value:e,...n}}function xe(t,e){return{type:"text-content",property:"text",value:t,...e}}function Jt(t){return t.canEditStyles||t.canMove||t.canResize||t.canApplyManualOffset||t.canApplyManualSize||t.canApplyManualRotation}function Se(t,e){return e?e.element!==t?e.isCompositionHost?"Nested composition boundary":`Selection resolves to ${e.label}`:Jt(e.capabilities)?null:e.capabilities.reasonIfDisabled??"No supported direct edits":"No stable source target"}function Ce(t){return[t.sourceFile||"index.html",t.hfId??"",t.id??"",t.selector??"",t.selectorIndex??""].join("|")}function Ae(t){return D(Wt(t)).text}function Kt(t){return t.getAttribute("data-hf-id")?.trim()||void 0}function Ie(t){return{id:t.id,hfId:t.hfId,selector:t.selector,selectorIndex:t.selectorIndex}}var Zt=Object.defineProperty,Ee=(t,e)=>{for(var n in e)Zt(t,n,{get:e[n],enumerable:!0})};export{D as a,Qt as b,P as c,te as d,ee as e,lt as f,St as g,ne as h,ie as i,Ct as j,g as k,It as l,ce as m,X as n,et as o,nt as p,_ as q,ue as r,it as s,le as t,N as u,Vt as v,de as w,fe as x,pe as y,Wt as z,me as A,qt as B,he as C,Yt as D,ge as E,be as F,ye as G,xe as H,Se as I,Ce as J,Ae as K,Kt as L,Ie as M,Ee as N};
@@ -0,0 +1 @@
1
+ var h=Object.create;var e=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var k=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty;var m=(a=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(a,{get:(b,c)=>(typeof require<"u"?require:b)[c]}):a)(function(a){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+a+'" is not supported')});var n=(a,b)=>()=>(a&&(b=a(a=0)),b);var o=(a,b)=>()=>(b||a((b={exports:{}}).exports,b),b.exports),p=(a,b)=>{for(var c in b)e(a,c,{get:b[c],enumerable:!0})},g=(a,b,c,f)=>{if(b&&typeof b=="object"||typeof b=="function")for(let d of j(b))!l.call(a,d)&&d!==c&&e(a,d,{get:()=>b[d],enumerable:!(f=i(b,d))||f.enumerable});return a};var q=(a,b,c)=>(c=a!=null?h(k(a)):{},g(b||!a||!a.__esModule?e(c,"default",{value:a,enumerable:!0}):c,a)),r=a=>g(e({},"__esModule",{value:!0}),a);export{m as a,n as b,o as c,p as d,q as e,r as f};
@@ -0,0 +1 @@
1
+ import{A as a,B as m,C as r,D as E,E as D,F as c,G as s,H as T,I as b,J as n,K as x,L as u,M as h,u as e,v as t,w as i,x as o,y as d,z as l}from"./chunk-3OT2D42H.js";import"./chunk-DXB73IDG.js";export{o as buildDefaultDomEditTextField,h as buildDomEditPatchTarget,s as buildDomEditStylePatchOperation,T as buildDomEditTextPatchOperation,d as buildTextFieldChildLocator,c as collectDomEditLayerItems,t as collectDomEditTextFields,D as countDomEditChildLayers,l as domEditSelectionToFacts,E as getDomEditLayerKey,b as getDomEditNonEditableReason,n as getDomEditTargetKey,e as isEditableTextLeaf,x as isTextEditableSelection,u as readHfId,r as refreshDomEditSelection,a as resolveDomEditCapabilities,m as resolveDomEditSelection,i as serializeDomEditTextFields};
@@ -0,0 +1,459 @@
1
+ import"./chunk-DXB73IDG.js";function ve(e){return e.hasRuntime||e.runtimeInjected?!1:!!(e.hasNestedCompositions||e.hasTimelines&&e.attempts>=5)}function H(e){return typeof e=="object"&&e!==null}function ye(e){return H(e)&&typeof e.getDuration=="function"}function ke(e){return H(e)&&typeof e.duration=="function"&&typeof e.time=="function"&&typeof e.seek=="function"&&typeof e.play=="function"&&typeof e.pause=="function"}var we="https://cdn.jsdelivr.net/npm/@hyperframes/core@0.7.64/dist/hyperframe.runtime.iife.js";function $(e){if(e===null)return null;let t=Number.parseInt(e,10);return Number.isFinite(t)&&t>0?t:null}function Ee(e){let t=e?.querySelector("[data-composition-id][data-width][data-height]")??e?.querySelector("[data-width][data-height]");if(!t)return null;let i=$(t.getAttribute("data-width")),r=$(t.getAttribute("data-height"));return i!==null&&r!==null?{width:i,height:r}:null}var Ae=class{constructor(e,t){this._iframe=e,this._callbacks=t}_iframe;_callbacks;_interval=null;_runtimeInjected=!1;get runtimeInjected(){return this._runtimeInjected}start(){this.stop(),this._runtimeInjected=!1;let e=0;this._interval=setInterval(()=>{e++;try{let t=this._iframe.contentWindow;if(!t)return;let i=!!(t.__hf||t.__player),r=!!(t.__timelines&&Object.keys(t.__timelines).length>0),n=!!this._iframe.contentDocument?.querySelector("[data-composition-src]");if(ve({hasRuntime:i,hasTimelines:r,hasNestedCompositions:n,runtimeInjected:this._runtimeInjected,attempts:e})){this._injectRuntime();return}if(this._runtimeInjected&&!i)return;let a=this._resolvePlaybackDurationAdapter(t);if(a&&a.getDuration()>0){this.stop();let o=Ee(this._iframe.contentDocument);this._callbacks.onReady({duration:a.getDuration(),adapter:a,compositionSize:o});return}}catch{}e>=40&&(this.stop(),this._callbacks.onError("Composition timeline not found after 8s"))},200)}stop(){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||H(Reflect.get(e,"__player"))}_injectRuntime(){this._runtimeInjected=!0;try{let e=this._iframe.contentDocument;if(!e)return;let t=e.createElement("script");t.src=we,(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(!H(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"),n=r&&r in t?r:i[i.length-1],a=t[n];return ke(a)?a:null}_resolvePlaybackDurationAdapter(e){let t=Reflect.get(e,"__player");if(ye(t))return{kind:"runtime",getDuration:()=>t.getDuration()};let i=this._resolveDirectTimelineAdapterFromWindow(e);return i?{kind:"direct-timeline",timeline:i,getDuration:()=>i.duration()}:null}},xe=`
2
+ :host {
3
+ display: block;
4
+ position: relative;
5
+ overflow: hidden;
6
+ background: #000;
7
+ contain: layout style;
8
+ }
9
+
10
+ .hfp-container {
11
+ position: absolute;
12
+ inset: 0;
13
+ overflow: hidden;
14
+ pointer-events: none;
15
+ }
16
+
17
+
18
+ .hfp-iframe {
19
+ position: absolute;
20
+ top: 50%;
21
+ left: 50%;
22
+ border: none;
23
+ pointer-events: none;
24
+ }
25
+
26
+ /* Opt-in: an interactive composition (e.g. a live slideshow/app with playable
27
+ media or controls) \u2014 let pointer events reach the iframe content. */
28
+ :host([interactive]) .hfp-container,
29
+ :host([interactive]) .hfp-iframe {
30
+ pointer-events: auto;
31
+ }
32
+
33
+ .hfp-poster {
34
+ position: absolute;
35
+ inset: 0;
36
+ object-fit: contain;
37
+ z-index: 1;
38
+ pointer-events: none;
39
+ }
40
+
41
+ .hfp-shader-loader {
42
+ position: absolute;
43
+ inset: 0;
44
+ z-index: 20;
45
+ display: grid;
46
+ place-items: center;
47
+ visibility: hidden;
48
+ opacity: 0;
49
+ pointer-events: none;
50
+ background: #030504;
51
+ color: #f4f7fb;
52
+ cursor: default;
53
+ user-select: none;
54
+ -webkit-user-select: none;
55
+ transition: opacity 420ms ease-out, visibility 420ms ease-out;
56
+ }
57
+
58
+ .hfp-shader-loader.hfp-visible,
59
+ .hfp-shader-loader.hfp-hiding {
60
+ visibility: visible;
61
+ }
62
+
63
+ .hfp-shader-loader.hfp-visible {
64
+ opacity: 1;
65
+ pointer-events: auto;
66
+ }
67
+
68
+ .hfp-shader-loader.hfp-hiding {
69
+ opacity: 0;
70
+ pointer-events: none;
71
+ }
72
+
73
+ .hfp-shader-loader-panel {
74
+ display: grid;
75
+ grid-template-rows: 86px 40px 26px 12px 44px;
76
+ justify-items: center;
77
+ align-items: center;
78
+ gap: 8px;
79
+ width: min(620px, 82%);
80
+ text-align: center;
81
+ font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
82
+ }
83
+
84
+ .hfp-shader-loader-mark {
85
+ width: 86px;
86
+ height: 86px;
87
+ display: grid;
88
+ place-items: center;
89
+ overflow: visible;
90
+ }
91
+
92
+ .hfp-shader-loader-mark svg {
93
+ display: block;
94
+ overflow: visible;
95
+ filter: drop-shadow(0 0 5px rgba(79, 219, 94, 0.16));
96
+ pointer-events: none;
97
+ }
98
+
99
+ .hfp-shader-loader-title {
100
+ width: 100%;
101
+ height: 40px;
102
+ overflow: hidden;
103
+ white-space: nowrap;
104
+ text-overflow: ellipsis;
105
+ font-size: 26px;
106
+ line-height: 40px;
107
+ font-weight: 700;
108
+ letter-spacing: 0;
109
+ }
110
+
111
+ .hfp-shader-loader-title-text {
112
+ color: transparent;
113
+ background: linear-gradient(
114
+ 90deg,
115
+ rgba(244, 247, 251, 0.84) 0%,
116
+ #ffffff 42%,
117
+ #80efe4 52%,
118
+ #ffffff 62%,
119
+ rgba(244, 247, 251, 0.84) 100%
120
+ );
121
+ background-size: 220% 100%;
122
+ -webkit-background-clip: text;
123
+ background-clip: text;
124
+ animation: hfp-shader-loader-sheen 1.9s linear infinite;
125
+ }
126
+
127
+ .hfp-shader-loader-detail {
128
+ width: 100%;
129
+ height: 26px;
130
+ overflow: hidden;
131
+ white-space: nowrap;
132
+ text-overflow: ellipsis;
133
+ color: rgba(244, 247, 251, 0.62);
134
+ font-size: 15px;
135
+ line-height: 26px;
136
+ font-weight: 500;
137
+ }
138
+
139
+ .hfp-shader-loader-track {
140
+ width: min(360px, 100%);
141
+ height: 8px;
142
+ overflow: hidden;
143
+ border-radius: 999px;
144
+ background: rgba(255, 255, 255, 0.1);
145
+ }
146
+
147
+ .hfp-shader-loader-fill {
148
+ width: 100%;
149
+ height: 100%;
150
+ border-radius: inherit;
151
+ background: linear-gradient(90deg, #06e3fa, #4fdb5e);
152
+ transform: scaleX(0);
153
+ transform-origin: left center;
154
+ transition: transform 160ms ease;
155
+ }
156
+
157
+ .hfp-shader-loader-progress {
158
+ width: min(420px, 100%);
159
+ height: 44px;
160
+ display: grid;
161
+ grid-template-rows: repeat(2, 22px);
162
+ color: rgba(244, 247, 251, 0.48);
163
+ font: 600 13px/22px "IBM Plex Mono", "SF Mono", "Fira Code", "Courier New", monospace;
164
+ font-variant-numeric: tabular-nums;
165
+ }
166
+
167
+ .hfp-shader-loader-row {
168
+ display: grid;
169
+ grid-template-columns: minmax(0, 1fr) 74px;
170
+ align-items: center;
171
+ column-gap: 20px;
172
+ width: 100%;
173
+ white-space: nowrap;
174
+ }
175
+
176
+ .hfp-shader-loader-label {
177
+ min-width: 0;
178
+ overflow: hidden;
179
+ text-align: left;
180
+ text-overflow: ellipsis;
181
+ }
182
+
183
+ .hfp-shader-loader-value {
184
+ text-align: right;
185
+ }
186
+
187
+ @keyframes hfp-shader-loader-sheen {
188
+ from {
189
+ background-position: 140% 0;
190
+ }
191
+ to {
192
+ background-position: -140% 0;
193
+ }
194
+ }
195
+
196
+ /* \u2500\u2500 Theming via CSS custom properties \u2500\u2500
197
+ *
198
+ * Override from outside the shadow DOM:
199
+ * hyperframes-player {
200
+ * --hfp-controls-bg: linear-gradient(transparent, rgba(0,0,0,0.9));
201
+ * --hfp-accent: #ff6b6b;
202
+ * --hfp-font: "Inter", sans-serif;
203
+ * }
204
+ */
205
+
206
+ .hfp-controls {
207
+ position: absolute;
208
+ bottom: 0;
209
+ left: 0;
210
+ right: 0;
211
+ display: flex;
212
+ align-items: center;
213
+ gap: var(--hfp-controls-gap, 12px);
214
+ padding: var(--hfp-controls-padding, 8px 16px);
215
+ background: var(--hfp-controls-bg, linear-gradient(transparent, rgba(0, 0, 0, 0.7)));
216
+ color: var(--hfp-color, #fff);
217
+ font-family: var(--hfp-font, system-ui, -apple-system, sans-serif);
218
+ font-size: var(--hfp-font-size, 13px);
219
+ z-index: 10;
220
+ pointer-events: auto;
221
+ opacity: 1;
222
+ transition: opacity 0.3s ease;
223
+ user-select: none;
224
+ }
225
+
226
+ .hfp-controls.hfp-hidden {
227
+ opacity: 0;
228
+ pointer-events: none;
229
+ }
230
+
231
+ .hfp-play-btn {
232
+ position: relative;
233
+ background: none;
234
+ border: none;
235
+ color: var(--hfp-color, #fff);
236
+ cursor: pointer;
237
+ padding: 8px;
238
+ display: flex;
239
+ align-items: center;
240
+ justify-content: center;
241
+ width: 40px;
242
+ height: 40px;
243
+ flex-shrink: 0;
244
+ z-index: 10;
245
+ }
246
+
247
+ .hfp-play-btn:hover {
248
+ opacity: 0.8;
249
+ }
250
+
251
+ /* Stacked play/pause glyphs that crossfade-morph on toggle (rotate + scale). */
252
+ .hfp-play-btn .hfp-ico {
253
+ position: absolute;
254
+ display: flex;
255
+ align-items: center;
256
+ justify-content: center;
257
+ transition:
258
+ opacity 200ms ease,
259
+ transform 220ms cubic-bezier(0.4, 0, 0.2, 1);
260
+ }
261
+ .hfp-play-btn .hfp-ico-play {
262
+ opacity: 1;
263
+ transform: rotate(0) scale(1);
264
+ }
265
+ .hfp-play-btn .hfp-ico-pause {
266
+ opacity: 0;
267
+ transform: rotate(-90deg) scale(0.4);
268
+ }
269
+ .hfp-play-btn.hfp-playing .hfp-ico-play {
270
+ opacity: 0;
271
+ transform: rotate(90deg) scale(0.4);
272
+ }
273
+ .hfp-play-btn.hfp-playing .hfp-ico-pause {
274
+ opacity: 1;
275
+ transform: rotate(0) scale(1);
276
+ }
277
+ @media (prefers-reduced-motion: reduce) {
278
+ .hfp-play-btn .hfp-ico {
279
+ transition-duration: 0ms;
280
+ transform: none;
281
+ }
282
+ }
283
+
284
+ .hfp-play-btn svg,
285
+ .hfp-play-btn svg * {
286
+ pointer-events: none;
287
+ }
288
+
289
+ .hfp-scrubber {
290
+ flex: 1;
291
+ min-width: 0;
292
+ height: var(--hfp-scrubber-height, 4px);
293
+ background: var(--hfp-scrubber-bg, rgba(255, 255, 255, 0.3));
294
+ border-radius: var(--hfp-scrubber-radius, 2px);
295
+ cursor: pointer;
296
+ position: relative;
297
+ overflow: hidden;
298
+ }
299
+
300
+ .hfp-scrubber:hover {
301
+ height: var(--hfp-scrubber-height-hover, 6px);
302
+ }
303
+
304
+ .hfp-progress {
305
+ position: absolute;
306
+ top: 0;
307
+ left: 0;
308
+ height: 100%;
309
+ background: var(--hfp-accent, #fff);
310
+ pointer-events: none;
311
+ }
312
+
313
+ .hfp-time {
314
+ flex-shrink: 0;
315
+ font-variant-numeric: tabular-nums;
316
+ opacity: 0.9;
317
+ }
318
+
319
+ .hfp-speed-wrap {
320
+ position: relative;
321
+ flex-shrink: 0;
322
+ }
323
+
324
+ .hfp-speed-btn {
325
+ background: var(--hfp-speed-btn-bg, rgba(255, 255, 255, 0.15));
326
+ border: none;
327
+ border-radius: var(--hfp-speed-btn-radius, 4px);
328
+ color: var(--hfp-color, #fff);
329
+ cursor: pointer;
330
+ font-family: var(--hfp-font, system-ui, -apple-system, sans-serif);
331
+ font-size: 12px;
332
+ font-variant-numeric: tabular-nums;
333
+ font-weight: 600;
334
+ padding: 4px 8px;
335
+ min-width: 40px;
336
+ text-align: center;
337
+ transition: background 0.15s ease;
338
+ }
339
+
340
+ .hfp-speed-btn:hover {
341
+ background: var(--hfp-speed-btn-bg-hover, rgba(255, 255, 255, 0.3));
342
+ }
343
+
344
+ .hfp-speed-menu {
345
+ position: absolute;
346
+ bottom: calc(100% + 8px);
347
+ right: 0;
348
+ background: var(--hfp-menu-bg, rgba(20, 20, 20, 0.95));
349
+ backdrop-filter: blur(12px);
350
+ -webkit-backdrop-filter: blur(12px);
351
+ border: 1px solid var(--hfp-menu-border, rgba(255, 255, 255, 0.1));
352
+ border-radius: var(--hfp-menu-radius, 8px);
353
+ padding: 4px;
354
+ display: flex;
355
+ flex-direction: column;
356
+ gap: 2px;
357
+ min-width: 80px;
358
+ opacity: 0;
359
+ visibility: hidden;
360
+ transform: translateY(4px);
361
+ transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
362
+ box-shadow: var(--hfp-menu-shadow, 0 8px 24px rgba(0, 0, 0, 0.4));
363
+ }
364
+
365
+ .hfp-speed-menu.hfp-open {
366
+ opacity: 1;
367
+ visibility: visible;
368
+ transform: translateY(0);
369
+ }
370
+
371
+ .hfp-speed-option {
372
+ background: none;
373
+ border: none;
374
+ border-radius: 4px;
375
+ color: var(--hfp-menu-color, rgba(255, 255, 255, 0.7));
376
+ cursor: pointer;
377
+ font-family: var(--hfp-font, system-ui, -apple-system, sans-serif);
378
+ font-size: 13px;
379
+ font-variant-numeric: tabular-nums;
380
+ padding: 6px 12px;
381
+ text-align: left;
382
+ transition: background 0.1s ease, color 0.1s ease;
383
+ white-space: nowrap;
384
+ }
385
+
386
+ .hfp-speed-option:hover {
387
+ background: var(--hfp-menu-hover-bg, rgba(255, 255, 255, 0.1));
388
+ color: var(--hfp-color, #fff);
389
+ }
390
+
391
+ .hfp-speed-option.hfp-active {
392
+ color: var(--hfp-accent, #fff);
393
+ font-weight: 600;
394
+ }
395
+
396
+ .hfp-volume-wrap {
397
+ position: relative;
398
+ flex-shrink: 0;
399
+ display: flex;
400
+ align-items: center;
401
+ gap: 0;
402
+ }
403
+
404
+ .hfp-mute-btn {
405
+ background: none;
406
+ border: none;
407
+ color: var(--hfp-color, #fff);
408
+ cursor: pointer;
409
+ padding: 4px;
410
+ display: flex;
411
+ align-items: center;
412
+ justify-content: center;
413
+ width: 32px;
414
+ height: 32px;
415
+ flex-shrink: 0;
416
+ }
417
+
418
+ .hfp-mute-btn:hover {
419
+ opacity: 0.8;
420
+ }
421
+
422
+ .hfp-mute-btn svg,
423
+ .hfp-mute-btn svg * {
424
+ pointer-events: none;
425
+ }
426
+
427
+ .hfp-volume-slider-wrap {
428
+ width: 0;
429
+ overflow: hidden;
430
+ transition: width 0.2s ease;
431
+ display: flex;
432
+ align-items: center;
433
+ }
434
+
435
+ .hfp-volume-wrap:hover .hfp-volume-slider-wrap {
436
+ width: 64px;
437
+ }
438
+
439
+ .hfp-volume-slider {
440
+ width: 56px;
441
+ height: var(--hfp-scrubber-height, 4px);
442
+ background: var(--hfp-scrubber-bg, rgba(255, 255, 255, 0.3));
443
+ border-radius: var(--hfp-scrubber-radius, 2px);
444
+ cursor: pointer;
445
+ position: relative;
446
+ overflow: hidden;
447
+ margin-left: 4px;
448
+ margin-right: 4px;
449
+ }
450
+
451
+ .hfp-volume-fill {
452
+ position: absolute;
453
+ top: 0;
454
+ left: 0;
455
+ height: 100%;
456
+ background: var(--hfp-accent, #fff);
457
+ pointer-events: none;
458
+ }
459
+ `,Ce='<svg width="24" height="24" viewBox="46 21 54 56" fill="currentColor"><path d="M87.5129 57.5141L56.9696 73.5433C52.8371 75.7098 48.7046 73.2553 49.6688 69.2104L58.9483 30.1391C59.9125 26.0942 65.2097 23.6397 68.3154 25.8062L91.2447 41.8354C96.4668 45.4796 94.4631 53.8699 87.5129 57.5141Z"/></svg>',Te='<svg width="24" height="24" viewBox="0 0 18 18" fill="currentColor"><rect x="3" y="2" width="4" height="14"/><rect x="11" y="2" width="4" height="14"/></svg>',le='<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M3 9v6h4l5 5V4L7 9H3z"/><path d="M16.5 12c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02z"/><path d="M14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z"/></svg>',de='<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M3 9v6h4l5 5V4L7 9H3z"/><path d="M16.5 12c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02z"/></svg>',Se='<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M3 9v6h4l5 5V4L7 9H3z"/><path d="M16.5 12c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02z" opacity="0.3"/><line x1="18" y1="7" x2="14" y2="17" stroke="currentColor" stroke-width="2"/></svg>',Me=[.25,.5,1,1.5,2,4];function j(e){return Number.isInteger(e)?`${e}x`:`${e}x`}function ue(e){if(!Number.isFinite(e)||e<0)return"0:00";let t=Math.floor(e),i=Math.floor(t/60),r=t%60;return`${i}:${r.toString().padStart(2,"0")}`}function Le(e,t,i={}){let r=i.speedPresets??Me,n=document.createElement("div");n.className="hfp-controls",n.addEventListener("click",s=>{s.stopPropagation()});let a=document.createElement("button");a.className="hfp-play-btn",a.type="button",a.innerHTML=`<span class="hfp-ico hfp-ico-play">${Ce}</span><span class="hfp-ico hfp-ico-pause">${Te}</span>`,a.setAttribute("aria-label","Play");let o=document.createElement("div");o.className="hfp-scrubber";let d=document.createElement("div");d.className="hfp-progress",d.style.width="0%",o.appendChild(d);let u=document.createElement("span");u.className="hfp-time",u.textContent="0:00 / 0:00";let h=document.createElement("div");h.className="hfp-speed-wrap";let m=document.createElement("button");m.className="hfp-speed-btn",m.type="button",m.textContent="1x",m.setAttribute("aria-label","Playback speed");let _=document.createElement("div");_.className="hfp-speed-menu",_.setAttribute("role","menu");for(let s of r){let l=document.createElement("button");l.className="hfp-speed-option",l.type="button",l.setAttribute("role","menuitem"),l.dataset.speed=String(s),l.textContent=j(s),s===1&&l.classList.add("hfp-active"),_.appendChild(l)}h.appendChild(_),h.appendChild(m);let v=document.createElement("div");v.className="hfp-volume-wrap";let f=document.createElement("button");f.className="hfp-mute-btn",f.type="button",f.innerHTML=le,f.setAttribute("aria-label","Mute");let k=document.createElement("div");k.className="hfp-volume-slider-wrap";let p=document.createElement("div");p.className="hfp-volume-slider",p.setAttribute("role","slider"),p.setAttribute("aria-label","Volume"),p.setAttribute("aria-valuemin","0"),p.setAttribute("aria-valuemax","100"),p.setAttribute("aria-valuenow","100"),p.tabIndex=0;let y=document.createElement("div");y.className="hfp-volume-fill",y.style.width="100%",p.appendChild(y),k.appendChild(p),v.appendChild(k),v.appendChild(f),i.audioLocked&&(v.style.display="none"),n.appendChild(a),n.appendChild(o),n.appendChild(u),n.appendChild(v),n.appendChild(h),e.appendChild(n);let I=!1,x=!1,A=1,M=null,N=r.indexOf(1);N===-1&&(N=0);let F=(s,l)=>s?Se:l===0||l<.5?de:le;a.addEventListener("click",s=>{s.stopPropagation(),I?t.onPause():t.onPlay()}),f.addEventListener("click",s=>{s.stopPropagation(),t.onMuteToggle()});let C=!1,R=s=>{let l=p.getBoundingClientRect(),g=Math.max(0,Math.min(1,(s-l.left)/l.width));A=g,y.style.width=`${g*100}%`,p.setAttribute("aria-valuenow",String(Math.round(g*100))),x&&g>0&&t.onMuteToggle(),f.innerHTML=F(x,g),t.onVolumeChange(g)};p.addEventListener("mousedown",s=>{s.stopPropagation(),C=!0,R(s.clientX)});let G=s=>{C&&R(s.clientX)},Y=()=>{C=!1};document.addEventListener("mousemove",G),document.addEventListener("mouseup",Y),p.addEventListener("touchstart",s=>{C=!0;let l=s.touches[0];l&&R(l.clientX)},{passive:!0});let Z=s=>{if(C){let l=s.touches[0];l&&R(l.clientX)}},J=()=>{C=!1};document.addEventListener("touchmove",Z,{passive:!0}),document.addEventListener("touchend",J);let K=.05;p.addEventListener("keydown",s=>{let l=A;if(s.key==="ArrowRight"||s.key==="ArrowUp")l=Math.min(1,A+K);else if(s.key==="ArrowLeft"||s.key==="ArrowDown")l=Math.max(0,A-K);else return;s.preventDefault(),s.stopPropagation(),A=l,y.style.width=`${l*100}%`,p.setAttribute("aria-valuenow",String(Math.round(l*100))),x&&l>0&&t.onMuteToggle(),f.innerHTML=F(x,l),t.onVolumeChange(l)});let Q=s=>{for(let l of _.querySelectorAll(".hfp-speed-option"))l.classList.toggle("hfp-active",l.dataset.speed===String(s))};m.addEventListener("click",s=>{s.stopPropagation();let l=_.classList.toggle("hfp-open");m.setAttribute("aria-expanded",String(l))}),_.addEventListener("click",s=>{s.stopPropagation();let l=s.target.closest(".hfp-speed-option");if(!l)return;let g=parseFloat(l.dataset.speed);N=r.indexOf(g),m.textContent=j(g),Q(g),_.classList.remove("hfp-open"),m.setAttribute("aria-expanded","false"),t.onSpeedChange(g)});let ee=()=>{_.classList.remove("hfp-open"),m.setAttribute("aria-expanded","false")};document.addEventListener("click",ee);let O=s=>{let l=o.getBoundingClientRect(),g=Math.max(0,Math.min(1,(s-l.left)/l.width));t.onSeek(g)},E=!1;o.addEventListener("mousedown",s=>{s.stopPropagation(),E=!0,t.onScrubStart?.(),O(s.clientX)});let te=s=>{E&&O(s.clientX)},ie=()=>{E&&(E=!1,t.onScrubEnd?.())};document.addEventListener("mousemove",te),document.addEventListener("mouseup",ie),o.addEventListener("touchstart",s=>{E=!0,t.onScrubStart?.();let l=s.touches[0];l&&O(l.clientX)},{passive:!0});let re=s=>{if(E){let l=s.touches[0];l&&O(l.clientX)}},ne=()=>{E&&(E=!1,t.onScrubEnd?.())};document.addEventListener("touchmove",re,{passive:!0}),document.addEventListener("touchend",ne);let ae=()=>{M&&clearTimeout(M),M=setTimeout(()=>{I&&n.classList.add("hfp-hidden")},3e3)},D=e instanceof ShadowRoot?e.host:e,se=()=>{n.classList.remove("hfp-hidden"),ae()},oe=()=>{I&&n.classList.add("hfp-hidden")};return D.addEventListener("mousemove",se),D.addEventListener("mouseleave",oe),{updateTime(s,l){let g=l>0?Math.min(s,l):s,be=l>0?g/l*100:0;d.style.width=`${be}%`,u.textContent=`${ue(g)} / ${ue(l)}`},updatePlaying(s){I=s,a.classList.toggle("hfp-playing",s),a.setAttribute("aria-label",s?"Pause":"Play"),s?ae():n.classList.remove("hfp-hidden")},updateSpeed(s){let l=r.indexOf(s);l!==-1&&(N=l),m.textContent=j(s),Q(s)},updateMuted(s){x=s,f.innerHTML=F(s,A),f.setAttribute("aria-label",s?"Unmute":"Mute")},updateVolume(s){A=s,y.style.width=`${s*100}%`,p.setAttribute("aria-valuenow",String(Math.round(s*100))),f.innerHTML=F(x,s)},setVolumeControlsHidden(s){v.style.display=s?"none":""},show(){n.style.display=""},hide(){n.style.display="none"},destroy(){document.removeEventListener("mousemove",te),document.removeEventListener("mouseup",ie),document.removeEventListener("touchmove",re),document.removeEventListener("touchend",ne),document.removeEventListener("mousemove",G),document.removeEventListener("mouseup",Y),document.removeEventListener("touchmove",Z),document.removeEventListener("touchend",J),document.removeEventListener("click",ee),D.removeEventListener("mousemove",se),D.removeEventListener("mouseleave",oe),M&&clearTimeout(M),n.remove()}}}function Pe(e,t,i,r,n,a=!1){let o=r?r.split(",").map(Number).filter(h=>!isNaN(h)&&h>0):void 0,d={...o?{speedPresets:o}:{},audioLocked:a},u=Le(e,n,d);return u.updateMuted(t),u.updateVolume(i),u}function he(e,t,i){return t?(i||(i=document.createElement("img"),i.className="hfp-poster",e.appendChild(i)),i.src=t,i):(i?.remove(),null)}function Ie(e){return e.composedPath().some(t=>t instanceof HTMLElement&&t.classList.contains("hfp-controls"))}var z=null;function Ne(e,t){if(typeof CSSStyleSheet<"u")try{z||(z=new CSSStyleSheet,z.replaceSync(t)),e.adoptedStyleSheets=[z];return}catch{}let i=document.createElement("style");i.textContent=t,e.appendChild(i)}function Fe(){let e=document.createElement("div");e.className="hfp-container";let t=document.createElement("iframe");return t.className="hfp-iframe",t.sandbox.add("allow-scripts","allow-same-origin"),t.allow="autoplay; fullscreen",t.referrerPolicy="no-referrer",t.title="HyperFrames Composition",e.appendChild(t),{container:e,iframe:t}}function Re(e,t,i,r){let n=e.offsetWidth,a=e.offsetHeight;if(n===0||a===0)return!1;let o=Math.min(n/i,a/r);return t.style.width=`${i}px`,t.style.height=`${r}px`,t.style.transform=`translate(-50%, -50%) scale(${o})`,!0}var Oe=class{constructor(e){this._callbacks=e}_callbacks;_raf=null;_lastUpdateMs=0;start(e,t,i,r){this.stop();let n=()=>{if(r()){this._raf=null;return}let a;try{a=e.time()}catch{this._raf=null;return}let o=i();o>0&&(a=Math.min(a,o));let d=o>0&&a>=o,u=performance.now();if((u-this._lastUpdateMs>100||d)&&(this._lastUpdateMs=u,this._callbacks.onTimeUpdate(a,o)),d){if(this._callbacks.getLoop()){this._callbacks.restart();return}try{e.pause()}catch{}this._callbacks.onPaused(),this._raf=null;return}this._raf=requestAnimationFrame(n)};this._raf=requestAnimationFrame(n)}stop(){this._raf!==null&&(cancelAnimationFrame(this._raf),this._raf=null)}get isRunning(){return this._raf!==null}};function De(e){let t=Array.from(e.querySelectorAll("[data-composition-id]"));if(t.length===0)return e.body?[e.body]:[];let i=[];for(let r of t)Ve(r)||i.push(r);return ze(e),i}function ze(e){let t=e.body;if(!t||typeof console>"u"||typeof console.warn!="function")return;let i=t.querySelectorAll("audio[data-start], video[data-start]");if(i.length===0)return;let r=[];for(let n of i)n.closest("[data-composition-id]")||r.push(n);r.length!==0&&console.warn(`[hyperframes-player] selectMediaObserverTargets: composition hosts are present, but ${r.length} body-level timed media element(s) sit outside every [data-composition-id] subtree and will not be observed. Move them inside a composition host or the parent-frame proxy will never adopt them.`,r)}function Ve(e){let t=e.parentElement;for(;t;){if(t.hasAttribute("data-composition-id"))return!0;t=t.parentElement}return!1}function q(e){let t=e.ownerDocument?.defaultView;return t&&e instanceof t.Element?!0:e instanceof Element}function w(e){if(!q(e)||e.tagName!=="AUDIO"&&e.tagName!=="VIDEO")return!1;let t=e.ownerDocument?.defaultView;return t&&e instanceof t.HTMLMediaElement?!0:e instanceof HTMLMediaElement}var c=Object.freeze({start:"data-start",duration:"data-duration",trackIndex:"data-track-index",derivedEnd:"data-end",legacyTrack:"data-layer"}),kt=Object.freeze([c.start,c.duration,c.trackIndex]),wt=Object.freeze([c.derivedEnd]),Et=Object.freeze([c.derivedEnd,c.legacyTrack]);function S(e){if(e==null||e.trim()==="")return null;let t=Number(e);return Number.isFinite(t)?t:null}var ge=/^[A-Za-z0-9_.:-]+$/;function _e(e,t){let i=e.charCodeAt(t);return i>=48&&i<=57}function ce(e,t){let i=t;for(;i>=0&&_e(e,i);)i--;return i}function He(e,t){let i=t;for(;i>=0&&(e[i]??"").trim()==="";)i--;return i}function $e(e){let t=e.length-1;if(!_e(e,t))return null;let i=ce(e,t);return e[i]==="."&&(i=ce(e,i-1)),i+1}function je(e){let t=$e(e);if(t==null)return null;let i=He(e,t-1),r=e[i];if(r!=="+"&&r!=="-")return null;let n=e.slice(0,i).trim();if(!ge.test(n))return null;let a=Number(e.slice(t));return Number.isFinite(a)?{refId:n,operator:r,magnitude:a}:null}function Ue(e){let t=(e??"").trim();if(!t)return null;let i=S(t);if(i!=null)return{kind:"absolute",value:i};if(ge.test(t))return{kind:"reference",refId:t,offset:0};let r=je(t);return r?{kind:"reference",refId:r.refId,offset:r.operator==="-"?-r.magnitude:r.magnitude}:null}function b(e,t,i,r){e.push({code:t,attribute:i,value:r})}function We(e,t,i,r){if(t==null||t.trim()==="")return i.defaultStart===void 0?0:i.defaultStart;if(!e)return b(r,"invalid-start",c.start,t),null;if(e.kind==="absolute")return Math.max(0,e.value);let n=i.resolveReferenceEnd?.(e.refId);return n==null||!Number.isFinite(n)?(b(r,"unresolved-start-reference",c.start,t),null):Math.max(0,n+e.offset)}function Be(e,t,i){b(i,"deprecated-end",c.derivedEnd,e);let r=S(e);r==null?b(i,"invalid-end",c.derivedEnd,e):t!=null&&r!==t&&b(i,"conflicting-end",c.derivedEnd,e)}function qe(e,t,i){let r=S(e);return r==null||r<0?(b(i,"invalid-duration",c.duration,e),{duration:null,end:null,durationSource:"invalid"}):{duration:r,end:t==null?null:t+r,durationSource:"duration"}}function Xe(e,t,i){b(i,"deprecated-end",c.derivedEnd,e);let r=S(e);return r==null?(b(i,"invalid-end",c.derivedEnd,e),{duration:null,end:null,durationSource:"invalid"}):t==null?{duration:null,end:r,durationSource:"legacy-end"}:r<t?(b(i,"end-before-start",c.derivedEnd,e),{duration:null,end:null,durationSource:"invalid"}):{duration:r-t,end:r,durationSource:"legacy-end"}}function Ge(e,t,i){let r=e.getAttribute(c.duration),n=e.getAttribute(c.derivedEnd);if(r==null)return n==null?{duration:null,end:null,durationSource:"missing"}:Xe(n,t,i);let a=qe(r,t,i);return n!=null&&Be(n,a.end,i),a}function pe(e,t,i,r){let n=S(e);return n==null||!Number.isInteger(n)?(b(r,"invalid-track-index",t,e),{trackIndex:0,trackSource:"invalid"}):{trackIndex:n,trackSource:i}}function Ye(e,t){let i=e.getAttribute(c.trackIndex),r=e.getAttribute(c.legacyTrack);if(i==null&&r==null)return{trackIndex:0,trackSource:"default"};if(i==null&&r!=null)return b(t,"deprecated-layer",c.legacyTrack,r),pe(r,c.legacyTrack,"legacy-layer",t);let n=pe(i??"",c.trackIndex,"track-index",t);if(r==null)return n;b(t,"deprecated-layer",c.legacyTrack,r);let a=S(r);return a!=null&&a!==n.trackIndex&&b(t,"conflicting-layer",c.legacyTrack,r),n}function me(e,t={}){let i=[],r=e.getAttribute(c.start),n=Ue(r),a=We(n,r,t,i),o=Ge(e,a,i),d=Ye(e,i);return{startExpression:n,start:a,...o,...d,diagnostics:i}}var Ze=.05,Je=2,Ke=class{_entries=[];_mediaObserver;_playbackErrorPosted=!1;_audioOwner="runtime";_urlAudioEntry=null;_urlAudioSrc=null;_dispatchEvent;_getMuted;_getVolume;_getPlaybackRate;_getCurrentTime;_isPaused;constructor(e){this._dispatchEvent=e.dispatchEvent,this._getMuted=e.getMuted,this._getVolume=e.getVolume,this._getPlaybackRate=e.getPlaybackRate,this._getCurrentTime=e.getCurrentTime,this._isPaused=e.isPaused}get audioOwner(){return this._audioOwner}get entries(){return this._entries}resetForIframeLoad(){this._playbackErrorPosted=!1;let e=this._audioOwner==="parent";this._audioOwner="runtime",this.pauseAll(),this.teardownObserver(),e&&this._dispatchEvent(new CustomEvent("audioownershipchange",{detail:{owner:"runtime",reason:"iframe-reload"}}))}destroy(){this.teardownObserver();for(let e of this._entries)e.el.pause(),e.el.src="";this._entries=[],this._urlAudioEntry=null,this._urlAudioSrc=null,this._audioOwner="runtime",this._playbackErrorPosted=!1}updateMuted(e){for(let t of this._entries)t.el.muted=e}updateVolume(e){for(let t of this._entries)t.el.volume=e}updatePlaybackRate(e){for(let t of this._entries)t.el.playbackRate=e}_playEntry(e){e.el.src&&e.el.play().catch(t=>this._reportPlaybackError(t))}_playEntryIfActive(e){this._refreshEntryBounds(e);let t=this._getCurrentTime()-e.start;t<0||t>=e.duration||this._playEntry(e)}_refreshEntryBounds(e){if(!e.source?.isConnected)return;let t=me(e.source);e.start=t.start??0,e.duration=t.duration!=null&&t.duration>0?t.duration:Number.POSITIVE_INFINITY}_gateEntryPlayback(e,t){return t<0||t>=e.duration?(e.el.paused||e.el.pause(),e.driftSamples=0,!1):(this._audioOwner==="parent"&&!this._isPaused()&&e.el.paused&&this._playEntry(e),!0)}playAll(){for(let e of this._entries)this._playEntryIfActive(e)}pauseAll(){for(let e of this._entries)e.el.pause()}stopAdoptedMedia(){for(let e of this._entries)e.source&&e.el.pause()}seekAll(e){for(let t of this._entries){this._refreshEntryBounds(t);let i=e-t.start;i>=0&&i<t.duration&&(t.el.currentTime=i)}}scrubAll(e){for(let t of this._entries){this._refreshEntryBounds(t);let i=e-t.start;i>=0&&i<t.duration?(t.el.currentTime=i,this._playEntry(t)):t.el.paused||t.el.pause()}}mirrorTime(e,t){let i=t?.force===!0;for(let r of this._entries){this._refreshEntryBounds(r);let n=e-r.start;this._gateEntryPlayback(r,n)&&(Math.abs(r.el.currentTime-n)>Ze?(r.driftSamples+=1,(i||r.driftSamples>=Je)&&(r.el.currentTime=n,r.driftSamples=0)):r.driftSamples=0)}}promoteToParentProxy(e,t){if(this._audioOwner==="parent")return;if(this._audioOwner="parent",e)for(let r of e.querySelectorAll("video, audio"))w(r)&&(r.muted=!0);let i=this._getCurrentTime();t?t(i,{force:!0}):this.mirrorTime(i,{force:!0}),this._isPaused()||this.playAll(),this._dispatchEvent(new CustomEvent("audioownershipchange",{detail:{owner:"parent",reason:"autoplay-blocked"}}))}setupFromIframe(e){let t=e.querySelectorAll("audio[data-start], video[data-start]");for(let i of t)w(i)&&this._adoptIframeMedia(i);this._observeDynamicMedia(e)}setupFromUrl(e){if(this._urlAudioSrc===e&&this._urlAudioEntry)return;this.teardownUrlAudio();let t=this._createEntry(e,"audio",0,1/0);this._urlAudioEntry=t,this._urlAudioSrc=t?e:null,t&&this._audioOwner==="parent"&&!this._isPaused()&&(this.mirrorTime(this._getCurrentTime(),{force:!0}),this.playAll())}teardownUrlAudio(){let e=this._urlAudioEntry;if(this._urlAudioEntry=null,this._urlAudioSrc=null,!e)return;e.el.pause(),e.el.src="";let t=this._entries.indexOf(e);t!==-1&&this._entries.splice(t,1)}teardownObserver(){this._mediaObserver?.disconnect(),this._mediaObserver=void 0}_reportPlaybackError(e){this._playbackErrorPosted||(this._playbackErrorPosted=!0,this._dispatchEvent(new CustomEvent("playbackerror",{detail:{source:"parent-proxy",error:e}})))}_createEntry(e,t,i,r,n){if(this._entries.some(u=>u.el.src===e))return null;let a=t==="video"?document.createElement("video"):new Audio;a.preload="auto",a.src=e,a.load(),a.muted=this._getMuted(),a.volume=this._getVolume();let o=this._getPlaybackRate();o!==1&&(a.playbackRate=o);let d={el:a,start:i,duration:r,driftSamples:0,source:n};return this._entries.push(d),d}_resolveIframeMediaSrc(e){let t=e.getAttribute("src")||e.querySelector("source")?.getAttribute("src");return t?new URL(t,e.ownerDocument.baseURI).href:null}_adoptIframeMedia(e){if(e.preload==="metadata"||e.preload==="none")return;let t=this._resolveIframeMediaSrc(e);if(!t)return;let i=me(e),r=i.start??0,n=i.duration??Number.POSITIVE_INFINITY,a=e.tagName==="VIDEO"?"video":"audio",o=this._createEntry(t,a,r,n,e);o&&this._audioOwner==="parent"&&(this.mirrorTime(this._getCurrentTime(),{force:!0}),this._isPaused()||this._playEntryIfActive(o))}_detachIframeMedia(e){let t=this._resolveIframeMediaSrc(e);if(!t)return;let i=this._entries.findIndex(n=>n.el.src===t);if(i===-1)return;let r=this._entries[i];r.el.pause(),r.el.src="",this._entries.splice(i,1)}_observeDynamicMedia(e){if(this.teardownObserver(),typeof MutationObserver>"u"||!e.body)return;let t=new MutationObserver(n=>{for(let a of n){if(a.type==="attributes"&&a.attributeName==="preload"){let o=a.target;w(o)&&o.matches("audio[data-start], video[data-start]")&&o.preload==="auto"&&this._adoptIframeMedia(o);continue}for(let o of a.addedNodes){if(!q(o))continue;let d=[];w(o)&&o.matches("audio[data-start], video[data-start]")&&d.push(o);let u=o.querySelectorAll("audio[data-start], video[data-start]");for(let h of u)w(h)&&d.push(h);for(let h of d)this._adoptIframeMedia(h)}for(let o of a.removedNodes){if(!q(o))continue;let d=[];w(o)&&o.matches("audio[data-start], video[data-start]")&&d.push(o);let u=o.querySelectorAll("audio[data-start], video[data-start]");for(let h of u)w(h)&&d.push(h);for(let h of d)this._detachIframeMedia(h)}}}),i={childList:!0,subtree:!0,attributes:!0,attributeFilter:["preload"]},r=De(e);for(let n of r)t.observe(n,i);this._mediaObserver=t}};function Qe(e,t,i,r){let n=(e.frame??0)/t,a=i.duration>0?Math.min(n,i.duration):n,o=!i.paused,d=!e.isPlaying,u=i.duration>0&&a>=i.duration&&(o||e.isPlaying);if(u&&r.getLoop())return r.media.audioOwner==="parent"&&r.media.pauseAll(),r.seek(0),r.play(),{...i,currentTime:a,paused:!1};let h={...i,currentTime:a,paused:d};r.media.audioOwner==="parent"&&(o&&d?r.media.pauseAll():!o&&!d&&r.media.playAll(),r.media.mirrorTime(a));let m=performance.now(),_=d!==i.paused;return(m-i.lastUpdateMs>100||_)&&(h.lastUpdateMs=m,r.updateControlsTime(a,i.duration),r.updateControlsPlaying(!d),r.dispatchEvent(new CustomEvent("timeupdate",{detail:{currentTime:a}}))),u&&(r.media.audioOwner==="parent"&&r.media.pauseAll(),h.paused=!0,r.updateControlsPlaying(!1),r.dispatchEvent(new Event("ended"))),h}var et=["seconds-time","rational-fps","seek-keep-playing","composition-manifest-v1"];function tt(e,t){let i=Math.abs(e),r=Math.abs(t);for(;r!==0;){let n=i%r;i=r,r=n}return i||1}function it(e){let t=Number.isFinite(e)&&e>0?e:30,i=Number.isInteger(t)?1:1e6,r=Math.round(t*i),n=tt(r,i);return{numerator:r/n,denominator:i/n}}function rt(e){if(typeof e!="object"||e===null)return null;let t=e;return!Number.isFinite(t.numerator)||!Number.isFinite(t.denominator)||(t.numerator??0)<=0||(t.denominator??0)<=0?null:Number(t.numerator)/Number(t.denominator)}function nt(e){return{protocolVersion:1,capabilities:et,fps:it(e)}}function at(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function st(e,t=30){if(typeof e!="object"||e===null)return{status:"legacy",fps:t};let i=e;if(i.protocolVersion===void 0)return{status:"legacy",fps:t};if(i.protocolVersion!==1)return{status:"unsupported",code:"unsupported_protocol_version",receivedVersion:i.protocolVersion};let r=rt(i.fps);return r===null||!at(i.capabilities)?{status:"unsupported",code:"invalid_protocol_metadata",receivedVersion:i.protocolVersion}:{status:"supported",fps:r,metadata:i}}function ot(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.id=="string"&&typeof t.start=="number"&&typeof t.duration=="number"):[]}function lt(e,t,i){if(e.source!==t)return;let r=e.data;if(!r||r.source!=="hf-preview")return;let n=st(r);if(n.status==="unsupported"){i.dispatchEvent(new CustomEvent("runtimeprotocolerror",{detail:{code:n.code,receivedVersion:n.receivedVersion}}));return}if(i.setRuntimeFps?.(n.fps),r.type==="shader-transition-state"){let a=r.state&&typeof r.state=="object"?r.state:{};i.shaderLoader.update(a,i.getShaderLoadingMode()),i.dispatchEvent(new CustomEvent("shadertransitionstate",{detail:{compositionId:r.compositionId,state:a}}));return}if(r.type==="ready"){i.onRuntimeReady();return}if(r.type==="state"){i.setPlaybackState(Qe({frame:r.frame??0,isPlaying:!!r.isPlaying},n.fps,i.getPlaybackState(),i));return}if(r.type==="media-autoplay-blocked"){if(i.shouldPromoteMediaAutoplayFallback?.()===!1)return;let a=null;try{a=i.getIframeDoc()}catch{}i.media.promoteToParentProxy(a,(o,d)=>i.media.mirrorTime(o,d)),i.sendControl("set-media-output-muted",{muted:!0});return}if(r.type==="timeline"&&r.durationInFrames>0){let a=Number(r.durationSeconds),o=Number(r.durationInFrames),d=Number.isFinite(a)&&a>0?a:o/n.fps;if(Number.isFinite(d)&&d>0){let u=i.getPlaybackState();i.setPlaybackState({...u,duration:d}),i.updateControlsTime(u.currentTime,d),i.onRuntimeTimelineReady(d)}Number.isFinite(r.compositionWidth)&&r.compositionWidth>0&&Number.isFinite(r.compositionHeight)&&r.compositionHeight>0&&i.setCompositionSize(r.compositionWidth,r.compositionHeight),i.setScenes(ot(r.scenes));return}r.type==="stage-size"&&Number.isFinite(r.width)&&r.width>0&&Number.isFinite(r.height)&&r.height>0&&i.setCompositionSize(r.width,r.height)}var T="shader-capture-scale",L="shader-loading",dt="__hf_shader_capture_scale",ut="__hf_shader_loading",V=["Preparing scene transitions","Sampling outgoing scene motion","Sampling incoming scene motion","Caching transition frames","Finalizing transition preview"];function X(e){if(e===null)return null;let t=Number(e);return!Number.isFinite(t)||t<=0?null:String(Math.min(1,Math.max(.25,t)))}function ht(e){if(e===null||e.trim()==="")return"composition";let t=e.trim().toLowerCase();return t==="none"||t==="false"||t==="0"||t==="off"?"none":t==="player"||t==="true"||t==="1"||t==="on"?"player":"composition"}function fe(e,t,i){i===null?e.delete(t):e.set(t,i)}function ct(e,t,i){let r=e.indexOf("#"),n=r>=0?e.slice(0,r):e,a=r>=0?e.slice(r):"",o=n.indexOf("?"),d=o>=0?n.slice(0,o):n,u=o>=0?n.slice(o+1):"",h=new URLSearchParams(u);fe(h,dt,t),fe(h,ut,i==="composition"?null:i);let m=h.toString();return`${d}${m?`?${m}`:""}${a}`}function pt(e,t,i){if(t===null&&i==="composition")return e;let r=[];t!==null&&r.push(`window.__HF_SHADER_CAPTURE_SCALE=${JSON.stringify(t)};`),i!=="composition"&&r.push(`window.__HF_SHADER_LOADING=${JSON.stringify(i)};`);let n=`<script data-hyperframes-player-shader-options>${r.join("")}<\/script>`;return/<head\b[^>]*>/i.test(e)?e.replace(/<head\b[^>]*>/i,a=>`${a}${n}`):/<html\b[^>]*>/i.test(e)?e.replace(/<html\b[^>]*>/i,a=>`${a}${n}`):`${n}${e}`}function P(e){return ht(e.getAttribute(L))}function mt(e){return Number(X(e.getAttribute(T))??"1")}function U(e,t){return ct(t,X(e.getAttribute(T)),P(e))}function W(e,t){return pt(t,X(e.getAttribute(T)),P(e))}function ft(){let e=document.createElement("div");e.className="hfp-shader-loader",e.setAttribute("role","status"),e.setAttribute("aria-live","polite"),e.setAttribute("aria-label","Preparing scene transitions"),e.setAttribute("data-hyperframes-ignore",""),e.draggable=!1;let t=f=>{f.preventDefault(),f.stopPropagation()};for(let f of["selectstart","dragstart","pointerdown","mousedown","click","dblclick","contextmenu","touchstart"])e.addEventListener(f,t,{capture:!0});let i=document.createElement("div");i.className="hfp-shader-loader-panel",i.draggable=!1;let r=document.createElement("div");r.className="hfp-shader-loader-mark",r.draggable=!1,r.innerHTML=['<svg width="78" height="78" viewBox="0 0 100 100" fill="none" aria-hidden="true" draggable="false">','<path d="M10.1851 57.8021L33.1145 73.8313C36.2202 75.9978 41.5173 73.5433 42.4816 69.4984L51.7611 30.4271C52.7253 26.3822 48.5802 23.9277 44.4602 26.0942L13.917 42.1235C6.96677 45.7676 4.97564 54.1579 10.1851 57.8021Z" fill="url(#hfp-shader-loader-grad-left)"/>','<path d="M87.5129 57.5141L56.9696 73.5433C52.8371 75.7098 48.7046 73.2553 49.6688 69.2104L58.9483 30.1391C59.9125 26.0942 65.2097 23.6397 68.3154 25.8062L91.2447 41.8354C96.4668 45.4796 94.4631 53.8699 87.5129 57.5141Z" fill="url(#hfp-shader-loader-grad-right)"/>',"<defs>",'<linearGradient id="hfp-shader-loader-grad-left" x1="48.5676" y1="25" x2="44.7804" y2="71.9384" gradientUnits="userSpaceOnUse">','<stop stop-color="#06E3FA"/>','<stop offset="1" stop-color="#4FDB5E"/>',"</linearGradient>",'<linearGradient id="hfp-shader-loader-grad-right" x1="54.8282" y1="73.8392" x2="72.0989" y2="32.8932" gradientUnits="userSpaceOnUse">','<stop stop-color="#06E3FA"/>','<stop offset="1" stop-color="#4FDB5E"/>',"</linearGradient>","</defs>","</svg>"].join("");let n=document.createElement("div");n.className="hfp-shader-loader-title";let a=document.createElement("span");a.className="hfp-shader-loader-title-text",a.textContent=V[0]||"Preparing scene transitions",n.appendChild(a);let o=document.createElement("div");o.className="hfp-shader-loader-detail",o.textContent="Rendering animated scene samples for shader transitions.";let d=document.createElement("div");d.className="hfp-shader-loader-track",d.setAttribute("aria-hidden","true");let u=document.createElement("div");u.className="hfp-shader-loader-fill",d.appendChild(u);let h=document.createElement("div");h.className="hfp-shader-loader-progress";let m=f=>{let k=document.createElement("div");k.className="hfp-shader-loader-row";let p=document.createElement("span");p.className="hfp-shader-loader-label",p.textContent=f;let y=document.createElement("span");return y.className="hfp-shader-loader-value",k.appendChild(p),k.appendChild(y),h.appendChild(k),{row:k,label:p,value:y}},_=m("transition"),v=m("transition frame");return i.appendChild(r),i.appendChild(n),i.appendChild(o),i.appendChild(d),i.appendChild(h),e.appendChild(i),{root:e,fill:u,title:a,detail:o,transitionValue:_.value,frameLabel:v.label,frameValue:v.value,frameRow:v.row}}var gt=420,_t=class{_el;_hideTimeout=null;constructor(e){this._el=e}show(){this._hideTimeout&&(clearTimeout(this._hideTimeout),this._hideTimeout=null),this._el.root.classList.remove("hfp-hiding"),this._el.root.classList.add("hfp-visible")}hide(){if(this._el.root.classList.contains("hfp-hiding")){this._hideTimeout||this._scheduleCleanup();return}this._el.root.classList.contains("hfp-visible")&&(this._el.root.classList.add("hfp-hiding"),this._el.root.classList.remove("hfp-visible"),this._scheduleCleanup())}reset(){this._hideTimeout&&(clearTimeout(this._hideTimeout),this._hideTimeout=null),this._el.root.classList.remove("hfp-visible","hfp-hiding"),this._el.fill.style.transform="scaleX(0)",this._el.transitionValue.textContent="",this._el.frameValue.textContent="",this._el.frameRow.style.visibility="hidden"}update(e,t){if(t!=="player"){this.reset();return}if(e.ready||!e.loading){this.hide();return}let i=typeof e.progress=="number"&&Number.isFinite(e.progress)?e.progress:0,r=typeof e.total=="number"&&Number.isFinite(e.total)?e.total:0,n=r>0?Math.min(1,Math.max(0,i/r)):0,a=Math.min(V.length-1,Math.floor(n*V.length));this._el.title.textContent=V[a]||"Preparing scene transitions",this._el.detail.textContent=e.phase==="cached"?"Loading cached transition frames before playback.":e.phase==="finalizing"?"Uploading transition textures for smooth playback.":"Rendering animated scene samples for shader transitions.",this._el.fill.style.transform=`scaleX(${n})`,this._el.transitionValue.textContent=e.currentTransition!==void 0&&e.transitionTotal!==void 0?`${e.currentTransition}/${e.transitionTotal}`:r>0?`${i}/${r}`:"";let o=e.transitionFrame!==void 0&&e.transitionFrames!==void 0?`${e.transitionFrame}/${e.transitionFrames}`:"";this._el.frameLabel.textContent=e.phase==="cached"?"cached transition frames":e.phase==="finalizing"?"finalizing transition frames":"rendering transition frames",this._el.frameValue.textContent=o,this._el.frameRow.style.visibility=o?"visible":"hidden",this._el.root.setAttribute("aria-valuenow",String(Math.round(n*100))),this.show()}get hideTimeout(){return this._hideTimeout}destroy(){this._hideTimeout&&(clearTimeout(this._hideTimeout),this._hideTimeout=null)}_scheduleCleanup(){this._hideTimeout&&clearTimeout(this._hideTimeout),this._hideTimeout=setTimeout(()=>{this._el.root.classList.remove("hfp-hiding"),this._hideTimeout=null},gt)}},bt=.1,vt=5;function B(e){return!Number.isFinite(e)||e<=0?1:Math.max(bt,Math.min(vt,e))}var yt=class extends HTMLElement{static get observedAttributes(){return["src","srcdoc","width","height","controls","muted","audio-locked","volume","poster","playback-rate","audio-src",T,L]}shadow;container;iframe;posterEl=null;controlsApi=null;resizeObserver;shaderLoader;probe;_ready=!1;_currentTime=0;_duration=0;_paused=!0;_scrubbing=!1;_lastUpdateMs=0;_volume=1;_compositionWidth=1920;_compositionHeight=1080;_rescaleWarned=!1;_directTimelineAdapter=null;_directTimelineClock;_parentTickRaf=null;_media;_scenes=[];_runtimeFps=30;constructor(){super(),this.shadow=this.attachShadow({mode:"open"}),Ne(this.shadow,xe),{container:this.container,iframe:this.iframe}=Fe(),this.shadow.appendChild(this.container);let e=ft();this.shadow.appendChild(e.root),this.shaderLoader=new _t(e),this._media=new Ke({dispatchEvent:t=>this.dispatchEvent(t),getMuted:()=>this.muted,getVolume:()=>this._volume,getPlaybackRate:()=>this.playbackRate,getCurrentTime:()=>this._currentTime,isPaused:()=>this._paused}),this._directTimelineClock=new Oe({onTimeUpdate:(t,i)=>{this._currentTime=t,this.controlsApi?.updateTime(t,i),this.dispatchEvent(new CustomEvent("timeupdate",{detail:{currentTime:t}}))},getLoop:()=>this.loop,restart:()=>{this.seek(0),this.play()},onPaused:()=>{this._media.audioOwner==="parent"&&this._media.pauseAll(),this._paused=!0,this.controlsApi?.updatePlaying(!1),this.dispatchEvent(new Event("ended"))},onEnded:()=>this.loop}),this.probe=new Ae(this.iframe,{onReady:t=>this._onProbeReady(t),onError:t=>this.dispatchEvent(new CustomEvent("error",{detail:{message:t}}))}),this.addEventListener("click",t=>{Ie(t)||(this._paused?this.play():this.pause())}),this.resizeObserver=new ResizeObserver(()=>this._rescale()),this._onMessage=this._onMessage.bind(this),this._onIframeLoad=this._onIframeLoad.bind(this)}connectedCallback(){this.resizeObserver.observe(this),window.addEventListener("message",this._onMessage),this.iframe.addEventListener("load",this._onIframeLoad),this.hasAttribute("controls")&&this._setupControls(),this.hasAttribute("poster")&&(this.posterEl=he(this.shadow,this.getAttribute("poster"),this.posterEl)),this.hasAttribute("audio-src")&&this._media.setupFromUrl(this.getAttribute("audio-src")),this.hasAttribute("srcdoc")&&(this.iframe.srcdoc=W(this,this.getAttribute("srcdoc"))),this.hasAttribute("src")&&(this.iframe.src=U(this,this.getAttribute("src"))),!this.hasAttribute("audio-locked")&&this._isLockedHostEnvironment()&&this._applyAudioLock(!0)}disconnectedCallback(){this._sendControl("pause"),this._stopIframeMedia(),this.resizeObserver.disconnect(),window.removeEventListener("message",this._onMessage),this.iframe.removeEventListener("load",this._onIframeLoad),this.probe.stop(),this._directTimelineClock.stop(),this._stopParentTickClock(),this._directTimelineAdapter=null,this.shaderLoader.destroy(),this._media.destroy(),this.controlsApi?.destroy(),this.controlsApi=null,this._paused=!0,this._ready=!1}attributeChangedCallback(e,t,i){switch(e){case"src":i&&(this._ready=!1,this.iframe.src=U(this,i));break;case"srcdoc":this._ready=!1,i!==null?this.iframe.srcdoc=W(this,i):this.iframe.removeAttribute("srcdoc");break;case"width":this._compositionWidth=$(i)??1920,this._rescale();break;case"height":this._compositionHeight=$(i)??1080,this._rescale();break;case"controls":i!==null?this._setupControls():(this.controlsApi?.destroy(),this.controlsApi=null);break;case"poster":this.posterEl=he(this.shadow,i,this.posterEl);break;case"playback-rate":{let r=B(parseFloat(i||"1"));this._media.updatePlaybackRate(r),this._sendControl("set-playback-rate",{playbackRate:r}),this._directTimelineAdapter?.timeScale?.(r),this.controlsApi?.updateSpeed(r),this.dispatchEvent(new Event("ratechange"));break}case"muted":this._handleMutedChange(i);break;case"audio-locked":this._applyAudioLock(i!==null);break;case"volume":{let r=Math.max(0,Math.min(1,parseFloat(i||"1")));this._volume=r,this._media.updateVolume(r),this._sendControl("set-volume",{volume:r}),this.controlsApi?.updateVolume(r),this.dispatchEvent(new Event("volumechange"));break}case"audio-src":i?this._media.setupFromUrl(i):this._media.teardownUrlAudio();break;case T:case L:this._reloadShaderOptions();break}}get iframeElement(){return this.iframe}get scenes(){return this._scenes}play(){this.posterEl?.remove(),this.posterEl=null,this._duration>0&&this._currentTime>=this._duration&&this.seek(0),this._paused=!1;let e=this._tryDirectTimelinePlay();e||(this._sendControl("play"),this._ready&&!this._directTimelineAdapter&&this._startParentTickClock()),this._media.audioOwner==="parent"&&this._media.playAll(),this.controlsApi?.updatePlaying(!0),this.dispatchEvent(new Event("play")),e&&this._directTimelineAdapter&&this._directTimelineClock.start(this._directTimelineAdapter,()=>this._currentTime,()=>this._duration,()=>this._paused)}pause(){this._tryDirectTimelinePause()||this._sendControl("pause"),this._directTimelineClock.stop(),this._stopParentTickClock(),this._media.audioOwner==="parent"&&this._media.pauseAll(),this._paused=!0,this.controlsApi?.updatePlaying(!1),this.dispatchEvent(new Event("pause"))}stopMedia(){this._sendControl("stop-media"),this._stopIframeMedia(),this._media.stopAdoptedMedia()}seek(e){!this._trySyncSeek(e)&&!this._tryDirectTimelineSeek(e)&&this._sendControl("seek",{timeSeconds:e,frame:Math.round(e*this._runtimeFps)}),this._directTimelineClock.stop(),this._stopParentTickClock(),this._currentTime=e,this._media.audioOwner==="parent"&&(this._scrubbing?this._media.scrubAll(e):(this._media.pauseAll(),this._media.seekAll(e))),this._paused=!0,this.controlsApi?.updatePlaying(!1),this.controlsApi?.updateTime(this._currentTime,this._duration)}setColorGrading(e,t){this._sendControl("set-color-grading",{target:e,grading:t})}clearColorGrading(e){this._sendControl("set-color-grading",{target:e,grading:null})}setColorGradingCompare(e,t){this._sendControl("set-color-grading-compare",{target:e,compare:t})}clearColorGradingCompare(e){this._sendControl("set-color-grading-compare",{target:e,compare:{enabled:!1}})}get currentTime(){return this._currentTime}set currentTime(e){this.seek(e)}get duration(){return this._duration}get paused(){return this._paused}get ready(){return this._ready}get playbackRate(){return B(parseFloat(this.getAttribute("playback-rate")||"1"))}set playbackRate(e){this.setAttribute("playback-rate",String(B(e)))}get shaderCaptureScale(){return mt(this)}set shaderCaptureScale(e){this.setAttribute(T,String(e))}get shaderLoading(){return P(this)}set shaderLoading(e){e==="composition"?this.removeAttribute(L):this.setAttribute(L,e)}get muted(){return this.hasAttribute("muted")}set muted(e){e?this.setAttribute("muted",""):this.removeAttribute("muted")}get audioLocked(){return this.hasAttribute("audio-locked")}set audioLocked(e){e?this.setAttribute("audio-locked",""):this.removeAttribute("audio-locked")}_isLockedHostEnvironment(){if(typeof navigator>"u")return!1;let e=navigator.userAgent||"";return/\bClaude\/\d/.test(e)&&/\bElectron\b/.test(e)}_isAudioLocked(){return this.hasAttribute("audio-locked")||this._isLockedHostEnvironment()}_isSlideshowPlayer(){return this.closest("hyperframes-slideshow")!==null}_handleMutedChange(e){if(e===null&&this._isAudioLocked()){this.setAttribute("muted","");return}this._media.updateMuted(e!==null),this._setIframeMediaMuted(e!==null),this._sendControl("set-muted",{muted:e!==null}),this.controlsApi?.updateMuted(e!==null),this.dispatchEvent(new Event("volumechange"))}_applyAudioLock(e){e&&(this.muted=!0),this.controlsApi?.setVolumeControlsHidden(e)}get volume(){return this._volume}set volume(e){this.setAttribute("volume",String(Math.max(0,Math.min(1,e))))}get loop(){return this.hasAttribute("loop")}set loop(e){e?this.setAttribute("loop",""):this.removeAttribute("loop")}_sendControl(e,t={}){try{this.iframe.contentWindow?.postMessage({...t,source:"hf-parent",type:"control",action:e,...nt(this._runtimeFps)},"*")}catch{}}_getSameOriginIframeDocument(){try{return this.iframe.contentDocument}catch{return null}}_setIframeMediaMuted(e){let t=this._getSameOriginIframeDocument();if(t)for(let i of t.querySelectorAll("video, audio"))w(i)&&(i.muted=e||i.defaultMuted)}_stopIframeMedia(){let e=this._getSameOriginIframeDocument();if(e)for(let t of e.querySelectorAll("video, audio"))w(t)&&t.pause()}_replayBridgeState(){this._sendControl("set-muted",{muted:this.muted}),this._sendControl("set-volume",{volume:this._volume}),this._sendControl("set-playback-rate",{playbackRate:this.playbackRate}),this._sendControl("set-native-media-sync-disabled",{disabled:this._isSlideshowPlayer()}),this._sendControl("set-web-audio-media-disabled",{disabled:this._isSlideshowPlayer()})}_reloadShaderOptions(){if(P(this)!=="player"&&this.shaderLoader.reset(),this.hasAttribute("srcdoc")){this.iframe.srcdoc=W(this,this.getAttribute("srcdoc")||"");return}this.hasAttribute("src")&&(this.iframe.src=U(this,this.getAttribute("src")||""))}_trySyncSeek(e){try{let t=this.iframe.contentWindow?.__player;return typeof t?.seek!="function"?!1:(t.seek.call(t,e),!0)}catch{return!1}}_withDirectTimeline(e){let t=this._directTimelineAdapter||this.probe.resolveDirectTimelineAdapter();if(!t)return!1;try{return e(t),this._directTimelineAdapter=t,!0}catch{return!1}}_tryDirectTimelineSeek(e){return this._withDirectTimeline(t=>{t.seek(e,!1),t.pause()})}_tryDirectTimelinePlay(){return this._withDirectTimeline(e=>{e.play()})}_tryDirectTimelinePause(){return this._withDirectTimeline(e=>{e.pause()})}_startParentTickClock(){this._stopParentTickClock();let e=()=>{if(this._paused){this._parentTickRaf=null;return}this._sendControl("tick"),this._parentTickRaf=requestAnimationFrame(e)};this._parentTickRaf=requestAnimationFrame(e)}_stopParentTickClock(){this._parentTickRaf!==null&&(cancelAnimationFrame(this._parentTickRaf),this._parentTickRaf=null)}_onMessage(e){lt(e,this.iframe.contentWindow,{getPlaybackState:()=>({currentTime:this._currentTime,duration:this._duration,paused:this._paused,lastUpdateMs:this._lastUpdateMs}),setPlaybackState:({currentTime:t,duration:i,paused:r,lastUpdateMs:n})=>{this._currentTime=t,this._duration=i,this._paused=r,this._lastUpdateMs=n},getShaderLoadingMode:()=>P(this),shaderLoader:this.shaderLoader,setCompositionSize:(t,i)=>{this._compositionWidth=t,this._compositionHeight=i,this._rescale()},sendControl:(t,i)=>this._sendControl(t,i),getIframeDoc:()=>this.iframe.contentDocument,onRuntimeReady:()=>this._replayBridgeState(),onRuntimeTimelineReady:t=>this._onRuntimeTimelineReady(t),setRuntimeFps:t=>{this._runtimeFps=t},shouldPromoteMediaAutoplayFallback:()=>!this._isSlideshowPlayer(),setScenes:t=>{this._scenes=t,this.dispatchEvent(new CustomEvent("scenes",{detail:{scenes:t}}))},updateControlsTime:(t,i)=>this.controlsApi?.updateTime(t,i),updateControlsPlaying:t=>this.controlsApi?.updatePlaying(t),dispatchEvent:t=>this.dispatchEvent(t),seek:t=>this.seek(t),play:()=>this.play(),getLoop:()=>this.loop,media:this._media})}_onRuntimeTimelineReady(e){if(this._ready)return;this.probe.stop(),this._duration=e,this._directTimelineAdapter=null,this._ready=!0,this.controlsApi?.updateTime(this._currentTime,e),this.dispatchEvent(new CustomEvent("ready",{detail:{duration:e}})),this._rescale();let t=this._getSameOriginIframeDocument();t&&this._media.setupFromIframe(t),this._replayBridgeState(),this._setIframeMediaMuted(this.muted),this.hasAttribute("autoplay")&&this.play()}_onProbeReady({duration:e,adapter:t,compositionSize:i}){this._duration=e,this._directTimelineAdapter=t.kind==="direct-timeline"?t.timeline:null,this._ready=!0,this.controlsApi?.updateTime(0,e),this.dispatchEvent(new CustomEvent("ready",{detail:{duration:e}})),i&&(this._compositionWidth=i.width,this._compositionHeight=i.height,this._rescale());try{let r=this.iframe.contentDocument;r&&this._media.setupFromIframe(r)}catch{}this._setIframeMediaMuted(this.muted),this.hasAttribute("autoplay")&&this.play()}_rescale(){!Re(this,this.iframe,this._compositionWidth,this._compositionHeight)&&this._ready&&!this._rescaleWarned&&(this._rescaleWarned=!0,console.warn("[hyperframes-player] rescale no-op after ready \u2014 zero-size player element",{src:this.getAttribute("src"),offsetWidth:this.offsetWidth,offsetHeight:this.offsetHeight,compositionWidth:this._compositionWidth,compositionHeight:this._compositionHeight}))}_onIframeLoad(){this._ready=!1,this._directTimelineAdapter=null,this._directTimelineClock.stop(),this._stopParentTickClock(),this.shaderLoader.reset(),this._media.resetForIframeLoad(),this.probe.start()}_setupControls(){this.controlsApi||(this.controlsApi=Pe(this.shadow,this.muted,this._volume,this.getAttribute("speed-presets"),{onPlay:()=>this.play(),onPause:()=>this.pause(),onSeek:e=>this.seek(e*this._duration),onScrubStart:()=>{this._scrubbing=!0},onScrubEnd:()=>{this._scrubbing=!1,this.seek(this._currentTime)},onSpeedChange:e=>{this.playbackRate=e},onMuteToggle:()=>{this.muted=!this.muted},onVolumeChange:e=>{this.volume=e}},this._isAudioLocked()))}get _audioOwner(){return this._media.audioOwner}get _parentMedia(){return this._media.entries}_mirrorParentMediaTime(e,t){this._media.mirrorTime(e,t)}_promoteToParentProxy(){let e=null;try{e=this.iframe.contentDocument}catch{}this._media.promoteToParentProxy(e,(t,i)=>this._mirrorParentMediaTime(t,i)),this._sendControl("set-media-output-muted",{muted:!0})}_observeDynamicMedia(e){this._media.setupFromIframe(e)}};customElements.get("hyperframes-player")||customElements.define("hyperframes-player",yt);export{yt as HyperframesPlayer,Me as SPEED_PRESETS,j as formatSpeed,ue as formatTime};
@@ -0,0 +1 @@
1
+ import{c}from"./chunk-DXB73IDG.js";var l=c(f=>{"use strict";Object.defineProperty(f,"__esModule",{value:!0});f.default=w;var p=window.OfflineAudioContext||window.webkitOfflineAudioContext;function w(n){var e=m(n);return e.start(0),[O,x,P(n.sampleRate),g].reduce(function(t,u){return u(t)},e.buffer.getChannelData(0))}function g(n){return n.sort(function(e,t){return t.count-e.count}).splice(0,5)[0].tempo}function m(n){var e=n.length,t=n.numberOfChannels,u=n.sampleRate,r=new p(t,e,u),o=r.createBufferSource();o.buffer=n;var a=r.createBiquadFilter();return a.type="lowpass",o.connect(a),a.connect(r.destination),o}function O(n){for(var e=[],t=.9,u=.3,r=15;e.length<r&&t>=u;)e=k(n,t),t-=.05;if(e.length<r)throw new Error("Could not find enough samples for a reliable detection.");return e}function k(n,e){for(var t=[],u=0,r=n.length;u<r;u+=1)n[u]>e&&(t.push(u),u+=1e4);return t}function x(n){var e=[];return n.forEach(function(t,u){for(var r=function(d){var i=n[u+d]-t,h=e.some(function(s){if(s.interval===i)return s.count+=1});h||e.push({interval:i,count:1})},o=0;o<10;o+=1)r(o)}),e}function P(n){return function(e){var t=[];return e.forEach(function(u){if(u.interval!==0){for(var r=60/(u.interval/n);r<90;)r*=2;for(;r>180;)r/=2;r=Math.round(r);var o=t.some(function(a){if(a.tempo===r)return a.count+=u.count});o||t.push({tempo:r,count:u.count})}}),t}}});var y=c((_,v)=>{v.exports=l().default});export default y();