{"_id":"@gusnips/react","_rev":"45-51a0f05f028b856d0827a35528106f70","name":"@gusnips/react","dist-tags":{"latest":"0.9.24"},"versions":{"0.1.0":{"name":"@gusnips/react","version":"0.1.0","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.1.0","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"81cb2fa87847664fd9bcbe41692fcdee1d6d1823","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.1.0.tgz","fileCount":138,"integrity":"sha512-4BOJ2SAG7WHMbfR/bXlRdJ7C3+IAXBiceZYmi1VK0yQeCgQEJ9R0cDpmTbEkad2FbbdAGomKzdE+L2c+XNCkQw==","signatures":[{"sig":"MEUCIQCOi152FXKJaMbGOOAB3/ES8kPiDa/J/BwXBWRR2JbhOwIgBQoThoSZbHjL9FwLf7BkhwvGw5hpqsT1YxTxaqR0nKQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":379204},"type":"module","types":"./dist/index.d.ts","shasum":"81cb2fa87847664fd9bcbe41692fcdee1d6d1823","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-4BOJ2SAG7WHMbfR/bXlRdJ7C3+IAXBiceZYmi1VK0yQeCgQEJ9R0cDpmTbEkad2FbbdAGomKzdE+L2c+XNCkQw==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, chunk-reload recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.1.0_1788907034272_0.29619538009175983","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@gusnips/react","version":"0.2.0","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.2.0","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"1d2b07c758ec752a7e8dc3fd81910f7127e8cc85","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.2.0.tgz","fileCount":138,"integrity":"sha512-wHaJmFaVRzmwzmkARac1ig1NVhNp3KMXECLK0SWqo8kroATU0maOUw+utnUhotTnLC2hzKd4SHXUudcppGPZCQ==","signatures":[{"sig":"MEYCIQDvwoFA0TqtinudIfJjWN6JoKst/KJTWY/q1FgcxCk99wIhAPsasZ1qBLvkK3qavhYEOcdBQQh1T6Sdoi99CJBRPm0T","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":381142},"type":"module","types":"./dist/index.d.ts","shasum":"1d2b07c758ec752a7e8dc3fd81910f7127e8cc85","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-wHaJmFaVRzmwzmkARac1ig1NVhNp3KMXECLK0SWqo8kroATU0maOUw+utnUhotTnLC2hzKd4SHXUudcppGPZCQ==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, chunk-reload recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.2.0_1788908225681_0.560710086488112","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@gusnips/react","version":"0.3.0","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.3.0","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"48a81ce9d33f61b635f87153845585d597d972f4","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.3.0.tgz","fileCount":138,"integrity":"sha512-5mcYFDazikka+0dVgfu7UAPiLSZENmu18A0wxgQOfXjrVpqTS6JDgtIVWCdSnkr/pJIqXs8lE8lOzswlNYcIUA==","signatures":[{"sig":"MEYCIQDzL8Pi04ks3x9ZE6JmHlfq/fLXnhhzrHNDazgXPX5jjQIhANlqNgCXbRsME+OWcxPOKrQmLGXAbPWhQQPQfsMRpJ6r","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":385603},"type":"module","types":"./dist/index.d.ts","shasum":"48a81ce9d33f61b635f87153845585d597d972f4","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-5mcYFDazikka+0dVgfu7UAPiLSZENmu18A0wxgQOfXjrVpqTS6JDgtIVWCdSnkr/pJIqXs8lE8lOzswlNYcIUA==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, chunk-reload recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.3.0_1788961531498_0.09245998830697033","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@gusnips/react","version":"0.4.0","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.4.0","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"b4d5d0b6dec190f389f33cb317a60665c9172ec0","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.4.0.tgz","fileCount":138,"integrity":"sha512-LOAywiKs7iGYEgoHnOfAlUAIgklwfHEQr6MMu7e1jvbCSxOggg3I9oVqNVwZZadQvc1qoxczs04vUsKVCD7XxA==","signatures":[{"sig":"MEUCIDu59fUswq+7IGZ1dzeRSGutBzpmq3qD6SfJi8uOodjTAiEA5t0yr2yZHTS8S/+8QWSlKoeM6yPLwgZMl6MWNhQ+Cl8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":394701},"type":"module","types":"./dist/index.d.ts","shasum":"b4d5d0b6dec190f389f33cb317a60665c9172ec0","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-LOAywiKs7iGYEgoHnOfAlUAIgklwfHEQr6MMu7e1jvbCSxOggg3I9oVqNVwZZadQvc1qoxczs04vUsKVCD7XxA==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, chunk-reload recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.4.0_1788981972226_0.9694326602019225","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@gusnips/react","version":"0.4.1","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.4.1","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"beb058e984c3f9e189af793932f49bd522e9d352","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.4.1.tgz","fileCount":139,"integrity":"sha512-RtdQ6dXMF8zpEFJCO+YpIWtRYxQ+Q1VP9oHjeRjX9WMEhsXYb0ALZH0U+z1FeC9HPCxE+wHgU46JvDEMdjNN4g==","signatures":[{"sig":"MEQCIHOT+STZLlp5Co83KJ2C0RCwA49eXGIR94FB0eTYu7/lAiALtwsQV8O1/6+aqwPlZWh9ajVuRWLgjNDbHp8ZGvKmrg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":419946},"type":"module","types":"./dist/index.d.ts","shasum":"beb058e984c3f9e189af793932f49bd522e9d352","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-RtdQ6dXMF8zpEFJCO+YpIWtRYxQ+Q1VP9oHjeRjX9WMEhsXYb0ALZH0U+z1FeC9HPCxE+wHgU46JvDEMdjNN4g==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, chunk-reload recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.4.1_1789142738632_0.4080349644258976","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@gusnips/react","version":"0.4.2","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.4.2","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"c109fabc972ac210ae6602ae8d2dac16a1d67821","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.4.2.tgz","fileCount":139,"integrity":"sha512-49mT3w6RzD68WU2LhbHiO3mZvsfe9tJyWS9SKuZoMX17V757J9gXOCX4C3PuSWAqhgyDTdm3M6q1v6ypskSS0g==","signatures":[{"sig":"MEUCIH00qtBoWEMjMxrw9uqHEJWiisrILziTtIQm0ZRIwJVPAiEA4MI4Pqf1gTWmXDS6DcEjHoMauskYHz4oySUi6yI/syA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":421383},"type":"module","types":"./dist/index.d.ts","shasum":"c109fabc972ac210ae6602ae8d2dac16a1d67821","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-49mT3w6RzD68WU2LhbHiO3mZvsfe9tJyWS9SKuZoMX17V757J9gXOCX4C3PuSWAqhgyDTdm3M6q1v6ypskSS0g==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, chunk-reload recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.4.2_1789147311732_0.6643215619084775","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@gusnips/react","version":"0.4.3","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.4.3","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"ff9d488e0ac8106dc80abffbd5c9cc29792badf4","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.4.3.tgz","fileCount":139,"integrity":"sha512-kEpaajHUDtVMmAJzI3R3wfHIvCrN3Fm3OZFnn+FTLtEzvq/2k+otIxvLgFb9XCsQB8ZeXvH/yCC7FGjaLWQQxA==","signatures":[{"sig":"MEUCIAKZJXv6dyI5Hu/B17l5ceuTUbgjv5ea3su9OFnrRCAPAiEA3ULT4ALsif2XKst3PhMVEUxPN5UTfghXLmRFtS8PUGA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":421395},"type":"module","types":"./dist/index.d.ts","shasum":"ff9d488e0ac8106dc80abffbd5c9cc29792badf4","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-kEpaajHUDtVMmAJzI3R3wfHIvCrN3Fm3OZFnn+FTLtEzvq/2k+otIxvLgFb9XCsQB8ZeXvH/yCC7FGjaLWQQxA==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, chunk-reload recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.4.3_1789155548656_0.012257503474397469","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@gusnips/react","version":"0.4.4","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.4.4","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"d6fde723be5bc1189967c8f96e76b6e1bb130ba9","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.4.4.tgz","fileCount":140,"integrity":"sha512-WEG4vvYeo+VVW52xBXyIcCozte2SYl8n3VOnEtCZT7/ncdbTo8LnV9x1skXYX3HVIo2Rq6DEn6xTv9CJeJ6p5Q==","signatures":[{"sig":"MEUCIQDvDuyPBbuE/l4sjJmfWI9GikTu+JOO2/zNxRjptbuoxQIgKRQgpQl6c3heedd31bArghWdMoXQrvJVL1bS+RtsNXM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":426718},"type":"module","types":"./dist/index.d.ts","shasum":"d6fde723be5bc1189967c8f96e76b6e1bb130ba9","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-WEG4vvYeo+VVW52xBXyIcCozte2SYl8n3VOnEtCZT7/ncdbTo8LnV9x1skXYX3HVIo2Rq6DEn6xTv9CJeJ6p5Q==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, chunk-reload recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.4.4_1789157673198_0.23890229782571049","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@gusnips/react","version":"0.4.5","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.4.5","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"13132be0ab9a036939c2903b10fb2ee401bf09ec","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.4.5.tgz","fileCount":140,"integrity":"sha512-3DjUJuRXliV21kEulEuXYLOdnnWW0vp4+iFhMSlc6wA0yr5X0Wal+jVg82Q23lOVwu0r2bW/6JndPiknvFZueg==","signatures":[{"sig":"MEUCIC4e9bAWHOo0plcpXnhBGkOy4Naaz1XyXVupUNcPRNG9AiEAwyOPRCpEyUGDofgKF7KfEk2Q0hfWRWURA0nA6PmTpVg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":428264},"type":"module","types":"./dist/index.d.ts","shasum":"13132be0ab9a036939c2903b10fb2ee401bf09ec","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-3DjUJuRXliV21kEulEuXYLOdnnWW0vp4+iFhMSlc6wA0yr5X0Wal+jVg82Q23lOVwu0r2bW/6JndPiknvFZueg==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, chunk-reload recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.4.5_1789160860476_0.7147076865681163","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"@gusnips/react","version":"0.4.6","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.4.6","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"143d7e357b548960b7dc89ede13bef7b1d05953f","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.4.6.tgz","fileCount":141,"integrity":"sha512-TnMFjOVk4v1LbmZNhuSNaL5vn+g7yQzW4/JlxhSGDO/oxZL3E0FvRSCoXXb0H/4Ro5YwAaneulgew/RHd1RdqQ==","signatures":[{"sig":"MEQCIDeYxmBo5SyG8oUI5VHWiKVVLCQnLDWAU5OGEg0KGdckAiBpWkUs5C0HpBEJDkpJscQUjHIqgl0EXlEb3Li2FJgkUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":437046},"type":"module","types":"./dist/index.d.ts","shasum":"143d7e357b548960b7dc89ede13bef7b1d05953f","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-TnMFjOVk4v1LbmZNhuSNaL5vn+g7yQzW4/JlxhSGDO/oxZL3E0FvRSCoXXb0H/4Ro5YwAaneulgew/RHd1RdqQ==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, chunk-reload recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.4.6_1789166285053_0.574716493158451","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@gusnips/react","version":"0.5.0","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.5.0","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"2f5b402032dced33d8ad2c8beb1fc9751d993bfd","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.5.0.tgz","fileCount":145,"integrity":"sha512-BK4ld2ayhpDi5R1DrbCXKU71u8Dd7HbYi2roRRrGJiL8Zyid3+TVycGcRLIUXkUDt9Rl6JSJNXroj8aDSqU1SA==","signatures":[{"sig":"MEQCIF4QYzHx6PbPTVDfY5QD1DuG4GX454ksfFpdtGbEl7S0AiBiuEDeN31OK486Pl2BOPHJhmHASMNcc8opUVD+D/iWAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":466956},"type":"module","types":"./dist/index.d.ts","shasum":"2f5b402032dced33d8ad2c8beb1fc9751d993bfd","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-BK4ld2ayhpDi5R1DrbCXKU71u8Dd7HbYi2roRRrGJiL8Zyid3+TVycGcRLIUXkUDt9Rl6JSJNXroj8aDSqU1SA==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.5.0_1789173540375_0.22444590399827358","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@gusnips/react","version":"0.5.1","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.5.1","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"1b4fcab9650da5b5424c07534854f288a5ba944c","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.5.1.tgz","fileCount":141,"integrity":"sha512-TmgPy5MOG+h9ODp16k9IOLsmD4OI5lJ2njn3fyuSNhU8W/zNdIRhogE3Vc1Xsdzog06R3SIHYYBG/SAnp3+fWQ==","signatures":[{"sig":"MEUCICCFUtJfyn1HIIVl/r9AF+Fh+5+GvI/mbPQLKTlGh2BUAiEAuBJCbRw/sNV0SvoJz8FbFNiFrRbBRd1mPK6sERBvAl8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":456895},"type":"module","types":"./dist/index.d.ts","shasum":"1b4fcab9650da5b5424c07534854f288a5ba944c","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-TmgPy5MOG+h9ODp16k9IOLsmD4OI5lJ2njn3fyuSNhU8W/zNdIRhogE3Vc1Xsdzog06R3SIHYYBG/SAnp3+fWQ==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.5.1_1789173839098_0.8093185184577316","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@gusnips/react","version":"0.5.2","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.5.2","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"8764a5e1f7cb4baac99ed2d82ca480a3ffe3b6b4","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.5.2.tgz","fileCount":141,"integrity":"sha512-SoY+DOFU4U5+mWPUp2kLA+3+VSGwV59Jeg2GT7GuOw2iBIbtvRhI4grFoZIeMiv2/MhLVsQoOSjN6pK+goKRqg==","signatures":[{"sig":"MEYCIQCWxUBEnZinhGhy9jlfFJUf79vbhClMJd1S3W2vr+391gIhAMByeMBpUi8n+4DWWQ8cbm/u8JacwZsAzn8Dcckx7TI9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":460410},"type":"module","types":"./dist/index.d.ts","shasum":"8764a5e1f7cb4baac99ed2d82ca480a3ffe3b6b4","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-SoY+DOFU4U5+mWPUp2kLA+3+VSGwV59Jeg2GT7GuOw2iBIbtvRhI4grFoZIeMiv2/MhLVsQoOSjN6pK+goKRqg==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.5.2_1789175138156_0.04952381527403493","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@gusnips/react","version":"0.5.3","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.5.3","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"689b1133e98c49e607e23eb54d0ad87f1b647c55","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.5.3.tgz","fileCount":141,"integrity":"sha512-F3yX0L6QD4kjc7OPYfafqH8ik2HLFD9EHFQjDz3DHHjKEvSzVvt9WyanbWahqzvWjh45pPzwxu+FUPP9ZgskKw==","signatures":[{"sig":"MEQCIFxApwXVsBfA3XTsBs8V5nX2xafkFbQBtl1j0zd8B1eAAiBT29GYFG7fB9s8pFtOnVXVlAuK02RcPPbWo3JemBcmpA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":474175},"type":"module","types":"./dist/index.d.ts","shasum":"689b1133e98c49e607e23eb54d0ad87f1b647c55","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-F3yX0L6QD4kjc7OPYfafqH8ik2HLFD9EHFQjDz3DHHjKEvSzVvt9WyanbWahqzvWjh45pPzwxu+FUPP9ZgskKw==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.5.3_1789177416915_0.05261513111715321","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@gusnips/react","version":"0.6.0","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.6.0","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"8e99e7e18a7c908992fc87ff16cdf0790d03e765","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.6.0.tgz","fileCount":141,"integrity":"sha512-mdq8Aa8MtnO68Ur2PCQjnCpHn705645WoRdrZsNwC7MjpgLhBnqUMLCXU+13aLruNTTO8MMhGTHY6Sj4/oXUPA==","signatures":[{"sig":"MEUCIBGX3k3ebIIIBmKfxa328jkDyHXb4gXzU6TuofuxsaIaAiEAumX4zxnGobqTLWX6PC/JubJAOPmFIMFRlfUEJg+eEtY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":481214},"type":"module","types":"./dist/index.d.ts","shasum":"8e99e7e18a7c908992fc87ff16cdf0790d03e765","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-mdq8Aa8MtnO68Ur2PCQjnCpHn705645WoRdrZsNwC7MjpgLhBnqUMLCXU+13aLruNTTO8MMhGTHY6Sj4/oXUPA==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.6.0_1789187854857_0.3974232435692717","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@gusnips/react","version":"0.6.1","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.6.1","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"ffd862df257cdbe59ef36b51b65f58c223671db1","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.6.1.tgz","fileCount":142,"integrity":"sha512-cUoc5WSfhQ5bg64pZPxbWEkIAe34ShtDf+sIy1gJTbnO3XpmTs5FmW61OhLWXsAiMbuska8AwPM4HVzdzr94Lw==","signatures":[{"sig":"MEQCH18rY4cuoypstnRCiLLWh45k2mzF6+GDs36Ty0JdoGICIQCa7jKjg06SJG62fw38bAVx0zcJTOh3qaezxO10Ni3gpg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":490040},"type":"module","types":"./dist/index.d.ts","shasum":"ffd862df257cdbe59ef36b51b65f58c223671db1","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-cUoc5WSfhQ5bg64pZPxbWEkIAe34ShtDf+sIy1gJTbnO3XpmTs5FmW61OhLWXsAiMbuska8AwPM4HVzdzr94Lw==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.6.1_1789193650081_0.5638906521840785","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@gusnips/react","version":"0.6.2","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.6.2","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"effd344fb00151c44813fc8772dd12918fb293e8","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.6.2.tgz","fileCount":142,"integrity":"sha512-VR9I4qUwa++VYA2UyWTD00LSvTs2bvneVVxEC9xZCsHerTURGdsnsvxzq+slUPq0XS/wdfA+nZ5wXbo2ictCJQ==","signatures":[{"sig":"MEUCIQCgMKmkk7xahm0jftx0Jfk5XIxM6O+5wbP5O5iAbK3mFwIgZTTFxrEmdeOPXfTmHSqssJVRd9PljWvjRVy6i89JkMc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":499516},"type":"module","types":"./dist/index.d.ts","shasum":"effd344fb00151c44813fc8772dd12918fb293e8","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-VR9I4qUwa++VYA2UyWTD00LSvTs2bvneVVxEC9xZCsHerTURGdsnsvxzq+slUPq0XS/wdfA+nZ5wXbo2ictCJQ==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.6.2_1789194866515_0.6355695332365778","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@gusnips/react","version":"0.7.0","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.7.0","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"e18f43ed112be961e8fcf2a9b8c1cc83a3db2be0","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.7.0.tgz","fileCount":142,"integrity":"sha512-E5Io++eq/czfnOlLQanNTi/TTWlcGQiIGWaJphvh6WfT2FSbQ0qXImh1xSIcGp8J3987ga7YuCTjl/fPP2yqJg==","signatures":[{"sig":"MEQCIBkq7YGxh15MI11wEsfJYfL4PMAHRHxfXltoziwDRzyCAiBaqFJAnSRceBDf9dlEYOrK09F4z6dZ44sGn8JR0BU8Gg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":503687},"type":"module","types":"./dist/index.d.ts","shasum":"e18f43ed112be961e8fcf2a9b8c1cc83a3db2be0","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-E5Io++eq/czfnOlLQanNTi/TTWlcGQiIGWaJphvh6WfT2FSbQ0qXImh1xSIcGp8J3987ga7YuCTjl/fPP2yqJg==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.7.0_1789200318747_0.4157470568178232","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@gusnips/react","version":"0.8.0","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.8.0","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"3f9040fb6a6cc597df3d327c266e69709a352412","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.8.0.tgz","fileCount":142,"integrity":"sha512-TLXsBDSGxMU/Tl8cci7ipk1hFibYBaBkHk8reVznkEDxTSHGfWjOoTrF0pGLJxwYceVx8I9eGUhYS6fd+ToOXQ==","signatures":[{"sig":"MEQCIH7Eaml8HGe54Zrx4INNNX7aVmT/t9CdAMfp7pIc8aFfAiBdC73XecIrpB+lAwIV1uwzwMBqSFH+wC055hjowSC1IQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":506794},"type":"module","types":"./dist/index.d.ts","shasum":"3f9040fb6a6cc597df3d327c266e69709a352412","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-TLXsBDSGxMU/Tl8cci7ipk1hFibYBaBkHk8reVznkEDxTSHGfWjOoTrF0pGLJxwYceVx8I9eGUhYS6fd+ToOXQ==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.8.0_1789200721278_0.3863369216659689","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@gusnips/react","version":"0.8.1","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.8.1","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"389e0554b1acef9f6274b56cddd3a2b079494637","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.8.1.tgz","fileCount":142,"integrity":"sha512-NMH7CdJxclKeQ6jPJcxofDstAluBXr+UzrVPxZEBQM/LTzzphXX4TmvssCk/fqErhAxyx2F2x0GpyL57NisDew==","signatures":[{"sig":"MEQCIGzikTOTCCvFzaqqXp2/GK5MRdKdvlUoUioL1pjam/T0AiAkQ1Nt0K+bvGT4M0Vewv3MkvMKMTsBALJun7VXGO8Obg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDYHVxq/0WsCmOrDmfX1ifRd6NQe4XRSAojHoJfAj7o3wIgRjgbUaxLrtF+MqfdTwxa+gJCT1KSK/xFvonySZ99kh8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":513411},"type":"module","types":"./dist/index.d.ts","shasum":"389e0554b1acef9f6274b56cddd3a2b079494637","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-NMH7CdJxclKeQ6jPJcxofDstAluBXr+UzrVPxZEBQM/LTzzphXX4TmvssCk/fqErhAxyx2F2x0GpyL57NisDew==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.8.1_1789722460337_0.26885748879441373","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@gusnips/react","version":"0.9.0","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.9.0","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"4a05480ef84e6391fb691fb343162c9596901c2e","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.9.0.tgz","fileCount":154,"integrity":"sha512-bSabtnG+QqEc3V1WnRGIprFqL1Sq3u9D8FZZ5+wZnuqhSv8rGunebnL46bKOjz3wQ/EObaWU2JJsoHItjlqh6Q==","signatures":[{"sig":"MEUCIDvvNQR4Xlz4OZqRj67QljYlULuZ1p7/h0DhOC6OKP3dAiEAwqOQvB4yWStqHaIQFnsAlO0I5Cy50O8Xe1pls/cnak8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDoIZiNPw4O6XWnQ+lGq/uaG/kHeBSjJcLjrrHkGE+g4QIhALwpISgbJIIXgrn2Cyw17xyPzXWcwLmdEK3k/EgHd3X/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":535007},"type":"module","types":"./dist/index.d.ts","shasum":"4a05480ef84e6391fb691fb343162c9596901c2e","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"},"./supabase":{"types":"./dist/supabase-session.d.ts","default":"./dist/supabase-session.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-bSabtnG+QqEc3V1WnRGIprFqL1Sq3u9D8FZZ5+wZnuqhSv8rGunebnL46bKOjz3wQ/EObaWU2JJsoHItjlqh6Q==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@supabase/supabase-js":"^2.112.4","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@supabase/supabase-js":"^2","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@supabase/supabase-js":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.9.0_1789914721015_0.5277677780758376","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@gusnips/react","version":"0.9.1","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.9.1","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"b847ba8966a4a0ed5614970d43390cf317df177d","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.9.1.tgz","fileCount":154,"integrity":"sha512-6Xjg+oDJztdYM7ZUKYB/DVlY2Ng0xf2BXgCDF+7k6bhziG7o0rOVd0gIRdquCb7gV5FPFA/mnSHfJUTTgAOyVQ==","signatures":[{"sig":"MEQCIBvvfZNC+fB0RqFEtCFIrZrrpBmWshhCbmzjVEbPSTtcAiBYNu2pTIK3u1Vb11pmi9DBhYRjJzlH5bt6y1xnRf3swQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCeoHmFNJRCRF38MKs1guYyIMziM3q+g/IrsgZ7DKw51wIgb0ghcvhJKBGEWYjmsL14EMY80OxfM9UKn/XvfcFN2Vs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":548025},"type":"module","types":"./dist/index.d.ts","shasum":"b847ba8966a4a0ed5614970d43390cf317df177d","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"},"./supabase":{"types":"./dist/supabase-session.d.ts","default":"./dist/supabase-session.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-6Xjg+oDJztdYM7ZUKYB/DVlY2Ng0xf2BXgCDF+7k6bhziG7o0rOVd0gIRdquCb7gV5FPFA/mnSHfJUTTgAOyVQ==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@supabase/supabase-js":"^2.112.4","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@supabase/supabase-js":"^2","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@supabase/supabase-js":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.9.1_1789930725518_0.7882680739719086","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"@gusnips/react","version":"0.9.2","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.9.2","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"5fc422b09612140c2bbc4d70055f37a0071c1407","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.9.2.tgz","fileCount":154,"integrity":"sha512-U1iW4XPgfrvSoBeMabtAGrrH6cdkQU1n6wC3+Y/3C3AajBVsmCPZ1EkMBf3IcuKAULF7hUrrAidgx8eem+/KwA==","signatures":[{"sig":"MEUCIFMpsJXYJLIHG2kYJF/sZtjKzWesC5E6J3WlMwS70h3iAiEArk3+/kYMRJgVs3PIuov83TBZu531Hbjws5Dxv0cOjRw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHkIO50vWaoJwPIk3UKD59SxMD/6wImndnVtlt4QLbMRAiA3+XNZfnMhzKL10+sT6WMWd+x/nDdknvJ7RVtVYWyslw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":557875},"type":"module","types":"./dist/index.d.ts","shasum":"5fc422b09612140c2bbc4d70055f37a0071c1407","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"},"./supabase":{"types":"./dist/supabase-session.d.ts","default":"./dist/supabase-session.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-U1iW4XPgfrvSoBeMabtAGrrH6cdkQU1n6wC3+Y/3C3AajBVsmCPZ1EkMBf3IcuKAULF7hUrrAidgx8eem+/KwA==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@supabase/supabase-js":"^2.112.4","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@supabase/supabase-js":"^2","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@supabase/supabase-js":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.9.2_1789946143849_0.3137614906080459","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"@gusnips/react","version":"0.9.3","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.9.3","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"ec080261f60fcd5fc41c84d2f49c80dbf4e0189c","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.9.3.tgz","fileCount":154,"integrity":"sha512-0YGuvyyq61lKVCfKACBaxlcdWZ4yHaQkyDRmF9F5+e9Bebalz7v1YkSECvldpoSFHywKEqbfz0zcfHXL33qyDg==","signatures":[{"sig":"MEYCIQDH+Bqjb4NxFdi6S81fuQZftk+K8rEnDnZNzJ1LBnLdlAIhALrrIWEJMa41o/iS8E3X1IfgSTIuTDueirUbG0b2oicw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDjlp4ET7dG4PoTnFml2lRUM7KIGL4yML6TVA7SEBYFTgIhAKIhPMDp6/03XW5pKXuZ5UCHV1qZuI8gQKrs0eB0dDzf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":560491},"type":"module","types":"./dist/index.d.ts","shasum":"ec080261f60fcd5fc41c84d2f49c80dbf4e0189c","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"},"./supabase":{"types":"./dist/supabase-session.d.ts","default":"./dist/supabase-session.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-0YGuvyyq61lKVCfKACBaxlcdWZ4yHaQkyDRmF9F5+e9Bebalz7v1YkSECvldpoSFHywKEqbfz0zcfHXL33qyDg==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@supabase/supabase-js":"^2.112.4","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@supabase/supabase-js":"^2","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@supabase/supabase-js":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.9.3_1789952278137_0.78722568991703","host":"s3://npm-registry-packages-npm-production"}},"0.9.4":{"name":"@gusnips/react","version":"0.9.4","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.9.4","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"fd5f30d2dfdb9cbd2946f2ec4b880c6d097b0ef8","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.9.4.tgz","fileCount":154,"integrity":"sha512-86nvMHegyyslONSMsWZVeLveMglZKB0N+DQUCprxi/QySSURS9C4gZj/V7RW/bov1BbjjNEL0NIZK9wjuXw2jw==","signatures":[{"sig":"MEYCIQDHcxml4x9wvQUXraQhjN7k8O6ep91Fk3psoB7d92xrKAIhAJ6kl26Z6urzLnh2dQq3u5kpULYzGFzibI5GKCkow6Bs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDQN/rLbZzAei0eAtoLPAgzSgtz2xN9p/sgGCQNubH20gIhAPDFXoaIo2Fz03khWF3HQpdDWRiv0/8YyiIhCcvExEQx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":567706},"type":"module","types":"./dist/index.d.ts","shasum":"fd5f30d2dfdb9cbd2946f2ec4b880c6d097b0ef8","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"},"./supabase":{"types":"./dist/supabase-session.d.ts","default":"./dist/supabase-session.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-86nvMHegyyslONSMsWZVeLveMglZKB0N+DQUCprxi/QySSURS9C4gZj/V7RW/bov1BbjjNEL0NIZK9wjuXw2jw==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@supabase/supabase-js":"^2.112.4","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@supabase/supabase-js":"^2","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@supabase/supabase-js":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.9.4_1790006775456_0.20983584504731634","host":"s3://npm-registry-packages-npm-production"}},"0.9.5":{"name":"@gusnips/react","version":"0.9.5","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.9.5","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"fa78b1559046dd70250ce330957eecd29b73f567","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.9.5.tgz","fileCount":154,"integrity":"sha512-XrboOV83yuxTmh2FlasrZMPthT4oc3VXULSAfoOREA0Gtvr67e6fSEMQZCG5jAzSTT5rgXcZ7HK5k/+LnnQCVQ==","signatures":[{"sig":"MEUCIGjrD/Wyivuqot5m1JkIBy4XtlCSdz47MtYGIQRhFvkqAiEAp5KvChq6w1Xret2xaMgGUeiQuaWbYuhwHM68lqla00c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDIufcLLVaUV5bKWX2BwRi/7kkgkB1F5Fg7k8ySmmdlZAIgQRIeuQlN+7F6vqznaYAh0xuBVaRhHDWT1q/dDaJcVMI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":570900},"type":"module","types":"./dist/index.d.ts","shasum":"fa78b1559046dd70250ce330957eecd29b73f567","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"},"./supabase":{"types":"./dist/supabase-session.d.ts","default":"./dist/supabase-session.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-XrboOV83yuxTmh2FlasrZMPthT4oc3VXULSAfoOREA0Gtvr67e6fSEMQZCG5jAzSTT5rgXcZ7HK5k/+LnnQCVQ==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@supabase/supabase-js":"^2.112.4","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@supabase/supabase-js":"^2","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@supabase/supabase-js":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.9.5_1790028284866_0.32317176860020225","host":"s3://npm-registry-packages-npm-production"}},"0.9.6":{"name":"@gusnips/react","version":"0.9.6","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.9.6","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"2746d756facd2d4af093dcb86d52d9cf5f12eabf","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.9.6.tgz","fileCount":154,"integrity":"sha512-KH5PQEqDG1fVFQO/LRHbSWXEpnuayXxiWPmmcNDJiZ7nNuvUH5Z+30VblgTVzgZ/JgGmVLGczqEqEdraTXKoNQ==","signatures":[{"sig":"MEYCIQCgh41tKXQYq7SEDPCFdFIK/mj3c0QVs6rB89E9CPj7LgIhAO4ceOySCv+jy5Hi8bArhssH99/9a1jDFkMuKKyIGP9o","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD2MKLwuKmTCWrBJinxHWNuVTG8thbkCkciHZ1YhZj+KwIhAIaLNH8JS/6phGtlcwt4waq88AAYwnzGbmzNSuH5Y7T7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":590702},"type":"module","types":"./dist/index.d.ts","shasum":"2746d756facd2d4af093dcb86d52d9cf5f12eabf","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"},"./supabase":{"types":"./dist/supabase-session.d.ts","default":"./dist/supabase-session.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-KH5PQEqDG1fVFQO/LRHbSWXEpnuayXxiWPmmcNDJiZ7nNuvUH5Z+30VblgTVzgZ/JgGmVLGczqEqEdraTXKoNQ==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@supabase/supabase-js":"^2.112.4","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@supabase/supabase-js":"^2","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@supabase/supabase-js":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.9.6_1790140892751_0.4753625812387874","host":"s3://npm-registry-packages-npm-production"}},"0.9.7":{"name":"@gusnips/react","version":"0.9.7","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.9.7","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"b08bdcb50233bd2b2bdee3d8f13c6051ca141e2b","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.9.7.tgz","fileCount":160,"integrity":"sha512-CxktA+JYi6BiIRlxqSJYdQ1gWJnCn1aVMnd4bIcYKZevGm+gKA4FefnirQHrEMwHiuvfsN+Y5DRGPxsvYv/k8Q==","signatures":[{"sig":"MEQCICNnRN19YUM0qA9S68Euc8SYCr71LqTBZzmHJ8rtzntiAiAxS1g/FZjwahYUdGRuec6UCwL7+mW22lOz8cH7y8tW/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCtCI/XxyVuxqGciJA5sREAoUuuE6NKJk0JXpmJ39S8XwIgHFBVm20L81toPiY44g+cKR5lrdLSmRQ5SpZBOyHhGh8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":631333},"type":"module","types":"./dist/index.d.ts","shasum":"b08bdcb50233bd2b2bdee3d8f13c6051ca141e2b","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./theme":{"types":"./dist/theme.d.ts","default":"./dist/theme.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"},"./supabase":{"types":"./dist/supabase-session.d.ts","default":"./dist/supabase-session.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-CxktA+JYi6BiIRlxqSJYdQ1gWJnCn1aVMnd4bIcYKZevGm+gKA4FefnirQHrEMwHiuvfsN+Y5DRGPxsvYv/k8Q==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@supabase/supabase-js":"^2.112.4","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@supabase/supabase-js":"^2","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@supabase/supabase-js":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.9.7_1790174770196_0.5927039038555826","host":"s3://npm-registry-packages-npm-production"}},"0.9.8":{"name":"@gusnips/react","version":"0.9.8","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.9.8","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"1eac3fa3e4e0a658f0f44885e32c66a08e4c3d9f","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.9.8.tgz","fileCount":160,"integrity":"sha512-6BHoPfH2YQNP/Dk5HPhM6dXc5A/QbgMoXgssxwOHFqfK8p5DFZlRc5zl8h/r7YwAJWbX9bWSnddmhOReTAyEeQ==","signatures":[{"sig":"MEUCIB8vWXrdQVKSygo1NGFpPdJCiWcw7tqGkApO7AoT977aAiEAyr4Xr/mTxoJyuNNTndbeEKb88tOS6/fty8MaKipltrs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCTdry2yqrwvNSM+5sGeRuj4cUFeUo2+8aH1nW7WVbb7AIhAMLdvkGqs46Jtkvd1vcolHgOxdO8UQogA10Ea2PyB/8m","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":633577},"type":"module","types":"./dist/index.d.ts","shasum":"1eac3fa3e4e0a658f0f44885e32c66a08e4c3d9f","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./theme":{"types":"./dist/theme.d.ts","default":"./dist/theme.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"},"./supabase":{"types":"./dist/supabase-session.d.ts","default":"./dist/supabase-session.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-6BHoPfH2YQNP/Dk5HPhM6dXc5A/QbgMoXgssxwOHFqfK8p5DFZlRc5zl8h/r7YwAJWbX9bWSnddmhOReTAyEeQ==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@supabase/supabase-js":"^2.112.4","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@supabase/supabase-js":"^2","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@supabase/supabase-js":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.9.8_1790181125666_0.6089074531184229","host":"s3://npm-registry-packages-npm-production"}},"0.9.9":{"name":"@gusnips/react","version":"0.9.9","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.9.9","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"49fe0eaade0578a0e808073a8af163e995d65582","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.9.9.tgz","fileCount":160,"integrity":"sha512-VlqcSWgyUOGs+3wfgqZCPiIDL/WAK7yDBciXulATxsY5TjbdRvb1ciEsDjqzzu6EkXumci3c5UrLQPH1sPp7GA==","signatures":[{"sig":"MEUCIFfVhl94KmpGJZgIiiRVc80OlA4H5eNbAccO/z29tEe6AiEAhFVyZKFzhvI9yq2ABuqs8bfFFOFA0BBjRtsRuGGNPQ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCIyEPbSKivkciA0aPG7eZ/kfO5dNMEOnnPuS3mvl0OAwIgCLW6ZwPSIw3WJe4r9/8Ez4sBxiY5lj90BnyAZ5ul508=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":642907},"type":"module","types":"./dist/index.d.ts","shasum":"49fe0eaade0578a0e808073a8af163e995d65582","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./theme":{"types":"./dist/theme.d.ts","default":"./dist/theme.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"},"./supabase":{"types":"./dist/supabase-session.d.ts","default":"./dist/supabase-session.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-VlqcSWgyUOGs+3wfgqZCPiIDL/WAK7yDBciXulATxsY5TjbdRvb1ciEsDjqzzu6EkXumci3c5UrLQPH1sPp7GA==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@supabase/supabase-js":"^2.112.4","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@supabase/supabase-js":"^2","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@supabase/supabase-js":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.9.9_1790194019966_0.269080839605337","host":"s3://npm-registry-packages-npm-production"}},"0.9.10":{"name":"@gusnips/react","version":"0.9.10","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.9.10","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"3b2214cf68dbce6e91a14867695ba8586382e694","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.9.10.tgz","fileCount":160,"integrity":"sha512-8kP3iVgNQHtG0YO/YuTqgYfsiLxeGkeMlgwZmxgjiPvHPhQIaKr5TwL1+pLt9quP7/ynbttoC9me78JkHYhn4w==","signatures":[{"sig":"MEQCIAU5PRvYo8KEBoiazzVrDUExiJes+upHthTgN/+Gox7XAiAn0PfXzvhdFsdqs2MZBp3CxZsyy64Ra5aFlFBPGJBwnQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCBuAH5FyyOa7dcqf82rRq+xA8Ob3ZvYPvZzyuThrD3ZAIgDmXCqH1LRbDEr1PbofFIi+O+OhpgFye/yr8vWYmy9Gc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":643786},"type":"module","types":"./dist/index.d.ts","shasum":"3b2214cf68dbce6e91a14867695ba8586382e694","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./theme":{"types":"./dist/theme.d.ts","default":"./dist/theme.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"},"./supabase":{"types":"./dist/supabase-session.d.ts","default":"./dist/supabase-session.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-8kP3iVgNQHtG0YO/YuTqgYfsiLxeGkeMlgwZmxgjiPvHPhQIaKr5TwL1+pLt9quP7/ynbttoC9me78JkHYhn4w==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@supabase/supabase-js":"^2.112.4","@tanstack/react-query":"^5.102.8"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@supabase/supabase-js":"^2","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@supabase/supabase-js":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.9.10_1790195395394_0.14416745757080052","host":"s3://npm-registry-packages-npm-production"}},"0.9.11":{"name":"@gusnips/react","version":"0.9.11","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.9.11","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"9e310fb50a732c7a4f97b3aadf55d6afcd0ab459","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.9.11.tgz","fileCount":160,"integrity":"sha512-8ItsBkJPTrJF2ZrZWtSPYXJUiTouKE/Bq4tTlLAFKn5coFRhMZv2vp3yatk9OvKvX5xjucqAt7p1VKIcEmVORg==","signatures":[{"sig":"MEUCIQCxAGOrjrBd+emHbgkoeiSaFBRD+q6A+selyfnQdR/13wIgWmjuF8LaoWFET9Ui9ZaYAr7AqwcIEP/HPdtzyvdhjBo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDv6EpVijFYXr46Q2fo6+Mc/rkoJNFd+z5vgNqESeTszwIhAMZALaGQW+h71qUs00oNMjBV+mJHqHWUhAKzk369eCt5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":649040},"type":"module","types":"./dist/index.d.ts","shasum":"9e310fb50a732c7a4f97b3aadf55d6afcd0ab459","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./theme":{"types":"./dist/theme.d.ts","default":"./dist/theme.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"},"./supabase":{"types":"./dist/supabase-session.d.ts","default":"./dist/supabase-session.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-8ItsBkJPTrJF2ZrZWtSPYXJUiTouKE/Bq4tTlLAFKn5coFRhMZv2vp3yatk9OvKvX5xjucqAt7p1VKIcEmVORg==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@supabase/supabase-js":"^2.112.4","@tanstack/react-query":"^5.102.8","i18next-browser-languagedetector":"^8.2.1"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@supabase/supabase-js":"^2","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@supabase/supabase-js":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.9.11_1790215849410_0.2623348291194447","host":"s3://npm-registry-packages-npm-production"}},"0.9.12":{"name":"@gusnips/react","version":"0.9.12","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.9.12","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"e1bf50421a08fe3cd7892e0c8871fa537dc87409","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.9.12.tgz","fileCount":160,"integrity":"sha512-Rn5HOciOWMndCxUIjOihJ6btdaTsdIAFZDPzMTXEjdW6evYv+M0BDdsHcHOAkb98kHRZ/5exjAq5xIYTjPOp8g==","signatures":[{"sig":"MEQCIHgTLa4YAOL+FVykkxyU2eGQeOo7d+LXeJebSn9o3ZaAAiBR3mMvgHOl5tQG3ki01PhlOVn3TIhGyXtwKlDELaFKMg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEsfvxP8Un7dCuRakxCDL8kQM7XC/EGUdOa2+mUoNxozAiBbjiv7qtWp18HcwAxawu8Ubn2lJLz0lvv03NGtxjDfVw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":650305},"type":"module","types":"./dist/index.d.ts","shasum":"e1bf50421a08fe3cd7892e0c8871fa537dc87409","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./theme":{"types":"./dist/theme.d.ts","default":"./dist/theme.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"},"./supabase":{"types":"./dist/supabase-session.d.ts","default":"./dist/supabase-session.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-Rn5HOciOWMndCxUIjOihJ6btdaTsdIAFZDPzMTXEjdW6evYv+M0BDdsHcHOAkb98kHRZ/5exjAq5xIYTjPOp8g==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@supabase/supabase-js":"^2.112.4","@tanstack/react-query":"^5.102.8","i18next-browser-languagedetector":"^8.2.1"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@supabase/supabase-js":"^2","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@supabase/supabase-js":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.9.12_1790231123551_0.6880913770238539","host":"s3://npm-registry-packages-npm-production"}},"0.9.13":{"name":"@gusnips/react","version":"0.9.13","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.9.13","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"79be14734edbba211e6ed15721ceea85da4d0cf1","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.9.13.tgz","fileCount":166,"integrity":"sha512-KK1Sl3kKrJHF8+NMPtd8FbJ+Y+SC8rT8fPdACHROsMh9GhR6TFxMLiCGEF0ywYMX+ZPwrha/NIq9ADmnhmsIEw==","signatures":[{"sig":"MEQCIGOmzLH1IU3VGM87RTVhCY3dNlCvQMlv65kYJ4prBiarAiB1CLItIPh6xRW8PWeclKFcsaUaS7HkafaPsyATQI6H7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDZ4bqvcSD38QGCEPPmzTjSovJ8cOb2mJN/UfLujyThFwIgaNv7/ZG2zAnjpR9tFawlBJ549tJemLZgfvgBrcli6u0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":660789},"type":"module","types":"./dist/index.d.ts","shasum":"79be14734edbba211e6ed15721ceea85da4d0cf1","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./theme":{"types":"./dist/theme.d.ts","default":"./dist/theme.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"},"./supabase":{"types":"./dist/supabase-session.d.ts","default":"./dist/supabase-session.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-KK1Sl3kKrJHF8+NMPtd8FbJ+Y+SC8rT8fPdACHROsMh9GhR6TFxMLiCGEF0ywYMX+ZPwrha/NIq9ADmnhmsIEw==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.1","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@supabase/supabase-js":"^2.112.4","@tanstack/react-query":"^5.102.8","i18next-browser-languagedetector":"^8.2.1"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@supabase/supabase-js":"^2","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@supabase/supabase-js":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.9.13_1790231861168_0.1619248498376995","host":"s3://npm-registry-packages-npm-production"}},"0.9.14":{"name":"@gusnips/react","version":"0.9.14","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.9.14","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"c17bdaceed3d81f609f935c495ad67fbfff84281","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.9.14.tgz","fileCount":165,"integrity":"sha512-H/ct7UbRCp37yggsnEXsWn9+pR+e0dy260nQDREDHj/c8R2NoWnGnMBULcAnZ29wtuUU8kT9XkxJGyEpHwjVEQ==","signatures":[{"sig":"MEQCIACKseUq70ny4sCVK6/u6b8248Y1HQerX34syBkEqMm1AiA3ITwgpT4igQJBoHNhWQBO7DGx74MZ/yUKqTAnkwrtXw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIE49UpVDOEioTxBKSU7PsYuFeUV5XswGqO2jPxIuxFDVAiAJe7nO7aYl6mv8lGQNjcezTWxo48O/VB7owdeB/YQNLw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":643685},"type":"module","types":"./dist/index.d.ts","shasum":"c17bdaceed3d81f609f935c495ad67fbfff84281","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./theme":{"types":"./dist/theme.d.ts","default":"./dist/theme.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"},"./supabase":{"types":"./dist/supabase-session.d.ts","default":"./dist/supabase-session.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-H/ct7UbRCp37yggsnEXsWn9+pR+e0dy260nQDREDHj/c8R2NoWnGnMBULcAnZ29wtuUU8kT9XkxJGyEpHwjVEQ==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"26.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.2","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@supabase/supabase-js":"^2.112.4","@tanstack/react-query":"^5.102.8","i18next-browser-languagedetector":"^8.2.1"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@supabase/supabase-js":"^2","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@supabase/supabase-js":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.9.14_1790274962572_0.1647992944657395","host":"s3://npm-registry-packages-npm-production"}},"0.9.15":{"name":"@gusnips/react","version":"0.9.15","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.9.15","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"3dc22a6ffcbaac231c2d3600e4d273e954db0fa8","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.9.15.tgz","fileCount":165,"integrity":"sha512-pbgkYm3thD9JqZgmwWRkL2zSxyNV+gNaDgUoqmTr2XiybRVazp0HrbBK+zgmQ8nVHl9XW7N16du6DjKSzKseIQ==","signatures":[{"sig":"MEUCIQDhjWlXPVl16yRH2B2/r07gGRqpecVBTwCFHZMaTzKsFAIgIrKYbUD3cXrA1smYSMevnvRzdUa2xrXVk065oorT/co=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGuW/GKKsjfQabPSY1E8ON/uWFu4PVTPIgRMUCn7jexqAiAUkD3p34a40XC2Uc7R4g1r58oV4IH+RzgBV1g8Hj6sfw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":643685},"type":"module","types":"./dist/index.d.ts","shasum":"3dc22a6ffcbaac231c2d3600e4d273e954db0fa8","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./theme":{"types":"./dist/theme.d.ts","default":"./dist/theme.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"},"./supabase":{"types":"./dist/supabase-session.d.ts","default":"./dist/supabase-session.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-pbgkYm3thD9JqZgmwWRkL2zSxyNV+gNaDgUoqmTr2XiybRVazp0HrbBK+zgmQ8nVHl9XW7N16du6DjKSzKseIQ==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"26.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.3","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@supabase/supabase-js":"^2.112.4","@tanstack/react-query":"^5.102.8","i18next-browser-languagedetector":"^8.2.1"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@supabase/supabase-js":"^2","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@supabase/supabase-js":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.9.15_1790284988686_0.2659914204692255","host":"s3://npm-registry-packages-npm-production"}},"0.9.16":{"name":"@gusnips/react","version":"0.9.16","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.9.16","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"14b2e75e46aebd75e28e5803487ace8cd8e9bd35","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.9.16.tgz","fileCount":165,"integrity":"sha512-OgjpNDfda1AREZWvQBFLPJgobZKsznv1xKo5st/Ae9O2IovTbD3QzYMDw9VUI9Su6tKf1hM0ELeWtiwD92ox9g==","signatures":[{"sig":"MEUCIF1maZFOmfCKgPOWI847VhYIv9wLfw71vSjEu0P+kWWtAiEA0iMFhiuSazqEloRWF22RxSCE/PffPiMak+1xu8zcglA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCjmGTKM/tC3bI6C1822F95hRthIHpGyAm9Qjy4YayOLwIhANZ/zFYJckSV/b975eR22NvHRD3IAIdhA4OQznTn47bS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":650721},"type":"module","types":"./dist/index.d.ts","shasum":"14b2e75e46aebd75e28e5803487ace8cd8e9bd35","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./theme":{"types":"./dist/theme.d.ts","default":"./dist/theme.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"},"./supabase":{"types":"./dist/supabase-session.d.ts","default":"./dist/supabase-session.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-OgjpNDfda1AREZWvQBFLPJgobZKsznv1xKo5st/Ae9O2IovTbD3QzYMDw9VUI9Su6tKf1hM0ELeWtiwD92ox9g==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"26.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.3","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@supabase/supabase-js":"^2.112.4","@tanstack/react-query":"^5.102.8","i18next-browser-languagedetector":"^8.2.1"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@supabase/supabase-js":"^2","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@supabase/supabase-js":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.9.16_1790361352748_0.14760933344632265","host":"s3://npm-registry-packages-npm-production"}},"0.9.17":{"name":"@gusnips/react","version":"0.9.17","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.9.17","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"b6af43300cef3784a899dfa3de790fd1227635e4","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.9.17.tgz","fileCount":165,"integrity":"sha512-RNaoHxvb9NYLenZXyoSB6jX/tW0WjTl3irDgNnLGkbKWWifmkFKxe2/yuJvrMMW5HnVTYB+g1ZJvk1kfHHYcEg==","signatures":[{"sig":"MEUCIQD03gS3v0nRC1qJiRlNABDpODJup0t0xODmQPympQ+iWQIgQPiEHy9wrTR6JNIWKCJgOKVdrTnntVBXdUfyYX3WFZc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICcv4yIQsUvoqJgW3b/nTCRdScoJIRTeVQl+WZL88AJIAiA7SnaIy8LotHdqMaC38cr8I5eY0qf7WKFZhyyphSTQcg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":650721},"type":"module","types":"./dist/index.d.ts","shasum":"b6af43300cef3784a899dfa3de790fd1227635e4","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./theme":{"types":"./dist/theme.d.ts","default":"./dist/theme.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"},"./supabase":{"types":"./dist/supabase-session.d.ts","default":"./dist/supabase-session.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-RNaoHxvb9NYLenZXyoSB6jX/tW0WjTl3irDgNnLGkbKWWifmkFKxe2/yuJvrMMW5HnVTYB+g1ZJvk1kfHHYcEg==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"26.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.4","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@supabase/supabase-js":"^2.112.4","@tanstack/react-query":"^5.102.8","i18next-browser-languagedetector":"^8.2.1"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@supabase/supabase-js":"^2","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@supabase/supabase-js":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.9.17_1790363658855_0.41780595377860696","host":"s3://npm-registry-packages-npm-production"}},"0.9.18":{"name":"@gusnips/react","version":"0.9.18","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.9.18","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"c376c2775e6cbc81918e5b4e5420bbdf72854591","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.9.18.tgz","fileCount":165,"integrity":"sha512-7FtY6UOtF6Cwd6eJrPC2IwFYs3y1NGkOqJmrJfuQ3E2yJS6rfnB5IA4pm55OxDbdkmIJCMIQVr+KvrfiQC5aOQ==","signatures":[{"sig":"MEUCIEMaHA2X1mVW+e1WasIXW4usnGFh48F+dO9f2Nc4KwkRAiEA7aH8Oug94EuNKwbTDx5EXdjVs7c4ZukA3aRngv8DjTU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAKhLFXsmxhvt8sG7jbGECJhy7ZE3TY5ie5G05NVE7X2AiEAxMtNGJfhzBnUCTtwnVetVLDFwDoZQ60v2k7Wn1EZtWY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":651065},"type":"module","types":"./dist/index.d.ts","shasum":"c376c2775e6cbc81918e5b4e5420bbdf72854591","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./theme":{"types":"./dist/theme.d.ts","default":"./dist/theme.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"},"./supabase":{"types":"./dist/supabase-session.d.ts","default":"./dist/supabase-session.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-7FtY6UOtF6Cwd6eJrPC2IwFYs3y1NGkOqJmrJfuQ3E2yJS6rfnB5IA4pm55OxDbdkmIJCMIQVr+KvrfiQC5aOQ==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"26.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.5","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@supabase/supabase-js":"^2.112.4","@tanstack/react-query":"^5.102.8","i18next-browser-languagedetector":"^8.2.1"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@supabase/supabase-js":"^2","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@supabase/supabase-js":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.9.18_1790392478970_0.3430645756885642","host":"s3://npm-registry-packages-npm-production"}},"0.9.19":{"name":"@gusnips/react","version":"0.9.19","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.9.19","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"73c9deec921f660dc8e4af3d3a7556f9df3a4808","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.9.19.tgz","fileCount":165,"integrity":"sha512-AyRzYrto1Vi0W/OiYBiaixl/b4TrgowNl622UoqAt19ou8hDyNslnQatF7ltWKvInjqqdCzUzJy8dNdDIrTY5w==","signatures":[{"sig":"MEQCIDkMBfkOlaZxmIahC7bWtLH2iJpYcg+3sbQkjVRnXGOJAiAVDM9Ek1P+4pcGJxRfr02lPMOpV/aw0WDUYwhQt9cXug==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDiQ4kHASJjMhqkyDTrUTLImesdYz9W4yJTvx9Ul2Gh/AiEArODqQZGa4Guunf8KWw63SUsY2dMYsqEJyXZGLvD931k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":652271},"type":"module","types":"./dist/index.d.ts","shasum":"73c9deec921f660dc8e4af3d3a7556f9df3a4808","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./theme":{"types":"./dist/theme.d.ts","default":"./dist/theme.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"},"./supabase":{"types":"./dist/supabase-session.d.ts","default":"./dist/supabase-session.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-AyRzYrto1Vi0W/OiYBiaixl/b4TrgowNl622UoqAt19ou8hDyNslnQatF7ltWKvInjqqdCzUzJy8dNdDIrTY5w==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"26.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.6","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@supabase/supabase-js":"^2.112.4","@tanstack/react-query":"^5.102.8","i18next-browser-languagedetector":"^8.2.1"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@supabase/supabase-js":"^2","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@supabase/supabase-js":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.9.19_1790425861583_0.6366529933381819","host":"s3://npm-registry-packages-npm-production"}},"0.9.20":{"name":"@gusnips/react","version":"0.9.20","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.9.20","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"c582365c07baaecc70e6b5f4115daa4604e0498d","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.9.20.tgz","fileCount":165,"integrity":"sha512-SdWfanbtGs59TvC0/vGKtmv9zU5LSXsTjjQYCKyHZaRevJRyaQD1UHqNvc683O8pv1kdj2jlQgy1l5XewIamQg==","signatures":[{"sig":"MEQCIGOgvWiU8y3qAnzeOC8WdSBlIncKkFMg00nR0GS40zhVAiBoJlnzdTjNehzBYpb5Qh0TmSQKriznKcMoLLGWZ1NC+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDBaMOX0q7gihd3ITBCv+eoX8LdgmWsKsgwMRSZIOawDAiEAtw6fZjVce9FmUf1fH2xF4MlVS3t9tKeR58h5W2B3nQM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":678981},"type":"module","types":"./dist/index.d.ts","shasum":"c582365c07baaecc70e6b5f4115daa4604e0498d","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./theme":{"types":"./dist/theme.d.ts","default":"./dist/theme.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"},"./supabase":{"types":"./dist/supabase-session.d.ts","default":"./dist/supabase-session.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-SdWfanbtGs59TvC0/vGKtmv9zU5LSXsTjjQYCKyHZaRevJRyaQD1UHqNvc683O8pv1kdj2jlQgy1l5XewIamQg==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"26.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.6","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@supabase/supabase-js":"^2.112.4","@tanstack/react-query":"^5.102.8","i18next-browser-languagedetector":"^8.2.1"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@supabase/supabase-js":"^2","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@supabase/supabase-js":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.9.20_1790427071636_0.6643042301224078","host":"s3://npm-registry-packages-npm-production"}},"0.9.21":{"name":"@gusnips/react","version":"0.9.21","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.9.21","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"b02be74389165c87114a74c584359b47fd1e0d34","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.9.21.tgz","fileCount":166,"integrity":"sha512-c78RVUELO1DfIFwik1YM+8mL2VL+aL+0PbzXCfJ2CMAUVDZsM6p4e53DFha872ucdNQo+qWJe9nn05Vkeu30vQ==","signatures":[{"sig":"MEYCIQDpCSJCjMS5K7ysbLcwZX7ij7kW7EzTMqmxnL9rVveoMgIhAJ4SxTgL5CHSP91XiwKEvuLjjSMPsngkevFuAkIw0y/1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDh8kbrrwhoQ/V7L8dUW8U4Fputu5gZyQ2abwAwxMzI6gIgFmRLSwLMEht8uZr8Y44A5FQNXVHCkFGw7KASXBNad3w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":689677},"type":"module","types":"./dist/index.d.ts","shasum":"b02be74389165c87114a74c584359b47fd1e0d34","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./theme":{"types":"./dist/theme.d.ts","default":"./dist/theme.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"},"./supabase":{"types":"./dist/supabase-session.d.ts","default":"./dist/supabase-session.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit && tsc -p typecheck","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-c78RVUELO1DfIFwik1YM+8mL2VL+aL+0PbzXCfJ2CMAUVDZsM6p4e53DFha872ucdNQo+qWJe9nn05Vkeu30vQ==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"26.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.6","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","happy-dom":"^20.14.5","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@supabase/supabase-js":"^2.112.4","@tanstack/react-query":"^5.102.8","i18next-browser-languagedetector":"^8.2.1"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@supabase/supabase-js":"^2","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@supabase/supabase-js":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.9.21_1790431312481_0.5666328093006971","host":"s3://npm-registry-packages-npm-production"}},"0.9.22":{"name":"@gusnips/react","version":"0.9.22","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.9.22","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"5832ebc3464196f19ecee97018cc320335e8d360","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.9.22.tgz","fileCount":166,"integrity":"sha512-2J53+sQCOuco10weYvBV1gFvYo+4xiuRbA+s2W+kbHspP6Re79+xSSlCrAovfDH04T32szKwr/gUfNHCSZj3tA==","signatures":[{"sig":"MEQCIBMdf8gfsetQDZHuphBZHPxS0JubuUC+Yex/pzlLM6meAiBDeO6T8y1VUFupwCrFMadR8SGuitmAJx7Fetfm0OS0cg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICCyqZubxRFppPit/wSf/TOv0b2UfAoYkgvb5W3rdThuAiEAr2xe5f8J/S7QV7zwA7CF2AiK2ARqzQic+vPaabSvdqA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":694200},"type":"module","types":"./dist/index.d.ts","shasum":"5832ebc3464196f19ecee97018cc320335e8d360","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./theme":{"types":"./dist/theme.d.ts","default":"./dist/theme.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"},"./supabase":{"types":"./dist/supabase-session.d.ts","default":"./dist/supabase-session.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit && tsc -p tsconfig.test.json","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-2J53+sQCOuco10weYvBV1gFvYo+4xiuRbA+s2W+kbHspP6Re79+xSSlCrAovfDH04T32szKwr/gUfNHCSZj3tA==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"26.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.1.6","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","happy-dom":"^20.14.5","react-dom":"^19.2.4","typescript":"^5.9.3","@types/node":"^24.12.0","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@supabase/supabase-js":"^2.112.4","@tanstack/react-query":"^5.102.8","i18next-browser-languagedetector":"^8.2.1"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@supabase/supabase-js":"^2","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@supabase/supabase-js":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.9.22_1790482428055_0.22455733107043963","host":"s3://npm-registry-packages-npm-production"}},"0.9.23":{"name":"@gusnips/react","version":"0.9.23","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"author":"Gustavo Salomé","license":"MIT","_id":"@gusnips/react@0.9.23","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"69447cf48e8f4cf4cc576ac2a4de069042c8af6a","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.9.23.tgz","fileCount":167,"integrity":"sha512-TjGFBfAAPilCbB8EEQOf5+BOjBF5ildvSFQe24N94mKW931Vv3KW1Rmh6fiYHqmTrO/MK46qyDyukKG/ESolqw==","signatures":[{"sig":"MEUCIQCVIb2kaApkoPbc9o2JO2z22y4sVIryEjZqOTV6aTEJJwIgbcBCEKByUd06LSaQnjrfceySEN2DZFy6Y2An/Wh/vH0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICCGWw1rjRLjCrlY/WFpgfcOynMmVI4xHspBc4Y5So5bAiEAlrH2Gf8V4hGbqzTwmipkMPgwqHZTxU35SfdKP3W8+0Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":696102},"type":"module","types":"./dist/index.d.ts","shasum":"69447cf48e8f4cf4cc576ac2a4de069042c8af6a","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./theme":{"types":"./dist/theme.d.ts","default":"./dist/theme.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"},"./supabase":{"types":"./dist/supabase-session.d.ts","default":"./dist/supabase-session.js"}},"scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit && tsc -p tsconfig.test.json","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"_integrity":"sha512-TjGFBfAAPilCbB8EEQOf5+BOjBF5ildvSFQe24N94mKW931Vv3KW1Rmh6fiYHqmTrO/MK46qyDyukKG/ESolqw==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"sideEffects":false,"_nodeVersion":"26.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.2.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","happy-dom":"^20.14.5","react-dom":"^19.2.4","typescript":"^5.9.3","@types/node":"^24.12.0","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@supabase/supabase-js":"^2.112.4","@tanstack/react-query":"^5.102.8","i18next-browser-languagedetector":"^8.2.1"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@supabase/supabase-js":"^2","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@supabase/supabase-js":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react_0.9.23_1790906089306_0.46221239357924526","host":"s3://npm-registry-packages-npm-production"}},"0.9.24":{"_id":"@gusnips/react@0.9.24","bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"dist":{"shasum":"82089ba091a2f9338a3fdbb6a7c9d5f20f58683c","tarball":"https://registry.npmjs.org/@gusnips/react/-/react-0.9.24.tgz","fileCount":167,"integrity":"sha512-IxPEwfDXacUl/CVAwTjWkKy/AQoz3hA/OLaFzWPbNs2SMf4zlc/2H1ua+fLAZxM7bgVc6A4cfqvFJThEZ3VXyw==","signatures":[{"sig":"MEUCIQDfKGFFf6TmqC7EG+f5873pN6I+Uwa15bVJRbt5Ny/OuAIgNp53GXsbimkjaVl4bw1Sj4uZXRu4cJUswWFgVvawMOg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDl9VFMrZz+hoQMYJnHTanXM0q2731a/arvL/Y8JsYm2AIhAOdaHvKTGn3H7DA9pMMbsYLO0GFw771lI9KuG8D8IQAW"}],"unpackedSize":696386},"name":"@gusnips/react","type":"module","types":"./dist/index.d.ts","author":"Gustavo Salomé","shasum":"82089ba091a2f9338a3fdbb6a7c9d5f20f58683c","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","default":"./dist/ui/index.js"},"./store":{"types":"./dist/auth-store.d.ts","default":"./dist/auth-store.js"},"./theme":{"types":"./dist/theme.d.ts","default":"./dist/theme.js"},"./guards":{"types":"./dist/guards.d.ts","default":"./dist/guards.js"},"./hydrate":{"types":"./dist/hydrate.d.ts","default":"./dist/hydrate.js"},"./contract":{"types":"./dist/prerender-contract.d.ts","default":"./dist/prerender-contract.js"},"./supabase":{"types":"./dist/supabase-session.d.ts","default":"./dist/supabase-session.js"}},"license":"MIT","scripts":{"lint":"eslint src","test":"vitest run --passWithNoTests","build":"rm -rf dist && tsc","sync:docs":"cp ../LICENSE .","typecheck":"tsc --noEmit && tsc -p tsconfig.test.json","test:watch":"vitest","release:major":"bun pm version major && bun publish --access public","release:minor":"bun pm version minor && bun publish --access public","release:patch":"bun pm version patch && bun publish --access public","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run build && bun run sync:docs"},"version":"0.9.24","_npmUser":{"name":"gusnips","email":"gustavonips@gmail.com"},"homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"_integrity":"sha512-IxPEwfDXacUl/CVAwTjWkKy/AQoz3hA/OLaFzWPbNs2SMf4zlc/2H1ua+fLAZxM7bgVc6A4cfqvFJThEZ3VXyw==","repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"_npmVersion":"10.8.3","description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","directories":{},"maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"sideEffects":false,"_nodeVersion":"26.3.0","dependencies":{"clsx":"^2.1.1","@gusnips/http":"0.2.0","tailwind-merge":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","vitest":"^4.1.2","i18next":"^26.3.1","zustand":"^5.0.15","happy-dom":"^20.14.5","react-dom":"^19.2.4","typescript":"^5.9.3","@types/node":"^24.12.0","@types/react":"^19.2.14","react-i18next":"^17.0.8","@base-ui/react":"^1.8.0","@types/react-dom":"^19.2.3","react-router-dom":"^7.18.3","@supabase/supabase-js":"^2.112.4","@tanstack/react-query":"^5.102.8","i18next-browser-languagedetector":"^8.2.1"},"peerDependencies":{"react":"^19","i18next":">=25","zustand":"^5","react-dom":"^19","react-i18next":">=16","@base-ui/react":"^1.6.0","react-router-dom":"^7","@supabase/supabase-js":"^2","@tanstack/react-query":"^5"},"peerDependenciesMeta":{"i18next":{"optional":true},"zustand":{"optional":true},"react-dom":{"optional":true},"react-i18next":{"optional":true},"@base-ui/react":{"optional":true},"react-router-dom":{"optional":true},"@supabase/supabase-js":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react_0.9.24_1790907354098_0.30393590233950984"}}},"time":{"created":"2026-09-08T22:37:14.054Z","modified":"2026-10-02T02:15:54.364Z","0.1.0":"2026-09-08T22:37:14.436Z","0.2.0":"2026-09-08T22:57:05.817Z","0.3.0":"2026-09-09T13:45:31.667Z","0.4.0":"2026-09-09T19:26:12.397Z","0.4.1":"2026-09-11T16:05:38.761Z","0.4.2":"2026-09-11T17:21:51.884Z","0.4.3":"2026-09-11T19:39:08.803Z","0.4.4":"2026-09-11T20:14:33.537Z","0.4.5":"2026-09-11T21:07:40.628Z","0.4.6":"2026-09-11T22:38:05.279Z","0.5.0":"2026-09-12T00:39:00.508Z","0.5.1":"2026-09-12T00:43:59.273Z","0.5.2":"2026-09-12T01:05:38.298Z","0.5.3":"2026-09-12T01:43:37.107Z","0.6.0":"2026-09-12T04:37:34.995Z","0.6.1":"2026-09-12T06:14:10.215Z","0.6.2":"2026-09-12T06:34:26.657Z","0.7.0":"2026-09-12T08:05:18.900Z","0.8.0":"2026-09-12T08:12:01.423Z","0.8.1":"2026-09-18T09:07:40.419Z","0.9.0":"2026-09-20T14:32:01.124Z","0.9.1":"2026-09-20T18:58:45.603Z","0.9.2":"2026-09-20T23:15:43.930Z","0.9.3":"2026-09-21T00:57:58.246Z","0.9.4":"2026-09-21T16:06:15.559Z","0.9.5":"2026-09-21T22:04:44.962Z","0.9.6":"2026-09-23T05:21:32.856Z","0.9.7":"2026-09-23T14:46:10.296Z","0.9.8":"2026-09-23T16:32:05.806Z","0.9.9":"2026-09-23T20:07:00.070Z","0.9.10":"2026-09-23T20:29:55.486Z","0.9.11":"2026-09-24T02:10:49.762Z","0.9.12":"2026-09-24T06:25:23.642Z","0.9.13":"2026-09-24T06:37:41.258Z","0.9.14":"2026-09-24T18:36:02.668Z","0.9.15":"2026-09-24T21:23:08.783Z","0.9.16":"2026-09-25T18:35:52.897Z","0.9.17":"2026-09-25T19:14:19.037Z","0.9.18":"2026-09-26T03:14:39.136Z","0.9.19":"2026-09-26T12:31:01.702Z","0.9.20":"2026-09-26T12:51:11.800Z","0.9.21":"2026-09-26T14:01:52.572Z","0.9.22":"2026-09-27T04:13:48.234Z","0.9.23":"2026-10-02T01:54:49.406Z","0.9.24":"2026-10-02T02:15:54.185Z"},"bugs":{"url":"https://github.com/gusnips/frontkit/issues"},"author":"Gustavo Salomé","license":"MIT","homepage":"https://github.com/gusnips/frontkit/tree/main/react#readme","keywords":["react","vite","spa","zustand","react-query","i18next","base-ui","headless"],"repository":{"url":"git+https://github.com/gusnips/frontkit.git","type":"git","directory":"react"},"description":"The headless runtime under a Vite + React SPA: typed fetch client with single-flight refresh, auth store, query defaults, route guards, error boundary, stale-tab recovery, i18n bootstrap.","maintainers":[{"name":"gusnips","email":"gustavonips@gmail.com"}],"readme":"# @gusnips/react\n\nThe layer under a Vite + React SPA: the fetch client, the auth store, the route guards, the error\nboundary, the query rules. No styling, no brand, nothing that decides how your app looks.\n\n```bash\nbun add @gusnips/react\n```\n\n```ts\nconst user = await api.get<User>(\"/me\");\n```\n\nThat is the whole call. `user` is a `User` — not a `Response`, not `res.json()`, not a null\ncheck. The client attached the token, unwrapped the envelope, and threw a typed `ApiError`\ncarrying the code and the request id if the server refused.\n\nYou build `api` once, wherever you keep that sort of thing:\n\n```ts\nimport { createApiClient } from \"@gusnips/react\";\n\nconst api = createApiClient({\n  baseUrl: \"https://api.example.com\",\n  session: mySession,\n  onSessionDead: () => window.location.replace(\"/sign-in\"),\n});\n```\n\n## The client knows three things people learn the hard way\n\n**Six queries firing at once send one refresh, not six.** The auth server rotates the refresh\ntoken when you use it, so the losers of that race each invalidate the winner — and the person is\nsigned out in the middle of a load that was working. Three separate codebases arrived at\nsingle-flight refresh independently. This is that.\n\n**Only auth ANSWERING is a \"no\".** Dropping a packet tells you nothing about whether a session is\ngood, and neither does a 500 — that is auth failing, not auth answering. So `refresh()` answers\n`{ token, reachedAuth }`, and only a real refusal signs anyone out. Before that split, a Wi-Fi\nblip logged people out mid-load; without the second half, one bad minute at the auth server signs\nout everybody whose token happened to need refreshing.\n\n**A sign-out has a fail-safe timer.** Awaiting `signOut()` before redirecting covers a rejection,\nnot a hang — and a hang leaves someone signed out in name only: every request 401ing, nothing\nleft that could redirect it.\n\n### Supabase sessions\n\n```ts\nimport { createSupabaseSessionAdapter } from \"@gusnips/react/supabase\";\n\nconst session = createSupabaseSessionAdapter(supabase.auth);\n```\n\nPass `session` to `createApiClient`. The adapter reads the current token, refreshes it and signs\nout. More importantly, it keeps a network failure separate from GoTrue refusing the refresh token,\nso losing Wi-Fi does not become a logout. It lives behind a subpath because it imports\n`@supabase/supabase-js`; the main entry does not.\n\nThe test it makes that decision with is exported, because a refresh is not the only place an app\nasks it:\n\n```ts\nimport { isAuthOutage } from \"@gusnips/react/supabase\";\n\n// A callback that just failed to trade its one-use link.\nif (isAuthOutage(error))\n  showRetry(); // the link was never spent — the same one still works\nelse showLinkSpent(); // auth said no: only a new link helps\n```\n\n`isAuthOutage` is true when auth FAILED rather than answered — a request that never landed, or a\n5xx. Only a real refusal is an answer, and only an answer may end a session or a link. Use it\nanywhere that decision is made; the sentence you show is a separate question, and a narrower one\n— \"check your connection\" is true of a request that never landed and false of a 502, which is\nours. auth-js marks \"nothing came back\", and only that, with status 0.\n\nIt is safe to hand it the `error` from a `{ data, error }` result without checking it first:\n`null` answers false. That is worth stating because `null` is the SUCCESS value of every\nsupabase-js auth call, so the obvious `if (isAuthOutage(error))` is written against it constantly.\n\nA sign-out that cannot reach auth leaves the person signed in. When the token has expired and the\nnetwork is down, `auth.signOut()` returns an error and keeps the stored session. That held on every\nauth-js version measured, 2.106.2 to 2.117.2, and before 2.110.2 it does the same with a good\ntoken. A reload then signs them back in, and on a shared computer that is the next person.\n`signOutEvenOffline` removes the session from this device either way, and never waits on auth for\nmore than 3 seconds:\n\n```ts\nimport { signOutEvenOffline, supabaseAuthStorage } from \"@gusnips/react/supabase\";\n\nexport const authStorage = supabaseAuthStorage(supabaseUrl);\nexport const supabase = createClient(supabaseUrl, supabaseKey, { auth: authStorage });\n\nawait signOutEvenOffline(supabase.auth, authStorage);\n```\n\nTwo rules come with it:\n\n- **Build one `{ storage, storageKey }` object and pass it to both `createClient` and the helper.**\n  The helper clears the key it is given, so a second copy that drifts leaves the session where it\n  was. `supabaseAuthStorage` returns the storage and key supabase-js already picks, so switching\n  signs nobody out. Where `localStorage` is missing or blocked, such as a prerender, it keeps the\n  session in memory, as supabase-js does, instead of throwing. On React Native, build the object\n  yourself: `{ storage: AsyncStorage, storageKey: supabaseStorageKey(supabaseUrl) }`.\n- **If your screen does not reload after signing out, clear your own store when the helper\n  resolves.** The session is out of storage by then, but auth-js sends `SIGNED_OUT` only once it\n  has finished the first call: a moment later, or up to 22 seconds on auth-js 2.106.\n\n`error` is `null` when auth ended the session on the server too. Otherwise the person is signed\nout on this device and may still be signed in on others.\n\nPass the same object to `createSupabaseSessionAdapter(supabase.auth, authStorage)` and the API\nclient's sign-out goes through the helper too.\n\nSupabase email links have two complete patterns. Keep either one, never half of each:\n\n- A link carrying `token_hash` needs one explicit `verifyOtp` call. Guard it against React\n  StrictMode because the hash is single-use.\n- A link carrying `ConfirmationURL` needs `detectSessionInUrl` enabled. That reader consumes an\n  implicit `#access_token` or a PKCE `?code`; it does not consume `token_hash`.\n\nEither pattern can carry a destination — the `token_hash` one has to be asked. GoTrue hands every\ntemplate a `{{ .RedirectTo }}`: the `redirectTo` the app passed, already checked against the\nallowlist, falling back to the Site URL when it was absent or not on it. A `{{ .ConfirmationURL }}`\nlink carries it for you. A template that writes its own landing drops it unless it asks:\n\n```\n{{ .SiteURL }}/auth/callback?token_hash={{ .TokenHash }}&type=recovery&next={{ .RedirectTo }}\n```\n\nLeave that parameter off and `redirectTo` and `emailRedirectTo` do nothing on every e-mail flow,\nhowever carefully the app sets them — four of the codebases this came from pass one that the\ntemplate throws away, so a person bounced off a protected page signs in and lands on the front\ndoor. Nothing reports it: the app's call is correct, the link works, and the destination was\ndropped in an HTML file hosted somewhere else.\n\n`{{ .RedirectTo }}` arrives as an absolute URL rather than a path, so the landing reads it as one:\n\n```ts\nconst raw = new URLSearchParams(location.search).get(\"next\");\nconst url = raw ? new URL(raw, location.origin) : null;\nconst next = url?.origin === location.origin ? safeInternalPath(url.pathname + url.search) : null;\n```\n\nValidate it on arrival even though GoTrue already did: that check is against a list of origins,\nso it says the link may come back here, not which page it may open.\n\nRecovery and invite links continue to the new-password screen after the session opens. A callback\nmust also tell a used or expired link apart from a request that never landed — or one that landed\nand came back 5xx: the first needs a new link, and the other two can retry the same one, because\nthe hash was never spent.\n\n`parseAuthCallback` reads a callback address and says what arrived:\n\n```ts\nimport { parseAuthCallback } from \"@gusnips/react/supabase\";\n\nparseAuthCallback(\"?token_hash=abc&type=recovery\");\n// → { kind: \"email-link\", tokenHash: \"abc\", type: \"recovery\" }\n```\n\nThere are four kinds. `email-link` needs your one `verifyOtp` call. `session` is a PKCE `code` or\nimplicit-flow tokens; in a browser the client has already taken it, so wait for the session, and on\nReact Native hand `credential` to `exchangeCodeForSession` or `setSession`. `error` is a failure\nGoTrue wrote into the address. `invalid` is a link that was cut short or edited.\n\nPass the fragment too — `parseAuthCallback(location.search, location.hash)`. GoTrue writes a\nfailure into the fragment every time and into the query only sometimes: after an implicit-flow\nemail link it is in the fragment alone, so a query-only reader shows nothing to somebody whose\nlink expired.\n\nChoose the words by `code` (GoTrue's `error_code`, such as `otp_expired`), not by `error`.\n`access_denied` covers an expired link, a banned user and a disabled signup as well as a person\npressing Cancel at Google; only the last one arrives with no code, and that is what `cancelled`\nmeans. A cancel was their choice, so say nothing or offer the button again.\n\nA handler you mount for Google's refusals also receives every email link's. An expired magic link\nor reset link comes back with the same parameters, to whatever page `redirectTo` named. If that\nhandler only knows Google copy, the person whose link ran out is told Google failed. Check `code`\nbefore you reach for provider copy: `otp_expired` is a link, never a provider.\n\nEvery email link type is accepted, `invite` included, even if your templates never send it. An\noperator can still send one from Studio. Name a destination for each with\n`Record<EmailLinkType, string>`, so a new type is a compile error rather than a wrong page.\n\nThere is also a deadline on every request, which none of the codebases this came from had. A\nrequest with no timeout is a spinner with no end.\n\n## Never retry what waiting cannot fix\n\n```ts\nimport { queryDefaults } from \"@gusnips/react\";\n\nnew QueryClient({\n  defaultOptions: queryDefaults({ durableLimitCodes: [\"QUOTA_EXCEEDED\", \"PAYMENT_REQUIRED\"] }),\n});\n```\n\nRetries 408, 425, a transient 429, 5xx, and no-response-at-all. Nothing else — every other 4xx is\nan answer, and a second attempt just says it again. The rule itself is\n[`@gusnips/http/retry`](../http#should-this-request-be-tried-again), so an SDK with no React in it\ncan retry the same way.\n\n`durableLimitCodes` is the part a status code cannot tell you. A spent monthly quota and a burst\nlimit both arrive as 429, but one clears by waiting and the other clears by buying. Retrying the\nsecond burns another request against the limiter to hear the same thing three times, so you name\nthose codes and they are never retried.\n\nYou only need that list where your API stays quiet. If it answers `Retry-After: 2`, the wait is\nsat out; past `maxRetryWaitSecs` (10 seconds by default) the wait is the answer and the screen\nsays so instead of holding a spinner. And if it sends `details.retryAfterSecs: null`, it is\nsaying waiting will never fix this — a cap that frees only when somebody deletes something, a\nslot that frees when another job ends. That `null` is read as the claim it is, not as a field\nsomebody forgot, so the code never reaches your list.\n\n## A failed refresh is not a failed page\n\n```tsx\nimport { queryView } from \"@gusnips/react\";\n\nconst view = queryView(numbers); // what useQuery returned\n\nif (view.state === \"waiting\") return <Spinner />;\nif (view.state === \"failed\") return <ErrorScreen error={view.error} />;\nreturn <Numbers data={view.data} />;\n```\n\nDon't write `isError ? <ErrorScreen /> : <Numbers />`. `isError` is also true when a refresh fails\nin the background while the numbers are already on screen: the window gets focus back, a poll\nruns, a save reloads the list. One dropped request then swaps a working screen for an error.\n`queryView` shows the error only when there is nothing else to show.\n\nWhen a refresh fails, the view stays `ready` and `refreshError` holds the error. Use it to say the\nnumbers may be out of date, with a button to try again.\n\n`waiting` also covers a query that is switched off until something else loads. `isLoading` is\nfalse there, so `isLoading ? <Spinner /> : <List />` shows an empty list, as if the answer were\n\"nothing\".\n\nIt reads only `data` and `error`, so a test can pass `{ data: 2, error: null }`. Which button to\noffer comes from `describeError(view.error).recover`, below.\n\n## Survives your deploys\n\nAn app with `lazy()` routes serves chunks by hashed filename. Deploy while someone has a tab\nopen, and their next click asks for a file that no longer exists — a white screen on a button\nthat worked a minute ago. The same deploy breaks a second way that looks nothing like the first:\nthe old bundle reads a field your API just renamed, and throws a plain `TypeError` with nothing\nin it about a deploy.\n\n**Fix the cause in your host config first.** This package cannot do it for you and it is worth\nmore than everything below. A static host answers a missing `/assets/x.js` with your SPA\nfallback — `index.html`, at a 200, as `text/html` — and that is what the browser's \"MIME type\ntext/html\" module-script refusal actually is. Hosts then match cache rules against the _request\npath_ rather than the outcome, so the `immutable, max-age=31536000` rule you wrote for hashed\nassets lands on that HTML body: one poisoned asset URL, at the edge and in every browser that\ntouched it, for a year. Keep the fallback off `/assets/`, and answer a miss there with a real,\nuncacheable 404.\n\nThen two detectors, for the two failures:\n\n```ts\nif (await isStaleBuild()) reloadOnce();\n```\n\n`isStaleBuild` asks the server instead of reading the error — it compares the entry script this\ndocument loaded against the one the live page names. That is the only thing that catches the\nrenamed-field crash, where the message carries no signal at all. It asks for the page, not for\nthe asset: a CDN serves assets with a long `s-maxage`, so a bundle retired an hour ago still\nanswers 200 from the edge and would report \"current\" during exactly the window when skew is most\nlikely. Anything ambiguous — offline, a non-200, a timeout — answers `false`, because dressing a\nreal bug up as an update hides it from you too.\n\n```ts\nif (isChunkLoadError(error) && reloadOnce()) return null;\n```\n\n`isChunkLoadError` matches the message, which is all you have for a failure that never reaches a\nboundary — an `unhandledrejection`, or a listener. Every browser's phrasing is in there.\n\n`reloadOnce` reloads at most once a minute, and there is **one** stamp for every reason to\nreload. A tab can reload because a chunk 404'd, because the server says it is behind, or from a\nguard inlined in `index.html` that runs before any module does. Three detectors, one predicament\n— give each its own key and a broken deploy gets three reloads a minute to take turns with. That\ninline guard cannot import anything, so the key it has to copy is exported as `RELOAD_GUARD_KEY`.\n\nAnd in your browser entry:\n\n```ts\nimport { installPreloadErrorHandler } from \"@gusnips/react\";\n\ninstallPreloadErrorHandler();\n```\n\nIt is narrower than it looks: it swallows Vite's CSS _preload hint_ failure and nothing else. A\nhint that fails is harmless — the import runs straight after and usually works. Taking Vite's\n`preventDefault()` for every preload error instead resolves the dynamic import with `undefined`,\n`React.lazy` reads `.default` off nothing, and you get a crash screen plus a TypeError with only\nReact frames in it, naming no chunk.\n\n## Guards that can tell \"no\" from \"I don't know\"\n\n```tsx\nimport { createRequireProfile } from \"@gusnips/react/guards\";\n\nconst requireProfile = createRequireProfile(useMe, { loading: <Spinner /> });\n\nconst RequireStaff = requireProfile(\n  (me) => me.isStaff,\n  <NotFound />,\n  (error) => <ErrorScreen error={error} />,\n);\n```\n\n`onDenied` and `onError` are separate because `!me?.isStaff` reads a 500 as \"not staff\". An\noperator arriving while `/auth/me` is down gets told the page does not exist: the wrong cause, no\nretry, and no request id to quote. A guard has three answers — wait, fail, refuse — and only a\nreal `false` reaches the refusal.\n\n`createRequireAuth` sends an anonymous visitor to `?next=`, carrying path, query and hash. A hash\nthat carries a sign-in token (`#access_token=…`, as an OAuth callback does) is left off, so the\ntoken never lands in the address, the logs or the history. The URL survives reloads, OAuth and\nemail links; router state does not. Read it through the main entry's\nvalidator before navigating yourself:\n\n```ts\nimport { safeInternalPath } from \"@gusnips/react\";\n\nconst next = safeInternalPath(new URLSearchParams(location.search).get(\"next\")) ?? \"/\";\n```\n\n`createRequireAnonymous` already performs that check and falls back to the home path you gave it.\n\nWriting a return target down is the other direction, and it has its own hazard. A Supabase client\nwith no `flowType` is on the **implicit** flow — the default — so a callback comes back as\n`#access_token=…&refresh_token=…`. A guard renders exactly when there is no session yet, which is\nthat callback's own state while the client parses the fragment: point an OAuth `redirectTo` at a\nguarded route and a concatenated `pathname + search + hash` puts a refresh token into a query\nstring, where it rides in `Referer`, lands in access logs and stays in history.\n\n```ts\nimport { returnPathFromLocation } from \"@gusnips/react\";\n\n// Takes anything shaped like the current page: `window.location`, or `useLocation()`.\nconst returnTo = returnPathFromLocation(window.location);\n```\n\nIt keeps the page and drops only a fragment carrying a credential, because the page is the part\nworth returning to. `createRequireAuth` uses it; use it anywhere else you record where someone was\n— a dead-session redirect is the common one.\n\n## Never dead-end anyone\n\n```ts\nimport type { ErrorStateProps } from \"@gusnips/react\";\n```\n\nNo component ships — seven codebases have an `ErrorState.tsx` and they overlap 9–37%, because one\ndraws a tinted icon, one an illustration, one a mascot. What they share is the prop shape, and\nthe prop shape _is_ the rule: `problem`, `cause`, `fix`, and `action`. **`fix` and `action` are\nrequired.** A required prop is the only version of \"always offer a way out\" that a caller in a\nhurry cannot skip.\n\n`createErrorDescriber` turns a thrown `ApiError` into the `cause` and `fix` to put in it — plus\nwhich control to offer, and the request id to print under it:\n\n```ts\nconst { cause, fix, recover, reference } = describeError(error);\n// recover: \"retry\" | \"signin\" | \"wait\" | \"none\"\n```\n\nBuild it once. An app in one language writes its four sentences out:\n\n```ts\nconst inTime = new Intl.RelativeTimeFormat(\"en\", { numeric: \"auto\" });\n\nexport const describeError = createErrorDescriber({\n  copy: {\n    network: \"We could not reach the server.\",\n    networkHint: \"Check your connection, then try again.\",\n    unexpected: \"Something went wrong on our side.\",\n    retrySoon: \"Try again in a moment.\",\n  },\n  formatWait: (secs) => inTime.format(secs, \"second\"),\n});\n```\n\nAn app that translates passes `t`, `copyPrefix`, `messageKeyPrefix` and `knownMessageKeys`\ninstead. Its catalog holds those four under `copyPrefix`, and when the server names a sentence\nthe catalog has, the reader gets it in their own language.\n\nThe field is `fix`, the same word as the prop above. It was `hint` until 0.6.0, which left every\nadopter writing `fix={hint}` at every error surface.\n\n`recover` is derived from `shouldRetry` — the same rule react-query retries on — so the button a\nreader sees and the retry that actually happens cannot disagree. Give it the same\n`durableLimitCodes` list you give `queryDefaults`, and a spent quota offers no button instead of\none that cannot work. The words follow it too: \"try again in a moment\" appears only on a 5xx that\nreact-query would retry by itself, so never beside a durable refusal or a long countdown.\n\n`formatWait` says how a stated wait becomes words:\n\n```ts\nformatWait: (secs) => humanizeWait(t, secs, \"errors.\"); // three ICU plural keys\nformatWait: (secs) => formatIn(secs, locale); // or your own Intl formatter\n```\n\nIt is required because the default hid its price: `humanizeWait` reads `waitSeconds`,\n`waitMinutes` and `waitHours` out of your catalog, so an app that already formats relative time\nwith `Intl` had to add six entries per language before it would compile.\n\nAn error your `codes` map does not name falls back to the server's own `message`. Pass `fallback`\nwhen that message is written for a log rather than for a person:\n\n```ts\nfallback: ({ says, wait }) => ({\n  cause: says ?? t(\"errors.invalid\"),\n  fix: wait ? t(\"errors.retryIn\", { when: wait }) : undefined,\n});\n```\n\nSome APIs write `message` for whoever reads the screen. Some write it for whoever reads the log —\nin English, in an app that ships three languages. Your arm also gets the stated wait, which the\ndefault has nowhere to put.\n\n## Light, dark, or the system's\n\n```ts\nconst { mode, resolved, setMode } = useTheme();\n```\n\n`mode` is what the person picked: `\"light\"`, `\"dark\"` or `\"system\"`. `resolved` is what is on\nscreen. `setMode(\"dark\")` switches, saves the choice, and every other open tab follows.\n\nYou make `useTheme` once, with the storage key your app already uses:\n\n```ts\n// src/theme.ts\nimport { createTheme, type ThemeOptions } from \"@gusnips/react/theme\";\n\nexport const THEME = { key: \"app.theme\" } satisfies ThemeOptions;\nexport const { useTheme } = createTheme(THEME);\n```\n\nThen give the same options to the Vite plugin, which paints the page in the right theme before\nits first frame. Without it, a reader who chose dark sees one light frame on every load.\n\n```ts\n// vite.config.ts\nimport { themeScript } from \"@gusnips/vite/theme\";\nimport { THEME } from \"./src/theme\";\n\nexport default defineConfig({ plugins: [themeScript(THEME)] });\n```\n\nWhat it does that the copies it replaced each missed at least once:\n\n- A browser that blocks site data throws when you touch `localStorage`. Here that is not a white\n  page: the default applies, and a choice made after that lasts until the page is left.\n- The script that runs before paint is not a second copy. The plugin writes this function's own\n  source into a file, so the two cannot disagree about a stale value or blocked storage.\n- That file is a real file, not an inline script, so a `script-src 'self'` policy lets it run.\n  An inline one under that policy never runs, and nothing tells you.\n- `\"system\"` follows the OS live, even when the person switched to it mid-page. A laptop that\n  turns dark at sunset takes the page with it.\n- It writes to the page only when the theme changes. A page that removes `dark` for as long as\n  it is open, like a booking page that is always light, stays light until the theme really\n  changes.\n- `themeColor: { light: \"#fff\", dark: \"#111\" }` moves `<meta name=\"theme-color\">` too, so the\n  browser toolbar matches the page instead of the OS.\n- `attribute: \"data-theme\"` writes `data-theme=\"dark\"` instead of the `dark` class, and\n  `defaultMode` picks what an empty key means (`\"system\"` unless you say otherwise).\n\nIn jsdom tests, mock `window.matchMedia`, which jsdom does not have, and run\n`delete window.__frontkitTheme` between tests. There is one controller per page, and a jsdom\nwindow lasts the whole file.\n\n## A copy button that says when it failed\n\n```tsx\nimport { useCopy } from \"@gusnips/react\";\n\nconst { state, copy } = useCopy();\n\n<button onClick={() => void copy(apiKey)} aria-live=\"polite\">\n  {state === \"copied\" ? \"Copied\" : state === \"failed\" ? \"Select it and copy it yourself\" : \"Copy\"}\n</button>;\n```\n\nOf eight copy buttons we read, five failed without a word, so the reader pasted whatever was\nalready on the clipboard. Two more threw on a page served without https, where there is no\nclipboard API. `useCopy` shows `\"copied\"` for 2 seconds or `\"failed\"` for 6, then goes back to\n`\"idle\"`, and a second copy restarts the clock. `copy` resolves `false` instead of throwing, so a\ntoast needs no `catch`. Outside a component, `copyText(text)` does the write on its own.\n\nThe words are yours, and so is the live region: a label that changes needs `aria-live` to be\nheard.\n\n## Also here\n\n`ErrorBoundary`, an SSE reader split into a platform-free parser and a stream wrapper,\n`i18nInitOptions`, and `cn`.\n\nPass `storageWriter: \"app\"` to `i18nInitOptions` when your own language control writes the stored\nlocale. Leave it out and the detector writes it, which is right until you offer \"follow the\nbrowser\": going back to that means clearing the key and detecting again, and a detector that\nwrites on every change puts the language it just detected straight back in. One writer per key.\n\nDetection walks the browser's language list in the reader's order, exact tag first, then the base\nsubtag: `[pt-PT, en]` gets `pt-BR` when that is what you ship, and `[en-GB, pt-BR]` gets `en`.\n`localeGateScript` uses the same rule, so the gate and the app agree about a reader.\n\n`createAuthStore` is at `@gusnips/react/store` — a zustand store whose `isLoading` starts `false`\nwhere there is no window. A session bootstrap can only be in flight in a browser, and `true`\nduring a build is a wait that never ends: it once shipped a spinner as the indexable body of a\npage whose whole job was to be found.\n\nWhen your store needs more than those flags, `authSlice` in the same place gives you them as a\nplain object to spread, so `create` stays yours — and with it `persist`, your own actions, and\nfields of your own:\n\n```ts\nconst useAuthStore = create<AuthState<User> & { isAnonymous: boolean }>((set) => ({\n  ...authSlice<User, { isAnonymous: boolean }>(set, (user) => ({\n    isAnonymous: !!user?.isAnonymous,\n  })),\n}));\n```\n\nThe second argument is what makes this more than spreading extra keys in yourself: a field read\noff the user has to be rewritten whenever the user changes, and `setUser` and `clear` are the two\nwrites you no longer own.\n\n`hydrateOrMount` is at `@gusnips/react/hydrate`, and the guards are at `@gusnips/react/guards`.\n\n## On a phone\n\nThe main entry works in React Native. It imports `react` and nothing else you would have to go\nfind — no `react-dom`, no router, no store — so the fetch client, the retry rule and the SSE\nparser all come along, and the four things that need a browser stay behind the subpaths above.\n`useCopy` imports fine there but has no `navigator.clipboard` to write to, so every copy answers\n`\"failed\"`: use the platform's clipboard on a phone.\n\n## The Base UI wrappers\n\n```ts\nimport { Dialog, Drawer, Select, Combobox, Menu, Tabs, Input } from \"@gusnips/react/ui\";\n```\n\nSeven, behind a subpath, so an app on Radix or on nothing never resolves `@base-ui/react`.\n\nThey are seven because the audit that produced them started with 27 and the hypothesis was wrong:\nno wrapper added scroll lock, focus trap, ESC, outside-dismiss, focus return, roving focus or\ntypeahead. Base UI already does all of that, and a wrapper \"adding\" them is a second\nimplementation of something that works. Twenty were dropped.\n\nWhat the remaining seven buy is composition you cannot skip — no caller can ship a scrimless\ndialog — required a11y props expressed as types, and a handful of facts that each cost somebody\nan afternoon. z-index goes on the Viewport, not the Popup, because `position: fixed` makes a\nstacking context. A drawer _ties_ with dialog rather than beating it, or a modal opened from\ninside a drawer never paints. A wrapper earns its place by knowing something, not by styling\nsomething.\n\n## Subpaths, and what each one costs you\n\n`@gusnips/react` itself needs `react` and nothing else. Anything that needs another runtime peer\nlives behind a subpath, so you install a dependency only if you import the thing that uses it:\n\n| Import from               | What is in it                            | What you must have    |\n| ------------------------- | ---------------------------------------- | --------------------- |\n| `@gusnips/react`          | the client and rest                      | react                 |\n| `@gusnips/react/store`    | `createAuthStore`, `authSlice`           | zustand               |\n| `@gusnips/react/guards`   | the route guards                         | react-router-dom      |\n| `@gusnips/react/hydrate`  | `hydrateOrMount`                         | react-dom             |\n| `@gusnips/react/supabase` | the session adapter, `parseAuthCallback` | @supabase/supabase-js |\n| `@gusnips/react/ui`       | the seven wrappers                       | @base-ui/react        |\n| `@gusnips/react/contract` | two prerender names                      | nothing               |\n| `@gusnips/react/theme`    | `createTheme`, `startTheme`              | react                 |\n\nThe rule behind that table: **a peer marked optional must not be reachable from the main entry\npoint.** An optional peer the barrel imports anyway is not optional — it is a required one whose\nerror moved from install time to your first build, which is the worse of the two places to learn\nabout it.\n\n`@tanstack/react-query`, `i18next` and `react-i18next` are optional and stay in the main entry,\nbecause only their types are used and types erase.\n\nMIT · part of [frontkit](https://github.com/gusnips/frontkit)\n","readmeFilename":"README.md"}