"use client";
import { Button } from "@/components/ui/button";
import {
Card,
CardContent,
CardFooter,
CardHeader,
} from "@/components/ui/card";
import { Checkbox } from "@/components/ui/checkbox";
import { Input } from "@/components/ui/input";
import { Label } from "@/components/ui/label";
import {
Select,
SelectContent,
SelectItem,
SelectTrigger,
SelectValue,
} from "@/components/ui/select";
import { BarChart, Code, Eye, EyeOff, User } from "lucide-react";
import Link from "next/link";
import { JSX, SVGProps, useState } from "react";
const Logo = (props: JSX.IntrinsicAttributes & SVGProps<SVGSVGElement>) => (
<svg
fill="currentColor"
height="48"
viewBox="0 0 40 48"
width="40"
{...props}
>
<clipPath id="a">
<path d="m0 0h40v48h-40z" />
</clipPath>
<g clipPath="url(#a)">
<path d="m25.0887 5.05386-3.933-1.05386-3.3145 12.3696-2.9923-11.16736-3.9331 1.05386 3.233 12.0655-8.05262-8.0526-2.87919 2.8792 8.83271 8.8328-10.99975-2.9474-1.05385625 3.933 12.01860625 3.2204c-.1376-.5935-.2104-1.2119-.2104-1.8473 0-4.4976 3.646-8.1436 8.1437-8.1436 4.4976 0 8.1436 3.646 8.1436 8.1436 0 .6313-.0719 1.2459-.2078 1.8359l10.9227 2.9267 1.0538-3.933-12.0664-3.2332 11.0005-2.9476-1.0539-3.933-12.0659 3.233 8.0526-8.0526-2.8792-2.87916-8.7102 8.71026z" />
<path d="m27.8723 26.2214c-.3372 1.4256-1.0491 2.7063-2.0259 3.7324l7.913 7.9131 2.8792-2.8792z" />
<path d="m25.7665 30.0366c-.9886 1.0097-2.2379 1.7632-3.6389 2.1515l2.8794 10.746 3.933-1.0539z" />
<path d="m21.9807 32.2274c-.65.1671-1.3313.2559-2.0334.2559-.7522 0-1.4806-.102-2.1721-.2929l-2.882 10.7558 3.933 1.0538z" />
<path d="m17.6361 32.1507c-1.3796-.4076-2.6067-1.1707-3.5751-2.1833l-7.9325 7.9325 2.87919 2.8792z" />
<path d="m13.9956 29.8973c-.9518-1.019-1.6451-2.2826-1.9751-3.6862l-10.95836 2.9363 1.05385 3.933z" />
</g>
</svg>
);
export default function SignupForm() {
const [showPassword, setShowPassword] = useState(false);
return (
<div className="flex items-center justify-center min-h-screen">
<div className="w-full max-w-md">
<Card className="border-none shadow-lg pb-0">
<CardHeader className="flex flex-col items-center space-y-1.5 pb-4 pt-6">
<Logo className="w-12 h-12" />
<div className="space-y-0.5 flex flex-col items-center">
<h2 className="text-2xl font-semibold text-foreground">
Create an account
</h2>
<p className="text-muted-foreground">
Welcome! Create an account to get started.
</p>
</div>
</CardHeader>
<CardContent className="space-y-6 px-8">
<div className="space-y-2">
<Label htmlFor="role">Role</Label>
<Select defaultValue="designer">
<SelectTrigger
id="role"
className="[&>span]:flex [&>span]:items-center [&>span]:gap-2 [&>span_svg]:shrink-0"
>
<SelectValue placeholder="Select role" />
</SelectTrigger>
<SelectContent className="[&_*[role=option]]:ps-2 [&_*[role=option]]:pe-8 [&_*[role=option]>span]:start-auto [&_*[role=option]>span]:end-2 [&_*[role=option]>span]:flex [&_*[role=option]>span]:items-center [&_*[role=option]>span]:gap-2 [&_*[role=option]>span>svg]:shrink-0">
<SelectItem value="designer">
<User size={16} aria-hidden="true" />
<span className="truncate">Product Designer</span>
</SelectItem>
<SelectItem value="developer">
<Code size={16} aria-hidden="true" />
<span className="truncate">Developer</span>
</SelectItem>
<SelectItem value="manager">
<BarChart size={16} aria-hidden="true" />
<span className="truncate">Product Manager</span>
</SelectItem>
</SelectContent>
</Select>
</div>
<div className="grid grid-cols-2 gap-4">
<div className="space-y-2">
<Label htmlFor="firstName">First name</Label>
<Input id="firstName" />
</div>
<div className="space-y-2">
<Label htmlFor="lastName">Last name</Label>
<Input id="lastName" />
</div>
</div>
<div className="space-y-2">
<Label htmlFor="username">Username</Label>
<Input id="username" />
</div>
<div className="space-y-2">
<Label htmlFor="email">Email address</Label>
<Input id="email" type="email" />
</div>
<div className="space-y-2">
<Label htmlFor="password">Password</Label>
<div className="relative">
<Input
id="password"
type={showPassword ? "text" : "password"}
className="pr-10"
/>
<Button
type="button"
variant="ghost"
size="icon"
className="absolute right-0 top-0 h-full px-3 text-muted-foreground hover:bg-transparent"
onClick={() => setShowPassword(!showPassword)}
>
{showPassword ? (
<EyeOff className="h-4 w-4" />
) : (
<Eye className="h-4 w-4" />
)}
</Button>
</div>
</div>
<div className="flex items-center space-x-2">
<Checkbox id="terms" />
<label htmlFor="terms" className="text-sm text-muted-foreground">
I agree to the{" "}
<Link href="#" className="text-primary hover:underline">
Terms
</Link>{" "}
and{" "}
<Link href="#" className="text-primary hover:underline">
Conditions
</Link>
</label>
</div>
<Button className="w-full bg-primary text-primary-foreground">
Create free account
</Button>
</CardContent>
<CardFooter className="flex justify-center border-t py-4!">
<p className="text-center text-sm text-muted-foreground">
Already have an account?{" "}
<Link href="#" className="text-primary hover:underline">
Sign in
</Link>
</p>
</CardFooter>
</Card>
</div>
</div>
);
}