/* Copyright (C) 2024 Manuel Bustillo*/ import clsx from "clsx" import { Icon } from "../../types"; import * as HeroIcon from '@heroicons/react/24/outline' type Style = "green" | "blue" | "red" | "orange" | "gray" const colorClasses = (style: Style) => { switch (style) { case "green": return "bg-green-700 hover:bg-green-800" case "blue": return "bg-blue-500 hover:bg-blue-700" case "red": return "bg-red-600 hover:bg-red-700" case "orange": return "bg-orange-600 hover:bg-orange-700" case "gray": return "bg-gray-600 hover:bg-gray-700" } } export async function MainCard({ amount, title, subtitle, style, iconName }: { amount: string, title: string, subtitle?: string, style: Style, iconName: keyof typeof HeroIcon }) { return ( <div className={`w-80 m-1 py-2 px-6 text-white flex flex-row items-center ${colorClasses(style)}`}> <Icon className="m-3 h-14 w-14" name={iconName} /> <div className="flex flex-col justify-evenly"> <div className="text-4xl font-medium">{amount}</div> <div className="text-xl">{title}</div> <div className="text-sm">{subtitle || 'ㅤ'}</div> </div> </div> ); } export async function SecondaryCard({ amount, title, iconName, style }: { amount: string, title: string, iconName: keyof typeof HeroIcon, style: Style }) { return ( <div className={`h-12 w-80 m-1 p-2 text-white flex flex-row items-center ${colorClasses(style)}`}> <Icon className="m-3 h-7 w-7" name={iconName} /> <span className="text-2xl font-medium mx-1">{amount}</span> <span className="text-l mx-1">{title}</span> </div> ); }