{"_id":"@markgrafhq/markgraf-embed","_rev":"45-1ab13d9defd9971bbdf5a6c7306414bd","name":"@markgrafhq/markgraf-embed","dist-tags":{"latest":"0.0.45"},"versions":{"0.0.25":{"name":"@markgrafhq/markgraf-embed","version":"0.0.25","keywords":["markgraf","animation","diagram","graph","canvas","embed","documentation"],"author":{"name":"Mark Eibes","email":"mark.eibes@gmail.com"},"license":"MIT","_id":"@markgrafhq/markgraf-embed@0.0.25","maintainers":[{"name":"i-am-the-slime","email":"mark.eibes@gmail.com"}],"homepage":"https://github.com/markgrafhq/markgraf-www#readme","bugs":{"url":"https://github.com/markgrafhq/markgraf-www/issues"},"dist":{"shasum":"560fad089cb9153733941c94fb70d809f2192611","tarball":"https://registry.npmjs.org/@markgrafhq/markgraf-embed/-/markgraf-embed-0.0.25.tgz","fileCount":6,"integrity":"sha512-mYDlldfQks3RL88MC9v/sVFD1+SqJ8S1GGx60FwJMLcuTkbr4/XFtzpzm00392/47Hokg33fU7yGvRK+OOwqLQ==","signatures":[{"sig":"MEQCIBlfVf35eDI9wi9b3Wu55YwKg0VK26fDAXPIxetaCaqtAiBveXIjL7F/fR2vCvFxPuz0RwWK52AgEdVhURhvNcI7gA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@markgrafhq%2fmarkgraf-embed@0.0.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":474981},"main":"./dist/markgraf-embed.js","type":"module","style":"./dist/markgraf-embed.css","module":"./dist/markgraf-embed.js","browser":"./dist/markgraf-embed.js","exports":{".":{"default":"./dist/markgraf-embed.js"},"./css":{"style":"./dist/markgraf-embed.css","default":"./dist/markgraf-embed.css"},"./dist/markgraf-embed.js":"./dist/markgraf-embed.js","./dist/markgraf-embed.css":"./dist/markgraf-embed.css","./dist/CommitMono-Regular.woff2":"./dist/CommitMono-Regular.woff2"},"gitHead":"e7b48454c4aeb3e55339ed2accdc180e09a37ef0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7bb1d6dc-a91e-497a-9edc-ed05272b5ab1"}},"repository":{"url":"git+https://github.com/markgrafhq/markgraf-embed.git","type":"git"},"_npmVersion":"11.16.0","description":"Embeddable Canvas2D player for markgraf animations. Drop-in for any HTML page or bundler.","directories":{},"sideEffects":true,"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/markgraf-embed_0.0.25_1783087570499_0.7668991840535819","host":"s3://npm-registry-packages-npm-production"}},"0.0.26":{"name":"@markgrafhq/markgraf-embed","version":"0.0.26","keywords":["markgraf","animation","diagram","graph","canvas","embed","documentation"],"author":{"name":"Mark Eibes","email":"mark.eibes@gmail.com"},"license":"MIT","_id":"@markgrafhq/markgraf-embed@0.0.26","maintainers":[{"name":"i-am-the-slime","email":"mark.eibes@gmail.com"}],"homepage":"https://github.com/markgrafhq/markgraf-www#readme","bugs":{"url":"https://github.com/markgrafhq/markgraf-www/issues"},"dist":{"shasum":"aadb8fbeab8ee3e8e67e513faa4d58d463893383","tarball":"https://registry.npmjs.org/@markgrafhq/markgraf-embed/-/markgraf-embed-0.0.26.tgz","fileCount":6,"integrity":"sha512-YWoAEXged0wBMNFaqIpAIk0uGUXnGQ7xywuvVdkdFST+zHR1VQeg0NeWewBHLh0fI0tiXpPmZZ7alA7fer32ug==","signatures":[{"sig":"MEQCIA8xSVDiv60hkuvvuTA/fArLDQxBQACi6ZyQfrCDKLP7AiATXB9VHw28WV8UlpAGyCRkpJ4gLXX8M82unPUunkGWzA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@markgrafhq%2fmarkgraf-embed@0.0.26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":489996},"main":"./dist/markgraf-embed.js","type":"module","style":"./dist/markgraf-embed.css","module":"./dist/markgraf-embed.js","browser":"./dist/markgraf-embed.js","exports":{".":{"default":"./dist/markgraf-embed.js"},"./css":{"style":"./dist/markgraf-embed.css","default":"./dist/markgraf-embed.css"},"./dist/markgraf-embed.js":"./dist/markgraf-embed.js","./dist/markgraf-embed.css":"./dist/markgraf-embed.css","./dist/CommitMono-Regular.woff2":"./dist/CommitMono-Regular.woff2"},"gitHead":"30d43cbc6298010d731ea1efae36b99eb8a2e3e6","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7bb1d6dc-a91e-497a-9edc-ed05272b5ab1"}},"repository":{"url":"git+https://github.com/markgrafhq/markgraf-embed.git","type":"git"},"_npmVersion":"11.16.0","description":"Embeddable Canvas2D player for markgraf animations. Drop-in for any HTML page or bundler.","directories":{},"sideEffects":true,"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/markgraf-embed_0.0.26_1783183279842_0.6666586539072739","host":"s3://npm-registry-packages-npm-production"}},"0.0.27":{"name":"@markgrafhq/markgraf-embed","version":"0.0.27","keywords":["markgraf","animation","diagram","graph","canvas","embed","documentation"],"author":{"name":"Mark Eibes","email":"mark.eibes@gmail.com"},"license":"MIT","_id":"@markgrafhq/markgraf-embed@0.0.27","maintainers":[{"name":"i-am-the-slime","email":"mark.eibes@gmail.com"}],"homepage":"https://github.com/markgrafhq/markgraf-www#readme","bugs":{"url":"https://github.com/markgrafhq/markgraf-www/issues"},"dist":{"shasum":"ed4f9557cbb93701580ac3dc03f9e3048896906c","tarball":"https://registry.npmjs.org/@markgrafhq/markgraf-embed/-/markgraf-embed-0.0.27.tgz","fileCount":6,"integrity":"sha512-62ycOb/IBPDefFjTL3vSsTjl5iazWpZgFJ2NSQY396Ud8MdIKXf6Hf78ZWMMk/oKasLWzjrlH79O6/WIA7YtGg==","signatures":[{"sig":"MEUCIQDOXwBTnjKsNbcjpMvKeLEbNAPzojYkocRZmGquWkUnUgIgSoXQ4l3JpE3pmVjA34cNuNlm6Zi3tHft9M7yhBp0wSk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@markgrafhq%2fmarkgraf-embed@0.0.27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":528672},"main":"./dist/markgraf-embed.js","type":"module","style":"./dist/markgraf-embed.css","module":"./dist/markgraf-embed.js","browser":"./dist/markgraf-embed.js","exports":{".":{"default":"./dist/markgraf-embed.js"},"./css":{"style":"./dist/markgraf-embed.css","default":"./dist/markgraf-embed.css"},"./dist/markgraf-embed.js":"./dist/markgraf-embed.js","./dist/markgraf-embed.css":"./dist/markgraf-embed.css","./dist/CommitMono-Regular.woff2":"./dist/CommitMono-Regular.woff2"},"gitHead":"ca9e9eccb8e04a38e1390e6ab5a811c50a847479","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7bb1d6dc-a91e-497a-9edc-ed05272b5ab1"}},"repository":{"url":"git+https://github.com/markgrafhq/markgraf-embed.git","type":"git"},"_npmVersion":"11.16.0","description":"Embeddable Canvas2D player for markgraf animations. Drop-in for any HTML page or bundler.","directories":{},"sideEffects":true,"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/markgraf-embed_0.0.27_1783239631493_0.792072277470476","host":"s3://npm-registry-packages-npm-production"}},"0.0.28":{"name":"@markgrafhq/markgraf-embed","version":"0.0.28","keywords":["markgraf","animation","diagram","graph","canvas","embed","documentation"],"author":{"name":"Mark Eibes","email":"mark.eibes@gmail.com"},"license":"MIT","_id":"@markgrafhq/markgraf-embed@0.0.28","maintainers":[{"name":"i-am-the-slime","email":"mark.eibes@gmail.com"}],"homepage":"https://github.com/markgrafhq/markgraf-www#readme","bugs":{"url":"https://github.com/markgrafhq/markgraf-www/issues"},"dist":{"shasum":"39d8a95bea1d3452d53df19106c10e86f6112d48","tarball":"https://registry.npmjs.org/@markgrafhq/markgraf-embed/-/markgraf-embed-0.0.28.tgz","fileCount":6,"integrity":"sha512-MIliQ3IqfCsXtgfoC9tV8Kqcu8YfLvzY6Nt0fAcuuJ/oFbvSTlDxwz6fG0pbbRCGykgTMcjz/T5qXy4ziAJ/tg==","signatures":[{"sig":"MEYCIQDREe0cdRthW/dd424e6pitDNHsq2FfmDiVrW73kH9TTAIhAKbcbTg2Fj+QSi5H9qY25THm5S8dDjVX7CL1TYzN4ygJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@markgrafhq%2fmarkgraf-embed@0.0.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":573427},"main":"./dist/markgraf-embed.js","type":"module","style":"./dist/markgraf-embed.css","module":"./dist/markgraf-embed.js","browser":"./dist/markgraf-embed.js","exports":{".":{"default":"./dist/markgraf-embed.js"},"./css":{"style":"./dist/markgraf-embed.css","default":"./dist/markgraf-embed.css"},"./dist/markgraf-embed.js":"./dist/markgraf-embed.js","./dist/markgraf-embed.css":"./dist/markgraf-embed.css","./dist/CommitMono-Regular.woff2":"./dist/CommitMono-Regular.woff2"},"gitHead":"274454bd7e1e5975f504d296aa9702bea6b08015","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7bb1d6dc-a91e-497a-9edc-ed05272b5ab1"}},"repository":{"url":"git+https://github.com/markgrafhq/markgraf-embed.git","type":"git"},"_npmVersion":"11.16.0","description":"Embeddable Canvas2D player for markgraf animations. Drop-in for any HTML page or bundler.","directories":{},"sideEffects":true,"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/markgraf-embed_0.0.28_1783946289196_0.3157415564106223","host":"s3://npm-registry-packages-npm-production"}},"0.0.29":{"name":"@markgrafhq/markgraf-embed","version":"0.0.29","keywords":["markgraf","animation","diagram","graph","canvas","embed","documentation"],"author":{"name":"Mark Eibes","email":"mark.eibes@gmail.com"},"license":"MIT","_id":"@markgrafhq/markgraf-embed@0.0.29","maintainers":[{"name":"i-am-the-slime","email":"mark.eibes@gmail.com"}],"homepage":"https://github.com/markgrafhq/markgraf-www#readme","bugs":{"url":"https://github.com/markgrafhq/markgraf-www/issues"},"dist":{"shasum":"59f82d3e9b3eacf6587d1564d47ea41e671ea448","tarball":"https://registry.npmjs.org/@markgrafhq/markgraf-embed/-/markgraf-embed-0.0.29.tgz","fileCount":6,"integrity":"sha512-gpiJ0CTqDf6KliDX6zvr2w5U7Tu5aToVOiqFGq8JXI2tZjy1z7/Afhra82eh5aAW7/G7jKfC+iaOCBXMCZtC3A==","signatures":[{"sig":"MEUCID6sIcvj4Qg2lBUuDiqmmED5JQslOeVb1PiHwWRKPBr/AiEA2NEuEqqqsbbD6u2cx0CgHSuBX7duMh2OirpQuIxpD9w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@markgrafhq%2fmarkgraf-embed@0.0.29","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":573427},"main":"./dist/markgraf-embed.js","type":"module","style":"./dist/markgraf-embed.css","module":"./dist/markgraf-embed.js","browser":"./dist/markgraf-embed.js","exports":{".":{"default":"./dist/markgraf-embed.js"},"./css":{"style":"./dist/markgraf-embed.css","default":"./dist/markgraf-embed.css"},"./dist/markgraf-embed.js":"./dist/markgraf-embed.js","./dist/markgraf-embed.css":"./dist/markgraf-embed.css","./dist/CommitMono-Regular.woff2":"./dist/CommitMono-Regular.woff2"},"gitHead":"70ce9b7a48fd28662a0d9d6dba04bde1a2868b30","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7bb1d6dc-a91e-497a-9edc-ed05272b5ab1"}},"repository":{"url":"git+https://github.com/markgrafhq/markgraf-embed.git","type":"git"},"_npmVersion":"11.16.0","description":"Embeddable Canvas2D player for markgraf animations. Drop-in for any HTML page or bundler.","directories":{},"sideEffects":true,"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/markgraf-embed_0.0.29_1783950432328_0.02736661399061635","host":"s3://npm-registry-packages-npm-production"}},"0.0.30":{"name":"@markgrafhq/markgraf-embed","version":"0.0.30","keywords":["markgraf","animation","diagram","graph","canvas","embed","documentation"],"author":{"name":"Mark Eibes","email":"mark.eibes@gmail.com"},"license":"MIT","_id":"@markgrafhq/markgraf-embed@0.0.30","maintainers":[{"name":"i-am-the-slime","email":"mark.eibes@gmail.com"}],"homepage":"https://github.com/markgrafhq/markgraf-www#readme","bugs":{"url":"https://github.com/markgrafhq/markgraf-www/issues"},"dist":{"shasum":"8ed153dfca1948c486b7848f5a54752b6ca32b35","tarball":"https://registry.npmjs.org/@markgrafhq/markgraf-embed/-/markgraf-embed-0.0.30.tgz","fileCount":6,"integrity":"sha512-NYhYgYC4hIzahfI+YjcSEdPil23ztGTpRCZZW/uRtJkyJC7R9N19tfIsAQSiF7jZyxqRooTjMqaymD8oHlmB7A==","signatures":[{"sig":"MEUCIBWJcC3Ix8um3YhmTeCR6ChmjvT1fmwMe8mPzqpe+mHxAiEAx2vlKJsEH3T1trqBlSyqc43vV8SFx6UMiFoxj9eobFY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@markgrafhq%2fmarkgraf-embed@0.0.30","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":692800},"main":"./dist/markgraf-embed.js","type":"module","style":"./dist/markgraf-embed.css","module":"./dist/markgraf-embed.js","browser":"./dist/markgraf-embed.js","exports":{".":{"default":"./dist/markgraf-embed.js"},"./css":{"style":"./dist/markgraf-embed.css","default":"./dist/markgraf-embed.css"},"./dist/markgraf-embed.js":"./dist/markgraf-embed.js","./dist/markgraf-embed.css":"./dist/markgraf-embed.css","./dist/CommitMono-Regular.woff2":"./dist/CommitMono-Regular.woff2"},"gitHead":"38c6483cf289e0d3aad0e0b8c0b4775b87e2c4fc","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7bb1d6dc-a91e-497a-9edc-ed05272b5ab1"}},"repository":{"url":"git+https://github.com/markgrafhq/markgraf-embed.git","type":"git"},"_npmVersion":"11.17.0","description":"Embeddable Canvas2D player for markgraf animations. Drop-in for any HTML page or bundler.","directories":{},"sideEffects":true,"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/markgraf-embed_0.0.30_1788422638105_0.030360884857370873","host":"s3://npm-registry-packages-npm-production"}},"0.0.31":{"name":"@markgrafhq/markgraf-embed","version":"0.0.31","keywords":["markgraf","animation","diagram","graph","canvas","embed","documentation"],"author":{"name":"Mark Eibes","email":"mark.eibes@gmail.com"},"license":"MIT","_id":"@markgrafhq/markgraf-embed@0.0.31","maintainers":[{"name":"i-am-the-slime","email":"mark.eibes@gmail.com"}],"homepage":"https://github.com/markgrafhq/markgraf-www#readme","bugs":{"url":"https://github.com/markgrafhq/markgraf-www/issues"},"dist":{"shasum":"ce6a88a5df259d2d81e30d69cfae5ed730c69b65","tarball":"https://registry.npmjs.org/@markgrafhq/markgraf-embed/-/markgraf-embed-0.0.31.tgz","fileCount":6,"integrity":"sha512-JK0u4LFbfS2G5JGk7MJd34Uu9F2FlSDTHWpJY8g6uUKfSYwwU1RIT51H5XrueTfv1aIhZoYa77nrlLLVHqG0ZA==","signatures":[{"sig":"MEQCICWH99BQAiG+8SK3Pm7VOAoS0kLdBjazYg748BXAR/ltAiBMlmtNz+4vc81mI8ZyiT+ShOCBXYAYbTdKB21Q49T5Gw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@markgrafhq%2fmarkgraf-embed@0.0.31","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":716163},"main":"./dist/markgraf-embed.js","type":"module","style":"./dist/markgraf-embed.css","module":"./dist/markgraf-embed.js","browser":"./dist/markgraf-embed.js","exports":{".":{"default":"./dist/markgraf-embed.js"},"./css":{"style":"./dist/markgraf-embed.css","default":"./dist/markgraf-embed.css"},"./dist/markgraf-embed.js":"./dist/markgraf-embed.js","./dist/markgraf-embed.css":"./dist/markgraf-embed.css","./dist/CommitMono-Regular.woff2":"./dist/CommitMono-Regular.woff2"},"gitHead":"544bd356754d6b944de2249d69fadfa55f6e8d01","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7bb1d6dc-a91e-497a-9edc-ed05272b5ab1"}},"repository":{"url":"git+https://github.com/markgrafhq/markgraf-embed.git","type":"git"},"_npmVersion":"11.19.0","description":"Embeddable Canvas2D player for markgraf animations. Drop-in for any HTML page or bundler.","directories":{},"sideEffects":true,"_nodeVersion":"24.20.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/markgraf-embed_0.0.31_1788647194100_0.2239719253125083","host":"s3://npm-registry-packages-npm-production"}},"0.0.41":{"name":"@markgrafhq/markgraf-embed","version":"0.0.41","keywords":["markgraf","animation","diagram","graph","canvas","embed","documentation"],"author":{"name":"Mark Eibes","email":"mark.eibes@gmail.com"},"license":"MIT","_id":"@markgrafhq/markgraf-embed@0.0.41","maintainers":[{"name":"i-am-the-slime","email":"mark.eibes@gmail.com"}],"homepage":"https://github.com/markgrafhq/markgraf-www#readme","bugs":{"url":"https://github.com/markgrafhq/markgraf-www/issues"},"dist":{"shasum":"3a7600907157ee197b4d10356b1bc857fda6177a","tarball":"https://registry.npmjs.org/@markgrafhq/markgraf-embed/-/markgraf-embed-0.0.41.tgz","fileCount":10,"integrity":"sha512-VDKSNpa2Id4LRay9NFdNHKlbnXoNHG03BuNdrY/2tns6Ke/JTsHVxDkuUlyjbRnjpC+EKfJRZhogpu0GFyk2HA==","signatures":[{"sig":"MEQCIHTbmwMKxODu15mT0lX/c9KtJzKx/4xM7mwSw1Mc2Go9AiBxaCul6xmKXk+E1vI8Xmy01YmSxH+pNe4Q5UTQRteTEw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAb6z5XAHKdB/vZSWLLxKXp2j48b1MXsl9RaTLcDSDeNAiBziwT6YNWl7m++W5nv1wsWfqOmaHlkpmLrM05fApjrRA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@markgrafhq%2fmarkgraf-embed@0.0.41","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2303143},"main":"./dist/markgraf-embed.js","type":"module","style":"./dist/markgraf-embed.css","types":"./dist/markgraf-embed.d.ts","module":"./dist/markgraf-embed.js","browser":"./dist/markgraf-embed.js","exports":{".":{"types":"./dist/markgraf-embed.d.ts","default":"./dist/markgraf-embed.js"},"./css":{"style":"./dist/markgraf-embed.css","default":"./dist/markgraf-embed.css"},"./dist/markgraf-embed.js":{"types":"./dist/markgraf-embed.d.ts","default":"./dist/markgraf-embed.js"},"./dist/markgraf-embed.css":"./dist/markgraf-embed.css","./dist/CommitMono-Regular.woff2":"./dist/CommitMono-Regular.woff2"},"gitHead":"01d0aa9b059933e74cb667bf1908af3a5f7ecee4","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7bb1d6dc-a91e-497a-9edc-ed05272b5ab1"}},"repository":{"url":"git+https://github.com/markgrafhq/markgraf-embed.git","type":"git"},"_npmVersion":"11.19.0","description":"Embeddable Canvas2D player for markgraf animations. Drop-in for any HTML page or bundler.","directories":{},"sideEffects":true,"_nodeVersion":"24.20.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/markgraf-embed_0.0.41_1789682218678_0.9709885592172787","host":"s3://npm-registry-packages-npm-production"}},"0.0.42":{"name":"@markgrafhq/markgraf-embed","version":"0.0.42","keywords":["markgraf","animation","diagram","graph","canvas","embed","documentation"],"author":{"name":"Mark Eibes","email":"mark.eibes@gmail.com"},"license":"MIT","_id":"@markgrafhq/markgraf-embed@0.0.42","maintainers":[{"name":"i-am-the-slime","email":"mark.eibes@gmail.com"}],"homepage":"https://github.com/markgrafhq/markgraf-www#readme","bugs":{"url":"https://github.com/markgrafhq/markgraf-www/issues"},"dist":{"shasum":"f66dc18a9db38cc8312524e10dc274fd92b4bf10","tarball":"https://registry.npmjs.org/@markgrafhq/markgraf-embed/-/markgraf-embed-0.0.42.tgz","fileCount":10,"integrity":"sha512-n/ZkY43OE7DUOo0xbr/vvWkOmZIQY94/bkZkHzZ+ZeW6xAJk1tHf//PQxWf0u+KTtmevsSu8GFfVt0sJegnMCg==","signatures":[{"sig":"MEQCIHoqNkUkfr73MHuJ52W/dFvYzXCDSM5Ejvzc7ubxFW6uAiAC3CA3SazKwl2whKtAO5nU9VIEJyiQt716i5kqok5log==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCID7VlPdM1/ac+Wr8iXnuIUHqB1B55q9M2xmd57PQhiq2AiAawEHj/uO7i2MLsMWeBWoQCx4XaXsspbADSc1irIc8Pw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@markgrafhq%2fmarkgraf-embed@0.0.42","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2308741},"main":"./dist/markgraf-embed.js","type":"module","style":"./dist/markgraf-embed.css","types":"./dist/markgraf-embed.d.ts","module":"./dist/markgraf-embed.js","browser":"./dist/markgraf-embed.js","exports":{".":{"types":"./dist/markgraf-embed.d.ts","default":"./dist/markgraf-embed.js"},"./css":{"style":"./dist/markgraf-embed.css","default":"./dist/markgraf-embed.css"},"./dist/markgraf-embed.js":{"types":"./dist/markgraf-embed.d.ts","default":"./dist/markgraf-embed.js"},"./dist/markgraf-embed.css":"./dist/markgraf-embed.css","./dist/CommitMono-Regular.woff2":"./dist/CommitMono-Regular.woff2"},"gitHead":"3527d3b6ade113a25bc274ba45711876199274f8","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7bb1d6dc-a91e-497a-9edc-ed05272b5ab1"}},"repository":{"url":"git+https://github.com/markgrafhq/markgraf-embed.git","type":"git"},"_npmVersion":"11.19.0","description":"Embeddable Canvas2D player for markgraf animations. Drop-in for any HTML page or bundler.","directories":{},"sideEffects":true,"_nodeVersion":"24.20.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/markgraf-embed_0.0.42_1789943174771_0.6338699769020466","host":"s3://npm-registry-packages-npm-production"}},"0.0.44":{"name":"@markgrafhq/markgraf-embed","version":"0.0.44","keywords":["markgraf","animation","diagram","graph","canvas","embed","documentation"],"author":{"name":"Mark Eibes","email":"mark.eibes@gmail.com"},"license":"MIT","_id":"@markgrafhq/markgraf-embed@0.0.44","maintainers":[{"name":"i-am-the-slime","email":"mark.eibes@gmail.com"}],"homepage":"https://github.com/markgrafhq/markgraf-www#readme","bugs":{"url":"https://github.com/markgrafhq/markgraf-www/issues"},"dist":{"shasum":"8a0930d78e9f8a6d2c0ece6caa72a73f26b492dd","tarball":"https://registry.npmjs.org/@markgrafhq/markgraf-embed/-/markgraf-embed-0.0.44.tgz","fileCount":10,"integrity":"sha512-ohwxhp60UkaUhOolUiboNIsbSOzch+gF0XkESYm4fWAruhfBKIIDmwo9mnPsWCuyBHeT0Jg+IRJ0JFDxcXPynQ==","signatures":[{"sig":"MEUCIG7vfg1Fir9mQbeivEsey98Fc4i6AEH2a/G82/36fHQdAiEA4Gs0ih/9VQ3zQYEY7lMLw9rxhyXExDaJG3b9OzTziKs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIG5Ggga5b9V/jb2jGK/4bn/3Ls/hgzSpyE6M5NQ7WvW1AiBXUSnUz/eH9Z0cx+XQtK/3U+b9QFNSHR4lC76CPFLatQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@markgrafhq%2fmarkgraf-embed@0.0.44","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3010653},"main":"./dist/markgraf-embed.js","type":"module","style":"./dist/markgraf-embed.css","types":"./dist/markgraf-embed.d.ts","module":"./dist/markgraf-embed.js","browser":"./dist/markgraf-embed.js","exports":{".":{"types":"./dist/markgraf-embed.d.ts","default":"./dist/markgraf-embed.js"},"./css":{"style":"./dist/markgraf-embed.css","default":"./dist/markgraf-embed.css"},"./dist/markgraf-embed.js":{"types":"./dist/markgraf-embed.d.ts","default":"./dist/markgraf-embed.js"},"./dist/markgraf-embed.css":"./dist/markgraf-embed.css","./dist/CommitMono-Regular.woff2":"./dist/CommitMono-Regular.woff2"},"gitHead":"cd87f22469d8249dad1a25f36edf49c2f92b0f5e","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"7bb1d6dc-a91e-497a-9edc-ed05272b5ab1"}},"repository":{"url":"git+https://github.com/markgrafhq/markgraf-embed.git","type":"git"},"_npmVersion":"11.19.0","description":"Embeddable Canvas2D player for markgraf animations. Drop-in for any HTML page or bundler.","directories":{},"sideEffects":true,"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/markgraf-embed_0.0.44_1790860527228_0.30520797923655985","host":"s3://npm-registry-packages-npm-production"}},"0.0.45":{"_id":"@markgrafhq/markgraf-embed@0.0.45","bugs":{"url":"https://github.com/markgrafhq/markgraf-www/issues"},"dist":{"shasum":"ebaa278d5754a04e2eb439111901e0f70b88a8d8","tarball":"https://registry.npmjs.org/@markgrafhq/markgraf-embed/-/markgraf-embed-0.0.45.tgz","fileCount":10,"integrity":"sha512-Yu5A5h11EWDk5YLu9j0GFrWwUgeqkFt/+bTpH3vC9SwJP+/Cwaf/R9+SQfE4vn7/MYlYDbsuZuauvU2jSlkagA==","signatures":[{"sig":"MEYCIQDp63GHjjxPkfIHcy+Y1SRQ66WhbO94TFAUYaOWE+TKCQIhALhhE0Tr2Rd7c5BtBbitDpScVSll5CsnHo6d//VA7NIF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDN/a3KyQugg0Fjwivet2DuAWknSB7SBKKiBpl/Ifrv1AIhANHk8BjrUcoeDNmK0wKT5yYuQz4nA7rBiZBh8Wzvvohc"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@markgrafhq%2fmarkgraf-embed@0.0.45","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3010653},"main":"./dist/markgraf-embed.js","name":"@markgrafhq/markgraf-embed","type":"module","style":"./dist/markgraf-embed.css","types":"./dist/markgraf-embed.d.ts","author":{"name":"Mark Eibes","email":"mark.eibes@gmail.com"},"module":"./dist/markgraf-embed.js","browser":"./dist/markgraf-embed.js","exports":{".":{"types":"./dist/markgraf-embed.d.ts","default":"./dist/markgraf-embed.js"},"./css":{"style":"./dist/markgraf-embed.css","default":"./dist/markgraf-embed.css"},"./dist/markgraf-embed.js":{"types":"./dist/markgraf-embed.d.ts","default":"./dist/markgraf-embed.js"},"./dist/markgraf-embed.css":"./dist/markgraf-embed.css","./dist/CommitMono-Regular.woff2":"./dist/CommitMono-Regular.woff2"},"gitHead":"0fe2b89204b65bb465f346d25581a1ffe8e83a1d","license":"MIT","version":"0.0.45","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"7bb1d6dc-a91e-497a-9edc-ed05272b5ab1"}},"homepage":"https://github.com/markgrafhq/markgraf-www#readme","keywords":["markgraf","animation","diagram","graph","canvas","embed","documentation"],"repository":{"url":"git+https://github.com/markgrafhq/markgraf-embed.git","type":"git"},"_npmVersion":"11.19.0","description":"Embeddable Canvas2D player for markgraf animations. Drop-in for any HTML page or bundler.","directories":{},"maintainers":[{"name":"i-am-the-slime","email":"mark.eibes@gmail.com"}],"sideEffects":true,"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/markgraf-embed_0.0.45_1790861515395_0.9474925452067231"}}},"time":{"created":"2026-05-21T14:28:46.713Z","modified":"2026-10-01T13:31:55.879Z","0.1.0":"2026-05-21T14:28:47.052Z","0.1.1":"2026-05-21T15:00:10.626Z","0.1.2":"2026-05-21T16:07:07.180Z","0.1.3":"2026-05-21T16:19:46.499Z","0.1.4":"2026-05-22T08:49:25.891Z","0.1.5":"2026-05-22T17:36:32.219Z","0.1.9":"2026-06-01T16:15:00.536Z","0.1.10":"2026-06-01T17:07:07.762Z","0.1.11":"2026-06-03T20:08:56.460Z","0.1.12":"2026-06-04T10:53:37.365Z","0.1.13":"2026-06-04T13:19:26.624Z","0.1.14":"2026-06-06T07:46:47.067Z","0.1.15":"2026-06-07T13:48:04.140Z","0.1.16":"2026-06-11T10:28:07.145Z","0.1.17":"2026-06-20T12:24:35.692Z","0.1.18":"2026-07-03T13:49:18.468Z","0.0.25":"2026-07-03T14:06:10.677Z","0.0.26":"2026-07-04T16:41:19.998Z","0.0.27":"2026-07-05T08:20:31.668Z","0.0.28":"2026-07-13T12:38:09.362Z","0.0.29":"2026-07-13T13:47:12.463Z","0.1.19":"2026-07-13T13:53:25.063Z","0.1.20":"2026-07-22T19:48:45.036Z","0.1.21":"2026-07-25T16:54:38.695Z","0.1.22":"2026-08-18T20:24:58.196Z","0.1.23":"2026-08-23T10:32:15.864Z","0.1.24":"2026-08-27T20:19:08.282Z","0.1.25":"2026-08-27T20:52:14.509Z","0.1.26":"2026-09-01T20:33:12.698Z","0.1.27":"2026-09-02T09:47:45.922Z","0.1.28":"2026-09-02T09:52:32.068Z","0.1.29":"2026-09-02T10:04:46.355Z","0.1.30":"2026-09-02T11:16:34.059Z","0.1.31":"2026-09-02T11:19:19.797Z","0.0.30":"2026-09-03T08:03:58.289Z","0.0.31":"2026-09-05T22:26:34.249Z","0.0.41":"2026-09-17T21:56:58.854Z","0.0.42":"2026-09-20T22:26:14.863Z","0.0.44":"2026-10-01T13:15:27.335Z","0.0.45":"2026-10-01T13:31:55.510Z"},"bugs":{"url":"https://github.com/markgrafhq/markgraf-www/issues"},"author":{"name":"Mark Eibes","email":"mark.eibes@gmail.com"},"license":"MIT","homepage":"https://github.com/markgrafhq/markgraf-www#readme","keywords":["markgraf","animation","diagram","graph","canvas","embed","documentation"],"repository":{"url":"git+https://github.com/markgrafhq/markgraf-embed.git","type":"git"},"description":"Embeddable Canvas2D player for markgraf animations. Drop-in for any HTML page or bundler.","maintainers":[{"name":"i-am-the-slime","email":"mark.eibes@gmail.com"}],"readme":"# @markgrafhq/markgraf-embed\n\nDrop-in Canvas2D and SVG player for [markgraf](https://github.com/i-am-the-slime/markgraf) animations.\n\nDecorate any element with `data-markgraf` containing markgraf source text and\nthe script replaces it with an interactive player — scrub bar, keyframe ticks,\nplay/pause, speed control, single-active-player coordination across multiple\nembeds on the same page, and Space toggles whichever player is currently\nactive.\n\n## Browser requirements\n\nThe default Canvas player compiles and renders in an inline Web Worker. It requires\nWorkers, transferable OffscreenCanvas, FinalizationRegistry, and worker-side CSS\nFont Loading. Content Security Policies must permit `worker-src blob:`.\nThere is no automatic renderer fallback. For hosts that forbid workers, set\n`data-markgraf-renderer=\"svg\"` on the embed element to select the main-thread\nSVG player explicitly. Bundled fonts load before the ready callback and first frame.\n\n## From a CDN (no build step)\n\n```html\n<link rel=\"stylesheet\" href=\"https://unpkg.com/@markgrafhq/markgraf-embed/dist/markgraf-embed.css\">\n<script src=\"https://unpkg.com/@markgrafhq/markgraf-embed/dist/markgraf-embed.js\"></script>\n\n<div data-markgraf>\nseed 1\nscene v1 {\n  + client: Client\n  + api: API\n  + client -> api\n  client ~> api: GET /user/42\n}\n</div>\n```\n\n## From a bundler\n\n```js\nimport \"@markgrafhq/markgraf-embed/css\";\nimport \"@markgrafhq/markgraf-embed\"; // side-effect: registers window.markgraf, auto-mounts\n```\n\n## Sizing\n\nSet inline CSS on the embed element:\n\n```html\n<!-- Cap canvas height at 320px -->\n<div data-markgraf style=\"--mg-max-height: 320px\">…</div>\n\n<!-- Cap the embed width -->\n<div data-markgraf style=\"max-width: 420px\">…</div>\n\n<!-- Use most of the viewport for a deep diagram -->\n<div data-markgraf style=\"--mg-max-height: 80svh\">…</div>\n```\n\n## Programmatic mount\n\nThe script exposes `window.markgraf`. Mounting is asynchronous and returns a\ndisposer immediately. The optional fourth argument receives the ready API after\ncompilation and first draw; it is never called after disposal or remount.\n\n```js\nconst dispose = markgraf.mount(element, source, true, api => {\n  // true starts paused; omit it or pass false for the existing autoplay behavior.\n  const unsubscribe = api.onComplete(event => {\n    console.log(event.reason, event.time);\n  });\n  api.playNext({ duration: 0.8, easing: { bounce: 0 } });\n  // Call unsubscribe() when this listener is no longer needed.\n});\n// Later, when removing/replacing the player:\ndispose();\n\nmarkgraf.mountAll();            // scan the whole document\nmarkgraf.mountAll(myContainer); // scan a subtree\n```\n\nRemounting the same element disposes its previous player. The disposer is\nidempotent and cancels pending initialization as well as active playback.\nTypeScript declarations are included; import the side-effect package to declare\n`window.markgraf`, and use `import type { MarkgrafApi } from\n\"@markgrafhq/markgraf-embed\"` for the callback API. The bundle has no runtime\nESM named exports and requires neither React nor Motion.\n\n### Live node views\n\n`mount` accepts an optional fifth `nodeViews` array. Each binding identifies a\nDSL node by `{ node, path }`, where `path` contains ancestor node IDs only,\noutermost first. Thus a root `api` is `{ node: \"api\" }`; an `api` inside\n`inside system { ... }` is `{ node: \"api\", path: [\"system\"] }`.\n\n```js\nconst dispose = markgraf.mount(element, source, true, undefined, [\n  {\n    node: \"api\",\n    path: [\"system\"],\n    mount(host) {\n      host.replaceChildren(Object.assign(document.createElement(\"button\"), {\n        textContent: \"Retry\",\n        onclick: retry,\n      }));\n      return () => host.replaceChildren();\n    },\n  },\n]);\n```\n\nEach binding mounts once for the lifetime of that player. Its cleanup runs\nonce on disposal or remount; hiding a node during travel does not dispose its\ncontent. The host fills the node's declared logical width and height, not the\nprojected pixel box. A registered face keeps its native outline; an\nunregistered face retains its normal label fallback. Content\nremains live rather than being a screenshot, but is inert during native travel\nand miniature/background modes. A reverse-facing node paints an opaque blank\nnative back, so no front label or child view is visible through it.\nFlat Canvas/SVG themes support node views; isometric themes and static exports\nretain the DSL representation.\n\n### Ready API\n\n| API | Behavior |\n| --- | --- |\n| `time`, `keyframe`, `playing` | live observation getters |\n| `ready`, `duration`, `cues`, `steps` | readiness, total seconds, scheduled cue/step metadata |\n| `play(options?)`, `playWith(options?)`, `pause()`, `toggle()` | ordinary playback controls |\n| `seek(seconds)`, `seekCue(id)`, `seekStep(name)` | clamped seek, retaining playing/paused state |\n| `setSpeed(speed)` | normal playback is `1`; captured spring-move deadlines do not change |\n| `playToCue(id, options?)`, `playToStep(name, options?)` | bounded playback to an explicit cue/step |\n| `playNext(options?)`, `playPrevious(options?)` | next/previous matching cue, or end/start boundary |\n| `subscribe(callback)` | current snapshot immediately, then playback updates |\n| `onCueEnter(callback)`, `onStepEnter(name, callback)` | cue events in traversal order |\n| `onComplete(callback)` | one target/boundary completion event per completed move |\n\nAll subscription methods return an ordinary unsubscribe function. Snapshot\ncallbacks receive `{ time, keyframe, playing }`. Cue metadata includes stable\nIDs, scheduler indices, timestamps, and graph paths.\n\n### Finite spring-shaped bounded playback\n\nAll four bounded methods accept identical options to the React package:\n\n```js\nconst options = { duration: 0.8, easing: { bounce: 0 } };\napi.playToCue(cueId, options);\napi.playToStep(\"received\", options);\napi.playNext(options);\napi.playPrevious(options);\n```\n\n`easing: {}` or `easing: { bounce: 0 }` opts into finite, monotonic\nspring-shaped motion. The playhead never overshoots, lands exactly at the\ntarget timestamp, and has zero endpoint velocity. No animation dependency or\nconsumer timer is needed.\n\nThe clock starts when the shared engine accepts the command in the Canvas\nworker. Dropped frames do not extend the move: the first frame at or after its\ndeadline renders the exact target and emits completion.\n\n- With `easing` or `arrival`, a positive finite `duration` (seconds) takes\n  precedence over `speed`. Otherwise the duration is derived once from the\n  distance and normalized supplied speed, or current speed when omitted.\n- Speed and duration are local to the opted-in move. `setSpeed` affects\n  subsequent runs without changing the current move's captured deadline.\n- Without either new field, playback remains constant-speed with legacy\n  **speed-first** precedence over duration.\n- Invalid/nonpositive durations are ignored. A zero-distance move completes\n  immediately without a pulse.\n- `stopAt: [\"step\"]` or `[\"tokenLine\"]` filters next/previous selection; no\n  remaining matching cue means the end/start boundary.\n\n### Optional arrival emphasis\n\nNonzero playhead bounce is rejected. To bounce a node visually, select it\nexplicitly; for example, if `\"received\"` is a step and `\"api\"` is inside `\"cluster\"`:\n\n```js\napi.playToStep(\"received\", {\n  duration: 0.8,\n  arrival: { node: \"api\", path: [\"cluster\"], bounce: 0.25 },\n});\n```\n\nArrival alone also opts into timed spring-shaped playback. `node` is the exact\nnode ID and `path` is its ancestor-node path, outermost first. Omit `path` for\n`[]`, the root graph. Markgraf never infers a node from a cue, token, or camera.\nOnly the selected node pulses during the last 45% of the move: it grows to\n`1.08`, then springs back to normal by the deadline. Arrival `bounce` defaults\nto `0.25`; finite values are clamped to `[0, 1]`.\n\n### Cancellation and event order\n\nPause, any seek, a replacement move, and disposal cancel the active bounded\nmove and clear emphasis without completion. Seeking preserves the current\nplaying/paused state; it does not implicitly pause.\n\nCue events follow scheduler-index order in the direction of travel, including\ncoincident cues only as far as the selected target. Completion fires exactly\nonce after those cue events and the paused-state update, with the exact target\ntime. Its `reason` is `\"target\"` or `\"boundary\"`. Call the returned unsubscribe\nfunctions to stop observations; disposal tears down the player.\n\n## Auto-mount details\n\n- Runs on `DOMContentLoaded`, or immediately if the script is loaded after.\n- Each `[data-markgraf]` is mounted exactly once; subsequent calls to\n  `mountAll` are idempotent.\n- Source text can come from (in order of preference):\n  1. `data-markgraf-src-b64` attribute (base64-encoded UTF-8)\n  2. `data-markgraf-src` attribute\n  3. the element's `textContent`\n\n## License\n\nMIT.\n","readmeFilename":"README.md"}