import { cn } from "@/lib/utils";
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
import { Label } from "@/components/ui/label";
interface Login2Props {
heading?: string;
logo: {
url: string;
src: string;
alt: string;
title?: string;
className?: string;
};
buttonText?: string;
googleText?: string;
signupText?: string;
signupUrl?: string;
className?: string;
}
const Login2 = ({
heading = "Login",
logo = {
url: "https://www.shadcnblocks.com",
src: "https://deifkwefumgah.cloudfront.net/shadcnblocks/block/logos/shadcnblockscom-wordmark.svg",
alt: "logo",
title: "shadcnblocks.com",
},
buttonText = "Login",
signupText = "Need an account?",
signupUrl = "https://shadcnblocks.com",
className,
}: Login2Props) => {
return (
<section className={cn("h-screen bg-muted", className)}>
<div className="flex h-full items-center justify-center">
<div className="flex flex-col items-center gap-6 lg:justify-start">
{/* Logo */}
<a href={logo.url}>
<img
src={logo.src}
alt={logo.alt}
title={logo.title}
className="h-10 dark:invert"
/>
</a>
<div className="flex w-full max-w-sm min-w-sm flex-col items-center gap-y-4 rounded-md border border-muted bg-background px-6 py-8 shadow-md">
{heading && <h1 className="text-xl font-semibold">{heading}</h1>}
<div className="flex w-full flex-col gap-2">
<Label>Email</Label>
<Input
type="email"
placeholder="Email"
className="text-sm"
required
/>
</div>
<div className="flex w-full flex-col gap-2">
<Label>Password</Label>
<Input
type="password"
placeholder="Password"
className="text-sm"
required
/>
</div>
<Button type="submit" className="w-full">
{buttonText}
</Button>
</div>
<div className="flex justify-center gap-1 text-sm text-muted-foreground">
<p>{signupText}</p>
<a
href={signupUrl}
className="font-medium text-primary hover:underline"
>
Sign up
</a>
</div>
</div>
</div>
</section>
);
};
export { Login2 };