{"_id":"@blorkfield/overlay-core","_rev":"42-4a0fc186b5eedec21d0477947e22c2fd","name":"@blorkfield/overlay-core","dist-tags":{"latest":"0.11.7"},"versions":{"0.3.0":{"name":"@blorkfield/overlay-core","version":"0.3.0","_id":"@blorkfield/overlay-core@0.3.0","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"dist":{"shasum":"c858642aad586444d339227dec7a0f6569cfe354","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.3.0.tgz","fileCount":8,"integrity":"sha512-UdCb5vWqcEfAJgIamoarxHED5rxSfRAv+UJ3s0FO49M6OBbNOM18iorURXd9eKRv0H12LSSbmR3oqzM2LEBmoA==","signatures":[{"sig":"MEUCIE5+ludY9SwaVq2/rBOFE9u4oaNNtcGkFN7PSx9/+I/3AiEAnErD4/okooItPs1r+ucmEiZhFGAi1jSl6pvZIdcad6I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":580680},"main":"./dist/index.cjs","type":"module","_from":"file:blorkfield-overlay-core-0.3.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"blorkfield_user","email":"meier_steven@yahoo.com"},"_resolved":"/tmp/05f244a3eb0858b89d59650348906dbb/blorkfield-overlay-core-0.3.0.tgz","_integrity":"sha512-UdCb5vWqcEfAJgIamoarxHED5rxSfRAv+UJ3s0FO49M6OBbNOM18iorURXd9eKRv0H12LSSbmR3oqzM2LEBmoA==","_npmVersion":"10.9.4","description":"A physics based interactive canvas library built on Matter.js. Create dynamic scenes where objects fall under gravity, stack on obstacles, and trigger collapse events when pressure thresholds are exceeded. The library is optimized for interactive text eff","directories":{},"_nodeVersion":"22.21.1","dependencies":{"matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.3.0","concurrently":"^9.2.1","@changesets/cli":"^2.27.0","@types/matter-js":"^0.19.6","@types/opentype.js":"^1.3.8"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.3.0_1768696420492_0.007811085714692245","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@blorkfield/overlay-core","version":"0.4.0","_id":"@blorkfield/overlay-core@0.4.0","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"dist":{"shasum":"40a8790c46ed4e8f7b8c5b6fdceada20a9a93a6d","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.4.0.tgz","fileCount":173,"integrity":"sha512-P0RcjsZ4D3+R0DZ/wBX19mR3z5H2sT1XCS+wWPV/zf417uGS5ninRhzVAY7+YFf3sHzUpAXTw3+LHryfIVKRPg==","signatures":[{"sig":"MEUCIQCweVukoif+sZ64rKH9AsooUFUE064gqjAF2lsQmlzqigIgUPRn58QMZYBx2xrsUJ7fxVdkic79FzS5fQhbyyFbu74=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10218960},"main":"./dist/index.cjs","type":"module","_from":"file:blorkfield-overlay-core-0.4.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./fonts/*":"./fonts/*"},"scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"blorkfield_user","email":"meier_steven@yahoo.com"},"_resolved":"/tmp/307f20205afaf693f27727f71a5943af/blorkfield-overlay-core-0.4.0.tgz","_integrity":"sha512-P0RcjsZ4D3+R0DZ/wBX19mR3z5H2sT1XCS+wWPV/zf417uGS5ninRhzVAY7+YFf3sHzUpAXTw3+LHryfIVKRPg==","_npmVersion":"10.9.4","description":"A physics based interactive canvas library built on Matter.js. Create dynamic scenes where objects fall under gravity, stack on obstacles, and trigger collapse events when pressure thresholds are exceeded. The library is optimized for interactive text eff","directories":{},"_nodeVersion":"22.21.1","dependencies":{"matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vite":"^5.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","concurrently":"^9.2.1","@changesets/cli":"^2.27.0","@types/matter-js":"^0.19.6","@types/opentype.js":"^1.3.8"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.4.0_1768704257039_0.8036923287003992","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@blorkfield/overlay-core","version":"0.4.1","_id":"@blorkfield/overlay-core@0.4.1","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"dist":{"shasum":"83678ad98c4846a1b29efc4421dd28ab8146c802","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.4.1.tgz","fileCount":173,"integrity":"sha512-7dW6SUY6HYFS0M+RKBp9XByyEFZOxRrVorbPA/BDI4WwUJ4aaQX6ODO6SFQnbrzbaIYYwo/It90Mi6cpJBrlaA==","signatures":[{"sig":"MEYCIQDMdxmH74Y4soFDBGcZ75XLEmXraZLvOpJsEaaKmmxvgwIhAOY2QhAdSCBkhoCMDGPgRn39WuldoJAyJ0ieuQykfRr9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10218457},"main":"./dist/index.cjs","type":"module","_from":"file:blorkfield-overlay-core-0.4.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./fonts/*":"./fonts/*"},"scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"blorkfield_user","email":"meier_steven@yahoo.com"},"_resolved":"/tmp/cd7a74350852598750cd611daf167bc8/blorkfield-overlay-core-0.4.1.tgz","_integrity":"sha512-7dW6SUY6HYFS0M+RKBp9XByyEFZOxRrVorbPA/BDI4WwUJ4aaQX6ODO6SFQnbrzbaIYYwo/It90Mi6cpJBrlaA==","_npmVersion":"10.9.4","description":"A physics based interactive canvas library built on Matter.js. Create dynamic scenes where objects fall under gravity, stack on obstacles, and trigger collapse events when pressure thresholds are exceeded. The library is optimized for interactive text eff","directories":{},"_nodeVersion":"22.21.1","dependencies":{"matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.8"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.4.1_1768744357430_0.342499132965016","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@blorkfield/overlay-core","version":"0.4.2","_id":"@blorkfield/overlay-core@0.4.2","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"dist":{"shasum":"a2e2030308e4ca0357f9fcc5160f4b96bd667bd8","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.4.2.tgz","fileCount":174,"integrity":"sha512-pc+vhff3pqQwzRRg8cgyG0hXiscHzteCZ2HOUL2RYdImA5OY1dTn1ow4IZTccth76NvrVN1MZ9ZEKrMAMQHVHQ==","signatures":[{"sig":"MEUCID/yUyHd+QHBB7e017BtWJ9U5vvXQjAYDQVihuXX0jSSAiEAj3dMj+Qn3bHMC7D6/BfyEeP2E9Z9ppOQA3gaaZxYb5I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10224205},"main":"./dist/index.cjs","type":"module","_from":"file:blorkfield-overlay-core-0.4.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"blorkfield_user","email":"meier_steven@yahoo.com"},"_resolved":"/tmp/0e31b6619879b3430ce5af2d1ec932fd/blorkfield-overlay-core-0.4.2.tgz","_integrity":"sha512-pc+vhff3pqQwzRRg8cgyG0hXiscHzteCZ2HOUL2RYdImA5OY1dTn1ow4IZTccth76NvrVN1MZ9ZEKrMAMQHVHQ==","_npmVersion":"10.9.4","description":"A physics based interactive canvas library built on Matter.js. Create dynamic scenes where objects fall under gravity, stack on obstacles, and trigger collapse events when pressure thresholds are exceeded. The library is optimized for interactive text eff","directories":{},"_nodeVersion":"22.21.1","dependencies":{"matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.8"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.4.2_1768744808561_0.07752712179832","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@blorkfield/overlay-core","version":"0.4.3","_id":"@blorkfield/overlay-core@0.4.3","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"dist":{"shasum":"9057216d66d2686a2ee3c60c2d7bfab3157cfaf2","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.4.3.tgz","fileCount":174,"integrity":"sha512-hs9TwjoBGb+c+HjDux2Ojbi7ta5MTkNoDE7UTRutSgBfk3D65OXt0c+MmXBiTGWMDIkI3ZTflRs+s9N8hX7ocQ==","signatures":[{"sig":"MEQCICItgZt/7wq5MITN+YCFJzeMZ+a6bi2dLhJHOWMMtXcbAiAcjrBmDsMui16O3xTCzIBXpXqEOehgIswdXMfuGv3lRw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10226249},"main":"./dist/index.cjs","type":"module","_from":"file:blorkfield-overlay-core-0.4.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"blorkfield_user","email":"meier_steven@yahoo.com"},"_resolved":"/tmp/7213ad736584bf7f7279db04209cac5b/blorkfield-overlay-core-0.4.3.tgz","_integrity":"sha512-hs9TwjoBGb+c+HjDux2Ojbi7ta5MTkNoDE7UTRutSgBfk3D65OXt0c+MmXBiTGWMDIkI3ZTflRs+s9N8hX7ocQ==","_npmVersion":"10.9.4","description":"A physics based interactive canvas library built on Matter.js. Create dynamic scenes where objects fall under gravity, stack on obstacles, and trigger collapse events when pressure thresholds are exceeded. The library is optimized for interactive text eff","directories":{},"_nodeVersion":"22.21.1","dependencies":{"matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.8"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.4.3_1768763897639_0.3389573544703477","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@blorkfield/overlay-core","version":"0.5.0","_id":"@blorkfield/overlay-core@0.5.0","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"dist":{"shasum":"36a792009332d73a63ad8475e6e9971f9b383b28","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.5.0.tgz","fileCount":174,"integrity":"sha512-ZJXpxanEFTkE+QT53m8qLAnRw6mMsJz+XvNx2SOjYxCTHCwfB1/7r+TcOWfqV30EDGdZGbCaO/2WevHnX0vmWA==","signatures":[{"sig":"MEUCICv3WBGw6dUe5LbC9joynwKoCz4GW7JC/pkMrB4kj+GHAiEA4lxpYDBSzlMJMXKTYrn7uKuAHKNv/jzbFguO0eVqry0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10255009},"main":"./dist/index.cjs","type":"module","_from":"file:blorkfield-overlay-core-0.5.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"blorkfield_user","email":"meier_steven@yahoo.com"},"_resolved":"/tmp/a6bad8c76b96e8f9fca3ef81217a8d80/blorkfield-overlay-core-0.5.0.tgz","_integrity":"sha512-ZJXpxanEFTkE+QT53m8qLAnRw6mMsJz+XvNx2SOjYxCTHCwfB1/7r+TcOWfqV30EDGdZGbCaO/2WevHnX0vmWA==","_npmVersion":"10.9.4","description":"A physics based interactive canvas library built on Matter.js. Create dynamic scenes where objects fall under gravity, stack on obstacles, and trigger collapse events when pressure thresholds are exceeded. The library is optimized for interactive text eff","directories":{},"_nodeVersion":"22.21.1","dependencies":{"matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.8"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.5.0_1768782457116_0.9468070059426752","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@blorkfield/overlay-core","version":"0.5.1","_id":"@blorkfield/overlay-core@0.5.1","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"dist":{"shasum":"0635e9b13428c29bbc015771976f2c0ed0840799","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.5.1.tgz","fileCount":174,"integrity":"sha512-GapfPnwbHcg9qdW599UO0iU0UFunL9ZYBxF0gJ/4CNqj7dFn1OkzobkzOiYXpXLws7uv50zzYPMV52wXIyleAA==","signatures":[{"sig":"MEUCIQC9ATdeA9Z2TecRuExDF3N4aK/l8t+MLA+z4HRSHDHsmgIgf+DalUXmcRh7n88BlEPdA6AFQYIzSnHP7NmQ1l0j/Hs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10306211},"main":"./dist/index.cjs","type":"module","_from":"file:blorkfield-overlay-core-0.5.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"blorkfield_user","email":"meier_steven@yahoo.com"},"_resolved":"/tmp/b8072cdc7f7d61b2450ddac77740d09a/blorkfield-overlay-core-0.5.1.tgz","_integrity":"sha512-GapfPnwbHcg9qdW599UO0iU0UFunL9ZYBxF0gJ/4CNqj7dFn1OkzobkzOiYXpXLws7uv50zzYPMV52wXIyleAA==","_npmVersion":"10.9.4","description":"A physics based interactive canvas library built on Matter.js. Create dynamic scenes where objects fall under gravity, stack on obstacles, and trigger collapse events when pressure thresholds are exceeded. The library is optimized for interactive text eff","directories":{},"_nodeVersion":"22.21.1","dependencies":{"matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.8"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.5.1_1768833758087_0.7255112668111581","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@blorkfield/overlay-core","version":"0.5.2","_id":"@blorkfield/overlay-core@0.5.2","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"dist":{"shasum":"732408491aab228cb4f3c765a777b7839b3613ad","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.5.2.tgz","fileCount":174,"integrity":"sha512-IXIbMo5mrZ5xTIdSCocJcpqKRekbfh5J7lqIRJK9kVaIEzwHAz857SPZiOvwszN8zSVIWykCUfMeaIwA3R/vfg==","signatures":[{"sig":"MEUCIHMTti7OGeGlDS5JB9pZcFZex3CPAxq0aVT2sOjriVvkAiEA0kI0V01O4s2wcaSnW/Svvk9Kdxc930X7xtUdZHZl31E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10306191},"main":"./dist/index.cjs","type":"module","_from":"file:blorkfield-overlay-core-0.5.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"blorkfield_user","email":"meier_steven@yahoo.com"},"_resolved":"/tmp/a1d794424c8a845e2e692337c4348a69/blorkfield-overlay-core-0.5.2.tgz","_integrity":"sha512-IXIbMo5mrZ5xTIdSCocJcpqKRekbfh5J7lqIRJK9kVaIEzwHAz857SPZiOvwszN8zSVIWykCUfMeaIwA3R/vfg==","_npmVersion":"10.9.4","description":"A physics based interactive canvas library built on Matter.js. Create dynamic scenes where objects fall under gravity, stack on obstacles, and trigger collapse events when pressure thresholds are exceeded. The library is optimized for interactive text eff","directories":{},"_nodeVersion":"22.21.1","dependencies":{"matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.8"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.5.2_1768835060043_0.7311925786235944","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@blorkfield/overlay-core","version":"0.5.3","_id":"@blorkfield/overlay-core@0.5.3","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"dist":{"shasum":"0623f05fe724f42b6130f4043116f71a62be1f39","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.5.3.tgz","fileCount":174,"integrity":"sha512-3TfdjN1Z3iNBJCYQ+CLebQSCGIKgwRWgLmw0Qlk7bjXLvmrJkGHPzJkyNY5lj0a+FQNHUmnhRe1yC+Q1fPSBhw==","signatures":[{"sig":"MEQCIGJaAjV4tNgjJRcvGLx9RxJiG2q+mBx8SbUzNyF0JKgnAiBktuMDNi5ePbaVEDJ1Vw9goNHhAkVZ0ukvVO7Pc7rgPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10307229},"main":"./dist/index.cjs","type":"module","_from":"file:blorkfield-overlay-core-0.5.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"blorkfield_user","email":"meier_steven@yahoo.com"},"_resolved":"/tmp/ede0fd6203dadb9bff9ecd309f57fb50/blorkfield-overlay-core-0.5.3.tgz","_integrity":"sha512-3TfdjN1Z3iNBJCYQ+CLebQSCGIKgwRWgLmw0Qlk7bjXLvmrJkGHPzJkyNY5lj0a+FQNHUmnhRe1yC+Q1fPSBhw==","_npmVersion":"10.9.4","description":"A physics based interactive canvas library built on Matter.js. Create dynamic scenes where objects fall under gravity, stack on obstacles, and trigger collapse events when pressure thresholds are exceeded. The library is optimized for interactive text eff","directories":{},"_nodeVersion":"22.21.1","dependencies":{"matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.8"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.5.3_1768856435417_0.946763612563231","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"@blorkfield/overlay-core","version":"0.5.4","_id":"@blorkfield/overlay-core@0.5.4","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"dist":{"shasum":"86b1d7b62b8d700a2107ac6c8f35c2bc8059c39c","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.5.4.tgz","fileCount":174,"integrity":"sha512-QRGlvsNH2u7fusN8zmeUpvLqvtSFJoLNISxDlpPsSeRBMLTctwcx/eeF0br4VIg6Q7OoQ6knITzX+VnV1hltmw==","signatures":[{"sig":"MEUCIE7qmcHaCpxork3SEyMA8pj+690GNqOV74dEXwvjEjarAiEApQIElFQCoKwgkQdfjSMkiYfniI+gITgxchURG1nhnHY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10306534},"main":"./dist/index.cjs","type":"module","_from":"file:blorkfield-overlay-core-0.5.4.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","typecheck":"tsc --noEmit","dev:svelte":"concurrently \"tsup --watch\" \"pnpm -C test-app-svelte dev\""},"_npmUser":{"name":"blorkfield_user","email":"meier_steven@yahoo.com"},"_resolved":"/tmp/4e2e8fb6917d76d7e5bab4434cf3a4e5/blorkfield-overlay-core-0.5.4.tgz","_integrity":"sha512-QRGlvsNH2u7fusN8zmeUpvLqvtSFJoLNISxDlpPsSeRBMLTctwcx/eeF0br4VIg6Q7OoQ6knITzX+VnV1hltmw==","_npmVersion":"10.9.4","description":"A physics based interactive canvas library built on Matter.js. Create dynamic scenes where objects fall under gravity, stack on obstacles, and trigger collapse events when pressure thresholds are exceeded. The library is optimized for interactive text eff","directories":{},"_nodeVersion":"22.21.1","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.8"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.5.4_1768870243374_0.23839767883504792","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"@blorkfield/overlay-core","version":"0.5.5","_id":"@blorkfield/overlay-core@0.5.5","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"dist":{"shasum":"5674cf31c1ec7eb6464b634a0d2698402a2fd4d1","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.5.5.tgz","fileCount":174,"integrity":"sha512-m8RaPq3o7BE4+/CBS8Sc+Nzt0NkpDBEgJy7PfogJcKIDUmwg+ILaKbXRbTjTmgY9mTEfXeCqqXMMqq/UZGH5IQ==","signatures":[{"sig":"MEUCIEQrTA8orF7d86xzJH65uaTGrF0y4DlPzTRTfcqWeTJxAiEApala5pWtGvd3VPSgq1tw/zJ5FyqUBcfXySPPBglLRMs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10306534},"main":"./dist/index.cjs","type":"module","_from":"file:blorkfield-overlay-core-0.5.5.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","typecheck":"tsc --noEmit","dev:svelte":"concurrently \"tsup --watch\" \"pnpm -C test-app-svelte dev\""},"_npmUser":{"name":"blorkfield_user","email":"meier_steven@yahoo.com"},"_resolved":"/tmp/3f155a91d5c588dcb249ac0b196050aa/blorkfield-overlay-core-0.5.5.tgz","_integrity":"sha512-m8RaPq3o7BE4+/CBS8Sc+Nzt0NkpDBEgJy7PfogJcKIDUmwg+ILaKbXRbTjTmgY9mTEfXeCqqXMMqq/UZGH5IQ==","_npmVersion":"10.9.4","description":"A physics based interactive canvas library built on Matter.js. Create dynamic scenes where objects fall under gravity, stack on obstacles, and trigger collapse events when pressure thresholds are exceeded. The library is optimized for interactive text eff","directories":{},"_nodeVersion":"22.21.1","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.8"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.5.5_1768870574439_0.6980586240016136","host":"s3://npm-registry-packages-npm-production"}},"0.5.6":{"name":"@blorkfield/overlay-core","version":"0.5.6","_id":"@blorkfield/overlay-core@0.5.6","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"dist":{"shasum":"4de5dd440ba7fa3b7d6f9f25071a415e77732218","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.5.6.tgz","fileCount":174,"integrity":"sha512-1deRqJMuWIhjLk6wgdMRGqdlV8KR21YOB9IbIcD9phqnkcaxzwdUPTDEzwFVMUhHswP0NzMYf/NfXgXlD+jcWA==","signatures":[{"sig":"MEUCICpe/k4XsrnphkBj0ii7p+mg3i7Gjq+KOR4zgnTKYFAPAiEAxQn1FuCwrfrjXzZEagJQDUemmD34EksObpKHe4PSUIE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10309392},"main":"./dist/index.cjs","type":"module","_from":"file:blorkfield-overlay-core-0.5.6.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","typecheck":"tsc --noEmit","dev:svelte":"concurrently \"tsup --watch\" \"pnpm -C test-app-svelte dev\""},"_npmUser":{"name":"blorkfield_user","email":"meier_steven@yahoo.com"},"_resolved":"/tmp/d7b5ec56e3686d92980f0a99fc46e2fb/blorkfield-overlay-core-0.5.6.tgz","_integrity":"sha512-1deRqJMuWIhjLk6wgdMRGqdlV8KR21YOB9IbIcD9phqnkcaxzwdUPTDEzwFVMUhHswP0NzMYf/NfXgXlD+jcWA==","_npmVersion":"10.9.4","description":"A physics based interactive canvas library built on Matter.js. Create dynamic scenes where objects fall under gravity, stack on obstacles, and trigger collapse events when pressure thresholds are exceeded. The library is optimized for interactive text eff","directories":{},"_nodeVersion":"22.21.1","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.8"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.5.6_1768916795521_0.6385058041403497","host":"s3://npm-registry-packages-npm-production"}},"0.5.7":{"name":"@blorkfield/overlay-core","version":"0.5.7","_id":"@blorkfield/overlay-core@0.5.7","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"dist":{"shasum":"ccbab666cc86aafd54ea55dd95798ea166192240","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.5.7.tgz","fileCount":174,"integrity":"sha512-Q87lRCHg1dzlxW2VGTlMB4WFTeSQojp1uspQPJZM6naHxoj6WbLYHoEHVvRU91uXJnn9jKHCk1Emx6TnZTx0VA==","signatures":[{"sig":"MEUCIE03Sf6+dwPjtiHtpAFCU7Ttf1CSlm904ttLGl777VgnAiEAlRCF4G77EOUdPWMZiU6vgowkv03sGdBx4Y5I8Ee1ES4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10312368},"main":"./dist/index.cjs","type":"module","_from":"file:blorkfield-overlay-core-0.5.7.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","typecheck":"tsc --noEmit","dev:svelte":"concurrently \"tsup --watch\" \"pnpm -C test-app-svelte dev\""},"_npmUser":{"name":"blorkfield_user","email":"meier_steven@yahoo.com"},"_resolved":"/tmp/c410709cfab6e3512205f7c499baf6be/blorkfield-overlay-core-0.5.7.tgz","_integrity":"sha512-Q87lRCHg1dzlxW2VGTlMB4WFTeSQojp1uspQPJZM6naHxoj6WbLYHoEHVvRU91uXJnn9jKHCk1Emx6TnZTx0VA==","_npmVersion":"10.9.4","description":"A physics based interactive canvas library built on Matter.js. Create dynamic scenes where objects fall under gravity, stack on obstacles, and trigger collapse events when pressure thresholds are exceeded. The library is optimized for interactive text eff","directories":{},"_nodeVersion":"22.21.1","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.8"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.5.7_1768963176814_0.8256735337386016","host":"s3://npm-registry-packages-npm-production"}},"0.5.8":{"name":"@blorkfield/overlay-core","version":"0.5.8","_id":"@blorkfield/overlay-core@0.5.8","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"dist":{"shasum":"2de4dca95203cf9c6db281256afac79f39fda8f1","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.5.8.tgz","fileCount":174,"integrity":"sha512-bsvPkfa2/l619J2FVguAxUfxKZ0XdwAJOaI2LPzoKzm+xWEG1NqIf/NYPCIWiDocWIE2yRVhlKJtPebpK5cOwg==","signatures":[{"sig":"MEUCIHkF+vfdmtDlxv4xX32hGo0QBosgN5h1FE9+kmUXV6uVAiEA5CtUSddaRFs3/lt0gM3O0DMwkkJ25V5LOqxsXpJa3dA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10322799},"main":"./dist/index.cjs","type":"module","_from":"file:blorkfield-overlay-core-0.5.8.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","typecheck":"tsc --noEmit","dev:svelte":"concurrently \"tsup --watch\" \"pnpm -C test-app-svelte dev\""},"_npmUser":{"name":"blorkfield_user","email":"meier_steven@yahoo.com"},"_resolved":"/tmp/7801e46f1d87020582ceecaa5db6df3b/blorkfield-overlay-core-0.5.8.tgz","_integrity":"sha512-bsvPkfa2/l619J2FVguAxUfxKZ0XdwAJOaI2LPzoKzm+xWEG1NqIf/NYPCIWiDocWIE2yRVhlKJtPebpK5cOwg==","_npmVersion":"10.9.4","description":"A physics based interactive canvas library built on Matter.js. Create dynamic scenes where objects fall under gravity, stack on obstacles, and trigger collapse events when pressure thresholds are exceeded. The library is optimized for interactive text eff","directories":{},"_nodeVersion":"22.21.1","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.8"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.5.8_1769040940407_0.5695774337333792","host":"s3://npm-registry-packages-npm-production"}},"0.5.9":{"name":"@blorkfield/overlay-core","version":"0.5.9","_id":"@blorkfield/overlay-core@0.5.9","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"dist":{"shasum":"74f0a2127be2974e5f76ab9c05fd0b5ec81085e8","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.5.9.tgz","fileCount":174,"integrity":"sha512-bbe8SUcGr2I85ezuXkVNkwQsHDZCNKSlCm00AY90fSlYIN0lLjm9Hlk6V9FfWqlP0n2yqM3YzemlH7FjoWU5Iw==","signatures":[{"sig":"MEMCHyOW2PUMqIbWbI1L1vROhZPAh16HlSM4KB05stpZmJQCIFHMer8JbvUuBLiE5KzsjDEv9lCE/cieFzFlIvxP8Zqi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10323778},"main":"./dist/index.cjs","type":"module","_from":"file:blorkfield-overlay-core-0.5.9.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"blorkfield_user","email":"meier_steven@yahoo.com"},"_resolved":"/tmp/45295095088fd6a1d87b4df18048d45f/blorkfield-overlay-core-0.5.9.tgz","_integrity":"sha512-bbe8SUcGr2I85ezuXkVNkwQsHDZCNKSlCm00AY90fSlYIN0lLjm9Hlk6V9FfWqlP0n2yqM3YzemlH7FjoWU5Iw==","_npmVersion":"10.9.4","description":"A physics based interactive canvas library built on Matter.js. Create dynamic scenes where objects fall under gravity, stack on obstacles, and trigger collapse events when pressure thresholds are exceeded. The library is optimized for interactive text eff","directories":{},"_nodeVersion":"22.22.0","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.8"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.5.9_1769134806888_0.5105352868255508","host":"s3://npm-registry-packages-npm-production"}},"0.5.10":{"name":"@blorkfield/overlay-core","version":"0.5.10","keywords":["overlay","physics","matter-js","streaming","interactive"],"_id":"@blorkfield/overlay-core@0.5.10","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"homepage":"https://github.com/blorkfield/overlay-core#readme","bugs":{"url":"https://github.com/blorkfield/overlay-core/issues"},"dist":{"shasum":"9b85a463e7bd48e5a9f8eee8644cdbf08542b54a","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.5.10.tgz","fileCount":174,"integrity":"sha512-L2e+gLCRbBzULqHfUFd5KreCoHctRwYr71col/ZJoxXySbRiwKvle992kF0D408pXN6CX1lLIvK6qVOIgE9wyg==","signatures":[{"sig":"MEUCIQCTIiu1Rf2IdKxxFNm5DuW4E+CgIqbfSgntPlwa461gtgIgIXv8F5jQiyJ2Gg2DhYOC2NXbifir1CbGdftc8/0KDc8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10324075},"main":"./dist/index.cjs","type":"module","_from":"file:blorkfield-overlay-core-0.5.10.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"blorkfield_user","email":"meier_steven@yahoo.com"},"_resolved":"/tmp/99998c6ff964f61bf4d9ea1332312261/blorkfield-overlay-core-0.5.10.tgz","_integrity":"sha512-L2e+gLCRbBzULqHfUFd5KreCoHctRwYr71col/ZJoxXySbRiwKvle992kF0D408pXN6CX1lLIvK6qVOIgE9wyg==","repository":{"url":"git+https://github.com/blorkfield/overlay-core.git","type":"git"},"_npmVersion":"10.9.4","description":"Physics-based overlay scene library for interactive streaming overlays","directories":{},"_nodeVersion":"22.22.0","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.8"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.5.10_1769190516767_0.5729671110897729","host":"s3://npm-registry-packages-npm-production"}},"0.6.5":{"name":"@blorkfield/overlay-core","version":"0.6.5","keywords":["overlay","physics","matter-js","streaming","interactive"],"_id":"@blorkfield/overlay-core@0.6.5","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"homepage":"https://github.com/Blorkfield/overlay-core#readme","bugs":{"url":"https://github.com/Blorkfield/overlay-core/issues"},"dist":{"shasum":"10af548631178fffc7a5efdba665d810c5b947ef","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.6.5.tgz","fileCount":174,"integrity":"sha512-eBn/kVbJNVC4C9gWJ832+Ne/uueA1MefH+q5K817om0s/6e7bpeEGiYHrNqPl7Ih41igVb0GIWuH2Q9GkJa1tQ==","signatures":[{"sig":"MEUCIFHkhqiSvfxxLoIv8G88/d5t3sohQVayR2OOKbhBiZsfAiEA0tXJ5/Vl4yO09uihl1LHAyrPtonF+B79SgzFLCJMI/4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blorkfield%2foverlay-core@0.6.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10324971},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"gitHead":"6fb988dff6d17de80fa455d397f7c1c1d5a6ed01","scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","prepare":"[ -d test-app ] && pnpm -C test-app install || true","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c06f265-05c1-4fd1-a28a-9b7d463d867b"}},"repository":{"url":"git+https://github.com/Blorkfield/overlay-core.git","type":"git"},"_npmVersion":"11.8.0","description":"Physics-based overlay scene library for interactive streaming overlays","directories":{},"_nodeVersion":"22.22.0","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.1","devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.8"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.6.5_1769227861746_0.67583354404543","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@blorkfield/overlay-core","version":"0.7.0","keywords":["overlay","physics","matter-js","streaming","interactive"],"license":"GPL-3.0","_id":"@blorkfield/overlay-core@0.7.0","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"homepage":"https://github.com/Blorkfield/overlay-core#readme","bugs":{"url":"https://github.com/Blorkfield/overlay-core/issues"},"dist":{"shasum":"a2303fe291fcb2a7dd907190bf96b88f3a0f557a","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.7.0.tgz","fileCount":175,"integrity":"sha512-MCQ1eRoChF3Js+G2idx7uKVuP6yzXk1C8EMOEBenjP2LX4lfV6DB4a0aRLJq2M8LQl2XKMSY8Z12GKl+9Rw3oQ==","signatures":[{"sig":"MEYCIQDzuCZzwgFKx57Ilwgi15crPrYpqTjkhzxeCSbehvfpUQIhAKMqTtonbaB7Aq0DT/HlpS5zCakcnI/tj5RR+RoUzLbg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blorkfield%2foverlay-core@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10430252},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"gitHead":"2dae334abfabbc80fd7f001e6536e2911e0da0e6","scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","prepare":"[ -d test-app ] && pnpm -C test-app install || true","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c06f265-05c1-4fd1-a28a-9b7d463d867b"}},"repository":{"url":"git+https://github.com/Blorkfield/overlay-core.git","type":"git"},"_npmVersion":"11.8.0","description":"Physics-based overlay scene library for interactive streaming overlays","directories":{},"_nodeVersion":"22.22.0","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.1","devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.8"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.7.0_1769476588185_0.8125618151027114","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@blorkfield/overlay-core","version":"0.7.1","keywords":["overlay","physics","matter-js","streaming","interactive"],"license":"GPL-3.0","_id":"@blorkfield/overlay-core@0.7.1","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"homepage":"https://github.com/Blorkfield/overlay-core#readme","bugs":{"url":"https://github.com/Blorkfield/overlay-core/issues"},"dist":{"shasum":"3d9dfe53f4687835e34f4dacb78d7cc45137e8ec","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.7.1.tgz","fileCount":175,"integrity":"sha512-KmMkhEkaKJ+tmFlyKNdulvAeUGpsQL3mFtF+1+UIJ/sk8QopXmuImID51cyn7uil9m7WFkWcgKeUjm/QiiyQuQ==","signatures":[{"sig":"MEYCIQCoQ1WVvGUWRblKXYu1pMxXgplSGYyUFkv/ztK4/XGuDgIhAPaHculYhbGo/UutAz+NStpi9YWQFmH/euelT9asy7s4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blorkfield%2foverlay-core@0.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10430253},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"gitHead":"ae5c70b57e032050ccb6aff56d63175602a1fcf6","scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","prepare":"[ -d test-app ] && pnpm -C test-app install || true","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c06f265-05c1-4fd1-a28a-9b7d463d867b"}},"repository":{"url":"git+https://github.com/Blorkfield/overlay-core.git","type":"git"},"_npmVersion":"11.8.0","description":"Physics-based overlay scene library for interactive streaming overlays","directories":{},"_nodeVersion":"22.22.0","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.9"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.7.1_1769812551018_0.6735941874378792","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@blorkfield/overlay-core","version":"0.8.0","keywords":["overlay","physics","matter-js","streaming","interactive"],"license":"GPL-3.0","_id":"@blorkfield/overlay-core@0.8.0","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"homepage":"https://github.com/Blorkfield/overlay-core#readme","bugs":{"url":"https://github.com/Blorkfield/overlay-core/issues"},"dist":{"shasum":"b5822868e1d79eeaeffb0d3715661cdf88c00f15","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.8.0.tgz","fileCount":175,"integrity":"sha512-iTEjxxrjL/aefa09K6cAcbtjJklvrlVU9GMDj2k/0FmDLRTaWjltMDoXXf/EyOLC7/WkcAkco1vWie8cNdXGiw==","signatures":[{"sig":"MEUCIQDXBBGUPzxPGl/nNVqq99S3+mG51Yn8Y9l7uPSUx5KOTAIgYbbaD4UuJg1UsJOf6kqkIdHIk6eZlp+86gtT4ePRskU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blorkfield%2foverlay-core@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10474422},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"gitHead":"0030e9c7f515761b3499278504b92b5217c3afe1","scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","prepare":"[ -d test-app ] && pnpm -C test-app install || true","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c06f265-05c1-4fd1-a28a-9b7d463d867b"}},"repository":{"url":"git+https://github.com/Blorkfield/overlay-core.git","type":"git"},"_npmVersion":"11.8.0","description":"Physics-based overlay scene library for interactive streaming overlays","directories":{},"_nodeVersion":"22.22.0","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.9"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.8.0_1769878533314_0.009081066161321427","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@blorkfield/overlay-core","version":"0.8.1","keywords":["overlay","physics","matter-js","streaming","interactive"],"license":"GPL-3.0","_id":"@blorkfield/overlay-core@0.8.1","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"homepage":"https://github.com/Blorkfield/overlay-core#readme","bugs":{"url":"https://github.com/Blorkfield/overlay-core/issues"},"dist":{"shasum":"17d0cd63275254a4a229676022cdb4332c67436a","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.8.1.tgz","fileCount":175,"integrity":"sha512-ucd/qDAeWM3Wf6K0iQy2WQfAmGbcJxRWPuOKrpAHtwPEN/KjkhvK7Ai6HmHis1FJgXfWAUrjgBuD1+biq3b5lA==","signatures":[{"sig":"MEUCIEWSqH84icaSo4o11ZcsD24nb+USAvdmvwvBuq7/LRtYAiEA2pLBVSZWR6JJEYaWVkzkQz/U0o+cdl9AmV6Ddeszoug=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blorkfield%2foverlay-core@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10485738},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"gitHead":"3a1793f8bee237ea7087b25ad5e597e369fd6dde","scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","prepare":"[ -d test-app ] && pnpm -C test-app install || true","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c06f265-05c1-4fd1-a28a-9b7d463d867b"}},"repository":{"url":"git+https://github.com/Blorkfield/overlay-core.git","type":"git"},"_npmVersion":"11.8.0","description":"Physics-based overlay scene library for interactive streaming overlays","directories":{},"_nodeVersion":"22.22.0","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.9"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.8.1_1769898348248_0.9074791908202866","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@blorkfield/overlay-core","version":"0.8.2","keywords":["overlay","physics","matter-js","streaming","interactive"],"license":"GPL-3.0","_id":"@blorkfield/overlay-core@0.8.2","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"homepage":"https://github.com/Blorkfield/overlay-core#readme","bugs":{"url":"https://github.com/Blorkfield/overlay-core/issues"},"dist":{"shasum":"dc4077fd51a59b44e81e6b68eb5ad0dcf55bb7de","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.8.2.tgz","fileCount":175,"integrity":"sha512-hFZqP8+FcL8P9qP3wULTZIwxVmT8q0FrJvTNt/GLpY9GDUgXGSoVcPOcdcDD6FO4stVMbkOeqvH0fpfArIoR8g==","signatures":[{"sig":"MEYCIQDpp/pK+C4e8E2D42ei4r/2r52UMM8Ecvi4ra90z+ohhwIhAJCvX6BolLNkhBOS9054JKDeGmC7G5HvUdGL4OCoicsB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blorkfield%2foverlay-core@0.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10485570},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"gitHead":"50e212c0f79409936bbf91b03cd6e7d55336ea41","scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","prepare":"[ -d test-app ] && pnpm -C test-app install || true","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c06f265-05c1-4fd1-a28a-9b7d463d867b"}},"repository":{"url":"git+https://github.com/Blorkfield/overlay-core.git","type":"git"},"_npmVersion":"11.8.0","description":"Physics-based overlay scene library for interactive streaming overlays","directories":{},"_nodeVersion":"22.22.0","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.9"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.8.2_1769914991055_0.05604109082402986","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"@blorkfield/overlay-core","version":"0.8.3","keywords":["overlay","physics","matter-js","streaming","interactive"],"license":"GPL-3.0","_id":"@blorkfield/overlay-core@0.8.3","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"homepage":"https://github.com/Blorkfield/overlay-core#readme","bugs":{"url":"https://github.com/Blorkfield/overlay-core/issues"},"dist":{"shasum":"e00dba9f1aa85a2e522238f7cb99a6fef5b25b78","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.8.3.tgz","fileCount":175,"integrity":"sha512-+SmI6Cm1HPiNjNccFVzuP3CBZjOQSGUooB3HlDxEaAk0tStulVYL4vKFFjbRzBfxwjRVKW4aadRJ45gBdbs+Dg==","signatures":[{"sig":"MEUCIQCKsqupbE7Emh9+jujSX3MvVAmWgGs3DRSpd2y55ivPUQIgDP4hhxH2O+JD4snNBEAAfvljm+AUAGM0kifYLiKi0TI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blorkfield%2foverlay-core@0.8.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10486290},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"gitHead":"ea988f6345dbbb911efe88df6947cedead82e1db","scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","prepare":"[ -d test-app ] && pnpm -C test-app install || true","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c06f265-05c1-4fd1-a28a-9b7d463d867b"}},"repository":{"url":"git+https://github.com/Blorkfield/overlay-core.git","type":"git"},"_npmVersion":"11.8.0","description":"Physics-based overlay scene library for interactive streaming overlays","directories":{},"_nodeVersion":"22.22.0","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.9"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.8.3_1769915424006_0.6617739658204682","host":"s3://npm-registry-packages-npm-production"}},"0.8.4":{"name":"@blorkfield/overlay-core","version":"0.8.4","keywords":["overlay","physics","matter-js","streaming","interactive"],"license":"GPL-3.0","_id":"@blorkfield/overlay-core@0.8.4","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"homepage":"https://github.com/Blorkfield/overlay-core#readme","bugs":{"url":"https://github.com/Blorkfield/overlay-core/issues"},"dist":{"shasum":"94b0b09e8111cd32f673677892724f51580e806e","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.8.4.tgz","fileCount":175,"integrity":"sha512-P3HUVHQn0GynGSipmcfhNd5+jZUDIJ00gHSHd1ozir9v1hfmR7pY6UXbrodA+hOusxbIrfE0pRHYI7W+tUlkjQ==","signatures":[{"sig":"MEUCIGoZdkeyZAuoiWA4UWUExYP861LxLgnvcrs1xJMuWoKTAiEAuhtVBL2bdxQFm2BTDLKA8zy9XURaHD5acvnK0lzHmJ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blorkfield%2foverlay-core@0.8.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10488444},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"gitHead":"ef908bebdd88a0965b5cd68fbfec01c50d70679f","scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","prepare":"[ -d test-app ] && pnpm -C test-app install || true","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c06f265-05c1-4fd1-a28a-9b7d463d867b"}},"repository":{"url":"git+https://github.com/Blorkfield/overlay-core.git","type":"git"},"_npmVersion":"11.8.0","description":"Physics-based overlay scene library for interactive streaming overlays","directories":{},"_nodeVersion":"22.22.0","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.9"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.8.4_1769916404799_0.35255562716862543","host":"s3://npm-registry-packages-npm-production"}},"0.8.5":{"name":"@blorkfield/overlay-core","version":"0.8.5","keywords":["overlay","physics","matter-js","streaming","interactive"],"license":"GPL-3.0","_id":"@blorkfield/overlay-core@0.8.5","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"homepage":"https://github.com/Blorkfield/overlay-core#readme","bugs":{"url":"https://github.com/Blorkfield/overlay-core/issues"},"dist":{"shasum":"05d2a7eb497b69ac95a957726f823eb86b4209fc","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.8.5.tgz","fileCount":175,"integrity":"sha512-Bctr0P4qHGqdrkhR6myJcW1vQ5fo2TFQQsi9XmJKtWkOFh5lQCinK79qeVXHyBq+wL5YAJP+2m+bsH6UI6hD3Q==","signatures":[{"sig":"MEYCIQC5DCugyWnuJrxTuYXw5NeN0BBb0K8hvtlXq6Zp7m8PGAIhAN7gH7i2zTbDydvykJKVKNyTnudYSXMs5+bRWKABaZdC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blorkfield%2foverlay-core@0.8.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10494782},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"gitHead":"b9a89da6728beaa3916f92b0249ec78f25e41aa2","scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","prepare":"[ -d test-app ] && pnpm -C test-app install || true","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c06f265-05c1-4fd1-a28a-9b7d463d867b"}},"repository":{"url":"git+https://github.com/Blorkfield/overlay-core.git","type":"git"},"_npmVersion":"11.8.0","description":"Physics-based overlay scene library for interactive streaming overlays","directories":{},"_nodeVersion":"22.22.0","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.9"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.8.5_1769960878485_0.15268845582183332","host":"s3://npm-registry-packages-npm-production"}},"0.8.6":{"name":"@blorkfield/overlay-core","version":"0.8.6","keywords":["overlay","physics","matter-js","streaming","interactive"],"license":"GPL-3.0","_id":"@blorkfield/overlay-core@0.8.6","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"homepage":"https://github.com/Blorkfield/overlay-core#readme","bugs":{"url":"https://github.com/Blorkfield/overlay-core/issues"},"dist":{"shasum":"ac527cb49eccf45c4dda8a066a961aeb26141310","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.8.6.tgz","fileCount":175,"integrity":"sha512-qxzifMxEK80pa2lsQgzxilWviqREekrjqYn5RaOSZ3mseEu8uX1N4ccuLovoplb1Py34daCmtIWz2g8DZBed9A==","signatures":[{"sig":"MEUCIHF+0JKkQ4AWOr5hoRzjM58L1epEFLGmkGMOgsVdFKSyAiEA3zxBZ7fvg7Imeu2iT5+T73dG9EZ3NICnJq0lGsqqA6c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blorkfield%2foverlay-core@0.8.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10479194},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"gitHead":"826ff2c1b761ce31927e6f9058af581e6582f774","scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","prepare":"[ -d test-app ] && pnpm -C test-app install || true","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c06f265-05c1-4fd1-a28a-9b7d463d867b"}},"repository":{"url":"git+https://github.com/Blorkfield/overlay-core.git","type":"git"},"_npmVersion":"11.8.0","description":"Physics-based overlay scene library for interactive streaming overlays","directories":{},"_nodeVersion":"22.22.0","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.9"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.8.6_1770046059704_0.6812700792249373","host":"s3://npm-registry-packages-npm-production"}},"0.8.7":{"name":"@blorkfield/overlay-core","version":"0.8.7","keywords":["overlay","physics","matter-js","streaming","interactive"],"license":"GPL-3.0","_id":"@blorkfield/overlay-core@0.8.7","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"homepage":"https://github.com/Blorkfield/overlay-core#readme","bugs":{"url":"https://github.com/Blorkfield/overlay-core/issues"},"dist":{"shasum":"848b2b66162a54492b2f93c6f3f6bc2d246be5ea","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.8.7.tgz","fileCount":175,"integrity":"sha512-VWfW5YMa8VWBnctNEggV/ia+zFZ2aDFApQN2JLReGTzjeGHtdoMt/lC6gZdH4RSWWIqWUfRNWbQdKmEHfYg7sA==","signatures":[{"sig":"MEQCIFtwwOYJ+55jXvXqNT4Iya9A74wOxbOZXOzR4tXMF/pCAiAYyzTYoaAAOYGtsfbDGMmjI3cG6Ex747b1MAfW3HgdTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blorkfield%2foverlay-core@0.8.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10490519},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"gitHead":"b8129b24ec9912e61f47b81c513c9db12d6b321d","scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","prepare":"[ -d test-app ] && pnpm -C test-app install || true","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c06f265-05c1-4fd1-a28a-9b7d463d867b"}},"repository":{"url":"git+https://github.com/Blorkfield/overlay-core.git","type":"git"},"_npmVersion":"11.8.0","description":"Physics-based overlay scene library for interactive streaming overlays","directories":{},"_nodeVersion":"22.22.0","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.9"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.8.7_1770048294604_0.2733682885672686","host":"s3://npm-registry-packages-npm-production"}},"0.8.8":{"name":"@blorkfield/overlay-core","version":"0.8.8","keywords":["overlay","physics","matter-js","streaming","interactive"],"license":"GPL-3.0","_id":"@blorkfield/overlay-core@0.8.8","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"homepage":"https://github.com/Blorkfield/overlay-core#readme","bugs":{"url":"https://github.com/Blorkfield/overlay-core/issues"},"dist":{"shasum":"5a6a82d6672864a37a09cca74d919aafcb8dccb1","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.8.8.tgz","fileCount":175,"integrity":"sha512-dikt6V5lidhltZRI5BSA/N7GwD8Knc/OJOJZJRUBLbU/h7+E/uSFvhDmJ0EJBSkUAmi8Z52CPmm+8NzoCPkwCQ==","signatures":[{"sig":"MEQCIHEskhoi4Gec7CZSemLTcSc+JOoj2IVifa5X527najKKAiArZGrR7Gnm8CTUL/e0vL8mICegJb9tolaFocaCS6bf2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blorkfield%2foverlay-core@0.8.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10495087},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"gitHead":"32726cd185a4c0fe87c25130dca225c44c37650d","scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","prepare":"[ -d test-app ] && pnpm -C test-app install || true","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c06f265-05c1-4fd1-a28a-9b7d463d867b"}},"repository":{"url":"git+https://github.com/Blorkfield/overlay-core.git","type":"git"},"_npmVersion":"11.8.0","description":"Physics-based overlay scene library for interactive streaming overlays","directories":{},"_nodeVersion":"22.22.0","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.9"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.8.8_1770081292060_0.1081431193931115","host":"s3://npm-registry-packages-npm-production"}},"0.8.9":{"name":"@blorkfield/overlay-core","version":"0.8.9","keywords":["overlay","physics","matter-js","streaming","interactive"],"license":"GPL-3.0","_id":"@blorkfield/overlay-core@0.8.9","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"homepage":"https://github.com/Blorkfield/overlay-core#readme","bugs":{"url":"https://github.com/Blorkfield/overlay-core/issues"},"dist":{"shasum":"64f3c39b464d07a28d6491464ec26f483daae2cd","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.8.9.tgz","fileCount":175,"integrity":"sha512-292lxGBZJ5W3c29ClRfObEVRwIiArOX1hwDqzhpGTfyVgo0Q1/LeddF0xvNTn0pwbRBAQUK0TyhIZ15Kkd0PPA==","signatures":[{"sig":"MEUCIQC6THcCE5jjceQN+2DUOeEL6rIEODpExX6LubOtTeFeBQIgGZCvCeGuy4Fg7+gMtkSc5eXwVf81/Q7wan7HuhqtzEc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blorkfield%2foverlay-core@0.8.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10500191},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"gitHead":"f339518e814b03cfd32a95498b3285605ad76235","scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","prepare":"[ -d test-app ] && pnpm -C test-app install || true","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c06f265-05c1-4fd1-a28a-9b7d463d867b"}},"repository":{"url":"git+https://github.com/Blorkfield/overlay-core.git","type":"git"},"_npmVersion":"11.8.0","description":"Physics-based overlay scene library for interactive streaming overlays","directories":{},"_nodeVersion":"22.22.0","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.9"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.8.9_1770082565475_0.33565844905589737","host":"s3://npm-registry-packages-npm-production"}},"0.8.10":{"name":"@blorkfield/overlay-core","version":"0.8.10","keywords":["overlay","physics","matter-js","streaming","interactive"],"license":"GPL-3.0","_id":"@blorkfield/overlay-core@0.8.10","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"homepage":"https://github.com/Blorkfield/overlay-core#readme","bugs":{"url":"https://github.com/Blorkfield/overlay-core/issues"},"dist":{"shasum":"47c81b7e40410e1513056dffc53f5f34dbe79255","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.8.10.tgz","fileCount":175,"integrity":"sha512-f7F8d2BOZgIaEb/oxj0EJFz0UBXGAL1rFk/Xn+ha/Fwz3Mq56rNnquhcIz88Ggn+fJ+5QSF44O9SbMmoeHEQBw==","signatures":[{"sig":"MEUCIECv+Crx3U28WqWreWVcCU/IROlwu7kl7r0gjAgYeCn2AiEArYzJyfVaA3yom8w0OzUpYiHZ5dngd6Pq498u6+u+3Jc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blorkfield%2foverlay-core@0.8.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10510782},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"gitHead":"6ee06d7864d83560feac9171797bc8f2fd4197da","scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","prepare":"[ -d test-app ] && pnpm -C test-app install || true","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c06f265-05c1-4fd1-a28a-9b7d463d867b"}},"repository":{"url":"git+https://github.com/Blorkfield/overlay-core.git","type":"git"},"_npmVersion":"11.10.1","description":"Physics-based overlay scene library for interactive streaming overlays","directories":{},"_nodeVersion":"22.22.0","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.9"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.8.10_1771640632715_0.1383585000735883","host":"s3://npm-registry-packages-npm-production"}},"0.8.11":{"name":"@blorkfield/overlay-core","version":"0.8.11","keywords":["overlay","physics","matter-js","streaming","interactive"],"license":"GPL-3.0","_id":"@blorkfield/overlay-core@0.8.11","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"homepage":"https://github.com/Blorkfield/overlay-core#readme","bugs":{"url":"https://github.com/Blorkfield/overlay-core/issues"},"dist":{"shasum":"9ef92f3883c7c980582e3dce51220283f19f9444","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.8.11.tgz","fileCount":175,"integrity":"sha512-5W5yjBE43oxTiTtuUWtjXJ6L3RU6avDswFqOgHVV4jbTG6BjLft2EIQc1eJWuEU+vYCWa+bxsmYmkINh5in19A==","signatures":[{"sig":"MEYCIQCv9JlISzk0Nlt8Fw6kObKMYTV7eSz9LTu/Bpa01MDmkgIhAKjAvy6YU4aP7heom8V/hoGw998cLRLNr07OnY2DsJUt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blorkfield%2foverlay-core@0.8.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10508366},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"gitHead":"937cc73ed85a0172216c4405fa97f8c8c27f8a82","scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","prepare":"[ -d test-app ] && pnpm -C test-app install || true","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c06f265-05c1-4fd1-a28a-9b7d463d867b"}},"repository":{"url":"git+https://github.com/Blorkfield/overlay-core.git","type":"git"},"_npmVersion":"11.11.0","description":"Physics-based overlay scene library for interactive streaming overlays","directories":{},"_nodeVersion":"22.22.0","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.9"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.8.11_1772290675047_0.8121927422374444","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@blorkfield/overlay-core","version":"0.9.0","keywords":["overlay","physics","matter-js","streaming","interactive"],"license":"GPL-3.0","_id":"@blorkfield/overlay-core@0.9.0","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"homepage":"https://github.com/Blorkfield/overlay-core#readme","bugs":{"url":"https://github.com/Blorkfield/overlay-core/issues"},"dist":{"shasum":"69c406f3c6c925546e091fb5dbc51403aa7155b8","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.9.0.tgz","fileCount":175,"integrity":"sha512-QtSlKLhrpN7Y7YmITeiXUFzohMzTFIeaO/Hle1hSWKsYMaBqLoKJYhA8Af1XiKn5NJXqBuf8SgmWyROrq702AA==","signatures":[{"sig":"MEYCIQCeGEFgF/goW4xBHp/8Q2PDlbGg1JWlv5KQ32ltFEIKUgIhAIqbN8BBSp/QpGWWwxeLKrMsnTJi9izEa9r+vbYtbEGk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blorkfield%2foverlay-core@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10527105},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"gitHead":"1c976a33568ab1b61e0832701c229b60baa7b98c","scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","prepare":"[ -d test-app ] && pnpm -C test-app install || true","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c06f265-05c1-4fd1-a28a-9b7d463d867b"}},"repository":{"url":"git+https://github.com/Blorkfield/overlay-core.git","type":"git"},"_npmVersion":"11.11.0","description":"Physics-based overlay scene library for interactive streaming overlays","directories":{},"_nodeVersion":"22.22.0","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.9"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.9.0_1772592562023_0.02391630965262448","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@blorkfield/overlay-core","version":"0.10.0","keywords":["overlay","physics","matter-js","streaming","interactive"],"license":"GPL-3.0","_id":"@blorkfield/overlay-core@0.10.0","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"homepage":"https://github.com/Blorkfield/overlay-core#readme","bugs":{"url":"https://github.com/Blorkfield/overlay-core/issues"},"dist":{"shasum":"3efb22168b62b3edfd756f583a37b2a91d8c3865","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.10.0.tgz","fileCount":175,"integrity":"sha512-G+TxuJopV+WaOJJh2yB9NdAtt08dO/4evZCjkEbaKrsZNl4jRC2SnzbZEy4XsLg46/LJr7y5ssIiaiBvkxS5iQ==","signatures":[{"sig":"MEYCIQCgVDydlVeVCn7W+5A7bL4kgKZWRkZsc6iTC6Wxca0vCAIhAJTJ0MJ9EFHrzwuffj8qiNwlqZAF8bNpPM6xt/WNZLg+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blorkfield%2foverlay-core@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10592056},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"gitHead":"dfd0b129641dfbf4b1ee0043d64997885d29be6c","scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","prepare":"[ -d test-app ] && pnpm -C test-app install || true","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c06f265-05c1-4fd1-a28a-9b7d463d867b"}},"repository":{"url":"git+https://github.com/Blorkfield/overlay-core.git","type":"git"},"_npmVersion":"11.11.0","description":"Physics-based overlay scene library for interactive streaming overlays","directories":{},"_nodeVersion":"22.22.0","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.9"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.10.0_1772663026947_0.4736785285577829","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"@blorkfield/overlay-core","version":"0.10.1","keywords":["overlay","physics","matter-js","streaming","interactive"],"license":"GPL-3.0","_id":"@blorkfield/overlay-core@0.10.1","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"homepage":"https://github.com/Blorkfield/overlay-core#readme","bugs":{"url":"https://github.com/Blorkfield/overlay-core/issues"},"dist":{"shasum":"2a2e796c29b55cf8ea1fe92e60ba47b5569b5002","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.10.1.tgz","fileCount":175,"integrity":"sha512-KmSBoU5LjE8Th1NMyJNG9OqhXG3m56CZUuahiQKk2NKUv0fU2MF0g8T1reSELmArGOhBNMtvtsvmROtrbV9MeA==","signatures":[{"sig":"MEUCIQCwNrIFygghbWnqzRHg4Ca+E7dv9SeSPhq7SLRB+l6OHAIgcyCZg/EufEELIHI9FViRIMsFtQV5yGdDaqwGFg5BkmU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blorkfield%2foverlay-core@0.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10593443},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"gitHead":"8538b3a423e2881e257a7778ca8c2ee242f673d8","scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","prepare":"[ -d test-app ] && pnpm -C test-app install || true","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c06f265-05c1-4fd1-a28a-9b7d463d867b"}},"repository":{"url":"git+https://github.com/Blorkfield/overlay-core.git","type":"git"},"_npmVersion":"11.11.0","description":"Physics-based overlay scene library for interactive streaming overlays","directories":{},"_nodeVersion":"22.22.0","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.9"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.10.1_1772674254826_0.6627051036846934","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@blorkfield/overlay-core","version":"0.11.0","keywords":["overlay","physics","matter-js","streaming","interactive"],"license":"GPL-3.0","_id":"@blorkfield/overlay-core@0.11.0","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"homepage":"https://github.com/Blorkfield/overlay-core#readme","bugs":{"url":"https://github.com/Blorkfield/overlay-core/issues"},"dist":{"shasum":"1cee05fca64016bce10348cdaf92791d2bf1fb8c","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.11.0.tgz","fileCount":175,"integrity":"sha512-eSXav8N3wMuWQVMHxBLAf8gSmAPJO9Kv1p63XENsAFtTl7bDDM1/DPTkhtfQsAwMpXP6yMlz8NB0qBthGrztkw==","signatures":[{"sig":"MEQCIFX1PFN9Y+fWfAEgNQ+gFfaxLZCOwzg7v4utKKrIyRCiAiAdVuPODDspQ25+GV6bc3wxxrpzb3GrXqUZ46aCxyBDvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blorkfield%2foverlay-core@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10607047},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"gitHead":"47c387095df4531124c73a972cc0d0f26df29bb2","scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","prepare":"[ -d test-app ] && pnpm -C test-app install || true","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c06f265-05c1-4fd1-a28a-9b7d463d867b"}},"repository":{"url":"git+https://github.com/Blorkfield/overlay-core.git","type":"git"},"_npmVersion":"11.11.0","description":"Physics-based overlay scene library for interactive streaming overlays","directories":{},"_nodeVersion":"22.22.0","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.9"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.11.0_1772853138499_0.019257012925311567","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"@blorkfield/overlay-core","version":"0.11.1","keywords":["overlay","physics","matter-js","streaming","interactive"],"license":"GPL-3.0","_id":"@blorkfield/overlay-core@0.11.1","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"homepage":"https://github.com/Blorkfield/overlay-core#readme","bugs":{"url":"https://github.com/Blorkfield/overlay-core/issues"},"dist":{"shasum":"d8bc4c5233d844fc86a36fe05caa892e9ff11822","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.11.1.tgz","fileCount":175,"integrity":"sha512-X6YDFjkREeDg5pf0YQquxe7wp53jkApDr+vqqJYYoB38oSpLoDgCN3FQ09obsNluJ9mzqgiyjh1hKqRno2zZWA==","signatures":[{"sig":"MEUCIQCcJteTd/tVbER1kPleiuMbUsYeT+5Q4LqI7/icfyQpQwIgHmdjxiTck82LZhvZzOfANfe1MOMTFoB/479XnuLddm0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blorkfield%2foverlay-core@0.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10606959},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"gitHead":"a53c6d0f6f45c896c155dd9ea07d1c0f4954be4e","scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","prepare":"[ -d test-app ] && pnpm -C test-app install || true","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c06f265-05c1-4fd1-a28a-9b7d463d867b"}},"repository":{"url":"git+https://github.com/Blorkfield/overlay-core.git","type":"git"},"_npmVersion":"11.11.1","description":"Physics-based overlay scene library for interactive streaming overlays","directories":{},"_nodeVersion":"22.22.0","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.9"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.11.1_1773630999223_0.05168578273358437","host":"s3://npm-registry-packages-npm-production"}},"0.11.2":{"name":"@blorkfield/overlay-core","version":"0.11.2","keywords":["overlay","physics","matter-js","streaming","interactive"],"license":"GPL-3.0","_id":"@blorkfield/overlay-core@0.11.2","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"homepage":"https://github.com/Blorkfield/overlay-core#readme","bugs":{"url":"https://github.com/Blorkfield/overlay-core/issues"},"dist":{"shasum":"77f13d197ad47c50b75341b652479de68f0902e1","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.11.2.tgz","fileCount":175,"integrity":"sha512-ptY7rtwplSdXLV7yfOLvuoOzbDAbQulxXpDwgNT0/Y+yWUz5lOZq8AxgJkzcvzHrvxklHBvQwzl23OH+ZoghkQ==","signatures":[{"sig":"MEYCIQDz4wSz8fw4AKad30TpUoVvmWaT8saSDf2/+iQaHTUppQIhAOZ5kaE56FJOScF4/dDfBfvhlm4L71n9ri+tf4lcB4I5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blorkfield%2foverlay-core@0.11.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10616065},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"gitHead":"bed7efb07d9310e9a28351fedd4125ef7bcd1f46","scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","prepare":"[ -d test-app ] && pnpm -C test-app install || true","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c06f265-05c1-4fd1-a28a-9b7d463d867b"}},"repository":{"url":"git+https://github.com/Blorkfield/overlay-core.git","type":"git"},"_npmVersion":"11.11.1","description":"Physics-based overlay scene library for interactive streaming overlays","directories":{},"_nodeVersion":"22.22.0","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.9"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.11.2_1773631776952_0.061783479487863335","host":"s3://npm-registry-packages-npm-production"}},"0.11.3":{"name":"@blorkfield/overlay-core","version":"0.11.3","keywords":["overlay","physics","matter-js","streaming","interactive"],"license":"GPL-3.0","_id":"@blorkfield/overlay-core@0.11.3","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"homepage":"https://github.com/Blorkfield/overlay-core#readme","bugs":{"url":"https://github.com/Blorkfield/overlay-core/issues"},"dist":{"shasum":"51b4bafc98167cce6d2f2412fe5c8c37d19b513c","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.11.3.tgz","fileCount":175,"integrity":"sha512-VpDSF/VXmySzyNM4nLspLmypoICAwJSrqA+jaXJEgW1e86TyhjMZ2WzgqHpT0rB0Nd87QSkD5af/di0gIar1mQ==","signatures":[{"sig":"MEUCIDZwbC7EcoJ7ZG4c7Z2G19AnPVhEHY2nukviqrdrD+ehAiEAuGZHhikbxmmsgjcc5EkSWYQoIab6uXmuKRNHSrYMOjI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blorkfield%2foverlay-core@0.11.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10629778},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"gitHead":"95ce11304df1b639e2e9d32a7c931c4f74b1c4af","scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","prepare":"[ -d test-app ] && pnpm -C test-app install || true","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c06f265-05c1-4fd1-a28a-9b7d463d867b"}},"repository":{"url":"git+https://github.com/Blorkfield/overlay-core.git","type":"git"},"_npmVersion":"11.11.1","description":"Physics-based overlay scene library for interactive streaming overlays","directories":{},"_nodeVersion":"22.22.1","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.9"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.11.3_1773672172757_0.17250313674652906","host":"s3://npm-registry-packages-npm-production"}},"0.11.4":{"name":"@blorkfield/overlay-core","version":"0.11.4","keywords":["overlay","physics","matter-js","streaming","interactive"],"license":"GPL-3.0","_id":"@blorkfield/overlay-core@0.11.4","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"homepage":"https://github.com/Blorkfield/overlay-core#readme","bugs":{"url":"https://github.com/Blorkfield/overlay-core/issues"},"dist":{"shasum":"1fb9492c8f10790200b457d1a99f82d5328a9cbd","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.11.4.tgz","fileCount":175,"integrity":"sha512-H6jknxSf1qn28ksatEz1rkKNY9mMv+IuWdpFLtiZFW/B0UGjhSIBYWBlRXXm8nKwuZNmEVeA8qdwRHC62fJzKw==","signatures":[{"sig":"MEQCIBR3+ab/7CATOkdTJ6ulrICml9BhKEcgfy6Yn1XgPpDdAiBiJcn6HjoL2vS/csKIMcbknFT9/3IS7LsWJNuJ5SrBdg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blorkfield%2foverlay-core@0.11.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10636034},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"gitHead":"1a3a37098acf0fbec11cae83062a73fa0b15bf4d","scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","prepare":"[ -d test-app ] && pnpm -C test-app install || true","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c06f265-05c1-4fd1-a28a-9b7d463d867b"}},"repository":{"url":"git+https://github.com/Blorkfield/overlay-core.git","type":"git"},"_npmVersion":"11.11.1","description":"Physics-based overlay scene library for interactive streaming overlays","directories":{},"_nodeVersion":"22.22.1","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.9"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.11.4_1773683467920_0.2836384255990658","host":"s3://npm-registry-packages-npm-production"}},"0.11.5":{"name":"@blorkfield/overlay-core","version":"0.11.5","keywords":["overlay","physics","matter-js","streaming","interactive"],"license":"GPL-3.0","_id":"@blorkfield/overlay-core@0.11.5","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"homepage":"https://github.com/Blorkfield/overlay-core#readme","bugs":{"url":"https://github.com/Blorkfield/overlay-core/issues"},"dist":{"shasum":"fd74055d7076fe0879d5630d5cf480cf91e48f0d","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.11.5.tgz","fileCount":175,"integrity":"sha512-B+3uPBO3uUmAnS2GjcBLbN+799kCoho3hzRSfPMiV+Dx8YXH8lIu4dVdOmXj24PnxDY7fL0vybPVcLmu0mRARg==","signatures":[{"sig":"MEUCIB1wRh+4MB5TEMb1zok5QcmcLCprrqTx9sN0w4M88mpuAiEApC0G+S2kY4geOEa0c45K7jaBlNE7M9RuWLM0BaOJuzA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blorkfield%2foverlay-core@0.11.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10636041},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"gitHead":"d6e772d7b69d6e7084418a67d50b845ae7549b77","scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","prepare":"[ -d test-app ] && pnpm -C test-app install || true","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c06f265-05c1-4fd1-a28a-9b7d463d867b"}},"repository":{"url":"git+https://github.com/Blorkfield/overlay-core.git","type":"git"},"_npmVersion":"11.11.1","description":"Physics-based overlay scene library for interactive streaming overlays","directories":{},"_nodeVersion":"22.22.1","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.9"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.11.5_1773685923160_0.883828833619134","host":"s3://npm-registry-packages-npm-production"}},"0.11.6":{"name":"@blorkfield/overlay-core","version":"0.11.6","keywords":["overlay","physics","matter-js","streaming","interactive"],"license":"GPL-3.0","_id":"@blorkfield/overlay-core@0.11.6","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"homepage":"https://github.com/Blorkfield/overlay-core#readme","bugs":{"url":"https://github.com/Blorkfield/overlay-core/issues"},"dist":{"shasum":"6a90566a0d092f2c0ed050e00f1faceb81aabff1","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.11.6.tgz","fileCount":175,"integrity":"sha512-2Rc4qHo1LX9/uGVi/1AhwVrStq1mc9x+90Ul5cZRy5BQpL7gp+0Jp1pX7R7k2WgQLmByDiau8AViZMH45KGLbg==","signatures":[{"sig":"MEQCIH0NIflsu4U3YqXjWT6ofwt2jDmJNHVqR5QT/xS9NkkAAiAGmEBGM1KY4BT4nKm3GUTDE2mtGtK79rIZHhZ7hYAawA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blorkfield%2foverlay-core@0.11.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10636705},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./public":"./public","./fonts/*":"./fonts/*","./public/*":"./public/*"},"gitHead":"7ad25aeff7df71d8fe869b3558a0885bce43443b","scripts":{"dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","build":"tsup","prepare":"[ -d test-app ] && pnpm -C test-app install || true","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c06f265-05c1-4fd1-a28a-9b7d463d867b"}},"repository":{"url":"git+https://github.com/Blorkfield/overlay-core.git","type":"git"},"_npmVersion":"11.11.1","description":"Physics-based overlay scene library for interactive streaming overlays","directories":{},"_nodeVersion":"22.22.1","dependencies":{"sirv":"^3.0.2","matter-js":"^0.19.0","opentype.js":"^1.3.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.2","devDependencies":{"tsup":"^8.5.1","vite":"^5.4.21","typescript":"^5.9.3","@types/node":"^20.19.30","concurrently":"^9.2.1","@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/opentype.js":"^1.3.9"},"_npmOperationalInternal":{"tmp":"tmp/overlay-core_0.11.6_1773703751835_0.40328707132031805","host":"s3://npm-registry-packages-npm-production"}},"0.11.7":{"name":"@blorkfield/overlay-core","version":"0.11.7","license":"GPL-3.0","description":"Physics-based overlay scene library for interactive streaming overlays","repository":{"type":"git","url":"git+https://github.com/Blorkfield/overlay-core.git"},"keywords":["overlay","physics","matter-js","streaming","interactive"],"packageManager":"pnpm@10.28.2","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./vite":{"types":"./dist/vite-plugin.d.ts","import":"./dist/vite-plugin.js","require":"./dist/vite-plugin.cjs"},"./fonts":"./fonts","./fonts/*":"./fonts/*","./public":"./public","./public/*":"./public/*"},"scripts":{"build":"tsup","dev":"concurrently \"tsup --watch\" \"pnpm -C test-app dev\"","typecheck":"tsc --noEmit","prepare":"[ -d test-app ] && pnpm -C test-app install || true"},"dependencies":{"matter-js":"^0.19.0","opentype.js":"^1.3.4","sirv":"^3.0.2"},"devDependencies":{"@changesets/cli":"^2.29.8","@types/matter-js":"^0.19.8","@types/node":"^20.19.30","@types/opentype.js":"^1.3.9","concurrently":"^9.2.1","tsup":"^8.5.1","typescript":"^5.9.3","vite":"^5.4.21"},"gitHead":"332500fc79f889ab63dc1eee6612d3862f1a5c28","_id":"@blorkfield/overlay-core@0.11.7","bugs":{"url":"https://github.com/Blorkfield/overlay-core/issues"},"homepage":"https://github.com/Blorkfield/overlay-core#readme","_nodeVersion":"22.22.1","_npmVersion":"11.11.1","dist":{"integrity":"sha512-Dwh5w64+9wiqm7uw/eZ3xiS64GJwm/tM8LjMsx4s7s8iHVrqFue1KMJ6jXgqOvEgT9Vpv3GfmQF+o/RM5rra/w==","shasum":"a0ca9874c1720f109e2f3b7a2c72b763972e271d","tarball":"https://registry.npmjs.org/@blorkfield/overlay-core/-/overlay-core-0.11.7.tgz","fileCount":175,"unpackedSize":10640799,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blorkfield%2foverlay-core@0.11.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHOS0PfHTBX8FKInGAXrIrWviGGRRcH3pcpZmy2t5RdLAiBx+2AcPR0hZO646RR0V9EOfYoVwrJ/r4QyW3OgAQp+ww=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c06f265-05c1-4fd1-a28a-9b7d463d867b"}},"directories":{},"maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/overlay-core_0.11.7_1773711364090_0.3336866297093275"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-18T00:33:40.370Z","modified":"2026-03-17T01:36:04.820Z","0.3.0":"2026-01-18T00:33:40.701Z","0.4.0":"2026-01-18T02:44:17.447Z","0.4.1":"2026-01-18T13:52:37.806Z","0.4.2":"2026-01-18T14:00:08.928Z","0.4.3":"2026-01-18T19:18:18.142Z","0.5.0":"2026-01-19T00:27:37.444Z","0.5.1":"2026-01-19T14:42:38.422Z","0.5.2":"2026-01-19T15:04:20.428Z","0.5.3":"2026-01-19T21:00:35.803Z","0.5.4":"2026-01-20T00:50:43.780Z","0.5.5":"2026-01-20T00:56:14.935Z","0.5.6":"2026-01-20T13:46:35.900Z","0.5.7":"2026-01-21T02:39:37.180Z","0.5.8":"2026-01-22T00:15:40.779Z","0.5.9":"2026-01-23T02:20:07.316Z","0.5.10":"2026-01-23T17:48:37.060Z","0.6.5":"2026-01-24T04:11:02.115Z","0.7.0":"2026-01-27T01:16:28.518Z","0.7.1":"2026-01-30T22:35:51.399Z","0.8.0":"2026-01-31T16:55:33.694Z","0.8.1":"2026-01-31T22:25:48.751Z","0.8.2":"2026-02-01T03:03:11.458Z","0.8.3":"2026-02-01T03:10:24.393Z","0.8.4":"2026-02-01T03:26:45.151Z","0.8.5":"2026-02-01T15:47:58.836Z","0.8.6":"2026-02-02T15:27:40.118Z","0.8.7":"2026-02-02T16:04:54.947Z","0.8.8":"2026-02-03T01:14:52.459Z","0.8.9":"2026-02-03T01:36:05.883Z","0.8.10":"2026-02-21T02:23:53.134Z","0.8.11":"2026-02-28T14:57:55.341Z","0.9.0":"2026-03-04T02:49:22.378Z","0.10.0":"2026-03-04T22:23:47.341Z","0.10.1":"2026-03-05T01:30:55.184Z","0.11.0":"2026-03-07T03:12:18.864Z","0.11.1":"2026-03-16T03:16:39.633Z","0.11.2":"2026-03-16T03:29:37.330Z","0.11.3":"2026-03-16T14:42:53.157Z","0.11.4":"2026-03-16T17:51:08.284Z","0.11.5":"2026-03-16T18:32:03.484Z","0.11.6":"2026-03-16T23:29:12.188Z","0.11.7":"2026-03-17T01:36:04.407Z"},"bugs":{"url":"https://github.com/Blorkfield/overlay-core/issues"},"license":"GPL-3.0","homepage":"https://github.com/Blorkfield/overlay-core#readme","keywords":["overlay","physics","matter-js","streaming","interactive"],"repository":{"type":"git","url":"git+https://github.com/Blorkfield/overlay-core.git"},"description":"Physics-based overlay scene library for interactive streaming overlays","maintainers":[{"name":"blorkfield_user","email":"meier_steven@yahoo.com"}],"readme":"# @blorkfield/overlay-core\n\nA physics based interactive canvas library built on Matter.js. Create dynamic scenes where objects fall under gravity, stack on obstacles, and trigger collapse events when pressure thresholds are exceeded. The library is optimized for interactive text effects where letters can collapse under accumulated weight.\n\n## Installation\n\n```bash\nnpm install @blorkfield/overlay-core\n```\n\nOr with pnpm:\n\n```bash\npnpm add @blorkfield/overlay-core\n```\n\n## Core Concepts\n\n### The Scene\n\n`OverlayScene` is the central class that manages the physics simulation, rendering, and object lifecycle. It wraps Matter.js to provide a simplified API for common interactive scenarios.\n\n### Tag Based Behavior\n\nTags are the source of truth for object behavior. Adding a tag activates the associated effect; removing it deactivates it. There are no separate type systems — the tag array on each object drives everything.\n\nImport the tag constants to avoid magic strings:\n\n```typescript\nimport { TAGS, TAG_STATIC, TAG_GRABABLE, TAG_FOLLOW_WINDOW } from '@blorkfield/overlay-core';\n\n// Use individual constants\nscene.spawnObject({ tags: [TAG_GRABABLE], ... });           // dynamic by default\nscene.spawnObject({ tags: [TAG_STATIC, TAG_GRABABLE], ... }); // static obstacle\n\n// Or destructure from TAGS object\nconst { STATIC, GRABABLE } = TAGS;\nscene.spawnObject({ tags: [STATIC], ... });\n```\n\n| Constant | Value | Behavior |\n|----------|-------|----------|\n| `TAG_STATIC` / `TAGS.STATIC` | `'static'` | Object is a static obstacle, not affected by gravity. Without this tag, objects are dynamic by default. |\n| `TAG_FOLLOW_WINDOW` / `TAGS.FOLLOW_WINDOW` | `'follow_window'` | Object walks toward a target when grounded (default: mouse) |\n| `TAG_GRABABLE` / `TAGS.GRABABLE` | `'grabable'` | Object can be grabbed and moved with mouse or touch |\n| `TAG_GRAVITY_OVERRIDE` / `TAGS.GRAVITY_OVERRIDE` | `'gravity_override'` | Object uses its own gravity vector instead of scene gravity |\n| `TAG_SPEED_OVERRIDE` / `TAGS.SPEED_OVERRIDE` | `'speed_override'` | Multiplies movement speed for `follow_window` and future movement behaviors. Negative = run away from target. |\n| `TAG_MASS_OVERRIDE` / `TAGS.MASS_OVERRIDE` | `'mass_override'` | Overrides the physics mass. Higher mass resists follow forces more; lower mass allows the follow force to overcome gravity. |\n\nTags can be added and removed at runtime to change behavior dynamically:\n\n```typescript\nscene.addTag(id, 'static');         // freeze an object in place\nscene.removeTag(id, 'static');      // release it to fall\nscene.addTag(id, 'grabable');       // make it grabbable\nscene.removeTag(id, 'grabable');    // prevent grabbing\n```\n\nThe `gravity_override` tag carries a value (a Vector2). Use `setObjectGravityOverride` to set the value and activate the tag, or pass it via `gravityOverride` in spawn config. Removing the tag restores scene gravity.\n\nThe `speed_override` tag carries a numeric multiplier. Use `setObjectSpeedOverride` to set the value and activate the tag, or pass it via `speedOverride` in spawn config. Removing the tag restores default speed.\n\nThe `mass_override` tag carries a numeric mass value. Use `setObjectMassOverride` to set the value and activate the tag, or pass it via `massOverride` in spawn config. Removing the tag restores the natural density-based mass.\n\n### Entity Tags\n\nEvery spawned object is automatically assigned a permanent, human-readable **entity tag** that serves as its stable identity. The format is derived from the object's shape or image:\n\n| Object type | Entity tag format | Example |\n|-------------|-------------------|---------|\n| Circle | `circle-<4hex>` | `circle-a3f2` |\n| Rectangle | `rect-<4hex>` | `rect-b1c4` |\n| Image-based | `<filename>-<4hex>` | `cat-e9d2` |\n| Text letter | `letter-<char>-<4hex>` | `letter-h-7a3f` |\n| DOM element | `dom-<4hex>` | `dom-5c21` |\n\nEntity tags appear in `getAllTags()` alongside all other tags, making them usable as follow targets or for runtime queries. They **cannot be removed** — calling `removeTag(id, entityTag)` will log a warning and return without effect. This ensures every object always has a stable, identifiable tag.\n\n### `follow_window` Tag Target\n\nThe `follow_window` tag walks an object toward a target when grounded. The default target is `'mouse'`. You can change it at any time:\n\n```typescript\n// Follow the mouse (default)\nscene.addTag(id, 'follow_window');\n\n// Follow a named target (e.g., another entity's tag)\nscene.setFollowWindowTarget(id, 'circle-a3f2');\n\n// Follow any entity that has a given tag\nscene.setFollowWindowTarget(id, 'letter-h-7a3f');\n\n// Follow a string/word group tag\nscene.setFollowWindowTarget(id, 'title-text');\n\n// Stop following by removing the tag\nscene.removeTag(id, 'follow_window');\n```\n\nTarget resolution order: named follow targets (e.g., `'mouse'`) → object ID → first object with a matching tag.\n\n### Pressure System\n\nStatic obstacles track how many dynamic objects are resting on them. When the accumulated pressure reaches a threshold, the obstacle collapses (becomes dynamic and falls). You can configure:\n\n| Option | Description |\n|--------|-------------|\n| Per letter thresholds | Each letter collapses independently |\n| Word collapse mode | All letters in a word collapse together |\n| Weighted pressure | Objects contribute configurable weight values |\n| Shadows | Leave a faded copy behind when collapsing |\n| Click to fall | Collapse after being clicked a specified number of times |\n\n### Floor Segments\n\nThe floor can be divided into independent segments, each with its own pressure threshold. When a segment receives too much weight, it collapses and objects fall through.\n\n| Option | Description |\n|--------|-------------|\n| `thickness` | Segment height in pixels (single value or array per segment) |\n| `color` | Segment fill color (single value or array per segment) - makes floor visible |\n| `minIntegrity` | Minimum segments required. When remaining segments drop below this, all collapse |\n| `segmentWidths` | Proportional widths for each segment (array that sums to 1.0, e.g., `[0.2, 0.3, 0.5]`) |\n\nExample: With 10 segments and `minIntegrity: 7`, once 4 segments have collapsed (leaving 6), all remaining segments collapse together.\n\n## Quick Start\n\n```typescript\nimport { OverlayScene } from '@blorkfield/overlay-core';\n\n// Create container and canvas\nconst container = document.getElementById('container');\nconst { canvas, bounds } = OverlayScene.createContainer(container, {\n  fullscreen: true\n});\n\n// Create scene\nconst scene = new OverlayScene(canvas, {\n  bounds,\n  gravity: { x: 0, y: -1 },\n  wrapHorizontal: true,\n  background: 'transparent'\n});\n\nscene.start();\n```\n\n## Spawning Objects\n\nAll objects are created through `spawnObject()` (or `spawnObjectAsync()` for images). The same config supports canvas-rendered shapes, image-based shapes, and DOM elements.\n\n### Basic Shapes\n\n```typescript\n// Circle (dynamic by default — falls with gravity)\nscene.spawnObject({\n  x: 100,\n  y: 50,\n  radius: 20,\n  fillStyle: '#ff0000',\n});\n\n// Rectangle (static obstacle — won't move)\nscene.spawnObject({\n  x: 200,\n  y: 300,\n  width: 100,\n  height: 20,\n  fillStyle: '#0000ff',\n  tags: ['static']\n});\n\n// Polygon shapes\nscene.spawnObject({\n  x: 150,\n  y: 100,\n  radius: 25,\n  fillStyle: '#00ff00',\n  shape: { type: 'hexagon' }\n});\n```\n\n### Image Based Objects\n\nWhen you provide an `imageUrl`, the library extracts the shape from the image's alpha channel for accurate collision detection.\n\n```typescript\nconst id = await scene.spawnObjectAsync({\n  x: 150,\n  y: 100,\n  imageUrl: '/images/coin.png',\n  size: 50,\n  tags: ['grabable']  // dynamic by default\n});\n```\n\n### DOM Elements\n\nPass a DOM element via the `element` property to link it to physics. The element will move with the physics body when it becomes dynamic.\n\n```typescript\nconst contentBox = document.getElementById('content-box');\n\nscene.spawnObject({\n  element: contentBox,\n  x: boxX,\n  y: boxY,\n  width: contentBox.offsetWidth,\n  height: contentBox.offsetHeight,\n  tags: ['grabable'],\n  pressureThreshold: { value: 50 },\n  shadow: { opacity: 0.3 },\n  clickToFall: { clicks: 5 }\n});\n```\n\n**Positioning convention:** overlay-core sets `position: absolute` on the element and owns `left`, `top`, and `transform` entirely via inline styles. Position is expressed as `left: x - width/2; top: y - height/2` (body centre → top-left corner). Rotation is applied via `transform: rotate(angle)`. Do not set `left`, `top`, or `transform` on the element yourself — they will be overwritten. To place the element before spawn, set it off-screen or hidden; overlay-core writes the correct position on `spawnObject` for both static and dynamic elements, so it is visible and correctly placed immediately after the call returns.\n\nWhen a DOM element collapses:\n- The element follows its physics body each frame via `left`/`top` updates\n- If `shadow` is configured, a cloned DOM element is left at the original spawn position\n\n```typescript\n// Get the shadow element after collapse (if shadow was configured)\nconst shadowEl = scene.getDOMObstacleShadow(id);\n```\n\n### Pressure, Shadow, and Click Behavior\n\nThese options work on any spawned object (shapes, images, or DOM elements):\n\n```typescript\nscene.spawnObject({\n  x: 200,\n  y: 300,\n  width: 150,\n  height: 30,\n  fillStyle: '#333',\n  tags: ['grabable'],\n\n  // Collapse when 20 units of pressure accumulate\n  pressureThreshold: { value: 20 },\n\n  // This object contributes 5 pressure when resting on something\n  weight: 5,\n\n  // Leave a faded copy when collapsed (true = 0.3 opacity default)\n  shadow: { opacity: 0.3 },\n\n  // Collapse after being clicked 3 times\n  clickToFall: { clicks: 3 }\n});\n```\n\n## Text Obstacles\n\n### PNG Based Text\n\nUses individual letter images stored in a fonts directory. Each character's collision shape is extracted from its PNG.\n\n```typescript\nawait scene.initializeFonts('/fonts/');\n\nconst result = await scene.addTextObstacles({\n  text: 'Hello World',\n  x: 100,\n  y: 200,\n  letterSize: 48,\n  fontName: 'handwritten',\n  letterColor: '#ff00ff',\n  pressureThreshold: { value: 5 },\n  weight: { value: 2 },\n  shadow: { opacity: 0.3 },\n  clickToFall: { clicks: 2 }\n});\n\n// Access created elements\nconsole.log(result.stringTag);   // Tag for entire string\nconsole.log(result.wordTags);    // Tags for each word\nconsole.log(result.letterIds);   // Individual letter IDs\n```\n\n### TTF Font Text\n\nRenders text using TrueType/OpenType fonts with proper kerning and glyph outlines for collision.\n\n```typescript\nconst result = await scene.addTTFTextObstacles({\n  text: 'Build Stuff',\n  x: 100,\n  y: 200,\n  fontSize: 40,\n  fontUrl: '/fonts/Roboto/static/Roboto-Regular.ttf',\n  fillColor: '#ffffff',\n  pressureThreshold: { value: 10 },\n  clickToFall: { clicks: 3 }\n});\n```\n\nText obstacles default to `isStatic: true` — they are static obstacles that things fall onto. Pass `isStatic: false` to spawn falling text instead.\n\n### Managing Text Obstacles\n\n```typescript\n// Spawn text that immediately falls (isStatic: false)\nconst result = await scene.spawnFallingTextObstacles(config);\nconst result = await scene.spawnFallingTTFTextObstacles(config);\n\n// Release static text obstacles (removes 'static' tag so they fall)\nscene.releaseTextObstacles(wordTag);\n\n// Release letters one by one with delay\nawait scene.releaseTextObstaclesSequentially(wordTag, 100);        // 100ms delay\nawait scene.releaseTextObstaclesSequentially(wordTag, 100, true);  // reverse order\n\n// Get debug info for letter positioning\nconst debugInfo = scene.getLetterDebugInfo(wordTag);\nconst allDebug = scene.getAllLetterDebugInfo();\n```\n\n## Effects\n\nEffects are persistent spawning mechanisms that create objects over time.\n\n### Rain Effect\n\nObjects fall continuously from the top of the scene.\n\n```typescript\nscene.setEffect({\n  id: 'my-rain',\n  type: 'rain',\n  enabled: true,\n  spawnRate: 5,\n  spawnWidth: 0.8,\n  objectConfigs: [{\n    objectConfig: {\n      radius: 15,\n      fillStyle: '#4a90d9',\n      // dynamic by default — no tags needed\n    },\n    probability: 1,\n    minScale: 0.8,\n    maxScale: 1.2,\n    baseRadius: 15\n  }]\n});\n```\n\n### Burst Effect\n\nObjects explode outward from a point at intervals.\n\n```typescript\nscene.setEffect({\n  id: 'my-burst',\n  type: 'burst',\n  enabled: true,\n  burstInterval: 2000,\n  burstCount: 8,\n  burstForce: 15,\n  origin: { x: 400, y: 300 },\n  objectConfigs: [/* ... */]\n});\n```\n\n### Stream Effect\n\nObjects emit from a point in a specific direction with cone spread.\n\n```typescript\nscene.setEffect({\n  id: 'my-stream',\n  type: 'stream',\n  enabled: true,\n  origin: { x: 0, y: 0 },\n  direction: { x: 1, y: 1 },\n  spawnRate: 10,\n  force: 15,\n  coneAngle: Math.PI / 8,\n  objectConfigs: [/* ... */]\n});\n```\n\n### Managing Effects\n\n```typescript\n// Pause/resume an effect without removing it\nscene.setEffectEnabled('my-rain', false);  // pause\nscene.setEffectEnabled('my-rain', true);   // resume\n\n// Check if an effect is enabled\nscene.isEffectEnabled('my-rain');  // → true/false\n\n// Get effect config\nconst effect = scene.getEffect('my-rain');  // → EffectConfig | undefined\n\n// List all effect IDs\nconst ids = scene.getEffectIds();  // → string[]\n\n// Remove an effect entirely\nscene.removeEffect('my-rain');\n```\n\n## Managing Objects\n\n```typescript\n// Release objects (make them fall)\nscene.releaseObject(id);\nscene.releaseObjects([id1, id2]);\nscene.releaseObjectsByTag('my-text');\nscene.releaseAllObjects();\n\n// Remove objects\nscene.removeObject(id);\nscene.removeObjects([id1, id2]);\nscene.removeObjectsByTag('welcome-text');\nscene.removeAllObjects();\nscene.removeAll();              // Alias for removeAllObjects\nscene.removeAllByTag('tag');    // Alias for removeObjectsByTag\n\n// Add or remove tags — tags drive behavior, changes take effect immediately\nscene.addTag(id, 'grabable');\nscene.removeTag(id, 'static');            // releases a static object to fall\nscene.addTag(id, 'static');              // freezes a dynamic object in place\nscene.addFallingTag(id);                 // convenience: removes 'static', adds 'grabable'\nscene.setFollowWindowTarget(id, 'mouse'); // change what a follow_window object walks toward\nscene.setObjectSpeedOverride(id, 2);     // double movement speed (negative = run away)\nscene.setObjectSpeedOverride(id, null);  // remove speed override\nscene.setObjectMassOverride(id, 50);     // heavy object resists follow force\nscene.setObjectMassOverride(id, null);   // restore natural mass\nscene.setPosition(id, { x: 400, y: 300 });      // teleport object\nscene.setVelocity(id, { x: 10, y: 0 });         // launch object rightward\nscene.setObjectAngularVelocity(id, Math.PI);     // set spin (rad/s)\nscene.setObjectScale(id, 2, 2);                  // scale x and y independently\n\n// Get object info\nconst ids = scene.getObjectIds();\nconst tagged = scene.getObjectIdsByTag('static');\nconst allTags = scene.getAllTags();\n\n// Get full object state\nconst obj = scene.getObject(id);           // Returns ObjectState or null\nconst objs = scene.getObjectsByTag('tag'); // Returns ObjectState[]\n```\n\n## Physics Manipulation\n\n```typescript\n// Apply force to objects\nscene.applyForce(id, { x: 0.01, y: -0.02 });\nscene.applyForceToTag('grabable', { x: 0.005, y: 0 });\n\n// Set velocity directly (physical convention: positive y = upward, negative y = downward)\nscene.setVelocity(id, { x: 5, y: 10 });   // moving right and upward\nscene.setVelocity(id, { x: 0, y: -10 });  // moving downward\nscene.setVelocity(id, { x: 0, y: 0 });    // stop all movement\n\n// Set position directly (screen pixels, y=0 at top)\nscene.setPosition(id, { x: 100, y: 200 });\n\n// Set angular velocity (spin) in radians/second\n// Positive = counter-clockwise, negative = clockwise\nscene.setObjectAngularVelocity(id, Math.PI);  // half-rotation per second CCW\nscene.setObjectAngularVelocity(id, 0);        // stop spinning\n\n// Scale an object (updates both physics shape and sprite rendering)\nscene.setObjectScale(id, 2, 2);    // double size uniformly\nscene.setObjectScale(id, 2, 0.5);  // stretch wide, squash tall\nscene.setObjectScale(id, 1, 1);    // restore original size\n```\n\n## Mouse / Touch and Grab API\n\nMouse and touch input are handled automatically. On touch devices, a single finger grabs and drags `grabable` objects; a tap on a static object with `clicksToFall` set triggers the click-to-fall behavior. Two-finger gestures are ignored by the canvas so the browser can handle scroll and pinch-zoom normally. Touching over empty canvas (no `grabable` object) also passes through to the browser.\n\nFor scenarios where mouse input comes from an external source (e.g., system-wide mouse capture via WebSocket), you can programmatically control mouse position and grab/release behavior. This is useful when the canvas is positioned with an offset from the screen origin.\n\n### Setting Mouse Position\n\n```typescript\n// Apply your offset and set the adjusted position\nconst canvasX = screenMouseX - canvasOffsetX;\nconst canvasY = screenMouseY - canvasOffsetY;\nscene.setFollowTarget('mouse', canvasX, canvasY);\n```\n\nThe offset calculation is your responsibility - overlay-core uses whatever position you provide.\n\n### Programmatic Grab/Release\n\nGrab uses delta-based movement: when grabbed, the entity and mouse become linked. The entity moves BY the same amount as the mouse moves, not TO the mouse position. This ensures the entity stays at its original position on grab and follows mouse movement naturally.\n\nGrab detection uses a two-pass approach to handle fast-moving bodies. The first pass does an exact point query at the click position. If that misses (the body tunneled through the cursor between frames), a second pass sweeps the body's recent position history (last 5 frames, 20px radius) to catch it. This means you can grab entities even when they are moving quickly.\n\n```typescript\n// Grab object at current mouse position (only 'grabable' tagged objects)\nconst grabbedId = scene.startGrab();\nif (grabbedId) {\n  // Entity stays at its current position, now linked to mouse\n  console.log(`Grabbed: ${grabbedId}`);\n}\n\n// As mouse moves, entity moves by the same delta\n// Mouse moves +50px right → entity moves +50px right\nscene.setFollowTarget('mouse', newX, newY);\n\n// Release unlinks entity from mouse\nscene.endGrab();\n\n// Check what's currently grabbed\nconst currentGrab = scene.getGrabbedObject(); // Returns ID or null\n```\n\n| Method | Returns | Description |\n|--------|---------|-------------|\n| `setFollowTarget(key, x, y)` | void | Set a follow target position (e.g., 'mouse' for grab/follow behavior) |\n| `removeFollowTarget(key)` | void | Remove a follow target |\n| `getFollowTargetKeys()` | string[] | Get all active follow target keys |\n| `startGrab()` | string \\| null | Link entity at current mouse position to mouse, returns entity ID |\n| `endGrab()` | void | Unlink currently grabbed entity (applies release velocity) |\n| `getGrabbedObject()` | string \\| null | Get ID of currently grabbed entity |\n\n## Configuration\n\n### Scene Config\n\n```typescript\nconst scene = new OverlayScene(canvas, {\n  bounds: { top: 0, bottom: 600, left: 0, right: 800 },\n  gravity: { x: 0, y: -1 },\n  wrapHorizontal: true,\n  debug: false,\n  background: '#16213e',\n  floorConfig: {\n    segments: 10,\n    threshold: 100,\n    thickness: 20,\n    color: '#3a4a6a',   // Makes floor visible\n    minIntegrity: 7     // All collapse if fewer than 7 remain\n  },\n  despawnBelowFloor: 1.0\n});\n```\n\n| Option | Default | Description |\n|--------|---------|-------------|\n| `gravity` | `{ x: 0, y: 1 }` | Gravity vector. Both axes support negative values |\n| `wrapHorizontal` | true | Objects wrap around screen edges |\n| `debug` | false | Show collision wireframes |\n| `background` | transparent | Canvas background color |\n| `floorConfig.segments` | 1 | Number of floor segments |\n| `floorConfig.threshold` | none | Pressure threshold for collapse (number or array per segment) |\n| `floorConfig.thickness` | 50 | Floor thickness in pixels (number or array per segment) |\n| `floorConfig.color` | none | Floor color - makes segments visible (string or array per segment) |\n| `floorConfig.minIntegrity` | none | Minimum segments required, otherwise all collapse |\n| `floorConfig.segmentWidths` | none | Proportional widths for each segment (array that sums to 1.0) |\n| `despawnBelowFloor` | 1.0 | Distance below floor to despawn objects (as fraction of height) |\n| `recenterOnResize` | false | Translate all objects to stay centred when canvas dimensions change — useful for phone rotation and responsive layouts. Applies to all object types including static DOM obstacles (their CSS `left`/`top` is updated immediately at resize time, not deferred to the next frame). |\n\n### Background Configuration\n\nThe `background` option supports multiple formats:\n\n```typescript\n// Simple color\nbackground: '#16213e'\nbackground: 'transparent'\n\n// Full configuration with layers\nbackground: {\n  color: '#16213e',              // Base color layer\n  image: {\n    url: '/images/bg.png',\n    sizing: 'cover'              // 'stretch' | 'center' | 'tile' | 'cover' | 'contain'\n  },\n  transparency: {\n    mode: 'checkerboard',        // Visual indicator for transparent areas\n    color1: '#ffffff',\n    color2: '#cccccc',\n    size: 10\n  }\n}\n\n// Change background at runtime\nawait scene.setBackground({ color: '#000000' });\n```\n\n## Pressure Tracking\n\n```typescript\n// Get pressure on a specific obstacle\nconst pressure = scene.getPressure(obstacleId);\n\n// Get IDs of objects resting on an obstacle\nconst restingIds = scene.getObjectsRestingOn(obstacleId);\n\n// Get all obstacles with pressure\nconst allPressure = scene.getAllPressure();\n\n// Debug summary\nconst summary = scene.getPressureSummary();\n```\n\n## Callbacks and Events\n\n### Update Callback\n\nCalled every frame with all dynamic object states:\n\n```typescript\nscene.onUpdate((data) => {\n  // data.objects contains all dynamic objects (those without the 'static' tag)\n  for (const obj of data.objects) {\n    console.log(obj.id, obj.x, obj.y, obj.angle, obj.tags);\n  }\n});\n```\n\n### Lifecycle Events\n\nSubscribe to object lifecycle events:\n\n```typescript\n// Object spawned\nscene.on('objectSpawned', (obj) => {\n  console.log(`Spawned: ${obj.id}`, obj.x, obj.y);\n});\n\n// Object removed\nscene.on('objectRemoved', (obj) => {\n  console.log(`Removed: ${obj.id}`);\n});\n\n// Objects collided (fires on collision start)\nscene.on('objectCollision', (a, b) => {\n  console.log(`Collision: ${a.id} hit ${b.id}`);\n});\n\n// Unsubscribe\nscene.off('objectSpawned', myCallback);\n```\n\n### Querying Active Collisions\n\nThe scene tracks which objects are currently in contact, so you can query collision state at any time without maintaining your own bookkeeping:\n\n```typescript\n// Get all object IDs currently touching a specific object\nconst touching = scene.getCollidingWith('my-object-id'); // string[]\n\n// Get all active collision pairs\nconst pairs = scene.getActiveCollisions(); // Array<{ a: string, b: string }>\nfor (const { a, b } of pairs) {\n  console.log(`${a} is touching ${b}`);\n}\n```\n\nThese reflect live physics state — pairs are added on `collisionStart` and removed on `collisionEnd`. Only tracked objects are included (floor, boundaries, and DOM obstacles are excluded).\n\n## Font Setup\n\n### Bundled Fonts\n\nThe package includes three default fonts ready to use:\n\n| Font | Type | Characters |\n|------|------|------------|\n| `block` | PNG | A-Z, a-z, 0-9 (pixel/block style) |\n| `handwritten` | PNG | A-Z, 0-9 (handwritten style) |\n| `Roboto` | TTF | All characters |\n\n#### Vite Projects\n\nAdd the plugin to serve bundled fonts automatically:\n\n```typescript\n// vite.config.ts\nimport { defineConfig } from 'vite';\nimport { overlayFontsPlugin } from '@blorkfield/overlay-core/vite';\n\nexport default defineConfig({\n  plugins: [overlayFontsPlugin()],\n});\n```\n\nThat's it. The fonts are now available at `/fonts/` in your app.\n\n#### Other Build Tools\n\nFor non-Vite projects, the bundled fonts are located at:\n```\nnode_modules/@blorkfield/overlay-core/fonts/\n```\n\nConfigure your build tool to serve this directory at `/fonts/`.\n\n### Adding Custom Fonts\n\nCustom fonts can be added alongside the bundled fonts. Create a `fonts.json` manifest that includes both:\n\n```json\n{\n  \"fonts\": [\n    { \"name\": \"block\", \"type\": \"png\", \"characters\": \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" },\n    { \"name\": \"handwritten\", \"type\": \"png\", \"characters\": \"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\" },\n    { \"name\": \"Roboto\", \"type\": \"ttf\", \"characters\": \"*\", \"fontUrl\": \"/fonts/Roboto/static/Roboto-Regular.ttf\" },\n    { \"name\": \"my-custom-font\", \"type\": \"png\", \"characters\": \"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\" }\n  ]\n}\n```\n\n#### PNG Fonts\n\nCreate a directory with individual character images:\n\n```\nmy-custom-font/\n  A.png\n  B.png\n  ...\n```\n\n#### TTF Fonts\n\nAdd the font file and reference it in the manifest:\n\n```json\n{\n  \"name\": \"MyFont\",\n  \"type\": \"ttf\",\n  \"characters\": \"*\",\n  \"fontUrl\": \"/fonts/MyFont/MyFont-Regular.ttf\"\n}\n```\n\n### Font API\n\n```typescript\n// Initialize fonts from a directory\nawait scene.initializeFonts('/fonts/');\n\n// Check initialization status\nif (scene.areFontsInitialized()) {\n  // Get available fonts\n  const fonts = scene.getAvailableFonts();      // Returns FontInfo[]\n  const font = scene.getFontByName('Roboto');   // Returns FontInfo | undefined\n  const font = scene.getFontByIndex(0);         // Returns FontInfo | undefined\n  const defaultFont = scene.getDefaultFont();   // Returns first font or undefined\n}\n```\n\n## Logging\n\n```typescript\nimport { setLogLevel, getLogLevel } from '@blorkfield/overlay-core';\n\nsetLogLevel('debug');  // Options: debug, info, warn, error\n```\n\n## Lifecycle\n\n```typescript\nscene.start();                          // Start simulation\nscene.stop();                           // Pause simulation\nscene.resize(w, h);                     // Resize canvas and bounds\nscene.setDebug(true);                   // Toggle wireframe mode\nscene.setGravity({ x: 0, y: -1 });     // Set gravity (negative y = upward)\nscene.setGravity({ x: 0, y: 0 });      // Zero gravity\nscene.setGravity({ x: 1, y: 0 });      // Sideways gravity\nscene.destroy();                        // Clean up resources\n```\n\n### Per-Object Gravity Override\n\nDynamic objects can have their own gravity vector instead of the scene gravity. Set it via `gravityOverride` in spawn config, or change it at runtime with `setObjectGravityOverride`. This automatically adds or removes the `gravity_override` tag.\n\n```typescript\n// Spawn a floaty object that drifts upward\nscene.spawnObject({\n  x: 200, y: 300,\n  radius: 20,\n  fillStyle: '#4a90d9',\n  tags: ['grabable'],\n  gravityOverride: { x: 0, y: -0.3 }  // floats upward\n});\n\n// Zero gravity — hovers in place\nscene.spawnObject({\n  x: 400, y: 200,\n  radius: 15,\n  fillStyle: '#e94560',\n  gravityOverride: { x: 0, y: 0 }\n});\n\n// Change or clear a gravity override at runtime\nscene.setObjectGravityOverride(id, { x: 0.5, y: 0 }); // drift sideways\nscene.setObjectGravityOverride(id, null);               // restore scene gravity\n\n// removeTag works too — setObjectGravityOverride(id, null) calls it internally\nscene.removeTag(id, 'gravity_override');  // restores scene gravity\n```\n\nTags are the source of truth for all behavior. Boolean tags (presence = active, absence = inactive). `gravity_override` additionally carries a Vector2 value managed via `setObjectGravityOverride` or `gravityOverride` in spawn config.\n\n| Tag | Behavior |\n|-----|----------|\n| `static` | Static obstacle, not affected by gravity. Absent by default — objects are dynamic unless tagged static. |\n| `grabable` | Can be grabbed and dragged with the mouse or touch |\n| `follow_window` | Always applies a directional force toward its target (in all axes). Gravity determines whether the entity can actually reach targets above/below it. |\n| `gravity_override` | Uses its own gravity vector instead of scene gravity (value set via `setObjectGravityOverride`) |\n| `speed_override` | Multiplies movement speed for `follow_window` and future movement behaviors (value set via `setObjectSpeedOverride`). Negative = runs away from target. Default multiplier: 1 |\n| `mass_override` | Overrides physics mass (value set via `setObjectMassOverride`). Higher mass resists follow forces; lower mass may allow entity to overcome gravity. |\n\n### Speed Override\n\nObjects with `follow_window` move toward their target at default speed. `speed_override` multiplies this force. Negative values reverse the direction, causing the object to run away.\n\n```typescript\n// Spawn a fast follower\nscene.spawnObject({\n  tags: ['follow_window'],\n  speedOverride: 3,   // 3× normal speed — automatically adds 'speed_override' tag\n  // ...\n});\n\n// Spawn a coward that runs away from the mouse\nscene.spawnObject({\n  tags: ['follow_window'],\n  speedOverride: -2,  // flees at 2× speed\n  // ...\n});\n\n// Change speed at runtime\nscene.setObjectSpeedOverride(id, 5);   // very fast follower\nscene.setObjectSpeedOverride(id, -1);  // now runs away at normal speed\nscene.setObjectSpeedOverride(id, null); // remove override, restore default speed\n```\n\n### Mass Override\n\nEntities have a default density of `0.005`, which gives typical sizes a mass of ~6–20 units — enough that normal gravity prevents the follow force from lifting them vertically. `mass_override` lets you change this at spawn or runtime.\n\n```typescript\n// Light object — follow force can overcome normal gravity, moves freely in all directions\nscene.spawnObject({\n  tags: ['follow_window'],\n  massOverride: 1,\n  // ...\n});\n\n// Very heavy object — barely moves toward target under normal gravity\nscene.spawnObject({\n  tags: ['follow_window'],\n  massOverride: 100,\n  // ...\n});\n\n// Change or clear mass at runtime\nscene.setObjectMassOverride(id, 50);   // now heavy\nscene.setObjectMassOverride(id, null); // restore natural mass\n```\n\n### Scale\n\n`setObjectScale(id, x, y)` resizes an object at runtime. Both the physics collision shape and sprite rendering are updated together. Scale is absolute — calling `setObjectScale(id, 2, 2)` always doubles the original size regardless of current scale. Scaling also changes body mass proportionally (area scales by x×y); use `setObjectMassOverride` after if you need a fixed mass.\n\n```typescript\n// Uniform scale\nscene.setObjectScale(id, 2, 2);    // double size\nscene.setObjectScale(id, 0.5, 0.5); // half size\n\n// Non-uniform scale (independent x and y)\nscene.setObjectScale(id, 3, 1);    // stretch wide, keep height\nscene.setObjectScale(id, 1, 0.5);  // squash vertically\n\n// Restore original size\nscene.setObjectScale(id, 1, 1);\n```\n\n## Examples\n\nWorking examples are provided in the `/examples` directory:\n\n| Example | Description |\n|---------|-------------|\n| [examples/astro](./examples/astro) | Basic integration with Astro |\n| [examples/astro-svelte](./examples/astro-svelte) | Using Svelte components within Astro |\n\n## Dependencies\n\n| Package | Purpose |\n|---------|---------|\n| matter-js | Physics engine for collision, gravity, and forces |\n| opentype.js | TTF/OTF font parsing for glyph extraction |\n\n## TypeScript\n\nThe package is written in TypeScript and ships with full type definitions. All configuration interfaces are exported:\n\n```typescript\nimport type {\n  // Scene configuration\n  OverlaySceneConfig,\n  Bounds,\n  Vector2,\n  ContainerOptions,\n  FloorConfig,\n\n  // Object types\n  ObjectConfig,\n  DynamicObject,\n  ObjectState,\n  ShapeConfig,\n  ShapePreset,\n  DespawnEffectConfig,\n\n  // Text obstacle types\n  TextObstacleConfig,\n  TextObstacleResult,\n  TTFTextObstacleConfig,\n  TextAlign,\n  TextBounds,\n  LetterDebugInfo,\n\n  // DOM obstacle types\n  DOMObstacleConfig,\n  DOMObstacleResult,\n\n  // Effect types\n  EffectConfig,\n  EffectType,\n  EffectObjectConfig,\n  BaseEffectConfig,\n  BurstEffectConfig,\n  RainEffectConfig,\n  StreamEffectConfig,\n\n  // Pressure, weight, shadow, click types\n  PressureThresholdConfig,\n  WeightConfig,\n  ShadowConfig,\n  ClickToFallConfig,\n\n  // Background types\n  BackgroundConfig,\n  BackgroundImageConfig,\n  BackgroundImageSizing,\n  BackgroundTransparencyConfig,\n\n  // Font types\n  FontInfo,\n  FontManifest,\n  LoadedFont,\n  GlyphData,\n\n  // Lifecycle types\n  LifecycleEvent,\n  LifecycleCallback,\n  UpdateCallback,\n  UpdateCallbackData,\n\n  // Logging\n  LogLevel,\n\n  // Tags\n  Tag\n} from '@blorkfield/overlay-core';\n\n// Tag constants (values, not types)\nimport { TAGS, TAG_STATIC, TAG_GRABABLE, TAG_FOLLOW_WINDOW, TAG_GRAVITY_OVERRIDE, TAG_SPEED_OVERRIDE, TAG_MASS_OVERRIDE } from '@blorkfield/overlay-core';\n```\n","readmeFilename":"README.md"}