45 lines
1.7 KiB
TypeScript
45 lines
1.7 KiB
TypeScript
"use client";
|
|
|
|
import { Compass, Fingerprint, Ticket, BadgeCheck } from "lucide-react";
|
|
import { useLanguage } from "@/components/language-provider";
|
|
import { Section, SectionHeading } from "@/components/ui/section";
|
|
import { STEPS } from "@/lib/content";
|
|
|
|
const ICONS = { compass: Compass, fingerprint: Fingerprint, ticket: Ticket, badgeCheck: BadgeCheck } as const;
|
|
|
|
export function How() {
|
|
const { t, lang } = useLanguage();
|
|
return (
|
|
<Section id="how" className="bg-white dark:bg-ink">
|
|
<div className="container-x">
|
|
<SectionHeading
|
|
eyebrow={t.how.eyebrow}
|
|
title={t.how.title}
|
|
subtitle={t.how.subtitle}
|
|
/>
|
|
<div className="grid gap-6 md:grid-cols-4">
|
|
{STEPS.map((s, i) => {
|
|
const Icon = ICONS[s.icon as keyof typeof ICONS];
|
|
return (
|
|
<div key={i} className="relative card">
|
|
<div className="flex items-center gap-3">
|
|
<div className="flex h-10 w-10 items-center justify-center rounded-xl bg-brand-500/10 text-brand-600 dark:bg-brand-500/15 dark:text-brand-300">
|
|
<Icon className="h-5 w-5" />
|
|
</div>
|
|
<span className="text-2xl font-bold text-slate-900/10 dark:text-white/15">0{i + 1}</span>
|
|
</div>
|
|
<h3 className="mt-4 text-base font-semibold text-slate-900 dark:text-white">
|
|
{s.title[lang]}
|
|
</h3>
|
|
<p className="mt-2 text-sm leading-relaxed text-slate-600 dark:text-slate-400">
|
|
{s.description[lang]}
|
|
</p>
|
|
</div>
|
|
);
|
|
})}
|
|
</div>
|
|
</div>
|
|
</Section>
|
|
);
|
|
}
|