Files
reui-blocks/blocks/signup7.tsx
T

181 lines
7.0 KiB
TypeScript

import { CheckSquare, FolderKanban, Users } from "lucide-react";
import { FcGoogle } from "react-icons/fc";
import { Button } from "@/components/ui/button";
import { Separator } from "@/components/ui/separator";
import { cn } from "@/lib/utils";
interface Signup7Props {
className?: string;
heading?: string;
description?: string;
googleText?: string;
dividerText?: string;
emailButtonText?: string;
ssoButtonText?: string;
loginPromptText?: string;
loginUrl?: string;
loginLinkText?: string;
termsIntroText?: string;
termsLinkText?: string;
termsUrl?: string;
termsConnectorText?: string;
privacyLinkText?: string;
privacyUrl?: string;
badgeMonthlyAlt?: string;
badgeProductHuntAlt?: string;
previewImageAlt?: string;
feature1Title?: string;
feature1Description?: string;
feature2Title?: string;
feature2Description?: string;
feature3Title?: string;
feature3Description?: string;
}
const Signup7 = ({
className,
heading = "حساب کاربری خود را همین امروز ایجاد کنید",
description = "پلن پایه برای استفاده شخصی. پلن‌های حرفه‌ای برای تیم‌ها و کسب‌وکارها.",
googleText = "ادامه با گوگل",
dividerText = "یا",
emailButtonText = "ادامه با ایمیل",
ssoButtonText = "یا ورود یکپارچه سازمانی (SSO)",
loginPromptText = "قبلاً ثبت‌نام کرده‌اید؟",
loginUrl = "/#",
loginLinkText = "ورود به حساب",
termsIntroText = "با ادامه، با",
termsLinkText = "شرایط خدمات",
termsUrl = "/#",
termsConnectorText = "و",
privacyLinkText = "سیاست حریم خصوصی",
privacyUrl = "/#",
badgeMonthlyAlt = "نشان ماهانه Product Hunt",
badgeProductHuntAlt = "نشان Product Hunt",
previewImageAlt = "پیش‌نمایش محصول",
feature1Title = "فضاهای کاری را منظم کنید",
feature1Description =
"همه کارها را در یک داشبورد متمرکز نگه دارید.",
feature2Title = "پیگیری وظایف و مهلت‌ها",
feature2Description =
"اولویت‌ها را تعیین کنید و پیشرفت همه پروژه‌ها را رصد کنید.",
feature3Title = "همکاری با تیم",
feature3Description =
"اسناد را به‌اشتراک بگذارید و با هم‌تیمی‌ها به‌صورت لحظه‌ای ارتباط بگیرید.",
}: Signup7Props) => {
return (
<section
dir="rtl"
lang="fa"
className={cn("bg-muted/60 py-32 2xl:bg-background", className)}
>
<div className="container lg:max-w-[1400px] lg:px-0 2xl:px-8">
<div className="grid rounded-2xl border-border lg:grid-cols-2 lg:bg-muted/30 2xl:border 2xl:py-10">
<div className="mx-auto flex max-w-xl flex-col justify-between lg:px-20">
<div className="lg:mt-24">
<div className="flex flex-col gap-2">
<h1 className="text-xl font-bold">{heading}</h1>
<p className="font-medium text-muted-foreground">
{description}
</p>
</div>
<div className="mt-16 flex flex-col gap-6">
<Button type="button">
<FcGoogle />
{googleText}
</Button>
<div className="flex items-center gap-2">
<Separator className="flex-1" />
<span className="text-sm text-muted-foreground">
{dividerText}
</span>
<Separator className="flex-1" />
</div>
<div className="flex flex-col gap-2">
<Button type="button" variant="outline">
{emailButtonText}
</Button>
<Button
type="button"
variant="ghost"
className="text-muted-foreground hover:text-primary"
>
{ssoButtonText}
</Button>
</div>
</div>
</div>
<div className="mt-10 space-y-2">
<p className="text-sm text-muted-foreground">
{loginPromptText}{" "}
<a href={loginUrl} className="text-primary">
{loginLinkText}
</a>
</p>
<p className="text-sm text-muted-foreground">
{termsIntroText}{" "}
<a href={termsUrl} className="text-primary">
{termsLinkText}
</a>{" "}
{termsConnectorText}{" "}
<a href={privacyUrl} className="text-primary">
{privacyLinkText}
</a>
.
</p>
</div>
</div>
<div className="rounded-s-2xl border-border pt-14 lg:border-y lg:border-s lg:bg-muted/60 lg:py-8 lg:ps-12">
<div className="mx-auto flex max-w-xl justify-between gap-4 lg:mx-0 lg:max-w-none lg:justify-start lg:gap-8">
<div className="flex flex-row items-center gap-4">
<img
src="/block-media/shadcnblocks/block/logos/ph-monthly.svg"
alt={badgeMonthlyAlt}
className="h-10"
/>
<img
src="/block-media/shadcnblocks/block/logos/producthunt-badge.png"
alt={badgeProductHuntAlt}
className="h-10"
/>
</div>
</div>
<div className="mt-6 hidden rounded-s-xl border-y border-s border-dashed border-border bg-muted py-1.5 ps-1.5 lg:block">
<img
src="/block-media/shadcnblocks/block/placeholder-dark-1.svg"
alt={previewImageAlt}
className="max-h-[450px] w-full rounded-s-xl border-y border-s border-border object-cover"
/>
</div>
<div className="mt-8 me-3 hidden grid-cols-3 gap-3 lg:grid">
<div>
<FolderKanban className="mb-1 size-4" />
<p className="text-sm font-medium">{feature1Title}</p>
<p className="text-sm text-muted-foreground">
{feature1Description}
</p>
</div>
<div>
<CheckSquare className="mb-1 size-4" />
<p className="text-sm font-medium">{feature2Title}</p>
<p className="text-sm text-muted-foreground">
{feature2Description}
</p>
</div>
<div>
<Users className="mb-1 size-4" />
<p className="text-sm font-medium">{feature3Title}</p>
<p className="text-sm text-muted-foreground">
{feature3Description}
</p>
</div>
</div>
</div>
</div>
</div>
</section>
);
};
export { Signup7 };