@ignix-social/editor 0.1.0
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/LICENSE +190 -0
- package/NOTICE +54 -0
- package/README.md +23 -0
- package/bin/ignix-editor.mjs +8 -0
- package/package.json +53 -0
- package/patches/index.mjs +53 -0
- package/scripts/build-ffmpeg-macos.sh +35 -0
- package/scripts/build-whisper-macos.sh +21 -0
- package/scripts/vendor.mjs +41 -0
- package/skills/ignix-editor/SKILL.md +132 -0
- package/src/audio.mjs +31 -0
- package/src/binaries.json +46 -0
- package/src/binaries.mjs +83 -0
- package/src/cli.mjs +254 -0
- package/src/prepare.mjs +74 -0
- package/src/runtime/ignix-frame.js +92 -0
- package/src/transcribe.mjs +71 -0
- package/src/validate.mjs +71 -0
- package/templates/blank/index.html +41 -0
- package/vendor/hyperframes/README.md +181 -0
- package/vendor/hyperframes/UPSTREAM.json +12 -0
- package/vendor/hyperframes/bin/hyperframes-localize-fonts.mjs +12 -0
- package/vendor/hyperframes/bin/hyperframes.mjs +11 -0
- package/vendor/hyperframes/dist/add-LR3ZR2A5.js +79 -0
- package/vendor/hyperframes/dist/agentPromptGenerator-VIIPZCJ3.js +143 -0
- package/vendor/hyperframes/dist/animatedGifPrep-P2T6YM7Z.js +34 -0
- package/vendor/hyperframes/dist/asset-BE2DOV72.js +26 -0
- package/vendor/hyperframes/dist/assetCataloger-VBLPHX24.js +340 -0
- package/vendor/hyperframes/dist/auth-RCQB2ZT7.js +60 -0
- package/vendor/hyperframes/dist/autoUpdate-RJAX3DAZ.js +268 -0
- package/vendor/hyperframes/dist/backgroundChecks-H2LCUIMJ.js +61 -0
- package/vendor/hyperframes/dist/backgroundChecksWorker.js +26 -0
- package/vendor/hyperframes/dist/batchRender-FT7AP7XH.js +355 -0
- package/vendor/hyperframes/dist/beat-analyzer.global.js +338 -0
- package/vendor/hyperframes/dist/beats-Y2EOP72P.js +309 -0
- package/vendor/hyperframes/dist/benchmark-MZ7GY3JW.js +231 -0
- package/vendor/hyperframes/dist/browser-HUTAMRQE.js +237 -0
- package/vendor/hyperframes/dist/bundleWithLocalizedFonts-5QOPOB5D.js +52 -0
- package/vendor/hyperframes/dist/capture-RLZA6EMR.js +4079 -0
- package/vendor/hyperframes/dist/capture-SZZ4IYJK.js +290 -0
- package/vendor/hyperframes/dist/captureFile-LYOJOUIE.js +15 -0
- package/vendor/hyperframes/dist/captureTimeout-PA4FYWT5.js +27 -0
- package/vendor/hyperframes/dist/catalog-KYU55EWR.js +1001 -0
- package/vendor/hyperframes/dist/check-TCG4PXLR.js +1697 -0
- package/vendor/hyperframes/dist/checkBrowser-RPMO4OW5.js +1032 -0
- package/vendor/hyperframes/dist/chunk-2EAXUCCE.js +88 -0
- package/vendor/hyperframes/dist/chunk-2EGFTPWD.js +1077 -0
- package/vendor/hyperframes/dist/chunk-2PSPARWP.js +6058 -0
- package/vendor/hyperframes/dist/chunk-2YN64IN5.js +5747 -0
- package/vendor/hyperframes/dist/chunk-3GXQPCJC.js +682 -0
- package/vendor/hyperframes/dist/chunk-3ZP5DXE7.js +15 -0
- package/vendor/hyperframes/dist/chunk-4NWOGZZS.js +1990 -0
- package/vendor/hyperframes/dist/chunk-4PFZPP2N.js +587 -0
- package/vendor/hyperframes/dist/chunk-4THIAPBL.js +128 -0
- package/vendor/hyperframes/dist/chunk-4YYJOFKS.js +28 -0
- package/vendor/hyperframes/dist/chunk-54HJ63Q2.js +29 -0
- package/vendor/hyperframes/dist/chunk-5ETJX6WM.js +89 -0
- package/vendor/hyperframes/dist/chunk-5IAKAQA7.js +389 -0
- package/vendor/hyperframes/dist/chunk-5Z63TBTX.js +37 -0
- package/vendor/hyperframes/dist/chunk-6BEFEWFB.js +25 -0
- package/vendor/hyperframes/dist/chunk-6CSYCFQV.js +68 -0
- package/vendor/hyperframes/dist/chunk-6CTIGJY7.js +154 -0
- package/vendor/hyperframes/dist/chunk-7HG4BFIN.js +93 -0
- package/vendor/hyperframes/dist/chunk-7JZ4FXP2.js +118 -0
- package/vendor/hyperframes/dist/chunk-A2Z4Z4VL.js +2961 -0
- package/vendor/hyperframes/dist/chunk-AMKC3AXA.js +25 -0
- package/vendor/hyperframes/dist/chunk-AVUUN2XD.js +4847 -0
- package/vendor/hyperframes/dist/chunk-AWDFDFI3.js +46 -0
- package/vendor/hyperframes/dist/chunk-AWNBM3MZ.js +94 -0
- package/vendor/hyperframes/dist/chunk-BXCMXMJQ.js +73 -0
- package/vendor/hyperframes/dist/chunk-BZ56MTDX.js +6 -0
- package/vendor/hyperframes/dist/chunk-CFKU7HTK.js +171 -0
- package/vendor/hyperframes/dist/chunk-CWPVM2QV.js +308 -0
- package/vendor/hyperframes/dist/chunk-DPVXBVLL.js +31292 -0
- package/vendor/hyperframes/dist/chunk-DQBY7FRR.js +397 -0
- package/vendor/hyperframes/dist/chunk-E6RPWJVC.js +213 -0
- package/vendor/hyperframes/dist/chunk-EISRN4E6.js +294 -0
- package/vendor/hyperframes/dist/chunk-EOVYQ3IG.js +143 -0
- package/vendor/hyperframes/dist/chunk-F3WZGU7C.js +479 -0
- package/vendor/hyperframes/dist/chunk-FCSIGXXP.js +366 -0
- package/vendor/hyperframes/dist/chunk-FI4I7CME.js +56 -0
- package/vendor/hyperframes/dist/chunk-FLWXXDNS.js +15 -0
- package/vendor/hyperframes/dist/chunk-GK4AIFIH.js +11171 -0
- package/vendor/hyperframes/dist/chunk-GMECXFAN.js +57 -0
- package/vendor/hyperframes/dist/chunk-GULOKZLI.js +155 -0
- package/vendor/hyperframes/dist/chunk-H4YZZ2VQ.js +68 -0
- package/vendor/hyperframes/dist/chunk-H6QMKUYA.js +477 -0
- package/vendor/hyperframes/dist/chunk-HBBJFK6I.js +273 -0
- package/vendor/hyperframes/dist/chunk-HRUGC23L.js +212 -0
- package/vendor/hyperframes/dist/chunk-HVW7ABXD.js +19 -0
- package/vendor/hyperframes/dist/chunk-HW6OYASV.js +344 -0
- package/vendor/hyperframes/dist/chunk-HWKCIWQT.js +3578 -0
- package/vendor/hyperframes/dist/chunk-I465DBM6.js +1214 -0
- package/vendor/hyperframes/dist/chunk-IGLEPPTN.js +24 -0
- package/vendor/hyperframes/dist/chunk-IGNAAHS3.js +433 -0
- package/vendor/hyperframes/dist/chunk-IHFUKJOR.js +85 -0
- package/vendor/hyperframes/dist/chunk-IQ3OUQ5Z.js +213 -0
- package/vendor/hyperframes/dist/chunk-ISN5GRYI.js +20 -0
- package/vendor/hyperframes/dist/chunk-IUZFXWSV.js +446 -0
- package/vendor/hyperframes/dist/chunk-JH556Q42.js +647 -0
- package/vendor/hyperframes/dist/chunk-JTHMTOMQ.js +601 -0
- package/vendor/hyperframes/dist/chunk-K2EQN4VU.js +405 -0
- package/vendor/hyperframes/dist/chunk-K2FTXJYH.js +16044 -0
- package/vendor/hyperframes/dist/chunk-K4WIOZFP.js +32 -0
- package/vendor/hyperframes/dist/chunk-K4WKGXRC.js +18 -0
- package/vendor/hyperframes/dist/chunk-KBJUXVOJ.js +172 -0
- package/vendor/hyperframes/dist/chunk-KC5XXX3X.js +590 -0
- package/vendor/hyperframes/dist/chunk-KNU5COPB.js +29 -0
- package/vendor/hyperframes/dist/chunk-KZI44OPA.js +185 -0
- package/vendor/hyperframes/dist/chunk-L3YOGIPG.js +48 -0
- package/vendor/hyperframes/dist/chunk-LAOCA3MQ.js +189 -0
- package/vendor/hyperframes/dist/chunk-LCSMOLGX.js +312 -0
- package/vendor/hyperframes/dist/chunk-LFGJWOVA.js +61 -0
- package/vendor/hyperframes/dist/chunk-LHSR3M4M.js +498 -0
- package/vendor/hyperframes/dist/chunk-LYNI3FOL.js +123 -0
- package/vendor/hyperframes/dist/chunk-M2WBOQ2Q.js +54 -0
- package/vendor/hyperframes/dist/chunk-MRF4AMKD.js +104 -0
- package/vendor/hyperframes/dist/chunk-MWB3ZIFM.js +852 -0
- package/vendor/hyperframes/dist/chunk-NGKM64BP.js +39 -0
- package/vendor/hyperframes/dist/chunk-NXMYHJAL.js +43 -0
- package/vendor/hyperframes/dist/chunk-OAF4XJOW.js +192 -0
- package/vendor/hyperframes/dist/chunk-OFQWTKPW.js +117 -0
- package/vendor/hyperframes/dist/chunk-P6LJ4Y32.js +4662 -0
- package/vendor/hyperframes/dist/chunk-PBN6GBJE.js +108 -0
- package/vendor/hyperframes/dist/chunk-PDAMK4Q5.js +28 -0
- package/vendor/hyperframes/dist/chunk-PFCFR3KZ.js +20 -0
- package/vendor/hyperframes/dist/chunk-PJ3HDUCY.js +108 -0
- package/vendor/hyperframes/dist/chunk-PMRBLBUP.js +152 -0
- package/vendor/hyperframes/dist/chunk-PPQUYWTW.js +240 -0
- package/vendor/hyperframes/dist/chunk-Q5X2B5WT.js +29 -0
- package/vendor/hyperframes/dist/chunk-Q7IU7MOR.js +351 -0
- package/vendor/hyperframes/dist/chunk-QC4FJVLM.js +371 -0
- package/vendor/hyperframes/dist/chunk-QNYYOUU3.js +1318 -0
- package/vendor/hyperframes/dist/chunk-RDNNAKEP.js +161 -0
- package/vendor/hyperframes/dist/chunk-RMHUQGRK.js +657 -0
- package/vendor/hyperframes/dist/chunk-RQVDTPGD.js +6 -0
- package/vendor/hyperframes/dist/chunk-RVCWIIZ7.js +68 -0
- package/vendor/hyperframes/dist/chunk-S3D6GE5W.js +72 -0
- package/vendor/hyperframes/dist/chunk-S3S4TGEH.js +424 -0
- package/vendor/hyperframes/dist/chunk-S7NPLFWV.js +11395 -0
- package/vendor/hyperframes/dist/chunk-SHB5VDMH.js +51 -0
- package/vendor/hyperframes/dist/chunk-TCLGPL65.js +860 -0
- package/vendor/hyperframes/dist/chunk-THXFSPLV.js +40 -0
- package/vendor/hyperframes/dist/chunk-TJSTGSAW.js +354 -0
- package/vendor/hyperframes/dist/chunk-TQFG7HTI.js +1024 -0
- package/vendor/hyperframes/dist/chunk-TVCRUG2S.js +265 -0
- package/vendor/hyperframes/dist/chunk-TWWSYAKJ.js +24 -0
- package/vendor/hyperframes/dist/chunk-U7CZBDMV.js +27 -0
- package/vendor/hyperframes/dist/chunk-UEZXMWG3.js +139 -0
- package/vendor/hyperframes/dist/chunk-UYEZTK4U.js +61 -0
- package/vendor/hyperframes/dist/chunk-VC76R6W2.js +27 -0
- package/vendor/hyperframes/dist/chunk-VFCKXTBB.js +159 -0
- package/vendor/hyperframes/dist/chunk-VWG7OQKU.js +22 -0
- package/vendor/hyperframes/dist/chunk-VXVRPIJA.js +105 -0
- package/vendor/hyperframes/dist/chunk-WBLXWOYK.js +15 -0
- package/vendor/hyperframes/dist/chunk-WERLJGIC.js +20 -0
- package/vendor/hyperframes/dist/chunk-WMQNIQDJ.js +2057 -0
- package/vendor/hyperframes/dist/chunk-WPHMNO44.js +4528 -0
- package/vendor/hyperframes/dist/chunk-X5HWXQPU.js +113 -0
- package/vendor/hyperframes/dist/chunk-X7MTZ4T2.js +6 -0
- package/vendor/hyperframes/dist/chunk-XH4DSOS5.js +59 -0
- package/vendor/hyperframes/dist/chunk-XS4EJSKU.js +23 -0
- package/vendor/hyperframes/dist/chunk-XT5P4QMO.js +181 -0
- package/vendor/hyperframes/dist/chunk-XT7X6QCP.js +6 -0
- package/vendor/hyperframes/dist/chunk-XUHOIDKG.js +6 -0
- package/vendor/hyperframes/dist/chunk-XUXGIA7H.js +485 -0
- package/vendor/hyperframes/dist/chunk-XZABUQTX.js +113 -0
- package/vendor/hyperframes/dist/chunk-Y6W4DVPS.js +356 -0
- package/vendor/hyperframes/dist/chunk-YEIFI443.js +44 -0
- package/vendor/hyperframes/dist/chunk-YQZNILVH.js +375 -0
- package/vendor/hyperframes/dist/chunk-Z27A7NUB.js +65 -0
- package/vendor/hyperframes/dist/chunk-Z6B37SNM.js +3081 -0
- package/vendor/hyperframes/dist/chunk-ZJUKFZ2P.js +10954 -0
- package/vendor/hyperframes/dist/chunk-ZKDMAOFU.js +32 -0
- package/vendor/hyperframes/dist/chunk-ZMXUQLI2.js +17219 -0
- package/vendor/hyperframes/dist/chunk-ZTZ7NCJT.js +58 -0
- package/vendor/hyperframes/dist/chunk-ZTZA4UWZ.js +108 -0
- package/vendor/hyperframes/dist/clean-W57E5YQ3.js +293 -0
- package/vendor/hyperframes/dist/cli.js +495 -0
- package/vendor/hyperframes/dist/cloud-FFTJGZ24.js +70 -0
- package/vendor/hyperframes/dist/cloudrun-AJUTHUEA.js +763 -0
- package/vendor/hyperframes/dist/colors-HKWSZCGK.js +15 -0
- package/vendor/hyperframes/dist/commands/contrast-audit.browser.js +459 -0
- package/vendor/hyperframes/dist/commands/layout-audit.browser.js +2102 -0
- package/vendor/hyperframes/dist/commands/motion-sample.browser.js +74 -0
- package/vendor/hyperframes/dist/commands/motion-signature.browser.js +374 -0
- package/vendor/hyperframes/dist/compare-AYCTT55F.js +421 -0
- package/vendor/hyperframes/dist/compiler-QO36EXLS.js +121 -0
- package/vendor/hyperframes/dist/component-VFFR2O7T.js +176 -0
- package/vendor/hyperframes/dist/compositions-QTVN3U2A.js +228 -0
- package/vendor/hyperframes/dist/contactSheet-27SRU7A4.js +22 -0
- package/vendor/hyperframes/dist/delete-ZAKYCB7I.js +114 -0
- package/vendor/hyperframes/dist/deploy-MX76RZ36.js +101 -0
- package/vendor/hyperframes/dist/destroy-H2TZBYHH.js +42 -0
- package/vendor/hyperframes/dist/deterministicFonts-HAEMV4TM.js +50 -0
- package/vendor/hyperframes/dist/dist-EWXJGN63.js +129 -0
- package/vendor/hyperframes/dist/dist-FNNGCKFS.js +29 -0
- package/vendor/hyperframes/dist/dist-S3PJNPXQ.js +392 -0
- package/vendor/hyperframes/dist/docker/Dockerfile.render +65 -0
- package/vendor/hyperframes/dist/docs/compositions.md +67 -0
- package/vendor/hyperframes/dist/docs/data-attributes.md +27 -0
- package/vendor/hyperframes/dist/docs/examples.md +19 -0
- package/vendor/hyperframes/dist/docs/gsap.md +26 -0
- package/vendor/hyperframes/dist/docs/rendering.md +35 -0
- package/vendor/hyperframes/dist/docs/troubleshooting.md +29 -0
- package/vendor/hyperframes/dist/docs-QAPJEGLS.js +131 -0
- package/vendor/hyperframes/dist/doctor-AI7C3FON.js +67 -0
- package/vendor/hyperframes/dist/dom-IROKGVJI.js +14 -0
- package/vendor/hyperframes/dist/dotEnv-AECLXQSO.js +14 -0
- package/vendor/hyperframes/dist/events-7LALYNKZ.js +92 -0
- package/vendor/hyperframes/dist/events-FQY3HGKZ.js +88 -0
- package/vendor/hyperframes/dist/feedback-WCMDMSTK.js +472 -0
- package/vendor/hyperframes/dist/ffmpeg-QIUFEFTY.js +35 -0
- package/vendor/hyperframes/dist/figma-64WY462P.js +63 -0
- package/vendor/hyperframes/dist/fontData.generated-NXAOI4GH.js +13 -0
- package/vendor/hyperframes/dist/fontLocalizeCli.js +132 -0
- package/vendor/hyperframes/dist/get-FPOMJMZB.js +103 -0
- package/vendor/hyperframes/dist/gpuPolicy-2ZUZE5D6.js +38 -0
- package/vendor/hyperframes/dist/grade-compare-E2CKPST4.js +647 -0
- package/vendor/hyperframes/dist/gsapParser-DIYYX6JT.js +2846 -0
- package/vendor/hyperframes/dist/gsapParserAcorn-E3GEIRZB.js +28 -0
- package/vendor/hyperframes/dist/help-YRQIDDML.js +197 -0
- package/vendor/hyperframes/dist/history-PP5NDRV3.js +571 -0
- package/vendor/hyperframes/dist/hyperframe-runtime.js +1081 -0
- package/vendor/hyperframes/dist/hyperframe.manifest.json +22 -0
- package/vendor/hyperframes/dist/hyperframe.runtime.iife.js +1081 -0
- package/vendor/hyperframes/dist/hyperframes-player.global.js +474 -0
- package/vendor/hyperframes/dist/hyperframes-slideshow.global.js +149 -0
- package/vendor/hyperframes/dist/info-SEX3B7JL.js +153 -0
- package/vendor/hyperframes/dist/init-U3AKHO5B.js +1147 -0
- package/vendor/hyperframes/dist/inspect-Q3K6EDEK.js +97 -0
- package/vendor/hyperframes/dist/installer-K6O5WF44.js +37 -0
- package/vendor/hyperframes/dist/keyframes-DC64JCI3.js +2602 -0
- package/vendor/hyperframes/dist/lambda-D7UMN4DJ.js +451 -0
- package/vendor/hyperframes/dist/layout-XSPPDHOO.js +86 -0
- package/vendor/hyperframes/dist/lib-TPG2ZMAX.js +128 -0
- package/vendor/hyperframes/dist/lint-7DQZE7L3.js +164 -0
- package/vendor/hyperframes/dist/lintProject-OHBBM3DJ.js +27 -0
- package/vendor/hyperframes/dist/list-4K5MVDQX.js +162 -0
- package/vendor/hyperframes/dist/login-NTX4OWXL.js +377 -0
- package/vendor/hyperframes/dist/logout-Q654A3SI.js +100 -0
- package/vendor/hyperframes/dist/manager-67P2XFXQ.js +34 -0
- package/vendor/hyperframes/dist/manager-CT3D67CG.js +38 -0
- package/vendor/hyperframes/dist/manager-GFN75DM4.js +30 -0
- package/vendor/hyperframes/dist/media-treatment-5FYAOPNL.js +972 -0
- package/vendor/hyperframes/dist/media-use-4XXGABIL.js +113 -0
- package/vendor/hyperframes/dist/models-C4E4IWJD.js +137 -0
- package/vendor/hyperframes/dist/motionShot-S4MIGMT5.js +614 -0
- package/vendor/hyperframes/dist/normalize-O76AC4HE.js +333 -0
- package/vendor/hyperframes/dist/normalize-audio-CSFTXLXD.js +276 -0
- package/vendor/hyperframes/dist/open-2ZD6BHZG.js +115 -0
- package/vendor/hyperframes/dist/pipeline-TNGWUZQC.js +54 -0
- package/vendor/hyperframes/dist/play-CTMUXX6E.js +349 -0
- package/vendor/hyperframes/dist/policies-FSDZVS2E.js +292 -0
- package/vendor/hyperframes/dist/preflight-SMNV6RW2.js +45 -0
- package/vendor/hyperframes/dist/present-WQVHV5CR.js +350 -0
- package/vendor/hyperframes/dist/preview-JOJXTH75.js +1820 -0
- package/vendor/hyperframes/dist/producer-ECLEN5RP.js +13 -0
- package/vendor/hyperframes/dist/progress-FBIEEB7Y.js +73 -0
- package/vendor/hyperframes/dist/projectConfig-HYJMJ5BY.js +56 -0
- package/vendor/hyperframes/dist/publication-HQ5Y3KBM.js +29 -0
- package/vendor/hyperframes/dist/publish-VHDYQASC.js +430 -0
- package/vendor/hyperframes/dist/refresh-K24ETHMA.js +53 -0
- package/vendor/hyperframes/dist/remove-background-W2YX2NVH.js +253 -0
- package/vendor/hyperframes/dist/render-AO5VX3YI.js +177 -0
- package/vendor/hyperframes/dist/render-LNO62LEL.js +2367 -0
- package/vendor/hyperframes/dist/render-TTQI7TGN.js +796 -0
- package/vendor/hyperframes/dist/render-batch-YH7CTWNY.js +284 -0
- package/vendor/hyperframes/dist/renderCancellation-JPIHE47X.js +35 -0
- package/vendor/hyperframes/dist/renderSetupWorker.js +79 -0
- package/vendor/hyperframes/dist/resolver-IZ647GBZ.js +38 -0
- package/vendor/hyperframes/dist/runtimeVersion.js +18 -0
- package/vendor/hyperframes/dist/screenshotCapture-ECBTLCU6.js +179 -0
- package/vendor/hyperframes/dist/shaderTransitionWorker.js +44 -0
- package/vendor/hyperframes/dist/sherpa-KKLNW6U2.js +314 -0
- package/vendor/hyperframes/dist/sherpaWorker.js +77 -0
- package/vendor/hyperframes/dist/sites-TNVKZS73.js +52 -0
- package/vendor/hyperframes/dist/skill-ZHVLH7KX.js +15 -0
- package/vendor/hyperframes/dist/skills/hyperframes/SKILL.md +152 -0
- package/vendor/hyperframes/dist/skills/hyperframes/references/brief-contract.md +108 -0
- package/vendor/hyperframes/dist/skills/hyperframes/references/brief-format.md +72 -0
- package/vendor/hyperframes/dist/skills/hyperframes/references/capability-menu.md +47 -0
- package/vendor/hyperframes/dist/skills/hyperframes/references/frame-worker-core.md +80 -0
- package/vendor/hyperframes/dist/skills/hyperframes/references/intent-interview.md +73 -0
- package/vendor/hyperframes/dist/skills/hyperframes/references/pitch-round.md +40 -0
- package/vendor/hyperframes/dist/skills/hyperframes/references/plugin-installation.md +43 -0
- package/vendor/hyperframes/dist/skills/hyperframes/references/production-loop.md +26 -0
- package/vendor/hyperframes/dist/skills/hyperframes/references/review-loop.md +37 -0
- package/vendor/hyperframes/dist/skills/hyperframes/references/route-briefs.md +11 -0
- package/vendor/hyperframes/dist/skills/hyperframes/references/routes/embedded-captions.md +11 -0
- package/vendor/hyperframes/dist/skills/hyperframes/references/routes/faceless-explainer.md +12 -0
- package/vendor/hyperframes/dist/skills/hyperframes/references/routes/general-video.md +12 -0
- package/vendor/hyperframes/dist/skills/hyperframes/references/routes/motion-graphics.md +11 -0
- package/vendor/hyperframes/dist/skills/hyperframes/references/routes/music-to-video.md +12 -0
- package/vendor/hyperframes/dist/skills/hyperframes/references/routes/pr-to-video.md +28 -0
- package/vendor/hyperframes/dist/skills/hyperframes/references/routes/product-launch-video.md +13 -0
- package/vendor/hyperframes/dist/skills/hyperframes/references/routes/remotion-to-hyperframes.md +9 -0
- package/vendor/hyperframes/dist/skills/hyperframes/references/routes/slideshow.md +11 -0
- package/vendor/hyperframes/dist/skills/hyperframes/references/routes/talking-head-recut.md +11 -0
- package/vendor/hyperframes/dist/skills/hyperframes/references/script-format.md +52 -0
- package/vendor/hyperframes/dist/skills/hyperframes/references/skill-lifecycle.md +35 -0
- package/vendor/hyperframes/dist/skills/hyperframes/references/storyboard-format.md +99 -0
- package/vendor/hyperframes/dist/skills/hyperframes/references/subagent-dispatch.md +35 -0
- package/vendor/hyperframes/dist/skills/hyperframes/references/workflow-catalog.md +10 -0
- package/vendor/hyperframes/dist/skills/hyperframes/scripts/lib/frame-packets-core.mjs +194 -0
- package/vendor/hyperframes/dist/skills/hyperframes/scripts/plugin-cli.mjs +88 -0
- package/vendor/hyperframes/dist/skills/hyperframes/scripts/plugin-cli.test.mjs +117 -0
- package/vendor/hyperframes/dist/skills/hyperframes-cli/SKILL.md +189 -0
- package/vendor/hyperframes/dist/skills/hyperframes-cli/references/beats.md +19 -0
- package/vendor/hyperframes/dist/skills/hyperframes-cli/references/cloud.md +163 -0
- package/vendor/hyperframes/dist/skills/hyperframes-cli/references/cloudrun.md +62 -0
- package/vendor/hyperframes/dist/skills/hyperframes-cli/references/compare-and-batch.md +105 -0
- package/vendor/hyperframes/dist/skills/hyperframes-cli/references/doctor-browser.md +57 -0
- package/vendor/hyperframes/dist/skills/hyperframes-cli/references/init-and-scaffold.md +74 -0
- package/vendor/hyperframes/dist/skills/hyperframes-cli/references/lambda.md +185 -0
- package/vendor/hyperframes/dist/skills/hyperframes-cli/references/lint-validate-inspect.md +132 -0
- package/vendor/hyperframes/dist/skills/hyperframes-cli/references/preview-render.md +193 -0
- package/vendor/hyperframes/dist/skills/hyperframes-cli/references/upgrade-info-misc.md +134 -0
- package/vendor/hyperframes/dist/skills/media-use/SKILL.md +100 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/CREDITS.md +35 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/chime.mp3 +0 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/click-soft.mp3 +0 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/click.mp3 +0 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/error.mp3 +0 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/glitch-1.mp3 +0 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/glitch-2.mp3 +0 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/glitch-3.mp3 +0 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/impact-bass-1.mp3 +0 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/impact-bass-2.mp3 +0 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/key-press.mp3 +0 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/manifest.json +97 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/notification.mp3 +0 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/ping.mp3 +0 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/pop.mp3 +0 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/riser.mp3 +0 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/sparkle.mp3 +0 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/typing.mp3 +0 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/whoosh-cinematic.mp3 +0 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/whoosh-short.mp3 +0 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/assets/sfx/whoosh.mp3 +0 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/references/bgm.md +76 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/references/captions/authoring.md +163 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/references/captions/motion.md +87 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/references/captions/transcript-handling.md +97 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/references/remove-background.md +143 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/references/requirements.md +29 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/references/sfx.md +42 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/references/transcribe.md +52 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/references/tts-to-captions.md +35 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/references/tts.md +260 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/audio.mjs +311 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/audio.test.mjs +159 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/gemini-pipeline.test.mjs +131 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/heygen-tts.mjs +122 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/heygen-tts.test.mjs +38 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/heygen-voice.mjs +98 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/heygen-voice.test.mjs +233 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/audio-meta.mjs +39 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/audio-meta.test.mjs +136 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/bgm-volume.mjs +4 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/bgm.mjs +257 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/bgm.test.mjs +74 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/concurrency.mjs +14 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/concurrency.test.mjs +41 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/gemini-auth.mjs +43 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/gemini-auth.py +52 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/gemini-auth.test.mjs +86 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/gemini-auth_test.py +90 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/gemini-tts.mjs +122 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/gemini-tts.test.mjs +243 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/heygen.mjs +197 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/heygen.test.mjs +185 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/media-record.mjs +114 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/media-record.test.mjs +205 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/python.mjs +77 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/python.test.mjs +136 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/sfx.mjs +165 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/sfx.test.mjs +121 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/tts.mjs +389 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/tts.spawn.test.mjs +158 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lib/tts.test.mjs +230 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/lyria-recipe.py +136 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/wait-bgm.mjs +175 -0
- package/vendor/hyperframes/dist/skills/media-use/audio/scripts/wait-bgm.test.mjs +108 -0
- package/vendor/hyperframes/dist/skills/media-use/luts/README.md +28 -0
- package/vendor/hyperframes/dist/skills/media-use/luts/index.json +57 -0
- package/vendor/hyperframes/dist/skills/media-use/references/audio.md +20 -0
- package/vendor/hyperframes/dist/skills/media-use/references/grading.md +160 -0
- package/vendor/hyperframes/dist/skills/media-use/references/media-treatment-recipes.md +929 -0
- package/vendor/hyperframes/dist/skills/media-use/references/media-treatments.md +202 -0
- package/vendor/hyperframes/dist/skills/media-use/references/memory.md +37 -0
- package/vendor/hyperframes/dist/skills/media-use/references/meta.md +61 -0
- package/vendor/hyperframes/dist/skills/media-use/references/operations.md +327 -0
- package/vendor/hyperframes/dist/skills/media-use/references/resolve.md +150 -0
- package/vendor/hyperframes/dist/skills/media-use/references/setup-providers.md +80 -0
- package/vendor/hyperframes/dist/skills/media-use/references/telemetry-dashboard.md +49 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/audio-duck.mjs +113 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/compatibility.test.mjs +96 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/dither.mjs +328 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/dither.test.mjs +176 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/eval.mjs +369 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/adopt.mjs +128 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/adopt.test.mjs +95 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/bgm-provider.mjs +20 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/brand-provider.mjs +59 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/bundled-sfx-provider.mjs +119 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/bundled-sfx-provider.test.mjs +139 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/cache.mjs +148 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/candidates.mjs +91 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/candidates.test.mjs +155 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/codex-provider.mjs +161 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/codex-provider.test.mjs +34 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/config-lock.d.mts +3 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/config-lock.mjs +45 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/config-lock.test.mjs +79 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/coverage.test.mjs +136 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/cube-build.mjs +181 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/cube-build.test.mjs +80 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/cube-validate.mjs +198 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/cube-validate.test.mjs +125 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/cutlist.mjs +184 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/cutlist.test.mjs +162 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/duck.mjs +95 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/duck.test.mjs +153 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/error-diffusion.mjs +230 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/error-diffusion.test.mjs +102 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/ff-binaries.mjs +37 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/freeze.mjs +72 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/freeze.test.mjs +138 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/grade-analyzer.mjs +265 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/grade-analyzer.test.mjs +285 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/heygen-cli.mjs +191 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/heygen-cli.test.mjs +301 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/heygen-search.mjs +45 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/heygen-search.test.mjs +49 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/heygen-video-provider.mjs +138 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/heygen-video-provider.test.mjs +435 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/image-provider.mjs +44 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/index-gen.mjs +63 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/local-media-search.mjs +32 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/local-models.mjs +318 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/local-models.test.mjs +220 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/local-run.mjs +78 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/local-run.test.mjs +121 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/logo-provider.mjs +244 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/logo-provider.test.mjs +298 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/ltx-video-provider.mjs +94 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/ltx-video-provider.test.mjs +316 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/lut-preset-provider.mjs +271 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/lut-preset-provider.test.mjs +199 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/manifest.d.mts +19 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/manifest.mjs +279 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/manifest.test.mjs +397 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/match.mjs +47 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/media-fetch.mjs +85 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/media-fetch.test.mjs +197 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/media-home.mjs +20 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/media-home.test.mjs +61 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/media-search.d.mts +9 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/media-search.mjs +107 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/mflux-provider.mjs +128 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/mflux-provider.test.mjs +174 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/misses.mjs +49 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/misses.test.mjs +89 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/npx-sync.mjs +31 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/npx-sync.test.mjs +50 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/parakeet-words.mjs +27 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/parakeet-words.test.mjs +44 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/prefs-store.mjs +180 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/prefs-store.test.mjs +189 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/probe.mjs +41 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/probe.test.mjs +148 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/providers.mjs +5 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/recipe-store.mjs +367 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/recipe-store.test.mjs +367 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/registry.mjs +212 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/registry.test.mjs +262 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/search.mjs +24 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/search.test.mjs +32 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/sfx-provider.mjs +23 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/specs.mjs +132 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/specs.test.mjs +157 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/stats.mjs +117 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/stats.test.mjs +165 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/svg-sanitize.mjs +21 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/telemetry.mjs +210 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/telemetry.test.mjs +437 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/test-home.test.mjs +10 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/transcriptCutFade.mjs +21 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/transcriptCutFade.test.mjs +33 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/tts-local-provider.mjs +94 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/tts-local-provider.test.mjs +72 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/usage.mjs +57 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/usage.test.mjs +54 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/voice-provider.mjs +57 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/voice-provider.test.mjs +46 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/lib/words.mjs +18 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/prefs.mjs +70 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/recipe.mjs +103 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/resolve-plugin.test.mjs +62 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/resolve.mjs +1369 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/transcribe.mjs +194 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/transcribe.test.mjs +112 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/transcript-cut.mjs +270 -0
- package/vendor/hyperframes/dist/skills/media-use/scripts/transcript-cut.test.mjs +117 -0
- package/vendor/hyperframes/dist/skills-MJ2J4GEM.js +808 -0
- package/vendor/hyperframes/dist/skillsUpdateCheck-TKTYQN5R.js +26 -0
- package/vendor/hyperframes/dist/slideshow-EJ4IMY6P.js +24 -0
- package/vendor/hyperframes/dist/snapshot-KIVDUUMN.js +875 -0
- package/vendor/hyperframes/dist/src-6YQBJGWR.js +202 -0
- package/vendor/hyperframes/dist/src-PVYUYV3M.js +471 -0
- package/vendor/hyperframes/dist/state-KAXGHF77.js +26 -0
- package/vendor/hyperframes/dist/staticProjectServer-7EU666GS.js +49 -0
- package/vendor/hyperframes/dist/status-YM52BQ6S.js +311 -0
- package/vendor/hyperframes/dist/studio/assets/hyperframes-player-Cp8e_Zst.js +473 -0
- package/vendor/hyperframes/dist/studio/assets/index-BX3KHhGX.js +71 -0
- package/vendor/hyperframes/dist/studio/assets/index-CASEBNy2.js +1 -0
- package/vendor/hyperframes/dist/studio/assets/index-D11atkBt.css +1 -0
- package/vendor/hyperframes/dist/studio/assets/index-DMTt9nTf.js +531 -0
- package/vendor/hyperframes/dist/studio/assets/index-oE1pOdAy.js +399 -0
- package/vendor/hyperframes/dist/studio/chunk-5VSXRGIX.js +948 -0
- package/vendor/hyperframes/dist/studio/chunk-5VSXRGIX.js.map +1 -0
- package/vendor/hyperframes/dist/studio/chunk-7UQWVN52.js +938 -0
- package/vendor/hyperframes/dist/studio/chunk-7UQWVN52.js.map +1 -0
- package/vendor/hyperframes/dist/studio/chunk-EEXSYY5F.js +190 -0
- package/vendor/hyperframes/dist/studio/chunk-EEXSYY5F.js.map +1 -0
- package/vendor/hyperframes/dist/studio/chunk-FOEID72M.js +1441 -0
- package/vendor/hyperframes/dist/studio/chunk-FOEID72M.js.map +1 -0
- package/vendor/hyperframes/dist/studio/chunk-PZ5AY32C.js +10 -0
- package/vendor/hyperframes/dist/studio/chunk-PZ5AY32C.js.map +1 -0
- package/vendor/hyperframes/dist/studio/chunk-TDWGXBUT.js +1103 -0
- package/vendor/hyperframes/dist/studio/chunk-TDWGXBUT.js.map +1 -0
- package/vendor/hyperframes/dist/studio/domEditingLayers-IEVLO54Z.js +47 -0
- package/vendor/hyperframes/dist/studio/domEditingLayers-IEVLO54Z.js.map +1 -0
- package/vendor/hyperframes/dist/studio/favicon.svg +14 -0
- package/vendor/hyperframes/dist/studio/icons/timeline/audio.svg +7 -0
- package/vendor/hyperframes/dist/studio/icons/timeline/captions.svg +5 -0
- package/vendor/hyperframes/dist/studio/icons/timeline/composition.svg +12 -0
- package/vendor/hyperframes/dist/studio/icons/timeline/image.svg +18 -0
- package/vendor/hyperframes/dist/studio/icons/timeline/music.svg +10 -0
- package/vendor/hyperframes/dist/studio/icons/timeline/text.svg +3 -0
- package/vendor/hyperframes/dist/studio/index.css +165 -0
- package/vendor/hyperframes/dist/studio/index.css.map +1 -0
- package/vendor/hyperframes/dist/studio/index.d.ts +4296 -0
- package/vendor/hyperframes/dist/studio/index.html +23 -0
- package/vendor/hyperframes/dist/studio/index.js +99693 -0
- package/vendor/hyperframes/dist/studio/index.js.map +1 -0
- package/vendor/hyperframes/dist/studio/player.d.ts +30 -0
- package/vendor/hyperframes/dist/studio/player.js +10 -0
- package/vendor/hyperframes/dist/studio/player.js.map +1 -0
- package/vendor/hyperframes/dist/studio/styles/tailwind-preset.d.ts +39 -0
- package/vendor/hyperframes/dist/studio/styles/tailwind-preset.js +50 -0
- package/vendor/hyperframes/dist/studio/styles/tailwind-preset.js.map +1 -0
- package/vendor/hyperframes/dist/studio/styles.css +1 -0
- package/vendor/hyperframes/dist/studio/ui.d.ts +296 -0
- package/vendor/hyperframes/dist/studio/ui.js +66 -0
- package/vendor/hyperframes/dist/studio/ui.js.map +1 -0
- package/vendor/hyperframes/dist/studio-api-PNQZRPX5.js +136 -0
- package/vendor/hyperframes/dist/studioSelectionClient-IUUPKUHZ.js +25 -0
- package/vendor/hyperframes/dist/studioServer-UWRBPIOJ.js +1457 -0
- package/vendor/hyperframes/dist/synthesize-K62TIZWI.js +182 -0
- package/vendor/hyperframes/dist/system-EZYZNUFD.js +44 -0
- package/vendor/hyperframes/dist/telemetry-2YC4SGQU.js +144 -0
- package/vendor/hyperframes/dist/telemetry-QMYM4WME.js +95 -0
- package/vendor/hyperframes/dist/templates/_shared/AGENTS.md +107 -0
- package/vendor/hyperframes/dist/templates/_shared/CLAUDE.md +107 -0
- package/vendor/hyperframes/dist/templates/blank/index.html +55 -0
- package/vendor/hyperframes/dist/templates/from-file/index.html +75 -0
- package/vendor/hyperframes/dist/templates/warm-grain/compositions/captions.html +154 -0
- package/vendor/hyperframes/dist/templates/warm-grain/compositions/graphics.html +162 -0
- package/vendor/hyperframes/dist/templates/warm-grain/compositions/intro.html +87 -0
- package/vendor/hyperframes/dist/templates/warm-grain/index.html +264 -0
- package/vendor/hyperframes/dist/templates/warm-grain/registry-item.json +34 -0
- package/vendor/hyperframes/dist/timeline-77Z3BBQM.js +1377 -0
- package/vendor/hyperframes/dist/tokens-OBGTYE4Z.js +92 -0
- package/vendor/hyperframes/dist/transcribe-7NVFHCGA.js +387 -0
- package/vendor/hyperframes/dist/transcribe-BNSJRR4M.js +62 -0
- package/vendor/hyperframes/dist/tts-P3LIPIL5.js +234 -0
- package/vendor/hyperframes/dist/updateCheck-UDWIJ4ZQ.js +39 -0
- package/vendor/hyperframes/dist/upgrade-CT3CPO3E.js +231 -0
- package/vendor/hyperframes/dist/urlDownloader-H6WRI2UE.js +39 -0
- package/vendor/hyperframes/dist/usage-EC3KFUIJ.js +2139 -0
- package/vendor/hyperframes/dist/validate-65QDZJWZ.js +70 -0
- package/vendor/hyperframes/dist/video-FGSGKRSV.js +261 -0
- package/vendor/hyperframes/dist/workspaceBuildCheck-TOLGAI4T.js +133 -0
- package/vendor/hyperframes/package.json +80 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// In-page motion sampler for `hyperframes inspect` motion verification (#1437).
|
|
2
|
+
// Runs inside the seeked, paused page (via page.evaluate). For each asserted
|
|
3
|
+
// selector it returns this frame's { rect, opacity, visible }; for each liveness
|
|
4
|
+
// scope it returns a bucketed signature of all visible elements, so the Node-side
|
|
5
|
+
// evaluator can detect frozen windows by comparing signatures across frames.
|
|
6
|
+
(function () {
|
|
7
|
+
// Visibility, opacity and the liveness signature come from the shared classifier
|
|
8
|
+
// (motion-signature.browser.js), so this sampler and the frozen-sweep guard agree on what moves.
|
|
9
|
+
// Resolved at install, checked at call: an install-time throw would only surface as an opaque
|
|
10
|
+
// "__hyperframesMotionSample is not a function" from the driver's evaluate.
|
|
11
|
+
const shared = window.__hyperframesMotionSignature;
|
|
12
|
+
|
|
13
|
+
function toRect(rect) {
|
|
14
|
+
return {
|
|
15
|
+
left: shared.round(rect.left),
|
|
16
|
+
top: shared.round(rect.top),
|
|
17
|
+
right: shared.round(rect.right),
|
|
18
|
+
bottom: shared.round(rect.bottom),
|
|
19
|
+
width: shared.round(rect.width),
|
|
20
|
+
height: shared.round(rect.height),
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function sampleElement(element) {
|
|
25
|
+
const rect = element.getBoundingClientRect();
|
|
26
|
+
return {
|
|
27
|
+
rect: toRect(rect),
|
|
28
|
+
opacity: shared.round(shared.opacityChain(element)),
|
|
29
|
+
visible: shared.isVisibleElement(element),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function safeQuery(selector) {
|
|
34
|
+
try {
|
|
35
|
+
return document.querySelector(selector);
|
|
36
|
+
} catch {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function sampleSelectors(selectors) {
|
|
42
|
+
const data = {};
|
|
43
|
+
for (const selector of selectors) {
|
|
44
|
+
// Multi-match selectors are rejected before this point by findAmbiguousSelectors
|
|
45
|
+
// in layout.ts; querySelector is safe here.
|
|
46
|
+
const element = safeQuery(selector);
|
|
47
|
+
data[selector] = element ? sampleElement(element) : null;
|
|
48
|
+
}
|
|
49
|
+
return data;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function sampleLiveness(scopes) {
|
|
53
|
+
const liveness = {};
|
|
54
|
+
for (const scope of scopes) {
|
|
55
|
+
const root = scope === "*" ? shared.compositionRoot() : safeQuery(scope);
|
|
56
|
+
// ponytail: O(DOM) × MOTION_MAX_SAMPLES (300), with three computed-style
|
|
57
|
+
// reads (element + ::before/::after) plus an ancestor walk per box-generating
|
|
58
|
+
// element — fine for typical compositions; narrow the scope if heavy-DOM
|
|
59
|
+
// compositions slow down.
|
|
60
|
+
liveness[scope] = shared.compositionSignature(root, { quantize: true });
|
|
61
|
+
}
|
|
62
|
+
return liveness;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
window.__hyperframesMotionSample = function motionSample(options) {
|
|
66
|
+
if (!shared) {
|
|
67
|
+
throw new Error(
|
|
68
|
+
"motion-signature.browser.js must be injected before motion-sample.browser.js",
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
const { selectors = [], livenessScopes = [] } = options || {};
|
|
72
|
+
return { data: sampleSelectors(selectors), liveness: sampleLiveness(livenessScopes) };
|
|
73
|
+
};
|
|
74
|
+
})();
|
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
// Shared "what counts as motion" classifier, injected before layout-audit.browser.js and motion-sample.browser.js.
|
|
2
|
+
// The frozen-sweep guard (sweep_static) and keepsMoving liveness (motion_frozen) meet in one decision, so both
|
|
3
|
+
// must count the same channels as motion; only quantization differs (liveness buckets 2px and 0.08 opacity).
|
|
4
|
+
// A channel reader returns a string equal across samples iff it did not visibly change, "" when it does not apply.
|
|
5
|
+
(function () {
|
|
6
|
+
const IGNORE_TAGS = new Set(["SCRIPT", "STYLE", "TEMPLATE", "NOSCRIPT", "META", "LINK"]);
|
|
7
|
+
const MEDIA_TAGS = new Set(["CANVAS", "VIDEO", "IMG"]);
|
|
8
|
+
const FNV_OFFSET_BASIS = 2166136261;
|
|
9
|
+
const FNV_PRIME = 16777619;
|
|
10
|
+
const LIVENESS_POSITION_BUCKET_PX = 2;
|
|
11
|
+
const LIVENESS_OPACITY_BUCKET = 0.08;
|
|
12
|
+
const IGNORE_SELECTOR = "[data-layout-ignore], [data-layout-check='ignore']";
|
|
13
|
+
// counter(name) / counters(name, sep) in generated content. A list-item box
|
|
14
|
+
// whose ::marker content is `normal` paints counter(list-item) implicitly.
|
|
15
|
+
const COUNTER_FUNCTION = /counters?\(\s*([^\s,)]+)/g;
|
|
16
|
+
const IMPLICIT_MARKER_CONTENT = "counter(list-item)";
|
|
17
|
+
const LIST_ITEM_DISPLAY = /\blist-item\b/;
|
|
18
|
+
// Whether an element sits inside skipped contents is not on its computed style; only checkVisibility knows.
|
|
19
|
+
// PAINTED_OPTIONS matches layout-audit.browser.js isVisibleElement's opacity-floor path. happy-dom lacks
|
|
20
|
+
// checkVisibility, so callers keep a computed-style fallback.
|
|
21
|
+
const RENDERED_BOX_OPTIONS = { contentVisibilityAuto: true };
|
|
22
|
+
const PAINTED_OPTIONS = {
|
|
23
|
+
opacityProperty: true,
|
|
24
|
+
visibilityProperty: true,
|
|
25
|
+
contentVisibilityAuto: true,
|
|
26
|
+
};
|
|
27
|
+
// Stand-in for the ::before/::after of an element whose contents are skipped:
|
|
28
|
+
// no pseudo box exists, so nothing it declares (content, counter-*) paints.
|
|
29
|
+
const NO_BOX = Object.freeze({ display: "none" });
|
|
30
|
+
const SKIPPED_PSEUDO = Object.freeze({ before: NO_BOX, after: NO_BOX });
|
|
31
|
+
// content-visibility skips contents only where size containment applies (css-contain-2); hosts matching this
|
|
32
|
+
// paint everything. It mirrors Chromium 152 where that differs from the spec: a table-cell host skips, a
|
|
33
|
+
// table-caption host does not. Replaced elements (MEDIA_TAGS) are atomic even at display:inline.
|
|
34
|
+
const NOT_CONTAINABLE_DISPLAY =
|
|
35
|
+
/^(inline( list-item)?|contents|table|inline-table|table-(?!cell$)[a-z-]+|ruby[a-z-]*)$/;
|
|
36
|
+
|
|
37
|
+
function skipsContents(element, style) {
|
|
38
|
+
if (style.contentVisibility !== "hidden") return false;
|
|
39
|
+
return MEDIA_TAGS.has(element.tagName) || !NOT_CONTAINABLE_DISPLAY.test(style.display);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function round(value) {
|
|
43
|
+
return Math.round(value * 100) / 100;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function opacityChain(element) {
|
|
47
|
+
let opacity = 1;
|
|
48
|
+
for (let current = element; current; current = current.parentElement) {
|
|
49
|
+
const parsed = Number.parseFloat(getComputedStyle(current).opacity || "1");
|
|
50
|
+
if (Number.isFinite(parsed)) opacity *= parsed;
|
|
51
|
+
}
|
|
52
|
+
return opacity;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function compositionRoot() {
|
|
56
|
+
return (
|
|
57
|
+
document.querySelector("[data-composition-id][data-width][data-height]") ||
|
|
58
|
+
document.querySelector("[data-composition-id]") ||
|
|
59
|
+
document.body
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function isHiddenStyle(style) {
|
|
64
|
+
return (
|
|
65
|
+
style.display === "none" || style.visibility === "hidden" || style.visibility === "collapse"
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Kept local rather than shared with layout-audit, which is installed and tested on its own. The author
|
|
70
|
+
// opt-out is not applied: an asserted selector outranks it, and compositionSignature applies it itself.
|
|
71
|
+
// clip-path is a channel, not a visibility probe, so a wipe over a static box counts as motion.
|
|
72
|
+
// fallow-ignore-next-line complexity
|
|
73
|
+
function isVisibleElement(element, style, opacity) {
|
|
74
|
+
if (IGNORE_TAGS.has(element.tagName)) return false;
|
|
75
|
+
if (
|
|
76
|
+
typeof element.checkVisibility === "function" &&
|
|
77
|
+
!element.checkVisibility(PAINTED_OPTIONS)
|
|
78
|
+
) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
if (isHiddenStyle(style || getComputedStyle(element))) return false;
|
|
82
|
+
if ((opacity === undefined ? opacityChain(element) : opacity) < 0.2) return false;
|
|
83
|
+
const rect = element.getBoundingClientRect();
|
|
84
|
+
return rect.width > 0.5 && rect.height > 0.5;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function foldField(hash, value) {
|
|
88
|
+
hash ^= value.length;
|
|
89
|
+
hash = Math.imul(hash, FNV_PRIME);
|
|
90
|
+
for (let i = 0; i < value.length; i++) {
|
|
91
|
+
hash ^= value.charCodeAt(i);
|
|
92
|
+
hash = Math.imul(hash, FNV_PRIME);
|
|
93
|
+
}
|
|
94
|
+
return hash;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
function hashFields(fields) {
|
|
98
|
+
let hash = FNV_OFFSET_BASIS;
|
|
99
|
+
for (const field of fields) hash = foldField(hash, field);
|
|
100
|
+
return (hash >>> 0).toString(36);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// `none` / `normal` are the computed initial values of content, counter-*,
|
|
104
|
+
// clip-path, and font-variation-settings; collapse them so unused channels
|
|
105
|
+
// stay "".
|
|
106
|
+
function cssValue(value) {
|
|
107
|
+
return value === "none" || value === "normal" ? "" : value || "";
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// --- Per-element channels: (element, ctx) => string --------------------------
|
|
111
|
+
|
|
112
|
+
function boxChannel(element, ctx) {
|
|
113
|
+
const rect = element.getBoundingClientRect();
|
|
114
|
+
const box = [rect.left, rect.top, rect.width, rect.height];
|
|
115
|
+
if (ctx.quantize) {
|
|
116
|
+
return box.map((value) => Math.round(value / LIVENESS_POSITION_BUCKET_PX)).join(",");
|
|
117
|
+
}
|
|
118
|
+
return box.map(round).join(",");
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
function opacityChannel(element, ctx) {
|
|
122
|
+
return String(
|
|
123
|
+
ctx.quantize ? Math.round(ctx.opacity / LIVENESS_OPACITY_BUCKET) : round(ctx.opacity),
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// Variable-font axis animation moves no geometry and no opacity; in a
|
|
128
|
+
// DUPLEXED face (Recursive holds one advance width at every weight) not even
|
|
129
|
+
// the line width shifts, so without this channel the whole run reads frozen.
|
|
130
|
+
function fontAxesChannel(element, ctx) {
|
|
131
|
+
const axes = cssValue(ctx.style.fontVariationSettings);
|
|
132
|
+
return axes ? hashFields([axes]) : "";
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// A clip-path wipe (inset(0 100% 0 0) → inset(0)) reveals a box that never
|
|
136
|
+
// moves; the computed clip-path string is the only thing that changes.
|
|
137
|
+
function clipPathChannel(element, ctx) {
|
|
138
|
+
const clip = cssValue(ctx.style.clipPath);
|
|
139
|
+
return clip ? hashFields([clip]) : "";
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// Direct text nodes only: descendants are signed separately, and a hidden
|
|
143
|
+
// descendant's text mutation must not masquerade as visible motion.
|
|
144
|
+
function textChannel(element) {
|
|
145
|
+
const text = Array.from(element.childNodes)
|
|
146
|
+
.filter((node) => node.nodeType === 3)
|
|
147
|
+
.map((node) => node.textContent)
|
|
148
|
+
.join("");
|
|
149
|
+
return text && hashFields([text]);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
function flag(value) {
|
|
153
|
+
return value ? "1" : "0";
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
function selectState(element) {
|
|
157
|
+
const fields = [String(element.selectedIndex), element.value || ""];
|
|
158
|
+
for (const option of element.options) fields.push(flag(option.selected));
|
|
159
|
+
return fields;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// A control's value is painted by its inner (shadow) contents, which
|
|
163
|
+
// content-visibility: hidden skips; the widget itself (its type, a
|
|
164
|
+
// checkbox/radio glyph) is theme paint of the control's own box and still
|
|
165
|
+
// shows. Hence two channels.
|
|
166
|
+
const CONTROL_VALUE = {
|
|
167
|
+
INPUT: (element) => [element.value || ""],
|
|
168
|
+
TEXTAREA: (element) => [element.value || ""],
|
|
169
|
+
SELECT: selectState,
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
function controlValueChannel(element) {
|
|
173
|
+
const read = CONTROL_VALUE[element.tagName];
|
|
174
|
+
return read ? hashFields(read(element)) : "";
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
function controlWidgetChannel(element) {
|
|
178
|
+
if (element.tagName !== "INPUT") return "";
|
|
179
|
+
return hashFields([element.type || "", flag(element.checked), flag(element.indeterminate)]);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
// Chromium substitutes attr() in computed pseudo content, so this is the
|
|
183
|
+
// platform-owned rendered string rather than a CSS expression to reparse.
|
|
184
|
+
// counter() is NOT substituted — that is what the counter channel is for.
|
|
185
|
+
function generatedContentChannel(element, ctx) {
|
|
186
|
+
const before = cssValue(ctx.pseudo.before.content);
|
|
187
|
+
const after = cssValue(ctx.pseudo.after.content);
|
|
188
|
+
return before || after ? hashFields([before, after]) : "";
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
// Pixel-only media motion (canvas repaint, playing video, same-size <img> swap) is invisible to DOM channels,
|
|
192
|
+
// so fold in an 8x8 downsample. Unreadable media hashes to a constant; iframe media is a separate document.
|
|
193
|
+
// fallow-ignore-next-line complexity
|
|
194
|
+
function mediaPixelChannel(element) {
|
|
195
|
+
if (!MEDIA_TAGS.has(element.tagName)) return "";
|
|
196
|
+
try {
|
|
197
|
+
const rect = element.getBoundingClientRect();
|
|
198
|
+
const sourceWidth = element.videoWidth || element.width || rect.width;
|
|
199
|
+
const sourceHeight = element.videoHeight || element.height || rect.height;
|
|
200
|
+
if (!sourceWidth || !sourceHeight) return "x";
|
|
201
|
+
const off = document.createElement("canvas");
|
|
202
|
+
off.width = 8;
|
|
203
|
+
off.height = 8;
|
|
204
|
+
const ctx2d = off.getContext("2d");
|
|
205
|
+
if (!ctx2d) return "x";
|
|
206
|
+
ctx2d.drawImage(element, 0, 0, 8, 8);
|
|
207
|
+
const data = ctx2d.getImageData(0, 0, 8, 8).data;
|
|
208
|
+
let hash = 0;
|
|
209
|
+
for (let i = 0; i < data.length; i++) hash = (hash * 31 + data[i]) >>> 0;
|
|
210
|
+
return String(hash);
|
|
211
|
+
} catch {
|
|
212
|
+
return "x";
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
// The element's own box still paints when its contents are skipped
|
|
217
|
+
// (content-visibility: hidden) — including a checkbox's check glyph; its
|
|
218
|
+
// text, pseudo boxes, control value, and replaced content (a canvas/video/img's
|
|
219
|
+
// pixels) do not.
|
|
220
|
+
const BOX_CHANNELS = [
|
|
221
|
+
boxChannel,
|
|
222
|
+
opacityChannel,
|
|
223
|
+
fontAxesChannel,
|
|
224
|
+
clipPathChannel,
|
|
225
|
+
controlWidgetChannel,
|
|
226
|
+
];
|
|
227
|
+
const CONTENT_CHANNELS = [
|
|
228
|
+
textChannel,
|
|
229
|
+
controlValueChannel,
|
|
230
|
+
generatedContentChannel,
|
|
231
|
+
mediaPixelChannel,
|
|
232
|
+
];
|
|
233
|
+
const ELEMENT_CHANNELS = [...BOX_CHANNELS, ...CONTENT_CHANNELS];
|
|
234
|
+
|
|
235
|
+
// --- Composition-level counter channel ------------------------------------
|
|
236
|
+
// Counter declarations often live on zero-box owners while a pseudo-element elsewhere paints the value, so
|
|
237
|
+
// every box-generating element is an owner, but only declarations naming a painted counter fold in.
|
|
238
|
+
// The gate is by name, not scope: enough for catching frozen timelines. <ol start> and <li value> are missed.
|
|
239
|
+
|
|
240
|
+
// Generated content of one box owner that reaches the screen, including a list-item's ::marker.
|
|
241
|
+
// Callers have already excluded opted-out hosts and hosts whose contents are skipped.
|
|
242
|
+
function markerContent(element, style) {
|
|
243
|
+
if (isHiddenStyle(style) || !LIST_ITEM_DISPLAY.test(style.display)) return "";
|
|
244
|
+
return cssValue(getComputedStyle(element, "::marker").content) || IMPLICIT_MARKER_CONTENT;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
function paintedContent(element, style, pseudo, opacity) {
|
|
248
|
+
if (opacity < 0.2) return [];
|
|
249
|
+
const boxes = [pseudo.before, pseudo.after].filter((box) => !isHiddenStyle(box));
|
|
250
|
+
return [...boxes.map((box) => cssValue(box.content)), markerContent(element, style)];
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
// The author opt-out applies to elements INSIDE the measured root, never to
|
|
254
|
+
// the root itself or its ancestors: a keepsMoving scope (or the composition
|
|
255
|
+
// root) is explicitly asserted, and an assertion naming an element outranks
|
|
256
|
+
// a layout-audit opt-out — see isVisibleElement.
|
|
257
|
+
function isOptedOut(element, root) {
|
|
258
|
+
for (let current = element; current && current !== root; current = current.parentElement) {
|
|
259
|
+
if (current.matches(IGNORE_SELECTOR)) return true;
|
|
260
|
+
}
|
|
261
|
+
return false;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
function consumedCounterNames(owners) {
|
|
265
|
+
const names = new Set();
|
|
266
|
+
for (const owner of owners) {
|
|
267
|
+
for (const content of owner.painted) {
|
|
268
|
+
for (const match of content.matchAll(COUNTER_FUNCTION)) names.add(match[1]);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
return names;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
// `counter-reset: a 10 b 3` → does any named counter get painted?
|
|
275
|
+
function namesConsumedCounter(declaration, consumed) {
|
|
276
|
+
return declaration.split(/\s+/).some((token) => consumed.has(token));
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
function counterState(style, consumed) {
|
|
280
|
+
const fields = [style.counterReset, style.counterIncrement, style.counterSet]
|
|
281
|
+
.map(cssValue)
|
|
282
|
+
.filter((declaration) => declaration && namesConsumedCounter(declaration, consumed));
|
|
283
|
+
return fields.length > 0 ? "c:" + hashFields(fields) : "";
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
function counterParts(root, owners) {
|
|
287
|
+
const consumed = consumedCounterNames(owners);
|
|
288
|
+
if (consumed.size === 0) return [];
|
|
289
|
+
const parts = [];
|
|
290
|
+
function push(style) {
|
|
291
|
+
const state = counterState(style, consumed);
|
|
292
|
+
if (state) parts.push(state);
|
|
293
|
+
}
|
|
294
|
+
for (let ancestor = root.parentElement; ancestor; ancestor = ancestor.parentElement) {
|
|
295
|
+
push(getComputedStyle(ancestor));
|
|
296
|
+
}
|
|
297
|
+
for (const owner of owners) {
|
|
298
|
+
push(owner.style);
|
|
299
|
+
push(owner.pseudo.before);
|
|
300
|
+
push(owner.pseudo.after);
|
|
301
|
+
}
|
|
302
|
+
return parts;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
// One signature of everything under `root`, root included, that a viewer could see change between seeks.
|
|
306
|
+
// Opted-out elements inside the root may animate off the timeline, so they are neither signed nor counter
|
|
307
|
+
// consumers, but stay counter owners; the root itself is always measured.
|
|
308
|
+
// fallow-ignore-next-line complexity
|
|
309
|
+
function compositionSignature(root, options) {
|
|
310
|
+
if (!root) return "";
|
|
311
|
+
const quantize = !!(options && options.quantize);
|
|
312
|
+
const parts = [];
|
|
313
|
+
const boxOwners = [];
|
|
314
|
+
// Unrendered elements paint nothing and feed no counter(). A display:contents child of a skipping host
|
|
315
|
+
// paints nothing either, which checkVisibility cannot tell from an ordinary one, so the parent's
|
|
316
|
+
// skipsContents verdict decides. A display:contents child of an off-screen `auto` host is missed.
|
|
317
|
+
const unrenderedBelow = new Set();
|
|
318
|
+
const skippedHosts = new Set();
|
|
319
|
+
for (const element of [root, ...root.querySelectorAll("*")]) {
|
|
320
|
+
if (IGNORE_TAGS.has(element.tagName)) continue;
|
|
321
|
+
const style = getComputedStyle(element);
|
|
322
|
+
const parent = element.parentElement;
|
|
323
|
+
const platformDecides = typeof element.checkVisibility === "function";
|
|
324
|
+
const noBox = platformDecides
|
|
325
|
+
? !element.checkVisibility(RENDERED_BOX_OPTIONS)
|
|
326
|
+
: style.display === "none";
|
|
327
|
+
const boxlessOwner = style.display === "contents" && !skippedHosts.has(parent);
|
|
328
|
+
if (unrenderedBelow.has(parent) || (noBox && !boxlessOwner)) {
|
|
329
|
+
unrenderedBelow.add(element);
|
|
330
|
+
continue;
|
|
331
|
+
}
|
|
332
|
+
// A skipping host paints its box but not its contents. Its counter-* stay in: in Chromium its
|
|
333
|
+
// increment and set still reach a sibling's painted counter(). Off-screen `auto` hosts are missed.
|
|
334
|
+
const skipped = skipsContents(element, style);
|
|
335
|
+
if (skipped) skippedHosts.add(element);
|
|
336
|
+
if (skipped && !platformDecides) unrenderedBelow.add(element);
|
|
337
|
+
const pseudo = skipped
|
|
338
|
+
? SKIPPED_PSEUDO
|
|
339
|
+
: {
|
|
340
|
+
before: getComputedStyle(element, "::before"),
|
|
341
|
+
after: getComputedStyle(element, "::after"),
|
|
342
|
+
};
|
|
343
|
+
const opacity = opacityChain(element);
|
|
344
|
+
const optedOut = isOptedOut(element, root);
|
|
345
|
+
const paintsContent = !optedOut && !skipped;
|
|
346
|
+
boxOwners.push({
|
|
347
|
+
style,
|
|
348
|
+
pseudo,
|
|
349
|
+
painted: paintsContent ? paintedContent(element, style, pseudo, opacity) : [],
|
|
350
|
+
});
|
|
351
|
+
if (optedOut || !isVisibleElement(element, style, opacity)) continue;
|
|
352
|
+
const ctx = { style, pseudo, opacity, quantize };
|
|
353
|
+
const channels = skipped ? BOX_CHANNELS : ELEMENT_CHANNELS;
|
|
354
|
+
parts.push(channels.map((channel) => channel(element, ctx)).join(","));
|
|
355
|
+
}
|
|
356
|
+
parts.push(...counterParts(root, boxOwners));
|
|
357
|
+
return parts.join("|");
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
window.__hyperframesMotionSignature = {
|
|
361
|
+
compositionRoot,
|
|
362
|
+
isVisibleElement,
|
|
363
|
+
opacityChain,
|
|
364
|
+
round,
|
|
365
|
+
compositionSignature,
|
|
366
|
+
};
|
|
367
|
+
|
|
368
|
+
// Frozen-sweep guard entry point (checkBrowser.ts collectLayoutGeometry).
|
|
369
|
+
// The name predates the textual/media channels and is kept for driver
|
|
370
|
+
// compatibility.
|
|
371
|
+
window.__hyperframesLayoutGeometry = function collectLayoutGeometry() {
|
|
372
|
+
return compositionSignature(compositionRoot(), { quantize: false });
|
|
373
|
+
};
|
|
374
|
+
})();
|