{"_id":"vue-zscroller","_rev":"27-ba6a6c99a968ed4899df1dc58fffe4c6","name":"vue-zscroller","dist-tags":{"latest":"0.3.24"},"versions":{"0.1.8":{"name":"vue-zscroller","version":"0.1.8","keywords":["vue","vuejs","plugin"],"author":{"name":"Guillaume Chau","email":"guillaume.b.chau@gmail.com"},"license":"MIT","_id":"vue-zscroller@0.1.8","maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"homepage":"https://github.com/ZachHandley/zvue-virtual-scroller#readme","bugs":{"url":"https://github.com/ZachHandley/zvue-virtual-scroller/issues"},"dist":{"shasum":"705af3c200a441350e681d02b72199751463857d","tarball":"https://registry.npmjs.org/vue-zscroller/-/vue-zscroller-0.1.8.tgz","fileCount":48,"integrity":"sha512-pWBsYfVvNrtTWXhyOEbgtK1f8/u24TzT8rCn3MOFaf102QmNJpzSQ3c/l0tt1zl/TtJv6Y2N/GNE8gw05lsW8g==","signatures":[{"sig":"MEUCID1Dq92EN4rxcCBLtHnkYV5CPwJA+K0v0fW+PUL3MKOzAiEA9lX6UP9PFrngijel1UAHjh/DMuL+FME2GRmRbyCkpGY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":726917},"main":"dist/vue-zscroller.umd.js","type":"module","_from":"file:vue-zscroller-0.1.8.tgz","types":"dist/index.d.ts","unpkg":"dist/vue-zscroller.min.js","module":"dist/vue-zscroller.esm.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-zscroller.esm.mjs","require":"./dist/vue-zscroller.umd.js"}},"scripts":{"dev":"vite build --watch","lint":"cd ../../ && pnpm run lint","build":"vite build"},"_npmUser":{"name":"zachhandley","email":"zach@blackleafdigital.com"},"_resolved":"/tmp/fd5b692ee44336ba2362b89299e0a743/vue-zscroller-0.1.8.tgz","_integrity":"sha512-pWBsYfVvNrtTWXhyOEbgtK1f8/u24TzT8rCn3MOFaf102QmNJpzSQ3c/l0tt1zl/TtJv6Y2N/GNE8gw05lsW8g==","maintainer":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"repository":{"url":"git+https://github.com/ZachHandley/zvue-virtual-scroller.git","type":"git"},"_npmVersion":"10.9.4","description":"A modern fork of vue-virtual-scroller with TypeScript and @vueuse/core integration","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","browserslist":["> 1%","last 2 versions","not ie <= 8"],"dependencies":{"@vueuse/core":"^10.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.10","vue-tsc":"^2.2.8","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^4.6.2"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-zscroller_0.1.8_1772082390342_0.3654335454524238","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"vue-zscroller","version":"0.1.9","keywords":["vue","vuejs","plugin"],"author":{"name":"Guillaume Chau","email":"guillaume.b.chau@gmail.com"},"license":"MIT","_id":"vue-zscroller@0.1.9","maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"homepage":"https://github.com/ZachHandley/vue-zscroller#readme","bugs":{"url":"https://github.com/ZachHandley/vue-zscroller/issues"},"dist":{"shasum":"0ace9e6abffc24bccbebc62fa51e4646f8c60457","tarball":"https://registry.npmjs.org/vue-zscroller/-/vue-zscroller-0.1.9.tgz","fileCount":48,"integrity":"sha512-n8Us0wrTvfoflwYRnYyJbbJKAp35eTRKFbg9kSOaLtG77r20Hoq0xgvDg3gPY4XYIyJdGpHgOzXMFc8i1Ibdkw==","signatures":[{"sig":"MEUCIB4t09V6pJAAvL4dyufidxe0f9YsJTTFVptUggMJvDNAAiEAvbHif1hPbq+DBoMoaAOHnTJfGj5p1mnOURYTUtsl97M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":724846},"main":"dist/vue-zscroller.umd.js","type":"module","_from":"file:vue-zscroller-0.1.9.tgz","types":"dist/index.d.ts","unpkg":"dist/vue-zscroller.min.js","module":"dist/vue-zscroller.esm.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-zscroller.esm.mjs","require":"./dist/vue-zscroller.umd.js"}},"scripts":{"dev":"vite build --watch","lint":"cd ../../ && pnpm run lint","build":"vite build"},"_npmUser":{"name":"zachhandley","email":"zach@blackleafdigital.com"},"_resolved":"/tmp/888259a1b3afdb0d69769842a3676893/vue-zscroller-0.1.9.tgz","_integrity":"sha512-n8Us0wrTvfoflwYRnYyJbbJKAp35eTRKFbg9kSOaLtG77r20Hoq0xgvDg3gPY4XYIyJdGpHgOzXMFc8i1Ibdkw==","maintainer":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"repository":{"url":"git+https://github.com/ZachHandley/vue-zscroller.git","type":"git"},"_npmVersion":"10.9.4","description":"Virtual scrolling components for Vue 3.5+, rewritten in TypeScript","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","browserslist":["> 1%","last 2 versions","not ie <= 8"],"dependencies":{"@vueuse/core":"^10.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.10","vue-tsc":"^2.2.8","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^4.6.2"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-zscroller_0.1.9_1772082888212_0.9129133134153729","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"vue-zscroller","version":"0.2.0","keywords":["vue","vuejs","plugin"],"author":{"name":"Guillaume Chau","email":"guillaume.b.chau@gmail.com"},"license":"MIT","_id":"vue-zscroller@0.2.0","maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"homepage":"https://github.com/ZachHandley/vue-zscroller#readme","bugs":{"url":"https://github.com/ZachHandley/vue-zscroller/issues"},"dist":{"shasum":"2507559ebd638679bafbc1019ccdd64c779f5145","tarball":"https://registry.npmjs.org/vue-zscroller/-/vue-zscroller-0.2.0.tgz","fileCount":48,"integrity":"sha512-vdX9kEx8VhvqRRrUrV2nRWRLkRZ3S2ZvdqEU+H28CoIbz6M9X7EvpTdxwDUEOwlwWtpkoxgkYo4AOVtkiNFzvA==","signatures":[{"sig":"MEYCIQCiwjCJ/sfzpo9yWe7TGnq1fG8h7G+NfS47/jouCdw5EQIhAIXyrqqvbZrEOoGjOXiGPLJ22xY7M1ygcDJ960btyfy1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":724846},"main":"dist/vue-zscroller.umd.js","type":"module","_from":"file:vue-zscroller-0.2.0.tgz","types":"dist/index.d.ts","unpkg":"dist/vue-zscroller.min.js","module":"dist/vue-zscroller.esm.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-zscroller.esm.mjs","require":"./dist/vue-zscroller.umd.js"}},"scripts":{"dev":"vite build --watch","lint":"cd ../../ && pnpm run lint","build":"vite build"},"_npmUser":{"name":"zachhandley","email":"zach@blackleafdigital.com"},"_resolved":"/tmp/43872973f8bf5b944deb235d6e38ddb1/vue-zscroller-0.2.0.tgz","_integrity":"sha512-vdX9kEx8VhvqRRrUrV2nRWRLkRZ3S2ZvdqEU+H28CoIbz6M9X7EvpTdxwDUEOwlwWtpkoxgkYo4AOVtkiNFzvA==","maintainer":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"repository":{"url":"git+https://github.com/ZachHandley/vue-zscroller.git","type":"git"},"_npmVersion":"10.9.4","description":"Virtual scrolling components for Vue 3.5+, rewritten in TypeScript","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","browserslist":["> 1%","last 2 versions","not ie <= 8"],"dependencies":{"@vueuse/core":"^10.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.10","vue-tsc":"^2.2.8","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^4.6.2"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-zscroller_0.2.0_1772083463203_0.48321377680652966","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"vue-zscroller","version":"0.2.1","keywords":["vue","vuejs","plugin"],"author":{"name":"Guillaume Chau","email":"guillaume.b.chau@gmail.com"},"license":"MIT","_id":"vue-zscroller@0.2.1","maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"homepage":"https://github.com/ZachHandley/vue-zscroller#readme","bugs":{"url":"https://github.com/ZachHandley/vue-zscroller/issues"},"dist":{"shasum":"33808eaa1a91b21308bdfc8074f0a9c1897c6b3d","tarball":"https://registry.npmjs.org/vue-zscroller/-/vue-zscroller-0.2.1.tgz","fileCount":48,"integrity":"sha512-ibLksTXJeeIE/Ow1WfR5SwIhUc3ab7taknTLumIIz9CxAgiTzCamXWU0f4OJYZ6KD6KzE4NG9qZ22pptV52txw==","signatures":[{"sig":"MEUCIQCR1OOTXcA5mbq909R87tDXP62skUncYgZtFWGsweL3xAIgKxbmAuBDUrli2kNov1PHsxseNqXhTst8YwWjwv9C0aE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":730527},"main":"dist/vue-zscroller.umd.js","type":"module","_from":"file:vue-zscroller-0.2.1.tgz","types":"dist/index.d.ts","unpkg":"dist/vue-zscroller.min.js","module":"dist/vue-zscroller.esm.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-zscroller.esm.mjs","require":"./dist/vue-zscroller.umd.js"}},"scripts":{"dev":"vite build --watch","lint":"cd ../../ && pnpm run lint","build":"vite build"},"_npmUser":{"name":"zachhandley","email":"zach@blackleafdigital.com"},"_resolved":"/tmp/5c32289267d53485ab5e9a19ccd68b43/vue-zscroller-0.2.1.tgz","_integrity":"sha512-ibLksTXJeeIE/Ow1WfR5SwIhUc3ab7taknTLumIIz9CxAgiTzCamXWU0f4OJYZ6KD6KzE4NG9qZ22pptV52txw==","maintainer":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"repository":{"url":"git+https://github.com/ZachHandley/vue-zscroller.git","type":"git"},"_npmVersion":"10.9.4","description":"Virtual scrolling components for Vue 3.5+, rewritten in TypeScript","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","browserslist":["> 1%","last 2 versions","not ie <= 8"],"dependencies":{"@vueuse/core":"^10.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.10","vue-tsc":"^2.2.8","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^4.6.2"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-zscroller_0.2.1_1772085833907_0.8180459197821504","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"vue-zscroller","version":"0.2.2","keywords":["vue","vuejs","plugin"],"author":{"name":"Guillaume Chau","email":"guillaume.b.chau@gmail.com"},"license":"MIT","_id":"vue-zscroller@0.2.2","maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"homepage":"https://github.com/ZachHandley/vue-zscroller#readme","bugs":{"url":"https://github.com/ZachHandley/vue-zscroller/issues"},"dist":{"shasum":"a37ba12e48db0cc3442af90e1d68b9d63d4f427e","tarball":"https://registry.npmjs.org/vue-zscroller/-/vue-zscroller-0.2.2.tgz","fileCount":48,"integrity":"sha512-hrJG3+d7zVLsLKmjc0aPdU7VKYIExjRqjpEuK3j6eQ2bvxEdSC04ectLXaIfT/MxBFb8VofS4hlKiBB2aLau7g==","signatures":[{"sig":"MEYCIQDAL3Upi3zA916UflwClZxG5adAJPMjj3X+C6TebL35fgIhAMLHy+0T1J+O9lA2c2BZH5Sb7MTZrq1hstNtQFsgNkxC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":733608},"main":"dist/vue-zscroller.umd.js","type":"module","_from":"file:vue-zscroller-0.2.2.tgz","types":"dist/index.d.ts","unpkg":"dist/vue-zscroller.min.js","module":"dist/vue-zscroller.esm.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-zscroller.esm.mjs","require":"./dist/vue-zscroller.umd.js"}},"scripts":{"dev":"vite build --watch","lint":"cd ../../ && pnpm run lint","build":"vite build"},"_npmUser":{"name":"zachhandley","email":"zach@blackleafdigital.com"},"_resolved":"/tmp/c8c71aea75cd3f84ee32e62da2f24165/vue-zscroller-0.2.2.tgz","_integrity":"sha512-hrJG3+d7zVLsLKmjc0aPdU7VKYIExjRqjpEuK3j6eQ2bvxEdSC04ectLXaIfT/MxBFb8VofS4hlKiBB2aLau7g==","maintainer":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"repository":{"url":"git+https://github.com/ZachHandley/vue-zscroller.git","type":"git"},"_npmVersion":"10.9.4","description":"Virtual scrolling components for Vue 3.5+, rewritten in TypeScript","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","browserslist":["> 1%","last 2 versions","not ie <= 8"],"dependencies":{"@vueuse/core":"^10.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.10","vue-tsc":"^2.2.8","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^4.6.2"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-zscroller_0.2.2_1772132152542_0.6446048321205113","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"vue-zscroller","version":"0.2.3","keywords":["vue","vuejs","plugin"],"author":{"name":"Guillaume Chau","email":"guillaume.b.chau@gmail.com"},"license":"MIT","_id":"vue-zscroller@0.2.3","maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"homepage":"https://github.com/ZachHandley/vue-zscroller#readme","bugs":{"url":"https://github.com/ZachHandley/vue-zscroller/issues"},"dist":{"shasum":"a54eca2725faaf6de96ffc5274fea590cdf7b632","tarball":"https://registry.npmjs.org/vue-zscroller/-/vue-zscroller-0.2.3.tgz","fileCount":48,"integrity":"sha512-lRblmTowaHqtTBEhMd1SHjDZq6s3l9LNLMcW/GndGbuTT8ZExPtyGOBdYbWfALUPpBYIXjXkRtRK2b6rjM+XBQ==","signatures":[{"sig":"MEUCIHw9qf3p7qFKKONXvM7CAaBzqDQ5WiFAjPdv3dTwHhdDAiEAwz+NCVL9cwpXdFP1t8s0s9/SCvsdQ/+Svgpoz2uqzz0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":744250},"main":"dist/vue-zscroller.umd.js","type":"module","_from":"file:vue-zscroller-0.2.3.tgz","types":"dist/index.d.ts","unpkg":"dist/vue-zscroller.min.js","module":"dist/vue-zscroller.esm.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-zscroller.esm.mjs","require":"./dist/vue-zscroller.umd.js"}},"scripts":{"dev":"vite build --watch","lint":"cd ../../ && pnpm run lint","build":"vite build"},"_npmUser":{"name":"zachhandley","email":"zach@blackleafdigital.com"},"_resolved":"/tmp/f3e50d2ebbbedc8801494c6fe87969de/vue-zscroller-0.2.3.tgz","_integrity":"sha512-lRblmTowaHqtTBEhMd1SHjDZq6s3l9LNLMcW/GndGbuTT8ZExPtyGOBdYbWfALUPpBYIXjXkRtRK2b6rjM+XBQ==","maintainer":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"repository":{"url":"git+https://github.com/ZachHandley/vue-zscroller.git","type":"git"},"_npmVersion":"10.9.4","description":"Virtual scrolling components for Vue 3.5+, rewritten in TypeScript","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","browserslist":["> 1%","last 2 versions","not ie <= 8"],"dependencies":{"@vueuse/core":"^10.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.10","vue-tsc":"^2.2.8","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^4.6.2"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-zscroller_0.2.3_1772145529045_0.818574800278258","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"vue-zscroller","version":"0.2.4","keywords":["vue","vuejs","plugin"],"author":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"license":"MIT","_id":"vue-zscroller@0.2.4","maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"homepage":"https://github.com/ZachHandley/vue-zscroller#readme","bugs":{"url":"https://github.com/ZachHandley/vue-zscroller/issues"},"dist":{"shasum":"08331ea91366edefc7bcaeebabb29c493464df3a","tarball":"https://registry.npmjs.org/vue-zscroller/-/vue-zscroller-0.2.4.tgz","fileCount":54,"integrity":"sha512-jQz1kDCQSNJCAl+JJ+2BHVauECvoLdOfij6rkWMVbQqro4cTru49PzmeUt9CyPQ2gy3rBQBBZJjRWXjWSvoOYg==","signatures":[{"sig":"MEYCIQCnFccfOEXgk67z+9RX71OXPVNvSMpyVMRJ6zr/0jGt1gIhAKWLNQ+VjS8q++brBa1WWb0diZv1gCVaEWHJQY1eVSEb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":849980},"main":"dist/vue-zscroller.umd.js","type":"module","_from":"file:vue-zscroller-0.2.4.tgz","types":"dist/index.d.ts","unpkg":"dist/vue-zscroller.min.js","module":"dist/vue-zscroller.esm.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-zscroller.esm.mjs","require":"./dist/vue-zscroller.umd.js"}},"scripts":{"dev":"vite build --watch","lint":"cd ../../ && pnpm run lint","build":"vite build"},"_npmUser":{"name":"zachhandley","email":"zach@blackleafdigital.com"},"_resolved":"/tmp/9020954175e27f77af621d51da31928b/vue-zscroller-0.2.4.tgz","_integrity":"sha512-jQz1kDCQSNJCAl+JJ+2BHVauECvoLdOfij6rkWMVbQqro4cTru49PzmeUt9CyPQ2gy3rBQBBZJjRWXjWSvoOYg==","repository":{"url":"git+https://github.com/ZachHandley/vue-zscroller.git","type":"git"},"_npmVersion":"10.9.4","description":"Virtual scrolling components for Vue 3.5+, rewritten in TypeScript","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","browserslist":["> 1%","last 2 versions","not ie <= 8"],"dependencies":{"@vueuse/core":"^10.11.1","vue-zscroller":"^0.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.10","vue-tsc":"^2.2.8","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^4.6.2"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-zscroller_0.2.4_1772414958918_0.5066796661816335","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"vue-zscroller","version":"0.2.5","keywords":["vue","vuejs","plugin"],"author":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"license":"MIT","_id":"vue-zscroller@0.2.5","maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"homepage":"https://github.com/ZachHandley/vue-zscroller#readme","bugs":{"url":"https://github.com/ZachHandley/vue-zscroller/issues"},"dist":{"shasum":"6d9ab6bb50133abad645e0f10f4751799bd50126","tarball":"https://registry.npmjs.org/vue-zscroller/-/vue-zscroller-0.2.5.tgz","fileCount":54,"integrity":"sha512-WEnNuqqmUsBIaNM91UjuAwSeS7iv3cRA9lvpwd1NAq8Po8ik/ygLNJWB/SakM4IHUD3pz2MQsUgT5E1y+CGcEA==","signatures":[{"sig":"MEUCIFxkiPA5SZ5bZG9iL2XJmawFoYAbT4UMvuxQP3PulJjPAiEA970IgNCjxbOa2gW4vxVoYU6vT8dJrJrObtRgyt0GJwA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":849980},"main":"dist/vue-zscroller.umd.js","type":"module","_from":"file:vue-zscroller-0.2.5.tgz","types":"dist/index.d.ts","unpkg":"dist/vue-zscroller.min.js","module":"dist/vue-zscroller.esm.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-zscroller.esm.mjs","require":"./dist/vue-zscroller.umd.js"}},"scripts":{"dev":"vite build --watch","lint":"cd ../../ && pnpm run lint","build":"vite build"},"_npmUser":{"name":"zachhandley","email":"zach@blackleafdigital.com"},"_resolved":"/tmp/1bc7924918b750fc113bff15e1486d37/vue-zscroller-0.2.5.tgz","_integrity":"sha512-WEnNuqqmUsBIaNM91UjuAwSeS7iv3cRA9lvpwd1NAq8Po8ik/ygLNJWB/SakM4IHUD3pz2MQsUgT5E1y+CGcEA==","repository":{"url":"git+https://github.com/ZachHandley/vue-zscroller.git","type":"git"},"_npmVersion":"10.9.4","description":"Virtual scrolling components for Vue 3.5+, rewritten in TypeScript","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","browserslist":["> 1%","last 2 versions","not ie <= 8"],"dependencies":{"@vueuse/core":"^10.11.1","vue-zscroller":"^0.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.10","vue-tsc":"^2.2.8","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^4.6.2"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-zscroller_0.2.5_1772467360699_0.31530815081252883","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"vue-zscroller","version":"0.2.6","keywords":["vue","vuejs","plugin"],"author":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"license":"MIT","_id":"vue-zscroller@0.2.6","maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"homepage":"https://github.com/ZachHandley/vue-zscroller#readme","bugs":{"url":"https://github.com/ZachHandley/vue-zscroller/issues"},"dist":{"shasum":"cbcdb87eb68f9b9c030349e68da282ae77cd684e","tarball":"https://registry.npmjs.org/vue-zscroller/-/vue-zscroller-0.2.6.tgz","fileCount":54,"integrity":"sha512-sGtI1WBegcWzH2dtY8RKNhl5ou0qQy9uMjVyzH+fE/d8dZGC5ayb/mGMLKnCY0wTPY+cDiOCKWmhJRCwsSUxCw==","signatures":[{"sig":"MEUCIQC1Qdvo09vky4mErNJgCS9giaf0lmSJoCgzuJV0XGPnrgIgIBHdI7OEGnvExu5M8nYfQIc0P8Y8WGdpe1taQBZTBR0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":850623},"main":"dist/vue-zscroller.umd.js","type":"module","_from":"file:vue-zscroller-0.2.6.tgz","types":"dist/index.d.ts","unpkg":"dist/vue-zscroller.min.js","module":"dist/vue-zscroller.esm.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-zscroller.esm.mjs","require":"./dist/vue-zscroller.umd.js"}},"scripts":{"dev":"vite build --watch","lint":"cd ../../ && pnpm run lint","build":"vite build"},"_npmUser":{"name":"zachhandley","email":"zach@blackleafdigital.com"},"_resolved":"/tmp/9a8a60772337c0fd1579ccf6dc28e566/vue-zscroller-0.2.6.tgz","_integrity":"sha512-sGtI1WBegcWzH2dtY8RKNhl5ou0qQy9uMjVyzH+fE/d8dZGC5ayb/mGMLKnCY0wTPY+cDiOCKWmhJRCwsSUxCw==","repository":{"url":"git+https://github.com/ZachHandley/vue-zscroller.git","type":"git"},"_npmVersion":"10.9.4","description":"Virtual scrolling components for Vue 3.5+, rewritten in TypeScript","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","browserslist":["> 1%","last 2 versions","not ie <= 8"],"dependencies":{"@vueuse/core":"^10.11.1","vue-zscroller":"^0.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.10","vue-tsc":"^2.2.8","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^4.6.2"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-zscroller_0.2.6_1772470754150_0.1263242271100875","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"vue-zscroller","version":"0.2.7","keywords":["vue","vuejs","plugin"],"author":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"license":"MIT","_id":"vue-zscroller@0.2.7","maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"homepage":"https://github.com/ZachHandley/vue-zscroller#readme","bugs":{"url":"https://github.com/ZachHandley/vue-zscroller/issues"},"dist":{"shasum":"65986c98789d8c91c496a284f063d2ec1b1061fb","tarball":"https://registry.npmjs.org/vue-zscroller/-/vue-zscroller-0.2.7.tgz","fileCount":54,"integrity":"sha512-Uj5MpteqELHTC9JCYQQSTw9kEJU7BQm3Qjb35MviZ1+Ef8QJNWqv9UsEJ1eLrjaal8mM/PcNfP4FohSSI+RMuw==","signatures":[{"sig":"MEYCIQCQpvrEAI0O7DlpIm0cVzwdau+NoM6J3Dgh5c5D86kGwAIhAL7h3AlhzomAKl7/RBUmsj5eRPlxP9s88DNBAnwIL7Bt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":856560},"main":"dist/vue-zscroller.umd.js","type":"module","_from":"file:vue-zscroller-0.2.7.tgz","types":"dist/index.d.ts","unpkg":"dist/vue-zscroller.min.js","module":"dist/vue-zscroller.esm.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-zscroller.esm.mjs","require":"./dist/vue-zscroller.umd.js"}},"scripts":{"dev":"vite build --watch","lint":"cd ../../ && pnpm run lint","build":"vite build"},"_npmUser":{"name":"zachhandley","email":"zach@blackleafdigital.com"},"_resolved":"/tmp/64bdeaebb17202dd0e094dabf2641a81/vue-zscroller-0.2.7.tgz","_integrity":"sha512-Uj5MpteqELHTC9JCYQQSTw9kEJU7BQm3Qjb35MviZ1+Ef8QJNWqv9UsEJ1eLrjaal8mM/PcNfP4FohSSI+RMuw==","repository":{"url":"git+https://github.com/ZachHandley/vue-zscroller.git","type":"git"},"_npmVersion":"10.9.4","description":"Virtual scrolling components for Vue 3.5+, rewritten in TypeScript","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","browserslist":["> 1%","last 2 versions","not ie <= 8"],"dependencies":{"@vueuse/core":"^10.11.1","vue-zscroller":"^0.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.10","vue-tsc":"^2.2.8","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^4.6.2"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-zscroller_0.2.7_1772473385439_0.8959257112585548","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"vue-zscroller","version":"0.2.8","keywords":["vue","vuejs","plugin"],"author":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"license":"MIT","_id":"vue-zscroller@0.2.8","maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"homepage":"https://github.com/ZachHandley/vue-zscroller#readme","bugs":{"url":"https://github.com/ZachHandley/vue-zscroller/issues"},"dist":{"shasum":"0fed444a7903cfa4855b2bb1defd87c7022e7e66","tarball":"https://registry.npmjs.org/vue-zscroller/-/vue-zscroller-0.2.8.tgz","fileCount":54,"integrity":"sha512-StTS7OjbzghMgooNYbazPUt+Ws0ueXptdv4c65m5/hz3OEPowAbszotAZ5x2cioCroLp1zCBsA5juyh5CjEDyQ==","signatures":[{"sig":"MEYCIQC7crtk6+3J0KcZ5OLVYFUshTm77JJ5DBU7G/+IqlcBcQIhAJ3EAmDDmbSDKUb8teq7XbRW7ez5Yi7w74gB8v/NotP7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":862406},"main":"dist/vue-zscroller.umd.js","type":"module","_from":"file:vue-zscroller-0.2.8.tgz","types":"dist/index.d.ts","unpkg":"dist/vue-zscroller.min.js","module":"dist/vue-zscroller.esm.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-zscroller.esm.mjs","require":"./dist/vue-zscroller.umd.js"}},"scripts":{"dev":"vite build --watch","lint":"cd ../../ && pnpm run lint","build":"vite build"},"_npmUser":{"name":"zachhandley","email":"zach@blackleafdigital.com"},"_resolved":"/tmp/0e79f1c05f2a29003171083585dfb891/vue-zscroller-0.2.8.tgz","_integrity":"sha512-StTS7OjbzghMgooNYbazPUt+Ws0ueXptdv4c65m5/hz3OEPowAbszotAZ5x2cioCroLp1zCBsA5juyh5CjEDyQ==","repository":{"url":"git+https://github.com/ZachHandley/vue-zscroller.git","type":"git"},"_npmVersion":"10.9.4","description":"Virtual scrolling components for Vue 3.5+, rewritten in TypeScript","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","browserslist":["> 1%","last 2 versions","not ie <= 8"],"dependencies":{"@vueuse/core":"^10.11.1","vue-zscroller":"^0.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.10","vue-tsc":"^2.2.8","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^4.6.2"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-zscroller_0.2.8_1772474605614_0.27465373193253284","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"vue-zscroller","version":"0.2.9","keywords":["vue","vuejs","plugin"],"author":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"license":"MIT","_id":"vue-zscroller@0.2.9","maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"homepage":"https://github.com/ZachHandley/vue-zscroller#readme","bugs":{"url":"https://github.com/ZachHandley/vue-zscroller/issues"},"dist":{"shasum":"8ab3450a635d7905b4171ebd2a1fc4b6ac71e196","tarball":"https://registry.npmjs.org/vue-zscroller/-/vue-zscroller-0.2.9.tgz","fileCount":54,"integrity":"sha512-ypaSwzaqB0X+AJt5UsqZpj/W17lDEL4EwJAH00wJ4tVijLBltdbb5zzaITgfTNOk8wDt6tyYiL0lpZ5cZQin2A==","signatures":[{"sig":"MEYCIQCWQ7NZ9voKzxVLMIVq3w670WTKCB2tTGzN3xSH/0YFdQIhALjDLOJ2kW7CFnm7NdEL8Y0GrYd5EvNNqx3YSFCpM3Mt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":862670},"main":"dist/vue-zscroller.umd.js","type":"module","_from":"file:vue-zscroller-0.2.9.tgz","types":"dist/index.d.ts","unpkg":"dist/vue-zscroller.min.js","module":"dist/vue-zscroller.esm.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-zscroller.esm.mjs","require":"./dist/vue-zscroller.umd.js"}},"scripts":{"dev":"vite build --watch","lint":"cd ../../ && pnpm run lint","build":"vite build"},"_npmUser":{"name":"zachhandley","email":"zach@blackleafdigital.com"},"_resolved":"/tmp/eed9db8f1a9a939bd0c4bac6e67b55f7/vue-zscroller-0.2.9.tgz","_integrity":"sha512-ypaSwzaqB0X+AJt5UsqZpj/W17lDEL4EwJAH00wJ4tVijLBltdbb5zzaITgfTNOk8wDt6tyYiL0lpZ5cZQin2A==","repository":{"url":"git+https://github.com/ZachHandley/vue-zscroller.git","type":"git"},"_npmVersion":"10.9.4","description":"Virtual scrolling components for Vue 3.5+, rewritten in TypeScript","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","browserslist":["> 1%","last 2 versions","not ie <= 8"],"dependencies":{"@vueuse/core":"^10.11.1","vue-zscroller":"^0.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.10","vue-tsc":"^2.2.8","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^4.6.2"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-zscroller_0.2.9_1772496266525_0.9375921022611553","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"vue-zscroller","version":"0.3.0","keywords":["vue","vuejs","plugin"],"author":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"license":"MIT","_id":"vue-zscroller@0.3.0","maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"homepage":"https://github.com/ZachHandley/vue-zscroller#readme","bugs":{"url":"https://github.com/ZachHandley/vue-zscroller/issues"},"dist":{"shasum":"3864799274bb4fa2be7a2566c116a78260dec81a","tarball":"https://registry.npmjs.org/vue-zscroller/-/vue-zscroller-0.3.0.tgz","fileCount":54,"integrity":"sha512-RcTI6oLA4TaEW9JZjEpbetthLGQbpzSPPoJW8gv3EPdYjE0uPluJ4pgo+AZ6xzoPVLhZ9itcy9Km52n63JbCuw==","signatures":[{"sig":"MEQCIHFReIP+5R9l6rqDR2RMucJdnEkEcru7KoyON/PTYzVWAiApYjXeVXghGqRTsJfcN/Xdmk3yeYR08f3FPWMGLCUMIA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":872003},"main":"dist/vue-zscroller.umd.js","type":"module","_from":"file:vue-zscroller-0.3.0.tgz","types":"dist/index.d.ts","unpkg":"dist/vue-zscroller.min.js","module":"dist/vue-zscroller.esm.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-zscroller.esm.mjs","require":"./dist/vue-zscroller.umd.js"}},"scripts":{"dev":"vite build --watch","lint":"cd ../../ && pnpm run lint","build":"vite build"},"_npmUser":{"name":"zachhandley","email":"zach@blackleafdigital.com"},"_resolved":"/tmp/a90e0f1d44333f1396c96eee8bc7b0c4/vue-zscroller-0.3.0.tgz","_integrity":"sha512-RcTI6oLA4TaEW9JZjEpbetthLGQbpzSPPoJW8gv3EPdYjE0uPluJ4pgo+AZ6xzoPVLhZ9itcy9Km52n63JbCuw==","repository":{"url":"git+https://github.com/ZachHandley/vue-zscroller.git","type":"git"},"_npmVersion":"10.9.4","description":"Virtual scrolling components for Vue 3.5+, rewritten in TypeScript","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","browserslist":["> 1%","last 2 versions","not ie <= 8"],"dependencies":{"@vueuse/core":"^10.11.1","vue-zscroller":"^0.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.10","vue-tsc":"^2.2.8","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^4.6.2"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-zscroller_0.3.0_1772501688437_0.16745305195666527","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"vue-zscroller","version":"0.3.1","keywords":["vue","vuejs","plugin"],"author":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"license":"MIT","_id":"vue-zscroller@0.3.1","maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"homepage":"https://github.com/ZachHandley/vue-zscroller#readme","bugs":{"url":"https://github.com/ZachHandley/vue-zscroller/issues"},"dist":{"shasum":"727399aaa1dbcc9b9691cd9a8e836eaa11e56195","tarball":"https://registry.npmjs.org/vue-zscroller/-/vue-zscroller-0.3.1.tgz","fileCount":54,"integrity":"sha512-kyCcGpne07jafB1ibq+oAvGeLbAfVzCkNJ6KhqUex8XhlffNT6YuLR+0t6kj7JLczKnKojF44fFxyugFcHk1Ug==","signatures":[{"sig":"MEUCIQC53P8Wp2xshLDtZUQW7lckduVYctWqnx/lKHivkA4faAIgAXgZIvjgqz4IbNxr377i3B+U9bctKSpnWnBzrIijRYk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":872399},"main":"dist/vue-zscroller.umd.js","type":"module","_from":"file:vue-zscroller-0.3.1.tgz","types":"dist/index.d.ts","unpkg":"dist/vue-zscroller.min.js","module":"dist/vue-zscroller.esm.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-zscroller.esm.mjs","require":"./dist/vue-zscroller.umd.js"}},"scripts":{"dev":"vite build --watch","lint":"cd ../../ && pnpm run lint","build":"vite build"},"_npmUser":{"name":"zachhandley","email":"zach@blackleafdigital.com"},"_resolved":"/tmp/f9c26e9cf62f3577f25fd95c250a00ca/vue-zscroller-0.3.1.tgz","_integrity":"sha512-kyCcGpne07jafB1ibq+oAvGeLbAfVzCkNJ6KhqUex8XhlffNT6YuLR+0t6kj7JLczKnKojF44fFxyugFcHk1Ug==","repository":{"url":"git+https://github.com/ZachHandley/vue-zscroller.git","type":"git"},"_npmVersion":"10.9.4","description":"Virtual scrolling components for Vue 3.5+, rewritten in TypeScript","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","browserslist":["> 1%","last 2 versions","not ie <= 8"],"dependencies":{"@vueuse/core":"^10.11.1","vue-zscroller":"^0.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.10","vue-tsc":"^2.2.8","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^4.6.2"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-zscroller_0.3.1_1772517322183_0.18478295617347995","host":"s3://npm-registry-packages-npm-production"}},"0.3.11":{"name":"vue-zscroller","version":"0.3.11","keywords":["vue","vuejs","plugin"],"author":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"license":"MIT","_id":"vue-zscroller@0.3.11","maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"homepage":"https://github.com/ZachHandley/vue-zscroller#readme","bugs":{"url":"https://github.com/ZachHandley/vue-zscroller/issues"},"dist":{"shasum":"df5362e22899e0d1a95f62f5e1dc8c7e2b0b41f7","tarball":"https://registry.npmjs.org/vue-zscroller/-/vue-zscroller-0.3.11.tgz","fileCount":54,"integrity":"sha512-VKz/JfY0ZEkZzGFVwPKEeyhjxm9vnlbOJWWLJqg2DubFqtTDMthymVYQgSQVeJD1ouSRqvVSFzyogjSenvA+OQ==","signatures":[{"sig":"MEUCIQDKxsUDcH9t7eR2sq4dPPjWe6F0+h6iSaCb/sppAUzXDAIgWLmHwI4O7PQpPxano+4OBB/KGn+6yXWPDYwXIldJJpM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":872584},"main":"dist/vue-zscroller.umd.js","type":"module","_from":"file:vue-zscroller-0.3.11.tgz","types":"dist/index.d.ts","unpkg":"dist/vue-zscroller.min.js","module":"dist/vue-zscroller.esm.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-zscroller.esm.mjs","require":"./dist/vue-zscroller.umd.js"}},"scripts":{"dev":"vite build --watch","lint":"cd ../../ && pnpm run lint","build":"vite build"},"_npmUser":{"name":"zachhandley","email":"zach@blackleafdigital.com"},"_resolved":"/tmp/6e73f4314b5282057cbb4403d7d98e39/vue-zscroller-0.3.11.tgz","_integrity":"sha512-VKz/JfY0ZEkZzGFVwPKEeyhjxm9vnlbOJWWLJqg2DubFqtTDMthymVYQgSQVeJD1ouSRqvVSFzyogjSenvA+OQ==","repository":{"url":"git+https://github.com/ZachHandley/vue-zscroller.git","type":"git"},"_npmVersion":"10.9.4","description":"Virtual scrolling components for Vue 3.5+, rewritten in TypeScript","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","browserslist":["> 1%","last 2 versions","not ie <= 8"],"dependencies":{"@vueuse/core":"^10.11.1","vue-zscroller":"^0.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.10","vue-tsc":"^2.2.8","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^4.6.2"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-zscroller_0.3.11_1772518641536_0.07924625378043682","host":"s3://npm-registry-packages-npm-production"}},"0.3.12":{"name":"vue-zscroller","version":"0.3.12","keywords":["vue","vuejs","plugin"],"author":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"license":"MIT","_id":"vue-zscroller@0.3.12","maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"homepage":"https://github.com/ZachHandley/vue-zscroller#readme","bugs":{"url":"https://github.com/ZachHandley/vue-zscroller/issues"},"dist":{"shasum":"7020d7db8455380456c8af7654aa0e2b68642fce","tarball":"https://registry.npmjs.org/vue-zscroller/-/vue-zscroller-0.3.12.tgz","fileCount":54,"integrity":"sha512-6L2yBYIQZoZadkQ6FsUl7Q3VsQ2y6N0HQLZOJPnsKOh6wbK4pUcEzGXCU6qYulDzzS2RIsC8Ajer3+B7PvobHw==","signatures":[{"sig":"MEUCIQDoyHOstk7iJKLIFrC9IRP3oYSNKGXXQVVby2Mugv329QIgQi0axzzDiOSW8I909/Vdj70vsOGHurzKAACUwvlkc0g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":873778},"main":"dist/vue-zscroller.umd.js","type":"module","_from":"file:vue-zscroller-0.3.12.tgz","types":"dist/index.d.ts","unpkg":"dist/vue-zscroller.min.js","module":"dist/vue-zscroller.esm.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-zscroller.esm.mjs","require":"./dist/vue-zscroller.umd.js"}},"scripts":{"dev":"vite build --watch","lint":"cd ../../ && pnpm run lint","build":"vite build"},"_npmUser":{"name":"zachhandley","email":"zach@blackleafdigital.com"},"_resolved":"/tmp/f656f26b6447fe51a18136c8c16369ae/vue-zscroller-0.3.12.tgz","_integrity":"sha512-6L2yBYIQZoZadkQ6FsUl7Q3VsQ2y6N0HQLZOJPnsKOh6wbK4pUcEzGXCU6qYulDzzS2RIsC8Ajer3+B7PvobHw==","repository":{"url":"git+https://github.com/ZachHandley/vue-zscroller.git","type":"git"},"_npmVersion":"10.9.4","description":"Virtual scrolling components for Vue 3.5+, rewritten in TypeScript","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","browserslist":["> 1%","last 2 versions","not ie <= 8"],"dependencies":{"@vueuse/core":"^10.11.1","vue-zscroller":"^0.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.10","vue-tsc":"^2.2.8","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^4.6.2"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-zscroller_0.3.12_1772519151349_0.30616564981398353","host":"s3://npm-registry-packages-npm-production"}},"0.3.14":{"name":"vue-zscroller","version":"0.3.14","keywords":["vue","vuejs","plugin"],"author":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"license":"MIT","_id":"vue-zscroller@0.3.14","maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"homepage":"https://github.com/ZachHandley/vue-zscroller#readme","bugs":{"url":"https://github.com/ZachHandley/vue-zscroller/issues"},"dist":{"shasum":"a3de66b0da3c57c9805d82e0f871b91ae78fd717","tarball":"https://registry.npmjs.org/vue-zscroller/-/vue-zscroller-0.3.14.tgz","fileCount":54,"integrity":"sha512-Ub/2XgZrRaXz5Lh807HKXmM5mR3j2+iRWZPRaa5cFvvZSPhUvD3mkpI5wFxrVRw1OSUnVE29NrLTBNstnNfYWw==","signatures":[{"sig":"MEYCIQC8eUFAbOPJ8uAPy7P9ac0M/PHTA0SVEf3WHUI1dos/xwIhAJbBC/w0zi3NHA7RGR1LY1T0Gnw0aVgBNWnbA4n8yiIO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":872493},"main":"dist/vue-zscroller.umd.js","type":"module","_from":"file:vue-zscroller-0.3.14.tgz","types":"dist/index.d.ts","unpkg":"dist/vue-zscroller.min.js","module":"dist/vue-zscroller.esm.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-zscroller.esm.mjs","require":"./dist/vue-zscroller.umd.js"}},"scripts":{"dev":"vite build --watch","lint":"cd ../../ && pnpm run lint","build":"vite build"},"_npmUser":{"name":"zachhandley","email":"zach@blackleafdigital.com"},"_resolved":"/tmp/dcce4e5aa5b6ff62d79d8d6dddbb9b83/vue-zscroller-0.3.14.tgz","_integrity":"sha512-Ub/2XgZrRaXz5Lh807HKXmM5mR3j2+iRWZPRaa5cFvvZSPhUvD3mkpI5wFxrVRw1OSUnVE29NrLTBNstnNfYWw==","repository":{"url":"git+https://github.com/ZachHandley/vue-zscroller.git","type":"git"},"_npmVersion":"10.9.4","description":"Virtual scrolling components for Vue 3.5+, rewritten in TypeScript","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","browserslist":["> 1%","last 2 versions","not ie <= 8"],"dependencies":{"@vueuse/core":"^10.11.1","vue-zscroller":"^0.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.10","vue-tsc":"^2.2.8","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^4.6.2"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-zscroller_0.3.14_1772555270856_0.2548720593988856","host":"s3://npm-registry-packages-npm-production"}},"0.3.15":{"name":"vue-zscroller","version":"0.3.15","keywords":["vue","vuejs","plugin"],"author":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"license":"MIT","_id":"vue-zscroller@0.3.15","maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"homepage":"https://github.com/ZachHandley/vue-zscroller#readme","bugs":{"url":"https://github.com/ZachHandley/vue-zscroller/issues"},"dist":{"shasum":"a8d88d1f0e2ef6fb866c8cc9a39fe5a660d67565","tarball":"https://registry.npmjs.org/vue-zscroller/-/vue-zscroller-0.3.15.tgz","fileCount":54,"integrity":"sha512-z3SWOeWDmUm7NYs2Rr4GyYHUPPw3i0/hQf/kQJ5xrDpSX53Q7IftKpfzOWYqFo5nqzqwWuNvhu2CtxzKoRrnyg==","signatures":[{"sig":"MEYCIQCh9r+xH8gOw/9KFwuNef0rrj/eeiJySMN2t+VpAE1QvgIhAM9vvZuxBoUE+q1Ea8enHJHe1OmhPm+7XYKS7ALCwA9M","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":872246},"main":"dist/vue-zscroller.umd.js","type":"module","_from":"file:vue-zscroller-0.3.15.tgz","types":"dist/index.d.ts","unpkg":"dist/vue-zscroller.min.js","module":"dist/vue-zscroller.esm.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-zscroller.esm.mjs","require":"./dist/vue-zscroller.umd.js"}},"scripts":{"dev":"vite build --watch","lint":"cd ../../ && pnpm run lint","build":"vite build"},"_npmUser":{"name":"zachhandley","email":"zach@blackleafdigital.com"},"_resolved":"/tmp/fd4d4256e336eb078ed6f940763f9b7e/vue-zscroller-0.3.15.tgz","_integrity":"sha512-z3SWOeWDmUm7NYs2Rr4GyYHUPPw3i0/hQf/kQJ5xrDpSX53Q7IftKpfzOWYqFo5nqzqwWuNvhu2CtxzKoRrnyg==","repository":{"url":"git+https://github.com/ZachHandley/vue-zscroller.git","type":"git"},"_npmVersion":"10.9.4","description":"Virtual scrolling components for Vue 3.5+, rewritten in TypeScript","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","browserslist":["> 1%","last 2 versions","not ie <= 8"],"dependencies":{"@vueuse/core":"^10.11.1","vue-zscroller":"^0.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.10","vue-tsc":"^2.2.8","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^4.6.2"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-zscroller_0.3.15_1772556377504_0.15488646460587185","host":"s3://npm-registry-packages-npm-production"}},"0.3.16":{"name":"vue-zscroller","version":"0.3.16","keywords":["vue","vuejs","plugin"],"author":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"license":"MIT","_id":"vue-zscroller@0.3.16","maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"homepage":"https://github.com/ZachHandley/vue-zscroller#readme","bugs":{"url":"https://github.com/ZachHandley/vue-zscroller/issues"},"dist":{"shasum":"94dc2792f851d42c4e234e36291c732791d6ed70","tarball":"https://registry.npmjs.org/vue-zscroller/-/vue-zscroller-0.3.16.tgz","fileCount":54,"integrity":"sha512-HwkICByTZQ+U+QBXxgYSHUKcNPIaehqDC02T/6IrFnwLojWzasByi0u6Ygs5SU2ADuZY/+ia+mKKha/DDV4OlQ==","signatures":[{"sig":"MEQCIFRaEBX94/rn97faY1tQ6yIZzPpxJNsyVkwZ806M9cIPAiBeBzglaPFyCf2REvPD7oNtjJFxsjW86WoKnjRcIGjWYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":872166},"main":"dist/vue-zscroller.umd.js","type":"module","_from":"file:vue-zscroller-0.3.16.tgz","types":"dist/index.d.ts","unpkg":"dist/vue-zscroller.min.js","module":"dist/vue-zscroller.esm.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-zscroller.esm.mjs","require":"./dist/vue-zscroller.umd.js"}},"scripts":{"dev":"vite build --watch","lint":"cd ../../ && pnpm run lint","build":"vite build"},"_npmUser":{"name":"zachhandley","email":"zach@blackleafdigital.com"},"_resolved":"/tmp/2bc8c17ecff56eeea14d5a0b3d4d841e/vue-zscroller-0.3.16.tgz","_integrity":"sha512-HwkICByTZQ+U+QBXxgYSHUKcNPIaehqDC02T/6IrFnwLojWzasByi0u6Ygs5SU2ADuZY/+ia+mKKha/DDV4OlQ==","repository":{"url":"git+https://github.com/ZachHandley/vue-zscroller.git","type":"git"},"_npmVersion":"10.9.4","description":"Virtual scrolling components for Vue 3.5+, rewritten in TypeScript","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","browserslist":["> 1%","last 2 versions","not ie <= 8"],"dependencies":{"@vueuse/core":"^10.11.1","vue-zscroller":"^0.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.10","vue-tsc":"^2.2.8","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^4.6.2"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-zscroller_0.3.16_1772576668501_0.2555047756259865","host":"s3://npm-registry-packages-npm-production"}},"0.3.17":{"name":"vue-zscroller","version":"0.3.17","keywords":["vue","vuejs","plugin"],"author":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"license":"MIT","_id":"vue-zscroller@0.3.17","maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"homepage":"https://github.com/ZachHandley/vue-zscroller#readme","bugs":{"url":"https://github.com/ZachHandley/vue-zscroller/issues"},"dist":{"shasum":"1c30ba565aefb744c6de0a5e28e66cb47021a045","tarball":"https://registry.npmjs.org/vue-zscroller/-/vue-zscroller-0.3.17.tgz","fileCount":54,"integrity":"sha512-8t7flAkMTEMaNJkD2+LyMXN4LP1fc1bD7p8vA/HEJazrmF78LszXEcPDUM6ODosCs/vcU+azhx2ZIe5Skz1wDQ==","signatures":[{"sig":"MEYCIQCRxddSwaMl7vwhUZeX0KEhsRZiOn6jtOOJOl5bCpjvegIhAN1fLLS2U9Yrec+a0bpHMOb+uVTMSkCh3IhtQocKYkoB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":873553},"main":"dist/vue-zscroller.umd.js","type":"module","_from":"file:vue-zscroller-0.3.17.tgz","types":"dist/index.d.ts","unpkg":"dist/vue-zscroller.min.js","module":"dist/vue-zscroller.esm.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-zscroller.esm.mjs","require":"./dist/vue-zscroller.umd.js"}},"scripts":{"dev":"vite build --watch","lint":"cd ../../ && pnpm run lint","build":"vite build"},"_npmUser":{"name":"zachhandley","email":"zach@blackleafdigital.com"},"_resolved":"/tmp/fbea60ec1c06fa364742db184f537a36/vue-zscroller-0.3.17.tgz","_integrity":"sha512-8t7flAkMTEMaNJkD2+LyMXN4LP1fc1bD7p8vA/HEJazrmF78LszXEcPDUM6ODosCs/vcU+azhx2ZIe5Skz1wDQ==","repository":{"url":"git+https://github.com/ZachHandley/vue-zscroller.git","type":"git"},"_npmVersion":"10.9.4","description":"Virtual scrolling components for Vue 3.5+, rewritten in TypeScript","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","browserslist":["> 1%","last 2 versions","not ie <= 8"],"dependencies":{"@vueuse/core":"^10.11.1","vue-zscroller":"^0.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.10","vue-tsc":"^2.2.8","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^4.6.2"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-zscroller_0.3.17_1772658325313_0.48513224012044787","host":"s3://npm-registry-packages-npm-production"}},"0.3.18":{"name":"vue-zscroller","version":"0.3.18","keywords":["vue","vuejs","plugin"],"author":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"license":"MIT","_id":"vue-zscroller@0.3.18","maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"homepage":"https://github.com/ZachHandley/vue-zscroller#readme","bugs":{"url":"https://github.com/ZachHandley/vue-zscroller/issues"},"dist":{"shasum":"febc677f32556d262d392192b0e934308c1f054c","tarball":"https://registry.npmjs.org/vue-zscroller/-/vue-zscroller-0.3.18.tgz","fileCount":54,"integrity":"sha512-oI3XA7Cr0hWtlG8OfJ4skVk+wom/ssKMxUkVpCnrZr7KzsVUR1P1phA9fXOYPAPRgL+F8TBo3/zGG6MDmJvhSw==","signatures":[{"sig":"MEUCIF/qUCdoNx5a1I807cSHxGZ9SaPnaN5TYOFzurebe1Q7AiEArPDMO9r44FqoPXByDcrLSXYHhoRR5d/emcGYe4EUxQs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":872332},"main":"dist/vue-zscroller.umd.js","type":"module","_from":"file:vue-zscroller-0.3.18.tgz","types":"dist/index.d.ts","unpkg":"dist/vue-zscroller.min.js","module":"dist/vue-zscroller.esm.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-zscroller.esm.mjs","require":"./dist/vue-zscroller.umd.js"}},"scripts":{"dev":"vite build --watch","lint":"cd ../../ && pnpm run lint","build":"vite build"},"_npmUser":{"name":"zachhandley","email":"zach@blackleafdigital.com"},"_resolved":"/tmp/2dbfa45dcb75f22cfa2cbd00308bc794/vue-zscroller-0.3.18.tgz","_integrity":"sha512-oI3XA7Cr0hWtlG8OfJ4skVk+wom/ssKMxUkVpCnrZr7KzsVUR1P1phA9fXOYPAPRgL+F8TBo3/zGG6MDmJvhSw==","repository":{"url":"git+https://github.com/ZachHandley/vue-zscroller.git","type":"git"},"_npmVersion":"10.9.4","description":"Virtual scrolling components for Vue 3.5+, rewritten in TypeScript","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","browserslist":["> 1%","last 2 versions","not ie <= 8"],"dependencies":{"@vueuse/core":"^10.11.1","vue-zscroller":"^0.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.10","vue-tsc":"^2.2.8","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^4.6.2"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-zscroller_0.3.18_1773026810929_0.871242429850531","host":"s3://npm-registry-packages-npm-production"}},"0.3.19":{"name":"vue-zscroller","version":"0.3.19","keywords":["vue","vuejs","plugin"],"author":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"license":"MIT","_id":"vue-zscroller@0.3.19","maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"homepage":"https://github.com/ZachHandley/vue-zscroller#readme","bugs":{"url":"https://github.com/ZachHandley/vue-zscroller/issues"},"dist":{"shasum":"ec1a9eb0998bed321499ce844e8c1c94bd285b3e","tarball":"https://registry.npmjs.org/vue-zscroller/-/vue-zscroller-0.3.19.tgz","fileCount":54,"integrity":"sha512-Drrttm+8NdbL5S442lt3UtWhpdFfUYv2fPyORdS1vX6Cw3msZPokAAXf3HYBYhGVBZ/OlZNvleBFyoeqJ3ZLYA==","signatures":[{"sig":"MEQCICzXqCmew0SL5K42eE5mmK4hPHPOL7LDd43K0wgXUX4YAiABRPMAqB4GWGhSsLuOg5pui30//sjMQUZnFJgf+g/P1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":872181},"main":"dist/vue-zscroller.umd.js","type":"module","_from":"file:vue-zscroller-0.3.19.tgz","types":"dist/index.d.ts","unpkg":"dist/vue-zscroller.min.js","module":"dist/vue-zscroller.esm.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-zscroller.esm.mjs","require":"./dist/vue-zscroller.umd.js"}},"scripts":{"dev":"vite build --watch","lint":"cd ../../ && pnpm run lint","build":"vite build"},"_npmUser":{"name":"zachhandley","email":"zach@blackleafdigital.com"},"_resolved":"/tmp/92ce45c76b49d033ef36dd8bdb5df56a/vue-zscroller-0.3.19.tgz","_integrity":"sha512-Drrttm+8NdbL5S442lt3UtWhpdFfUYv2fPyORdS1vX6Cw3msZPokAAXf3HYBYhGVBZ/OlZNvleBFyoeqJ3ZLYA==","repository":{"url":"git+https://github.com/ZachHandley/vue-zscroller.git","type":"git"},"_npmVersion":"10.9.4","description":"Virtual scrolling components for Vue 3.5+, rewritten in TypeScript","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","browserslist":["> 1%","last 2 versions","not ie <= 8"],"dependencies":{"@vueuse/core":"^10.11.1","vue-zscroller":"^0.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.10","vue-tsc":"^2.2.8","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^4.6.2"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-zscroller_0.3.19_1773259157846_0.18729022755607438","host":"s3://npm-registry-packages-npm-production"}},"0.3.20":{"name":"vue-zscroller","version":"0.3.20","keywords":["vue","vuejs","plugin"],"author":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"license":"MIT","_id":"vue-zscroller@0.3.20","maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"homepage":"https://github.com/ZachHandley/vue-zscroller#readme","bugs":{"url":"https://github.com/ZachHandley/vue-zscroller/issues"},"dist":{"shasum":"23baa1f9c9c6268836c449244e272c95ca95dc55","tarball":"https://registry.npmjs.org/vue-zscroller/-/vue-zscroller-0.3.20.tgz","fileCount":54,"integrity":"sha512-MyhQDON27ZZy/58+voFXMCbu+l02KrJOtR4GFUubjbS0yW/oBvVxqfC6SoZFcxpLIfSV8lrBG0MsqDWm8CnKJQ==","signatures":[{"sig":"MEUCICkfrSlLfi+GKAn5JaY+vUdmGVoyevUgc5WT0PuNlnODAiEA4yCqRPvL+BiKvJU5o3hDSvc6wKYaSSfMHfg9WdEdQ7A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":872181},"main":"dist/vue-zscroller.umd.js","type":"module","_from":"file:vue-zscroller-0.3.20.tgz","types":"dist/index.d.ts","unpkg":"dist/vue-zscroller.min.js","module":"dist/vue-zscroller.esm.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-zscroller.esm.mjs","require":"./dist/vue-zscroller.umd.js"}},"scripts":{"dev":"vite build --watch","lint":"cd ../../ && pnpm run lint","build":"vite build"},"_npmUser":{"name":"zachhandley","email":"zach@blackleafdigital.com"},"_resolved":"/tmp/a6cd316f06dc4bbabbc9496b3037d9e4/vue-zscroller-0.3.20.tgz","_integrity":"sha512-MyhQDON27ZZy/58+voFXMCbu+l02KrJOtR4GFUubjbS0yW/oBvVxqfC6SoZFcxpLIfSV8lrBG0MsqDWm8CnKJQ==","repository":{"url":"git+https://github.com/ZachHandley/vue-zscroller.git","type":"git"},"_npmVersion":"10.9.4","description":"Virtual scrolling components for Vue 3.5+, rewritten in TypeScript","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","browserslist":["> 1%","last 2 versions","not ie <= 8"],"dependencies":{"@vueuse/core":"^10.11.1","vue-zscroller":"^0.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.10","vue-tsc":"^2.2.8","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^4.6.2"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-zscroller_0.3.20_1773285018723_0.6803455101712079","host":"s3://npm-registry-packages-npm-production"}},"0.3.21":{"name":"vue-zscroller","version":"0.3.21","keywords":["vue","vuejs","plugin"],"author":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"license":"MIT","_id":"vue-zscroller@0.3.21","maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"homepage":"https://github.com/ZachHandley/vue-zscroller#readme","bugs":{"url":"https://github.com/ZachHandley/vue-zscroller/issues"},"dist":{"shasum":"282348475342e0a59e476b7e14efe146f84a8d17","tarball":"https://registry.npmjs.org/vue-zscroller/-/vue-zscroller-0.3.21.tgz","fileCount":54,"integrity":"sha512-hameQuuGQ2UNSo7B21PVhf00sqz6ihjxHOXSBG29NuShytp4+Inv3Ztc2MuScL2DRIxshEHuBfgs4Xr75fSttw==","signatures":[{"sig":"MEUCIG9+uJadYP4tyaKGXk/B0eh2Sr2yHHJE3R9yq9FO3iM8AiEAqDBcDRps1BhnPGrY6MsPz6oDTBbKTKJBrms7BLjI4s0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":872181},"main":"dist/vue-zscroller.umd.js","type":"module","_from":"file:vue-zscroller-0.3.21.tgz","types":"dist/index.d.ts","unpkg":"dist/vue-zscroller.min.js","module":"dist/vue-zscroller.esm.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-zscroller.esm.mjs","require":"./dist/vue-zscroller.umd.js"}},"scripts":{"dev":"vite build --watch","lint":"cd ../../ && pnpm run lint","build":"vite build"},"_npmUser":{"name":"zachhandley","email":"zach@blackleafdigital.com"},"_resolved":"/tmp/19365b806e818f350ea9149b0382014c/vue-zscroller-0.3.21.tgz","_integrity":"sha512-hameQuuGQ2UNSo7B21PVhf00sqz6ihjxHOXSBG29NuShytp4+Inv3Ztc2MuScL2DRIxshEHuBfgs4Xr75fSttw==","repository":{"url":"git+https://github.com/ZachHandley/vue-zscroller.git","type":"git"},"_npmVersion":"10.9.4","description":"Virtual scrolling components for Vue 3.5+, rewritten in TypeScript","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","browserslist":["> 1%","last 2 versions","not ie <= 8"],"dependencies":{"@vueuse/core":"^10.11.1","vue-zscroller":"^0.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.10","vue-tsc":"^2.2.8","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^4.6.2"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-zscroller_0.3.21_1773287686704_0.7572840745311737","host":"s3://npm-registry-packages-npm-production"}},"0.3.22":{"name":"vue-zscroller","version":"0.3.22","keywords":["vue","vuejs","plugin"],"author":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"license":"MIT","_id":"vue-zscroller@0.3.22","maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"homepage":"https://github.com/ZachHandley/vue-zscroller#readme","bugs":{"url":"https://github.com/ZachHandley/vue-zscroller/issues"},"dist":{"shasum":"57d85d7b4a265efad1045c0949411e06f096210b","tarball":"https://registry.npmjs.org/vue-zscroller/-/vue-zscroller-0.3.22.tgz","fileCount":54,"integrity":"sha512-q/FGqCnFoSxSyr5qR2kUDKeIG9pt3SvwP4LWacJRz9hike79XIDoyUCutCCiaCPojKj+fCL8yk6KlkZOmvSpjg==","signatures":[{"sig":"MEUCIDyMbjaOxZ7uM7xCIJUT5jvbb+tkIEuUVs9Inj3TzDdtAiEA0EhsrhVqkbOnOchh3uzbBFMCAnw/I7GUkM8w9ebRuh0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":877532},"main":"dist/vue-zscroller.umd.js","type":"module","_from":"file:vue-zscroller-0.3.22.tgz","types":"dist/index.d.ts","unpkg":"dist/vue-zscroller.min.js","module":"dist/vue-zscroller.esm.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-zscroller.esm.mjs","require":"./dist/vue-zscroller.umd.js"}},"scripts":{"dev":"vite build --watch","lint":"cd ../../ && pnpm run lint","build":"vite build"},"_npmUser":{"name":"zachhandley","email":"zach@blackleafdigital.com"},"_resolved":"/tmp/2b40ed6fcc4ace0b78579049db1d6330/vue-zscroller-0.3.22.tgz","_integrity":"sha512-q/FGqCnFoSxSyr5qR2kUDKeIG9pt3SvwP4LWacJRz9hike79XIDoyUCutCCiaCPojKj+fCL8yk6KlkZOmvSpjg==","repository":{"url":"git+https://github.com/ZachHandley/vue-zscroller.git","type":"git"},"_npmVersion":"10.9.4","description":"Virtual scrolling components for Vue 3.5+, rewritten in TypeScript","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","browserslist":["> 1%","last 2 versions","not ie <= 8"],"dependencies":{"@vueuse/core":"^10.11.1","vue-zscroller":"^0.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.10","vue-tsc":"^2.2.8","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^4.6.2"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-zscroller_0.3.22_1773287915860_0.009943854017628428","host":"s3://npm-registry-packages-npm-production"}},"0.3.23":{"name":"vue-zscroller","version":"0.3.23","keywords":["vue","vuejs","plugin"],"author":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"license":"MIT","_id":"vue-zscroller@0.3.23","maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"homepage":"https://github.com/ZachHandley/vue-zscroller#readme","bugs":{"url":"https://github.com/ZachHandley/vue-zscroller/issues"},"dist":{"shasum":"be567a0876425a8a2fd2cd3da13360193b589d39","tarball":"https://registry.npmjs.org/vue-zscroller/-/vue-zscroller-0.3.23.tgz","fileCount":54,"integrity":"sha512-VBm4thsbmzQJO7vai2G/AIhqHMOgublLezMbedebvmnTozIXuQVAJIK+fbdeUkwh4Sbxtnc+hxad0toNCYBVnw==","signatures":[{"sig":"MEUCIACBMdcpH7aQ6x/PoQiagkqxTj5BfWtnzyZI7BoWPVnFAiEA29BeZpWirvyuFQEwECfRUV+RDtliLPMbOv09rFdioU8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":877532},"main":"dist/vue-zscroller.umd.js","type":"module","_from":"file:vue-zscroller-0.3.23.tgz","types":"dist/index.d.ts","unpkg":"dist/vue-zscroller.min.js","module":"dist/vue-zscroller.esm.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-zscroller.esm.mjs","require":"./dist/vue-zscroller.umd.js"}},"scripts":{"dev":"vite build --watch","lint":"cd ../../ && pnpm run lint","build":"vite build"},"_npmUser":{"name":"zachhandley","email":"zach@blackleafdigital.com"},"_resolved":"/tmp/35313b08da640dfb04bc83953625175c/vue-zscroller-0.3.23.tgz","_integrity":"sha512-VBm4thsbmzQJO7vai2G/AIhqHMOgublLezMbedebvmnTozIXuQVAJIK+fbdeUkwh4Sbxtnc+hxad0toNCYBVnw==","repository":{"url":"git+https://github.com/ZachHandley/vue-zscroller.git","type":"git"},"_npmVersion":"10.9.4","description":"Virtual scrolling components for Vue 3.5+, rewritten in TypeScript","directories":{},"sideEffects":true,"_nodeVersion":"22.21.1","browserslist":["> 1%","last 2 versions","not ie <= 8"],"dependencies":{"@vueuse/core":"^10.11.1","vue-zscroller":"^0.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","vite":"^5.4.10","vue-tsc":"^2.2.8","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^4.6.2"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-zscroller_0.3.23_1773287923341_0.9900843783805038","host":"s3://npm-registry-packages-npm-production"}},"0.3.24":{"name":"vue-zscroller","type":"module","version":"0.3.24","description":"Virtual scrolling components for Vue 3.5+, rewritten in TypeScript","author":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"license":"MIT","homepage":"https://github.com/ZachHandley/vue-zscroller#readme","repository":{"type":"git","url":"git+https://github.com/ZachHandley/vue-zscroller.git"},"bugs":{"url":"https://github.com/ZachHandley/vue-zscroller/issues"},"keywords":["vue","vuejs","plugin"],"sideEffects":true,"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-zscroller.esm.mjs","require":"./dist/vue-zscroller.umd.js"}},"main":"dist/vue-zscroller.umd.js","module":"dist/vue-zscroller.esm.mjs","unpkg":"dist/vue-zscroller.min.js","types":"dist/index.d.ts","peerDependencies":{"vue":"^3.4.0"},"dependencies":{"@vueuse/core":"^10.11.1","vue-zscroller":"^0.2.3"},"devDependencies":{"@vitejs/plugin-vue":"^4.6.2","vite":"^5.4.10","vite-plugin-dts":"^4.5.4","vue":"^3.5.13","vue-tsc":"^2.2.8"},"browserslist":["> 1%","last 2 versions","not ie <= 8"],"publishConfig":{"access":"public"},"scripts":{"build":"vite build","dev":"vite build --watch","lint":"cd ../../ && pnpm run lint"},"_id":"vue-zscroller@0.3.24","_integrity":"sha512-Ra7+3+NroZFv9TZLTrq3pjmOL2vjYs7+ocATOmKjKXz0RBYXXbSHzAOZ9obsBU+4fmTyCOPbJlqX3d02uqu6mg==","_resolved":"/tmp/ecb910194f05de3fb8fdf42f57e7d29a/vue-zscroller-0.3.24.tgz","_from":"file:vue-zscroller-0.3.24.tgz","_nodeVersion":"22.21.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-Ra7+3+NroZFv9TZLTrq3pjmOL2vjYs7+ocATOmKjKXz0RBYXXbSHzAOZ9obsBU+4fmTyCOPbJlqX3d02uqu6mg==","shasum":"132f30df8055f3c7880f0f272f6bd76bde6cee47","tarball":"https://registry.npmjs.org/vue-zscroller/-/vue-zscroller-0.3.24.tgz","fileCount":54,"unpackedSize":878033,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDoEEVi8g87hYHOiMcyXXUIda/k/uh7qvRwNBFC8ArwXwIgYmmyzkOdOWfQYmxlyhRoZkfgiRUvAF0Hh2G4GfZsXEs="}]},"_npmUser":{"name":"zachhandley","email":"zach@blackleafdigital.com"},"directories":{},"maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vue-zscroller_0.3.24_1773872018323_0.6804005130308424"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-26T05:06:30.226Z","modified":"2026-03-18T22:13:38.620Z","0.1.8":"2026-02-26T05:06:30.529Z","0.1.9":"2026-02-26T05:14:48.453Z","0.2.0":"2026-02-26T05:24:23.414Z","0.2.1":"2026-02-26T06:03:54.089Z","0.2.2":"2026-02-26T18:55:52.686Z","0.2.3":"2026-02-26T22:38:49.220Z","0.2.4":"2026-03-02T01:29:19.095Z","0.2.5":"2026-03-02T16:02:40.942Z","0.2.6":"2026-03-02T16:59:14.349Z","0.2.7":"2026-03-02T17:43:05.648Z","0.2.8":"2026-03-02T18:03:25.795Z","0.2.9":"2026-03-03T00:04:26.755Z","0.3.0":"2026-03-03T01:34:48.681Z","0.3.1":"2026-03-03T05:55:22.397Z","0.3.11":"2026-03-03T06:17:21.865Z","0.3.12":"2026-03-03T06:25:51.587Z","0.3.14":"2026-03-03T16:27:51.057Z","0.3.15":"2026-03-03T16:46:17.691Z","0.3.16":"2026-03-03T22:24:28.721Z","0.3.17":"2026-03-04T21:05:25.592Z","0.3.18":"2026-03-09T03:26:51.172Z","0.3.19":"2026-03-11T19:59:18.017Z","0.3.20":"2026-03-12T03:10:18.984Z","0.3.21":"2026-03-12T03:54:46.925Z","0.3.22":"2026-03-12T03:58:36.086Z","0.3.23":"2026-03-12T03:58:43.571Z","0.3.24":"2026-03-18T22:13:38.513Z"},"bugs":{"url":"https://github.com/ZachHandley/vue-zscroller/issues"},"author":{"name":"Zach Handley","email":"zachhandley@gmail.com"},"license":"MIT","homepage":"https://github.com/ZachHandley/vue-zscroller#readme","keywords":["vue","vuejs","plugin"],"repository":{"type":"git","url":"git+https://github.com/ZachHandley/vue-zscroller.git"},"description":"Virtual scrolling components for Vue 3.5+, rewritten in TypeScript","maintainers":[{"name":"zachhandley","email":"zach@blackleafdigital.com"}],"readme":"# vue-zscroller\n\n[![npm](https://img.shields.io/npm/v/vue-zscroller.svg) ![npm](https://img.shields.io/npm/dm/vue-zscroller.svg)](https://www.npmjs.com/package/vue-zscroller)\n[![vue3](https://img.shields.io/badge/vue-3.5+-brightgreen.svg)](https://vuejs.org/)\n[![TypeScript](https://img.shields.io/badge/TypeScript-strict-blue.svg)](https://www.typescriptlang.org/)\n\nVirtual scrolling components for Vue 3.5+, written from scratch in TypeScript. Based on the API of [vue-virtual-scroller](https://github.com/Akryum/vue-virtual-scroller) by [Guillaume Chau (Akryum)](https://github.com/Akryum).\n\nNot a fork -- every component was rewritten from the ground up using `<script setup lang=\"ts\">`, `@vueuse/core`, and Vue 3.5 reactive patterns. The original API is preserved so migration is straightforward.\n\n**Maintainer**: Zach Handley (zachhandley@gmail.com)\n\n**[Live Demo](https://zachhandley.github.io/vue-zscroller/)** | **[GitHub](https://github.com/ZachHandley/vue-zscroller)** | **[npm](https://www.npmjs.com/package/vue-zscroller)**\n\n---\n\n## Features\n\n- Strict TypeScript with full type definitions and `defineSlots` for IDE IntelliSense\n- Global component type augmentation via `app.use()`\n- Uses `@vueuse/core` instead of rolling custom utilities\n- SSR-safe -- works with server-side rendering out of the box\n- CSS auto-injected, no separate import needed\n- Optional `filter` prop for filtering items without recreating the scroller\n- Built-in custom scrollbar with math-based thumb positioning (no jumpy native scrollbar)\n- Components: RecycleScroller, DynamicScroller, DynamicScrollerItem, GridScroller\n\n---\n\n## Installation\n\n```bash\npnpm add vue-zscroller\n```\n\n```bash\nnpm install vue-zscroller\n```\n\n```bash\nyarn add vue-zscroller\n```\n\n## Default import\n\nInstall all the components:\n\n```javascript\nimport VueVirtualScroller from 'vue-zscroller'\n\napp.use(VueVirtualScroller)\n```\n\nUse specific components:\n\n```javascript\nimport { RecycleScroller } from 'vue-zscroller'\n\napp.component('RecycleScroller', RecycleScroller)\n```\n\n## Browser\n\n```html\n<script src=\"vue.js\"></script>\n<script src=\"vue-zscroller/dist/vue-zscroller.min.js\"></script>\n```\n\nInstall the component:\n\n```javascript\napp.use(VueVirtualScroller)\n```\n\nOr register it with a custom name:\n\n```javascript\napp.component('RecycleScroller', VueVirtualScroller.RecycleScroller)\n```\n\n# Usage\n\n## Composables\n\nThe library exports composables for advanced use cases:\n\n```typescript\nimport {\n  useCustomScrollbar,\n  useSlotRefManager,\n  useSSRSafeEnhanced,\n  useVirtualScrollCore,\n  useVirtualScrollPerformance\n} from 'vue-zscroller'\n\n// Advanced slot management with automatic cleanup\nconst slotManager = useSlotRefManager({\n  enableWeakMap: true,\n  maxSize: 1000\n})\n\n// Performance monitoring and optimization\nconst perf = useVirtualScrollPerformance({\n  enableScrollDebounce: true,\n  scrollDebounceMs: 16,\n  enableRequestIdleCallback: true\n})\n\n// Enhanced SSR utilities\nconst { useSSRSafeStorage, useSSRSafeViewport } = useSSRSafeEnhanced()\n```\n\n### Performance monitoring\n\nYou can track scroll performance with `useVirtualScrollPerformance`:\n\n```typescript\nimport { useVirtualScrollPerformance } from 'vue-zscroller'\n\nconst perf = useVirtualScrollPerformance({\n  enableScrollDebounce: true,\n  enableRequestIdleCallback: true\n})\n\n// Access performance stats\nconst stats = perf.getPerformanceStats()\n\n// Reset metrics\nperf.resetMetrics()\n\n// Reactive state\nconsole.log(perf.isScrolling.value)\nconsole.log(perf.scrollDirection.value)\nconsole.log(perf.scrollVelocity.value)\n```\n\nThere are several components provided by `vue-zscroller`:\n\n[RecycleScroller](#recyclescroller) is a component that only renders the visible items in your list. It also re-uses components and dom elements to be as efficient and performant as possible.\n\n[DynamicScroller](#dynamicscroller) is a component that wraps the RecycleScroller component and extends its features to include dynamic size management. The main use case for this is when you **do not know the size of the items** in advance. The Dynamic Scroller automatically \"discovers\" item dimensions as it renders new items during scrolling.\n\n[DynamicScrollerItem](#dynamicscrolleritem) must wrap each item in a DynamicScroller to handle size computations.\n\n[GridScroller](#gridscroller) is a responsive grid layout that wraps RecycleScroller. You give it `itemWidth` and `itemHeight` and it figures out how many columns fit in the container, recalculating on resize.\n\n[useIdState](#useidstate) is a composable that eases local state management in reused components inside a RecycleScroller.\n\n## RecycleScroller\n\nRecycleScroller is a virtual scroller that only renders the visible items. As the user scrolls, RecycleScroller reuses all components and DOM nodes to maintain optimal performance.\n\n### Basic usage\n\nUse the scoped slot to render each item in the list:\n\n```html\n<template>\n  <RecycleScroller\n    class=\"scroller\"\n    :items=\"list\"\n    :item-size=\"32\"\n    key-field=\"id\"\n    v-slot=\"{ item }\"\n  >\n    <div class=\"user\">\n      {{ item.name }}\n    </div>\n  </RecycleScroller>\n</template>\n\n<script setup lang=\"ts\">\ninterface Props {\n  list: Array<{ id: string; name: string }>\n}\n\ndefineProps<Props>()\n</script>\n\n<style scoped>\n.scroller {\n  height: 100%;\n}\n\n.user {\n  height: 32px;\n  padding: 0 12px;\n  display: flex;\n  align-items: center;\n}\n</style>\n```\n\n### Important notes\n\n- **You need to set the size of the virtual-scroller element and the items elements (for example, with CSS). Unless you are using [variable size mode](#variable-size-mode), all items should have the same height (or width in horizontal mode) to prevent display glitches.**\n- **If the items are objects, the scroller needs to be able to identify them. By default it will look for an `id` field on the items. This can be configured with the `keyField` prop if you are using another field name.**\n- It is not recommended to use functional components inside RecycleScroller since the components are reused (so it will actually be slower).\n- The list item components must be reactive to the `item` prop being updated without being re-created (use computed props or watchers to properly react to props changes!).\n- You don't need to set `key` on list content (but you should on all nested `<img>` elements to prevent load glitches).\n- The browsers have a size limitation on DOM elements, it means that currently the virtual scroller can't display more than ~500k items depending on the browser.\n- Since DOM elements are reused for items, it's recommended to define hover styles using the provided `hover` class instead of the `:hover` state selector (e.g. `.vue-recycle-scroller__item-view.hover` or `.hover .some-element-inside-the-item-view`).\n\n### How does it work?\n\n- The RecycleScroller creates pools of views to render visible items to the user.\n- A view holds a rendered item, and is reused inside its pool.\n- For each type of item, a new pool is created so that the same components (and DOM trees) are reused for the same type.\n- Views can be deactivated if they go off-screen, and can be reused anytime for a newly visible item.\n\nHere is what the internals of RecycleScroller look like in vertical mode:\n\n```html\n<RecycleScroller>\n  <!-- Wrapper element with a pre-calculated total height -->\n  <wrapper\n    :style=\"{ height: computedTotalHeight + 'px' }\"\n  >\n    <!-- Each view is translated to the computed position -->\n    <view\n      v-for=\"view of pool\"\n      :style=\"{ transform: 'translateY(' + view.computedTop + 'px)' }\"\n    >\n      <!-- Your elements will be rendered here -->\n      <slot\n        :item=\"view.item\"\n        :index=\"view.nr.index\"\n        :active=\"view.nr.used\"\n      />\n    </view>\n  </wrapper>\n</RecycleScroller>\n```\n\nWhen the user scrolls inside RecycleScroller, the views are mostly just moved around to fill the new visible space, and the default slot properties updated. That way we get the minimum amount of components/elements creation and destruction and we use the full power of Vue virtual-dom diff algorithm to optimize DOM operations!\n\n### Props\n\n- `items`: list of items you want to display in the scroller.\n- `direction` (default: `'vertical'`): scrolling direction, either `'vertical'` or `'horizontal'`.\n- `itemSize` (default: `null`): display height (or width in horizontal mode) of the items in pixels used to calculate the scroll size and position. If it is set to `null` (the default value), it will use [variable size mode](#variable-size-mode).\n- `gridItems`: display that many items on the same line to create a grid. You must put a value for `itemSize` to use this prop (dynamic sizes are not supported).\n- `itemSecondarySize`: size in pixels (width in vertical mode, height in horizontal mode) of the items in the grid when `gridItems` is set. If `itemSecondarySize` is not set, it will use the value of `itemSize`.\n- `minItemSize`: minimum size used if the height (or width in horizontal mode) of a item is unknown.\n- `sizeField` (default: `'size'`): field used to get the item's size in variable size mode.\n- `typeField` (default: `'type'`): field used to differentiate different kinds of components in the list. For each distinct type, a pool of recycled items will be created.\n- `keyField` (default: `'id'`): field used to identify items and optimize managing rendered views.\n- `pageMode` (default: `false`): enable [Page mode](#page-mode).\n- `prerender` (default: `0`): render a fixed number of items for Server-Side Rendering (SSR).\n- `buffer` (default: `200`): amount of pixel to add to edges of the scrolling visible area to start rendering items further away.\n- `emitUpdate` (default: `false`): emit a `'update'` event each time the virtual scroller content is updated (can impact performance).\n- `updateInterval` (default: `0`): the interval in ms at which the view will be checked for updates after scrolling. When set to `0`, checked will happen during the next animation frame.\n- `listClass` (default: `''`): custom classes added to the item list wrapper.\n- `itemClass` (default: `''`): custom classes added to each item.\n- `listTag` (default: `'div'`): the element to render as the list's wrapper.\n- `itemTag` (default: `'div'`): the element to render as the list item (the direct parent of the default slot content).\n- `disableTransform` (default: `false`): disable the use of CSS `transform` for positioning items. When enabled, items are positioned using `top`/`left` instead of `translateX`/`translateY`. Useful when transforms interfere with nested positioned elements.\n- `skipHover` (default: `false`): disable the hover class management on item views. Use this to improve performance when hover effects are not needed.\n- `startAtBottom` (default: `false`): start the scroller scrolled to the bottom. Useful for chat-like interfaces.\n- `initialScrollPercent` (default: `null`): set an initial scroll position as a percentage (0 to 1). For example, `0.5` starts in the middle of the list.\n- `stickToBottom` (default: `false`): automatically scroll to the bottom when new items are appended and the user is already at the bottom. Ideal for chat UIs.\n- `stickToBottomThreshold` (default: `50`): how many pixels from the bottom the user can be and still be considered \"at the bottom\" for `stickToBottom`.\n- `skeletonWhileScrolling` (default: `false`): render lightweight skeleton placeholders instead of full item content during active scrolling. Use the `skeleton` slot to customize the placeholder.\n- `filter`: optional function `(item) => boolean` to filter items before rendering. Items where the function returns `false` are excluded without recreating the scroller.\n- `customScrollbar` (default: `false`): enable the built-in [custom scrollbar](#custom-scrollbar). Hides the native scrollbar and renders a custom track/thumb overlay. Automatically disabled in [page mode](#page-mode).\n- `scrollbarOptions`: options object to customize the custom scrollbar appearance and behavior. Only used when `customScrollbar` is `true`. See [Custom Scrollbar](#custom-scrollbar) for details.\n\n### Events\n\n- `resize`: emitted when the size of the scroller changes.\n- `visible`: emitted when the scroller considers itself to be visible in the page.\n- `hidden`: emitted when the scroller is hidden in the page.\n- `update`: emitted each time the views are updated, only if `emitUpdate` prop is `true`. The handler receives a single `UpdateEvent` object:\n\n  ```typescript\n  interface UpdateEvent {\n    startIndex: number\n    endIndex: number\n    visibleStartIndex: number\n    visibleEndIndex: number\n  }\n\n  // Usage:\n  function onUpdate(event: UpdateEvent) {\n    console.log(event.startIndex, event.endIndex)\n    console.log(event.visibleStartIndex, event.visibleEndIndex)\n  }\n  ```\n\n- `scroll-start`: emitted when the first item is rendered.\n- `scroll-end`: emitted when the last item is rendered.\n\n### Methods (via template ref)\n\n- `scrollToItem(index, alignment?)`: scroll to the item at the given index. `alignment` can be `'start'`, `'center'`, `'end'`, or `'auto'` (default).\n- `scrollToPosition(position)`: scroll to the given pixel position.\n- `scrollToBottom()`: scroll to the bottom of the list.\n- `scrollToPercent(percent)`: scroll to a position expressed as a percentage (0 to 1). For example, `scrollToPercent(0.5)` scrolls to the middle.\n- `updateVisibleItems()`: force an update of the visible items.\n- `isAtBottom`: reactive ref -- `true` when the scroller is scrolled to the bottom (within `stickToBottomThreshold`).\n- `reset()`: reset the scroller state (clears indices, stops scrolling, and recycles all views).\n\n### Default scoped slot props\n\n- `item`: item being rendered in a view.\n- `index`: reflects each item's position in the `items` array\n- `active`: whether or not the view is active. An active view is considered visible and being positioned by `RecycleScroller`. An inactive view is not considered visible and is hidden from the user. Any rendering-related computations should be skipped if the view is inactive.\n\n### Other Slots\n\n```html\n<main>\n  <slot name=\"before\"></slot>\n  <wrapper>\n    <!-- Reused view pools here -->\n    <slot name=\"empty\"></slot>\n    <slot name=\"empty-item\" :index=\"index\"></slot>\n    <slot name=\"skeleton\" :item=\"item\" :index=\"index\"></slot>\n  </wrapper>\n  <slot name=\"after\"></slot>\n</main>\n```\n\n- `before`: content rendered before the item list wrapper.\n- `after`: content rendered after the item list wrapper.\n- `empty`: content rendered when the items list is empty.\n- `empty-item`: skeleton placeholder rendered for items that are `null` or `undefined` in the items array. Receives an `{ index }` slot prop. Useful for showing loading placeholders:\n\n  ```html\n  <RecycleScroller :items=\"items\" :item-size=\"50\">\n    <template #default=\"{ item }\">\n      <div>{{ item.name }}</div>\n    </template>\n    <template #empty-item=\"{ index }\">\n      <div class=\"skeleton-row\">Loading item {{ index }}...</div>\n    </template>\n  </RecycleScroller>\n  ```\n\n- `skeleton`: lightweight placeholder shown in place of full item content during active scrolling when `skeletonWhileScrolling` is enabled. Receives `{ item, index }` slot props.\n\nExample:\n\n```html\n<RecycleScroller\n  class=\"scroller\"\n  :items=\"list\"\n  :item-size=\"32\"\n>\n  <template #before>\n    Hey! I'm a message displayed before the items!\n  </template>\n\n  <template v-slot=\"{ item }\">\n    <div class=\"user\">\n      {{ item.name }}\n    </div>\n  </template>\n</RecycleScroller>\n```\n\n### Page mode\n\nThe page mode expands the virtual-scroller and uses the page viewport to compute which items are visible. That way, you can use it in a big page with HTML elements before or after (like a header and a footer). Set the `page-mode` prop to `true`:\n\n```html\n<header>\n  <menu></menu>\n</header>\n\n<RecycleScroller page-mode>\n  <!-- ... -->\n</RecycleScroller>\n\n<footer>\n  Copyright 2017 - Cat\n</footer>\n```\n\n### Variable size mode\n\n**This mode can be performance heavy with a lot of items. Use with caution.**\n\nIf the `itemSize` prop is not set or is set to `null`, the virtual scroller will switch to variable size mode. You then need to expose a number field on the item objects with the size of the item element.\n\n**You still need to set the size of the items with CSS correctly (with classes for example).**\n\nUse the `sizeField` prop (default is `'size'`) to set the field used by the scroller to get the size for each item.\n\nExample:\n\n```javascript\nconst items = [\n  {\n    id: 1,\n    label: 'Title',\n    size: 64,\n  },\n  {\n    id: 2,\n    label: 'Foo',\n    size: 32,\n  },\n  {\n    id: 3,\n    label: 'Bar',\n    size: 32,\n  },\n]\n```\n\n### Buffer\n\nYou can set the `buffer` prop (in pixels) on the virtual-scroller to extend the viewport considered when determining the visible items. For example, if you set a buffer of 1000 pixels, the virtual-scroller will start rendering items that are 1000 pixels below the bottom of the scroller visible area, and will keep the items that are 1000 pixels above the top of the visible area.\n\nThe default value is `200`.\n\n```html\n<RecycleScroller :buffer=\"200\" />\n```\n\n### Server-Side Rendering\n\nThe `prerender` props can be set as the number of items to render on the server inside the virtual scroller:\n\n```html\n<RecycleScroller\n  :items=\"items\"\n  :item-size=\"42\"\n  :prerender=\"10\"\n>\n```\n\n### Custom Scrollbar\n\nNative browser scrollbars in virtual scrollers have a UX problem: the thumb jumps around as item sizes are measured and the total content height changes. The built-in custom scrollbar solves this by computing thumb position mathematically from the scroller's internal state rather than relying on the browser's `scrollHeight`.\n\nEnable it with the `customScrollbar` prop:\n\n```html\n<RecycleScroller\n  :items=\"items\"\n  :item-size=\"50\"\n  custom-scrollbar\n>\n  <template #default=\"{ item }\">\n    <div>{{ item.name }}</div>\n  </template>\n</RecycleScroller>\n```\n\nCustomize appearance with `scrollbarOptions`:\n\n```html\n<RecycleScroller\n  :items=\"items\"\n  :item-size=\"50\"\n  custom-scrollbar\n  :scrollbar-options=\"{\n    width: 14,\n    thumbColor: 'rgba(100, 100, 100, 0.6)',\n    trackColor: 'rgba(0, 0, 0, 0.05)',\n    thumbBorderRadius: '8px',\n    autoHideDelay: 2000,\n  }\"\n>\n```\n\n#### How it works\n\n- The container keeps `overflow: auto` -- native scrolling (wheel, trackpad, touch, keyboard) still works\n- The native scrollbar is hidden with CSS (`scrollbar-width: none`)\n- A custom track/thumb overlay is rendered on top, positioned absolutely\n- Thumb size and position are computed from `totalSize`, `scrollTop`, and `clientHeight`\n- The thumb can be dragged or the track clicked to scroll\n- Auto-hides after inactivity (configurable)\n\n#### ScrollbarOptions\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `width` | `number` | `12` | Track width in pixels |\n| `minThumbSize` | `number` | `30` | Minimum thumb height in pixels |\n| `autoHide` | `boolean` | `true` | Auto-hide scrollbar when not scrolling |\n| `autoHideDelay` | `number` | `1000` | Milliseconds before auto-hiding |\n| `thumbColor` | `string` | `'rgba(0, 0, 0, 0.4)'` | CSS color for the thumb |\n| `trackColor` | `string` | `'transparent'` | CSS color for the track |\n| `thumbBorderRadius` | `string` | `'6px'` | CSS border-radius for the thumb |\n\n#### Notes\n\n- Works with RecycleScroller, DynamicScroller, and GridScroller (they all wrap RecycleScroller)\n- Automatically disabled in [page mode](#page-mode) since the scroll container is the parent/window\n- Supports both vertical and horizontal scrolling\n- The `useCustomScrollbar` composable is also exported for advanced use cases\n\n---\n\n## DynamicScroller\n\nThis works just like the RecycleScroller, but it can render items with unknown sizes!\n\n### Basic usage\n\n```html\n<template>\n  <DynamicScroller\n    :items=\"items\"\n    :min-item-size=\"54\"\n    class=\"scroller\"\n  >\n    <template v-slot=\"{ item, index, active }\">\n      <DynamicScrollerItem\n        :item=\"item\"\n        :active=\"active\"\n        :size-dependencies=\"[\n          item.message,\n        ]\"\n        :data-index=\"index\"\n      >\n        <div class=\"avatar\">\n          <img\n            :src=\"item.avatar\"\n            :key=\"item.avatar\"\n            alt=\"avatar\"\n            class=\"image\"\n          >\n        </div>\n        <div class=\"text\">{{ item.message }}</div>\n      </DynamicScrollerItem>\n    </template>\n  </DynamicScroller>\n</template>\n\n<script setup lang=\"ts\">\ninterface Props {\n  items: Array<{ id: string; avatar: string; message: string }>\n}\n\ndefineProps<Props>()\n</script>\n\n<style scoped>\n.scroller {\n  height: 100%;\n}\n</style>\n```\n\n### Important notes\n\n- `minItemSize` is required for the initial render of items.\n- `DynamicScroller` won't detect size changes on its own, but you can put values that can affect the item size with `size-dependencies` on [DynamicScrollerItem](#dynamicscrolleritem).\n- You don't need to have a `size` field on the items.\n\n### Props\n\nExtends all the RecycleScroller props.\n\n- It's not recommended to change `sizeField` prop since all the size management is done internally.\n\n### Events\n\nExtends all the RecycleScroller events.\n\n### Default scoped slot props\n\nExtends all the RecycleScroller scoped slot props.\n\n### Other slots\n\nExtends all the RecycleScroller other slots.\n\n### Methods (via template ref)\n\nExtends all RecycleScroller methods, plus:\n\n- `updateItemSize(key, size)`: manually set the cached size for an item.\n- `getItemSize(key)`: get the cached size for an item.\n- `removeItemSize(key)`: remove the cached size for an item.\n- `resetSizes()`: clear all cached item sizes (also called by `reset()`).\n- `invalidateItem(key)`: imperatively remeasure a specific item by key. Waits for `nextTick` before measuring so DOM changes have time to settle.\n\n## DynamicScrollerItem\n\nThe component that should wrap all the items in a DynamicScroller.\n\n### Props\n\n- `item` (required): the item rendered in the scroller.\n- `active` (required): is the holding view active in RecycleScroller. Will prevent unnecessary size recomputation.\n- `sizeDependencies`: values that can affect the size of the item. This prop will be watched and if one value changes, the size will be recomputed. Recommended instead of `watchData`.\n- `watchData` (default: `false`): deeply watch `item` for changes to re-calculate the size (not recommended, can impact performance).\n- `tag` (default: `'div'`): element used to render the component.\n- `emitResize` (default: `false`): emit the `resize` event each time the size is recomputed (can impact performance).\n- `minItemSize`: minimum size hint for initial render before the actual size is measured.\n- `dataIndex`: the item's index in the list. Used internally for size tracking.\n\n### Events\n\n- `resize`: emitted each time the size is recomputed, only if `emitResize` prop is `true`.\n\n### Scoped slot props\n\nDynamicScrollerItem exposes a scoped slot with a `triggerResize` function. Call it to imperatively remeasure the item (e.g. after an image loads or async content renders):\n\n```html\n<DynamicScrollerItem :item=\"item\" :active=\"active\" :data-index=\"index\">\n  <template #default=\"{ triggerResize }\">\n    <img :src=\"item.avatar\" @load=\"triggerResize\" />\n    <div>{{ item.message }}</div>\n  </template>\n</DynamicScrollerItem>\n```\n\n`triggerResize` waits for `nextTick` before measuring so DOM changes have time to settle.\n\n### useDynamicScrollerItem composable\n\nFor deeply nested components inside a DynamicScrollerItem that need to trigger a remeasure without prop drilling, use the `useDynamicScrollerItem` composable:\n\n```vue\n<script setup lang=\"ts\">\nimport { useDynamicScrollerItem } from 'vue-zscroller'\n\nconst { triggerResize } = useDynamicScrollerItem()\n\nfunction onContentReady() {\n  triggerResize()\n}\n</script>\n```\n\nMust be called within a component that is a descendant of DynamicScrollerItem. Falls back to a no-op with a warning if called outside one.\n\n## GridScroller\n\nA responsive grid that wraps RecycleScroller. Give it `itemWidth` and `itemHeight` and it calculates how many columns fit, recalculating automatically when the container resizes.\n\n### Basic usage\n\n```html\n<template>\n  <GridScroller\n    class=\"grid\"\n    :items=\"items\"\n    :item-width=\"200\"\n    :item-height=\"200\"\n    :gap=\"12\"\n    key-field=\"id\"\n    v-slot=\"{ item, column, row, cellWidth, cellHeight }\"\n  >\n    <div class=\"card\" :style=\"{ width: cellWidth + 'px', height: cellHeight + 'px' }\">\n      {{ item.name }}\n    </div>\n  </GridScroller>\n</template>\n\n<style scoped>\n.grid {\n  height: 100%;\n}\n</style>\n```\n\n### Props\n\n- `items`: list of items to display.\n- `itemWidth` (required): base width of each item in pixels. Used to calculate column count.\n- `itemHeight` (required): base height of each item in pixels.\n- `columns` (default: `null`): force a specific column count. When set, `itemWidth` is only used for aspect ratio.\n- `minColumns` (default: `1`): minimum number of columns.\n- `maxColumns` (default: `Infinity`): maximum number of columns.\n- `gap` (default: `0`): shorthand for both `rowGap` and `columnGap`.\n- `rowGap` (default: `0`): gap between rows in pixels. Overrides `gap` for rows.\n- `columnGap` (default: `0`): gap between columns in pixels. Overrides `gap` for columns.\n- `keyField` (default: `'id'`): field used to identify items.\n- `filter`: optional function `(item) => boolean` to filter items before rendering.\n- Also accepts all RecycleScroller props: `direction`, `pageMode`, `prerender`, `buffer`, `emitUpdate`, `updateInterval`, `listClass`, `itemClass`, `listTag`, `itemTag`, `disableTransform`, `skipHover`, `startAtBottom`, `initialScrollPercent`.\n\n### Events\n\n- `columns-change`: emitted when the number of columns changes. Receives the new column count.\n- Also emits all RecycleScroller events: `resize`, `visible`, `hidden`, `update`, `scroll-start`, `scroll-end`.\n\n### Default scoped slot props\n\n- `item`: the item being rendered.\n- `index`: index in the items array.\n- `active`: whether the view is active.\n- `column`: column index (0-based) of this item in the grid.\n- `row`: row index (0-based) of this item in the grid.\n- `cellWidth`: computed width of each cell in pixels.\n- `cellHeight`: computed height of each cell in pixels.\n\n### Other slots\n\n- `before`: content before the grid.\n- `after`: content after the grid.\n- `empty`: content when items list is empty.\n- `loading`: content shown while the container is being measured (before the grid renders).\n\n### Methods (via template ref)\n\n- `scrollToItem(index)`: scroll to item at the given index.\n- `scrollToPosition(position)`: scroll to a pixel position.\n- `scrollToBottom()`: scroll to the bottom.\n- `scrollToPercent(percent)`: scroll to a percentage position (0 to 1).\n- `scrollToCell(row, col)`: scroll to a specific grid cell.\n- `updateVisibleItems()`: force update of visible items.\n\n## useIdState\n\nThe `useIdState` composable replaces the legacy `IdState` mixin for managing per-item local state in reused components inside a RecycleScroller.\n\n### Why is this useful?\n\nSince the components in RecycleScroller are reused, you can't directly use Vue's reactive `ref` or `reactive` state per-item: otherwise the state will be shared with different items in the list!\n\n`useIdState` provides a state object that is scoped to each item by its identifier. When the component is reused for a different item, the state automatically switches to that item's stored state.\n\n### Example\n\nIn this example, we use the `id` of the `item` to have a \"scoped\" state per item:\n\n```vue\n<template>\n  <div class=\"question\">\n    <p>{{ item.question }}</p>\n    <button @click=\"idState.replyOpen = !idState.replyOpen\">Reply</button>\n    <textarea\n      v-if=\"idState.replyOpen\"\n      v-model=\"idState.replyText\"\n      placeholder=\"Type your reply\"\n    />\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { getCurrentInstance } from 'vue'\nimport { useIdState } from 'vue-zscroller'\n\ninterface Props {\n  item: { id: number; question: string }\n}\n\nconst props = defineProps<Props>()\n\ninterface ReplyState {\n  replyOpen: boolean\n  replyText: string\n}\n\nconst { idState, setup } = useIdState<ReplyState>({\n  idProp: vm => vm.item.id,\n  initialState: () => ({\n    replyOpen: false,\n    replyText: '',\n  }),\n})\n\nsetup(getCurrentInstance()?.proxy)\n</script>\n```\n\n### Options\n\n- `idProp` (default: `vm => vm.item.id`): field name on the component instance (for example: `'id'`) or function returning the id from the component proxy.\n- `initialState`: factory function returning the default state for a new item.\n\n---\n\n## Migrating from vue-virtual-scroller\n\n### Breaking changes\n\n1. **Package name**: Import from `vue-zscroller` instead of `vue-virtual-scroller`\n2. **@vueuse/core** is now a peer dependency\n3. **IdState mixin removed**: Use the `useIdState` composable instead (see [useIdState](#useidstate))\n4. **`update` event signature changed**: Emits a single `UpdateEvent` object instead of 4 positional arguments\n\n### What stays the same\n\nAll component props, events, and slots are the same. Drop-in replacement aside from the import path and the two breaking changes above.\n\n### New stuff\n\n- `empty-item` slot for skeleton/loading placeholders\n- New props: `disableTransform`, `skipHover`, `startAtBottom`, `initialScrollPercent`, `customScrollbar`, `scrollbarOptions`\n- New methods: `scrollToPercent(percent)`, `reset()`\n- `useVirtualScrollPerformance` composable for scroll metrics\n\n#### Code Examples\n\n**Before (vue-virtual-scroller):**\n```vue\n<template>\n  <RecycleScroller\n    ref=\"scroller\"\n    :items=\"items\"\n    :item-size=\"50\"\n    key-field=\"id\"\n  >\n    <template #default=\"{ item }\">\n      <div>{{ item.name }}</div>\n    </template>\n  </RecycleScroller>\n</template>\n\n<script>\nexport default {\n  data() {\n    return {\n      items: []\n    }\n  }\n}\n</script>\n```\n\n**After (vue-zscroller with TypeScript):**\n```vue\n<template>\n  <RecycleScroller\n    ref=\"scrollerRef\"\n    :items=\"items\"\n    :item-size=\"50\"\n    key-field=\"id\"\n  >\n    <template #default=\"{ item }\">\n      <div>{{ item.name }}</div>\n    </template>\n  </RecycleScroller>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue'\nimport { RecycleScroller } from 'vue-zscroller'\n\ninterface Item {\n  id: string\n  name: string\n}\n\nconst items = ref<Item[]>([])\nconst scrollerRef = ref<InstanceType<typeof RecycleScroller>>()\n</script>\n```\n\n---\n\n## Demo Examples\n\nThe [live demo](https://zachhandley.github.io/vue-zscroller/) includes several examples you can reference:\n\n- **RecycleScroller** -- basic virtual list with fixed-size items\n- **DynamicScroller** -- variable-height items that get measured on render\n- **Chat** -- chat UI using DynamicScroller with `stickToBottom`, streaming messages, and the `filter` prop for live search\n- **Test Chat** -- simpler chat example for testing `stickToBottom` behavior\n- **Horizontal** -- horizontal scrolling mode\n- **Grid** -- grid layout using RecycleScroller's `gridItems` prop\n- **GridScroller** -- responsive grid using the GridScroller component\n- **Skeleton** -- progressive loading with skeleton placeholders\n- **Simple List** -- minimal RecycleScroller setup\n\nSource code for all demos is in [`packages/demo/src/components/`](https://github.com/ZachHandley/vue-zscroller/tree/main/packages/demo/src/components).\n\n---\n\n## Links\n\n- **Demo**: [zachhandley.github.io/vue-zscroller](https://zachhandley.github.io/vue-zscroller/)\n- **GitHub**: [github.com/ZachHandley/vue-zscroller](https://github.com/ZachHandley/vue-zscroller)\n- **npm**: [npmjs.com/package/vue-zscroller](https://www.npmjs.com/package/vue-zscroller)\n- **Original project**: [github.com/Akryum/vue-virtual-scroller](https://github.com/Akryum/vue-virtual-scroller)\n\n## License\n\n[MIT](http://opensource.org/licenses/MIT)\n","readmeFilename":"README.md"}