{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "signup-social",
  "title": "Signup — social first",
  "description": "Signup that leads with GitHub and Google provider buttons, falling back to an email/password form.",
  "registryDependencies": [
    "card",
    "input",
    "label",
    "button",
    "separator"
  ],
  "files": [
    {
      "path": "registry/blocks/signup-social.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 { Separator } from '@/components/ui/separator'\n\n// Official brand marks — inlined because icon fonts (rightly) don't carry\n// third-party logos. GitHub's mark is monochrome and follows the text color;\n// Google's G keeps its brand colors per their sign-in guidelines.\nfunction GitHubMark({ size = 16 }: { size?: number }) {\n  return (\n    <svg viewBox=\"0 0 24 24\" width={size} height={size} fill=\"currentColor\" aria-hidden>\n      <path d=\"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\" />\n    </svg>\n  )\n}\n\nfunction GoogleG({ size = 16 }: { size?: number }) {\n  return (\n    <svg viewBox=\"0 0 18 18\" width={size} height={size} aria-hidden>\n      {/* quill-check: allow raw-color — Google \"G\" mark, blue — fixed by Google's brand guidelines */}\n      <path fill=\"#4285F4\" d=\"M17.64 9.2045c0-.6381-.0573-1.2518-.1636-1.8409H9v3.4814h4.8436c-.2086 1.125-.8427 2.0782-1.7959 2.7164v2.2581h2.9087c1.7018-1.5668 2.6836-3.874 2.6836-6.615z\" />\n      {/* quill-check: allow raw-color — Google \"G\" mark, green — fixed by Google's brand guidelines */}\n      <path fill=\"#34A853\" d=\"M9 18c2.43 0 4.4673-.806 5.9564-2.1805l-2.9087-2.2581c-.8059.54-1.8368.859-3.0477.859-2.344 0-4.3282-1.5831-5.0359-3.7104H.9573v2.3318C2.4382 15.9832 5.4818 18 9 18z\" />\n      {/* quill-check: allow raw-color — Google \"G\" mark, yellow — fixed by Google's brand guidelines */}\n      <path fill=\"#FBBC05\" d=\"M3.9641 10.71c-.18-.54-.2823-1.1168-.2823-1.71s.1023-1.17.2823-1.71V4.9582H.9573C.3477 6.1732 0 7.5477 0 9s.3477 2.8268.9573 4.0418L3.9641 10.71z\" />\n      {/* quill-check: allow raw-color — Google \"G\" mark, red — fixed by Google's brand guidelines */}\n      <path fill=\"#EA4335\" d=\"M9 3.5795c1.3214 0 2.5077.4541 3.4405 1.346l2.5813-2.5814C13.4632.8918 11.4259 0 9 0 5.4818 0 2.4382 2.0168.9573 4.9582L3.9641 7.29C4.6718 5.1627 6.6559 3.5795 9 3.5795z\" />\n    </svg>\n  )\n}\n\n/** Signup that leads with GitHub and Google provider buttons, falling back to an email/password form. */\nexport function SignupSocial() {\n  return (\n    <Card className=\"w-[380px]\">\n      <CardHeader className=\"text-center\">\n        <CardTitle>Create your account</CardTitle>\n        <CardDescription>Start with a provider, or use your email.</CardDescription>\n      </CardHeader>\n      <CardContent className=\"flex flex-col gap-4\">\n        <div className=\"flex flex-col gap-2\">\n          <Button variant=\"outline\" className=\"w-full\">\n            <GitHubMark /> Continue with GitHub\n          </Button>\n          <Button variant=\"outline\" className=\"w-full\">\n            <GoogleG /> Continue with Google\n          </Button>\n        </div>\n        <div className=\"flex items-center gap-3\">\n          <Separator className=\"flex-1\" />\n          <span className=\"text-xs text-muted-foreground\">or with email</span>\n          <Separator className=\"flex-1\" />\n        </div>\n        <div className=\"flex flex-col gap-1.5\">\n          <Label htmlFor=\"social-email\">Email</Label>\n          <Input id=\"social-email\" type=\"email\" placeholder=\"you@example.com\" />\n        </div>\n        <div className=\"flex flex-col gap-1.5\">\n          <Label htmlFor=\"social-password\">Password</Label>\n          <Input id=\"social-password\" type=\"password\" placeholder=\"At least 12 characters\" />\n        </div>\n      </CardContent>\n      <CardFooter className=\"flex-col gap-3\">\n        <Button className=\"w-full\">Create account</Button>\n        <p className=\"text-center text-xs leading-relaxed text-muted-foreground\">\n          By continuing you agree to the team terms and privacy note.\n        </p>\n      </CardFooter>\n    </Card>\n  )\n}\n",
      "type": "registry:component",
      "target": "components/quill/signup-social.tsx"
    }
  ],
  "meta": {
    "intent": [
      "auth"
    ],
    "use_when": "You need signup that leads with OAuth providers and falls back to email/password.",
    "not_for": "you don't have OAuth providers configured, or want email/password as the primary path, not a fallback → signup; this is sign-in, not new-account creation — login-oauth is the matching pattern for returning users → login-oauth"
  },
  "docs": "Signup that leads with GitHub and Google provider buttons, falling back to an email/password form. Do: Put the provider buttons above the divider and the email/password fields below it, matching login-oauth's provider-first order. Don't: Bury the provider buttons below a full email/password form — that defeats the point of offering them. Use signup when you don't have OAuth providers configured, or want email/password as the primary path, not a fallback. Use login-oauth when this is sign-in, not new-account creation — login-oauth is the matching pattern for returning users.",
  "categories": [
    "auth"
  ],
  "type": "registry:block"
}