import React, { ReactNode } from "react"; import * as Icons from "lucide-react"; type IconName = keyof typeof Icons; // Props untuk Card utama interface CardProps { children: ReactNode; } // Props untuk CardTitle interface CardTitleProps { title: string; icon?: IconName; // Properti ikon berupa nama ikon yang valid } // Props untuk CardDescription interface CardDescriptionProps { description: string; } // Komponen Card Utama const Card: React.FC & { Title: React.FC; Description: React.FC; } = ({ children }) => { return (
{children}
); }; // Komponen Card Title Card.Title = ({ title, icon }: CardTitleProps) => { const Icon = icon ? (Icons[icon] as React.FC<{ className?: string }>) : null; // Tipe eksplisit sebagai React.FC return (
{Icon && } {/* Render ikon jika ada */}

{title}

); }; // Menambahkan displayName untuk Card.Title Card.Title.displayName = "CardTitle"; // Komponen Card Description Card.Description = ({ description }: CardDescriptionProps) => (

{description}

); // Menambahkan displayName untuk Card.Description Card.Description.displayName = "CardDescription"; export default Card;