{"_id":"@usefy/use-intersection-observer","_rev":"52-92ce130268bd7df4d9626f33e93b5faa","name":"@usefy/use-intersection-observer","dist-tags":{"latest":"1.1.0"},"versions":{"0.0.1":{"name":"@usefy/use-intersection-observer","version":"0.0.1","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.0.1","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"ed27aa40327768fff6231d6af161385853180056","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.0.1.tgz","fileCount":8,"integrity":"sha512-tLnk4DK4pC6YNAvFOZ3l94JEKpLJBnSZPzZ9LT2hqkW1gazweMC+Ox+tb5L5jZ7tlSZOKAFBRyqfEa3sbVh8tA==","signatures":[{"sig":"MEUCIQClqjEsylfQSmZZuturNCiIRqr61b82luO7KZOWndAuSQIgS8y1iNhbGaGJQnoX5Kl3CL85bk58ZAVh6YJMBhLOH10=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84280},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.0.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/15122d7a13c2d5257eb4190e8bfe4340/usefy-use-intersection-observer-0.0.1.tgz","_integrity":"sha512-tLnk4DK4pC6YNAvFOZ3l94JEKpLJBnSZPzZ9LT2hqkW1gazweMC+Ox+tb5L5jZ7tlSZOKAFBRyqfEa3sbVh8tA==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API with enterprise-grade features","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.0.1_1767607044384_0.755410418234556","host":"s3://npm-registry-packages-npm-production"}},"0.0.29":{"name":"@usefy/use-intersection-observer","version":"0.0.29","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.0.29","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"503516377b6f3b75d536bc26c12e4f2a04c0f023","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.0.29.tgz","fileCount":8,"integrity":"sha512-vJhmaG1Fafb7rPQJjw6nhAmJMRlnaDB/el9x7mVuuBkHKZamBtoyYPLAZ4PAQnCmbYsIXOzOR+2XSMJ7qDiCRQ==","signatures":[{"sig":"MEQCIFEqqRnkKTwMfF5+rtFVWFOunLrzxNPnpK4ydn91utzxAiBLbzxdNyncHQmOeFXm8T0GPHy0AMRQMaiV1DGAsi/v+A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85918},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.0.29.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/10a6a9a32804dd3fa3a4b5d7f1ddbe90/usefy-use-intersection-observer-0.0.29.tgz","_integrity":"sha512-vJhmaG1Fafb7rPQJjw6nhAmJMRlnaDB/el9x7mVuuBkHKZamBtoyYPLAZ4PAQnCmbYsIXOzOR+2XSMJ7qDiCRQ==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API with enterprise-grade features","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.0.29_1767608061856_0.9049240289587268","host":"s3://npm-registry-packages-npm-production"}},"0.0.30":{"name":"@usefy/use-intersection-observer","version":"0.0.30","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.0.30","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"81aef9c523f0ba2603f5f366249834f54cff958d","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.0.30.tgz","fileCount":8,"integrity":"sha512-9qljlbRhF56PuyfgtBNFauoRhM6DSiuwSDH67f+KnSCPehv7131Zd8sJgKvtUrO0GzG8KAUHU21oHWBHKg/TRw==","signatures":[{"sig":"MEQCIBFgQfPwl+relUzRkojhjKYLeq1wZYaESzqK2LH1dHG4AiAplVf5sMvBCHYXfVhZzrl9fvhUiyLVz4N2IaZ45FRX/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85918},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.0.30.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/92412c871c49c16c4e9ac7c7762ff295/usefy-use-intersection-observer-0.0.30.tgz","_integrity":"sha512-9qljlbRhF56PuyfgtBNFauoRhM6DSiuwSDH67f+KnSCPehv7131Zd8sJgKvtUrO0GzG8KAUHU21oHWBHKg/TRw==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API with enterprise-grade features","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.0.30_1767608703762_0.2954506305261344","host":"s3://npm-registry-packages-npm-production"}},"0.0.31":{"name":"@usefy/use-intersection-observer","version":"0.0.31","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.0.31","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"12f9e871109b65ad79e72957e2e349520a0896f3","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.0.31.tgz","fileCount":8,"integrity":"sha512-Egd2yrMFkRk4Pl92QvMqxCXcluhAZXZvZ6ou0tto9FtfhjHtobdgU/GByu8eSD0RVLXuwWJwnwvsU5MU8d9Edg==","signatures":[{"sig":"MEQCICsl+284wymjDyuIrvVxDeZYzfA0MT4gNgXSqmbHT2PCAiAKQi/I4V6lcMXDOtc8efNn6wWqiO0USw+GzLFus9F4Mg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85918},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.0.31.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/33950ca781d42ede77d1d24672d43e9a/usefy-use-intersection-observer-0.0.31.tgz","_integrity":"sha512-Egd2yrMFkRk4Pl92QvMqxCXcluhAZXZvZ6ou0tto9FtfhjHtobdgU/GByu8eSD0RVLXuwWJwnwvsU5MU8d9Edg==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API with enterprise-grade features","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.0.31_1767625526758_0.7812291987053428","host":"s3://npm-registry-packages-npm-production"}},"0.0.32":{"name":"@usefy/use-intersection-observer","version":"0.0.32","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.0.32","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"0635de84c25948fe5609dd9f0bc794a2f6bdec59","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.0.32.tgz","fileCount":8,"integrity":"sha512-hMoxBxXt2KgnkeODWHyPMtI/YsqDE07UyIil9iZ49wesAR01y9U1KYh3i3JGNXxfmFeUnHJDZCN3DiOBpzgLWw==","signatures":[{"sig":"MEUCIDZW+da4hRNaMPHCNjxFliUdmad3xLnCm7LLtsJmGMhkAiEAvoFnX3Nx+iprFomUGT83cCTIUCAncpw/3VGMMo8x+E0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85918},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.0.32.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/73e6fbf5683886278f62558843e5bbc2/usefy-use-intersection-observer-0.0.32.tgz","_integrity":"sha512-hMoxBxXt2KgnkeODWHyPMtI/YsqDE07UyIil9iZ49wesAR01y9U1KYh3i3JGNXxfmFeUnHJDZCN3DiOBpzgLWw==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API with enterprise-grade features","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.0.32_1767879888176_0.950412668460586","host":"s3://npm-registry-packages-npm-production"}},"0.0.33":{"name":"@usefy/use-intersection-observer","version":"0.0.33","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.0.33","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"52e06086b3a25c99988f81aafbe59e7772b70311","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.0.33.tgz","fileCount":8,"integrity":"sha512-/5zd2uVFi9YYzazoxxXdryLv6T9n87iE+TlEfnDdoy0zRm0AkSOAl9szHMo5d+/qw8qvF2VVHnd04QpDYfXNqQ==","signatures":[{"sig":"MEUCIG6XqzgoYZOMEG2/+r1s6pHH7uj9nsJ9wqahbAdtpd6aAiEAoosxxdVZ593DrDDeP1FbGId4fFi5dAhww54muOQOI/8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85918},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.0.33.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/321ee5355983631eac9ef746e7ddb0f6/usefy-use-intersection-observer-0.0.33.tgz","_integrity":"sha512-/5zd2uVFi9YYzazoxxXdryLv6T9n87iE+TlEfnDdoy0zRm0AkSOAl9szHMo5d+/qw8qvF2VVHnd04QpDYfXNqQ==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API with enterprise-grade features","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.0.33_1767881756183_0.7856145812885822","host":"s3://npm-registry-packages-npm-production"}},"0.0.34":{"name":"@usefy/use-intersection-observer","version":"0.0.34","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.0.34","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"8c7c1401906a9057ca3a4ace3357dd57e69fa8ca","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.0.34.tgz","fileCount":8,"integrity":"sha512-cmvEKzkbrldhnRm0ShI1Am5uPuiNtXm/eycLXfDdKFSd5e5IcWflmiOMGmhK2P45mnZGB8JJmOE5Ovze9ghE5g==","signatures":[{"sig":"MEQCIC2D65VvzEDCmkB2njHDKmZl7fYm9MisWaAHrQzQYbtpAiAyF9eTNMnle4LJFSQF1FseheEZjWC0kst9nDdGd3MHsg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85918},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.0.34.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/87faee0597a0e11d49778426f1358b47/usefy-use-intersection-observer-0.0.34.tgz","_integrity":"sha512-cmvEKzkbrldhnRm0ShI1Am5uPuiNtXm/eycLXfDdKFSd5e5IcWflmiOMGmhK2P45mnZGB8JJmOE5Ovze9ghE5g==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API with enterprise-grade features","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.0.34_1767885006377_0.04937210074997145","host":"s3://npm-registry-packages-npm-production"}},"0.0.35":{"name":"@usefy/use-intersection-observer","version":"0.0.35","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.0.35","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"b154369adc4952305846f2eed9e12da6d8ce0ca5","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.0.35.tgz","fileCount":8,"integrity":"sha512-aYoVU1rVpgXhF5OUyJ2GcbkMxKJ645jMdoUSpg2qgEKwO1L8lxXmXxPeEpWAmLvraX+BigfM8tLQy3K3g9I0+w==","signatures":[{"sig":"MEYCIQCd1olx+EBEF1FDSY9ELk9hD01kRgpyaJZNrqPAbTI9PwIhAMQOPyTMsg157a979ATxn6YNJMWMem3bizxtpr+FTGRv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85918},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.0.35.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/d555134a0dd53f5f550f3e5689eb979d/usefy-use-intersection-observer-0.0.35.tgz","_integrity":"sha512-aYoVU1rVpgXhF5OUyJ2GcbkMxKJ645jMdoUSpg2qgEKwO1L8lxXmXxPeEpWAmLvraX+BigfM8tLQy3K3g9I0+w==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API with enterprise-grade features","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.0.35_1767885186718_0.30770699324450423","host":"s3://npm-registry-packages-npm-production"}},"0.0.36":{"name":"@usefy/use-intersection-observer","version":"0.0.36","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.0.36","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"426a5d547734174cffeaa50b47ddbc02b2c7a315","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.0.36.tgz","fileCount":8,"integrity":"sha512-mB8gxLt9fP9G2mecB3rvd3APox8N+2O6lvXWClscutV8xIDMXjZmkAiPWdpzmI3XQ9H9gSGerJUv2jGHgw1gtg==","signatures":[{"sig":"MEUCIQCFR4qSNE+jbZ4hqMEAjv1huS+D4Fi+14iMNxO00UgK6wIgDQL9Ivu27RihLbEF1wAfaVdaPpTzQn+ZP4uP/L/2gus=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85918},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.0.36.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/70b2e20b341e4c3742eaaed617a5c594/usefy-use-intersection-observer-0.0.36.tgz","_integrity":"sha512-mB8gxLt9fP9G2mecB3rvd3APox8N+2O6lvXWClscutV8xIDMXjZmkAiPWdpzmI3XQ9H9gSGerJUv2jGHgw1gtg==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API with enterprise-grade features","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.0.36_1767919967959_0.7685323800575137","host":"s3://npm-registry-packages-npm-production"}},"0.0.37":{"name":"@usefy/use-intersection-observer","version":"0.0.37","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.0.37","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"a8b6cf01a6417b4706432408e863e8d52b8802d7","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.0.37.tgz","fileCount":8,"integrity":"sha512-6yKKNN2NlPdgeg6pX44enkLwXgRe94EweSVA6avpaDtUuNbNAZtnBm2b8jzF+q9EGqCd6A5SkoyBVlToH7Q6OA==","signatures":[{"sig":"MEUCIQC8BJfDy5IlTOc1b1HCJMQDFvUrMfsr8aAwWctI/TtO5QIgA0cdrpeqTDBveXgkc8Qv+FHcksjlHmRVy/woHdf0DKE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85918},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.0.37.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/0b611e4338809294b5654f39fcc864b0/usefy-use-intersection-observer-0.0.37.tgz","_integrity":"sha512-6yKKNN2NlPdgeg6pX44enkLwXgRe94EweSVA6avpaDtUuNbNAZtnBm2b8jzF+q9EGqCd6A5SkoyBVlToH7Q6OA==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API with enterprise-grade features","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.0.37_1767920515953_0.7213546403681006","host":"s3://npm-registry-packages-npm-production"}},"0.0.38":{"name":"@usefy/use-intersection-observer","version":"0.0.38","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.0.38","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"bc15f2ec3b6be291732d399e7949e9cd5a1c86bf","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.0.38.tgz","fileCount":8,"integrity":"sha512-DDIzkkOoOG+ra8PJll3YRSpvAoIcHQY+/sn64CsruLLGvuXOmkxD/FJqzVZCUTjIzNs3+nlp9uOYnqlrDkAzfg==","signatures":[{"sig":"MEUCIAgKU/yfbMDmXiq4rCjdBIGQfZqesKq6WEw5W/rC4ryjAiEA2pGUmhuglJoCkfg0gcdMEsy+N9zfmnJmaz+ZN28joFg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85918},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.0.38.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/6ed94df6b5e1f97dcff95b40a287ffb6/usefy-use-intersection-observer-0.0.38.tgz","_integrity":"sha512-DDIzkkOoOG+ra8PJll3YRSpvAoIcHQY+/sn64CsruLLGvuXOmkxD/FJqzVZCUTjIzNs3+nlp9uOYnqlrDkAzfg==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API with enterprise-grade features","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.0.38_1767922645859_0.37245640447436634","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@usefy/use-intersection-observer","version":"0.1.1","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.1.1","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"b42d3b3ae2f619ac738c9e0f982616e204029be2","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.1.1.tgz","fileCount":8,"integrity":"sha512-knuqhQWZEdWXqdssWgzQHhfFntWIvvoQF3OsqGEpYjU5iwlxKJ+9q80TKaaDOwkP0uPcyteUTCSTt9eiyLDUhA==","signatures":[{"sig":"MEYCIQDqrgJwMXxKhl5Ylrh57MuGywvp4AZ7UIMzZoMUwtrk3gIhAPDDdcaKWdjcx1KE8yaZbqWINxX5eSJP7RR8wVA0LURO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85886},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.1.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/17d6ae1c022dacfc3461fca10fc2c883/usefy-use-intersection-observer-0.1.1.tgz","_integrity":"sha512-knuqhQWZEdWXqdssWgzQHhfFntWIvvoQF3OsqGEpYjU5iwlxKJ+9q80TKaaDOwkP0uPcyteUTCSTt9eiyLDUhA==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.1.1_1768128889797_0.3818600969474779","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@usefy/use-intersection-observer","version":"0.1.2","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.1.2","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"0ea464c6b4812812ed434e11da6b1c19e767a315","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.1.2.tgz","fileCount":8,"integrity":"sha512-VX/Z8vXRldJF18No5m1gdvIf2pOD0sWCQpaCga964MmDjfutpBoSd6U+Py/OVMRolZKAzZsHeqs4A1Z8wK6img==","signatures":[{"sig":"MEYCIQCFSWbtrBdjS6BVkouhXNgGSJ8FxqFaD2n4u+014c/8gQIhAKq21+85UOIc+A2v1YfZ2J9rgY7k8jBPMIvN1MocRMTh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85886},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.1.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/afff65a147827fc00a2d5f3d9647a082/usefy-use-intersection-observer-0.1.2.tgz","_integrity":"sha512-VX/Z8vXRldJF18No5m1gdvIf2pOD0sWCQpaCga964MmDjfutpBoSd6U+Py/OVMRolZKAzZsHeqs4A1Z8wK6img==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.1.2_1768130081375_0.36274495956630526","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@usefy/use-intersection-observer","version":"0.1.3","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.1.3","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"e032c0341a3c014faa3ed5c687bf16a995c1dec7","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.1.3.tgz","fileCount":8,"integrity":"sha512-OFqm3ABzCaPQI2YrOUC0mL0AIPz1P235AvtJpx3UzZS0Ifq++IxnrdRLUJQadWiP4Owo7I5LJadr/p2Fi8Usgg==","signatures":[{"sig":"MEUCIQCazggIlmtnySe185ztWRYrNKaVAD04PYWipSqMTMVvrgIgHwEKrXpJ8HtyTrvTJDPh59UfueVe7iG7nu289l7d8e0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85886},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.1.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/1e20ca31003bade9ae842d4b041bf3e6/usefy-use-intersection-observer-0.1.3.tgz","_integrity":"sha512-OFqm3ABzCaPQI2YrOUC0mL0AIPz1P235AvtJpx3UzZS0Ifq++IxnrdRLUJQadWiP4Owo7I5LJadr/p2Fi8Usgg==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.1.3_1768140813995_0.14447656491386995","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@usefy/use-intersection-observer","version":"0.1.4","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.1.4","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"fe2c2afde5b748b73f668ccd010cc37dc821ff6b","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.1.4.tgz","fileCount":8,"integrity":"sha512-5jbIeQl2npPGMXv+RoV1HxsN2WIr4DupqLb1xKJo438l4G01+1XosGofEP3Jh18wrlHHAKNLvjHNlthuW20Ofg==","signatures":[{"sig":"MEUCIEnR45HX+OO4aUXUkE4SDSm4zr3+vqJaI/SS30CGDBTqAiEA1ppGqzH1RYzzqUCeshu3yUXGfwtsbta4XJYTUjOJK6o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85886},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.1.4.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/ffbca12d5320c5f9b8008350e58e997e/usefy-use-intersection-observer-0.1.4.tgz","_integrity":"sha512-5jbIeQl2npPGMXv+RoV1HxsN2WIr4DupqLb1xKJo438l4G01+1XosGofEP3Jh18wrlHHAKNLvjHNlthuW20Ofg==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.1.4_1768141443326_0.3871735114257584","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@usefy/use-intersection-observer","version":"0.1.5","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.1.5","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"2cff6c88f54c5598d412ad3bd0314cb5ab7b30ac","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.1.5.tgz","fileCount":8,"integrity":"sha512-68Shi/RuVR/+z3KJS62/AYToTKYJwRHo3sYrQLKl8Nr0Uq+g517EaQ0BpNRdOvrQpOhcdTz21BJWPp1PAmXfiQ==","signatures":[{"sig":"MEUCIDwSfH0Ehu9vQSosiqSwoqM9D6PZChHlhoG9Nn/3MQA3AiEAgOjhQ7tJ/ddWyZb0SNySAO1/XZdlT41AXUAInCeAxFI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85886},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.1.5.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/ebb52b6e7565e1baae465b63d7f82da2/usefy-use-intersection-observer-0.1.5.tgz","_integrity":"sha512-68Shi/RuVR/+z3KJS62/AYToTKYJwRHo3sYrQLKl8Nr0Uq+g517EaQ0BpNRdOvrQpOhcdTz21BJWPp1PAmXfiQ==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.1.5_1768181486909_0.17610167505647167","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@usefy/use-intersection-observer","version":"0.2.0","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.2.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"098e4af8f5a577cec8e15c9672a44ff25f02bbb7","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.2.0.tgz","fileCount":8,"integrity":"sha512-ohFGNQZ61Vsxc1MCCLUCzJN0DmxcM3RYaOXZoXIpD4Qelgf0jGXeDExuQ5s+adVFizJocdDiiBo2fflN2h+3QQ==","signatures":[{"sig":"MEUCIDHTZ1IDu9Fn4cTdDUTYmBFeLQXAZyBfY6XGtz01DtVVAiEAzn7H/8UDN1BiX5QbaETwPxEzpDkc8r5TNPTWmIoidko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85886},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/29648c560e6c141c65955e001cdd1092/usefy-use-intersection-observer-0.2.0.tgz","_integrity":"sha512-ohFGNQZ61Vsxc1MCCLUCzJN0DmxcM3RYaOXZoXIpD4Qelgf0jGXeDExuQ5s+adVFizJocdDiiBo2fflN2h+3QQ==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.2.0_1768184684762_0.4479265632986167","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@usefy/use-intersection-observer","version":"0.2.1","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.2.1","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"ffc0be32c13d0a8d8a493fa3d288df003889df3f","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.2.1.tgz","fileCount":8,"integrity":"sha512-nNMfwo1JUKB8DXKlBzFSGoNU//u5LIBrfx9BECr1HphSZZfyefaqyQKZvDQfSjR/rcpdsVgk4kfukeEti5SXFA==","signatures":[{"sig":"MEUCIAlX+hwRLAO/88JUCuwEY1OoUCmZG2TaXWBaRUhApgpWAiEAxS9PWTEZh5RPhmzGoCPnY3QSUoei1RQBf9lm8WAAKbg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85886},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.2.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/6f663b61aab300d0c4b7278e64fd2523/usefy-use-intersection-observer-0.2.1.tgz","_integrity":"sha512-nNMfwo1JUKB8DXKlBzFSGoNU//u5LIBrfx9BECr1HphSZZfyefaqyQKZvDQfSjR/rcpdsVgk4kfukeEti5SXFA==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.2.1_1768200188994_0.9310370508659631","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@usefy/use-intersection-observer","version":"0.2.2","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.2.2","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"33c93ded24a14fa514742538070c13efd2fa66e6","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.2.2.tgz","fileCount":8,"integrity":"sha512-6zQfxnCRoDZNg5occMw4THsRmdSsEd5r8t84qZSUalHY7NDdudCNxCllbsu3xq42UEuhWfIYfwjjdsnSerAxGw==","signatures":[{"sig":"MEYCIQDNbnRyMifwXg3e++ZvUbKfPE3Ll0nCkc/koDF4Cz6+HQIhANSrFSZetadDkTOLnwy4d+nldjVE5+rw3GrD8BEz2gIf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85886},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.2.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/0e5e648ec19a9969c6f6d3a6d424fd2a/usefy-use-intersection-observer-0.2.2.tgz","_integrity":"sha512-6zQfxnCRoDZNg5occMw4THsRmdSsEd5r8t84qZSUalHY7NDdudCNxCllbsu3xq42UEuhWfIYfwjjdsnSerAxGw==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.2.2_1768204237857_0.009794514720562253","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@usefy/use-intersection-observer","version":"0.2.3","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.2.3","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"6475546f42e16afd622352a3d91b6d87536094c5","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.2.3.tgz","fileCount":8,"integrity":"sha512-hb1YevB+4fo1ebCSWciN9zuWjFXMvn4QPIU0K41Bxq+btj3B43GysJ0YgnmR7jLCtdFKW4nw8eOWZ16AfBoeGA==","signatures":[{"sig":"MEUCIAVUcXPye3cFG9HhoQ4KlLBkQo+kAMFkL86pZ8XBVH4QAiEAk5fIzXpHqjfxmyNIvxF7vI37VnXREggqtKmwUmUmepk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85886},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.2.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/e1af72d3cfbc9405c0a7625df674948f/usefy-use-intersection-observer-0.2.3.tgz","_integrity":"sha512-hb1YevB+4fo1ebCSWciN9zuWjFXMvn4QPIU0K41Bxq+btj3B43GysJ0YgnmR7jLCtdFKW4nw8eOWZ16AfBoeGA==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.2.3_1768224333485_0.2838807459730355","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@usefy/use-intersection-observer","version":"0.2.4","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.2.4","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"7193c617ebcfe3e9f2faca6d558d297aebf8d00f","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.2.4.tgz","fileCount":8,"integrity":"sha512-2J6fRW7S7mrEN3sloummo7I0T0id68ILxYuz4HIUfDqeb/Lwex5TJSFHK/jrd5fGs1KQ/5pozertVgPFD3Z/yg==","signatures":[{"sig":"MEUCIF4CHV3+livwiQDR98zhhNg6LuXBsB+A2N9VFg8JzWycAiEA9xInRpX2carzljs9ZYdkrK5tg2Z+DypbGf2t4eBebP4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85886},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.2.4.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/b3ee4a92c0a8a9e4a4594e8a728063cb/usefy-use-intersection-observer-0.2.4.tgz","_integrity":"sha512-2J6fRW7S7mrEN3sloummo7I0T0id68ILxYuz4HIUfDqeb/Lwex5TJSFHK/jrd5fGs1KQ/5pozertVgPFD3Z/yg==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.2.4_1768273653689_0.9625890928125291","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@usefy/use-intersection-observer","version":"0.2.5","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.2.5","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"514078083ba294d290feb88663d68d7fa40f8ede","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.2.5.tgz","fileCount":8,"integrity":"sha512-mXJLZ/dvqQgQJIksagjctcqnO+ftlOkSGUAVtjZIc6f9Lz8zLSGXxNYlPGsX6U+DTn3sZmgjfUud4bT13B/1aw==","signatures":[{"sig":"MEUCIH5PRoYvudTD28yQqKkEL0UWerBDznF3xPwje+D+N2oJAiEAso7UoWQ3pHuj7zcyoMGJ5A819xakkDneh/1zi0d7YSw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85886},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.2.5.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/57416b1475754f3457ade6bb203ce107/usefy-use-intersection-observer-0.2.5.tgz","_integrity":"sha512-mXJLZ/dvqQgQJIksagjctcqnO+ftlOkSGUAVtjZIc6f9Lz8zLSGXxNYlPGsX6U+DTn3sZmgjfUud4bT13B/1aw==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.2.5_1768972561261_0.465667656613882","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@usefy/use-intersection-observer","version":"0.2.6","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.2.6","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"6f9520410d6fa29273c3273005b673bd5e0a788a","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.2.6.tgz","fileCount":8,"integrity":"sha512-etuCI4FI4dL2jw6LjEDbaEUR7XGopqLx/2Iuya+JznZqoGpxD6mujunImPWeZQU6vT4LcHNFaBcjbx+HubSooQ==","signatures":[{"sig":"MEUCIQDLSGBicbP/ldjPbmZKNKqccwHzWgAYEFDEOMPf6h35fQIgSiicHaGcw8WArDy3GXAjP2N8VQLMZ1BA5R0AuJFm4SI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85886},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.2.6.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/5a76904214ce33b830439588b11f69c2/usefy-use-intersection-observer-0.2.6.tgz","_integrity":"sha512-etuCI4FI4dL2jw6LjEDbaEUR7XGopqLx/2Iuya+JznZqoGpxD6mujunImPWeZQU6vT4LcHNFaBcjbx+HubSooQ==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.2.6_1769681918721_0.2072607814336389","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@usefy/use-intersection-observer","version":"0.3.1","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.3.1","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"16e49571bf694350a84f535ce08b3fabf2e8f42f","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.3.1.tgz","fileCount":8,"integrity":"sha512-mE2FNimiNY7rgLUv7+knNyBDg8VdCKGfd+NW0B9mqpqMnPRVkl4YPFW7z+K6KQx1q5mUZqU+BLDf07n6REMRBg==","signatures":[{"sig":"MEQCICrebCy0Q4yFC8sZDkXsC4f130fkyVU78CirchpQMeFnAiBQ6I9WAd/6MYeETCOIRS37AGqyoNAM8UNGo0k75TvVfQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85886},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.3.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/d1a55ed6be498a13b0037fd5f393e890/usefy-use-intersection-observer-0.3.1.tgz","_integrity":"sha512-mE2FNimiNY7rgLUv7+knNyBDg8VdCKGfd+NW0B9mqpqMnPRVkl4YPFW7z+K6KQx1q5mUZqU+BLDf07n6REMRBg==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.3.1_1782887954628_0.6544413065167014","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@usefy/use-intersection-observer","version":"0.4.0","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.4.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"a3b9f0605f46a3d19778712d72f4e0cd470928ef","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.4.0.tgz","fileCount":8,"integrity":"sha512-J/mTN6NbjRnFGaTQTWy0Jak4CMpXJmWOZ4FJlewnqs/oKiEfCfmvM8NIg+whs4k8cagfMN/EZgSSZxvD2tDJOQ==","signatures":[{"sig":"MEUCIHf3FQhtVyjLD7dloq/iLnHT7SgEnHN0dGoVoR0ZP6sqAiEA4HOx1vZMlLPntVjglh9nq3lDJuNQQrkUZ2DhX1y2PRw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85886},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.4.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/2726d65cdad4b707a7c03a1e7db927e5/usefy-use-intersection-observer-0.4.0.tgz","_integrity":"sha512-J/mTN6NbjRnFGaTQTWy0Jak4CMpXJmWOZ4FJlewnqs/oKiEfCfmvM8NIg+whs4k8cagfMN/EZgSSZxvD2tDJOQ==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.4.0_1782891337176_0.9311254408459406","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@usefy/use-intersection-observer","version":"0.5.0","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.5.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"e12e1d8d3d86c4559d891e0145a0db78852b260e","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.5.0.tgz","fileCount":8,"integrity":"sha512-6Kikjnn+EAfeKvrVPXzcsB6OhayDDCs4tvy3ofhs4J7g+bYEdtx4gCrLQyq9LwM1k8IWw1yIQDuZ4s38Pqt4JA==","signatures":[{"sig":"MEUCIQDDi8hmyQbTNon7QSfbks1KtQZ+pGI9Zku4+Fkma64i0gIgU7G0I6JgIrCMMzYmeZTP6F9fWTEmYfGTDb7fvmG0OL4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85886},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.5.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/1ee35bae75bc054546a909c7c381ac63/usefy-use-intersection-observer-0.5.0.tgz","_integrity":"sha512-6Kikjnn+EAfeKvrVPXzcsB6OhayDDCs4tvy3ofhs4J7g+bYEdtx4gCrLQyq9LwM1k8IWw1yIQDuZ4s38Pqt4JA==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.5.0_1782895523211_0.36901862917367034","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@usefy/use-intersection-observer","version":"0.6.0","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.6.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"564f5112286e65444b3565e001321b6555696ddd","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.6.0.tgz","fileCount":8,"integrity":"sha512-YFEjUCKGRuVJrZJ4tXNwnK5V7YTSQ729awadyXgByXXSXiFUEF+pSbmcoxKu2FRPvhJ6yq8IW2s2t2kSXt78vA==","signatures":[{"sig":"MEQCIBlP+hp7LgKftMO60SDQTIO9uO3UC95IEMSbIxZYDHZyAiAfj1nlDmwmm0Yc8Hz6JDZawSsGzUlZcpnKhu0ZcsEjFA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85886},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.6.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/c6a2910e1afa36a7eee1547d00dd149c/usefy-use-intersection-observer-0.6.0.tgz","_integrity":"sha512-YFEjUCKGRuVJrZJ4tXNwnK5V7YTSQ729awadyXgByXXSXiFUEF+pSbmcoxKu2FRPvhJ6yq8IW2s2t2kSXt78vA==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.6.0_1782912662712_0.6170595995731174","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@usefy/use-intersection-observer","version":"0.7.0","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.7.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"553acae3d93fffd76f89a2433d154bfdfa0cb39b","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.7.0.tgz","fileCount":8,"integrity":"sha512-nLtUfg8p/43xWRFtI8yEUyAzrnmEZKV2J0rtSk8WD7M35tpsow3gFkuCSjpA8jLPexMmEnTKZK5e6Xat7g/tDw==","signatures":[{"sig":"MEUCIQCuCzLODOKauOV6B9Q5HwZsS9+jgkxrdpP2zNMRrRhl+wIgdHnXArbK7Rapbj62psjHmRZi+7C49tbHpt00v0rP/6o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85886},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.7.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/16de1f6875549f0d617a782dbc5fb843/usefy-use-intersection-observer-0.7.0.tgz","_integrity":"sha512-nLtUfg8p/43xWRFtI8yEUyAzrnmEZKV2J0rtSk8WD7M35tpsow3gFkuCSjpA8jLPexMmEnTKZK5e6Xat7g/tDw==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.7.0_1782957065006_0.40625873236506194","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@usefy/use-intersection-observer","version":"0.8.0","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.8.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"0a7512513e8b09835f7f0d4c6bc341d1a7b5a03c","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.8.0.tgz","fileCount":8,"integrity":"sha512-nofdUyz+gmM/eW74N16qstHL1ZhSiGUvM/RB+Ee0gJ43lPxQeWhP+v7MQyUvghq6N4tafqTEz7iUhAtEW0wTFQ==","signatures":[{"sig":"MEYCIQDwC6VEu4pYIi7MmQA8R8/hNO9KL/EA7fs0Vw1jMv5fxAIhAIG1B+CO5NJqBQNR6wOBzcbmi7Y3NaAIF7bbvhob4tJ+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85886},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.8.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/b7d0067210a9591271dd96ff049c4d0f/usefy-use-intersection-observer-0.8.0.tgz","_integrity":"sha512-nofdUyz+gmM/eW74N16qstHL1ZhSiGUvM/RB+Ee0gJ43lPxQeWhP+v7MQyUvghq6N4tafqTEz7iUhAtEW0wTFQ==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.8.0_1782972507371_0.519044621972736","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@usefy/use-intersection-observer","version":"0.9.0","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.9.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"d283d32c89db507fb5376563f9b649c259c74477","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.9.0.tgz","fileCount":8,"integrity":"sha512-g8d9FiJncWCywdE3jXT+y5OV+wahgitiWh6JAgczVc93QQN5GWOZ3Q1uxhSpim7xRynErDAKoucTdKhO2ImcwA==","signatures":[{"sig":"MEUCIQC5CBjihWkfcL0WlWUg77qbEbb3fNXg9unnxcK+fG9LbwIgVONipHmzXUYQarvMErXJ1xZldb/9NZlGN3u2+oYoQEg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85886},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.9.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/eb6f50aee9eefca44c230244db4b8006/usefy-use-intersection-observer-0.9.0.tgz","_integrity":"sha512-g8d9FiJncWCywdE3jXT+y5OV+wahgitiWh6JAgczVc93QQN5GWOZ3Q1uxhSpim7xRynErDAKoucTdKhO2ImcwA==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.9.0_1783043226641_0.5853735475548838","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@usefy/use-intersection-observer","version":"0.10.0","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.10.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"ece0e3cd82968d447888445f30a78423cabf2197","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.10.0.tgz","fileCount":8,"integrity":"sha512-4mOru40bnxLu2PdStbr65Am7YG1O9PXtWCRtS04s8aLeGCWjW8/qLX7hPZBQYoqTYSFt//+0Ychwrl9jIFCYtQ==","signatures":[{"sig":"MEYCIQCJqVwziDGwpv6UYSaAm5wG2MlMhtcUHwBu3Q5wJPzQIgIhAN1YWyuWeEpkIGcfLoSkEKQ3ySLczg/Ye51xQzgYP/eb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85887},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.10.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/61992fb19b9069705c4dcc6ce79eba5b/usefy-use-intersection-observer-0.10.0.tgz","_integrity":"sha512-4mOru40bnxLu2PdStbr65Am7YG1O9PXtWCRtS04s8aLeGCWjW8/qLX7hPZBQYoqTYSFt//+0Ychwrl9jIFCYtQ==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.10.0_1783048390806_0.014234177420235694","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@usefy/use-intersection-observer","version":"0.11.0","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.11.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"4578bd2a370a3cbc92d8fbfb8067db3181c117a2","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.11.0.tgz","fileCount":8,"integrity":"sha512-2dXYynmUUCK1f20M7Ahga9pFVoleKxoxxF+z6IDTlhVdqCF6evFs/UyNsumySo/QaH2WspklpJ6dUIkueqMSQw==","signatures":[{"sig":"MEUCIBEJB5n4sXRhJREEsdfYnQJPAJOEWklSLabVS9iOfFAdAiEAsWeOC16ZzRXUUzcWzhSYB6lCw9+SRbT+jJw1/IYPzQY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85887},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.11.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/5e636112b9bc0d91e419afc908ce7a63/usefy-use-intersection-observer-0.11.0.tgz","_integrity":"sha512-2dXYynmUUCK1f20M7Ahga9pFVoleKxoxxF+z6IDTlhVdqCF6evFs/UyNsumySo/QaH2WspklpJ6dUIkueqMSQw==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"10.8.2","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.11.0_1783057602893_0.13931048758149944","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@usefy/use-intersection-observer","version":"0.12.0","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.12.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"e127b4b32caa2de42811300a05bce85c94a0f3fb","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.12.0.tgz","fileCount":8,"integrity":"sha512-brUXyZPHVSQpUJu1NDj4R+Olx2txYxgM9+1kZBzGonsfjP3Vp6nvNYVLSA8owAh6efBMwtr1jTyioALVnk8bKQ==","signatures":[{"sig":"MEUCIQC8I+chkLIj9WqLuj3UVua7+8vOLQIKdcq8/O5Y8Hv+7QIgKF3Z/Jl43eoCo1Maicl6eWoNkUWVUrpW4y3rrKHbtlg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85887},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.12.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/55b969ce2a958e7d1768d8cb2555590d/usefy-use-intersection-observer-0.12.0.tgz","_integrity":"sha512-brUXyZPHVSQpUJu1NDj4R+Olx2txYxgM9+1kZBzGonsfjP3Vp6nvNYVLSA8owAh6efBMwtr1jTyioALVnk8bKQ==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"11.16.0","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.12.0_1783063839829_0.6882784093111196","host":"s3://npm-registry-packages-npm-production"}},"0.12.1":{"name":"@usefy/use-intersection-observer","version":"0.12.1","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.12.1","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"4e4c2e8e767a604894eedfe5075e7f2d22b57548","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.12.1.tgz","fileCount":8,"integrity":"sha512-pVCGkks+kge/fnvxpzUtDTfGUhDlZkliHOzTBHqXzN0xsTJcSkxNPeacvaKmyb9jC7W6tzHuBMLKqFiL47LJhg==","signatures":[{"sig":"MEUCIQCvfQOc0Sbfa/KhSz7G3rQcUAqm5FdrzK4dVxxNVuCN2wIgVBduI+2cuqYX8i7PL1uba93rBu89hE2HXdzgaADKLNE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85887},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.12.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/c193a36671f4b4e8ccf3f1aaa4da22d6/usefy-use-intersection-observer-0.12.1.tgz","_integrity":"sha512-pVCGkks+kge/fnvxpzUtDTfGUhDlZkliHOzTBHqXzN0xsTJcSkxNPeacvaKmyb9jC7W6tzHuBMLKqFiL47LJhg==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"11.16.0","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.12.1_1783065584111_0.6826348690762343","host":"s3://npm-registry-packages-npm-production"}},"0.12.2":{"name":"@usefy/use-intersection-observer","version":"0.12.2","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.12.2","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"83b768c63cea9e187fdd3807b189da0aa1a354a3","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.12.2.tgz","fileCount":8,"integrity":"sha512-GewVW/2NAoYilQDRiFz2OTih14WB/d85aR97ieSpPgyr5NDVTCb2vjMKjc5gSfa6kh2hewTbnlqfrOQr33OCZA==","signatures":[{"sig":"MEUCIQCCTpi1wA4VX6UgIiHDo1sByKhvrwTHHhGmVdatNfV4rgIgENbYPEHfvRiUeTZAizwkMBtSSo+EKoJ2xiKRLFUp6W0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85887},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.12.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/80c99f85251c9a518f209dcdc3814d7c/usefy-use-intersection-observer-0.12.2.tgz","_integrity":"sha512-GewVW/2NAoYilQDRiFz2OTih14WB/d85aR97ieSpPgyr5NDVTCb2vjMKjc5gSfa6kh2hewTbnlqfrOQr33OCZA==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"11.16.0","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.12.2_1783070639835_0.89136878681271","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@usefy/use-intersection-observer","version":"0.13.0","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.13.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"bc017a674c6d8399a9686a7446c8e7016d58e839","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.13.0.tgz","fileCount":8,"integrity":"sha512-O+O0I743fRAJgwAhImK4D/5ccxx23lvQ+OmADYyixJAJgw3N7jVWfCC+2LXW4Q/wfFvX+Z96Kj0nqJpov1/N6g==","signatures":[{"sig":"MEUCIFKet+KXDCKXMnlZjBf4MVKcKQ46UEqviifhb6xKow9mAiEAomSPBVlQEZKgUf+GrJ1SgTSjOBFvsS+Arj883QeJBuE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85887},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.13.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/709088131fd477e4e5018221be50e4f2/usefy-use-intersection-observer-0.13.0.tgz","_integrity":"sha512-O+O0I743fRAJgwAhImK4D/5ccxx23lvQ+OmADYyixJAJgw3N7jVWfCC+2LXW4Q/wfFvX+Z96Kj0nqJpov1/N6g==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"11.16.0","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.13.0_1783129961677_0.28573744618856045","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@usefy/use-intersection-observer","version":"0.14.0","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.14.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"ee5f998be4e91c017d5e01b744f2f87d17c0eea3","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.14.0.tgz","fileCount":8,"integrity":"sha512-8t9gDZDPVRiTKriE460ldDO07w9Hv+1C4yNEKsn9XOehDimXbUeYsexZoQyMeKKDvKaCmepdgQhIBvWjkiL3Vg==","signatures":[{"sig":"MEYCIQChuZ/qST3faMgTmXXSW5vW5aQIldMQVc0XqvTDsNErCgIhAKTBgAi/8+ovl2QWq7/2Jrl/MwtN99jhkcBfOG8qKZU8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85887},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.14.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/8d768c6c3d9e39ddb899b53f052e3cb4/usefy-use-intersection-observer-0.14.0.tgz","_integrity":"sha512-8t9gDZDPVRiTKriE460ldDO07w9Hv+1C4yNEKsn9XOehDimXbUeYsexZoQyMeKKDvKaCmepdgQhIBvWjkiL3Vg==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"11.16.0","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.14.0_1783134814170_0.21935567663115618","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@usefy/use-intersection-observer","version":"0.15.0","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.15.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"cbc001b12a5b51403be203c19af40d7e0ecc5089","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.15.0.tgz","fileCount":8,"integrity":"sha512-gnGPGsVAFBLjkQIwjvQMxSWobmgwM5hAjdhSRN0TmvQeP/L6yPZ6siTKnAhwczO63FOTChWMUrWRu/2u0V/xVA==","signatures":[{"sig":"MEQCICDSwoIGo76TeQp7Q247G7q8vLbehrd9/D2K5qsxJboiAiAA3Kl/+f2stxFGRgxTujUpuLwJe1M4geyjRZeFFpcDsw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85887},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.15.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/306f11bffa4ca51817b8efbb66d6a0b6/usefy-use-intersection-observer-0.15.0.tgz","_integrity":"sha512-gnGPGsVAFBLjkQIwjvQMxSWobmgwM5hAjdhSRN0TmvQeP/L6yPZ6siTKnAhwczO63FOTChWMUrWRu/2u0V/xVA==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"11.16.0","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.15.0_1783138383323_0.26554920157864825","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@usefy/use-intersection-observer","version":"0.16.0","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.16.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"78e99b0142b334bb7b4109eeb3445ff82bcc3260","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.16.0.tgz","fileCount":8,"integrity":"sha512-yBSwJRQxPWaPoKy3IsKNTmL0cUqyccFi1+4gso7kD5+zYf1SCcED7FaQQeX7CDRrqeMpex/7lO7kCRynGLE/lw==","signatures":[{"sig":"MEYCIQCCHtke0l9JykY5nAaHiBidkhmpwdeRADaZfwkap2EMpAIhALFqQit+1lN9soUOb7Z5Mse8LTCwZflLbV3z5MdnAkDS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85887},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.16.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/6d2d4d55fb80145eb539356e7ef3e5b4/usefy-use-intersection-observer-0.16.0.tgz","_integrity":"sha512-yBSwJRQxPWaPoKy3IsKNTmL0cUqyccFi1+4gso7kD5+zYf1SCcED7FaQQeX7CDRrqeMpex/7lO7kCRynGLE/lw==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"11.16.0","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.16.0_1783142229951_0.44407455707966825","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@usefy/use-intersection-observer","version":"0.17.0","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.17.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"ef4068a0ead7d1ad2196e8b83072d155040e979e","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.17.0.tgz","fileCount":8,"integrity":"sha512-d3jWsHgUZLysV0ajc2LlW6JWDamtRKTxA/aPscyW+BHB7N1T4WJ1t2rrSQhfXrJtupRKb6xJ1T3wl2AcWaqCew==","signatures":[{"sig":"MEQCIBBdAPy/ay9iPZI0JYof+XpLPaOYnOUBvhng1fyEQyMiAiBim1t4+FICiMTiXd5gpf1NM7w1ku7fqSts3wMgGp1yLg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85887},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.17.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/8842d1560e13e0ef1e6175d77cc20424/usefy-use-intersection-observer-0.17.0.tgz","_integrity":"sha512-d3jWsHgUZLysV0ajc2LlW6JWDamtRKTxA/aPscyW+BHB7N1T4WJ1t2rrSQhfXrJtupRKb6xJ1T3wl2AcWaqCew==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"11.16.0","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.17.0_1783230031867_0.8188108342476192","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"@usefy/use-intersection-observer","version":"0.18.0","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.18.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"cb246de12c915c8be92de371775230160af7da23","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.18.0.tgz","fileCount":8,"integrity":"sha512-gWhTCk6yCCrexjQYlB0YW8SrTZBIJw9BYGXOdXpOHLVWMpDoxq4vEhGJgtxHgWOS2EKuoL6KhZ5EDrxMcFLqAw==","signatures":[{"sig":"MEQCIHBce173DtFkGwVqnBsNJBpyY9hFJiURPADHzZMfCxisAiAiDJ1pS7OyTQwrL2CcaskOm0KAeW5tLpIpyULL6v0qcg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85887},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.18.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/6707384be2da6ea41a99a56dc11ac9ba/usefy-use-intersection-observer-0.18.0.tgz","_integrity":"sha512-gWhTCk6yCCrexjQYlB0YW8SrTZBIJw9BYGXOdXpOHLVWMpDoxq4vEhGJgtxHgWOS2EKuoL6KhZ5EDrxMcFLqAw==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"11.16.0","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.18.0_1783252580575_0.6485262572754238","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"@usefy/use-intersection-observer","version":"0.19.0","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.19.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"3c7d6d185d9d3c92e57011256bb2d31042e70cf0","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.19.0.tgz","fileCount":8,"integrity":"sha512-cWmQN6cBRNNFhzBm3wRx7hbPNCIjuRjiVI91tkCTeOalNzLaIVMwMD9c9vaVe6y0VVMlv5Y7Tjcrl//U36DFtg==","signatures":[{"sig":"MEYCIQCxU54Bkcg3lXeSZW8ppsvsTB3zcu8Yh6KQb1dlKSO1IAIhAJlH1yzCRlMp8qpWUUXx3uWeksp18nso7m91BhqRxVN8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85887},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.19.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/979cb7bac062fb6e079b77d94fed6a3a/usefy-use-intersection-observer-0.19.0.tgz","_integrity":"sha512-cWmQN6cBRNNFhzBm3wRx7hbPNCIjuRjiVI91tkCTeOalNzLaIVMwMD9c9vaVe6y0VVMlv5Y7Tjcrl//U36DFtg==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"11.16.0","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.19.0_1783259384215_0.6166160525954796","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"@usefy/use-intersection-observer","version":"0.20.0","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.20.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"2d9dfccf820f790ceac334e48ae21dac5f825be6","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.20.0.tgz","fileCount":8,"integrity":"sha512-ICmQect7DUjvr1vVQ92K3RzIXynJfiMmqReXHlqyNUGFMdSMBwL7GlQK7a42G4xs/g+5hj/8LFAfSsPV6S7UOg==","signatures":[{"sig":"MEQCIGeB7RBWdaAi3QJ5ESQl6o1UOsea3ulC03HMvIehOXkvAiAOVd0U2P4/D3F7mak01j+SNFy0D5CLoonuunlqrGzDgQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85887},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.20.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/e072aa5d2d69d5b74fa02002a8d23700/usefy-use-intersection-observer-0.20.0.tgz","_integrity":"sha512-ICmQect7DUjvr1vVQ92K3RzIXynJfiMmqReXHlqyNUGFMdSMBwL7GlQK7a42G4xs/g+5hj/8LFAfSsPV6S7UOg==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/use-intersection-observer"},"_npmVersion":"11.16.0","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.20.0_1783342874322_0.07065796751344378","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"@usefy/use-intersection-observer","version":"0.21.0","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.21.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"92d3a4389260e5566def305b3a643b17053834e0","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.21.0.tgz","fileCount":8,"integrity":"sha512-atFjEXfVqAzWKzBBAv57ZqF5O4sEfFQa2UR0csP5hfU2QUdZJ82aeLksO5YeCptYrVQX9v4htPLCGQonLD/Qhw==","signatures":[{"sig":"MEUCIQCRO9GaG9ijDZWZ7XXJ4KYfZlfYI2+CfDOqvEBoMAsGOQIgGnZswYzcxQNMlHajXQaHpbQlQ8L3Vy5VcShIXX0hnfU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85893},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.21.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/4e1d262f06163e95fcafded6526c3ccd/usefy-use-intersection-observer-0.21.0.tgz","_integrity":"sha512-atFjEXfVqAzWKzBBAv57ZqF5O4sEfFQa2UR0csP5hfU2QUdZJ82aeLksO5YeCptYrVQX9v4htPLCGQonLD/Qhw==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-intersection-observer"},"_npmVersion":"11.16.0","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.21.0_1783350148559_0.7559964768303744","host":"s3://npm-registry-packages-npm-production"}},"0.21.1":{"name":"@usefy/use-intersection-observer","version":"0.21.1","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.21.1","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"e8bc50562b025981a282d8b9948df2267b90b4d5","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.21.1.tgz","fileCount":8,"integrity":"sha512-6YA/dyICx6Ht2u1efpsXoeH4LJ0sVEFRQhRPXdL9719GLBOmgjuXT2fOUeogOzgsDpAT4rTI+6CCPWJZtDKhPw==","signatures":[{"sig":"MEUCIQDk/jS/IzQNsMiaAUsY3dOH/fFCy1IvR5DrdPVRbp7g+gIgc2VDem/GkJz4r4CJ6ECmcUmnNBkmrfwWjk5bjtLdKbY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85893},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.21.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/dce34022cf2f22efa2bdf3b210f00e85/usefy-use-intersection-observer-0.21.1.tgz","_integrity":"sha512-6YA/dyICx6Ht2u1efpsXoeH4LJ0sVEFRQhRPXdL9719GLBOmgjuXT2fOUeogOzgsDpAT4rTI+6CCPWJZtDKhPw==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-intersection-observer"},"_npmVersion":"11.16.0","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.21.1_1783428141450_0.22081834582069226","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"@usefy/use-intersection-observer","version":"0.22.0","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.22.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"bb4782209167e349bd5578bc851808a3b6b5364a","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.22.0.tgz","fileCount":8,"integrity":"sha512-sJloQFtom16Rez/TnG9UCda8LTY0sdoxt3sIPOomKzA8o8K7iXDrgbDkrv9GTqe75luHZPZKYdbidLp9JHEPjg==","signatures":[{"sig":"MEUCIDvPP6IWcu7OnGrbUTxlv9iFTwJLHffZK0rfSzMZPeNrAiEAlpwIytauGDD9lsWsASyuSO2yUFrENVpbkdcH3UrCZi4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85208},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.22.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/2de11723e5a7bf6d5feeb4c4dd40de5f/usefy-use-intersection-observer-0.22.0.tgz","_integrity":"sha512-sJloQFtom16Rez/TnG9UCda8LTY0sdoxt3sIPOomKzA8o8K7iXDrgbDkrv9GTqe75luHZPZKYdbidLp9JHEPjg==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-intersection-observer"},"_npmVersion":"11.16.0","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.22.0_1783474460635_0.36604570952183524","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"@usefy/use-intersection-observer","version":"0.23.0","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.23.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"6f765eae744d2524b62277a75e87bf1c10ebdac4","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.23.0.tgz","fileCount":8,"integrity":"sha512-2OaHOnwguMhvFgpQn5GRHXO9GfzGCGSrX+tbBDBAHTz/LttPi0PzPYNwnIZTAdcei8Be7JXxXDMyv5jqrFsucQ==","signatures":[{"sig":"MEYCIQCDg6vd30FcnPvrAWw6nuHcJt3IDp3nAGmowB0vKxZUCAIhANckipD89ScvEZlHWEG/AjEnIXmCWgTLOmBG4m63SNOq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85208},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.23.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/b6c98813423e8b181d76c0126942a633/usefy-use-intersection-observer-0.23.0.tgz","_integrity":"sha512-2OaHOnwguMhvFgpQn5GRHXO9GfzGCGSrX+tbBDBAHTz/LttPi0PzPYNwnIZTAdcei8Be7JXxXDMyv5jqrFsucQ==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-intersection-observer"},"_npmVersion":"11.16.0","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.23.0_1783499614070_0.9533230907863439","host":"s3://npm-registry-packages-npm-production"}},"0.24.0":{"name":"@usefy/use-intersection-observer","version":"0.24.0","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.24.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"e7175a6e27fc85a15ed8f39bcf6ffd0d2ec8aaab","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.24.0.tgz","fileCount":8,"integrity":"sha512-6rMh3Iw8+b0OdmyLl0GQ6BtdZTBeVBfN0Pdp0mbwJL00gEefAp48ps/JHA48ENPC0Advv4MWDzVMFZDADSHeug==","signatures":[{"sig":"MEUCIQDYPjowNSnJtUYDswQYz5ZMG6DPsNDx8KoAcl04WC8cxQIgKNskyKReAlmqtTvChEGviMuTQaHLEP8ODvFrmGFosBw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85208},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.24.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/b2c6d62495cfb35477cf058025211ae7/usefy-use-intersection-observer-0.24.0.tgz","_integrity":"sha512-6rMh3Iw8+b0OdmyLl0GQ6BtdZTBeVBfN0Pdp0mbwJL00gEefAp48ps/JHA48ENPC0Advv4MWDzVMFZDADSHeug==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-intersection-observer"},"_npmVersion":"11.16.0","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.24.0_1783512244928_0.4976862322669533","host":"s3://npm-registry-packages-npm-production"}},"0.25.0":{"name":"@usefy/use-intersection-observer","version":"0.25.0","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.25.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"beeee54fb5b5237dddb23914d39e5f65dfe410ac","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.25.0.tgz","fileCount":8,"integrity":"sha512-mqtOlgF2jkAF7kSlsT7XKhIs4IjWlDDPsweOAulw7QI2h50N0mNAJaf3pI63jU6tnrHyiHcJ7zS0Gktzez8i+Q==","signatures":[{"sig":"MEQCIEkJA7cshUig8brubJGMqygWsTyftQim+iqqUIrkYMqPAiBW3ARiD0gwk3he0iKreazxMzqT9eelrnrdif0qBAn8MQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85208},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.25.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/0ae68a2a72477476fc48c4b07e1d6080/usefy-use-intersection-observer-0.25.0.tgz","_integrity":"sha512-mqtOlgF2jkAF7kSlsT7XKhIs4IjWlDDPsweOAulw7QI2h50N0mNAJaf3pI63jU6tnrHyiHcJ7zS0Gktzez8i+Q==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-intersection-observer"},"_npmVersion":"11.16.0","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.25.0_1783516977563_0.7005007628211697","host":"s3://npm-registry-packages-npm-production"}},"0.25.1":{"name":"@usefy/use-intersection-observer","version":"0.25.1","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@0.25.1","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"967447bfc5c4c15d9511ae81788f2df64b2d159f","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-0.25.1.tgz","fileCount":8,"integrity":"sha512-eWfzP7ef5CsROThxyaGBV7KBRjPDGoK6Evk4648uXkYtH9rm6WW9A0nB8ZXL4BrB7myf9AqOGxGzIOrgseKFqg==","signatures":[{"sig":"MEYCIQCCIGa4rjLaL2UhocDW+bU6tNhNhhx9MQmSiESlzAVmDQIhAJcBttki3cc5L9dkm0rr3A9o6nvgfeRt3dL12SMase99","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85208},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-0.25.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/d061e53434e56cd7074e7ddd7d1be370/usefy-use-intersection-observer-0.25.1.tgz","_integrity":"sha512-eWfzP7ef5CsROThxyaGBV7KBRjPDGoK6Evk4648uXkYtH9rm6WW9A0nB8ZXL4BrB7myf9AqOGxGzIOrgseKFqg==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-intersection-observer"},"_npmVersion":"11.16.0","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_0.25.1_1783523665048_0.489792765127514","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@usefy/use-intersection-observer","version":"1.0.0","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"license":"MIT","_id":"@usefy/use-intersection-observer@1.0.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://usefy-web.vercel.app/packages/use-intersection-observer","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"7a62bc35eb8217358120d676d35f2bc0c6389a2b","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-1.0.0.tgz","fileCount":8,"integrity":"sha512-CRetpRGAIw3ooQpJQAnvdgwB0G2XOpsH3JtkLE8pb8Ze/JOTHiDpaxAjinDU45HeQ7dUAVu71VqLqKbzy+SplA==","signatures":[{"sig":"MEUCIQD5/WAvFSr1LzjtULldBduY6iBsS5nW0blyTm1sfHMX7gIgenPWffTOqkifGV0Wue7hWffIhakLGwSWoeeadeReQrY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85288},"main":"./dist/index.js","_from":"file:usefy-use-intersection-observer-1.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/1d1d33cf17e79c5506f84f06dc833f37/usefy-use-intersection-observer-1.0.0.tgz","_integrity":"sha512-CRetpRGAIw3ooQpJQAnvdgwB0G2XOpsH3JtkLE8pb8Ze/JOTHiDpaxAjinDU45HeQ7dUAVu71VqLqKbzy+SplA==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-intersection-observer"},"_npmVersion":"11.16.0","description":"A React hook for observing element visibility using Intersection Observer API","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-intersection-observer_1.0.0_1784693232024_0.6382926969129901","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@usefy/use-intersection-observer","version":"1.1.0","homepage":"https://usefy-web.vercel.app/packages/use-intersection-observer","description":"A React hook for observing element visibility using Intersection Observer API","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"sideEffects":false,"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"devDependencies":{"@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.1","@testing-library/user-event":"^14.6.1","@types/react":"^19.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","tsup":"^8.0.0","typescript":"^5.0.0","vitest":"^4.0.16"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/mirunamu00/usefy.git","directory":"packages/hooks/use-intersection-observer"},"license":"MIT","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"scripts":{"build":"tsup","dev":"tsup --watch","test":"vitest run","test:watch":"vitest","typecheck":"tsc --noEmit","clean":"rimraf dist"},"_id":"@usefy/use-intersection-observer@1.1.0","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"_integrity":"sha512-aGrDAMD5Hil2+eYE2525ITISaLF3WqftWQwWH/JqZTYoQhXJNfMp1HpVXr8aQmWcqJRhGu45pua5AotFBAcGMQ==","_resolved":"/tmp/e310ffbf2c9f6306883672e46b21193b/usefy-use-intersection-observer-1.1.0.tgz","_from":"file:usefy-use-intersection-observer-1.1.0.tgz","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-aGrDAMD5Hil2+eYE2525ITISaLF3WqftWQwWH/JqZTYoQhXJNfMp1HpVXr8aQmWcqJRhGu45pua5AotFBAcGMQ==","shasum":"3054846b9f0c19f7564e41366162d4f849f3d9ab","tarball":"https://registry.npmjs.org/@usefy/use-intersection-observer/-/use-intersection-observer-1.1.0.tgz","fileCount":8,"unpackedSize":85294,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIE/aFh6tdAStyh10eyXaWuhHTX6Wf1DROJXeazPeXizFAiBICC4+0ISprsvUGw5P8xVxivR6LwUbn8NJOwAh7lwH6w=="}]},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"directories":{},"maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/use-intersection-observer_1.1.0_1785214686398_0.22387293612452797"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-05T09:57:24.295Z","modified":"2026-07-28T04:58:06.754Z","0.0.1":"2026-01-05T09:57:24.525Z","0.0.29":"2026-01-05T10:14:22.049Z","0.0.30":"2026-01-05T10:25:03.915Z","0.0.31":"2026-01-05T15:05:26.895Z","0.0.32":"2026-01-08T13:44:48.357Z","0.0.33":"2026-01-08T14:15:56.335Z","0.0.34":"2026-01-08T15:10:06.540Z","0.0.35":"2026-01-08T15:13:06.870Z","0.0.36":"2026-01-09T00:52:48.103Z","0.0.37":"2026-01-09T01:01:56.088Z","0.0.38":"2026-01-09T01:37:26.004Z","0.1.1":"2026-01-11T10:54:49.968Z","0.1.2":"2026-01-11T11:14:41.534Z","0.1.3":"2026-01-11T14:13:34.138Z","0.1.4":"2026-01-11T14:24:03.470Z","0.1.5":"2026-01-12T01:31:27.057Z","0.2.0":"2026-01-12T02:24:44.903Z","0.2.1":"2026-01-12T06:43:09.146Z","0.2.2":"2026-01-12T07:50:38.008Z","0.2.3":"2026-01-12T13:25:33.625Z","0.2.4":"2026-01-13T03:07:33.823Z","0.2.5":"2026-01-21T05:16:01.474Z","0.2.6":"2026-01-29T10:18:38.850Z","0.3.1":"2026-07-01T06:39:14.773Z","0.4.0":"2026-07-01T07:35:37.340Z","0.5.0":"2026-07-01T08:45:23.352Z","0.6.0":"2026-07-01T13:31:02.864Z","0.7.0":"2026-07-02T01:51:05.149Z","0.8.0":"2026-07-02T06:08:27.510Z","0.9.0":"2026-07-03T01:47:06.783Z","0.10.0":"2026-07-03T03:13:10.953Z","0.11.0":"2026-07-03T05:46:43.040Z","0.12.0":"2026-07-03T07:30:39.957Z","0.12.1":"2026-07-03T07:59:44.247Z","0.12.2":"2026-07-03T09:23:59.980Z","0.13.0":"2026-07-04T01:52:41.800Z","0.14.0":"2026-07-04T03:13:34.351Z","0.15.0":"2026-07-04T04:13:03.490Z","0.16.0":"2026-07-04T05:17:10.087Z","0.17.0":"2026-07-05T05:40:32.007Z","0.18.0":"2026-07-05T11:56:20.721Z","0.19.0":"2026-07-05T13:49:44.343Z","0.20.0":"2026-07-06T13:01:14.484Z","0.21.0":"2026-07-06T15:02:28.680Z","0.21.1":"2026-07-07T12:42:21.592Z","0.22.0":"2026-07-08T01:34:20.774Z","0.23.0":"2026-07-08T08:33:34.213Z","0.24.0":"2026-07-08T12:04:05.079Z","0.25.0":"2026-07-08T13:22:57.740Z","0.25.1":"2026-07-08T15:14:25.198Z","1.0.0":"2026-07-22T04:07:12.156Z","1.1.0":"2026-07-28T04:58:06.567Z"},"bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"license":"MIT","homepage":"https://usefy-web.vercel.app/packages/use-intersection-observer","keywords":["react","hooks","intersection-observer","viewport","visibility","lazy-loading","infinite-scroll","scroll-animation","useIntersectionObserver"],"repository":{"type":"git","url":"git+https://github.com/mirunamu00/usefy.git","directory":"packages/hooks/use-intersection-observer"},"description":"A React hook for observing element visibility using Intersection Observer API","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/mirunamu00/usefy/master/assets/logo.png\" alt=\"usefy logo\" width=\"120\" />\n</p>\n\n<h1 align=\"center\">@usefy/use-intersection-observer</h1>\n\n<p align=\"center\">\n  <strong>A powerful React hook for observing element visibility using the Intersection Observer API</strong>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@usefy/use-intersection-observer\">\n    <img src=\"https://img.shields.io/npm/v/@usefy/use-intersection-observer.svg?style=flat-square&color=007acc\" alt=\"npm version\" />\n  </a>\n  <a href=\"https://www.npmjs.com/package/@usefy/use-intersection-observer\">\n    <img src=\"https://img.shields.io/npm/dm/@usefy/use-intersection-observer.svg?style=flat-square&color=007acc\" alt=\"npm downloads\" />\n  </a>\n  <a href=\"https://bundlephobia.com/package/@usefy/use-intersection-observer\">\n    <img src=\"https://img.shields.io/bundlephobia/minzip/@usefy/use-intersection-observer?style=flat-square&color=007acc\" alt=\"bundle size\" />\n  </a>\n  <a href=\"https://github.com/mirunamu00/usefy/blob/master/LICENSE\">\n    <img src=\"https://img.shields.io/npm/l/@usefy/use-intersection-observer.svg?style=flat-square&color=007acc\" alt=\"license\" />\n  </a>\n</p>\n\n<p align=\"center\">\n  <a href=\"#installation\">Installation</a> •\n  <a href=\"#quick-start\">Quick Start</a> •\n  <a href=\"#api-reference\">API Reference</a> •\n  <a href=\"#examples\">Examples</a> •\n  <a href=\"#license\">License</a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://mirunamu00.github.io/usefy/?path=/docs/hooks-useintersectionobserver--docs\" target=\"_blank\" rel=\"noopener noreferrer\">\n    <strong>📚 View Storybook Demo</strong>\n  </a>\n</p>\n\n---\n\n## Overview\n\n`@usefy/use-intersection-observer` is a feature-rich React hook for efficiently detecting element visibility in the viewport using the Intersection Observer API. It provides a simple API for lazy loading, infinite scroll, scroll animations, and more.\n\n**Part of the [@usefy](https://www.npmjs.com/org/usefy) ecosystem** — a collection of production-ready React hooks designed for modern applications.\n\n### Why use-intersection-observer?\n\n- **Zero Dependencies** — Pure React implementation with no external dependencies\n- **TypeScript First** — Full type safety with comprehensive type definitions\n- **Efficient Detection** — Leverages native Intersection Observer API for optimal performance\n- **Threshold-based Callbacks** — Fine-grained visibility ratio tracking with multiple thresholds\n- **TriggerOnce Support** — Perfect for lazy loading patterns\n- **Dynamic Enable/Disable** — Conditional observation support\n- **Custom Root Containers** — Observe elements within custom scroll containers\n- **Root Margin Support** — Expand or shrink detection boundaries\n- **SSR Compatible** — Works seamlessly with Next.js, Remix, and other SSR frameworks\n- **Optimized Re-renders** — Only updates when meaningful values change\n- **Well Tested** — Comprehensive test coverage with Vitest\n\n---\n\n## Installation\n\n```bash\n# npm\nnpm install @usefy/use-intersection-observer\n\n# yarn\nyarn add @usefy/use-intersection-observer\n\n# pnpm\npnpm add @usefy/use-intersection-observer\n```\n\n### Peer Dependencies\n\nThis package requires React 18 or 19:\n\n```json\n{\n  \"peerDependencies\": {\n    \"react\": \"^18.0.0 || ^19.0.0\"\n  }\n}\n```\n\n---\n\n## Quick Start\n\n```tsx\nimport { useIntersectionObserver } from \"@usefy/use-intersection-observer\";\n\nfunction MyComponent() {\n  const { ref, inView, entry } = useIntersectionObserver();\n\n  return <div ref={ref}>{inView ? \"👁️ Visible!\" : \"👻 Not visible\"}</div>;\n}\n```\n\n---\n\n## API Reference\n\n### `useIntersectionObserver(options?)`\n\nA hook that observes element visibility using the Intersection Observer API.\n\n#### Parameters\n\n| Parameter | Type                             | Description                   |\n| --------- | -------------------------------- | ----------------------------- |\n| `options` | `UseIntersectionObserverOptions` | Optional configuration object |\n\n#### Options\n\n| Option                  | Type                                                  | Default | Description                                                                                         |\n| ----------------------- | ----------------------------------------------------- | ------- | --------------------------------------------------------------------------------------------------- |\n| `threshold`             | `number \\| number[]`                                  | `0`     | Visibility ratio(s) that trigger updates (0.0 to 1.0). Updates occur when crossing these boundaries |\n| `root`                  | `Element \\| Document \\| null`                         | `null`  | Root element for intersection (null = viewport)                                                     |\n| `rootMargin`            | `string`                                              | `\"0px\"` | Margin around root (CSS margin syntax). Positive expands, negative shrinks detection area           |\n| `triggerOnce`           | `boolean`                                             | `false` | Stop observing after element first becomes visible                                                  |\n| `enabled`               | `boolean`                                             | `true`  | Enable/disable observer. When false, observer disconnects and stops all updates                     |\n| `initialIsIntersecting` | `boolean`                                             | `false` | Initial intersection state before first observation (useful for SSR/SSG)                            |\n| `onChange`              | `(entry: IntersectionEntry, inView: boolean) => void` | —       | Callback fired when isIntersecting or intersectionRatio changes                                     |\n| `delay`                 | `number`                                              | `0`     | Delay in milliseconds before creating the observer (not individual events)                          |\n\n#### Returns `UseIntersectionObserverReturn`\n\n| Property | Type                              | Description                                                                    |\n| -------- | --------------------------------- | ------------------------------------------------------------------------------ |\n| `entry`  | `IntersectionEntry \\| null`       | Intersection entry data (null if not yet observed). Updates trigger re-renders |\n| `inView` | `boolean`                         | Whether the element is currently intersecting (convenience derived from entry) |\n| `ref`    | `(node: Element \\| null) => void` | Callback ref to attach to the target element you want to observe               |\n\n#### `IntersectionEntry`\n\nExtended intersection entry with convenience properties:\n\n| Property             | Type                        | Description                                                      |\n| -------------------- | --------------------------- | ---------------------------------------------------------------- |\n| `entry`              | `IntersectionObserverEntry` | Original native IntersectionObserverEntry from the browser API   |\n| `isIntersecting`     | `boolean`                   | Whether target is intersecting with root                         |\n| `intersectionRatio`  | `number`                    | Ratio of target visible (0.0 to 1.0)                             |\n| `target`             | `Element`                   | The observed DOM element                                         |\n| `boundingClientRect` | `DOMRectReadOnly`           | Target element's bounding box relative to viewport               |\n| `intersectionRect`   | `DOMRectReadOnly`           | Visible portion's bounding box (intersection of target and root) |\n| `rootBounds`         | `DOMRectReadOnly \\| null`   | Root element's bounding box (null if root is the viewport)       |\n| `time`               | `number`                    | DOMHighResTimeStamp when intersection was recorded               |\n\n---\n\n## Examples\n\n### Basic Usage\n\n```tsx\nimport { useIntersectionObserver } from \"@usefy/use-intersection-observer\";\n\nfunction VisibilityChecker() {\n  const { ref, inView } = useIntersectionObserver();\n\n  return <div ref={ref}>{inView ? \"👁️ Visible!\" : \"👻 Not visible\"}</div>;\n}\n```\n\n### Lazy Loading Images\n\n```tsx\nimport { useState } from \"react\";\nimport { useIntersectionObserver } from \"@usefy/use-intersection-observer\";\n\nfunction LazyImage({ src, alt }: { src: string; alt: string }) {\n  const [loaded, setLoaded] = useState(false);\n\n  const { ref, inView } = useIntersectionObserver({\n    triggerOnce: true, // Stop observing after first detection\n    threshold: 0.1, // Trigger when 10% visible\n    rootMargin: \"50px\", // Start loading 50px before entering viewport\n  });\n\n  return (\n    <div ref={ref}>\n      {inView ? (\n        <img\n          src={src}\n          alt={alt}\n          onLoad={() => setLoaded(true)}\n          style={{ opacity: loaded ? 1 : 0 }}\n        />\n      ) : (\n        <div className=\"placeholder\">Loading...</div>\n      )}\n    </div>\n  );\n}\n```\n\n### Infinite Scroll\n\n```tsx\nimport { useState, useEffect } from \"react\";\nimport { useIntersectionObserver } from \"@usefy/use-intersection-observer\";\n\nfunction InfiniteList() {\n  const [items, setItems] = useState([...initialItems]);\n  const [loading, setLoading] = useState(false);\n\n  const { ref, inView } = useIntersectionObserver({\n    threshold: 1.0, // Trigger when sentinel is fully visible\n    rootMargin: \"100px\", // Start loading 100px before sentinel enters viewport\n  });\n\n  useEffect(() => {\n    if (inView && !loading) {\n      setLoading(true);\n      fetchMoreItems().then((newItems) => {\n        setItems((prev) => [...prev, ...newItems]);\n        setLoading(false);\n      });\n    }\n  }, [inView, loading]);\n\n  return (\n    <div>\n      {items.map((item) => (\n        <Item key={item.id} {...item} />\n      ))}\n      {/* Sentinel Element - triggers loading when visible */}\n      <div ref={ref}>{loading && <Spinner />}</div>\n    </div>\n  );\n}\n```\n\n### Scroll Animations\n\n```tsx\nimport { useIntersectionObserver } from \"@usefy/use-intersection-observer\";\n\nfunction AnimatedCard({ children }: { children: React.ReactNode }) {\n  const { ref, inView } = useIntersectionObserver({\n    triggerOnce: true, // Animate only once\n    threshold: 0.3, // Trigger when 30% visible\n  });\n\n  return (\n    <div\n      ref={ref}\n      style={{\n        opacity: inView ? 1 : 0,\n        transform: inView ? \"translateY(0)\" : \"translateY(30px)\",\n        transition: \"all 0.6s ease\",\n      }}\n    >\n      {children}\n    </div>\n  );\n}\n```\n\n### Reading Progress Tracker\n\n```tsx\nimport { useState } from \"react\";\nimport { useIntersectionObserver } from \"@usefy/use-intersection-observer\";\n\nfunction ProgressTracker() {\n  const [progress, setProgress] = useState(0);\n\n  // 101 thresholds (0%, 1%, 2%, ... 100%) for fine-grained tracking\n  const thresholds = Array.from({ length: 101 }, (_, i) => i / 100);\n\n  const { ref } = useIntersectionObserver({\n    threshold: thresholds,\n    onChange: (entry) => {\n      // Update progress when crossing any threshold boundary\n      setProgress(Math.round(entry.intersectionRatio * 100));\n    },\n  });\n\n  return (\n    <>\n      <div className=\"progress-bar\" style={{ width: `${progress}%` }} />\n      <article ref={ref}>{/* Long content */}</article>\n    </>\n  );\n}\n```\n\n### Custom Scroll Container\n\n```tsx\nimport { useRef } from \"react\";\nimport { useIntersectionObserver } from \"@usefy/use-intersection-observer\";\n\nfunction ScrollContainer() {\n  const containerRef = useRef<HTMLDivElement>(null);\n\n  const { ref, inView } = useIntersectionObserver({\n    root: containerRef.current,\n    rootMargin: \"0px\",\n  });\n\n  return (\n    <div ref={containerRef} style={{ overflow: \"auto\", height: 400 }}>\n      <div style={{ height: 1000 }}>\n        <div ref={ref}>{inView ? \"Visible in container\" : \"Not visible\"}</div>\n      </div>\n    </div>\n  );\n}\n```\n\n### Section Navigation Highlighting\n\n```tsx\nimport { useState } from \"react\";\nimport { useIntersectionObserver } from \"@usefy/use-intersection-observer\";\n\nfunction SectionNavigation() {\n  const [activeSection, setActiveSection] = useState<string | null>(null);\n\n  return (\n    <>\n      <nav>\n        {sections.map((section) => (\n          <button\n            key={section.id}\n            className={activeSection === section.id ? \"active\" : \"\"}\n          >\n            {section.name}\n          </button>\n        ))}\n      </nav>\n\n      {sections.map((section) => (\n        <Section\n          key={section.id}\n          id={section.id}\n          onVisible={() => setActiveSection(section.id)}\n        />\n      ))}\n    </>\n  );\n}\n\nfunction Section({ id, onVisible }: { id: string; onVisible: () => void }) {\n  const { ref } = useIntersectionObserver({\n    threshold: 0.6, // Activate when 60% visible\n    onChange: (_, inView) => {\n      // Called when section enters or exits the 60% visibility threshold\n      if (inView) onVisible();\n    },\n  });\n\n  return (\n    <section ref={ref} id={id}>\n      ...\n    </section>\n  );\n}\n```\n\n### Dynamic Enable/Disable\n\n```tsx\nimport { useState } from \"react\";\nimport { useIntersectionObserver } from \"@usefy/use-intersection-observer\";\n\nfunction ConditionalObserver() {\n  const [isLoading, setIsLoading] = useState(true);\n\n  const { ref, inView } = useIntersectionObserver({\n    enabled: !isLoading, // Observer is disconnected when disabled\n  });\n\n  return <div ref={ref}>{inView ? \"Observing\" : \"Not observing\"}</div>;\n}\n```\n\n### SSR/SSG Support\n\n```tsx\nimport { useIntersectionObserver } from \"@usefy/use-intersection-observer\";\n\nfunction SSRComponent() {\n  // Set initial state for server-side rendering\n  const { ref, inView } = useIntersectionObserver({\n    initialIsIntersecting: true, // Assume visible during SSR\n  });\n\n  // During SSR/first render, inView will be true\n  // After hydration, actual intersection state takes over\n  return <div ref={ref}>{inView ? \"Initially visible\" : \"Not visible\"}</div>;\n}\n```\n\n### Delay Observer Creation\n\n```tsx\nimport { useIntersectionObserver } from \"@usefy/use-intersection-observer\";\n\nfunction DelayedObserver() {\n  const { ref, inView } = useIntersectionObserver({\n    delay: 500, // Wait 500ms before creating the observer\n  });\n\n  // Observer is NOT created until 500ms after component mount\n  // This delays the CREATION of the observer, not individual intersection events\n  // Useful for preventing premature observations during page load or fast scrolling\n  return <div ref={ref}>{inView ? \"Observing\" : \"Not observing\"}</div>;\n}\n```\n\n---\n\n## Performance Optimization\n\nThe Intersection Observer API fires callbacks when threshold boundaries are crossed or when `isIntersecting` changes (e.g., during user scroll interactions). When a callback fires:\n\n- The `entry` object is updated with new values including `time` (timestamp of the intersection event)\n- `setEntry()` is called → **re-render occurs**\n\nThe hook includes a safeguard: it compares the previous `isIntersecting` and `intersectionRatio` values with the new ones before calling `setEntry()`. This prevents redundant re-renders in edge cases where the observer might report the same state multiple times.\n\n```tsx\n// Inside the hook's callback:\nconst hasChanged =\n  !prevEntry ||\n  prevEntry.isIntersecting !== nativeEntry.isIntersecting ||\n  prevEntry.intersectionRatio !== nativeEntry.intersectionRatio;\n\nif (hasChanged) {\n  setEntry(intersectionEntry); // Re-render triggered\n}\n```\n\n---\n\n## TypeScript\n\nThis hook is written in TypeScript and exports comprehensive type definitions.\n\n```tsx\nimport {\n  useIntersectionObserver,\n  type UseIntersectionObserverOptions,\n  type UseIntersectionObserverReturn,\n  type IntersectionEntry,\n  type OnChangeCallback,\n} from \"@usefy/use-intersection-observer\";\n\n// Full type inference\nconst { ref, inView, entry }: UseIntersectionObserverReturn =\n  useIntersectionObserver({\n    threshold: 0.5,\n    onChange: (entry, inView) => {\n      console.log(\"Visibility changed:\", inView);\n    },\n  });\n```\n\n---\n\n## Performance\n\n- **Stable Function References** — The `ref` callback is memoized with `useCallback`\n- **Smart Re-renders** — Only re-renders when `isIntersecting` or `intersectionRatio` changes\n- **Native API** — Leverages browser's Intersection Observer API for optimal performance\n- **SSR Compatible** — Gracefully degrades in server environments\n\n```tsx\nconst { ref } = useIntersectionObserver({\n  threshold: [0, 0.5, 1.0],\n});\n\n// ref reference remains stable across renders\nuseEffect(() => {\n  // Safe to use as dependency\n}, [ref]);\n```\n\n---\n\n## Browser Support\n\nThis hook uses the [Intersection Observer API](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API), which is supported in:\n\n- Chrome 51+\n- Firefox 55+\n- Safari 12.1+\n- Edge 15+\n- Opera 38+\n\nFor unsupported browsers, the hook gracefully degrades and returns the initial state.\n\n---\n\n## Testing\n\nThis package maintains comprehensive test coverage to ensure reliability and stability.\n\n### Test Coverage\n\n📊 <a href=\"https://mirunamu00.github.io/usefy/coverage/hooks/use-intersection-observer/src/index.html\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>View Detailed Coverage Report</strong></a> (GitHub Pages)\n\n### Test Files\n\n- `useIntersectionObserver.test.ts` — 87 tests for hook behavior\n- `utils.test.ts` — 63 tests for utility functions\n\n**Total: 150 tests**\n\n---\n\n## License\n\nMIT © [mirunamu](https://github.com/mirunamu00)\n\nThis package is part of the [usefy](https://github.com/mirunamu00/usefy) monorepo.\n\n---\n\n<p align=\"center\">\n  <sub>Built with care by the usefy team</sub>\n</p>\n","readmeFilename":"README.md"}