{"_id":"@codedartdev/slide-captcha-react","_rev":"9-2cb3186a6f52aa5d6507862f6974a5a8","name":"@codedartdev/slide-captcha-react","dist-tags":{"latest":"0.1.10"},"versions":{"0.1.1":{"name":"@codedartdev/slide-captcha-react","version":"0.1.1","license":"MIT","_id":"@codedartdev/slide-captcha-react@0.1.1","maintainers":[{"name":"erickcrus","email":"erickcrus@gmail.com"}],"homepage":"https://github.com/codedartdev/slide-captcha-react#readme","bugs":{"url":"https://github.com/codedartdev/slide-captcha-react/issues"},"dist":{"shasum":"a9cf541bf234541b66c43653973547ee5df650b2","tarball":"https://registry.npmjs.org/@codedartdev/slide-captcha-react/-/slide-captcha-react-0.1.1.tgz","fileCount":10,"integrity":"sha512-uOyzk6t7PtO+YhWmXDkmHLO2djsn5ue6uhdnz/NofO1TOEdRNz5+img2g2wJKsuYNZsh0DZAtC7m7xLe46puSg==","signatures":[{"sig":"MEUCIQDRNQmJLhGiJH0XhzG8/yocBcNnr2uuS1mOzrhCh5Z5NwIgLzTH/uZpU+YuXRQ27YPH7nIU+iLFt5eQlEBVBjewfRg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":164565},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./styles.css":"./dist/slide-captcha.css","./package.json":"./package.json","./styles/slide-captcha.css":"./dist/slide-captcha.css"},"gitHead":"83a8cb9939f75506207fe0246ad4cd0a6827f47c","scripts":{"lint":"eslint .","test":"vitest run","build":"tsup","deploy":"node scripts/deploy.mjs","format":"prettier --write .","typecheck":"tsc --noEmit && npm run typecheck --workspace @codedartdev/slide-captcha-react-example"},"_npmUser":{"name":"erickcrus","email":"erickcrus@gmail.com"},"repository":{"url":"git+https://github.com/codedartdev/slide-captcha-react.git","type":"git"},"workspaces":["example/react-vite"],"_npmVersion":"10.9.3","description":"React components and TypeScript client for Laravel Slide CAPTCHA.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vite":"^6.3.5","jsdom":"^26.1.0","react":"^19.1.0","eslint":"^9.28.0","vitest":"^4.1.8","globals":"^16.2.0","prettier":"^3.5.3","react-dom":"^19.1.0","@eslint/js":"^9.28.0","typescript":"^5.8.3","@types/react":"^19.1.6","@types/react-dom":"^19.1.5","typescript-eslint":"^8.33.0","@vitejs/plugin-react":"^4.5.0","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/slide-captcha-react_0.1.1_1780345539544_0.21580759743497513","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@codedartdev/slide-captcha-react","version":"0.1.2","license":"MIT","_id":"@codedartdev/slide-captcha-react@0.1.2","maintainers":[{"name":"erickcrus","email":"erickcrus@gmail.com"}],"homepage":"https://github.com/codedartdev/slide-captcha-react#readme","bugs":{"url":"https://github.com/codedartdev/slide-captcha-react/issues"},"dist":{"shasum":"0c8569fcc26f26c8171fe544c062eb3797605307","tarball":"https://registry.npmjs.org/@codedartdev/slide-captcha-react/-/slide-captcha-react-0.1.2.tgz","fileCount":10,"integrity":"sha512-EuTtt0/ym3NK1BMiKRijkD0UBnIqobl0aTckYj4SVu+gz0ow+SnDDExNFWu7gRDM3MGqtHtr9YiX5Dgt4IsfiQ==","signatures":[{"sig":"MEQCIGQGT8/cr4Jcw1XgvutJ44lkz06tFmAWvoS+hJm68UGyAiBb8asF+eAMzW4MW6QiSdsOjWKiQ2y6bHMhzNKVpZ6Kdg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":165270},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./styles.css":"./dist/slide-captcha.css","./package.json":"./package.json","./styles/slide-captcha.css":"./dist/slide-captcha.css"},"gitHead":"302aa080725eae9c5bf7c011a3f7c379687ff26f","scripts":{"lint":"eslint .","test":"vitest run","build":"tsup","deploy":"node scripts/deploy.mjs","format":"prettier --write .","prepack":"npm run build","typecheck":"tsc --noEmit && npm run typecheck --workspace @codedartdev/slide-captcha-react-example"},"_npmUser":{"name":"erickcrus","email":"erickcrus@gmail.com"},"repository":{"url":"git+https://github.com/codedartdev/slide-captcha-react.git","type":"git"},"workspaces":["example/react-vite"],"_npmVersion":"10.9.3","description":"React components and TypeScript client for Laravel Slide CAPTCHA.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vite":"^6.3.5","jsdom":"^26.1.0","react":"^19.1.0","eslint":"^9.28.0","vitest":"^4.1.8","globals":"^16.2.0","prettier":"^3.5.3","react-dom":"^19.1.0","@eslint/js":"^9.28.0","typescript":"^5.8.3","@types/react":"^19.1.6","@types/react-dom":"^19.1.5","typescript-eslint":"^8.33.0","@vitejs/plugin-react":"^4.5.0","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/slide-captcha-react_0.1.2_1780351463463_0.4700968218500894","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@codedartdev/slide-captcha-react","version":"0.1.3","license":"MIT","_id":"@codedartdev/slide-captcha-react@0.1.3","maintainers":[{"name":"erickcrus","email":"erickcrus@gmail.com"}],"homepage":"https://github.com/codedartdev/slide-captcha-react#readme","bugs":{"url":"https://github.com/codedartdev/slide-captcha-react/issues"},"dist":{"shasum":"058f4f25fe4d46b92b24004688c408f59d5dbe76","tarball":"https://registry.npmjs.org/@codedartdev/slide-captcha-react/-/slide-captcha-react-0.1.3.tgz","fileCount":10,"integrity":"sha512-buM7PPoGoS5Zr+rwYrKaBC4X5+IVnwtGlM+ZWUN87/C8K8JwOCxFwUpumX6usTTd1pX669d5qk2fhc1Kr6dg/Q==","signatures":[{"sig":"MEYCIQD5193dJZwIsa+0ho53T57mSEEOLPP8SZaNd2YKpjecfgIhAMZf+qSon9uNJYs0nQIWee3Uvwxj3jsWn9vcLeWFguCY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":173743},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./styles.css":"./dist/slide-captcha.css","./package.json":"./package.json","./styles/slide-captcha.css":"./dist/slide-captcha.css"},"gitHead":"381ef1b0aa0e040f62d219b1be40c5ef5042915f","scripts":{"lint":"eslint .","test":"vitest run","build":"tsup","deploy":"node scripts/deploy.mjs","format":"prettier --write .","prepack":"npm run build","typecheck":"tsc --noEmit && npm run typecheck --workspace @codedartdev/slide-captcha-react-example"},"_npmUser":{"name":"erickcrus","email":"erickcrus@gmail.com"},"repository":{"url":"git+https://github.com/codedartdev/slide-captcha-react.git","type":"git"},"workspaces":["example/react-vite"],"_npmVersion":"10.9.3","description":"React components and TypeScript client for Laravel Slide CAPTCHA.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vite":"^6.3.5","jsdom":"^26.1.0","react":"^19.1.0","eslint":"^9.28.0","vitest":"^4.1.8","globals":"^16.2.0","prettier":"^3.5.3","react-dom":"^19.1.0","@eslint/js":"^9.28.0","typescript":"^5.8.3","@types/react":"^19.1.6","@types/react-dom":"^19.1.5","typescript-eslint":"^8.33.0","@vitejs/plugin-react":"^4.5.0","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/slide-captcha-react_0.1.3_1780453429210_0.9703253466128996","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@codedartdev/slide-captcha-react","version":"0.1.4","license":"MIT","_id":"@codedartdev/slide-captcha-react@0.1.4","maintainers":[{"name":"erickcrus","email":"erickcrus@gmail.com"}],"homepage":"https://github.com/codedartdev/slide-captcha-react#readme","bugs":{"url":"https://github.com/codedartdev/slide-captcha-react/issues"},"dist":{"shasum":"a48e371b6d6c04d91d0c368fa354c9e1cdb7b5d9","tarball":"https://registry.npmjs.org/@codedartdev/slide-captcha-react/-/slide-captcha-react-0.1.4.tgz","fileCount":10,"integrity":"sha512-VhQkyGuiXapv9lAsor3eTSqVVLkgABa3n1BOKePCsJklh9E4He+Fk+iz9wmZkHlxuza6+9Nzs1VgWFn2Pe/27A==","signatures":[{"sig":"MEUCICZP5TMMdecm8pCLfGvzt4ZJBlOdffs1IMbqTfY+zXOZAiEAuPHF1davCdDXMQmhnPy7RgbvrrDOsxw79Obg0/MEkz4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206904},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./styles.css":"./dist/slide-captcha.css","./package.json":"./package.json","./styles/slide-captcha.css":"./dist/slide-captcha.css"},"gitHead":"f881f0b52bc19a7a00a5ba0de793808e4337cba3","scripts":{"lint":"eslint .","test":"vitest run","build":"tsup","deploy":"node scripts/deploy.mjs","format":"prettier --write .","prepack":"npm run build","typecheck":"tsc --noEmit && npm run typecheck --workspace @codedartdev/slide-captcha-react-example"},"_npmUser":{"name":"erickcrus","email":"erickcrus@gmail.com"},"repository":{"url":"git+https://github.com/codedartdev/slide-captcha-react.git","type":"git"},"workspaces":["example/react-vite"],"_npmVersion":"10.9.3","description":"React components and TypeScript client for Laravel Slide CAPTCHA.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vite":"^6.3.5","jsdom":"^26.1.0","react":"^19.1.0","eslint":"^9.28.0","vitest":"^4.1.8","globals":"^16.2.0","prettier":"^3.5.3","react-dom":"^19.1.0","@eslint/js":"^9.28.0","typescript":"^5.8.3","@types/react":"^19.1.6","@types/react-dom":"^19.1.5","typescript-eslint":"^8.33.0","@vitejs/plugin-react":"^4.5.0","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/slide-captcha-react_0.1.4_1780589821539_0.7329128900902995","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@codedartdev/slide-captcha-react","version":"0.1.5","license":"MIT","_id":"@codedartdev/slide-captcha-react@0.1.5","maintainers":[{"name":"erickcrus","email":"erickcrus@gmail.com"}],"homepage":"https://github.com/codedartdev/slide-captcha-react#readme","bugs":{"url":"https://github.com/codedartdev/slide-captcha-react/issues"},"dist":{"shasum":"91a9698a46653ac0b3eaa123dc5edd36ff3424ea","tarball":"https://registry.npmjs.org/@codedartdev/slide-captcha-react/-/slide-captcha-react-0.1.5.tgz","fileCount":10,"integrity":"sha512-lIM4i+ezyyNmOn+4W+3V4XMakLOLgAhQmkFyc5Yb6kyRs5ru1kGMmy5YyfTKAJMeSl8U8T/+ZEiVa9X44kFzTg==","signatures":[{"sig":"MEYCIQDNxgxPW7G8n+yIVGK/yWoqBgaLATajeY4AVPTu7LXc+QIhAPgqZzKyHb/dLAyow7Ngjr2dMmxYk3/AO6X68eNdnFaV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":226544},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./styles.css":"./dist/slide-captcha.css","./package.json":"./package.json","./styles/slide-captcha.css":"./dist/slide-captcha.css"},"gitHead":"779fc4296362a87990993c1aacb31b0b83004e16","scripts":{"lint":"eslint .","test":"vitest run","build":"tsup","deploy":"node scripts/deploy.mjs","format":"prettier --write .","prepack":"npm run build","typecheck":"tsc --noEmit && npm run typecheck --workspace @codedartdev/slide-captcha-react-example"},"_npmUser":{"name":"erickcrus","email":"erickcrus@gmail.com"},"repository":{"url":"git+https://github.com/codedartdev/slide-captcha-react.git","type":"git"},"workspaces":["example/react-vite"],"_npmVersion":"10.9.3","description":"React components and TypeScript client for Laravel Slide CAPTCHA.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vite":"^6.3.5","jsdom":"^26.1.0","react":"^19.1.0","eslint":"^9.28.0","vitest":"^4.1.8","globals":"^16.2.0","prettier":"^3.5.3","react-dom":"^19.1.0","@eslint/js":"^9.28.0","typescript":"^5.8.3","@types/react":"^19.1.6","@types/react-dom":"^19.1.5","typescript-eslint":"^8.33.0","@vitejs/plugin-react":"^4.5.0","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/slide-captcha-react_0.1.5_1780703929473_0.4804890025730675","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@codedartdev/slide-captcha-react","version":"0.1.6","license":"MIT","_id":"@codedartdev/slide-captcha-react@0.1.6","maintainers":[{"name":"erickcrus","email":"erickcrus@gmail.com"}],"homepage":"https://github.com/codedartdev/slide-captcha-react#readme","bugs":{"url":"https://github.com/codedartdev/slide-captcha-react/issues"},"dist":{"shasum":"d26a706befab9cddb1a0cb87c93740351f8a39e6","tarball":"https://registry.npmjs.org/@codedartdev/slide-captcha-react/-/slide-captcha-react-0.1.6.tgz","fileCount":10,"integrity":"sha512-lQylG95IklXA5rMcGkvA8jjwDBpMXCzADmRF3tueIa+e3uuB3DVX5X22c0Q6GqOEFmX23/dYbOr0TjK5KPKKig==","signatures":[{"sig":"MEYCIQCgRGBImBSErBhzWVHbYxOpVZr0wOHwyprww910tDCuYgIhAM9l37umxE/de+XWTrFMdSnO8FVH3ZJVVx+uOhniQu11","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":258965},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./styles.css":"./dist/slide-captcha.css","./package.json":"./package.json","./styles/slide-captcha.css":"./dist/slide-captcha.css"},"gitHead":"0d539180259e6adc7686efcb8841b59e9b17f2d0","scripts":{"lint":"eslint .","test":"vitest run","build":"tsup","deploy":"node scripts/deploy.mjs","format":"prettier --write .","prepack":"npm run build","typecheck":"tsc --noEmit && npm run typecheck --workspace @codedartdev/slide-captcha-react-example"},"_npmUser":{"name":"erickcrus","email":"erickcrus@gmail.com"},"repository":{"url":"git+https://github.com/codedartdev/slide-captcha-react.git","type":"git"},"workspaces":["example/react-vite"],"_npmVersion":"10.9.3","description":"React components and TypeScript client for Laravel Slide CAPTCHA.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vite":"^6.3.5","jsdom":"^26.1.0","react":"^19.1.0","eslint":"^9.28.0","vitest":"^4.1.8","globals":"^16.2.0","prettier":"^3.5.3","react-dom":"^19.1.0","@eslint/js":"^9.28.0","typescript":"^5.8.3","@types/react":"^19.1.6","@types/react-dom":"^19.1.5","typescript-eslint":"^8.33.0","@vitejs/plugin-react":"^4.5.0","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/slide-captcha-react_0.1.6_1780709688789_0.5432699369270619","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@codedartdev/slide-captcha-react","version":"0.1.8","license":"MIT","_id":"@codedartdev/slide-captcha-react@0.1.8","maintainers":[{"name":"erickcrus","email":"erickcrus@gmail.com"}],"homepage":"https://github.com/codedartdev/slide-captcha-react#readme","bugs":{"url":"https://github.com/codedartdev/slide-captcha-react/issues"},"dist":{"shasum":"413863f43f131cd27e2ad58dcdfc1b43e1bebcc4","tarball":"https://registry.npmjs.org/@codedartdev/slide-captcha-react/-/slide-captcha-react-0.1.8.tgz","fileCount":10,"integrity":"sha512-xYpJMbXbebi4DAJqfez20F6Gyq3GejDaJOTrrP5rmdEAwL5yqosKysFT8Sa6Ob5zG84eyGTS+uGySk8rJZXjjw==","signatures":[{"sig":"MEYCIQDUXqRPiL8ZBNOtwjTSLR46Xhuef76EPdIIKZhIRP5QUAIhAPcSBbDaSiZPuM77iRpe06xxsDFlegCE0ZBYipgopEXi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":258593},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./styles.css":"./dist/slide-captcha.css","./package.json":"./package.json","./styles/slide-captcha.css":"./dist/slide-captcha.css"},"gitHead":"6c83bcc6da4b60d4d7d0710529a5754bf91a6bd4","scripts":{"lint":"eslint .","test":"vitest run","build":"tsup","deploy":"node scripts/deploy.mjs","format":"prettier --write .","prepack":"npm run build","typecheck":"tsc --noEmit && npm run typecheck --workspace @codedartdev/slide-captcha-react-example"},"_npmUser":{"name":"erickcrus","email":"erickcrus@gmail.com"},"repository":{"url":"git+https://github.com/codedartdev/slide-captcha-react.git","type":"git"},"workspaces":["example/react-vite"],"_npmVersion":"10.9.3","description":"React components and TypeScript client for Laravel Slide CAPTCHA.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vite":"^6.3.5","jsdom":"^26.1.0","react":"^19.1.0","eslint":"^9.28.0","vitest":"^4.1.8","globals":"^16.2.0","prettier":"^3.5.3","react-dom":"^19.1.0","@eslint/js":"^9.28.0","typescript":"^5.8.3","@types/react":"^19.1.6","@types/react-dom":"^19.1.5","typescript-eslint":"^8.33.0","@vitejs/plugin-react":"^4.5.0","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/slide-captcha-react_0.1.8_1780917068912_0.5436208239479785","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@codedartdev/slide-captcha-react","version":"0.1.9","license":"MIT","_id":"@codedartdev/slide-captcha-react@0.1.9","maintainers":[{"name":"erickcrus","email":"erickcrus@gmail.com"}],"homepage":"https://github.com/codedartdev/slide-captcha-react#readme","bugs":{"url":"https://github.com/codedartdev/slide-captcha-react/issues"},"dist":{"shasum":"6a8bfd5b727aa613440072cdd5c309b38007f06f","tarball":"https://registry.npmjs.org/@codedartdev/slide-captcha-react/-/slide-captcha-react-0.1.9.tgz","fileCount":10,"integrity":"sha512-mJ474S504tgK7TAvd1ASYbdk8ogeoktvvMzaaQqaU2jzx9B3/4z5qwR6NS5JwkrMpoqVQgWG+3R3fP142Wj9Uw==","signatures":[{"sig":"MEYCIQDdHSjalY1kLcOZnw1hl8aEUmo4UQkmwD7pr3G/jYDhcQIhAK5YIM7TZu+ryaoBH8XYvMV64OQb0vR5S71BUua9lHpQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":261660},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./styles.css":"./dist/slide-captcha.css","./package.json":"./package.json","./styles/slide-captcha.css":"./dist/slide-captcha.css"},"scripts":{"lint":"eslint .","test":"vitest run","build":"tsup","deploy":"node scripts/deploy.mjs","format":"prettier --write .","prepack":"npm run build","typecheck":"tsc --noEmit && npm run typecheck --workspace @codedartdev/slide-captcha-react-example"},"_npmUser":{"name":"erickcrus","email":"erickcrus@gmail.com"},"repository":{"url":"git+https://github.com/codedartdev/slide-captcha-react.git","type":"git"},"workspaces":["example/react-vite"],"_npmVersion":"10.9.3","description":"React components and TypeScript client for Laravel Slide CAPTCHA.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vite":"^6.3.5","jsdom":"^26.1.0","react":"^19.1.0","eslint":"^9.28.0","vitest":"^4.1.8","globals":"^16.2.0","prettier":"^3.5.3","react-dom":"^19.1.0","@eslint/js":"^9.28.0","typescript":"^5.8.3","@types/react":"^19.1.6","@types/react-dom":"^19.1.5","typescript-eslint":"^8.33.0","@vitejs/plugin-react":"^4.5.0","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.6.3","eslint-plugin-react-hooks":"^5.2.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/slide-captcha-react_0.1.9_1784820526082_0.17451084468201516","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@codedartdev/slide-captcha-react","version":"0.1.10","description":"React components and TypeScript client for Laravel Slide CAPTCHA.","license":"MIT","type":"module","repository":{"type":"git","url":"git+https://github.com/codedartdev/slide-captcha-react.git"},"homepage":"https://github.com/codedartdev/slide-captcha-react#readme","bugs":{"url":"https://github.com/codedartdev/slide-captcha-react/issues"},"sideEffects":["**/*.css"],"main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./styles.css":"./dist/slide-captcha.css","./styles/slide-captcha.css":"./dist/slide-captcha.css","./package.json":"./package.json"},"workspaces":["example/react-vite"],"scripts":{"build":"tsup","prepack":"npm run build","test":"vitest run","lint":"eslint .","typecheck":"tsc --noEmit && npm run typecheck --workspace @codedartdev/slide-captcha-react-example","format":"prettier --write .","deploy":"node scripts/deploy.mjs"},"publishConfig":{"access":"public"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0"},"devDependencies":{"@eslint/js":"^9.28.0","@testing-library/jest-dom":"^6.6.3","@testing-library/react":"^16.3.0","@types/react":"^19.1.6","@types/react-dom":"^19.1.5","@vitejs/plugin-react":"^4.5.0","eslint":"^9.28.0","eslint-plugin-react-hooks":"^5.2.0","globals":"^16.2.0","jsdom":"^26.1.0","prettier":"^3.5.3","react":"^19.1.0","react-dom":"^19.1.0","tsup":"^8.5.0","typescript":"^5.8.3","typescript-eslint":"^8.33.0","vite":"^6.3.5","vitest":"^4.1.8"},"_id":"@codedartdev/slide-captcha-react@0.1.10","_nodeVersion":"22.20.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-PCMC7uf2OsZY5uiKSSsxlRB4zQxS1hsKAgwIJr2me/1DBRzhhBFBn1/dgMZGJHzrlsriLHdnzNMkT2uqx7naoQ==","shasum":"90fb6f3ac09c65853972d79b9b63569fc51cfd7a","tarball":"https://registry.npmjs.org/@codedartdev/slide-captcha-react/-/slide-captcha-react-0.1.10.tgz","fileCount":11,"unpackedSize":288888,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGoKfCR0UKLVPzwE20fXiLS+CGSKbbZIH5/ryG35ibV7AiEA7JLNJUNcdeC/5vFsulGH1uDAUyMU9bpb2dTt+MgSgRs="}]},"_npmUser":{"name":"erickcrus","email":"erickcrus@gmail.com"},"directories":{},"maintainers":[{"name":"erickcrus","email":"erickcrus@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/slide-captcha-react_0.1.10_1788203519581_0.37115441890440826"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-01T20:25:39.385Z","modified":"2026-08-31T19:11:59.966Z","0.1.1":"2026-06-01T20:25:39.687Z","0.1.2":"2026-06-01T22:04:23.609Z","0.1.3":"2026-06-03T02:23:49.415Z","0.1.4":"2026-06-04T16:17:01.727Z","0.1.5":"2026-06-05T23:58:49.635Z","0.1.6":"2026-06-06T01:34:48.972Z","0.1.8":"2026-06-08T11:11:09.080Z","0.1.9":"2026-07-23T15:28:46.232Z","0.1.10":"2026-08-31T19:11:59.783Z"},"bugs":{"url":"https://github.com/codedartdev/slide-captcha-react/issues"},"license":"MIT","homepage":"https://github.com/codedartdev/slide-captcha-react#readme","repository":{"type":"git","url":"git+https://github.com/codedartdev/slide-captcha-react.git"},"description":"React components and TypeScript client for Laravel Slide CAPTCHA.","maintainers":[{"name":"erickcrus","email":"erickcrus@gmail.com"}],"readme":"# @codedartdev/slide-captcha-react\n\nPacote React + TypeScript para consumir o Laravel Slide CAPTCHA em aplicações web modernas. Ele não inclui backend próprio: o pacote apenas conversa com os endpoints já existentes do Laravel.\n\nEndpoints esperados:\n\n- `GET /slide-captcha/new`\n- `POST /slide-captcha/verify`\n- `GET /slide-captcha/generated/*` para as imagens temporárias retornadas pelo desafio\n\n## Instalação\n\n```bash\nnpm install @codedartdev/slide-captcha-react\n```\n\nImporte também o CSS padrão:\n\n```tsx\nimport '@codedartdev/slide-captcha-react/styles.css';\n```\n\n## Uso básico\n\n```tsx\nimport { SlideCaptcha } from '@codedartdev/slide-captcha-react';\nimport '@codedartdev/slide-captcha-react/styles.css';\n\nexport function LoginCaptcha() {\n  return (\n    <SlideCaptcha\n      baseUrl={import.meta.env.VITE_API_BASE_URL}\n      csrfToken={document.querySelector<HTMLMetaElement>('meta[name=\"csrf-token\"]')?.content}\n      onSuccess={(token) => {\n        console.log('Token do CAPTCHA:', token);\n      }}\n      onError={(error) => {\n        console.error(error.code, error.message);\n      }}\n    />\n  );\n}\n```\n\n`baseUrl` é opcional. Se omitido, o pacote chama `/slide-captcha/new` e `/slide-captcha/verify` no mesmo host da aplicação.\n\n## Next.js com CoinSentry\n\nQuando a aplicação usa `@codedartdev/coinsentry-next`, o proxy padrão já\nencaminha e assina o fluxo completo. Nenhum path ou fetcher precisa ser\nconfigurado:\n\n```tsx\n'use client';\n\nimport { SlideCaptcha } from '@codedartdev/slide-captcha-react';\nimport '@codedartdev/slide-captcha-react/styles.css';\n\nexport function LoginCaptcha() {\n  return <SlideCaptcha />;\n}\n```\n\nO BFF converte as URLs temporárias das imagens em paths same-origin e preserva\na query assinada pelo Laravel. Como as imagens são carregadas por elementos\n`img`, headers fornecidos por `fetcher` não são aplicados a elas.\n\n## Laravel e Laravel Vite\n\nEm uma view Blade, exponha o CSRF token:\n\n```blade\n<meta name=\"csrf-token\" content=\"{{ csrf_token() }}\">\n```\n\nNo frontend:\n\n```tsx\nconst csrfToken = document.querySelector<HTMLMetaElement>('meta[name=\"csrf-token\"]')?.content;\n\n<SlideCaptcha baseUrl={import.meta.env.VITE_API_BASE_URL} csrfToken={csrfToken} />;\n```\n\nSe sua API estiver no mesmo domínio do app Laravel, `baseUrl` pode ficar vazio. Se estiver em outro host, configure no `.env` do Vite:\n\n```env\nVITE_API_BASE_URL=https://api.example.com\n```\n\n## react-hook-form\n\nO exemplo completo está em `example/react-vite`.\n\n```tsx\nimport { SlideCaptcha } from '@codedartdev/slide-captcha-react';\nimport { useForm } from 'react-hook-form';\n\ntype LoginForm = {\n  email: string;\n  password: string;\n  slide_captcha_token: string;\n};\n\nexport function LoginForm() {\n  const { register, handleSubmit, setValue, clearErrors, formState } = useForm<LoginForm>({\n    defaultValues: { email: '', password: '', slide_captcha_token: '' },\n  });\n\n  async function onSubmit(values: LoginForm) {\n    await fetch('/login', {\n      method: 'POST',\n      credentials: 'same-origin',\n      headers: {\n        Accept: 'application/json',\n        'Content-Type': 'application/json',\n      },\n      body: JSON.stringify(values),\n    });\n  }\n\n  return (\n    <form onSubmit={handleSubmit(onSubmit)}>\n      <input {...register('email', { required: 'Informe seu email.' })} />\n      <input type=\"password\" {...register('password', { required: 'Informe sua senha.' })} />\n      <input\n        type=\"hidden\"\n        {...register('slide_captcha_token', {\n          required: 'Resolva o CAPTCHA para continuar.',\n        })}\n      />\n\n      <SlideCaptcha\n        baseUrl={import.meta.env.VITE_API_BASE_URL}\n        onSuccess={(token) => {\n          setValue('slide_captcha_token', token, { shouldValidate: true });\n          clearErrors('slide_captcha_token');\n        }}\n        onError={() => {\n          setValue('slide_captcha_token', '', { shouldValidate: true });\n        }}\n      />\n\n      {formState.errors.slide_captcha_token ? (\n        <p>{formState.errors.slide_captcha_token.message}</p>\n      ) : null}\n\n      <button type=\"submit\">Entrar</button>\n    </form>\n  );\n}\n```\n\n## Client HTTP\n\nTambém é possível usar apenas o client interno:\n\n```ts\nimport { createSlideCaptchaClient } from '@codedartdev/slide-captcha-react';\n\nconst client = createSlideCaptchaClient({\n  baseUrl: 'https://api.example.com',\n  csrfToken: 'csrf-token',\n  headers: {\n    'X-App': 'frontend',\n  },\n});\n\nconst challenge = await client.getChallenge();\nconst result = await client.verifyChallenge({\n  challenge_id: challenge.challenge_id,\n  x: 120,\n  y: 40,\n  rotation: 0,\n  movements: [{ x: 120, y: 40, r: 0, t: 300 }],\n});\n```\n\nOpções disponíveis:\n\n- `baseUrl`: prefixo dos endpoints.\n- `headers`: objeto, `Headers` ou função que retorna headers.\n- `csrfToken`: enviado por padrão como `X-CSRF-TOKEN`.\n- `csrfHeaderName`: altera o nome do header CSRF.\n- `fetcher`: implementação customizada de `fetch`.\n- `credentials`: padrão `same-origin`.\n- `challengePath` e `verifyPath`: caminhos customizados se sua aplicação não usa os padrões.\n\n## Erros\n\nErros são normalizados como `SlideCaptchaError`:\n\n```ts\nimport { isSlideCaptchaError } from '@codedartdev/slide-captcha-react';\n\nfunction handleError(error: unknown) {\n  if (isSlideCaptchaError(error)) {\n    console.log(error.code, error.status, error.reason, error.message);\n  }\n}\n```\n\nCódigos principais:\n\n- `network_error`\n- `invalid_json`\n- `invalid_response`\n- `backend_error`\n- `verification_failed`\n- `configuration_error`\n\n## Customização visual\n\nUse `className` e sobrescreva as variáveis CSS:\n\n```css\n.meu-captcha {\n  --scaptcha-primary: #0f766e;\n  --scaptcha-border: #cbd5e1;\n}\n```\n\n```tsx\n<SlideCaptcha className=\"meu-captcha\" />\n```\n\nTambém é possível customizar as cores diretamente pelo componente com `colors`. Os valores aceitam qualquer cor CSS válida; os campos de sombra aceitam valores de `box-shadow`:\n\n```tsx\n<SlideCaptcha\n  variant=\"modal\"\n  colors={{\n    background: '#10131a',\n    backdrop: 'rgb(0 0 0 / 0.72)',\n    border: 'rgb(255 255 255 / 0.12)',\n    primary: '#14b8a6',\n    primaryHover: '#2dd4bf',\n    primaryText: '#001a16',\n    text: '#f8fafc',\n    mutedText: '#94a3b8',\n    accent: '#facc15',\n    track: '#334155',\n  }}\n/>\n```\n\nEscolha o tema com `theme=\"dark\"` ou `theme=\"light\"`. O padrão é `dark`:\n\n```tsx\n<SlideCaptcha theme=\"light\" />\n```\n\nEscolha a apresentação com `variant=\"inline\"` ou `variant=\"modal\"`. O padrão é `inline`, que renderiza apenas o corpo funcional do CAPTCHA:\n\n```tsx\n<SlideCaptcha variant=\"inline\" />\n```\n\nPara usar a experiência completa de modal, combine `variant=\"modal\"` com `onCancel` para exibir cabeçalho, fechar e cancelar:\n\n```tsx\n<SlideCaptcha variant=\"modal\" theme=\"dark\" onCancel={() => setCaptchaOpen(false)} />\n```\n\nChaves disponíveis em `colors` e suas variáveis CSS equivalentes:\n\n| `colors`                         | Variável CSS                        | Elemento                          |\n| -------------------------------- | ----------------------------------- | --------------------------------- |\n| `accent`                         | `--scaptcha-accent`                 | Barra superior do modal           |\n| `background`                     | `--scaptcha-bg`                     | Fundo do painel                   |\n| `backdrop`                       | `--scaptcha-backdrop`               | Fundo externo do modal            |\n| `badgeBackground`                | `--scaptcha-badge-bg`               | Fundo do badge do header          |\n| `badgeBorder`                    | `--scaptcha-badge-border`           | Borda do badge do header          |\n| `border`                         | `--scaptcha-border`                 | Bordas gerais                     |\n| `borderStrong`                   | `--scaptcha-border-strong`          | Bordas de controles destacados    |\n| `danger`                         | `--scaptcha-danger`                 | Texto de erro                     |\n| `dangerBackground`               | `--scaptcha-danger-bg`              | Fundo de erro                     |\n| `dangerBorder`                   | `--scaptcha-danger-border`          | Borda de erro                     |\n| `divider`                        | `--scaptcha-divider`                | Divisores internos                |\n| `focus`                          | `--scaptcha-focus`                  | Contorno de foco                  |\n| `iconHoverBackground`            | `--scaptcha-icon-hover-bg`          | Hover de botões de ícone          |\n| `mutedText`                      | `--scaptcha-muted`                  | Texto secundário                  |\n| `panelShadow`                    | `--scaptcha-panel-shadow`           | Sombra do painel                  |\n| `panelSoftBackground`            | `--scaptcha-panel-soft`             | Fundo do controle de rotação      |\n| `pieceBorder`                    | `--scaptcha-piece-border`           | Borda da peça                     |\n| `pieceShadow`                    | `--scaptcha-piece-shadow`           | Sombra da peça                    |\n| `primary`                        | `--scaptcha-primary`                | Botão principal e destaque        |\n| `primaryHover`                   | `--scaptcha-primary-hover`          | Hover do botão principal          |\n| `primaryText`                    | `--scaptcha-primary-text`           | Texto do botão principal          |\n| `rotationDivider`                | `--scaptcha-rotation-divider`       | Divisor dos ícones de rotação     |\n| `rotationIcon`                   | `--scaptcha-rotation-icon`          | Ícones de rotação                 |\n| `rotationThumbShadow`            | `--scaptcha-rotation-thumb-shadow`  | Brilho do marcador do slider      |\n| `secondaryButtonBackground`      | `--scaptcha-secondary-bg`           | Fundo do botão secundário         |\n| `secondaryButtonHoverBackground` | `--scaptcha-secondary-hover-bg`     | Hover do botão secundário         |\n| `secondaryButtonHoverBorder`     | `--scaptcha-secondary-hover-border` | Borda hover do botão secundário   |\n| `softText`                       | `--scaptcha-soft`                   | Texto de controles secundários    |\n| `stageBackground`                | `--scaptcha-stage-bg`               | Fundo da área da imagem           |\n| `subtleText`                     | `--scaptcha-subtle`                 | Texto discreto, status e cancelar |\n| `success`                        | `--scaptcha-success`                | Estado resolvido                  |\n| `successRing`                    | `--scaptcha-success-ring`           | Destaque da peça resolvida        |\n| `text`                           | `--scaptcha-text`                   | Texto principal                   |\n| `track`                          | `--scaptcha-track`                  | Trilha do slider                  |\n\n## Scripts\n\n```bash\nnpm run build\nnpm run test\nnpm run lint\nnpm run typecheck\nnpm run format\nnpm run deploy\n```\n\nPara rodar o exemplo:\n\n```bash\nnpm install\nnpm run dev --workspace @codedartdev/slide-captcha-react-example\n```\n\n## Publicação no npm\n\nO deploy gerencia o versionamento automaticamente. Por padrão, ele incrementa `patch`, roda as validações, gera o build, publica no npm e faz push do commit/tag criado pelo `npm version`.\n\n```bash\nnpm run deploy\n```\n\nOutros incrementos:\n\n```bash\nnpm run deploy -- minor\nnpm run deploy -- major\nnpm run deploy -- 1.2.3\nnpm run deploy -- prerelease --preid beta\n```\n\nO script `deploy` exige a árvore Git limpa, roda lint, typecheck, testes e build, executa `npm version`, publica com `npm publish --access public` e envia o commit/tag com `git push --follow-tags`.\n\nO pacote publicado usa somente a build compilada em `dist`. Os campos `main`, `module`, `types` e `exports` apontam para arquivos dentro de `dist`, e a lista `files` publica apenas `dist`, `README.md` e `LICENSE`.\n\nO script `prepack` executa `npm run build` automaticamente antes de `npm pack` e `npm publish`, garantindo que o tarball contenha a build atualizada. O pacote não usa `postinstall`, porque instalar dependências não deve executar build no ambiente do consumidor; isso evita problemas de segurança, compatibilidade com CI, instalações offline e experiência de instalação.\n\nO diretório `src` permanece no repositório como referência técnica e base de desenvolvimento, mas não entra no pacote publicado.\n","readmeFilename":"README.md"}