File size: 1,444 Bytes
ac4a6d6 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | import { FileText, ArrowRight } from 'lucide-react';
import { cn } from '../lib/utils';
interface RedactionCardProps {
icon: typeof FileText;
title: string;
description: string;
onClick: () => void;
}
export function RedactionCard({ icon: Icon, title, description, onClick }: RedactionCardProps) {
return (
<button
onClick={onClick}
className={cn(
"group relative p-6 rounded-sm transition-all duration-200 text-left w-full font-mono",
"bg-slate-900 border border-slate-800",
"hover:border-red-500 hover:shadow-lg hover:-translate-y-0.5"
)}
>
<div className="flex items-center justify-between mb-4">
<div className="inline-flex p-3 rounded-sm bg-slate-950 border border-slate-800 text-red-500 group-hover:bg-red-600 group-hover:text-white transition-colors shadow-sm">
<Icon className="w-6 h-6" />
</div>
</div>
<div className="flex items-center justify-between gap-2 mb-2">
<h3 className="text-lg font-bold text-white group-hover:text-red-400 transition-colors font-sans">
{title}
</h3>
<ArrowRight className="w-5 h-5 text-slate-500 opacity-0 -translate-x-2 group-hover:opacity-100 group-hover:translate-x-0 group-hover:text-red-500 transition-all" />
</div>
<p className="text-slate-400 text-sm leading-relaxed font-sans">
{description}
</p>
</button>
);
} |