{"_id":"@spine-benchmark/spinefolio","_rev":"28-c25fb4c11f786e792fce8b674feb07f7","name":"@spine-benchmark/spinefolio","dist-tags":{"latest":"3.0.0","v3-2":"0.0.0-v3-2-20260413062404"},"versions":{"2.2.2":{"name":"@spine-benchmark/spinefolio","version":"2.2.2","keywords":["spine","pixi","pixijs","animation","widget"],"_id":"@spine-benchmark/spinefolio@2.2.2","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"dist":{"shasum":"d7567cb41224e9b870015361d70efc6da1b36507","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-2.2.2.tgz","fileCount":34,"integrity":"sha512-W44J4DIHPpK/89SL3oEnQafKHSjqhGHh+/maQC5I8Y6qUTuhNo4dGLIAmZy3IUIbGTMv+NRo4rfKMeexhoXlzA==","signatures":[{"sig":"MEUCIFRI0/DdoZkI1QX4iIKRKGoep+hWXndM6PTu5xhhEnN3AiEA0f/WgdKIBxP7D2uod0STTxTfLoHgs2snQwYQ9xxB0qo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5274875},"main":"./dist/spinefolio.js","type":"module","types":"./dist/types/core/index.d.ts","module":"./dist/spinefolio.module.js","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./package.json":"./package.json","./spinefolio.css":"./dist/spinefolio.css","./themes/neon.css":"./dist/themes/neon.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css"},"gitHead":"b9615d195332876bbea104a6024e5ad82b531394","scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","clean":"rm -rf dist","preview":"vite preview","build:auto":"vite build --config vite.config.auto.ts","build:core":"vite build","pack:check":"npm pack --dry-run","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"_npmVersion":"10.8.2","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","directories":{},"_nodeVersion":"20.20.1","dependencies":{"pixi.js":"^8.16.0","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","terser":"^5.46.0","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/spinefolio_2.2.2_1773906668600_0.16344145095726237","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-v3-2-20260411092333":{"name":"@spine-benchmark/spinefolio","version":"0.0.0-v3-2-20260411092333","keywords":["spine","pixi","pixijs","animation","widget"],"_id":"@spine-benchmark/spinefolio@0.0.0-v3-2-20260411092333","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"dist":{"shasum":"d06ccb0e992eb7a55c75d364779ee479de15088d","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-0.0.0-v3-2-20260411092333.tgz","fileCount":34,"integrity":"sha512-T1wa+nc2APil1jyr3DVbdApmTMYCw2NK4OyxsoJrsyaP60iUfx+rs/SWNiSIQ/7vD3qFiW0rhXP6IV1lkS9QbA==","signatures":[{"sig":"MEUCIH/mE1vGQ+9zC7O2soLFGnJbQ8xIh4/z1L9VP+RTGE7HAiEAyGH7ffeh6UlGDeryVG+pZslMcu1FuDrIGWjds3edH3M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5279329},"main":"./dist/spinefolio.js","type":"module","types":"./dist/types/core/index.d.ts","module":"./dist/spinefolio.module.js","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./package.json":"./package.json","./spinefolio.css":"./dist/spinefolio.css","./themes/neon.css":"./dist/themes/neon.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css"},"gitHead":"0d92885b2c35e8e300fc3517f874d8bc342bba84","scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","clean":"rm -rf dist","preview":"vite preview","build:auto":"vite build --config vite.config.auto.ts","build:core":"vite build","pack:check":"npm pack --dry-run","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"_npmVersion":"10.8.2","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","directories":{},"_nodeVersion":"20.20.2","dependencies":{"pixi.js":"^8.16.0","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","terser":"^5.46.0","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/spinefolio_0.0.0-v3-2-20260411092333_1775899515363_0.1050767338235461","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-v3-2-20260411092544":{"name":"@spine-benchmark/spinefolio","version":"0.0.0-v3-2-20260411092544","keywords":["spine","pixi","pixijs","animation","widget"],"_id":"@spine-benchmark/spinefolio@0.0.0-v3-2-20260411092544","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"dist":{"shasum":"d6b667cd025f6fc0e563b24c395998aa5d7ff7bc","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-0.0.0-v3-2-20260411092544.tgz","fileCount":34,"integrity":"sha512-MvxI/yOh0IuBwOMVZjNyfRtbv3SOeumJ6s5il3g++AE6NTSf1bGSvDRXpqXzyXEdrL/3ZIobaheqkR/0f1Jc9g==","signatures":[{"sig":"MEUCIA+LRWpHK6wcrfZ8V3+DRz2ZzAKBS2Rr0YL2DjqiYcUnAiEA05ADxGijKVCIXrkrrpUMjRZiJV3qhq7bqQa43jsHhuo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5279329},"main":"./dist/spinefolio.js","type":"module","types":"./dist/types/core/index.d.ts","module":"./dist/spinefolio.module.js","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./package.json":"./package.json","./spinefolio.css":"./dist/spinefolio.css","./themes/neon.css":"./dist/themes/neon.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css"},"gitHead":"ada90d940f72b6b1e7aa0f35c280b356ca7da42a","scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","clean":"rm -rf dist","preview":"vite preview","build:auto":"vite build --config vite.config.auto.ts","build:core":"vite build","pack:check":"npm pack --dry-run","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"_npmVersion":"10.8.2","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","directories":{},"_nodeVersion":"20.20.2","dependencies":{"pixi.js":"^8.16.0","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","terser":"^5.46.0","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/spinefolio_0.0.0-v3-2-20260411092544_1775899645959_0.6123163934714375","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-v3-2-20260411134922":{"name":"@spine-benchmark/spinefolio","version":"0.0.0-v3-2-20260411134922","keywords":["spine","pixi","pixijs","animation","widget"],"_id":"@spine-benchmark/spinefolio@0.0.0-v3-2-20260411134922","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"homepage":"https://github.com/schmooky/spine-benchmark/tree/main/packages/spinefolio#readme","bugs":{"url":"https://github.com/schmooky/spine-benchmark/issues"},"dist":{"shasum":"50caf0652612819056ef87498cc46fb010dd6d91","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-0.0.0-v3-2-20260411134922.tgz","fileCount":34,"integrity":"sha512-/+IKS1vd+6Lv7OKsPE5GslCpp4eV/63ADEw5Iiz7nM7neCrvPt5X1DnLuXbL+EJrrmbMVDgfwmD/ZRrUi44WXw==","signatures":[{"sig":"MEUCIBQTsy74KNo8Rn47i0OgkEju0zBVu+BqYhMBad98H/RcAiEAvU0Rdf0NP82nyHnhupmaMqCsAYV5DFALZEM1Y5vnTcQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spine-benchmark%2fspinefolio@0.0.0-v3-2-20260411134922","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5279655},"main":"./dist/spinefolio.js","type":"module","types":"./dist/types/core/index.d.ts","module":"./dist/spinefolio.module.js","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./package.json":"./package.json","./spinefolio.css":"./dist/spinefolio.css","./themes/neon.css":"./dist/themes/neon.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css"},"gitHead":"84a16cfeed1479d93f030db1d385593b955965b1","scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","clean":"rm -rf dist","preview":"vite preview","build:auto":"vite build --config vite.config.auto.ts","build:core":"vite build","pack:check":"npm pack --dry-run","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"repository":{"url":"git+https://github.com/schmooky/spine-benchmark.git","type":"git","directory":"packages/spinefolio"},"_npmVersion":"10.8.2","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","directories":{},"_nodeVersion":"20.20.2","dependencies":{"pixi.js":"^8.16.0","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","terser":"^5.46.0","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/spinefolio_0.0.0-v3-2-20260411134922_1775915466319_0.45071889183864067","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-v3-2-20260411154751":{"name":"@spine-benchmark/spinefolio","version":"0.0.0-v3-2-20260411154751","keywords":["spine","pixi","pixijs","animation","widget"],"_id":"@spine-benchmark/spinefolio@0.0.0-v3-2-20260411154751","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"homepage":"https://github.com/schmooky/spine-benchmark/tree/main/packages/spinefolio#readme","bugs":{"url":"https://github.com/schmooky/spine-benchmark/issues"},"dist":{"shasum":"2c5631e616a8c2b2708a56b9ef999af62d5c0d12","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-0.0.0-v3-2-20260411154751.tgz","fileCount":34,"integrity":"sha512-dD9B+zrwA/CODD+xoHfiSkIBmYi7yV4mGiGeC6UXfzDzjpHGe2X15cWq+smLnM1T0t/Wab2kaM8tf3/LGS6Mbg==","signatures":[{"sig":"MEUCICihg4FNZv9+m132QHlNifGWMlYj12qBV5ZmrDUU+JtDAiEAtVvmgwxLiOYQyEQ+R2RhgHIpoD0GIUKAwfZ21He933s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spine-benchmark%2fspinefolio@0.0.0-v3-2-20260411154751","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5279655},"main":"./dist/spinefolio.js","type":"module","types":"./dist/types/core/index.d.ts","module":"./dist/spinefolio.module.js","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./package.json":"./package.json","./spinefolio.css":"./dist/spinefolio.css","./themes/neon.css":"./dist/themes/neon.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css"},"gitHead":"582e042e13f3e321c39c1f3253ee8ee3c4f67e08","scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","clean":"rm -rf dist","preview":"vite preview","build:auto":"vite build --config vite.config.auto.ts","build:core":"vite build","pack:check":"npm pack --dry-run","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"repository":{"url":"git+https://github.com/schmooky/spine-benchmark.git","type":"git","directory":"packages/spinefolio"},"_npmVersion":"10.8.2","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","directories":{},"_nodeVersion":"20.20.2","dependencies":{"pixi.js":"^8.16.0","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","terser":"^5.46.0","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/spinefolio_0.0.0-v3-2-20260411154751_1775922575826_0.6563830734482043","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-v3-2-20260411170211":{"name":"@spine-benchmark/spinefolio","version":"0.0.0-v3-2-20260411170211","keywords":["spine","pixi","pixijs","animation","widget"],"_id":"@spine-benchmark/spinefolio@0.0.0-v3-2-20260411170211","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"homepage":"https://github.com/schmooky/spine-benchmark/tree/main/packages/spinefolio#readme","bugs":{"url":"https://github.com/schmooky/spine-benchmark/issues"},"dist":{"shasum":"1c43af3298bc3432f1b09255a6964df5a6cf6844","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-0.0.0-v3-2-20260411170211.tgz","fileCount":34,"integrity":"sha512-k8T7M0C0IyAfQ1eGy9gFWAwfQRbJHj87gL3+QUhivAbRj8KfPUgY3M3gH+mjLsVenbIcg3vUjkqBhALNbW8i0Q==","signatures":[{"sig":"MEUCIQCMAZ75GtMd9j1sjCP2qDDWlOsm4eirdYjq+u5na00OrAIgSJulzGZQKfo1WoxwOboOxCr2Wb96BEGw5gPIMLQJOV4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spine-benchmark%2fspinefolio@0.0.0-v3-2-20260411170211","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5281757},"main":"./dist/spinefolio.js","type":"module","types":"./dist/types/core/index.d.ts","module":"./dist/spinefolio.module.js","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./package.json":"./package.json","./spinefolio.css":"./dist/spinefolio.css","./themes/neon.css":"./dist/themes/neon.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css"},"gitHead":"a8d6ebcbb5f0fb780c13b60946e03d903e0b5902","scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","clean":"rm -rf dist","preview":"vite preview","build:auto":"vite build --config vite.config.auto.ts","build:core":"vite build","pack:check":"npm pack --dry-run","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"repository":{"url":"git+https://github.com/schmooky/spine-benchmark.git","type":"git","directory":"packages/spinefolio"},"_npmVersion":"10.8.2","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","terser":"^5.46.0","pixi.js":"^8.16.0","typescript":"^5.9.3","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependencies":{"pixi.js":"^8.0.0","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependenciesMeta":{"pixi.js":{"optional":true},"@esotericsoftware/spine-pixi-v8":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/spinefolio_0.0.0-v3-2-20260411170211_1775927037676_0.0012799870667363766","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-v3-2-20260411171143":{"name":"@spine-benchmark/spinefolio","version":"0.0.0-v3-2-20260411171143","keywords":["spine","pixi","pixijs","animation","widget"],"_id":"@spine-benchmark/spinefolio@0.0.0-v3-2-20260411171143","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"homepage":"https://github.com/schmooky/spine-benchmark/tree/main/packages/spinefolio#readme","bugs":{"url":"https://github.com/schmooky/spine-benchmark/issues"},"dist":{"shasum":"8a83680451a614606b7acf619f85707e3ca90b53","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-0.0.0-v3-2-20260411171143.tgz","fileCount":34,"integrity":"sha512-AABranbRSzpzSSCpKsLPdEnH5hDkAsHMNIp/ji/MqNoDpPe4hfjenilnMmnFPDGHF2+MnhWeZYrO+SyhiZ0xwg==","signatures":[{"sig":"MEUCID/RDX3txiAG43SDBr1thmy4xTdJalG+J2n0e16HtdKLAiEAnQtLh3n5l7BEH89CJ066wvdNfCsszxB64huUmjNw5mw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spine-benchmark%2fspinefolio@0.0.0-v3-2-20260411171143","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5281757},"main":"./dist/spinefolio.js","type":"module","types":"./dist/types/core/index.d.ts","module":"./dist/spinefolio.module.js","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./package.json":"./package.json","./spinefolio.css":"./dist/spinefolio.css","./themes/neon.css":"./dist/themes/neon.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css"},"gitHead":"196d7d58fdfab6b2315c79e191de54ebf40eae74","scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","clean":"rm -rf dist","preview":"vite preview","build:auto":"vite build --config vite.config.auto.ts","build:core":"vite build","pack:check":"npm pack --dry-run","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"repository":{"url":"git+https://github.com/schmooky/spine-benchmark.git","type":"git","directory":"packages/spinefolio"},"_npmVersion":"10.8.2","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","terser":"^5.46.0","pixi.js":"^8.16.0","typescript":"^5.9.3","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependencies":{"pixi.js":"^8.0.0","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependenciesMeta":{"pixi.js":{"optional":true},"@esotericsoftware/spine-pixi-v8":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/spinefolio_0.0.0-v3-2-20260411171143_1775927597634_0.5764430848819846","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-v3-2-20260411173735":{"name":"@spine-benchmark/spinefolio","version":"0.0.0-v3-2-20260411173735","keywords":["spine","pixi","pixijs","animation","widget"],"_id":"@spine-benchmark/spinefolio@0.0.0-v3-2-20260411173735","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"homepage":"https://github.com/schmooky/spine-benchmark/tree/main/packages/spinefolio#readme","bugs":{"url":"https://github.com/schmooky/spine-benchmark/issues"},"dist":{"shasum":"d315e9386640bd7af1047c84f825cd59ca34d3d7","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-0.0.0-v3-2-20260411173735.tgz","fileCount":34,"integrity":"sha512-Dp8X3ve1urAOdmc0A0vhvZ8/WghJC+sLl9YPmMC/p92sIdJCWG4zeKL49dwcWlW8gL11ZZWwIJE72jR/b85gXg==","signatures":[{"sig":"MEQCIBOGM2VhQiPcIMJptPRc/0KtptDxvkT8QAV2Wu6QLQ2LAiAj1EIAlo1moRxoCWUqbj+Z9wQAwJg8A2MqW3rBxfYb8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spine-benchmark%2fspinefolio@0.0.0-v3-2-20260411173735","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5281757},"main":"./dist/spinefolio.js","type":"module","types":"./dist/types/core/index.d.ts","module":"./dist/spinefolio.module.js","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./package.json":"./package.json","./spinefolio.css":"./dist/spinefolio.css","./themes/neon.css":"./dist/themes/neon.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css"},"gitHead":"035f7a00745b444c381d76145535c4cd07b3179f","scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","clean":"rm -rf dist","preview":"vite preview","build:auto":"vite build --config vite.config.auto.ts","build:core":"vite build","pack:check":"npm pack --dry-run","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"repository":{"url":"git+https://github.com/schmooky/spine-benchmark.git","type":"git","directory":"packages/spinefolio"},"_npmVersion":"10.8.2","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","terser":"^5.46.0","pixi.js":"^8.16.0","typescript":"^5.9.3","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependencies":{"pixi.js":"^8.0.0","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependenciesMeta":{"pixi.js":{"optional":true},"@esotericsoftware/spine-pixi-v8":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/spinefolio_0.0.0-v3-2-20260411173735_1775929156017_0.4879514768161357","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-v3-2-20260411174915":{"name":"@spine-benchmark/spinefolio","version":"0.0.0-v3-2-20260411174915","keywords":["spine","pixi","pixijs","animation","widget"],"_id":"@spine-benchmark/spinefolio@0.0.0-v3-2-20260411174915","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"homepage":"https://github.com/schmooky/spine-benchmark/tree/main/packages/spinefolio#readme","bugs":{"url":"https://github.com/schmooky/spine-benchmark/issues"},"dist":{"shasum":"112bec61d16183f5c0f25e3dedb9829a0e29252e","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-0.0.0-v3-2-20260411174915.tgz","fileCount":34,"integrity":"sha512-qgCvzMTgDUWHLEg3uu+rwa6hfzllJRqPndg8j8GgPmTuv846xtt+4ep8CFxG+B02xoFlOAlyMVB2ub1fUbR1rg==","signatures":[{"sig":"MEYCIQCo/G9vSbjSMZJMpYpZXhlhld/1G2osJaYJ2k6/hTO95AIhANk8Zsd4g6e9dmC3PctEmQHviQNedqmIT2Od7/ZDAX1p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spine-benchmark%2fspinefolio@0.0.0-v3-2-20260411174915","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5281757},"main":"./dist/spinefolio.js","type":"module","types":"./dist/types/core/index.d.ts","module":"./dist/spinefolio.module.js","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./package.json":"./package.json","./spinefolio.css":"./dist/spinefolio.css","./themes/neon.css":"./dist/themes/neon.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css"},"gitHead":"aa36b8fb827875c7240934c997ff14adabac7729","scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","clean":"rm -rf dist","preview":"vite preview","build:auto":"vite build --config vite.config.auto.ts","build:core":"vite build","pack:check":"npm pack --dry-run","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"repository":{"url":"git+https://github.com/schmooky/spine-benchmark.git","type":"git","directory":"packages/spinefolio"},"_npmVersion":"10.8.2","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","terser":"^5.46.0","pixi.js":"^8.16.0","typescript":"^5.9.3","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependencies":{"pixi.js":"^8.0.0","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependenciesMeta":{"pixi.js":{"optional":true},"@esotericsoftware/spine-pixi-v8":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/spinefolio_0.0.0-v3-2-20260411174915_1775929852961_0.4673034282440973","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-v3-2-20260411182305":{"name":"@spine-benchmark/spinefolio","version":"0.0.0-v3-2-20260411182305","keywords":["spine","pixi","pixijs","animation","widget"],"_id":"@spine-benchmark/spinefolio@0.0.0-v3-2-20260411182305","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"homepage":"https://github.com/schmooky/spine-benchmark/tree/main/packages/spinefolio#readme","bugs":{"url":"https://github.com/schmooky/spine-benchmark/issues"},"dist":{"shasum":"aeac805ecff8332979c172918bf657e7ff9be2ca","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-0.0.0-v3-2-20260411182305.tgz","fileCount":34,"integrity":"sha512-mLgHLKqlFGMaXALVfaIaKZh/pClG4EvBSRojtG/W5RZ65HJMYHTR8xhyn4RMSEh2JI9f+lvRgE0+q3V9KqFsDw==","signatures":[{"sig":"MEUCIAp4LSp8NC/MnfY9HmYft8xKzDYTa2qc9RIKK8f9Lr43AiEA9xTkvPBGwHYIjN1jP87kKLyGOaarE+TLSsONHXMoIxw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spine-benchmark%2fspinefolio@0.0.0-v3-2-20260411182305","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5281757},"main":"./dist/spinefolio.js","type":"module","types":"./dist/types/core/index.d.ts","module":"./dist/spinefolio.module.js","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./package.json":"./package.json","./spinefolio.css":"./dist/spinefolio.css","./themes/neon.css":"./dist/themes/neon.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css"},"gitHead":"38ea673ae28960e5a15b98f530bde1e3fc0153a0","scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","clean":"rm -rf dist","preview":"vite preview","build:auto":"vite build --config vite.config.auto.ts","build:core":"vite build","pack:check":"npm pack --dry-run","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"repository":{"url":"git+https://github.com/schmooky/spine-benchmark.git","type":"git","directory":"packages/spinefolio"},"_npmVersion":"10.8.2","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","terser":"^5.46.0","pixi.js":"^8.16.0","typescript":"^5.9.3","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependencies":{"pixi.js":"^8.0.0","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependenciesMeta":{"pixi.js":{"optional":true},"@esotericsoftware/spine-pixi-v8":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/spinefolio_0.0.0-v3-2-20260411182305_1775931886553_0.017809497856541956","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-v3-2-20260411190331":{"name":"@spine-benchmark/spinefolio","version":"0.0.0-v3-2-20260411190331","keywords":["spine","pixi","pixijs","animation","widget"],"_id":"@spine-benchmark/spinefolio@0.0.0-v3-2-20260411190331","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"homepage":"https://github.com/schmooky/spine-benchmark/tree/main/packages/spinefolio#readme","bugs":{"url":"https://github.com/schmooky/spine-benchmark/issues"},"dist":{"shasum":"ea515839e410d6015c9baafd0061a9b31e36f7f3","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-0.0.0-v3-2-20260411190331.tgz","fileCount":34,"integrity":"sha512-ly2RgwgEOBS/vAC5ahnhx1j4XcTEm+LT+YkdNXDJRAF1oKpOeagxVdWPKpPrsKGpKwGwNAWk/cIaXDP2P92n8Q==","signatures":[{"sig":"MEUCIQCatvtyofCZxhhDYsbw/9W6u8z3zMZhaymicA2S6nTeIgIgayTBHM6Kc34PgOk2fc2L1jGtVtuSk/mSQD+tBHuFZQ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spine-benchmark%2fspinefolio@0.0.0-v3-2-20260411190331","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5281757},"main":"./dist/spinefolio.js","type":"module","types":"./dist/types/core/index.d.ts","module":"./dist/spinefolio.module.js","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./package.json":"./package.json","./spinefolio.css":"./dist/spinefolio.css","./themes/neon.css":"./dist/themes/neon.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css"},"gitHead":"e3dec978bbf3c19676e18af7665c87750e063d71","scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","clean":"rm -rf dist","preview":"vite preview","build:auto":"vite build --config vite.config.auto.ts","build:core":"vite build","pack:check":"npm pack --dry-run","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"repository":{"url":"git+https://github.com/schmooky/spine-benchmark.git","type":"git","directory":"packages/spinefolio"},"_npmVersion":"10.8.2","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","terser":"^5.46.0","pixi.js":"^8.16.0","typescript":"^5.9.3","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependencies":{"pixi.js":"^8.0.0","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependenciesMeta":{"pixi.js":{"optional":true},"@esotericsoftware/spine-pixi-v8":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/spinefolio_0.0.0-v3-2-20260411190331_1775934318443_0.3617733119751838","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-v3-2-20260412104341":{"name":"@spine-benchmark/spinefolio","version":"0.0.0-v3-2-20260412104341","keywords":["spine","pixi","pixijs","animation","widget"],"_id":"@spine-benchmark/spinefolio@0.0.0-v3-2-20260412104341","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"homepage":"https://github.com/schmooky/spine-benchmark/tree/main/packages/spinefolio#readme","bugs":{"url":"https://github.com/schmooky/spine-benchmark/issues"},"dist":{"shasum":"7b35d360521918d638e3b30f69e0b8d35babeeee","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-0.0.0-v3-2-20260412104341.tgz","fileCount":34,"integrity":"sha512-fq3/tRk+0qol+mc5gMer0NSLjT2v9a8fHuQtHbZW57ZvPwlhw7Gw7zMJWmaEM487mJC1zGe6jQhIqIPjQs8/3A==","signatures":[{"sig":"MEYCIQCfl7Ie7+JXE/oC0g/ucxY2EGt6V2sSHke7LKFCQq//6AIhAL8mAXlN29q7fuaJ7XXIzC/n8WHQRUGN5neS76jHhwzg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spine-benchmark%2fspinefolio@0.0.0-v3-2-20260412104341","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5281757},"main":"./dist/spinefolio.js","type":"module","types":"./dist/types/core/index.d.ts","module":"./dist/spinefolio.module.js","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./package.json":"./package.json","./spinefolio.css":"./dist/spinefolio.css","./themes/neon.css":"./dist/themes/neon.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css"},"gitHead":"5ce63946723ea2d27e1b49eec2fcd9ab01ce3484","scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","clean":"rm -rf dist","preview":"vite preview","build:auto":"vite build --config vite.config.auto.ts","build:core":"vite build","pack:check":"npm pack --dry-run","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"repository":{"url":"git+https://github.com/schmooky/spine-benchmark.git","type":"git","directory":"packages/spinefolio"},"_npmVersion":"10.8.2","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","terser":"^5.46.0","pixi.js":"^8.16.0","typescript":"^5.9.3","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependencies":{"pixi.js":"^8.0.0","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependenciesMeta":{"pixi.js":{"optional":true},"@esotericsoftware/spine-pixi-v8":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/spinefolio_0.0.0-v3-2-20260412104341_1775990728113_0.8497963171570697","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-v3-2-20260412104818":{"name":"@spine-benchmark/spinefolio","version":"0.0.0-v3-2-20260412104818","keywords":["spine","pixi","pixijs","animation","widget"],"_id":"@spine-benchmark/spinefolio@0.0.0-v3-2-20260412104818","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"homepage":"https://github.com/schmooky/spine-benchmark/tree/main/packages/spinefolio#readme","bugs":{"url":"https://github.com/schmooky/spine-benchmark/issues"},"dist":{"shasum":"e855be96cc98f420e74a115ce7279a93fd581333","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-0.0.0-v3-2-20260412104818.tgz","fileCount":34,"integrity":"sha512-MB6outFosMBfnv+Lu8DGCxUIXSqSFuKugs4P7Rg+hfupfvPSwfOUR/0VPGw+vHNXklGcvKPReutsSdQfbw9I5w==","signatures":[{"sig":"MEUCIEc/7dmXPzqIeQRBUfyR5X/Ko1U5GidwB309QR9/9tXqAiEAhLkxl2MAT8THLEB0Wp9PIoaLDV317MMGjuLT1oMAjJY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spine-benchmark%2fspinefolio@0.0.0-v3-2-20260412104818","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5281757},"main":"./dist/spinefolio.js","type":"module","types":"./dist/types/core/index.d.ts","module":"./dist/spinefolio.module.js","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./package.json":"./package.json","./spinefolio.css":"./dist/spinefolio.css","./themes/neon.css":"./dist/themes/neon.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css"},"gitHead":"f9b2292afe37877fa2e7a936d5d27fca02763755","scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","clean":"rm -rf dist","preview":"vite preview","build:auto":"vite build --config vite.config.auto.ts","build:core":"vite build","pack:check":"npm pack --dry-run","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"repository":{"url":"git+https://github.com/schmooky/spine-benchmark.git","type":"git","directory":"packages/spinefolio"},"_npmVersion":"10.8.2","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","terser":"^5.46.0","pixi.js":"^8.16.0","typescript":"^5.9.3","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependencies":{"pixi.js":"^8.0.0","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependenciesMeta":{"pixi.js":{"optional":true},"@esotericsoftware/spine-pixi-v8":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/spinefolio_0.0.0-v3-2-20260412104818_1775991002526_0.4617612677251255","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-v3-2-20260412105525":{"name":"@spine-benchmark/spinefolio","version":"0.0.0-v3-2-20260412105525","keywords":["spine","pixi","pixijs","animation","widget"],"_id":"@spine-benchmark/spinefolio@0.0.0-v3-2-20260412105525","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"homepage":"https://github.com/schmooky/spine-benchmark/tree/main/packages/spinefolio#readme","bugs":{"url":"https://github.com/schmooky/spine-benchmark/issues"},"dist":{"shasum":"ab103a7781aeaf2b39ac8def615eda6de607d4d2","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-0.0.0-v3-2-20260412105525.tgz","fileCount":34,"integrity":"sha512-b/4JMwaootZBTivZIxP0M5ch188qILO+JMCOmI1zQMEttNyDLjFdfWrwfS1sy39TdoeXSi8yxs+MZlOxnizLaw==","signatures":[{"sig":"MEQCIE0QA7xJsNJmO65vsno9jblehyeY+4CFKLGz75wm+kIbAiBpx/yM/tysebdqu/bVEd/rq/fssIxW4oOA8Hiyw/iz/w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spine-benchmark%2fspinefolio@0.0.0-v3-2-20260412105525","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5281757},"main":"./dist/spinefolio.js","type":"module","types":"./dist/types/core/index.d.ts","module":"./dist/spinefolio.module.js","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./package.json":"./package.json","./spinefolio.css":"./dist/spinefolio.css","./themes/neon.css":"./dist/themes/neon.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css"},"gitHead":"4dd41c8db836c700ca9aec6065a82de11a608c99","scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","clean":"rm -rf dist","preview":"vite preview","build:auto":"vite build --config vite.config.auto.ts","build:core":"vite build","pack:check":"npm pack --dry-run","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"repository":{"url":"git+https://github.com/schmooky/spine-benchmark.git","type":"git","directory":"packages/spinefolio"},"_npmVersion":"10.8.2","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","terser":"^5.46.0","pixi.js":"^8.16.0","typescript":"^5.9.3","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependencies":{"pixi.js":"^8.0.0","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependenciesMeta":{"pixi.js":{"optional":true},"@esotericsoftware/spine-pixi-v8":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/spinefolio_0.0.0-v3-2-20260412105525_1775991421491_0.23042756698862","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-v3-2-20260412214018":{"name":"@spine-benchmark/spinefolio","version":"0.0.0-v3-2-20260412214018","keywords":["spine","pixi","pixijs","animation","widget"],"_id":"@spine-benchmark/spinefolio@0.0.0-v3-2-20260412214018","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"homepage":"https://github.com/schmooky/spine-benchmark/tree/main/packages/spinefolio#readme","bugs":{"url":"https://github.com/schmooky/spine-benchmark/issues"},"dist":{"shasum":"9b215a6a6d72b14dec062557c15a2cd4a533b899","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-0.0.0-v3-2-20260412214018.tgz","fileCount":34,"integrity":"sha512-Okwew7o4QRJswAjqQJIaRJcjkZkRWHy4StZq3ApUA2Jj/MtAUf5Uj99V9sJ+9yHHOhslSttE82b0xwMILQSWmA==","signatures":[{"sig":"MEUCIDoxxvU7ihG/ZetguCAW6FIeCDMfwBdVM90AeszfMaNzAiEAgArJWbUc0YC1VFJudY/fTxnh57O208GotysI3crooHc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spine-benchmark%2fspinefolio@0.0.0-v3-2-20260412214018","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5281757},"main":"./dist/spinefolio.js","type":"module","types":"./dist/types/core/index.d.ts","module":"./dist/spinefolio.module.js","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./package.json":"./package.json","./spinefolio.css":"./dist/spinefolio.css","./themes/neon.css":"./dist/themes/neon.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css"},"gitHead":"1c4365494c7c406c8cec3257b8e80d7a089b11b4","scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","clean":"rm -rf dist","preview":"vite preview","build:auto":"vite build --config vite.config.auto.ts","build:core":"vite build","pack:check":"npm pack --dry-run","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"repository":{"url":"git+https://github.com/schmooky/spine-benchmark.git","type":"git","directory":"packages/spinefolio"},"_npmVersion":"10.8.2","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","terser":"^5.46.0","pixi.js":"^8.16.0","typescript":"^5.9.3","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependencies":{"pixi.js":"^8.0.0","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependenciesMeta":{"pixi.js":{"optional":true},"@esotericsoftware/spine-pixi-v8":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/spinefolio_0.0.0-v3-2-20260412214018_1776030116017_0.9963395228858098","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-v3-2-20260412214511":{"name":"@spine-benchmark/spinefolio","version":"0.0.0-v3-2-20260412214511","keywords":["spine","pixi","pixijs","animation","widget"],"_id":"@spine-benchmark/spinefolio@0.0.0-v3-2-20260412214511","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"homepage":"https://github.com/schmooky/spine-benchmark/tree/main/packages/spinefolio#readme","bugs":{"url":"https://github.com/schmooky/spine-benchmark/issues"},"dist":{"shasum":"9984c08e948dc250ff7ec7c1cdb50b49021ade3b","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-0.0.0-v3-2-20260412214511.tgz","fileCount":34,"integrity":"sha512-Hy1lJURO0kouvQ+l0a+ETKlYYfmZZzM1ApeQiMpYbPrExmd5TRdvCR09ZZ0/VRHIyxrW5jMvOYBWKLXs/KiDpA==","signatures":[{"sig":"MEUCICp69lIyBxvxuSd7VD8EoXaRX2qVfwvxDtEZaK8++1ubAiEA0/qqFqLzkMu0bZteguO9LxR2On6G3IY/egMM99sg0NA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spine-benchmark%2fspinefolio@0.0.0-v3-2-20260412214511","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5281757},"main":"./dist/spinefolio.js","type":"module","types":"./dist/types/core/index.d.ts","module":"./dist/spinefolio.module.js","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./package.json":"./package.json","./spinefolio.css":"./dist/spinefolio.css","./themes/neon.css":"./dist/themes/neon.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css"},"gitHead":"71be71fd7156aa2aa32ab7361a1886c5618a40bf","scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","clean":"rm -rf dist","preview":"vite preview","build:auto":"vite build --config vite.config.auto.ts","build:core":"vite build","pack:check":"npm pack --dry-run","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"repository":{"url":"git+https://github.com/schmooky/spine-benchmark.git","type":"git","directory":"packages/spinefolio"},"_npmVersion":"10.8.2","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","terser":"^5.46.0","pixi.js":"^8.16.0","typescript":"^5.9.3","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependencies":{"pixi.js":"^8.0.0","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependenciesMeta":{"pixi.js":{"optional":true},"@esotericsoftware/spine-pixi-v8":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/spinefolio_0.0.0-v3-2-20260412214511_1776030414137_0.6522687676902406","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-v3-2-20260412215825":{"name":"@spine-benchmark/spinefolio","version":"0.0.0-v3-2-20260412215825","keywords":["spine","pixi","pixijs","animation","widget"],"_id":"@spine-benchmark/spinefolio@0.0.0-v3-2-20260412215825","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"homepage":"https://github.com/schmooky/spine-benchmark/tree/main/packages/spinefolio#readme","bugs":{"url":"https://github.com/schmooky/spine-benchmark/issues"},"dist":{"shasum":"e476ed3af5919b9058364d4019c7e371ab50aae4","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-0.0.0-v3-2-20260412215825.tgz","fileCount":34,"integrity":"sha512-Kmf27Zi0DtC62+JdHR5gzoqu4fBFFyLP/WhR1iGN/N9I6AecpE31URjZ63d5TN+lBVIWtD92F+pTqAU0ytIW5Q==","signatures":[{"sig":"MEYCIQCqvfCn4Kio4VKoD5b9DCZ+JsSc8H/cz0HWYOrmZUii0wIhAL1llNDrysmao0lX0e9rYgRja1YZW4p1or+QHrcbm3hr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spine-benchmark%2fspinefolio@0.0.0-v3-2-20260412215825","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5281757},"main":"./dist/spinefolio.js","type":"module","types":"./dist/types/core/index.d.ts","module":"./dist/spinefolio.module.js","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./package.json":"./package.json","./spinefolio.css":"./dist/spinefolio.css","./themes/neon.css":"./dist/themes/neon.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css"},"gitHead":"a04f0febdebecea596923537c1dbe4d15c5d5f98","scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","clean":"rm -rf dist","preview":"vite preview","build:auto":"vite build --config vite.config.auto.ts","build:core":"vite build","pack:check":"npm pack --dry-run","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"repository":{"url":"git+https://github.com/schmooky/spine-benchmark.git","type":"git","directory":"packages/spinefolio"},"_npmVersion":"10.8.2","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","terser":"^5.46.0","pixi.js":"^8.16.0","typescript":"^5.9.3","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependencies":{"pixi.js":"^8.0.0","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependenciesMeta":{"pixi.js":{"optional":true},"@esotericsoftware/spine-pixi-v8":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/spinefolio_0.0.0-v3-2-20260412215825_1776031210527_0.42157461001098184","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-v3-2-20260412220708":{"name":"@spine-benchmark/spinefolio","version":"0.0.0-v3-2-20260412220708","keywords":["spine","pixi","pixijs","animation","widget"],"_id":"@spine-benchmark/spinefolio@0.0.0-v3-2-20260412220708","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"homepage":"https://github.com/schmooky/spine-benchmark/tree/main/packages/spinefolio#readme","bugs":{"url":"https://github.com/schmooky/spine-benchmark/issues"},"dist":{"shasum":"8a1ab19154526658f50696d46291f9dccac9c10f","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-0.0.0-v3-2-20260412220708.tgz","fileCount":34,"integrity":"sha512-44uJWZj3StRFkceoBRaHG6viJ9DPBEinaRjsHhKSJiHpXfzXBd/5z+O+goT7r/t6/DO9T6v/v+99oY5gFVNSyA==","signatures":[{"sig":"MEQCIBbdMZTAEPsbakJExOjKT8NsBIAAlrNIOOSeFlq8Nt33AiAFYbRbdKMvQVZ8nPmmYX8CpKUwg04Ra88kznlvCbxcRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spine-benchmark%2fspinefolio@0.0.0-v3-2-20260412220708","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5281757},"main":"./dist/spinefolio.js","type":"module","types":"./dist/types/core/index.d.ts","module":"./dist/spinefolio.module.js","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./package.json":"./package.json","./spinefolio.css":"./dist/spinefolio.css","./themes/neon.css":"./dist/themes/neon.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css"},"gitHead":"2e4bd379fd9efdb2b3c666b00c3999c3b5ae4a67","scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","clean":"rm -rf dist","preview":"vite preview","build:auto":"vite build --config vite.config.auto.ts","build:core":"vite build","pack:check":"npm pack --dry-run","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"repository":{"url":"git+https://github.com/schmooky/spine-benchmark.git","type":"git","directory":"packages/spinefolio"},"_npmVersion":"10.8.2","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","terser":"^5.46.0","pixi.js":"^8.16.0","typescript":"^5.9.3","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependencies":{"pixi.js":"^8.0.0","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependenciesMeta":{"pixi.js":{"optional":true},"@esotericsoftware/spine-pixi-v8":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/spinefolio_0.0.0-v3-2-20260412220708_1776031731751_0.6565454493258034","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-v3-2-20260412222645":{"name":"@spine-benchmark/spinefolio","version":"0.0.0-v3-2-20260412222645","keywords":["spine","pixi","pixijs","animation","widget"],"_id":"@spine-benchmark/spinefolio@0.0.0-v3-2-20260412222645","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"homepage":"https://github.com/schmooky/spine-benchmark/tree/main/packages/spinefolio#readme","bugs":{"url":"https://github.com/schmooky/spine-benchmark/issues"},"dist":{"shasum":"16090f1acb418661bf901dfcd455a9dea028d209","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-0.0.0-v3-2-20260412222645.tgz","fileCount":34,"integrity":"sha512-GOH1mlFZBtvi/LyWUNoYKKSuN+8gApo3lr248RsYNtPdyr8zpvzU1yJJp6x/SckFc5iTYYS48r9DNTps4bZnzA==","signatures":[{"sig":"MEUCIQChDL4/DeggE+i730jWEQy9Rfffdk3fyq26XpprqyLkKgIgEU98E2RkwJMzVq7U3AkK42MBD7ZZWtIesnj6aVXWKEU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spine-benchmark%2fspinefolio@0.0.0-v3-2-20260412222645","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5281757},"main":"./dist/spinefolio.js","type":"module","types":"./dist/types/core/index.d.ts","module":"./dist/spinefolio.module.js","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./package.json":"./package.json","./spinefolio.css":"./dist/spinefolio.css","./themes/neon.css":"./dist/themes/neon.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css"},"gitHead":"2d3923c3d6b0ae0db0918676fd211f283b7babec","scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","clean":"rm -rf dist","preview":"vite preview","build:auto":"vite build --config vite.config.auto.ts","build:core":"vite build","pack:check":"npm pack --dry-run","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"repository":{"url":"git+https://github.com/schmooky/spine-benchmark.git","type":"git","directory":"packages/spinefolio"},"_npmVersion":"10.8.2","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","terser":"^5.46.0","pixi.js":"^8.16.0","typescript":"^5.9.3","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependencies":{"pixi.js":"^8.0.0","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependenciesMeta":{"pixi.js":{"optional":true},"@esotericsoftware/spine-pixi-v8":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/spinefolio_0.0.0-v3-2-20260412222645_1776032908223_0.4525276414781785","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-v3-2-20260412223826":{"name":"@spine-benchmark/spinefolio","version":"0.0.0-v3-2-20260412223826","keywords":["spine","pixi","pixijs","animation","widget"],"_id":"@spine-benchmark/spinefolio@0.0.0-v3-2-20260412223826","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"homepage":"https://github.com/schmooky/spine-benchmark/tree/main/packages/spinefolio#readme","bugs":{"url":"https://github.com/schmooky/spine-benchmark/issues"},"dist":{"shasum":"397351676b05fa08f18a69c52ba43f18fa96e3a5","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-0.0.0-v3-2-20260412223826.tgz","fileCount":34,"integrity":"sha512-r2Q/ocabyeIXySGEmph2uyN4gdGWw6rKDmJjrhS+cVG1g/bxyT1gYh8MScGlV7nzvTQyWEEGmH6Eldy/G8FeJw==","signatures":[{"sig":"MEYCIQDLGTyvKYKaOvncDCEA6TmJgcQJbNUH2anDTzSJbAMW1wIhAMDPlEKT0arVYVLgwV7emUqk8EMh8ozN6rWGXJ9d0q2B","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spine-benchmark%2fspinefolio@0.0.0-v3-2-20260412223826","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5281757},"main":"./dist/spinefolio.js","type":"module","types":"./dist/types/core/index.d.ts","module":"./dist/spinefolio.module.js","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./package.json":"./package.json","./spinefolio.css":"./dist/spinefolio.css","./themes/neon.css":"./dist/themes/neon.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css"},"gitHead":"8d8d5537e6742bf3f82a65a384090d90fd78f8eb","scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","clean":"rm -rf dist","preview":"vite preview","build:auto":"vite build --config vite.config.auto.ts","build:core":"vite build","pack:check":"npm pack --dry-run","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"repository":{"url":"git+https://github.com/schmooky/spine-benchmark.git","type":"git","directory":"packages/spinefolio"},"_npmVersion":"10.8.2","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","terser":"^5.46.0","pixi.js":"^8.16.0","typescript":"^5.9.3","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependencies":{"pixi.js":"^8.0.0","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependenciesMeta":{"pixi.js":{"optional":true},"@esotericsoftware/spine-pixi-v8":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/spinefolio_0.0.0-v3-2-20260412223826_1776033600659_0.9939001178957838","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-v3-2-20260412224756":{"name":"@spine-benchmark/spinefolio","version":"0.0.0-v3-2-20260412224756","keywords":["spine","pixi","pixijs","animation","widget"],"_id":"@spine-benchmark/spinefolio@0.0.0-v3-2-20260412224756","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"homepage":"https://github.com/schmooky/spine-benchmark/tree/main/packages/spinefolio#readme","bugs":{"url":"https://github.com/schmooky/spine-benchmark/issues"},"dist":{"shasum":"ad15bb602ca6ea2e78b59d07f39b89c69653d828","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-0.0.0-v3-2-20260412224756.tgz","fileCount":34,"integrity":"sha512-TvT98xzSJN16s3FLo5zezqQpCDfhJqrsy5lQoKQTW1UtRtG8mTK5/Q0YzlWmzED2td6fBgbbY4/rGZjP9sPw+Q==","signatures":[{"sig":"MEYCIQCTJKAZiEgHUbq3KDalYc5vDi+KopN8wvXVDXop5zEraQIhAMSABZj7/S7UM+uBm4jNLgj1Eciyw26+AzItPL5yUE2l","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spine-benchmark%2fspinefolio@0.0.0-v3-2-20260412224756","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5281757},"main":"./dist/spinefolio.js","type":"module","types":"./dist/types/core/index.d.ts","module":"./dist/spinefolio.module.js","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./package.json":"./package.json","./spinefolio.css":"./dist/spinefolio.css","./themes/neon.css":"./dist/themes/neon.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css"},"gitHead":"b5232cf6600658a15d61aa74c03428f1b455f6c6","scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","clean":"rm -rf dist","preview":"vite preview","build:auto":"vite build --config vite.config.auto.ts","build:core":"vite build","pack:check":"npm pack --dry-run","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"repository":{"url":"git+https://github.com/schmooky/spine-benchmark.git","type":"git","directory":"packages/spinefolio"},"_npmVersion":"10.8.2","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","terser":"^5.46.0","pixi.js":"^8.16.0","typescript":"^5.9.3","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependencies":{"pixi.js":"^8.0.0","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependenciesMeta":{"pixi.js":{"optional":true},"@esotericsoftware/spine-pixi-v8":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/spinefolio_0.0.0-v3-2-20260412224756_1776034178412_0.2773827919109295","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-v3-2-20260412230301":{"name":"@spine-benchmark/spinefolio","version":"0.0.0-v3-2-20260412230301","keywords":["spine","pixi","pixijs","animation","widget"],"_id":"@spine-benchmark/spinefolio@0.0.0-v3-2-20260412230301","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"homepage":"https://github.com/schmooky/spine-benchmark/tree/main/packages/spinefolio#readme","bugs":{"url":"https://github.com/schmooky/spine-benchmark/issues"},"dist":{"shasum":"c98a2be2aa1ee651e675109d7b56ea4182c11946","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-0.0.0-v3-2-20260412230301.tgz","fileCount":34,"integrity":"sha512-U+XmwiBa0kRypNs4QmTyT2exBI7fCUkOSl0ftCfpwp7ERplcWosvLICOT3Ve2lGZ56d7mhdW0Qnepty0iDEb9w==","signatures":[{"sig":"MEUCIQC+bygw3x1D8VRxtnfUjvkzHsSPl6dtWZdl0F8PVff+YwIgOjSL8fCdw/dtCRTiDJU0fUMYvTnQtzC7Cm3J6jbreiU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spine-benchmark%2fspinefolio@0.0.0-v3-2-20260412230301","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5281757},"main":"./dist/spinefolio.js","type":"module","types":"./dist/types/core/index.d.ts","module":"./dist/spinefolio.module.js","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./package.json":"./package.json","./spinefolio.css":"./dist/spinefolio.css","./themes/neon.css":"./dist/themes/neon.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css"},"gitHead":"221a41cdba24e40701fe78816e5c9fd7926f59a3","scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","clean":"rm -rf dist","preview":"vite preview","build:auto":"vite build --config vite.config.auto.ts","build:core":"vite build","pack:check":"npm pack --dry-run","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"repository":{"url":"git+https://github.com/schmooky/spine-benchmark.git","type":"git","directory":"packages/spinefolio"},"_npmVersion":"10.8.2","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","terser":"^5.46.0","pixi.js":"^8.16.0","typescript":"^5.9.3","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependencies":{"pixi.js":"^8.0.0","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependenciesMeta":{"pixi.js":{"optional":true},"@esotericsoftware/spine-pixi-v8":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/spinefolio_0.0.0-v3-2-20260412230301_1776035082870_0.06319440949676336","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-v3-2-20260412231524":{"name":"@spine-benchmark/spinefolio","version":"0.0.0-v3-2-20260412231524","keywords":["spine","pixi","pixijs","animation","widget"],"_id":"@spine-benchmark/spinefolio@0.0.0-v3-2-20260412231524","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"homepage":"https://github.com/schmooky/spine-benchmark/tree/main/packages/spinefolio#readme","bugs":{"url":"https://github.com/schmooky/spine-benchmark/issues"},"dist":{"shasum":"2d91c7a81cbd6f08fd8d0b5325c796af21646d43","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-0.0.0-v3-2-20260412231524.tgz","fileCount":34,"integrity":"sha512-Ci2NMJH7JE8PtXmIo1g7YuBzPKcrBM5pIbYsQBDxA9vWLUNGqasU1ZDjCXhipX4p+zrHBn/wQRjiFEsI4988VA==","signatures":[{"sig":"MEYCIQDf+dGazZxGhRXdeoVEi85VjVnkliKjaGuSDlA7v+RAugIhAI373TKfN7bpuxxOT+u5xkjKvd8kFCwLoX90OsgRBbO3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spine-benchmark%2fspinefolio@0.0.0-v3-2-20260412231524","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5281757},"main":"./dist/spinefolio.js","type":"module","types":"./dist/types/core/index.d.ts","module":"./dist/spinefolio.module.js","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./package.json":"./package.json","./spinefolio.css":"./dist/spinefolio.css","./themes/neon.css":"./dist/themes/neon.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css"},"gitHead":"a73320ce01a1e78c922d96d50ead99ba885dd454","scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","clean":"rm -rf dist","preview":"vite preview","build:auto":"vite build --config vite.config.auto.ts","build:core":"vite build","pack:check":"npm pack --dry-run","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"repository":{"url":"git+https://github.com/schmooky/spine-benchmark.git","type":"git","directory":"packages/spinefolio"},"_npmVersion":"10.8.2","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","terser":"^5.46.0","pixi.js":"^8.16.0","typescript":"^5.9.3","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependencies":{"pixi.js":"^8.0.0","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependenciesMeta":{"pixi.js":{"optional":true},"@esotericsoftware/spine-pixi-v8":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/spinefolio_0.0.0-v3-2-20260412231524_1776035830317_0.7858701495247653","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-v3-2-20260412231800":{"name":"@spine-benchmark/spinefolio","version":"0.0.0-v3-2-20260412231800","keywords":["spine","pixi","pixijs","animation","widget"],"_id":"@spine-benchmark/spinefolio@0.0.0-v3-2-20260412231800","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"homepage":"https://github.com/schmooky/spine-benchmark/tree/main/packages/spinefolio#readme","bugs":{"url":"https://github.com/schmooky/spine-benchmark/issues"},"dist":{"shasum":"519736bb75c6496b9d65d44af3af8b0ad9a52988","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-0.0.0-v3-2-20260412231800.tgz","fileCount":34,"integrity":"sha512-VsGdVNW5eZ8V8u/IiU0tVX2OmRinnRY4vbL9R2kHl3PlXHTnyrTmjnJnoY6RDyK1E1ZAyY3xOcDSNU2DfZ7vxA==","signatures":[{"sig":"MEUCIC8kv5UHDppVczbM8bFbMaxeO6XQBfyFYPDU4moHXTMcAiEA7SfztL/kcY5VSmY5LUaHfcZqVkw1YZEEIm9396T1Qbw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spine-benchmark%2fspinefolio@0.0.0-v3-2-20260412231800","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5281757},"main":"./dist/spinefolio.js","type":"module","types":"./dist/types/core/index.d.ts","module":"./dist/spinefolio.module.js","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./package.json":"./package.json","./spinefolio.css":"./dist/spinefolio.css","./themes/neon.css":"./dist/themes/neon.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css"},"gitHead":"ca8190ae40127100feb2317701f26766acd8fbde","scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","clean":"rm -rf dist","preview":"vite preview","build:auto":"vite build --config vite.config.auto.ts","build:core":"vite build","pack:check":"npm pack --dry-run","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"repository":{"url":"git+https://github.com/schmooky/spine-benchmark.git","type":"git","directory":"packages/spinefolio"},"_npmVersion":"10.8.2","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","terser":"^5.46.0","pixi.js":"^8.16.0","typescript":"^5.9.3","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependencies":{"pixi.js":"^8.0.0","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependenciesMeta":{"pixi.js":{"optional":true},"@esotericsoftware/spine-pixi-v8":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/spinefolio_0.0.0-v3-2-20260412231800_1776035984464_0.7305637640952591","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-v3-2-20260412232514":{"name":"@spine-benchmark/spinefolio","version":"0.0.0-v3-2-20260412232514","keywords":["spine","pixi","pixijs","animation","widget"],"_id":"@spine-benchmark/spinefolio@0.0.0-v3-2-20260412232514","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"homepage":"https://github.com/schmooky/spine-benchmark/tree/main/packages/spinefolio#readme","bugs":{"url":"https://github.com/schmooky/spine-benchmark/issues"},"dist":{"shasum":"38f438b250a535f5cebd8471907115a78f3f6495","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-0.0.0-v3-2-20260412232514.tgz","fileCount":34,"integrity":"sha512-DnDPc+abRB0HdYnjoBu4AO61GfWFqMCWAN85jlcV5A9KZppPTRhqj9spYUFS3ypoJW3FZlQZRhXFXCQ3G/5TcA==","signatures":[{"sig":"MEYCIQCO/34JY9tWXLdlikpGrqFHtTmYbpKmCkESTA3RqCM30wIhAIPquyNBpNPSuI3fULBG+W2A/2E9ofxKCcq4lB8ftchX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spine-benchmark%2fspinefolio@0.0.0-v3-2-20260412232514","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5281757},"main":"./dist/spinefolio.js","type":"module","types":"./dist/types/core/index.d.ts","module":"./dist/spinefolio.module.js","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./package.json":"./package.json","./spinefolio.css":"./dist/spinefolio.css","./themes/neon.css":"./dist/themes/neon.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css"},"gitHead":"3b0e1150d6e8a43b45f99b25dbc38eb3802090f3","scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","clean":"rm -rf dist","preview":"vite preview","build:auto":"vite build --config vite.config.auto.ts","build:core":"vite build","pack:check":"npm pack --dry-run","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"repository":{"url":"git+https://github.com/schmooky/spine-benchmark.git","type":"git","directory":"packages/spinefolio"},"_npmVersion":"10.8.2","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","terser":"^5.46.0","pixi.js":"^8.16.0","typescript":"^5.9.3","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependencies":{"pixi.js":"^8.0.0","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependenciesMeta":{"pixi.js":{"optional":true},"@esotericsoftware/spine-pixi-v8":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/spinefolio_0.0.0-v3-2-20260412232514_1776036420314_0.946423405027516","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-v3-2-20260412234324":{"name":"@spine-benchmark/spinefolio","version":"0.0.0-v3-2-20260412234324","keywords":["spine","pixi","pixijs","animation","widget"],"_id":"@spine-benchmark/spinefolio@0.0.0-v3-2-20260412234324","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"homepage":"https://github.com/schmooky/spine-benchmark/tree/main/packages/spinefolio#readme","bugs":{"url":"https://github.com/schmooky/spine-benchmark/issues"},"dist":{"shasum":"5bbc7eda673077a174b72396c12cf1b9e32865a5","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-0.0.0-v3-2-20260412234324.tgz","fileCount":34,"integrity":"sha512-Q5VBYIM2eTj41DKlLs++p0ZXftYM7YbB6DjO12Nqr1w2Lw7uJ0dtzL729Lwm/dC7lvfsd4YGDZQ2rPtQbvuG8g==","signatures":[{"sig":"MEUCIQDNoR5coEZOzAkqI0biIiG68At1D6wT3pfFrbog3XNxMgIgBP5GcsTbcZFOqNWyoAurmwKYX/BXBpHNhS0Lt1TmODU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spine-benchmark%2fspinefolio@0.0.0-v3-2-20260412234324","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5281757},"main":"./dist/spinefolio.js","type":"module","types":"./dist/types/core/index.d.ts","module":"./dist/spinefolio.module.js","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./package.json":"./package.json","./spinefolio.css":"./dist/spinefolio.css","./themes/neon.css":"./dist/themes/neon.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css"},"gitHead":"3fed486442032754aae405c293cb45e9d25b1ad8","scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","clean":"rm -rf dist","preview":"vite preview","build:auto":"vite build --config vite.config.auto.ts","build:core":"vite build","pack:check":"npm pack --dry-run","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"repository":{"url":"git+https://github.com/schmooky/spine-benchmark.git","type":"git","directory":"packages/spinefolio"},"_npmVersion":"10.8.2","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","terser":"^5.46.0","pixi.js":"^8.16.0","typescript":"^5.9.3","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependencies":{"pixi.js":"^8.0.0","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependenciesMeta":{"pixi.js":{"optional":true},"@esotericsoftware/spine-pixi-v8":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/spinefolio_0.0.0-v3-2-20260412234324_1776037506913_0.21698560008768886","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-v3-2-20260413062404":{"name":"@spine-benchmark/spinefolio","version":"0.0.0-v3-2-20260413062404","keywords":["spine","pixi","pixijs","animation","widget"],"_id":"@spine-benchmark/spinefolio@0.0.0-v3-2-20260413062404","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"homepage":"https://github.com/schmooky/spine-benchmark/tree/main/packages/spinefolio#readme","bugs":{"url":"https://github.com/schmooky/spine-benchmark/issues"},"dist":{"shasum":"e2db557b9e647937c88c3ae85cfe81ab23b57684","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-0.0.0-v3-2-20260413062404.tgz","fileCount":34,"integrity":"sha512-TZYzcvSSVPiRQgXSb6EZseQTlqdQHG/f/b1TSa0mYDVT0BvR5Se8X4aT58sU+U9h5L4ZKc5AaFLqJzLxyZTDmw==","signatures":[{"sig":"MEUCIQDxcjLVBVKV3ddDqQ1Z/Tli/EZH1CUrYylxZsbkcOlLPgIgbN1anOcgsvtx8eMVVmCFmQsjGTqDUPyEbCikNOJr+ww=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spine-benchmark%2fspinefolio@0.0.0-v3-2-20260413062404","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5281757},"main":"./dist/spinefolio.js","type":"module","types":"./dist/types/core/index.d.ts","module":"./dist/spinefolio.module.js","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./package.json":"./package.json","./spinefolio.css":"./dist/spinefolio.css","./themes/neon.css":"./dist/themes/neon.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css"},"gitHead":"2b31d2284f9b860bb85e071e895ad189b1a01546","scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","clean":"rm -rf dist","preview":"vite preview","build:auto":"vite build --config vite.config.auto.ts","build:core":"vite build","pack:check":"npm pack --dry-run","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"repository":{"url":"git+https://github.com/schmooky/spine-benchmark.git","type":"git","directory":"packages/spinefolio"},"_npmVersion":"10.8.2","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^7.3.1","terser":"^5.46.0","pixi.js":"^8.16.0","typescript":"^5.9.3","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependencies":{"pixi.js":"^8.0.0","@esotericsoftware/spine-pixi-v8":"^4.2.101"},"peerDependenciesMeta":{"pixi.js":{"optional":true},"@esotericsoftware/spine-pixi-v8":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/spinefolio_0.0.0-v3-2-20260413062404_1776061549760_0.656517272104074","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@spine-benchmark/spinefolio","version":"3.0.0","description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","type":"module","main":"./dist/spinefolio.js","module":"./dist/spinefolio.module.js","types":"./dist/types/core/index.d.ts","exports":{".":{"types":"./dist/types/core/index.d.ts","import":"./dist/spinefolio.module.js","default":"./dist/spinefolio.js"},"./auto":{"types":"./dist/types/core/spinefolio-auto.d.ts","import":"./dist/spinefolio-auto.module.js","default":"./dist/spinefolio-auto.js"},"./spinefolio.css":"./dist/spinefolio.css","./themes/minimal.css":"./dist/themes/minimal.css","./themes/glassmorphic.css":"./dist/themes/glassmorphic.css","./themes/neon.css":"./dist/themes/neon.css","./themes/schmooky.css":"./dist/themes/schmooky.css","./package.json":"./package.json"},"keywords":["spine","pixi","pixijs","animation","widget"],"publishConfig":{"access":"public"},"scripts":{"dev":"vite","demo":"npm run build && vite preview --open /demo-schmooky-blog.html --strictPort","clean":"rm -rf dist","build":"npm run clean && npm run build:core && npm run build:auto && npm run build:types && node scripts/prepare-dist.mjs","build:core":"vite build","build:auto":"vite build --config vite.config.auto.ts","build:types":"tsc -p tsconfig.build.json","preview":"vite preview","pack:check":"npm pack --dry-run","prepublishOnly":"npm run build"},"peerDependencies":{"@esotericsoftware/spine-pixi-v8":"^4.2.101","pixi.js":"^8.0.0"},"peerDependenciesMeta":{"@esotericsoftware/spine-pixi-v8":{"optional":true},"pixi.js":{"optional":true}},"devDependencies":{"@esotericsoftware/spine-pixi-v8":"^4.2.101","pixi.js":"^8.16.0","terser":"^5.46.0","typescript":"^5.9.3","vite":"^7.3.1"},"repository":{"type":"git","url":"git+https://github.com/schmooky/spine-benchmark.git","directory":"packages/spinefolio"},"homepage":"https://github.com/schmooky/spine-benchmark/tree/main/packages/spinefolio#readme","bugs":{"url":"https://github.com/schmooky/spine-benchmark/issues"},"_id":"@spine-benchmark/spinefolio@3.0.0","gitHead":"59186a74679f54830495fe644fb53c051f0f2426","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-KdFVrADg5rnyvPZhlfYtJsVVeFbVs0lPuf8qVKgHvSSTei8qRmkTiIiPDhgkGMr55Qz37xAFtJeiGte4h5WL8A==","shasum":"791e2a8be1f243af0eed76e79eebbaa60b2aecd5","tarball":"https://registry.npmjs.org/@spine-benchmark/spinefolio/-/spinefolio-3.0.0.tgz","fileCount":34,"unpackedSize":5281737,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spine-benchmark%2fspinefolio@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC6grY//5/bSLQGgmIGWULkonStx84NsODV8phFgsHZ+AIhAPF5J760Fhd82MCL2EQSBWVoSSEif4XGDn6JNgtXeK2+"}]},"_npmUser":{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"},"directories":{},"maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/spinefolio_3.0.0_1776262911211_0.8238766885776929"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-19T07:51:08.449Z","modified":"2026-04-15T14:21:51.837Z","2.2.2":"2026-03-19T07:51:08.827Z","0.0.0-v3-2-20260411092333":"2026-04-11T09:25:15.575Z","0.0.0-v3-2-20260411092544":"2026-04-11T09:27:26.209Z","0.0.0-v3-2-20260411134922":"2026-04-11T13:51:06.501Z","0.0.0-v3-2-20260411154751":"2026-04-11T15:49:36.083Z","0.0.0-v3-2-20260411170211":"2026-04-11T17:03:57.868Z","0.0.0-v3-2-20260411171143":"2026-04-11T17:13:17.878Z","0.0.0-v3-2-20260411173735":"2026-04-11T17:39:16.231Z","0.0.0-v3-2-20260411174915":"2026-04-11T17:50:53.136Z","0.0.0-v3-2-20260411182305":"2026-04-11T18:24:46.754Z","0.0.0-v3-2-20260411190331":"2026-04-11T19:05:18.736Z","0.0.0-v3-2-20260412104341":"2026-04-12T10:45:28.324Z","0.0.0-v3-2-20260412104818":"2026-04-12T10:50:02.732Z","0.0.0-v3-2-20260412105525":"2026-04-12T10:57:01.706Z","0.0.0-v3-2-20260412214018":"2026-04-12T21:41:56.229Z","0.0.0-v3-2-20260412214511":"2026-04-12T21:46:54.364Z","0.0.0-v3-2-20260412215825":"2026-04-12T22:00:10.738Z","0.0.0-v3-2-20260412220708":"2026-04-12T22:08:51.984Z","0.0.0-v3-2-20260412222645":"2026-04-12T22:28:28.462Z","0.0.0-v3-2-20260412223826":"2026-04-12T22:40:00.863Z","0.0.0-v3-2-20260412224756":"2026-04-12T22:49:38.612Z","0.0.0-v3-2-20260412230301":"2026-04-12T23:04:43.069Z","0.0.0-v3-2-20260412231524":"2026-04-12T23:17:10.536Z","0.0.0-v3-2-20260412231800":"2026-04-12T23:19:44.677Z","0.0.0-v3-2-20260412232514":"2026-04-12T23:27:00.505Z","0.0.0-v3-2-20260412234324":"2026-04-12T23:45:07.148Z","0.0.0-v3-2-20260413062404":"2026-04-13T06:25:50.027Z","3.0.0":"2026-04-15T14:21:51.480Z"},"keywords":["spine","pixi","pixijs","animation","widget"],"description":"Spine widget library for PixiJS v8 with auto-initialization and blog-ready demos","maintainers":[{"name":"schmooky","email":"dmitry.vasiliev@schmooky.dev"}],"readme":"# 🎮 Spinefolio - PixiJS v8 Spine Widget\n\nA powerful, feature-rich widget for rendering [Spine](http://esotericsoftware.com/) skeletal animations using PixiJS v8 and `@esotericsoftware/spine-pixi-v8`.\n\n## ✨ Features\n\n- 🎨 **PixiJS v8 Integration** - Modern rendering with PixiJS v8\n- 🎮 **Interactive Controls** - Built-in UI panel for animation control\n- 🔍 **Debug Visualization** - Render bones, meshes, and bounds\n- 👆 **Pan & Zoom** - Mouse and touch gesture support\n- 📱 **Responsive** - Adapts to any screen size\n- 🎯 **Type-Safe** - Full TypeScript support\n- ⚡ **High Performance** - Optimized rendering pipeline\n- 🎨 **Customizable** - Extensive configuration options\n\n## 📦 Installation\n\n```bash\nnpm install @spine-benchmark/spinefolio\n```\n\n### About the bundled dependencies\n\nSpinefolio's `dist` is a self-contained bundle: PixiJS and\n`@esotericsoftware/spine-pixi-v8` are inlined into the ESM output so\nyou can drop `spinefolio.module.js` into an HTML page or reports\nserver with a single `<script type=\"module\">` or `import()` and it\njust works.\n\nThat means the npm package declares PixiJS as an **optional peer\ndependency**. If your project already has PixiJS installed,\nSpinefolio will not pull in a second copy into `node_modules`, and\nyou should import it normally. If your project does not have\nPixiJS, you don't need to install it - the bundle already contains\nwhat it needs.\n\nConsumers who want to share a single PixiJS instance at runtime\n(so `new PIXI.Application()` from your code produces objects that\npass `instanceof` checks inside Spinefolio) should set up an import\nmap or a bundler alias. A dedicated \"externalized\" build variant is\ntracked as future work.\n\n## 🛠️ Monorepo Usage\n\nFrom the `spine-benchmark` root:\n\n```bash\n# Start the demo\nnpm run demo:spinefolio\n\n# Build publishable artifacts\nnpm run build:spinefolio\n```\n\n## 🚀 Quick Start\n\n```typescript\nimport { createSpineWidget } from '@spine-benchmark/spinefolio';\n\nconst widget = createSpineWidget(document.getElementById('container'), {\n  skeleton: 'path/to/skeleton.skel',\n  atlas: 'path/to/atlas.atlas',\n  animation: 'idle',\n  loop: true,\n  showControls: true\n});\n```\n\n## 📖 API Reference\n\n### Creating a Widget\n\n```typescript\ncreateSpineWidget(element: HTMLElement, options: SpineWidgetOptions): SpineWidgetInstance\n```\n\n### Options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `skeleton` | `string` | **required** | Path to skeleton file (.skel or .json) |\n| `atlas` | `string` | **required** | Path to atlas file (.atlas) |\n| `images` | `string` | `undefined` | Space/comma-separated image URLs to override atlas page files (useful for `.ktx2` / `.basis` substitution) |\n| `animation` | `string` | `undefined` | Initial animation name |\n| `nextAnimation` | `string` | `undefined` | Optional queued animation (`addAnimation`) after the initial animation |\n| `nextAnimationLoop` | `boolean` | `true` | Loop setting for `nextAnimation` |\n| `skin` | `string` | `undefined` | Initial skin name |\n| `loop` | `boolean` | `true` | Loop animation |\n| `scale` | `number` | `1` | Scale factor |\n| `x` | `number` | `0` | X position offset |\n| `y` | `number` | `0` | Y position offset |\n| `fitToContainer` | `boolean` | `true` | Auto-fit to container |\n| `backgroundColor` | `string` | `'transparent'` | Background color |\n| `showControls` | `boolean` | `false` | Show control panel |\n| `controlsPosition` | `string` | `'top-left'` | Control panel position |\n| `allowSkinChange` | `boolean` | `false` | Show Skin menu button in controls (when skeleton has multiple skins) |\n| `enablePan` | `boolean` | `true` | Enable pan interaction |\n| `enableZoom` | `boolean` | `true` | Enable zoom interaction |\n| `minZoom` | `number` | `0.25` | Minimum zoom level |\n| `maxZoom` | `number` | `4` | Maximum zoom level |\n| `zoomSpeed` | `number` | `0.1` | Zoom speed multiplier |\n| `highlightAttachmentBounds` | `string` | `undefined` | Attachment name to draw a rectangle bounds highlight around |\n| `highlightAttachmentBoundsColor` | `number` | `0xff4d4f` | Rectangle color for highlighted attachment |\n| `highlightAttachmentBoundsLineWidth` | `number` | `2` | Rectangle stroke width |\n| `debugMeshAttachment` | `string` | `undefined` | Mesh attachment name to outline |\n| `debugMeshAttachmentColor` | `number` | `0x2dd4ff` | Mesh outline color |\n| `debugMeshAttachmentLineWidth` | `number` | `2` | Mesh outline stroke width |\n| `onLoad` | `function` | `undefined` | Load callback |\n| `onError` | `function` | `undefined` | Error callback |\n| `onAnimationComplete` | `function` | `undefined` | Animation complete callback |\n\n### Compressed Textures (.ktx2 / .basis)\n\nIf your atlas references `symbols.png` but you only have `symbols.ktx2`, pass `images` to override atlas page loading:\n\n```typescript\ncreateSpineWidget(element, {\n  skeleton: '/assets/symbols.json',\n  atlas: '/assets/symbols.atlas',\n  images: '/assets/symbols.ktx2',\n  animation: 'idle',\n});\n```\n\nFor HTML auto-init:\n\n```html\n<div\n  data-spinefolio\n  data-skeleton=\"/assets/symbols.json\"\n  data-atlas=\"/assets/symbols.atlas\"\n  data-images=\"/assets/symbols.ktx2\"\n></div>\n```\n\n### Control Panel Positions\n\n- `'top-left'` - Top left corner (default)\n- `'top-right'` - Top right corner\n- `'bottom-left'` - Bottom left corner\n- `'bottom-right'` - Bottom right corner\n\n### Instance Methods\n\n#### Animation Control\n\n```typescript\n// Play animation\nwidget.play(animation?: string, loop?: boolean): void\n\n// Queue next animation on the same track\nwidget.addAnimation(animation: string, loop?: boolean, delay?: number): void\n\n// Pause animation\nwidget.pause(): void\n\n// Resume animation\nwidget.resume(): void\n\n// Stop animation\nwidget.stop(): void\n\n// Set animation speed\nwidget.setSpeed(speed: number): void\nwidget.setTimeScale(scale: number): void\n\n// Get animation speed\nwidget.getTimeScale(): number\n```\n\n#### Skin Management\n\n```typescript\n// Set skin\nwidget.setSkin(skin: string): void\n\n// Get available skins\nwidget.getSkins(): string[]\n```\n\n#### View Control\n\n```typescript\n// Set scale\nwidget.setScale(scale: number): void\n\n// Set position\nwidget.setPosition(x: number, y: number): void\n\n// Reset view\nwidget.resetView(): void\n\n// Set zoom level\nwidget.setZoom(zoom: number): void\n\n// Get zoom level\nwidget.getZoom(): number\n\n// Set pan offset\nwidget.setPan(x: number, y: number): void\n\n// Get pan offset\nwidget.getPan(): { x: number; y: number }\n```\n\n#### Debug Rendering\n\n```typescript\n// Draw attachment AABB highlight\nwidget.setHighlightAttachmentBounds('helmet_1', 0xff3366, 3): void\n\n// Clear attachment highlight\nwidget.clearHighlightAttachmentBounds(): void\n\n// Draw debug outline for one mesh attachment\nwidget.setDebugMeshAttachment('helmet_1', 0x00eaff, 2): void\n\n// Clear mesh debug outline\nwidget.clearDebugMeshAttachment(): void\n```\n\n#### Controls\n\n```typescript\n// Show/hide control panel\nwidget.setShowControls(show: boolean): void\n\n// Get control panel visibility\nwidget.getShowControls(): boolean\n```\n\n#### Information\n\n```typescript\n// Get available animations\nwidget.getAnimations(): string[]\n\n// Get current animation\nwidget.getCurrentAnimation(): string | null\n\n// Check if playing\nwidget.isPlaying(): boolean\n\n// Check if paused\nwidget.isPaused(): boolean\n```\n\n#### Utility\n\n```typescript\n// Export to data URL\nwidget.toDataURL(type?: string, quality?: number): string\n\n// Destroy widget\nwidget.destroy(): Promise<void>\n```\n\n## 💡 Examples\n\n### Basic Usage\n\n```typescript\nconst widget = createSpineWidget(element, {\n  skeleton: 'assets/character.skel',\n  atlas: 'assets/character.atlas',\n  animation: 'idle',\n  loop: true\n});\n```\n\n### With Controls\n\n```typescript\nconst widget = createSpineWidget(element, {\n  skeleton: 'assets/character.skel',\n  atlas: 'assets/character.atlas',\n  animation: 'walk',\n  showControls: true,\n  controlsPosition: 'top-left',\n  allowSkinChange: true\n});\n```\n\n### Setup Then Loop Animation (No Controls)\n\n```typescript\nconst widget = createSpineWidget(element, {\n  skeleton: 'assets/character.skel',\n  atlas: 'assets/character.atlas',\n  animation: 'setup',\n  loop: false,\n  nextAnimation: 'idle',\n  nextAnimationLoop: true,\n  showControls: false,\n});\n```\n\nEquivalent HTML auto-init:\n\n```html\n<div\n  data-spinefolio\n  data-skeleton=\"/assets/character.json\"\n  data-atlas=\"/assets/character.atlas\"\n  data-animation=\"setup\"\n  data-loop=\"false\"\n  data-next-animation=\"idle\"\n  data-next-animation-loop=\"true\"\n></div>\n```\n\n### Debug Visualization\n\n```typescript\nconst widget = createSpineWidget(element, {\n  skeleton: 'assets/character.skel',\n  atlas: 'assets/character.atlas',\n  animation: 'run',\n  showBones: true,\n  showMeshes: true,\n  showBounds: true,\n  debugColors: {\n    bones: 0x00ff00,\n    meshes: 0xff00ff,\n    bounds: 0xff0000\n  }\n});\n```\n\n### Custom Interaction\n\n```typescript\nconst widget = createSpineWidget(element, {\n  skeleton: 'assets/character.skel',\n  atlas: 'assets/character.atlas',\n  animation: 'idle',\n  enablePan: true,\n  enableZoom: true,\n  minZoom: 0.5,\n  maxZoom: 3,\n  zoomSpeed: 0.15\n});\n\n// Programmatic control\nwidget.setZoom(2);\nwidget.setPan(100, 50);\n```\n\n### Event Callbacks\n\n```typescript\nconst widget = createSpineWidget(element, {\n  skeleton: 'assets/character.skel',\n  atlas: 'assets/character.atlas',\n  animation: 'walk',\n  onLoad: () => {\n    console.log('Widget loaded!');\n    console.log('Available animations:', widget.getAnimations());\n  },\n  onError: (error) => {\n    console.error('Failed to load:', error);\n  },\n  onAnimationComplete: (animation) => {\n    console.log(`Animation \"${animation}\" completed`);\n  }\n});\n```\n\n### Multiple Widgets\n\n```typescript\nconst widgets = [\n  createSpineWidget(document.getElementById('widget1'), {\n    skeleton: 'assets/char1.skel',\n    atlas: 'assets/char1.atlas',\n    animation: 'idle'\n  }),\n  createSpineWidget(document.getElementById('widget2'), {\n    skeleton: 'assets/char2.skel',\n    atlas: 'assets/char2.atlas',\n    animation: 'walk'\n  })\n];\n\n// Control all widgets\nwidgets.forEach(w => w.setSpeed(1.5));\n```\n\n## 🎨 Styling\n\nThe widget includes default styles that can be customized via CSS:\n\n```css\n/* Control panel */\n.spine-controls {\n  background: rgba(0, 0, 0, 0.85);\n  border-radius: 8px;\n}\n\n/* Control buttons */\n.spine-control-button {\n  background: #4CAF50;\n  color: white;\n}\n\n/* Sliders */\n.spine-control-slider::-webkit-slider-thumb {\n  background: #4CAF50;\n}\n```\n\n### Portfolio-Matched Theme (schmooky.dev)\n\nUse the bundled `schmooky` theme for the same visual tokens as your site/blog:\n\n```html\n<link rel=\"stylesheet\" href=\"./spinefolio.css\">\n<link rel=\"stylesheet\" href=\"./themes/schmooky.css\">\n\n<div\n  class=\"spinefolio-theme-schmooky\"\n  data-spinefolio\n  data-skeleton=\"./low_1.json\"\n  data-atlas=\"./low.atlas\"\n  data-show-controls=\"true\"\n></div>\n```\n\nFor a full article-style integration demo, open:\n\n```bash\nnpm run demo:spinefolio\n```\n\n## 🔧 Advanced Configuration\n\n### Custom Debug Colors\n\n```typescript\nconst widget = createSpineWidget(element, {\n  skeleton: 'assets/character.skel',\n  atlas: 'assets/character.atlas',\n  debugColors: {\n    bones: 0x00ff00,   // Green\n    meshes: 0x0000ff,  // Blue\n    bounds: 0xff0000   // Red\n  }\n});\n```\n\n### Background Color\n\n```typescript\nconst widget = createSpineWidget(element, {\n  skeleton: 'assets/character.skel',\n  atlas: 'assets/character.atlas',\n  backgroundColor: '#1a1a2e'  // Hex color\n});\n```\n\n### Premultiplied Alpha\n\n```typescript\nconst widget = createSpineWidget(element, {\n  skeleton: 'assets/character.skel',\n  atlas: 'assets/character.atlas',\n  premultipliedAlpha: true  // Default: true\n});\n```\n\n## 📱 Mobile Support\n\nThe widget fully supports touch gestures:\n\n- **Single touch** - Pan\n- **Pinch** - Zoom\n- **Responsive controls** - Adapts to screen size\n\n## 🧪 Testing\n\nRun the complete test suite:\n\n```bash\n# Open in browser\nopen test-complete.html\n```\n\nView the demo:\n\n```bash\n# Open in browser\nopen examples/complete-demo.html\n```\n\n## 🏗️ Architecture\n\nThe widget is built on:\n\n- **PixiJS v8** - Modern WebGL rendering\n- **@esotericsoftware/spine-pixi-v8** - Official Spine runtime\n- **TypeScript** - Type-safe development\n- **Modern ES Modules** - Tree-shakeable imports\n\n## 🔄 Migration from v1.x\n\nThe new PixiJS v8 implementation is a complete rewrite with improved performance and features. Key changes:\n\n### Breaking Changes\n\n- Requires PixiJS v8 (not compatible with v7)\n- Uses `@esotericsoftware/spine-pixi-v8` instead of custom runtime\n- Some internal APIs have changed\n\n### New Features\n\n- ✨ Built-in control panel UI\n- 🎯 Better TypeScript support\n- ⚡ Improved performance\n- 🔍 Enhanced debug rendering\n- 📱 Better mobile support\n\n### Migration Guide\n\n```typescript\n// Old (v1.x)\nimport { SpineWidget } from './src/core/spine-widget';\nconst widget = new SpineWidget(element, options);\n\n// New (v2.x with PixiJS v8)\nimport { createSpineWidget } from '@spine-benchmark/spinefolio';\nconst widget = createSpineWidget(element, options);\n```\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## 📄 License\n\nMIT License - see LICENSE file for details\n\n## 🙏 Credits\n\n- [Spine](http://esotericsoftware.com/) by Esoteric Software\n- [PixiJS](https://pixijs.com/) rendering engine\n- [@esotericsoftware/spine-pixi-v8](https://www.npmjs.com/package/@esotericsoftware/spine-pixi-v8) runtime\n\n## 📞 Support\n\n- 📧 Email: support@spinefolio.com\n- 🐛 Issues: [GitHub Issues](https://github.com/yourusername/spinefolio/issues)\n- 💬 Discussions: [GitHub Discussions](https://github.com/yourusername/spinefolio/discussions)\n\n---\n\nMade with ❤️ by the Spinefolio team\n","readmeFilename":"README.md","homepage":"https://github.com/schmooky/spine-benchmark/tree/main/packages/spinefolio#readme","repository":{"type":"git","url":"git+https://github.com/schmooky/spine-benchmark.git","directory":"packages/spinefolio"},"bugs":{"url":"https://github.com/schmooky/spine-benchmark/issues"}}