@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.
- package/.agents/skills/dollarplatoon-skill/SKILL.md +1227 -0
- package/.agents/skills/editor-capabilities/SKILL.md +182 -0
- package/.agents/skills/editor-capabilities/references/re-theme-walkthrough.md +58 -0
- package/.agents/skills/embedded-captions/CATALOG.md +93 -0
- package/.agents/skills/embedded-captions/SKILL.md +286 -0
- package/.agents/skills/embedded-captions/assets/brand/CDPR-fankit-terms.txt +35 -0
- package/.agents/skills/embedded-captions/assets/brand/cyberpunk-widths.json +115 -0
- package/.agents/skills/embedded-captions/assets/fonts/char-widths.json +2211 -0
- package/.agents/skills/embedded-captions/assets/strokefonts/HersheyScript1.svg +242 -0
- package/.agents/skills/embedded-captions/assets/strokefonts/HersheyScriptMed.svg +242 -0
- package/.agents/skills/embedded-captions/dna/README.md +148 -0
- package/.agents/skills/embedded-captions/dna/chrome.json +68 -0
- package/.agents/skills/embedded-captions/dna/cream.json +69 -0
- package/.agents/skills/embedded-captions/dna/documentary.json +62 -0
- package/.agents/skills/embedded-captions/dna/editorial.json +70 -0
- package/.agents/skills/embedded-captions/dna/glitch.json +82 -0
- package/.agents/skills/embedded-captions/dna/ink.json +65 -0
- package/.agents/skills/embedded-captions/dna/keynote.json +62 -0
- package/.agents/skills/embedded-captions/dna/loud.json +75 -0
- package/.agents/skills/embedded-captions/dna/neon.json +58 -0
- package/.agents/skills/embedded-captions/dna/velocity.json +89 -0
- package/.agents/skills/embedded-captions/modes/cinematic/README.md +48 -0
- package/.agents/skills/embedded-captions/modes/cinematic/_archive/champion/spec.md +98 -0
- package/.agents/skills/embedded-captions/modes/cinematic/_archive/champion/template.html +188 -0
- package/.agents/skills/embedded-captions/modes/cinematic/_archive/memory-wall/spec.md +134 -0
- package/.agents/skills/embedded-captions/modes/cinematic/_archive/memory-wall/template.html +179 -0
- package/.agents/skills/embedded-captions/modes/cinematic/_archive/portrait-header/spec.md +81 -0
- package/.agents/skills/embedded-captions/modes/cinematic/_archive/portrait-header/template.html +170 -0
- package/.agents/skills/embedded-captions/modes/cinematic/cinematic-cream/spec.md +16 -0
- package/.agents/skills/embedded-captions/modes/cinematic/cinematic-cream/template.html +226 -0
- package/.agents/skills/embedded-captions/modes/cinematic/engine.html +355 -0
- package/.agents/skills/embedded-captions/modes/standard/_anatomy.md +233 -0
- package/.agents/skills/embedded-captions/modes/standard/_motion.md +192 -0
- package/.agents/skills/embedded-captions/modes/standard/fonts/build-fonts-css.cjs +97 -0
- package/.agents/skills/embedded-captions/references/aesthetic-principles.md +168 -0
- package/.agents/skills/embedded-captions/references/anti-patterns.md +188 -0
- package/.agents/skills/embedded-captions/references/bespoke-vs-presets.md +178 -0
- package/.agents/skills/embedded-captions/references/caption-grouping.md +130 -0
- package/.agents/skills/embedded-captions/references/composition-craft.md +522 -0
- package/.agents/skills/embedded-captions/references/direction-catalog.md +138 -0
- package/.agents/skills/embedded-captions/references/example-renders/champion.html +371 -0
- package/.agents/skills/embedded-captions/references/example-renders/memory-wall.html +334 -0
- package/.agents/skills/embedded-captions/references/failure-modes.md +145 -0
- package/.agents/skills/embedded-captions/references/layout-heuristics.md +238 -0
- package/.agents/skills/embedded-captions/references/motion-vocabulary.md +148 -0
- package/.agents/skills/embedded-captions/references/rail.md +68 -0
- package/.agents/skills/embedded-captions/references/reference-bar.md +47 -0
- package/.agents/skills/embedded-captions/references/scene-types.md +94 -0
- package/.agents/skills/embedded-captions/references/test-set.md +66 -0
- package/.agents/skills/embedded-captions/references/typographic-moves.md +266 -0
- package/.agents/skills/embedded-captions/references/typography-presets.md +63 -0
- package/.agents/skills/embedded-captions/scripts/audio-envelope.cjs +95 -0
- package/.agents/skills/embedded-captions/scripts/check-occlusion.cjs +250 -0
- package/.agents/skills/embedded-captions/scripts/check-overflow.cjs +194 -0
- package/.agents/skills/embedded-captions/scripts/check-rail-climax.cjs +233 -0
- package/.agents/skills/embedded-captions/scripts/check-timing.cjs +173 -0
- package/.agents/skills/embedded-captions/scripts/fill-timings.cjs +124 -0
- package/.agents/skills/embedded-captions/scripts/fit-fonts.cjs +158 -0
- package/.agents/skills/embedded-captions/scripts/gen-stroke-path.py +46 -0
- package/.agents/skills/embedded-captions/scripts/inject-fonts.cjs +169 -0
- package/.agents/skills/embedded-captions/scripts/lib-dna.cjs +201 -0
- package/.agents/skills/embedded-captions/scripts/make-cinematic.cjs +1205 -0
- package/.agents/skills/embedded-captions/scripts/make-composition.cjs +404 -0
- package/.agents/skills/embedded-captions/scripts/make-theme.cjs +8781 -0
- package/.agents/skills/embedded-captions/scripts/matte.cjs +294 -0
- package/.agents/skills/embedded-captions/scripts/measure-layout.cjs +293 -0
- package/.agents/skills/embedded-captions/scripts/prepare.sh +39 -0
- package/.agents/skills/embedded-captions/scripts/preview-frames.cjs +268 -0
- package/.agents/skills/embedded-captions/scripts/render-and-composite.sh +509 -0
- package/.agents/skills/embedded-captions/scripts/render-theme.sh +34 -0
- package/.agents/skills/embedded-captions/scripts/safe-zones.cjs +813 -0
- package/.agents/skills/embedded-captions/scripts/transcribe.cjs +349 -0
- package/.agents/skills/embedded-captions/themes/PORTING.md +49 -0
- package/.agents/skills/embedded-captions/themes/README.md +244 -0
- package/.agents/skills/embedded-captions/themes/anchor.json +27 -0
- package/.agents/skills/embedded-captions/themes/arcade.json +51 -0
- package/.agents/skills/embedded-captions/themes/aurora.json +41 -0
- package/.agents/skills/embedded-captions/themes/biolume.json +35 -0
- package/.agents/skills/embedded-captions/themes/brush.json +74 -0
- package/.agents/skills/embedded-captions/themes/chalkboard.json +52 -0
- package/.agents/skills/embedded-captions/themes/dossier.json +56 -0
- package/.agents/skills/embedded-captions/themes/graffiti.json +62 -0
- package/.agents/skills/embedded-captions/themes/hologram.json +41 -0
- package/.agents/skills/embedded-captions/themes/inkwater.json +43 -0
- package/.agents/skills/embedded-captions/themes/laser.json +46 -0
- package/.agents/skills/embedded-captions/themes/lastpage.json +33 -0
- package/.agents/skills/embedded-captions/themes/neonsign.json +53 -0
- package/.agents/skills/embedded-captions/themes/nightcity.json +56 -0
- package/.agents/skills/embedded-captions/themes/ordnance.json +54 -0
- package/.agents/skills/embedded-captions/themes/papercut.json +37 -0
- package/.agents/skills/embedded-captions/themes/popup.json +46 -0
- package/.agents/skills/embedded-captions/themes/ransom.json +62 -0
- package/.agents/skills/embedded-captions/themes/scoreboard.json +54 -0
- package/.agents/skills/embedded-captions/themes/spectrum.json +46 -0
- package/.agents/skills/embedded-captions/themes/stardust.json +29 -0
- package/.agents/skills/embedded-captions/themes/stomp.json +43 -0
- package/.agents/skills/embedded-captions/themes/terminal.json +49 -0
- package/.agents/skills/embedded-captions/themes/thunder.json +44 -0
- package/.agents/skills/embedded-captions/themes/transit.json +44 -0
- package/.agents/skills/embedded-captions/themes/vhs.json +47 -0
- package/.agents/skills/faceless-explainer/SKILL.md +209 -0
- package/.agents/skills/faceless-explainer/references/cut-catalog.md +215 -0
- package/.agents/skills/faceless-explainer/references/motion-language.md +156 -0
- package/.agents/skills/faceless-explainer/references/story-design.md +248 -0
- package/.agents/skills/faceless-explainer/references/visual-design.md +146 -0
- package/.agents/skills/faceless-explainer/scripts/assemble-index.mjs +570 -0
- package/.agents/skills/faceless-explainer/scripts/audio.mjs +260 -0
- package/.agents/skills/faceless-explainer/scripts/build-frame.mjs +536 -0
- package/.agents/skills/faceless-explainer/scripts/captions.mjs +508 -0
- package/.agents/skills/faceless-explainer/scripts/lib/assets.mjs +55 -0
- package/.agents/skills/faceless-explainer/scripts/lib/dimensions.mjs +45 -0
- package/.agents/skills/faceless-explainer/scripts/lib/storyboard.mjs +249 -0
- package/.agents/skills/faceless-explainer/scripts/lib/tokens.mjs +204 -0
- package/.agents/skills/faceless-explainer/scripts/lib/transition-registry.mjs +38 -0
- package/.agents/skills/faceless-explainer/scripts/lib/transitions.json +71 -0
- package/.agents/skills/faceless-explainer/scripts/transitions.mjs +320 -0
- package/.agents/skills/faceless-explainer/sub-agents/frame-worker.md +75 -0
- package/.agents/skills/farmville-saas-ux/SKILL.md +156 -0
- package/.agents/skills/farmville-saas-ux/assets/starter.html +294 -0
- package/.agents/skills/farmville-saas-ux/references/components.md +340 -0
- package/.agents/skills/farmville-saas-ux/references/porting-guide.md +121 -0
- package/.agents/skills/farmville-saas-ux/references/tokens.md +271 -0
- package/.agents/skills/flockposter/LICENSE +17 -0
- package/.agents/skills/flockposter/README.md +72 -0
- package/.agents/skills/flockposter/SKILL.md +562 -0
- package/.agents/skills/flockposter/examples/cli-instagram-reel.sh +21 -0
- package/.agents/skills/flockposter/examples/cli-multi-platform.json +69 -0
- package/.agents/skills/flockposter/examples/cli-tiktok-upload-only.sh +22 -0
- package/.agents/skills/flockposter/examples/cli-x-thread.sh +17 -0
- package/.agents/skills/flockposter/examples/cli-youtube-short.sh +21 -0
- package/.agents/skills/flockposter/examples/public-api-instagram-reel.json +28 -0
- package/.agents/skills/general-video/SKILL.md +143 -0
- package/.agents/skills/hyperframes/SKILL.md +160 -0
- package/.agents/skills/hyperframes-animation/SKILL.md +84 -0
- package/.agents/skills/hyperframes-animation/adapters/animate-text.md +64 -0
- package/.agents/skills/hyperframes-animation/adapters/animejs.md +114 -0
- package/.agents/skills/hyperframes-animation/adapters/css-animations.md +143 -0
- package/.agents/skills/hyperframes-animation/adapters/gsap-easing-and-stagger.md +118 -0
- package/.agents/skills/hyperframes-animation/adapters/gsap-timeline-and-labels.md +96 -0
- package/.agents/skills/hyperframes-animation/adapters/gsap-transforms-and-perf.md +96 -0
- package/.agents/skills/hyperframes-animation/adapters/gsap.md +105 -0
- package/.agents/skills/hyperframes-animation/adapters/html-in-canvas-patterns.md +507 -0
- package/.agents/skills/hyperframes-animation/adapters/lottie.md +117 -0
- package/.agents/skills/hyperframes-animation/adapters/three.md +131 -0
- package/.agents/skills/hyperframes-animation/adapters/typegpu.md +178 -0
- package/.agents/skills/hyperframes-animation/adapters/waapi.md +101 -0
- package/.agents/skills/hyperframes-animation/blueprints/comparison-split.md +27 -0
- package/.agents/skills/hyperframes-animation/blueprints/constellation-hub.md +44 -0
- package/.agents/skills/hyperframes-animation/blueprints/cta-morph-press.md +28 -0
- package/.agents/skills/hyperframes-animation/blueprints/cursor-ui-demo.md +57 -0
- package/.agents/skills/hyperframes-animation/blueprints/dataviz-countup.md +46 -0
- package/.agents/skills/hyperframes-animation/blueprints/device-surface-showcase.md +53 -0
- package/.agents/skills/hyperframes-animation/blueprints/grid-card-assemble.md +66 -0
- package/.agents/skills/hyperframes-animation/blueprints/kinetic-type-beats.md +78 -0
- package/.agents/skills/hyperframes-animation/blueprints/logo-assemble-lockup.md +69 -0
- package/.agents/skills/hyperframes-animation/blueprints/overwhelm-surround.md +28 -0
- package/.agents/skills/hyperframes-animation/blueprints/spatial-pan-stations.md +37 -0
- package/.agents/skills/hyperframes-animation/blueprints/ticker-takeover.md +29 -0
- package/.agents/skills/hyperframes-animation/blueprints/titlecard-reveal.md +42 -0
- package/.agents/skills/hyperframes-animation/blueprints/typewriter-reveal.md +51 -0
- package/.agents/skills/hyperframes-animation/blueprints/video-text-pivot.md +30 -0
- package/.agents/skills/hyperframes-animation/blueprints-index.md +146 -0
- package/.agents/skills/hyperframes-animation/examples/assets/avatars/02.avif +0 -0
- package/.agents/skills/hyperframes-animation/examples/assets/brands/github.avif +0 -0
- package/.agents/skills/hyperframes-animation/examples/assets/brands/nvidia.avif +0 -0
- package/.agents/skills/hyperframes-animation/examples/assets/brands/visa.avif +0 -0
- package/.agents/skills/hyperframes-animation/examples/assets/brands/zoominfo.avif +0 -0
- package/.agents/skills/hyperframes-animation/examples/brand-reveal-assemble-zoom.html +382 -0
- package/.agents/skills/hyperframes-animation/examples/comparison-split-cards.html +649 -0
- package/.agents/skills/hyperframes-animation/examples/concept-demo-decode-pan.html +520 -0
- package/.agents/skills/hyperframes-animation/examples/cta-morph-press.html +468 -0
- package/.agents/skills/hyperframes-animation/examples/cta-orbit-collapse.html +1298 -0
- package/.agents/skills/hyperframes-animation/examples/demo-page-scroll-spotlight.html +759 -0
- package/.agents/skills/hyperframes-animation/examples/hook-counter-burst.html +729 -0
- package/.agents/skills/hyperframes-animation/examples/messaging-multi-phrase.html +352 -0
- package/.agents/skills/hyperframes-animation/examples/metric-video-text-pivot.html +779 -0
- package/.agents/skills/hyperframes-animation/examples/problem-mockup-overwhelm.html +1374 -0
- package/.agents/skills/hyperframes-animation/examples/proof-logo-chain.html +861 -0
- package/.agents/skills/hyperframes-animation/examples/takeover-ticker-displace.html +347 -0
- package/.agents/skills/hyperframes-animation/examples/workflow-approve-press.html +606 -0
- package/.agents/skills/hyperframes-animation/rules/3d-page-scroll.md +227 -0
- package/.agents/skills/hyperframes-animation/rules/3d-text-depth-layers.md +297 -0
- package/.agents/skills/hyperframes-animation/rules/ai-tracking-box.md +382 -0
- package/.agents/skills/hyperframes-animation/rules/ambient-glow-bloom.md +305 -0
- package/.agents/skills/hyperframes-animation/rules/asr-keyword-glow.md +286 -0
- package/.agents/skills/hyperframes-animation/rules/avatar-cloud-network.md +371 -0
- package/.agents/skills/hyperframes-animation/rules/camera-cursor-tracking.md +246 -0
- package/.agents/skills/hyperframes-animation/rules/card-morph-anchor.md +267 -0
- package/.agents/skills/hyperframes-animation/rules/center-outward-expansion.md +227 -0
- package/.agents/skills/hyperframes-animation/rules/context-sensitive-cursor.md +257 -0
- package/.agents/skills/hyperframes-animation/rules/coordinate-target-zoom.md +332 -0
- package/.agents/skills/hyperframes-animation/rules/counting-dynamic-scale.md +283 -0
- package/.agents/skills/hyperframes-animation/rules/css-marker-patterns.md +373 -0
- package/.agents/skills/hyperframes-animation/rules/cursor-click-ripple.md +262 -0
- package/.agents/skills/hyperframes-animation/rules/depth-of-field-blur.md +313 -0
- package/.agents/skills/hyperframes-animation/rules/depth-scatter-assemble.md +303 -0
- package/.agents/skills/hyperframes-animation/rules/discrete-text-sequence.md +273 -0
- package/.agents/skills/hyperframes-animation/rules/dynamic-content-sequencing.md +307 -0
- package/.agents/skills/hyperframes-animation/rules/gsap-effects.md +299 -0
- package/.agents/skills/hyperframes-animation/rules/hacker-flip-3d.md +223 -0
- package/.agents/skills/hyperframes-animation/rules/kinetic-beat-slam.md +183 -0
- package/.agents/skills/hyperframes-animation/rules/motion-blur-streak.md +328 -0
- package/.agents/skills/hyperframes-animation/rules/multi-phase-camera.md +273 -0
- package/.agents/skills/hyperframes-animation/rules/orbit-3d-entry.md +301 -0
- package/.agents/skills/hyperframes-animation/rules/physics-press-reaction.md +350 -0
- package/.agents/skills/hyperframes-animation/rules/press-release-spring.md +296 -0
- package/.agents/skills/hyperframes-animation/rules/reactive-displacement.md +277 -0
- package/.agents/skills/hyperframes-animation/rules/scale-swap-transition.md +298 -0
- package/.agents/skills/hyperframes-animation/rules/sine-wave-loop.md +278 -0
- package/.agents/skills/hyperframes-animation/rules/split-tilt-cards.md +277 -0
- package/.agents/skills/hyperframes-animation/rules/spring-pop-entrance.md +273 -0
- package/.agents/skills/hyperframes-animation/rules/stat-bars-and-fills.md +156 -0
- package/.agents/skills/hyperframes-animation/rules/svg-icon-enrichment.md +329 -0
- package/.agents/skills/hyperframes-animation/rules/svg-path-draw.md +274 -0
- package/.agents/skills/hyperframes-animation/rules/vertical-spring-ticker.md +239 -0
- package/.agents/skills/hyperframes-animation/rules/viewport-change.md +349 -0
- package/.agents/skills/hyperframes-animation/rules-index.md +86 -0
- package/.agents/skills/hyperframes-animation/scripts/animation-map.mjs +606 -0
- package/.agents/skills/hyperframes-animation/scripts/package-loader.mjs +288 -0
- package/.agents/skills/hyperframes-animation/scripts/package-loader.test.mjs +62 -0
- package/.agents/skills/hyperframes-animation/techniques.md +507 -0
- package/.agents/skills/hyperframes-animation/transitions/TRANSITION-REGISTRY.md +167 -0
- package/.agents/skills/hyperframes-animation/transitions/catalog.md +127 -0
- package/.agents/skills/hyperframes-animation/transitions/css-3d.md +12 -0
- package/.agents/skills/hyperframes-animation/transitions/css-blur.md +51 -0
- package/.agents/skills/hyperframes-animation/transitions/css-cover.md +43 -0
- package/.agents/skills/hyperframes-animation/transitions/css-destruction.md +95 -0
- package/.agents/skills/hyperframes-animation/transitions/css-dissolve.md +66 -0
- package/.agents/skills/hyperframes-animation/transitions/css-distortion.md +45 -0
- package/.agents/skills/hyperframes-animation/transitions/css-grid.md +10 -0
- package/.agents/skills/hyperframes-animation/transitions/css-light.md +49 -0
- package/.agents/skills/hyperframes-animation/transitions/css-mechanical.md +30 -0
- package/.agents/skills/hyperframes-animation/transitions/css-other.md +25 -0
- package/.agents/skills/hyperframes-animation/transitions/css-push.md +41 -0
- package/.agents/skills/hyperframes-animation/transitions/css-radial.md +37 -0
- package/.agents/skills/hyperframes-animation/transitions/css-scale.md +24 -0
- package/.agents/skills/hyperframes-animation/transitions/overview.md +153 -0
- package/.agents/skills/hyperframes-cli/SKILL.md +113 -0
- package/.agents/skills/hyperframes-cli/references/doctor-browser.md +45 -0
- package/.agents/skills/hyperframes-cli/references/init-and-scaffold.md +55 -0
- package/.agents/skills/hyperframes-cli/references/lambda.md +132 -0
- package/.agents/skills/hyperframes-cli/references/lint-validate-inspect.md +121 -0
- package/.agents/skills/hyperframes-cli/references/preview-render.md +149 -0
- package/.agents/skills/hyperframes-cli/references/upgrade-info-misc.md +75 -0
- package/.agents/skills/hyperframes-core/SKILL.md +78 -0
- package/.agents/skills/hyperframes-core/references/composition-patterns.md +263 -0
- package/.agents/skills/hyperframes-core/references/data-attributes.md +70 -0
- package/.agents/skills/hyperframes-core/references/determinism-rules.md +68 -0
- package/.agents/skills/hyperframes-core/references/full-screen-motion.md +62 -0
- package/.agents/skills/hyperframes-core/references/minimal-composition.md +66 -0
- package/.agents/skills/hyperframes-core/references/script-format.md +49 -0
- package/.agents/skills/hyperframes-core/references/storyboard-format.md +95 -0
- package/.agents/skills/hyperframes-core/references/sub-compositions.md +237 -0
- package/.agents/skills/hyperframes-core/references/subagent-dispatch.md +41 -0
- package/.agents/skills/hyperframes-core/references/tailwind.md +125 -0
- package/.agents/skills/hyperframes-core/references/tracks-and-clips.md +76 -0
- package/.agents/skills/hyperframes-core/references/variables-and-media.md +90 -0
- package/.agents/skills/hyperframes-creative/SKILL.md +70 -0
- package/.agents/skills/hyperframes-creative/frame-presets/biennale-yellow/FRAME.md +289 -0
- package/.agents/skills/hyperframes-creative/frame-presets/biennale-yellow/caption-skin.html +221 -0
- package/.agents/skills/hyperframes-creative/frame-presets/biennale-yellow/frame-showcase.html +1214 -0
- package/.agents/skills/hyperframes-creative/frame-presets/blockframe/FRAME.md +275 -0
- package/.agents/skills/hyperframes-creative/frame-presets/blockframe/caption-skin.html +224 -0
- package/.agents/skills/hyperframes-creative/frame-presets/blockframe/frame-showcase.html +1347 -0
- package/.agents/skills/hyperframes-creative/frame-presets/blue-professional/FRAME.md +307 -0
- package/.agents/skills/hyperframes-creative/frame-presets/blue-professional/caption-skin.html +223 -0
- package/.agents/skills/hyperframes-creative/frame-presets/blue-professional/frame-showcase.html +1372 -0
- package/.agents/skills/hyperframes-creative/frame-presets/bold-poster/FRAME.md +275 -0
- package/.agents/skills/hyperframes-creative/frame-presets/bold-poster/caption-skin.html +230 -0
- package/.agents/skills/hyperframes-creative/frame-presets/bold-poster/frame-showcase.html +1140 -0
- package/.agents/skills/hyperframes-creative/frame-presets/broadside/FRAME.md +284 -0
- package/.agents/skills/hyperframes-creative/frame-presets/broadside/caption-skin.html +225 -0
- package/.agents/skills/hyperframes-creative/frame-presets/broadside/frame-showcase.html +1166 -0
- package/.agents/skills/hyperframes-creative/frame-presets/capsule/FRAME.md +284 -0
- package/.agents/skills/hyperframes-creative/frame-presets/capsule/caption-skin.html +224 -0
- package/.agents/skills/hyperframes-creative/frame-presets/capsule/frame-showcase.html +1465 -0
- package/.agents/skills/hyperframes-creative/frame-presets/cartesian/FRAME.md +278 -0
- package/.agents/skills/hyperframes-creative/frame-presets/cartesian/caption-skin.html +222 -0
- package/.agents/skills/hyperframes-creative/frame-presets/cartesian/frame-showcase.html +1263 -0
- package/.agents/skills/hyperframes-creative/frame-presets/claude/FRAME.md +277 -0
- package/.agents/skills/hyperframes-creative/frame-presets/claude/caption-skin.html +224 -0
- package/.agents/skills/hyperframes-creative/frame-presets/claude/frame-showcase.html +1439 -0
- package/.agents/skills/hyperframes-creative/frame-presets/cobalt-grid/FRAME.md +265 -0
- package/.agents/skills/hyperframes-creative/frame-presets/cobalt-grid/caption-skin.html +238 -0
- package/.agents/skills/hyperframes-creative/frame-presets/cobalt-grid/frame-showcase.html +1468 -0
- package/.agents/skills/hyperframes-creative/frame-presets/coral/FRAME.md +314 -0
- package/.agents/skills/hyperframes-creative/frame-presets/coral/caption-skin.html +226 -0
- package/.agents/skills/hyperframes-creative/frame-presets/coral/frame-showcase.html +1268 -0
- package/.agents/skills/hyperframes-creative/frame-presets/creative-mode/FRAME.md +333 -0
- package/.agents/skills/hyperframes-creative/frame-presets/creative-mode/caption-skin.html +227 -0
- package/.agents/skills/hyperframes-creative/frame-presets/creative-mode/frame-showcase.html +1330 -0
- package/.agents/skills/hyperframes-creative/frame-presets/daisy-days/FRAME.md +274 -0
- package/.agents/skills/hyperframes-creative/frame-presets/daisy-days/caption-skin.html +230 -0
- package/.agents/skills/hyperframes-creative/frame-presets/daisy-days/frame-showcase.html +1444 -0
- package/.agents/skills/hyperframes-creative/frame-presets/editorial-forest/FRAME.md +265 -0
- package/.agents/skills/hyperframes-creative/frame-presets/editorial-forest/caption-skin.html +223 -0
- package/.agents/skills/hyperframes-creative/frame-presets/editorial-forest/frame-showcase.html +1273 -0
- package/.agents/skills/hyperframes-creative/palettes/bold-energetic.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/clean-corporate.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/dark-premium.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/jewel-rich.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/monochrome.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/nature-earth.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/neon-electric.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/pastel-soft.md +14 -0
- package/.agents/skills/hyperframes-creative/palettes/warm-editorial.md +14 -0
- package/.agents/skills/hyperframes-creative/references/audio-reactive.md +76 -0
- package/.agents/skills/hyperframes-creative/references/beat-direction.md +164 -0
- package/.agents/skills/hyperframes-creative/references/composition-patterns.md +199 -0
- package/.agents/skills/hyperframes-creative/references/data-in-motion.md +19 -0
- package/.agents/skills/hyperframes-creative/references/design-adherence.md +19 -0
- package/.agents/skills/hyperframes-creative/references/design-picker.md +123 -0
- package/.agents/skills/hyperframes-creative/references/design-spec.md +55 -0
- package/.agents/skills/hyperframes-creative/references/house-style.md +73 -0
- package/.agents/skills/hyperframes-creative/references/motion-principles.md +150 -0
- package/.agents/skills/hyperframes-creative/references/narration.md +92 -0
- package/.agents/skills/hyperframes-creative/references/prompt-expansion.md +68 -0
- package/.agents/skills/hyperframes-creative/references/typography.md +218 -0
- package/.agents/skills/hyperframes-creative/references/video-composition.md +63 -0
- package/.agents/skills/hyperframes-creative/references/visual-styles.md +457 -0
- package/.agents/skills/hyperframes-creative/scripts/contrast-report.mjs +353 -0
- package/.agents/skills/hyperframes-creative/scripts/extract-audio-data.py +188 -0
- package/.agents/skills/hyperframes-creative/scripts/package-loader.mjs +288 -0
- package/.agents/skills/hyperframes-creative/scripts/package-loader.test.mjs +62 -0
- package/.agents/skills/hyperframes-creative/templates/design-picker.html +1432 -0
- package/.agents/skills/hyperframes-keyframes/SKILL.md +237 -0
- package/.agents/skills/hyperframes-keyframes/agents/openai.yaml +4 -0
- package/.agents/skills/hyperframes-keyframes/references/keyframe-patterns.md +106 -0
- package/.agents/skills/motion-graphics/SKILL.md +172 -0
- package/.agents/skills/motion-graphics/agents/builder.md +40 -0
- package/.agents/skills/motion-graphics/agents/director.md +53 -0
- package/.agents/skills/motion-graphics/agents/finalize.md +17 -0
- package/.agents/skills/motion-graphics/catalog-map.md +40 -0
- package/.agents/skills/motion-graphics/categories/asset-fusion/module.md +37 -0
- package/.agents/skills/motion-graphics/categories/charts/module.md +21 -0
- package/.agents/skills/motion-graphics/categories/kinetic-type/module.md +19 -0
- package/.agents/skills/motion-graphics/categories/logo-reveal/module.md +17 -0
- package/.agents/skills/motion-graphics/categories/lower-thirds/module.md +16 -0
- package/.agents/skills/motion-graphics/categories/maps/bake-basemap.mjs +273 -0
- package/.agents/skills/motion-graphics/categories/maps/module.md +61 -0
- package/.agents/skills/motion-graphics/categories/news/module.md +56 -0
- package/.agents/skills/motion-graphics/categories/stat/module.md +21 -0
- package/.agents/skills/motion-graphics/categories/tweet/module.md +16 -0
- package/.agents/skills/motion-graphics/categories/webpage/module.md +21 -0
- package/.agents/skills/motion-graphics/grounding/PROTOCOL.md +64 -0
- package/.agents/skills/motion-graphics/grounding/locate.mjs +227 -0
- package/.agents/skills/motion-graphics/phases/source/guide.md +21 -0
- package/.agents/skills/motion-graphics/references/builder-contract.md +38 -0
- package/.agents/skills/motion-graphics/references/motion-vocabulary.md +43 -0
- package/.agents/skills/motion-graphics/references/shot-plan-ir.md +54 -0
- package/.agents/skills/motion-graphics/samples/asset-fusion/_ref-circle-highlight.html +306 -0
- package/.agents/skills/music/SKILL.md +416 -0
- package/.agents/skills/music/references/api_reference.md +519 -0
- package/.agents/skills/music/references/installation.md +65 -0
- package/.agents/skills/product-launch-video/SKILL.md +208 -0
- package/.agents/skills/product-launch-video/references/cut-catalog.md +220 -0
- package/.agents/skills/product-launch-video/references/motion-language.md +156 -0
- package/.agents/skills/product-launch-video/references/story-design.md +373 -0
- package/.agents/skills/product-launch-video/references/visual-design.md +126 -0
- package/.agents/skills/product-launch-video/scripts/assemble-index.mjs +570 -0
- package/.agents/skills/product-launch-video/scripts/audio.mjs +260 -0
- package/.agents/skills/product-launch-video/scripts/build-frame.mjs +536 -0
- package/.agents/skills/product-launch-video/scripts/captions.mjs +508 -0
- package/.agents/skills/product-launch-video/scripts/lib/assets.mjs +55 -0
- package/.agents/skills/product-launch-video/scripts/lib/dimensions.mjs +45 -0
- package/.agents/skills/product-launch-video/scripts/lib/pad-frame-duration.mjs +36 -0
- package/.agents/skills/product-launch-video/scripts/lib/pad-frame-duration.test.mjs +76 -0
- package/.agents/skills/product-launch-video/scripts/lib/storyboard.mjs +249 -0
- package/.agents/skills/product-launch-video/scripts/lib/tokens.mjs +204 -0
- package/.agents/skills/product-launch-video/scripts/lib/transition-registry.mjs +38 -0
- package/.agents/skills/product-launch-video/scripts/lib/transitions.json +71 -0
- package/.agents/skills/product-launch-video/scripts/stage-assets.mjs +39 -0
- package/.agents/skills/product-launch-video/scripts/transitions.mjs +327 -0
- package/.agents/skills/product-launch-video/sub-agents/frame-worker.md +75 -0
- package/.agents/skills/slideshow/SKILL.md +550 -0
- package/.agents/skills/slideshow/references/standalone-harness.md +1020 -0
- package/.agents/skills/talking-head-recut/NOTICE.md +39 -0
- package/.agents/skills/talking-head-recut/SKILL.md +1195 -0
- package/.agents/skills/talking-head-recut/assets/vendor/gsap.min.js +10 -0
- package/.agents/skills/talking-head-recut/references/DESIGN_INDEX.md +145 -0
- package/.agents/skills/talking-head-recut/references/frames/clean.html +92 -0
- package/.agents/skills/talking-head-recut/references/frames/hairline.html +171 -0
- package/.agents/skills/talking-head-recut/references/frames/polaroid.html +131 -0
- package/.agents/skills/talking-head-recut/references/layouts/overlay.html +164 -0
- package/.agents/skills/talking-head-recut/references/layouts/pip.html +143 -0
- package/.agents/skills/talking-head-recut/references/layouts/split.html +121 -0
- package/.agents/skills/talking-head-recut/references/layouts/stack.html +109 -0
- package/.agents/skills/talking-head-recut/references/styles/academic.html +172 -0
- package/.agents/skills/talking-head-recut/references/styles/audit.html +170 -0
- package/.agents/skills/talking-head-recut/references/styles/editorial.html +189 -0
- package/.agents/skills/talking-head-recut/references/styles/geom.html +181 -0
- package/.agents/skills/talking-head-recut/references/styles/minimal.html +130 -0
- package/.agents/skills/talking-head-recut/references/styles/spotlight.html +142 -0
- package/.agents/skills/talking-head-recut/references/styles/swiss.html +188 -0
- package/.agents/skills/talking-head-recut/references/styles/terminal.html +196 -0
- package/.agents/skills/talking-head-recut/references/styles/whiteboard.html +170 -0
- package/.agents/skills/talking-head-recut/references/styles/xhs.html +206 -0
- package/.agents/skills/text-to-speech/SKILL.md +226 -0
- package/.agents/skills/text-to-speech/references/installation.md +90 -0
- package/.agents/skills/text-to-speech/references/streaming.md +307 -0
- package/.agents/skills/text-to-speech/references/voice-settings.md +115 -0
- package/.agents/skills/vidfarm-director/SKILL.md +179 -0
- package/.agents/skills/vidfarm-director/recipes/find-and-fork-template.md +16 -0
- package/.agents/skills/vidfarm-director/recipes/local-edit-render-approve.md +13 -0
- package/.agents/skills/vidfarm-director/recipes/onboard-a-new-director.md +13 -0
- package/.agents/skills/vidfarm-director/recipes/retheme-template.md +17 -0
- package/.agents/skills/vidfarm-director/references/assets-and-sourcing.md +117 -0
- package/.agents/skills/vidfarm-director/references/automation-and-local-dev.md +276 -0
- package/.agents/skills/vidfarm-director/references/core-workflows.md +301 -0
- package/.agents/skills/vidfarm-director/references/editor-workflows.md +367 -0
- package/.agents/skills/vidfarm-director/references/onboarding.md +28 -0
- package/.agents/skills/vidfarm-director/references/primitives.md +307 -0
- package/.agents/skills/vidfarm-director/references/rest-api.md +84 -0
- package/.agents/skills/vidfarm-media/SKILL.md +158 -0
- package/.agents/skills/vidfarm-media/references/tts.md +111 -0
- package/.agents/skills/vidfarm-media/scripts/audio.mjs +628 -0
- package/.agents/skills/vidfarm-media/scripts/wait-bgm.mjs +31 -0
- package/.agents/skills/website-to-video/SKILL.md +145 -0
- package/.agents/skills/website-to-video/assets/sfx/CREDITS.md +35 -0
- package/.agents/skills/website-to-video/assets/sfx/manifest.json +97 -0
- package/.agents/skills/website-to-video/references/beat-builder-guide.md +263 -0
- package/.agents/skills/website-to-video/references/capabilities.md +713 -0
- package/.agents/skills/website-to-video/references/step-0-capture.md +55 -0
- package/.agents/skills/website-to-video/references/step-1-design.md +333 -0
- package/.agents/skills/website-to-video/references/step-2-brief.md +178 -0
- package/.agents/skills/website-to-video/references/step-3-storyboard.md +572 -0
- package/.agents/skills/website-to-video/references/step-4-vo.md +225 -0
- package/.agents/skills/website-to-video/references/step-5-build.md +483 -0
- package/.agents/skills/website-to-video/references/step-6-validate.md +341 -0
- package/.agents/skills/website-to-video/scripts/w2h-verify.mjs +759 -0
- package/README.md +97 -0
- package/SKILL.director.md +1644 -0
- package/SKILL.md +83 -0
- package/demo/README.md +28 -0
- package/demo/dist/app.css +1 -0
- package/demo/dist/app.js +968 -0
- package/demo/dist/chunks/chunk-3OT2D42H.js +1 -0
- package/demo/dist/chunks/chunk-DXB73IDG.js +1 -0
- package/demo/dist/chunks/domEditingLayers-AT7G6F4L-ZTHJHB7R.js +1 -0
- package/demo/dist/chunks/hyperframes-player-7HKH6NSO.js +459 -0
- package/demo/dist/chunks/lib-XAQ37YOE.js +1 -0
- package/demo/dist/chunks/src-TJ2QYA4U.js +207 -0
- package/demo/dist/favicon.ico +0 -0
- package/demo/dist/icons/timeline/audio.svg +7 -0
- package/demo/dist/icons/timeline/captions.svg +5 -0
- package/demo/dist/icons/timeline/composition.svg +12 -0
- package/demo/dist/icons/timeline/image.svg +18 -0
- package/demo/dist/icons/timeline/music.svg +10 -0
- package/demo/dist/icons/timeline/text.svg +3 -0
- package/demo/dist/index.html +16 -0
- package/dist/src/cli.js +7258 -0
- package/dist/src/devcli/auth-store.js +67 -0
- package/dist/src/devcli/captions.js +310 -0
- package/dist/src/devcli/clip-store.js +368 -0
- package/dist/src/devcli/clips.js +1138 -0
- package/dist/src/devcli/composition-edit.js +1292 -0
- package/dist/src/devcli/cost-mode.js +149 -0
- package/dist/src/devcli/doctor.js +192 -0
- package/dist/src/devcli/hyperframes-cli.js +118 -0
- package/dist/src/devcli/local-backend.js +167 -0
- package/dist/src/devcli/local-frontend-server.js +681 -0
- package/dist/src/devcli/local-render.js +136 -0
- package/dist/src/devcli/skills.js +476 -0
- package/dist/src/devcli/speech.js +178 -0
- package/dist/src/devcli/stills.js +249 -0
- package/dist/src/devcli/telemetry.js +236 -0
- package/dist/src/devcli/timeline-edit.js +490 -0
- package/dist/src/devcli/transitions.js +205 -0
- package/dist/src/hyperframes/composition.js +780 -0
- package/dist/src/lib/crypto.js +45 -0
- package/dist/src/lib/dev-log.js +54 -0
- package/dist/src/lib/display-name.js +11 -0
- package/dist/src/lib/ids.js +24 -0
- package/dist/src/lib/images.js +19 -0
- package/dist/src/lib/json.js +15 -0
- package/dist/src/lib/package-root.js +47 -0
- package/dist/src/lib/render-media-prep.js +293 -0
- package/dist/src/lib/template-paths.js +28 -0
- package/dist/src/lib/time.js +7 -0
- package/dist/src/lib/url-clean.js +85 -0
- package/dist/src/services/captions.js +123 -0
- package/dist/src/services/clip-curation/cost.js +116 -0
- package/dist/src/services/clip-curation/ffmpeg.js +352 -0
- package/dist/src/services/clip-curation/gemini.js +418 -0
- package/dist/src/services/clip-curation/hunt.js +470 -0
- package/dist/src/services/clip-curation/index.js +19 -0
- package/dist/src/services/clip-curation/local-agent.js +248 -0
- package/dist/src/services/clip-curation/media-select.js +152 -0
- package/dist/src/services/clip-curation/presets.js +20 -0
- package/dist/src/services/clip-curation/presets.v1.json +59 -0
- package/dist/src/services/clip-curation/query.js +167 -0
- package/dist/src/services/clip-curation/refine.js +165 -0
- package/dist/src/services/clip-curation/scan.js +189 -0
- package/dist/src/services/clip-curation/source-naming.js +131 -0
- package/dist/src/services/clip-curation/taxonomy.js +73 -0
- package/dist/src/services/clip-curation/taxonomy.v1.json +102 -0
- package/dist/src/services/clip-curation/types.js +7 -0
- package/dist/src/services/composition-lint.js +199 -0
- package/dist/src/services/provider-errors.js +128 -0
- package/dist/src/services/speech.js +629 -0
- package/package.json +154 -0
- package/public/assets/discover-client-app.js +1 -0
- package/public/assets/favicon.ico +0 -0
- package/public/assets/file-directory-app.js +89 -0
- package/public/assets/homepage-app.js +54 -0
- package/public/assets/homepage-client-app.js +80 -0
- package/public/assets/landing-page-client-app.js +87 -0
- package/public/assets/logo-vidfarm.png +0 -0
- package/public/assets/page-runtime-client-app.js +94 -0
- package/public/assets/placeholders/scene-placeholder.png +0 -0
- package/public/serve-shells/editor.html +3146 -0
- package/public/serve-shells/library-files.html +3450 -0
- package/public/serve-shells/library-raws.html +4404 -0
- package/public/serve-shells/tools-clipper.html +3991 -0
- package/public/serve-shells/tools-image.html +5584 -0
- 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,"&").replace(/</g,"<").replace(/>/g,">")}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,""")}"`).join(""),o=Bt(e),i=o?` style="${o.replace(/"/g,""")}"`:"";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();
|