{"_id":"@daformat/react-headless-carousel","_rev":"30-46a3c03b1f8fad49a51ff1a40ef25028","name":"@daformat/react-headless-carousel","dist-tags":{"latest":"1.2.3"},"versions":{"1.0.0":{"name":"@daformat/react-headless-carousel","version":"1.0.0","keywords":["carousel","react","headless","carousel-component","react-component"],"author":{"name":"Mathieu Jouhet"},"license":"MIT","_id":"@daformat/react-headless-carousel@1.0.0","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"313b5b3508f9b2b455797dbb639847e92f7c5787","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.0.0.tgz","fileCount":11,"integrity":"sha512-u68t0KN558yHXEyKQOHmDy5SC6plKgaHvk03hPG6X2mmPThFLz7QFqhicvXyJix1guM3E6wBJFnxymBnYTAjnw==","signatures":[{"sig":"MEQCIE1yHcLMvURqRCFteLMsuMI0lQH2YiSBl20pyYDTM9enAiAfwd9tmG5tjcI55wCJE/D21GWXAKjtm0qaY9uT1/LGSg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75245},"main":"dist/index.js","type":"module","gitHead":"82ecf01cf5e2a263146fe520c65440e0125a56ef","scripts":{"ci":"pnpm build && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","format:check":"prettier --check .","local-release":"changeset version && changeset publish","prepublishOnly":"npm run ci"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"packageManager":"pnpm@10.4.0+sha512.6b849d0787d97f8f4e1f03a9b8ff8f038e79e153d6f11ae539ae7c435ff9e796df6a862c991502695c7f9e8fac8aeafc1ac5a8dab47e36148d183832d886dd52","devDependencies":{"jsdom":"^29.0.1","react":"^18.3.1","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@vitejs/plugin-react":"^6.0.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.0.0_1774374959313_0.8773360310118716","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@daformat/react-headless-carousel","version":"1.0.1","keywords":["carousel","react","headless","carousel-component","react-component"],"author":{"name":"Mathieu Jouhet"},"license":"MIT","_id":"@daformat/react-headless-carousel@1.0.1","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"406c3a2efe35f08645f16119099f318f952d854b","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.0.1.tgz","fileCount":15,"integrity":"sha512-zIFuRfSIUK+XnFvmw9D7V8M1QCbelVQD7NSUxdiiAJFUho31OgcNzQ9x9L0Q9NWFnlLLevKFO5bZadozJCB+iw==","signatures":[{"sig":"MEYCIQDyaa9BkdkGvQAC2V1ooDri6Nk4Wv2RFZmcxbTMaBSZcQIhAIt6u1DVKaO8IUScB1QHD7lBRvatdZZ8sD73TMk9BCpb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79350},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.0.1.tgz","types":"dist/index.d.ts","scripts":{"ci":"pnpm build && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/7cff0c212c41c58d6c7af3b6835c650a/daformat-react-headless-carousel-1.0.1.tgz","_integrity":"sha512-zIFuRfSIUK+XnFvmw9D7V8M1QCbelVQD7NSUxdiiAJFUho31OgcNzQ9x9L0Q9NWFnlLLevKFO5bZadozJCB+iw==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","react":"^18.3.1","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@vitejs/plugin-react":"^6.0.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.0.1_1774375313924_0.6123156239936622","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@daformat/react-headless-carousel","version":"1.0.2","keywords":["carousel","react","headless","carousel-component","react-component"],"author":{"name":"Mathieu Jouhet"},"license":"MIT","_id":"@daformat/react-headless-carousel@1.0.2","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"02e5d0671d21add65925231e59a18c0f8faed854","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.0.2.tgz","fileCount":15,"integrity":"sha512-MbzZzfqiTjNXTygnUHDpoRS+qxkzKHYr8Dohd/hwXXhD1sn6kEJygRyrv5FY1o+RLxOvjVWyZ1Bh9yHYmuUfWQ==","signatures":[{"sig":"MEUCIQCKLlE11YY9bsYeMwLWuzv5LMWy34IScAiEVlBcWJE1SQIgQl4J1iSxXz0uEhn+1XrBwQdA+Kie/tJmH2gvFoFKeOo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79839},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.0.2.tgz","types":"dist/index.d.ts","scripts":{"ci":"pnpm build && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/8e549c7591d08c5d9cbcbd0e3d57db66/daformat-react-headless-carousel-1.0.2.tgz","_integrity":"sha512-MbzZzfqiTjNXTygnUHDpoRS+qxkzKHYr8Dohd/hwXXhD1sn6kEJygRyrv5FY1o+RLxOvjVWyZ1Bh9yHYmuUfWQ==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","react":"^18.3.1","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@vitejs/plugin-react":"^6.0.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.0.2_1774376270386_0.6388043403099601","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@daformat/react-headless-carousel","version":"1.0.3","keywords":["carousel","react","headless","carousel-component","react-component"],"author":{"name":"Mathieu Jouhet"},"license":"MIT","_id":"@daformat/react-headless-carousel@1.0.3","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"a8e5a61417d80d47579437d8c064c6753a435773","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.0.3.tgz","fileCount":15,"integrity":"sha512-Z6IEpBkftxflDf8zuBNjWR9+m8ahyRjGa4HaIwSWlxUypGhBW+I/bV2k0ouw6DqALC5FIUj+vMB810cvhgiA0Q==","signatures":[{"sig":"MEYCIQCogYc7Sz4EjbeIzCS0Na07ikLigG2Y+txjuTe7KtRZygIhAMLu1a0dbkJpmJgEcunYYHTI2w8npPxV/WYMB1/RJKFl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79839},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.0.3.tgz","types":"dist/index.d.ts","scripts":{"ci":"pnpm build && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/2857f7c9a033520abc8457d28a5ebb0e/daformat-react-headless-carousel-1.0.3.tgz","_integrity":"sha512-Z6IEpBkftxflDf8zuBNjWR9+m8ahyRjGa4HaIwSWlxUypGhBW+I/bV2k0ouw6DqALC5FIUj+vMB810cvhgiA0Q==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","react":"^18.3.1","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@vitejs/plugin-react":"^6.0.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.0.3_1774376393235_0.012562230686741005","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@daformat/react-headless-carousel","version":"1.0.4","keywords":["carousel","react","headless","carousel-component","react-component"],"author":{"name":"Mathieu Jouhet"},"license":"MIT","_id":"@daformat/react-headless-carousel@1.0.4","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"42f507bed772f64d505f4a7872938a23c47e215b","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.0.4.tgz","fileCount":15,"integrity":"sha512-hC7WXgyGT2x0WvI5epe5faX59yWWxOJNI0WY1NOK/ZWBLb6mZpzjRGwPp2UI6VCr0Qxflc8/Xtud9Bb1Y8CLbg==","signatures":[{"sig":"MEYCIQDqkFeSF2hj/OZjOjOSrXWjkdAeGCrbT/ug4Ex7mCQ4wwIhAOBJHzOq4Ac6QRb0ocATD3uXKrYTbkXJvsKHy0P/tXKi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80895},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.0.4.tgz","types":"dist/index.d.ts","scripts":{"ci":"pnpm build && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/a37e753f604d2f6f8cbb4709a448639c/daformat-react-headless-carousel-1.0.4.tgz","_integrity":"sha512-hC7WXgyGT2x0WvI5epe5faX59yWWxOJNI0WY1NOK/ZWBLb6mZpzjRGwPp2UI6VCr0Qxflc8/Xtud9Bb1Y8CLbg==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","react":"^18.3.1","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@vitejs/plugin-react":"^6.0.1","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.0.4_1774381463148_0.5422471199277197","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@daformat/react-headless-carousel","version":"1.0.5","keywords":["carousel","react","headless","carousel-component","react-component"],"author":{"name":"Mathieu Jouhet"},"license":"MIT","_id":"@daformat/react-headless-carousel@1.0.5","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"6d955197b65056504cc298d1983b94266e085eb7","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.0.5.tgz","fileCount":15,"integrity":"sha512-TIO8oCCQUhKNPamP9i4bSOqG9L7QU3fGdVmJvUEcUhXtE7dLUbRBdX9FcHN8U1XHwbfUU7WQ8f1PY9+6HcrwJA==","signatures":[{"sig":"MEQCIF818YS6VfRbXfYSuxXDwFkkqoe7KOnBRJbn7QMAL6aEAiB7pLKwl2lgTG3B+eOs4RXDRETUTayEV8Lwlh0qnjgERw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82610},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.0.5.tgz","types":"dist/index.d.ts","scripts":{"ci":"pnpm build && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","lint:js":"eslint .","lint:js:fix":"eslint --fix .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/b8d22fce8d234f29fd78d077c769ae05/daformat-react-headless-carousel-1.0.5.tgz","_integrity":"sha512-TIO8oCCQUhKNPamP9i4bSOqG9L7QU3fGdVmJvUEcUhXtE7dLUbRBdX9FcHN8U1XHwbfUU7WQ8f1PY9+6HcrwJA==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","react":"^18.3.1","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@eslint/eslintrc":"^3.3.5","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","eslint-plugin-import":"^2.32.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.57.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-testing-library":"^7.16.2","@typescript-eslint/eslint-plugin":"^8.57.2","eslint-plugin-simple-import-sort":"^12.1.1","eslint-import-resolver-typescript":"^4.4.4"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.0.5_1774428077901_0.9272770681108446","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@daformat/react-headless-carousel","version":"1.0.6","keywords":["carousel","react","headless","carousel-component","react-component"],"author":{"name":"Mathieu Jouhet"},"license":"MIT","_id":"@daformat/react-headless-carousel@1.0.6","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"c28b91d361deb2bf5b102a61d842a09c9a060e23","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.0.6.tgz","fileCount":15,"integrity":"sha512-WzIz2pfH2MlL3LybJVi+/iQk4lbnzwpKOpt2ozOPcKsNXbK7tQsvopaq00thYaeHsMmVH4Tey7dF3BouWI8R1w==","signatures":[{"sig":"MEUCIQDcNecblntlnmtMjUooblKLK5U9yHixWSY/oYXHjJDPswIgPK79AZ/4tiRyJSbwpAk21OfpkZnxy2pZOHeMSnXG9Ws=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82950},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.0.6.tgz","types":"dist/index.d.ts","scripts":{"ci":"pnpm build && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","lint:js":"eslint .","lint:js:fix":"eslint --fix .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/ce3ce3f7eab29f8747ff548ff87ec78e/daformat-react-headless-carousel-1.0.6.tgz","_integrity":"sha512-WzIz2pfH2MlL3LybJVi+/iQk4lbnzwpKOpt2ozOPcKsNXbK7tQsvopaq00thYaeHsMmVH4Tey7dF3BouWI8R1w==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","react":"^18.3.1","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@eslint/eslintrc":"^3.3.5","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","eslint-plugin-import":"^2.32.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.57.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-testing-library":"^7.16.2","@typescript-eslint/eslint-plugin":"^8.57.2","eslint-plugin-simple-import-sort":"^12.1.1","eslint-import-resolver-typescript":"^4.4.4"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.0.6_1774441105130_0.4672723676595152","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@daformat/react-headless-carousel","version":"1.0.7","keywords":["carousel","react","headless","carousel-component","react-component"],"author":{"name":"Mathieu Jouhet"},"license":"MIT","_id":"@daformat/react-headless-carousel@1.0.7","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"4cd58772973520dafc3ac18390d9995043cf7e56","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.0.7.tgz","fileCount":15,"integrity":"sha512-PDmz6/MDkaSRVpft2qpvVkTFrongneKETrpmsx/Ea/Rvrg7NLYIU0vU5pLLzWE+5R3/lh4aOOeTRVTKc5K0neQ==","signatures":[{"sig":"MEYCIQCVo7sOX/geJfyi73qY2KidFj3viOJgG4qbin30tpjfMwIhAIY4Pn8cIm38/JIgwwZsddA9ZKAdIg/buUucPd6A+AjP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83839},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.0.7.tgz","types":"dist/index.d.ts","scripts":{"ci":"pnpm build && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","lint:js":"eslint .","lint:js:fix":"eslint --fix .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/3246d4869be7b69960bbb0768f233aee/daformat-react-headless-carousel-1.0.7.tgz","_integrity":"sha512-PDmz6/MDkaSRVpft2qpvVkTFrongneKETrpmsx/Ea/Rvrg7NLYIU0vU5pLLzWE+5R3/lh4aOOeTRVTKc5K0neQ==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","react":"^18.3.1","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@eslint/eslintrc":"^3.3.5","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","eslint-plugin-import":"^2.32.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.57.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-testing-library":"^7.16.2","@typescript-eslint/eslint-plugin":"^8.57.2","eslint-plugin-simple-import-sort":"^12.1.1","eslint-import-resolver-typescript":"^4.4.4"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.0.7_1774451979950_0.97147380820669","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@daformat/react-headless-carousel","version":"1.0.8","keywords":["carousel","react","headless","carousel-component","react-component"],"author":{"name":"Mathieu Jouhet"},"license":"MIT","_id":"@daformat/react-headless-carousel@1.0.8","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"93b206db168a4b7cbabdbb9a22f413ff267f9004","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.0.8.tgz","fileCount":15,"integrity":"sha512-4wfqL2X6qGhOcYhS0WDpFXXX1Jk6TDGk6xAkZ0mklROzU4gezSivX46HsF4YxN5oqlM8jyBColmgJccfN3VIEg==","signatures":[{"sig":"MEYCIQDwTF+5H7rzGercFpzBlKdqS19FWrbwjbbnz1kfy7c1LAIhAO2kUiT0KuHaIx/AJ+YaL5uoRbMCqp08d0dlF9KD/5Ac","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83710},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.0.8.tgz","types":"dist/index.d.ts","scripts":{"ci":"pnpm build && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","lint:js":"eslint .","lint:js:fix":"eslint --fix .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/fb07ba55ee8bd4919d87d6bd1ecd713a/daformat-react-headless-carousel-1.0.8.tgz","_integrity":"sha512-4wfqL2X6qGhOcYhS0WDpFXXX1Jk6TDGk6xAkZ0mklROzU4gezSivX46HsF4YxN5oqlM8jyBColmgJccfN3VIEg==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","react":"^18.3.1","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@eslint/eslintrc":"^3.3.5","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","eslint-plugin-import":"^2.32.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.57.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-testing-library":"^7.16.2","@typescript-eslint/eslint-plugin":"^8.57.2","eslint-plugin-simple-import-sort":"^12.1.1","eslint-import-resolver-typescript":"^4.4.4"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.0.8_1774459133250_0.9104903845026926","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@daformat/react-headless-carousel","version":"1.0.9","keywords":["carousel","react","headless","carousel-component","react-component"],"author":{"name":"Mathieu Jouhet"},"license":"MIT","_id":"@daformat/react-headless-carousel@1.0.9","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"48c3d73244e3af939e0c6c358ac9993100c6766e","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.0.9.tgz","fileCount":15,"integrity":"sha512-9JxQU4VVg/b5gyZ3mytvES/bXBL/UOWlnC+YIGkQDjPMYuN7NuEWTRgpacSewoFJsey+AdNKR68JklGGRglb9A==","signatures":[{"sig":"MEYCIQDN9EcNCPlmv4aq1bQgViGySr56YYfc2E7gXEe+50OalgIhANqblhwbWhJ/y9QNBuSGhqK1PhcvGwuf+2QikrX6M1AI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100986},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.0.9.tgz","types":"dist/index.d.ts","scripts":{"ci":"pnpm build && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","lint:js":"eslint .","lint:js:fix":"eslint --fix .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/60980574e3bb6677acd42f00a40b25ee/daformat-react-headless-carousel-1.0.9.tgz","_integrity":"sha512-9JxQU4VVg/b5gyZ3mytvES/bXBL/UOWlnC+YIGkQDjPMYuN7NuEWTRgpacSewoFJsey+AdNKR68JklGGRglb9A==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","react":"^18.3.1","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@eslint/eslintrc":"^3.3.5","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","eslint-plugin-import":"^2.32.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.57.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-testing-library":"^7.16.2","@typescript-eslint/eslint-plugin":"^8.57.2","eslint-plugin-simple-import-sort":"^12.1.1","eslint-import-resolver-typescript":"^4.4.4"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.0.9_1775219919115_0.47399978712054636","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@daformat/react-headless-carousel","version":"1.0.10","keywords":["carousel","react","headless","carousel-component","react-component"],"author":{"name":"Mathieu Jouhet"},"license":"MIT","_id":"@daformat/react-headless-carousel@1.0.10","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"a3eea08e5c5a136dd994d520ab44c940b5290679","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.0.10.tgz","fileCount":15,"integrity":"sha512-GRdYUJgEFhSBoP7xSdyN7yCOdxJ/xb2mcKAo+QJZqw5z53vEq5KpB9P4ykinSC3Mms/ER4iNSodVagi8hi5I0g==","signatures":[{"sig":"MEUCIQDd7YULCDL7Y+++chKvk0nx8R178uHO5YTCi+2kF+jZ5wIgQ+GkxYDqp8WWRLPVN0wtVH5FSeW3k55eb6RChuH/XLE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101328},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.0.10.tgz","types":"dist/index.d.ts","scripts":{"ci":"pnpm build && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","lint:js":"eslint .","lint:js:fix":"eslint --fix .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/292fecf51ba9532c998d49f143df34d5/daformat-react-headless-carousel-1.0.10.tgz","_integrity":"sha512-GRdYUJgEFhSBoP7xSdyN7yCOdxJ/xb2mcKAo+QJZqw5z53vEq5KpB9P4ykinSC3Mms/ER4iNSodVagi8hi5I0g==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","react":"^18.3.1","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@eslint/eslintrc":"^3.3.5","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","eslint-plugin-import":"^2.32.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.57.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-testing-library":"^7.16.2","@typescript-eslint/eslint-plugin":"^8.57.2","eslint-plugin-simple-import-sort":"^12.1.1","eslint-import-resolver-typescript":"^4.4.4"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.0.10_1775246324248_0.6937553600575046","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@daformat/react-headless-carousel","version":"1.0.11","keywords":["carousel","react","headless","carousel-component","react-component"],"author":{"name":"Mathieu Jouhet"},"license":"MIT","_id":"@daformat/react-headless-carousel@1.0.11","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"e7dd8174bd68b24cde6dd4a084f80649b3404e4c","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.0.11.tgz","fileCount":15,"integrity":"sha512-27HqJlM8y9Wlj01uYS21EbHF3/NXVbUDI8Z6eg4IfCgQpy5QrcyY/bxGHB5H2t+ea8gui4Y7JKnPcbrENyvTKQ==","signatures":[{"sig":"MEUCIQCCsn3+wAppYGZaBpfHoLA6cdtcAZ+NWHdDPuIZeTqibAIgPB9K4HoA7ljvsGxPptu+leYjE8izddGX8KySvkTpU7A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102076},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.0.11.tgz","types":"dist/index.d.ts","scripts":{"ci":"pnpm build && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","lint:js":"eslint .","lint:js:fix":"eslint --fix .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/6416cd286738e8bfd48dda79209cd1db/daformat-react-headless-carousel-1.0.11.tgz","_integrity":"sha512-27HqJlM8y9Wlj01uYS21EbHF3/NXVbUDI8Z6eg4IfCgQpy5QrcyY/bxGHB5H2t+ea8gui4Y7JKnPcbrENyvTKQ==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","react":"^18.3.1","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@eslint/eslintrc":"^3.3.5","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","eslint-plugin-import":"^2.32.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.57.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-testing-library":"^7.16.2","@typescript-eslint/eslint-plugin":"^8.57.2","eslint-plugin-simple-import-sort":"^12.1.1","eslint-import-resolver-typescript":"^4.4.4"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.0.11_1775310478411_0.9505603183638727","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@daformat/react-headless-carousel","version":"1.0.12","keywords":["carousel","react","headless","carousel-component","react-component"],"author":{"name":"Mathieu Jouhet"},"license":"MIT","_id":"@daformat/react-headless-carousel@1.0.12","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"206a919498c45976a01592ad45fc4f973945c680","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.0.12.tgz","fileCount":15,"integrity":"sha512-zEa2B43wlZopa8R+5IYEhp4EoMCREy1828FoAPR1eCr8i32lBcPJfJy7pzZp5tZqLDFEy7A5FgRX8juP6eEKIQ==","signatures":[{"sig":"MEQCIDg08fjrFjH8BAQVRKM6b/PMdQqNZ5zNhHMpz9il0KQjAiAP/4QXlp5t0ugdu21OC3H8wcC/f2WvEx+Sd8w9GlKBkA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102407},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.0.12.tgz","types":"dist/index.d.ts","scripts":{"ci":"pnpm build && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","lint:js":"eslint .","lint:js:fix":"eslint --fix .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/1a842c8b63bcb1a3caf8708e91693f17/daformat-react-headless-carousel-1.0.12.tgz","_integrity":"sha512-zEa2B43wlZopa8R+5IYEhp4EoMCREy1828FoAPR1eCr8i32lBcPJfJy7pzZp5tZqLDFEy7A5FgRX8juP6eEKIQ==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","react":"^18.3.1","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@eslint/eslintrc":"^3.3.5","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","eslint-plugin-import":"^2.32.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.57.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-testing-library":"^7.16.2","@typescript-eslint/eslint-plugin":"^8.57.2","eslint-plugin-simple-import-sort":"^12.1.1","eslint-import-resolver-typescript":"^4.4.4"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.0.12_1776939701069_0.5021003216410456","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"@daformat/react-headless-carousel","version":"1.0.13","keywords":["carousel","react","headless","carousel-component","react-component"],"author":{"name":"Mathieu Jouhet"},"license":"Zero-Clause BSD","_id":"@daformat/react-headless-carousel@1.0.13","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"5503c8b3a0cc7eed198e398308202067b817f794","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.0.13.tgz","fileCount":15,"integrity":"sha512-A9kAiYYYOitWum3OX3kSfB2TC8kB5wEgfoWdfaV+bAPcOhZZxXjLNcwE+U6bbW8/kyNQp6ZGpWBBnNj5SuP7VQ==","signatures":[{"sig":"MEUCIQDFwRqMS9FShZf9RaKlEQLDMS65cf7nS60JBbZ2JcO34AIgA5M9+XG/XDfB40CrptQ5vuowZJ3v9aerCxyUt8qVSVU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102033},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.0.13.tgz","types":"dist/index.d.ts","scripts":{"ci":"pnpm build && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","lint:js":"eslint .","lint:js:fix":"eslint --fix .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/aa399e1e8bfca0b2c0b8b0007c6dadff/daformat-react-headless-carousel-1.0.13.tgz","_integrity":"sha512-A9kAiYYYOitWum3OX3kSfB2TC8kB5wEgfoWdfaV+bAPcOhZZxXjLNcwE+U6bbW8/kyNQp6ZGpWBBnNj5SuP7VQ==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","react":"^18.3.1","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@eslint/eslintrc":"^3.3.5","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","eslint-plugin-import":"^2.32.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.57.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-testing-library":"^7.16.2","@typescript-eslint/eslint-plugin":"^8.57.2","eslint-plugin-simple-import-sort":"^12.1.1","eslint-import-resolver-typescript":"^4.4.4"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.0.13_1776949394577_0.766782729471164","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"@daformat/react-headless-carousel","version":"1.0.14","keywords":["carousel","react","headless","carousel-component","react-component"],"author":{"name":"Mathieu Jouhet"},"license":"Zero-Clause BSD","_id":"@daformat/react-headless-carousel@1.0.14","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"9face0a3978fd2e778bfa959c81274f88d1961b1","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.0.14.tgz","fileCount":15,"integrity":"sha512-2SVtAI/COMIj3T8DpYOqG46uxBEqnUhzakEHWj9wUZFoUKmSmEeKuCiH1afW/+MWq+DtjJJ9l/0dAYdFKylbxA==","signatures":[{"sig":"MEUCIQD8NqHyHRdP1n2b6hxR1hxfoTLN2bQIsmpfgznG7MzlGAIgGxAuGp2jygawgjfmFt1iWaEfj0b4eEQpACuxM6L6vz8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108982},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.0.14.tgz","types":"dist/index.d.ts","scripts":{"ci":"pnpm build && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","lint:js":"eslint .","lint:js:fix":"eslint --fix .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/f56ded310c734c17babd30393dff060a/daformat-react-headless-carousel-1.0.14.tgz","_integrity":"sha512-2SVtAI/COMIj3T8DpYOqG46uxBEqnUhzakEHWj9wUZFoUKmSmEeKuCiH1afW/+MWq+DtjJJ9l/0dAYdFKylbxA==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","react":"^18.3.1","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@eslint/eslintrc":"^3.3.5","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","eslint-plugin-import":"^2.32.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.57.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-testing-library":"^7.16.2","@typescript-eslint/eslint-plugin":"^8.57.2","eslint-plugin-simple-import-sort":"^12.1.1","eslint-import-resolver-typescript":"^4.4.4"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.0.14_1777722752512_0.0013056810109115524","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"@daformat/react-headless-carousel","version":"1.0.15","keywords":["carousel","react","headless","carousel-component","react-component"],"author":{"name":"Mathieu Jouhet"},"license":"Zero-Clause BSD","_id":"@daformat/react-headless-carousel@1.0.15","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"134bbbf7f311e3472726d74c14498334cfcaf006","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.0.15.tgz","fileCount":15,"integrity":"sha512-e0SFsxTR98BhIb9Rq6FDx3B/LKWTJlrymO3890NzRv8I/64bJslUC6qWpnRNDUy3ePLAOyITQCU9nrXcG20JNA==","signatures":[{"sig":"MEUCIQC7azBoknu7BAQDNnoqDjHy/felEQFAjad7M7IT52PTJwIgJkWLTUF4RO6kTTBu0WAH+GLtewzbGjsL3l2pZVa2trc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":109448},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.0.15.tgz","types":"dist/index.d.ts","scripts":{"ci":"pnpm build && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","lint:js":"eslint .","lint:js:fix":"eslint --fix .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/57666f4a3cc7e108ff6b811c0e7920ab/daformat-react-headless-carousel-1.0.15.tgz","_integrity":"sha512-e0SFsxTR98BhIb9Rq6FDx3B/LKWTJlrymO3890NzRv8I/64bJslUC6qWpnRNDUy3ePLAOyITQCU9nrXcG20JNA==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","react":"^18.3.1","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@eslint/eslintrc":"^3.3.5","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","eslint-plugin-import":"^2.32.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.57.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-testing-library":"^7.16.2","@typescript-eslint/eslint-plugin":"^8.57.2","eslint-plugin-simple-import-sort":"^12.1.1","eslint-import-resolver-typescript":"^4.4.4"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.0.15_1779084978786_0.40208607714071753","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"@daformat/react-headless-carousel","version":"1.0.16","keywords":["carousel","react","headless","carousel-component","react-component"],"author":{"name":"Mathieu Jouhet"},"license":"Zero-Clause BSD","_id":"@daformat/react-headless-carousel@1.0.16","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"7c745048f62bc2395f26c38ad5acb9626f98ce3f","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.0.16.tgz","fileCount":15,"integrity":"sha512-c3gIs2j0A9FfdmbgFy/XIgDcggyuOollX/TGN1sCB1LbqVr8xf/1oFw36DzEvUhcoqHXWIkjoMS84G8lYaDIwg==","signatures":[{"sig":"MEUCIQCcOGurLy4Z0YbpCwFG6IQVyDteAFfuMr6rMxudz4QKhAIgEC85jZm1JCOA+GU+fsCOmibY6Zfv1yi2/OEd9TGNyeM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":109596},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.0.16.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"ci":"pnpm build && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","lint:js":"eslint .","lint:js:fix":"eslint --fix .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/1e78f7efb70e088e4ef45331a94cf8e6/daformat-react-headless-carousel-1.0.16.tgz","_integrity":"sha512-c3gIs2j0A9FfdmbgFy/XIgDcggyuOollX/TGN1sCB1LbqVr8xf/1oFw36DzEvUhcoqHXWIkjoMS84G8lYaDIwg==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","react":"^18.3.1","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@eslint/eslintrc":"^3.3.5","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","eslint-plugin-import":"^2.32.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.57.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-testing-library":"^7.16.2","@typescript-eslint/eslint-plugin":"^8.57.2","eslint-plugin-simple-import-sort":"^12.1.1","eslint-import-resolver-typescript":"^4.4.4"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.0.16_1779181664353_0.7382276785361708","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"@daformat/react-headless-carousel","version":"1.0.17","keywords":["carousel","react","headless","carousel-component","react-component"],"author":{"name":"Mathieu Jouhet"},"license":"Zero-Clause BSD","_id":"@daformat/react-headless-carousel@1.0.17","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"283281a09d7b8d5978648f27d4554ba70a46f793","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.0.17.tgz","fileCount":15,"integrity":"sha512-xzRmN3ckSmgEBMuQsBu6oBzHPh3/ZW7pWNDlkuI67ntFB2pytxAhe6hN+Qa295WJjR0S3OXfVEZkD+GGBUi1gg==","signatures":[{"sig":"MEUCIHR8co67/VabzgC8CcNK3bXhQX2a/6DeAeHFzDYdpygzAiEAwR9Ek+dd6sPgq4si6HN7EJpIhHEOlgND3G6uTvJz18I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110234},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.0.17.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"ci":"pnpm build && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","lint:js":"eslint .","lint:js:fix":"eslint --fix .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/4c5baf3f064ba09bb0fbcafe9f5170a6/daformat-react-headless-carousel-1.0.17.tgz","_integrity":"sha512-xzRmN3ckSmgEBMuQsBu6oBzHPh3/ZW7pWNDlkuI67ntFB2pytxAhe6hN+Qa295WJjR0S3OXfVEZkD+GGBUi1gg==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","react":"^18.3.1","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@eslint/eslintrc":"^3.3.5","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","eslint-plugin-import":"^2.32.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.57.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-testing-library":"^7.16.2","@typescript-eslint/eslint-plugin":"^8.57.2","eslint-plugin-simple-import-sort":"^12.1.1","eslint-import-resolver-typescript":"^4.4.4"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.0.17_1779646612442_0.6024851876539978","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"@daformat/react-headless-carousel","version":"1.0.18","keywords":["carousel","react","headless","carousel-component","react-component"],"author":{"name":"Mathieu Jouhet"},"license":"Zero-Clause BSD","_id":"@daformat/react-headless-carousel@1.0.18","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"00290fcbb522d9d529d2066f6c8c82a317950adc","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.0.18.tgz","fileCount":15,"integrity":"sha512-z6oly4Z+D1Qru/xdNVYQiexKLSrusrTGBFkQjmP6mcDqp4FHhqA9chYU/JaNYHuK/07vE5/CJRJLDgX0enit7A==","signatures":[{"sig":"MEUCIQDtVMHT8IuH9vnjntvfn5Y8MOfNFThKj/QlXBhFztshywIgYtcT4aHX4bB714NR0FMWwLQQFZR1gWdGBcuk8mBcV4Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110422},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.0.18.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"ci":"pnpm build && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","lint:js":"eslint .","lint:js:fix":"eslint --fix .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/c83105b3eac1112a44d3bf6581dbd895/daformat-react-headless-carousel-1.0.18.tgz","_integrity":"sha512-z6oly4Z+D1Qru/xdNVYQiexKLSrusrTGBFkQjmP6mcDqp4FHhqA9chYU/JaNYHuK/07vE5/CJRJLDgX0enit7A==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","react":"^18.3.1","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@eslint/eslintrc":"^3.3.5","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","eslint-plugin-import":"^2.32.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.57.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-testing-library":"^7.16.2","@typescript-eslint/eslint-plugin":"^8.57.2","eslint-plugin-simple-import-sort":"^12.1.1","eslint-import-resolver-typescript":"^4.4.4"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.0.18_1779646891858_0.6339847699274259","host":"s3://npm-registry-packages-npm-production"}},"1.0.19":{"name":"@daformat/react-headless-carousel","version":"1.0.19","keywords":["carousel","react","headless","carousel-component","react-component"],"author":{"name":"Mathieu Jouhet"},"license":"Zero-Clause BSD","_id":"@daformat/react-headless-carousel@1.0.19","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"ccefaeb5c35e8cbb1dc6e35ed03226f03755bbd4","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.0.19.tgz","fileCount":15,"integrity":"sha512-747pyFLls4oe+MwIeTpVMeUN6KxrB9RgT2j5JHSUDGzvzqztfjx4mJz4+n/hsvWlucDMC8+BbEUvx4I7h0xAJA==","signatures":[{"sig":"MEUCIQDp9zBu7HlaNXYcMUvGkleHXjRElMwpVHfw5PTteahiWwIgL0e58fpMxfZ8WPUJvwio0OUBSdl5iXCIOtAkngryPv0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110974},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.0.19.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"ci":"pnpm build && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","lint:js":"eslint .","lint:js:fix":"eslint --fix .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/6c7145cb700c8193ef2726fc7c1f70a1/daformat-react-headless-carousel-1.0.19.tgz","_integrity":"sha512-747pyFLls4oe+MwIeTpVMeUN6KxrB9RgT2j5JHSUDGzvzqztfjx4mJz4+n/hsvWlucDMC8+BbEUvx4I7h0xAJA==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","react":"^18.3.1","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@eslint/eslintrc":"^3.3.5","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","eslint-plugin-import":"^2.32.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.57.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-testing-library":"^7.16.2","@typescript-eslint/eslint-plugin":"^8.57.2","eslint-plugin-simple-import-sort":"^12.1.1","eslint-import-resolver-typescript":"^4.4.4"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.0.19_1779647288656_0.2849014110940613","host":"s3://npm-registry-packages-npm-production"}},"1.0.20":{"name":"@daformat/react-headless-carousel","version":"1.0.20","keywords":["carousel","react","headless","carousel-component","react-component"],"author":{"name":"Mathieu Jouhet"},"license":"Zero-Clause BSD","_id":"@daformat/react-headless-carousel@1.0.20","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"b851c4fa5350083d5c22cd0b06c2d57892c16a80","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.0.20.tgz","fileCount":15,"integrity":"sha512-QUo8USwGBsdFjUlWlVI6An5B3K/yl4nVXnyppRUSy6XxO4f4yoaOcFSXVl7JFyF7w5sXu2u/1b03iREAdWUGvw==","signatures":[{"sig":"MEUCIQCTougwGm0FZQylw05SEM1F1brPNtBHU370xBigxFEttAIgAnFRn/RHOywvtZqGCz0fB0PgIa9Dfdv43HbAeiND9zc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110974},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.0.20.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"ci":"pnpm build && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","lint:js":"eslint .","lint:js:fix":"eslint --fix .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/96fbf55ead53bc96482ea40eafa4ed8d/daformat-react-headless-carousel-1.0.20.tgz","_integrity":"sha512-QUo8USwGBsdFjUlWlVI6An5B3K/yl4nVXnyppRUSy6XxO4f4yoaOcFSXVl7JFyF7w5sXu2u/1b03iREAdWUGvw==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","react":"^18.3.1","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@eslint/eslintrc":"^3.3.5","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","eslint-plugin-import":"^2.32.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.57.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-testing-library":"^7.16.2","@typescript-eslint/eslint-plugin":"^8.57.2","eslint-plugin-simple-import-sort":"^12.1.1","eslint-import-resolver-typescript":"^4.4.4"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.0.20_1779647469348_0.5926990189857084","host":"s3://npm-registry-packages-npm-production"}},"1.0.21":{"name":"@daformat/react-headless-carousel","version":"1.0.21","keywords":["carousel","react","headless","carousel-component","react-component"],"author":{"name":"Mathieu Jouhet"},"license":"Zero-Clause BSD","_id":"@daformat/react-headless-carousel@1.0.21","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"8081e52d1bf1172b46de58dc9f91ea33e1ea69d5","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.0.21.tgz","fileCount":15,"integrity":"sha512-3rwVzMAlaJiqfv/QB34MNE5FAj2fNXc9g751CzytJojxoRLKJs9S7f/MDn+8e1rtKed9S1qt6UohnaYS6GYzCQ==","signatures":[{"sig":"MEUCIB8u3Xl8R7W/RU7XF0pkdrJoRYjtknCqKBzhBHvcrtMnAiEAyDf7OpbctkMSVxGXPJgqpZz+m1dz2gZAIaCgpJhHlJ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111258},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.0.21.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"ci":"pnpm build && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","lint:js":"eslint .","lint:js:fix":"eslint --fix .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/25dfc71a7b53b218f8ef3a09ea8d573c/daformat-react-headless-carousel-1.0.21.tgz","_integrity":"sha512-3rwVzMAlaJiqfv/QB34MNE5FAj2fNXc9g751CzytJojxoRLKJs9S7f/MDn+8e1rtKed9S1qt6UohnaYS6GYzCQ==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.1","react":"^18.3.1","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@eslint/eslintrc":"^3.3.5","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","eslint-plugin-import":"^2.32.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.57.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-testing-library":"^7.16.2","@typescript-eslint/eslint-plugin":"^8.57.2","eslint-plugin-simple-import-sort":"^12.1.1","eslint-import-resolver-typescript":"^4.4.4"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.0.21_1779647878338_0.5035007404430967","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@daformat/react-headless-carousel","version":"1.1.0","keywords":["carousel","react","headless","carousel-component","react-component"],"author":{"name":"Mathieu Jouhet"},"license":"Zero-Clause BSD","_id":"@daformat/react-headless-carousel@1.1.0","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"1c87ebd4e6c1acead38516b36273a530c8749fbf","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.1.0.tgz","fileCount":18,"integrity":"sha512-+MBH1YHbZPRQyMK7RnaX6OpyDUthVjztwW2HH8tzpPMsB7+ywrPVNMk6DDqHSHMQLgaT+7Hin5MRgmG4Kjvvtg==","signatures":[{"sig":"MEUCIC6LkVZPk3vQEY8l1oa6LvQwsWrpCBwEKs5+2gXoHZLBAiEAmDT0+7KJX+ATsFqBmx9UYScVJk59eL7SMgAtM5mgPeA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":195004},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.1.0.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"ci":"pnpm build && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","lint:js":"eslint .","playground":"vite --config .playground/vite.config.ts","lint:js:fix":"eslint --fix .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/2f985abb493a048255e3b2ff3d317bdb/daformat-react-headless-carousel-1.1.0.tgz","_integrity":"sha512-+MBH1YHbZPRQyMK7RnaX6OpyDUthVjztwW2HH8tzpPMsB7+ywrPVNMk6DDqHSHMQLgaT+7Hin5MRgmG4Kjvvtg==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.2","jsdom":"^29.0.1","react":"^18.3.1","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@eslint/eslintrc":"^3.3.5","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","eslint-plugin-import":"^2.32.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.57.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-testing-library":"^7.16.2","@typescript-eslint/eslint-plugin":"^8.57.2","eslint-plugin-simple-import-sort":"^12.1.1","eslint-import-resolver-typescript":"^4.4.4"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.1.0_1785160781487_0.2623691028497015","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@daformat/react-headless-carousel","version":"1.1.1","keywords":["carousel","react","headless","carousel-component","react-component"],"author":{"name":"Mathieu Jouhet"},"license":"Zero-Clause BSD","_id":"@daformat/react-headless-carousel@1.1.1","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"1ae56146973d0656424e407d24b437ffb89ee6fd","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.1.1.tgz","fileCount":21,"integrity":"sha512-uK65G6VImYJ/97Ix7TYhbT9LVIbS+JO3Q2WjP1VHD9Wn+09e5SQx5I5/fyjG0NiLVhOiNgazW0ZY+GDBqgkpNw==","signatures":[{"sig":"MEUCIEImYoWC1PM2HPNBD07mXn14K51fcw9hK1mZ16S8OGQMAiEA41CpTQE8rdgX47i4ObwtHw5aShIqqHxI+P9DKs8VQME=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":243917},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.1.1.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"ci":"pnpm build && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","lint:js":"eslint .","playground":"vite --config .playground/vite.config.ts","lint:js:fix":"eslint --fix .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/f77925c3f21acd6a536d16314b99dd7b/daformat-react-headless-carousel-1.1.1.tgz","_integrity":"sha512-uK65G6VImYJ/97Ix7TYhbT9LVIbS+JO3Q2WjP1VHD9Wn+09e5SQx5I5/fyjG0NiLVhOiNgazW0ZY+GDBqgkpNw==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.2","jsdom":"^29.0.1","react":"^18.3.1","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@eslint/eslintrc":"^3.3.5","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","eslint-plugin-import":"^2.32.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.57.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-testing-library":"^7.16.2","@typescript-eslint/eslint-plugin":"^8.57.2","eslint-plugin-simple-import-sort":"^12.1.1","eslint-import-resolver-typescript":"^4.4.4"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.1.1_1785235485541_0.5406266199458505","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@daformat/react-headless-carousel","version":"1.1.2","keywords":["carousel","react","headless","carousel-component","react-component"],"author":{"name":"Mathieu Jouhet"},"license":"Zero-Clause BSD","_id":"@daformat/react-headless-carousel@1.1.2","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"f16d668b2a673ff125608dbec2eae7d068dedacf","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.1.2.tgz","fileCount":21,"integrity":"sha512-FV2VtI0gWPaNjZ1WaUVXFfE+W1uuBX8AFHhXsJ/BP7GY99VuCzO76dtutADiVP9spPtnSgd2ECGK2wGvv8fNrg==","signatures":[{"sig":"MEUCIDfXuIG+ajM2zb8YsYW2GzeCWtPszDmidmRtTtxfobhBAiEA79j8qS371cxK/2m/xxx4EqvTNAGwEevJdh7GEuSUdT0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":247648},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.1.2.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"ci":"pnpm build && pnpm typecheck && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","lint:js":"eslint .","typecheck":"tsc -p tsconfig.test.json","playground":"vite --config .playground/vite.config.ts","lint:js:fix":"eslint --fix .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/0b4995d4f3992fff53946e09fed0603b/daformat-react-headless-carousel-1.1.2.tgz","_integrity":"sha512-FV2VtI0gWPaNjZ1WaUVXFfE+W1uuBX8AFHhXsJ/BP7GY99VuCzO76dtutADiVP9spPtnSgd2ECGK2wGvv8fNrg==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.2","jsdom":"^29.0.1","react":"^18.3.1","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@eslint/eslintrc":"^3.3.5","@types/react-dom":"^18.3.1","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","eslint-plugin-import":"^2.32.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.57.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-testing-library":"^7.16.2","@typescript-eslint/eslint-plugin":"^8.57.2","eslint-plugin-simple-import-sort":"^12.1.1","eslint-import-resolver-typescript":"^4.4.4"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.1.2_1785239730231_0.9158436529699909","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@daformat/react-headless-carousel","version":"1.1.3","keywords":["carousel","react","headless","carousel-component","react-component","loop","autoplay","drag-to-scroll","inertia","rubber-banding","snapping"],"author":{"name":"Mathieu Jouhet"},"license":"Zero-Clause BSD","_id":"@daformat/react-headless-carousel@1.1.3","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"8baed2dfa47eecedd9064ebecafcd5f43d9d6c12","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.1.3.tgz","fileCount":21,"integrity":"sha512-0wnkN89L/Ws+o58TPJSBnJpXj1gdxlrQlecjIVjz8HtqMBIrftxaO/VU3W8QIXZonC6Oenog6QHFSUjzOXsTWg==","signatures":[{"sig":"MEYCIQC/74ykI/x3/SM13bsiWnF8MwliL4S2PVpXoGRS2437VgIhAIC1jOBDE7ttTBwrtw8AOgpH6UGodf3e4K9Zw39Tg0nW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":247770},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.1.3.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"ci":"pnpm build && pnpm typecheck && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","lint:js":"eslint .","typecheck":"tsc -p tsconfig.test.json","playground":"vite --config .playground/vite.config.ts","lint:js:fix":"eslint --fix .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/de49028a91f91cfa7051ff64aab86f95/daformat-react-headless-carousel-1.1.3.tgz","_integrity":"sha512-0wnkN89L/Ws+o58TPJSBnJpXj1gdxlrQlecjIVjz8HtqMBIrftxaO/VU3W8QIXZonC6Oenog6QHFSUjzOXsTWg==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping, looping, autoplay and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.2","jsdom":"^29.0.1","react":"^18.3.1","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@eslint/eslintrc":"^3.3.5","@types/react-dom":"^18.3.1","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","eslint-plugin-import":"^2.32.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.57.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-testing-library":"^7.16.2","@typescript-eslint/eslint-plugin":"^8.57.2","eslint-plugin-simple-import-sort":"^12.1.1","eslint-import-resolver-typescript":"^4.4.4"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.1.3_1785240324036_0.3350666311206607","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@daformat/react-headless-carousel","version":"1.2.0","keywords":["carousel","react","headless","carousel-component","react-component","loop","autoplay","drag-to-scroll","inertia","rubber-banding","snapping"],"author":{"name":"Mathieu Jouhet"},"license":"Zero-Clause BSD","_id":"@daformat/react-headless-carousel@1.2.0","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"40f6f3d881cd813ce766ca5a6ff8b3d8337632ca","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.2.0.tgz","fileCount":21,"integrity":"sha512-eOa8DVMKCYteGpT2/IKA4I1fJ40VMXJ2QRbLyyDUOqWEJEC57gP7fVE/SYezI1H+i3g5b6SZOIo8MTMRvc9CJw==","signatures":[{"sig":"MEUCIB7ZQU7xdJR5gcTHwjX4AQzDF/6Vva3nnhTowCuCtSKVAiEA1OLZrjAOBHEKUfOxFSBziWQ8QbfQHIxTWSOTipjyfFU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":259737},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.2.0.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"ci":"pnpm build && pnpm typecheck && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","lint:js":"eslint .","typecheck":"tsc -p tsconfig.test.json","playground":"vite --config .playground/vite.config.ts","lint:js:fix":"eslint --fix .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/27ded80dd5795a8ca4f957ac19f26e41/daformat-react-headless-carousel-1.2.0.tgz","_integrity":"sha512-eOa8DVMKCYteGpT2/IKA4I1fJ40VMXJ2QRbLyyDUOqWEJEC57gP7fVE/SYezI1H+i3g5b6SZOIo8MTMRvc9CJw==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping, looping, autoplay and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.2","jsdom":"^29.0.1","react":"^18.3.1","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@eslint/eslintrc":"^3.3.5","@types/react-dom":"^18.3.1","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","eslint-plugin-import":"^2.32.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.57.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-testing-library":"^7.16.2","@typescript-eslint/eslint-plugin":"^8.57.2","eslint-plugin-simple-import-sort":"^12.1.1","eslint-import-resolver-typescript":"^4.4.4"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.2.0_1785266612440_0.14692735863194373","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@daformat/react-headless-carousel","version":"1.2.1","keywords":["carousel","react","headless","carousel-component","react-component","loop","autoplay","drag-to-scroll","inertia","rubber-banding","snapping"],"author":{"name":"Mathieu Jouhet"},"license":"Zero-Clause BSD","_id":"@daformat/react-headless-carousel@1.2.1","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"19b8e5b91023fefa5100a4672b84edbdc53b5e29","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.2.1.tgz","fileCount":21,"integrity":"sha512-EgAnXlwv5YaY0sRv9+BjxrfVDhSMEp9KhYpJd4ocwPgvAn+ZnnAXsTzyoNOHDcjL2gaEMpEgWLFoQee0vyiY5w==","signatures":[{"sig":"MEQCIGEA3g2BxYE0u3aUbOrLBjJcZlybdhAdoueHPOWvLz/GAiAjAgjT9RX1VllI+bOU8VlYh3N6zfjY8hneCBpqZK+iNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260205},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.2.1.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"ci":"pnpm build && pnpm typecheck && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","lint:js":"eslint .","typecheck":"tsc -p tsconfig.test.json","playground":"vite --config .playground/vite.config.ts","lint:js:fix":"eslint --fix .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/155629f21749d026e4636d04965de566/daformat-react-headless-carousel-1.2.1.tgz","_integrity":"sha512-EgAnXlwv5YaY0sRv9+BjxrfVDhSMEp9KhYpJd4ocwPgvAn+ZnnAXsTzyoNOHDcjL2gaEMpEgWLFoQee0vyiY5w==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping, looping, autoplay and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.2","jsdom":"^29.0.1","react":"^18.3.1","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@eslint/eslintrc":"^3.3.5","@types/react-dom":"^18.3.1","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","eslint-plugin-import":"^2.32.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.57.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-testing-library":"^7.16.2","@typescript-eslint/eslint-plugin":"^8.57.2","eslint-plugin-simple-import-sort":"^12.1.1","eslint-import-resolver-typescript":"^4.4.4"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.2.1_1789120667745_0.27283200645802896","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@daformat/react-headless-carousel","version":"1.2.2","keywords":["carousel","react","headless","carousel-component","react-component","loop","autoplay","drag-to-scroll","inertia","rubber-banding","snapping"],"author":{"name":"Mathieu Jouhet"},"license":"Zero-Clause BSD","_id":"@daformat/react-headless-carousel@1.2.2","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"homepage":"https://github.com/daformat/react-headless-carousel","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"33457a9aa9e9f3b41f5f7dd42852e33ab3953fec","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.2.2.tgz","fileCount":21,"integrity":"sha512-zQv8xfIJCW5HAYGmmyyMxWWkjh6WCbiu7pFRiyFpvLOSJS0S7rvmg2WXVQJ8/enIw+2fd1qeRUD8pOwSC/LJXA==","signatures":[{"sig":"MEUCIE0Vh+u9joYjaMIEDPS+ZuK6ZNBYxLZwQr8ZPIC1dZ+vAiEA2A0DyF+JGKV8715Pck3eYDAcQeQ0dQVYHLIaySAWTEs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD1F80+Qfqy9NaoQkyFahbTuBGp2KdS3XjU0tqtS3MbpAIhALr57oocmWrTVR784lsR+nS1neLX/6rXSFWdfmkEIme5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260670},"main":"dist/index.js","type":"module","_from":"file:daformat-react-headless-carousel-1.2.2.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"ci":"pnpm build && pnpm typecheck && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","lint:js":"eslint .","typecheck":"tsc -p tsconfig.test.json","playground":"vite --config .playground/vite.config.ts","lint:js:fix":"eslint --fix .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/cc4b1b1f7412855baeece2fedb53e0e8/daformat-react-headless-carousel-1.2.2.tgz","_integrity":"sha512-zQv8xfIJCW5HAYGmmyyMxWWkjh6WCbiu7pFRiyFpvLOSJS0S7rvmg2WXVQJ8/enIw+2fd1qeRUD8pOwSC/LJXA==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping, looping, autoplay and more","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.2","jsdom":"^29.0.1","react":"^18.3.1","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@eslint/eslintrc":"^3.3.5","@types/react-dom":"^18.3.1","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","eslint-plugin-import":"^2.32.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.57.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-testing-library":"^7.16.2","@typescript-eslint/eslint-plugin":"^8.57.2","eslint-plugin-simple-import-sort":"^12.1.1","eslint-import-resolver-typescript":"^4.4.4"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-headless-carousel_1.2.2_1790335185628_0.7592723421229415","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"_id":"@daformat/react-headless-carousel@1.2.3","bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"dist":{"shasum":"6714a1aa01990db1bb564416372ffb9a89ccce15","tarball":"https://registry.npmjs.org/@daformat/react-headless-carousel/-/react-headless-carousel-1.2.3.tgz","fileCount":21,"integrity":"sha512-IvBwSP1tlyx/bgWG2xYVhLgKgMCJyt9p/dvlf8TQms/5TQJ+z9kVlwywGU+PrNEjMxGC9K/70ItuEo9BMag3uQ==","signatures":[{"sig":"MEUCIQCrI4nNTtq8lJbvp9Xn0jGhLh0sA+x4G7/mPdBvzNQPKwIgUvoQTWFIWbwsSpXKu8M1f12Aa0vEYvT6P8YQb39ZDIE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGiT0uUEW8zZkpqyThj8PNaFSN4jSGo5tHw4+svVrpdSAiEAs3MxhypKCzf6K6ckDqO1RhG8YVTgi2082IFr21D+Ya8="}],"unpackedSize":261271},"main":"dist/index.js","name":"@daformat/react-headless-carousel","type":"module","_from":"file:daformat-react-headless-carousel-1.2.3.tgz","types":"dist/index.d.ts","author":{"name":"Mathieu Jouhet"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"license":"Zero-Clause BSD","scripts":{"ci":"pnpm build && pnpm typecheck && pnpm format:check && pnpm test","test":"vitest run","build":"tsc","format":"prettier --write .","lint:js":"eslint .","typecheck":"tsc -p tsconfig.test.json","playground":"vite --config .playground/vite.config.ts","lint:js:fix":"eslint --fix .","format:check":"prettier --check .","local-release":"changeset version && changeset publish"},"version":"1.2.3","_npmUser":{"name":"daformat","email":"mat.jouhet@gmail.com"},"homepage":"https://github.com/daformat/react-headless-carousel","keywords":["carousel","react","headless","carousel-component","react-component","loop","autoplay","drag-to-scroll","inertia","rubber-banding","snapping"],"_resolved":"/private/var/folders/41/0ttj_jpd7_jdpz2b7b6knhsc0000gn/T/9f74251025e5a9e7419aa807166eab6f/daformat-react-headless-carousel-1.2.3.tgz","_integrity":"sha512-IvBwSP1tlyx/bgWG2xYVhLgKgMCJyt9p/dvlf8TQms/5TQJ+z9kVlwywGU+PrNEjMxGC9K/70ItuEo9BMag3uQ==","repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"_npmVersion":"10.9.2","description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping, looping, autoplay and more","directories":{},"maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.2","jsdom":"^29.0.1","react":"^18.3.1","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.8.1","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/react":"^18.3.1","@changesets/cli":"^2.30.0","@eslint/eslintrc":"^3.3.5","@types/react-dom":"^18.3.1","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^6.0.1","eslint-plugin-import":"^2.32.0","@testing-library/react":"^16.3.2","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^8.57.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-testing-library":"^7.16.2","@typescript-eslint/eslint-plugin":"^8.57.2","eslint-plugin-simple-import-sort":"^12.1.1","eslint-import-resolver-typescript":"^4.4.4"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-headless-carousel_1.2.3_1790335737765_0.20883326885592268"}}},"time":{"created":"2026-03-24T17:55:59.225Z","modified":"2026-09-25T11:28:58.046Z","1.0.0":"2026-03-24T17:55:59.460Z","1.0.1":"2026-03-24T18:01:54.073Z","1.0.2":"2026-03-24T18:17:50.532Z","1.0.3":"2026-03-24T18:19:53.408Z","1.0.4":"2026-03-24T19:44:23.280Z","1.0.5":"2026-03-25T08:41:18.029Z","1.0.6":"2026-03-25T12:18:25.359Z","1.0.7":"2026-03-25T15:19:40.079Z","1.0.8":"2026-03-25T17:18:53.428Z","1.0.9":"2026-04-03T12:38:39.306Z","1.0.10":"2026-04-03T19:58:44.397Z","1.0.11":"2026-04-04T13:47:58.552Z","1.0.12":"2026-04-23T10:21:41.206Z","1.0.13":"2026-04-23T13:03:14.709Z","1.0.14":"2026-05-02T11:52:32.661Z","1.0.15":"2026-05-18T06:16:18.932Z","1.0.16":"2026-05-19T09:07:44.505Z","1.0.17":"2026-05-24T18:16:52.583Z","1.0.18":"2026-05-24T18:21:32.022Z","1.0.19":"2026-05-24T18:28:08.847Z","1.0.20":"2026-05-24T18:31:09.505Z","1.0.21":"2026-05-24T18:37:58.486Z","1.1.0":"2026-07-27T13:59:41.632Z","1.1.1":"2026-07-28T10:44:45.726Z","1.1.2":"2026-07-28T11:55:30.362Z","1.1.3":"2026-07-28T12:05:24.188Z","1.2.0":"2026-07-28T19:23:32.587Z","1.2.1":"2026-09-11T09:57:47.880Z","1.2.2":"2026-09-25T11:19:45.715Z","1.2.3":"2026-09-25T11:28:57.856Z"},"bugs":{"url":"https://github.com/daformat/react-headless-carousel/issues"},"author":{"name":"Mathieu Jouhet"},"license":"Zero-Clause BSD","homepage":"https://github.com/daformat/react-headless-carousel","keywords":["carousel","react","headless","carousel-component","react-component","loop","autoplay","drag-to-scroll","inertia","rubber-banding","snapping"],"repository":{"url":"git+https://github.com/daformat/react-headless-carousel.git","type":"git"},"description":"A react headless carousel component, with no dependencies, supporting drag to scroll, inertia, rubber-banding, snapping, looping, autoplay and more","maintainers":[{"name":"daformat","email":"mat.jouhet@gmail.com"}],"readme":"# React headless carousel\n\n![NPM Version](https://img.shields.io/npm/v/%40daformat%2Freact-headless-carousel)\n![gzipped](https://img.shields.io/bundlephobia/minzip/@daformat/react-headless-carousel?color=%238ab4f8&label=gzip)\n![NPM Downloads](https://img.shields.io/npm/dm/%40daformat%2Freact-headless-carousel)  \n[![Follow daformat on GitHub](https://img.shields.io/github/followers/daformat?label=Follow%20%40daformat&style=social)](https://github.com/daformat)\n[![Follow daformat on X](https://img.shields.io/twitter/follow/daformat?label=Follow%20%40daformat&style=social)](https://twitter.com/daformat)\n\nA react headless carousel component with zero-dependency: scrollable, and swipeable carousel, even on desktop, complete\nwith snapping,\nfriction, rubber-banding and overscroll.\n\n## Installation\n\n```bash\nnpm install @daformat/react-headless-carousel\n```\n\n```bash\nyarn add @daformat/react-headless-carousel\n```\n\n```bash\npnpm add @daformat/react-headless-carousel\n\n```\n\n```bash\nbun add @daformat/react-headless-carousel\n```\n\n```bash\ndeno add npm:@daformat/react-headless-carousel\n```\n\n## Demo\n\nhttps://hello-mat.com/design-engineering/component/carousel-component\n\n## Component structure\n\n```tsx\n/* Provides context to the carousel components */\n<Carousel.Root>\n  {/* The scrollable area */}\n  <Carousel.Viewport>\n    {/* The container for the items */}\n    <Carousel.Content>\n      {/* A carousel item */}\n      <Carousel.Item />\n      <Carousel.Item />\n      <Carousel.Item />\n    </Carousel.Content>\n  </Carousel.Viewport>\n  {/* The pagination buttons */}\n  <Carousel.PrevPage />\n  <Carousel.NextPage />\n</Carousel.Root>\n```\n\n## Components\n\n### `Carousel.Root`\n\nThe outermost wrapper. Provides context to all child carousel components. Renders a `<div>`.\n\n| Prop             | Type                                                                            | Default                 | Description                                                                                                                                                                                                                                                                                                                                              |\n| ---------------- | ------------------------------------------------------------------------------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `loop`           | `boolean`                                                                       | `false`                 | Renders copies of the children on either side and wraps the scroll position, so the carousel never reaches an end. See [Looping](#looping).                                                                                                                                                                                                              |\n| `autoplay`       | `boolean \\| AutoplayOptions`                                                    | `false`                 | Scrolls the carousel on its own. `true` steps to the next item every three seconds; pass an object to choose how and how fast. See [Autoplay](#autoplay).                                                                                                                                                                                                |\n| `boundaryOffset` | `{ x: number; y: number } \\| ((root: HTMLElement) => { x: number; y: number })` | `defaultBoundaryOffset` | Inset in pixels from the leading and trailing edges of the viewport used when scrolling items into view with prev/next buttons. The default implementation reads the content fade size from the viewport so items are never scrolled behind the fade. Pass a plain object or a function receiving the root element and returning `{ x, y }` to override. |\n| `reducedMotion`  | `\"respect\" \\| \"ignore\"`                                                         | `\"respect\"`             | What to do about `prefers-reduced-motion: reduce`. See [Reduced motion](#reduced-motion).                                                                                                                                                                                                                                                                |\n| `ref`            | `Ref<HTMLDivElement>`                                                           | n/a                     | Forwarded ref to the root `<div>`.                                                                                                                                                                                                                                                                                                                       |\n| `...props`       | `ComponentPropsWithoutRef<\"div\">`                                               | n/a                     | All standard `<div>` props (`className`, `style`, `children`, etc.).                                                                                                                                                                                                                                                                                     |\n\n#### Looping\n\n`loop` is off by default. Turning it on makes the carousel endless in both directions: it renders the children three\ntimes over, plus however many extra copies it takes for one of those sets to cover a few viewports, then teleports the\nscroll position back by a whole number of copies whenever it comes close to running out. The position it leaves and the\none it lands on show the same pixels, so the jump itself is not visible.\n\nOn mount the carousel parks on the first of your actual children, instantly and without a visible scroll. The copies are\nmarked `data-loop-clone`, `aria-hidden` and `tabindex=\"-1\"`, so the copied elements themselves are passed over by\nassistive technology and by tabbing, and when the scroll settles the carousel comes home to your real children.\n\nThat covers each copy, not what is inside it: a copy holding a link or a button still has that control in the tab\norder, since neither attribute reaches a descendant. Items that hold something focusable will therefore tab through\nthe copies too, and a copy on screen stays clickable. That is usually what you want from something the user can plainly\nsee, but it does mean tabbing can land inside an `aria-hidden` copy, in DOM order, which is not the order the copies\ncome round on screen. Three things keep that from being visible:\n\n- **Tabbing in lands on what is already on screen.** The first thing in the tab order sits inside the very first copy,\n  right at the start of the content, so going to fetch it sweeps the carousel back to the beginning. The arriving\n  focus is handed to the first fully visible element instead, and the scroll stays where it was. Shift-tabbing in\n  takes the last visible one.\n- **Tabbing on never doubles back.** When the next element in the tab order sits a long way behind the current\n  position, the carousel first jumps whole copies towards it. Either side of such a jump shows the same pixels, so\n  none of that distance is seen, and the remainder is short enough to animate the way the tabbing is already going\n  rather than against it. When the scroll cannot go that way, because there is no more content on that side, the focus\n  goes to the copy of that element already within reach, and nothing moves at all.\n- **The focus ring goes where the focus went.** A jump carries whatever was focused inside a copy off screen with it.\n  The focus is handed to the element that took its place, so the ring stays where the user is looking instead of\n  appearing to vanish a moment after tabbing.\n\nAll three are for the keyboard only. A click focuses whatever was clicked, copy or not, and gets the ordinary\nscroll-the-minimum-needed treatment.\n\n> **Looping and snapping are a best-effort pairing.** Every browser drives a wheel scroll towards a snap point it\n> chooses when the gesture starts, and none of them take kindly to the scroll position moving underneath: Chromium\n> scrolls back to the item it had picked, Safari swallows the rest of the momentum, Firefox drops the snap it was about\n> to apply. So when a wrap disturbs a scroll, the carousel takes snapping off the browser for the rest of that gesture\n> and applies it itself once everything stops, animating to the position your `scroll-snap-type` asks for. Chromium\n> commits to its target early enough that the whole gesture has to run that way. Dragging is unaffected, since it has\n> always managed its own snapping and lands on a snap point by itself.\n>\n> The upshot: snapping is honoured every time the carousel comes to rest, but exactly _how_ it gets there varies by\n> engine, and a very long fling may still show a seam. If you need snapping to be exact under all circumstances, leave\n> `loop` off.\n\n#### Autoplay\n\n`autoplay` scrolls the carousel on its own. Pass `true` for the defaults, or an object to configure it.\n\n```tsx\n<Carousel.Root autoplay />\n<Carousel.Root autoplay={{ mode: \"continuous\", speed: 90 }} />\n<Carousel.Root autoplay={{ mode: \"page\", interval: 5000 }} />\n<Carousel.Root autoplay={{ mode: \"continuous\", atEnd: \"reverse\", pauseAtEnd: 1500 }} />\n<Carousel.Root autoplay={{ mode: \"item\", pauseOnInteraction: 5000 }} />\n```\n\nHovering and focusing describe a mouse and a keyboard. A touch has neither, so `pauseOnInteraction` is what stops the\ncarousel taking an item away from someone reading it on a phone. Scrolling or dragging holds it, and the wait starts\nonce the carousel has come to rest: the momentum, the snapping and the loop's own corrections all count, so it runs\nfrom the position the carousel settles on rather than from the moment the hand left it.\n\n| Option               | Type                                             | Default      | Description                                                                                                                                                                                        |\n| -------------------- | ------------------------------------------------ | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `mode`               | `\"item\" \\| \"page\" \\| \"viewport\" \\| \"continuous\"` | `\"item\"`     | How far each step goes, the same three the prev/next buttons take (see [How far a move goes](#how-far-a-move-goes)), plus `continuous`, which scrolls at a steady speed without stopping on items. |\n| `direction`          | `\"forwards\" \\| \"backwards\"`                      | `\"forwards\"` | Which way to go.                                                                                                                                                                                   |\n| `interval`           | `number`                                         | `3000`       | Milliseconds between steps. `item` and `page` only.                                                                                                                                                |\n| `speed`              | `number`                                         | `60`         | Pixels per second. `continuous` only.                                                                                                                                                              |\n| `atEnd`              | `\"rewind\" \\| \"reverse\" \\| \"stop\"`                | `\"rewind\"`   | What to do on running out of content: go back to the end it started from, turn around and play back, or stop. Not available with a literal `loop`.                                                 |\n| `pauseAtEnd`         | `number`                                         | `0`          | Milliseconds to sit still at each end before `atEnd` takes over. `continuous` only, and not with a literal `loop`.                                                                                 |\n| `pauseOnHover`       | `boolean`                                        | `true`       | Pause while the pointer is over the carousel.                                                                                                                                                      |\n| `pauseOnFocus`       | `boolean`                                        | `true`       | Pause while the focus is anywhere inside the carousel, items included.                                                                                                                             |\n| `pauseOnInteraction` | `number \\| false`                                | `1500`       | Milliseconds to wait after a scroll or a drag has settled before picking up again. `false` carries on regardless.                                                                                  |\n\nThe options that do not apply to a given configuration are compile errors rather than settings that quietly do nothing,\nand the type carries the reason: hovering `atEnd` on a looping carousel says it does not apply there, since a looping\ncarousel never runs out of content. Mixing up `speed` and `interval` puts that explanation in the error itself.\n\nBeyond `pauseOnHover` and `pauseOnFocus`, autoplay also gets out of the way on its own while you are dragging, while a\nwheel gesture's momentum is still running, and while the tab is hidden. It does not run at all when the user asks for\n`prefers-reduced-motion: reduce`, and it picks that change up live. See [Reduced motion](#reduced-motion).\n\n#### Reduced motion\n\nA carousel sweeps a good part of the screen sideways, which is the kind of movement `prefers-reduced-motion: reduce`\nexists for, so the carousel respects it by default in the two places it moves of its own accord:\n\n- **Autoplay does not run.** Not merely paused: a paused autoplay is still something that will start moving when the\n  pointer leaves. The preference is read live, so turning it on mid-session stops the carousel where it stands.\n- **The scrolls it animates arrive instantly.** Prev and next, tabbing to an item that is off screen, the rewind at the\n  end of an autoplay, and the snapping the carousel finishes for the browser when a loop wrap disturbs it. The\n  destination is what was asked for; the journey is the decoration, and `behavior: \"smooth\"` has no duration to shorten,\n  so instant is the only thing \"less\" can mean here.\n\nDragging is untouched, and so is the momentum that carries on from it. That motion is the user's own hand, and stopping\nthe carousel dead under a finger would be less control rather than less motion. The same goes for the rubber-banding at\nthe ends, and for the loop, whose copies are structure rather than movement and whose teleports are invisible by\nconstruction.\n\nPass `reducedMotion=\"ignore\"` to opt out of all of it, for an app that has already made this decision somewhere else.\n\n#### Data attributes set on the root\n\n| Attribute                | Values                    | Description                                                                                                |\n| ------------------------ | ------------------------- | ---------------------------------------------------------------------------------------------------------- |\n| `data-carousel-autoplay` | `\"playing\"` \\| `\"paused\"` | Present only while `autoplay` is on, so it doubles as a way to style or assert the current autoplay state. |\n\n---\n\n### `Carousel.Viewport`\n\nThe scrollable container. Handles pointer/mouse dragging, momentum, rubber-banding, scroll-snapping, and keyboard focus\nscrolling. Renders a `<div>` with `overflow: scroll` and hidden scrollbars.\n\n| Prop              | Type                              | Default                     | Description                                                                                                                                                                     |\n| ----------------- | --------------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `scrollSnapType`  | `CSSProperties[\"scrollSnapType\"]` | n/a                         | CSS `scroll-snap-type` value applied to the container (e.g. `\"x mandatory\"`). Snapping is coordinated with the momentum animation so the carousel always lands on a snap point. |\n| `contentFade`     | `boolean`                         | `true`                      | When `true`, a mask-image fade is applied to both edges of the viewport. The fade appears only when there is scrollable content in that direction.                              |\n| `contentFadeSize` | `string \\| number`                | `\"clamp(16px, 10vw, 64px)\"` | Width of the content fade. Accepts any CSS length string or a `number` (interpreted as `px`). Only valid when `contentFade` is `true` (or omitted).                             |\n| `ref`             | `Ref<HTMLDivElement>`             | n/a                         | Forwarded ref to the viewport `<div>`.                                                                                                                                          |\n| `...props`        | `ComponentPropsWithoutRef<\"div\">` | n/a                         | All standard `<div>` props. Event handlers `onPointerDown`, `onPointerMove`, `onPointerUp`, `onClickCapture`, and `onWheel` are merged with the internal handlers.              |\n\n#### Data attributes set on the viewport\n\n| Attribute                | Values                                                | Description                                                                                                |\n| ------------------------ | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |\n| `data-carousel-viewport` | `\"\"`                                                  | Always present. Used internally for boundary offset calculation.                                           |\n| `data-can-scroll`        | `\"forwards\"` \\| `\"backwards\"` \\| `\"both\"` \\| `\"none\"` | Reflects the current scrollability. Useful for styling buttons or indicators with CSS attribute selectors. |\n\n---\n\n### `Carousel.Content`\n\nA thin wrapper that sets `width: fit-content` so items lay out in a single row. Renders a `<div>`.\n\n| Prop       | Type                              | Default | Description                                                              |\n| ---------- | --------------------------------- | ------- | ------------------------------------------------------------------------ |\n| `ref`      | `Ref<HTMLDivElement>`             | n/a     | Forwarded ref to the content `<div>`.                                    |\n| `...props` | `ComponentPropsWithoutRef<\"div\">` | n/a     | All standard `<div>` props. Styles are merged with `width: fit-content`. |\n\n---\n\n### `Carousel.Item`\n\nA single carousel slide. By default renders a `<div>` with `will-change: transform` (required for the rubber-banding\nanimation). Use `asChild` to merge onto your own element.\n\n| Prop       | Type                              | Default | Description                                                                                                                                                                                                          |\n| ---------- | --------------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `asChild`  | `boolean`                         | `false` | When `true`, merges all props (including `data-carousel-item` and `style`) onto the single child element via `cloneElement` instead of rendering a wrapping `<div>`. The child must be a single valid React element. |\n| `ref`      | `Ref<HTMLElement>`                | n/a     | Forwarded ref. When `asChild` is `true`, forwarded to the child element.                                                                                                                                             |\n| `...props` | `ComponentPropsWithoutRef<\"div\">` | n/a     | All standard `<div>` props. `style` is merged with `will-change: transform`.                                                                                                                                         |\n\n---\n\n### `Carousel.NextPage`\n\nA button that scrolls the carousel forwards. How far is up to `mode`. Automatically disabled when there is no more\ncontent to scroll forwards. Renders a `<button>`.\n\n| Prop       | Type                                   | Default            | Description                                                                                                           |\n| ---------- | -------------------------------------- | ------------------ | --------------------------------------------------------------------------------------------------------------------- |\n| `mode`     | `\"page\" \\| \"item\" \\| \"viewport\"`       | `\"page\"`           | How far a click goes. See [How far a move goes](#how-far-a-move-goes).                                                |\n| `disabled` | `boolean`                              | `!scrollsForwards` | Overrides the automatic disabled state. Pass `false` to always keep the button enabled regardless of scroll position. |\n| `onClick`  | `MouseEventHandler<HTMLButtonElement>` | n/a                | Called after the scroll action is triggered.                                                                          |\n| `ref`      | `Ref<HTMLButtonElement>`               | n/a                | Forwarded ref to the `<button>`.                                                                                      |\n| `...props` | `ComponentPropsWithoutRef<\"button\">`   | n/a                | All standard `<button>` props.                                                                                        |\n\n#### How far a move goes\n\n`mode` is the same set of answers on both buttons and on [`autoplay`](#autoplay), so a carousel whose autoplay steps by\nitem and whose buttons page through it says so in the same words.\n\n| Mode         | What one move does                                                                                                                                          |\n| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `\"page\"`     | Brings the next item that is not fully in view fully into view. The default, and what keeps a partly-seen item from staying partly seen.                    |\n| `\"item\"`     | Steps to the next item along, whether or not the current one is fully in view. An item practically arrived at already is passed over for the one behind it. |\n| `\"viewport\"` | Moves by exactly what the viewport can show, ignoring where the items fall. Whatever `scroll-snap-type` you have asked for still applies once it lands.     |\n\nAll three respect `boundaryOffset`, so nothing lands behind the content fade, and all three animate unless the user has\nasked for [reduced motion](#reduced-motion).\n\n```tsx\n<Carousel.NextPage mode=\"item\">next</Carousel.NextPage>\n<Carousel.Root autoplay={{ mode: \"item\", interval: 4000 }} />\n```\n\n---\n\n### `Carousel.PrevPage`\n\nA button that scrolls the carousel backwards, as far as `mode` says. Automatically disabled when the carousel is at the\nstart. Renders a `<button>`.\n\n| Prop       | Type                                   | Default             | Description                                                            |\n| ---------- | -------------------------------------- | ------------------- | ---------------------------------------------------------------------- |\n| `mode`     | `\"page\" \\| \"item\" \\| \"viewport\"`       | `\"page\"`            | How far a click goes. See [How far a move goes](#how-far-a-move-goes). |\n| `disabled` | `boolean`                              | `!scrollsBackwards` | Overrides the automatic disabled state.                                |\n| `onClick`  | `MouseEventHandler<HTMLButtonElement>` | n/a                 | Called after the scroll action is triggered.                           |\n| `ref`      | `Ref<HTMLButtonElement>`               | n/a                 | Forwarded ref to the `<button>`.                                       |\n| `...props` | `ComponentPropsWithoutRef<\"button\">`   | n/a                 | All standard `<button>` props.                                         |\n\n---\n\n## `Carousel.useCarouselContext`\n\nA hook that provides access to the carousel's internal state and actions. Must be used inside `Carousel.Root`.\n\n```tsx\nconst {\n  scrollsForwards,\n  scrollsBackwards,\n  handleScrollToNext,\n  handleScrollToPrev,\n  scrollIntoView,\n  remainingForwards,\n  remainingBackwards,\n  clearAnimation,\n} = Carousel.useCarouselContext();\n```\n\n| Property                                       | Type                                                                                                       | Description                                                                                                                                                                                                         |\n| ---------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `scrollsForwards`                              | `boolean`                                                                                                  | `true` when the carousel has scrollable content ahead.                                                                                                                                                              |\n| `scrollsBackwards`                             | `boolean`                                                                                                  | `true` when the carousel has scrollable content behind.                                                                                                                                                             |\n| `remainingForwards`                            | `React.RefObject<number>`                                                                                  | Ref containing the number of pixels remaining to scroll forwards. Updated on every scroll event.                                                                                                                    |\n| `remainingBackwards`                           | `React.RefObject<number>`                                                                                  | Ref containing the number of pixels remaining to scroll backwards.                                                                                                                                                  |\n| `handleScrollToNext()`                         | `() => void`                                                                                               | Programmatically scroll to the next item/page, same as clicking `Carousel.NextPage`.                                                                                                                                |\n| `handleScrollToPrev()`                         | `() => void`                                                                                               | Programmatically scroll to the previous item/page, same as clicking `Carousel.PrevPage`.                                                                                                                            |\n| `scrollIntoView(target, container, direction)` | `(target: HTMLElement, container: HTMLElement, direction: \"forwards\" \\| \"backwards\" \\| \"nearest\") => void` | Scrolls `target` into view within `container`. `\"nearest\"` scrolls the minimum amount needed; `\"forwards\"` / `\"backwards\"` aligns the item to the leading or trailing edge, respecting `scroll-snap-align: center`. |\n| `clearAnimation()`                             | `() => void`                                                                                               | Cancels any in-progress momentum animation.                                                                                                                                                                         |\n\n---\n\n## CSS custom properties\n\nThe following CSS custom properties are set on the root element and can be used for custom styling.\n\n| Property                           | Description                                                                        |\n| ---------------------------------- | ---------------------------------------------------------------------------------- |\n| `--carousel-fade-size`             | Current fade size as resolved from `contentFadeSize`.                              |\n| `--carousel-remaining-forwards`    | Pixels remaining to scroll forwards (e.g. `312px`). Updated on every scroll event. |\n| `--carousel-remaining-backwards`   | Pixels remaining to scroll backwards.                                              |\n| `--carousel-fade-offset-forwards`  | Fade offset at the forwards edge (used internally by the mask gradient).           |\n| `--carousel-fade-offset-backwards` | Fade offset at the backwards edge.                                                 |\n| `--carousel-scroll-margin-inline`  | The inline scroll margin for the carousel items                                    |\n\n---\n\n## Utilities\n\n### `Carousel.defaultBoundaryOffset`\n\nThe default `boundaryOffset` function used by `Carousel.Root`. Reads `--carousel-fade-size` from the viewport element\nand returns `{ x: fadeSize, y: 0 }` so that next/prev navigation never scrolls items behind the content fade. Exported\nfor use when composing a custom `boundaryOffset` on top of the default behaviour.\n\n```ts\ntype DefaultBoundaryOffset = (root: HTMLElement) => { x: number; y: number };\n```\n\n### `Carousel.CSS_VARS`\n\nA frozen object containing the names of all CSS custom properties used internally, useful for reading or setting them\nwithout hardcoding strings.\n\n```ts\nCarousel.CSS_VARS.fadeSize; // \"--carousel-fade-size\"\nCarousel.CSS_VARS.remainingForwards; // \"--carousel-remaining-forwards\"\nCarousel.CSS_VARS.remainingBackwards; // \"--carousel-remaining-backwards\"\nCarousel.CSS_VARS.fadeOffsetForwards; // \"--carousel-fade-offset-forwards\"\nCarousel.CSS_VARS.fadeOffsetBackwards; // \"--carousel-fade-offset-backwards\"\nCarousel.CSS_VARS.overscrollTranslateX; // \"--carousel-overscroll-translate-x\"\nCarousel.CSS_VARS.scrollMarginInline; // \"--carousel-scroll-margin-inline\"\n```\n\n---\n\n## Types\n\nEvery public type is exported twice, under the same definition, so pick whichever reads better where you are. Flat named\nexports:\n\n```ts\nimport type {\n  CarouselAutoplayOptions,\n  CarouselRootProps,\n} from \"@daformat/react-headless-carousel\";\n```\n\nOr grouped on the `Carousel` object, next to the components they belong to:\n\n```tsx\nimport { Carousel } from \"@daformat/react-headless-carousel\";\n\nconst [mode, setMode] = useState<Carousel.AutoplayMode>(\"item\");\n```\n\n| Flat name                         | On `Carousel`                      | Description                                                                                                          |\n| --------------------------------- | ---------------------------------- | -------------------------------------------------------------------------------------------------------------------- |\n| `CarouselRootProps<Loop>`         | `Carousel.RootProps<Loop>`         | Props of `Carousel.Root`. `Loop` follows the `loop` prop and decides which autoplay options come with it, see below. |\n| `CarouselViewportProps`           | `Carousel.ViewportProps`           | Props of `Carousel.Viewport`.                                                                                        |\n| `CarouselContentProps`            | `Carousel.ContentProps`            | Props of `Carousel.Content`.                                                                                         |\n| `CarouselItemProps`               | `Carousel.ItemProps`               | Props of `Carousel.Item`.                                                                                            |\n| `CarouselNextPageProps`           | `Carousel.NextPageProps`           | Props of `Carousel.NextPage`.                                                                                        |\n| `CarouselPrevPageProps`           | `Carousel.PrevPageProps`           | Props of `Carousel.PrevPage`.                                                                                        |\n| `CarouselAutoplayOptions<CanEnd>` | `Carousel.AutoplayOptions<CanEnd>` | The object form of the `autoplay` prop. See the note on `CanEnd` below.                                              |\n| `CarouselAutoplayMode`            | `Carousel.AutoplayMode`            | `CarouselScrollMode \\| \"continuous\"`.                                                                                |\n| `CarouselAutoplayStepMode`        | `Carousel.AutoplayStepMode`        | The stepping modes, the ones that take an `interval`. The same set as `CarouselScrollMode`.                          |\n| `CarouselScrollMode`              | `Carousel.ScrollMode`              | How far one prev/next move goes: `\"page\" \\| \"item\" \\| \"viewport\"`.                                                   |\n| `CarouselAutoplayDirection`       | `Carousel.AutoplayDirection`       | `\"forwards\" \\| \"backwards\"`.                                                                                         |\n| `CarouselAutoplayAtEnd`           | `Carousel.AutoplayAtEnd`           | `\"rewind\" \\| \"reverse\" \\| \"stop\"`.                                                                                   |\n| `CarouselBoundaryOffset`          | `Carousel.BoundaryOffset`          | The `boundaryOffset` prop: a point, or a function returning one.                                                     |\n| `CarouselReducedMotion`           | `Carousel.ReducedMotion`           | The `reducedMotion` prop: `\"respect\" \\| \"ignore\"`.                                                                   |\n| `CarouselContext`                 | `Carousel.Context`                 | The value returned by `Carousel.useCarouselContext`.                                                                 |\n\nBoth `RootProps` and `AutoplayOptions` take a boolean type parameter about looping, and the two default in opposite\ndirections on purpose, which is worth knowing before you name either type yourself:\n\n| Written as                      | Parameter is | Which autoplay options                            |\n| ------------------------------- | ------------ | ------------------------------------------------- |\n| `<Carousel.Root>` with no props | `false`      | the full set, since the carousel can reach an end |\n| `CarouselRootProps`             | `boolean`    | both shapes, for a `loop` only known at runtime   |\n| `CarouselAutoplayOptions`       | `false`      | no end options, for a carousel that loops         |\n\nSo `Carousel.Root` on its own gives you `atEnd`, while a bare `CarouselRootProps` describes a carousel that may or may\nnot loop, and a bare `CarouselAutoplayOptions` is the narrowest of the three.\n\n### `AutoplayOptions` and the `CanEnd` parameter\n\n`AutoplayOptions` takes a boolean type parameter saying whether the carousel is one that can run out of content. A\nlooping carousel never reaches an end, so `atEnd` and `pauseAtEnd` are only part of the type when `CanEnd` is `true`.\nWriting the prop inline needs none of this, since `Carousel.Root` picks the right one from `loop`. It only matters when you\ndeclare the options separately:\n\n```ts\n// the bare form is the narrow one: no end options, for a carousel that loops\nconst looping: CarouselAutoplayOptions = { mode: \"item\", interval: 2000 };\n\n// a carousel that does not loop can reach an end, so pass true to get at them\nconst finite: CarouselAutoplayOptions<true> = {\n  mode: \"continuous\",\n  speed: 60,\n  pauseAtEnd: 1000,\n  atEnd: \"reverse\",\n};\n```\n\nNote that `CanEnd` defaults to `false` while `loop` defaults to `false` too, so a variable typed as a bare\n`CarouselAutoplayOptions` is the wrong shape for a default (non-looping) carousel, and will reject the `atEnd` it is\nentitled to. The default is deliberately the restrictive one; reach for `<true>` whenever `loop` is off.\n\nWhen `loop` is only known at runtime, pass `boolean` and get both shapes at once. This is what a wrapper component\nwants: it can take a `loop` prop and hand it to `Carousel.Root` alongside the autoplay options, without having to\nsplit into a looping and a non-looping branch or reach for a cast:\n\n```tsx\nconst Gallery = ({\n  loop,\n  autoplay,\n}: {\n  loop: boolean;\n  autoplay?: boolean | CarouselAutoplayOptions<boolean>;\n}) => (\n  <Carousel.Root loop={loop} autoplay={autoplay}>\n    ...\n  </Carousel.Root>\n);\n```\n\nThe unavailable options are typed as the reason they are unavailable, so the compiler quotes it back at you instead of\nsaying \"not assignable to type 'undefined'\":\n\n```tsx\n<Carousel.Root loop autoplay={{ mode: \"item\", atEnd: \"rewind\" }} />\n//                                            ^ Type '\"rewind\"' is not assignable to type\n//                                              '\"`atEnd` does not apply with loop: a looping\n//                                                carousel never runs out of content\"'\n```\n\nThe same trick covers `speed` on a stepping mode, `interval` on a continuous one, and `pauseAtEnd` outside of\n`mode: \"continuous\"`.\n\nThis ruling needs to know whether the carousel loops, so it only applies when `loop` is a literal. Given a `loop` that\nresolves at runtime, `atEnd` and `pauseAtEnd` stay available: they do their job on the runs that come out non-looping,\nand sit inert on the runs that do not.\n","readmeFilename":"README.md"}