{"_id":"@carefully-built/auth-pages","_rev":"4-86f74368a5075a48e0761445472ea57e","name":"@carefully-built/auth-pages","dist-tags":{"latest":"0.1.10"},"versions":{"0.1.7":{"name":"@carefully-built/auth-pages","version":"0.1.7","keywords":["react","nextjs","auth","saas","workos"],"author":{"name":"Alessandro Dodi"},"license":"MIT","_id":"@carefully-built/auth-pages@0.1.7","maintainers":[{"name":"alledodi","email":"dodialessandro3@gmail.com"}],"homepage":"https://github.com/AlessandroDodi/carefully-built-saas-kit#readme","bugs":{"url":"https://github.com/AlessandroDodi/carefully-built-saas-kit/issues"},"dist":{"shasum":"e4861576b6febdc73a02b922a7a39c1247d7ae2b","tarball":"https://registry.npmjs.org/@carefully-built/auth-pages/-/auth-pages-0.1.7.tgz","fileCount":43,"integrity":"sha512-gByJqYaKsqcZ6iCUNpZkgSaxg7iQuv+z2qulNIYEUMvweYwTDfnGsi8PASknGDsn76xn7790IsPoMJ8auCrR2g==","signatures":[{"sig":"MEUCIQCNPMzY2owTaYOKhTfeiNMZ448vlixmbj+Ia7MFwmfbYAIgJEwrB3ouvXzFYW+c1ff/5PlkSb8xY9lko6OuNYvV+6E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":145651},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./forms":{"types":"./dist/forms.d.mts","import":"./dist/forms.mjs","default":"./dist/forms.mjs"},"./pages":{"types":"./dist/pages.d.mts","import":"./dist/pages.mjs","default":"./dist/pages.mjs"},"./config":{"types":"./dist/config.d.mts","import":"./dist/config.mjs","default":"./dist/config.mjs"},"./social":{"types":"./dist/social.d.mts","import":"./dist/social.mjs","default":"./dist/social.mjs"},"./workos":{"types":"./dist/workos.d.mts","import":"./dist/workos.mjs","default":"./dist/workos.mjs"},"./controllers":{"types":"./dist/controllers.d.mts","import":"./dist/controllers.mjs","default":"./dist/controllers.mjs"},"./package.json":"./package.json","./organizations":{"types":"./dist/organizations.d.mts","import":"./dist/organizations.mjs","default":"./dist/organizations.mjs"}},"gitHead":"b84d3f58858fed9a9e06a291cd33ea8b6f1ff157","scripts":{"build":"tsdown src/index.ts src/forms.ts src/controllers.ts src/config.ts src/social.ts src/workos.ts src/organizations.ts src/pages.ts --format esm --dts","typecheck":"tsc --noEmit","prepublishOnly":"bun run typecheck && bun run build"},"_npmUser":{"name":"alledodi","email":"dodialessandro3@gmail.com"},"repository":{"url":"git+https://github.com/AlessandroDodi/carefully-built-saas-kit.git","type":"git","directory":"packages/auth-pages"},"_npmVersion":"11.9.0","description":"Reusable SaaS auth pages, layouts, legal consent, and form presentation for Carefully Built apps.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.3.6","react":"^19.2.3","react-dom":"^19.2.3","react-hook-form":"^7.71.1","@carefully-built/ui":"workspace:*","@hookform/resolvers":"^5.2.2","@carefully-built/forms":"workspace:*"},"peerDependencies":{"zod":">=4.0.0","react":">=18.2.0 || >=19.0.0","react-dom":">=18.2.0 || >=19.0.0","react-hook-form":">=7.0.0","@carefully-built/ui":">=0.1.4","@hookform/resolvers":">=5.0.0","@carefully-built/forms":">=0.1.0"},"peerDependenciesMeta":{"zod":{"optional":true},"@carefully-built/ui":{"optional":true},"@hookform/resolvers":{"optional":true},"@carefully-built/forms":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/auth-pages_0.1.7_1782064376253_0.17939334865394896","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@carefully-built/auth-pages","version":"0.1.8","keywords":["react","nextjs","auth","saas","workos"],"author":{"name":"Alessandro Dodi"},"license":"MIT","_id":"@carefully-built/auth-pages@0.1.8","maintainers":[{"name":"alledodi","email":"dodialessandro3@gmail.com"}],"homepage":"https://github.com/AlessandroDodi/carefully-built-saas-kit#readme","bugs":{"url":"https://github.com/AlessandroDodi/carefully-built-saas-kit/issues"},"dist":{"shasum":"9fec62c76b584fb3d9396f4c8986d44a4db4273e","tarball":"https://registry.npmjs.org/@carefully-built/auth-pages/-/auth-pages-0.1.8.tgz","fileCount":43,"integrity":"sha512-Z9O0sKUJEj8EDDLG7bF3fP/+iQ0KMQvqBegpFnpGXjX6KaJ5fp8Q6h2i2vXWzAIYE96g5lJh5juGqgdNETsJCQ==","signatures":[{"sig":"MEUCIQDaaT0rnOROe1b3DNtWXcfxI6BFKcaB3XgXq5mD0TySxwIgf23eYw5CDJBorcg8UEg3BJgkB6RuTSjbBTUaAxIksBU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":150412},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./forms":{"types":"./dist/forms.d.mts","import":"./dist/forms.mjs","default":"./dist/forms.mjs"},"./pages":{"types":"./dist/pages.d.mts","import":"./dist/pages.mjs","default":"./dist/pages.mjs"},"./config":{"types":"./dist/config.d.mts","import":"./dist/config.mjs","default":"./dist/config.mjs"},"./social":{"types":"./dist/social.d.mts","import":"./dist/social.mjs","default":"./dist/social.mjs"},"./workos":{"types":"./dist/workos.d.mts","import":"./dist/workos.mjs","default":"./dist/workos.mjs"},"./controllers":{"types":"./dist/controllers.d.mts","import":"./dist/controllers.mjs","default":"./dist/controllers.mjs"},"./package.json":"./package.json","./organizations":{"types":"./dist/organizations.d.mts","import":"./dist/organizations.mjs","default":"./dist/organizations.mjs"}},"gitHead":"ec3e035989147c8024a4dd433a404ece7a211530","scripts":{"build":"tsdown src/index.ts src/forms.ts src/controllers.ts src/config.ts src/social.ts src/workos.ts src/organizations.ts src/pages.ts --format esm --dts","typecheck":"tsc --noEmit","prepublishOnly":"bun run typecheck && bun run build"},"_npmUser":{"name":"alledodi","email":"dodialessandro3@gmail.com"},"repository":{"url":"git+https://github.com/AlessandroDodi/carefully-built-saas-kit.git","type":"git","directory":"packages/auth-pages"},"_npmVersion":"11.9.0","description":"Reusable SaaS auth pages, layouts, legal consent, and form presentation for Carefully Built apps.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.3.6","react":"^19.2.3","react-dom":"^19.2.3","react-hook-form":"^7.71.1","@carefully-built/ui":"workspace:*","@hookform/resolvers":"^5.2.2","@carefully-built/forms":"workspace:*"},"peerDependencies":{"zod":">=4.0.0","react":">=18.2.0 || >=19.0.0","react-dom":">=18.2.0 || >=19.0.0","react-hook-form":">=7.0.0","@carefully-built/ui":">=0.1.15","@hookform/resolvers":">=5.0.0","@carefully-built/forms":">=0.1.9"},"peerDependenciesMeta":{"zod":{"optional":true},"@carefully-built/ui":{"optional":true},"@hookform/resolvers":{"optional":true},"@carefully-built/forms":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/auth-pages_0.1.8_1782243104092_0.8417600760726156","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@carefully-built/auth-pages","version":"0.1.9","keywords":["react","nextjs","auth","saas","workos"],"author":{"name":"Alessandro Dodi"},"license":"MIT","_id":"@carefully-built/auth-pages@0.1.9","maintainers":[{"name":"alledodi","email":"dodialessandro3@gmail.com"}],"homepage":"https://github.com/AlessandroDodi/carefully-built-saas-kit#readme","bugs":{"url":"https://github.com/AlessandroDodi/carefully-built-saas-kit/issues"},"dist":{"shasum":"db637d64daa7e12df22a19ba5070640c1c43686f","tarball":"https://registry.npmjs.org/@carefully-built/auth-pages/-/auth-pages-0.1.9.tgz","fileCount":43,"integrity":"sha512-4iqqHmQyKdtE2UU+M8eC4ObK6/G4pQ9B4Da1rxbbwuS7FXZMTUUj0h6E3IRtOsOx5ngVwZE1OHl5h7jMiOtY/Q==","signatures":[{"sig":"MEUCIAJmmX9Z85HRMIgw4jiQUrc5OqSjamhk7lgRUge8lNnWAiEAmuq2GV+lVwZ7wvL610NrZZK2xCG5FmJIa7mOpPrUSwY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":150921},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./forms":{"types":"./dist/forms.d.mts","import":"./dist/forms.mjs","default":"./dist/forms.mjs"},"./pages":{"types":"./dist/pages.d.mts","import":"./dist/pages.mjs","default":"./dist/pages.mjs"},"./config":{"types":"./dist/config.d.mts","import":"./dist/config.mjs","default":"./dist/config.mjs"},"./social":{"types":"./dist/social.d.mts","import":"./dist/social.mjs","default":"./dist/social.mjs"},"./workos":{"types":"./dist/workos.d.mts","import":"./dist/workos.mjs","default":"./dist/workos.mjs"},"./controllers":{"types":"./dist/controllers.d.mts","import":"./dist/controllers.mjs","default":"./dist/controllers.mjs"},"./package.json":"./package.json","./organizations":{"types":"./dist/organizations.d.mts","import":"./dist/organizations.mjs","default":"./dist/organizations.mjs"}},"gitHead":"c93ed6a7671fc5f8e463cba62d51fdc2226be516","scripts":{"build":"tsdown src/index.ts src/forms.ts src/controllers.ts src/config.ts src/social.ts src/workos.ts src/organizations.ts src/pages.ts --format esm --dts","typecheck":"tsc --noEmit","prepublishOnly":"bun run typecheck && bun run build"},"_npmUser":{"name":"alledodi","email":"dodialessandro3@gmail.com"},"repository":{"url":"git+https://github.com/AlessandroDodi/carefully-built-saas-kit.git","type":"git","directory":"packages/auth-pages"},"_npmVersion":"11.9.0","description":"Reusable SaaS auth pages, layouts, legal consent, and form presentation for Carefully Built apps.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.3.6","react":"^19.2.3","react-dom":"^19.2.3","react-hook-form":"^7.71.1","@carefully-built/ui":"workspace:*","@hookform/resolvers":"^5.2.2","@carefully-built/forms":"workspace:*"},"peerDependencies":{"zod":">=4.0.0","react":">=18.2.0 || >=19.0.0","react-dom":">=18.2.0 || >=19.0.0","react-hook-form":">=7.0.0","@carefully-built/ui":">=0.1.15","@hookform/resolvers":">=5.0.0","@carefully-built/forms":">=0.1.9"},"peerDependenciesMeta":{"zod":{"optional":true},"@carefully-built/ui":{"optional":true},"@hookform/resolvers":{"optional":true},"@carefully-built/forms":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/auth-pages_0.1.9_1782244670304_0.4661684892144935","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@carefully-built/auth-pages","version":"0.1.10","description":"Reusable SaaS auth pages, layouts, legal consent, and form presentation for Carefully Built apps.","type":"module","license":"MIT","author":{"name":"Alessandro Dodi"},"homepage":"https://github.com/AlessandroDodi/carefully-built-saas-kit#readme","repository":{"type":"git","url":"git+https://github.com/AlessandroDodi/carefully-built-saas-kit.git","directory":"packages/auth-pages"},"bugs":{"url":"https://github.com/AlessandroDodi/carefully-built-saas-kit/issues"},"keywords":["react","nextjs","auth","saas","workos"],"sideEffects":false,"main":"./dist/index.mjs","module":"./dist/index.mjs","types":"./dist/index.d.mts","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./forms":{"types":"./dist/forms.d.mts","import":"./dist/forms.mjs","default":"./dist/forms.mjs"},"./controllers":{"types":"./dist/controllers.d.mts","import":"./dist/controllers.mjs","default":"./dist/controllers.mjs"},"./config":{"types":"./dist/config.d.mts","import":"./dist/config.mjs","default":"./dist/config.mjs"},"./social":{"types":"./dist/social.d.mts","import":"./dist/social.mjs","default":"./dist/social.mjs"},"./workos":{"types":"./dist/workos.d.mts","import":"./dist/workos.mjs","default":"./dist/workos.mjs"},"./organizations":{"types":"./dist/organizations.d.mts","import":"./dist/organizations.mjs","default":"./dist/organizations.mjs"},"./pages":{"types":"./dist/pages.d.mts","import":"./dist/pages.mjs","default":"./dist/pages.mjs"},"./package.json":"./package.json"},"scripts":{"build":"tsdown src/index.ts src/forms.ts src/controllers.ts src/config.ts src/social.ts src/workos.ts src/organizations.ts src/pages.ts --format esm --dts","prepublishOnly":"bun run typecheck && bun run build","typecheck":"tsc --noEmit"},"publishConfig":{"access":"public"},"peerDependencies":{"@carefully-built/forms":">=0.1.9","@carefully-built/ui":">=0.1.15","@hookform/resolvers":">=5.0.0","react":">=18.2.0 || >=19.0.0","react-dom":">=18.2.0 || >=19.0.0","react-hook-form":">=7.0.0","zod":">=4.0.0"},"peerDependenciesMeta":{"@carefully-built/forms":{"optional":true},"@carefully-built/ui":{"optional":true},"@hookform/resolvers":{"optional":true},"zod":{"optional":true}},"devDependencies":{"@carefully-built/forms":"workspace:*","@carefully-built/ui":"workspace:*","@hookform/resolvers":"^5.2.2","react":"^19.2.3","react-dom":"^19.2.3","react-hook-form":"^7.71.1","zod":"^4.3.6"},"gitHead":"9a07dd717540e025b110f74cb81fea567bae3a6b","_id":"@carefully-built/auth-pages@0.1.10","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-lhIoGWp499a+hvRxGRSCvaO6D1f3ofJmz8QzUJ8IWmiGw5JawJetdlkmimgPzLVUax6IMrmLlCHXz3cxSk/bRw==","shasum":"a3076d50b8a3d499d15e5f159b4e5166af6b04f7","tarball":"https://registry.npmjs.org/@carefully-built/auth-pages/-/auth-pages-0.1.10.tgz","fileCount":43,"unpackedSize":152088,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDOOFUpHZZ72Q3OnLuv6p/wHTHN/hXyVvrxSHHFIBcVQgIhAPKtiYyKdQw1mdE9Ynbeo6DpbEsm+5PDLCTffflf1TEc"}]},"_npmUser":{"name":"alledodi","email":"dodialessandro3@gmail.com"},"directories":{},"maintainers":[{"name":"alledodi","email":"dodialessandro3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/auth-pages_0.1.10_1782505183261_0.2235960322506345"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-21T17:52:56.097Z","modified":"2026-06-26T20:19:43.630Z","0.1.7":"2026-06-21T17:52:56.388Z","0.1.8":"2026-06-23T19:31:44.297Z","0.1.9":"2026-06-23T19:57:50.444Z","0.1.10":"2026-06-26T20:19:43.492Z"},"bugs":{"url":"https://github.com/AlessandroDodi/carefully-built-saas-kit/issues"},"author":{"name":"Alessandro Dodi"},"license":"MIT","homepage":"https://github.com/AlessandroDodi/carefully-built-saas-kit#readme","keywords":["react","nextjs","auth","saas","workos"],"repository":{"type":"git","url":"git+https://github.com/AlessandroDodi/carefully-built-saas-kit.git","directory":"packages/auth-pages"},"description":"Reusable SaaS auth pages, layouts, legal consent, and form presentation for Carefully Built apps.","maintainers":[{"name":"alledodi","email":"dodialessandro3@gmail.com"}],"readme":"# Carefully Built Auth Pages\n\nReusable SaaS auth layouts, legal consent, social login buttons, form presentation, default password form controllers, and WorkOS server action helpers.\n\n## Install\n\n```bash\nbun add @carefully-built/auth-pages @carefully-built/forms @carefully-built/ui react-hook-form @hookform/resolvers zod\n```\n\n## What It Includes\n\n- `AuthLayout`: brandable auth layout with optional split visual.\n- `AuthBottomNav`: compact login/signup cross-link.\n- `LegalConsent`: reusable terms/privacy/cookie copy.\n- `@carefully-built/auth-pages/social`: provider buttons plus email fallback.\n- `@carefully-built/auth-pages/forms`: presentational forms that accept app-owned hooks/actions.\n- `@carefully-built/auth-pages/controllers`: default forgot-password and update-password hooks with built-in validation, loading, success, and error state.\n- `@carefully-built/auth-pages/workos`: WorkOS server action factory for Google auth URLs, password sign in/sign up, password reset, and sign out.\n- `@carefully-built/auth-pages/organizations`: reusable organization selection page, searchable organization list, and logo fallback.\n- `@carefully-built/auth-pages/pages`: lazy-mode full auth pages for login, email login, signup, forgot password, and update password. Use lower-level exports when you need custom behavior.\n\nThe root export is server-safe for Next.js App Router. Use `/forms`, `/controllers`, and `/social` from client components. Use `/workos` only from server files.\n\n## Goal\n\nThe consuming app should eventually mount auth with one import and one config object, keeping app-side auth code under 200 LOC.\n\n## Styling And Theming\n\nAuth components ship with default Tailwind/shadcn-compatible classes. Consuming apps can keep page files clean by defining product-specific classes in an app config file and passing them through optional `className` and `classes` props.\n\n```tsx\nimport { AuthLoginPage } from '@carefully-built/auth-pages/pages';\n\n<AuthLoginPage\n  logo={<Logo />}\n  providers={providers}\n  legal={{\n    termsHref: '/terms',\n    privacyHref: '/privacy',\n    className: 'text-center',\n    linkClassName: 'underline-offset-4',\n  }}\n  classes={{\n    content: 'max-w-sm',\n    title: 'text-2xl',\n    subtitle: 'text-sm',\n  }}\n/>;\n```\n\n`AuthLayout`, lazy auth pages, legal consent, bottom nav, social buttons, email/password forms, and organization selection all keep the same default style when these props are omitted.\n\nUse `OrganizationSelectionPage` from `@carefully-built/auth-pages/organizations` for multi-organization auth instead of rebuilding the card list in each app.\n\n## Component Docs\n\n- [Auth Pages](./docs/auth-pages.md)\n","readmeFilename":"README.md"}