{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "login",
  "title": "Login",
  "description": "The standard email-and-password sign-in card, with remember-me and a forgot-password escape hatch.",
  "registryDependencies": [
    "card",
    "input",
    "label",
    "button",
    "checkbox"
  ],
  "files": [
    {
      "path": "registry/blocks/login.tsx",
      "content": "import {\n  Card,\n  CardHeader,\n  CardTitle,\n  CardDescription,\n  CardContent,\n  CardFooter,\n} from '@/components/ui/card'\nimport { Input } from '@/components/ui/input'\nimport { Label } from '@/components/ui/label'\nimport { Button } from '@/components/ui/button'\nimport { Checkbox } from '@/components/ui/checkbox'\n\n/** The standard email-and-password sign-in card, with remember-me and a forgot-password escape hatch. */\nexport function Login() {\n  return (\n    <Card className=\"w-[380px]\">\n      <CardHeader>\n        <CardTitle>Sign in</CardTitle>\n        <CardDescription>Welcome back — enter your details to continue.</CardDescription>\n      </CardHeader>\n      <CardContent className=\"flex flex-col gap-4\">\n        <div className=\"flex flex-col gap-1.5\">\n          <Label htmlFor=\"login-email\">Email</Label>\n          <Input id=\"login-email\" type=\"email\" placeholder=\"you@example.com\" />\n        </div>\n        <div className=\"flex flex-col gap-1.5\">\n          <Label htmlFor=\"login-password\">Password</Label>\n          <Input id=\"login-password\" type=\"password\" placeholder=\"••••••••\" />\n        </div>\n        <div className=\"flex items-center gap-2\">\n          <Checkbox id=\"login-remember\" />\n          <Label htmlFor=\"login-remember\" className=\"font-normal\">\n            Remember me for 30 days\n          </Label>\n        </div>\n      </CardContent>\n      <CardFooter className=\"flex-col gap-2\">\n        <Button className=\"w-full\">Sign in</Button>\n        <Button variant=\"link\" className=\"w-full\">\n          Forgot your password?\n        </Button>\n      </CardFooter>\n    </Card>\n  )\n}\n",
      "type": "registry:component",
      "target": "components/quill/login.tsx"
    }
  ],
  "meta": {
    "intent": [
      "auth"
    ],
    "use_when": "You need the standard email-and-password sign-in with remember-me and reset links.",
    "not_for": "the sign-in is a full page, not an embedded card, and you want a branded testimonial panel alongside it → login-split-panel; you want the leanest possible sign-in — a single email field for a one-time code, no password at all → login-minimal; most of your users sign in through Google, GitHub, or Apple rather than a password you store → login-oauth; the user has already clicked \"Forgot your password?\" — that's a separate card, not a state of this one → forgot-password"
  },
  "docs": "The standard email-and-password sign-in card, with remember-me and a forgot-password escape hatch. Do: Treat \"Remember me\" as extending session length, never as the only thing standing between a device and the account. Don't: Rely on the remember-me checkbox as a security boundary. Do: Style \"Forgot your password?\" as a link beneath \"Sign in\" — one unmistakable primary action per card. Don't: Give \"Forgot your password?\" the same solid button treatment as \"Sign in\" — now two buttons compete to be primary. Use login-split-panel when the sign-in is a full page, not an embedded card, and you want a branded testimonial panel alongside it. Use login-minimal when you want the leanest possible sign-in — a single email field for a one-time code, no password at all. Use login-oauth when most of your users sign in through Google, GitHub, or Apple rather than a password you store. Use forgot-password when the user has already clicked \"Forgot your password?\" — that's a separate card, not a state of this one.",
  "categories": [
    "auth"
  ],
  "type": "registry:block"
}