import type {LucideIcon} from "lucide-react"; /** * Basic definitions used by all Button types, such as Button.tsx and ButtonLink.tsx */ export type BasicButtonProps = { /** Optional Lucide icon (e.g. Plus, X, Check) */ icon?: LucideIcon; text?: string; buttonType?: ButtonType; /** Optional additional style */ className?: string; } export const basicButtonStyle = "px-4 py-2 shadow-md rounded-lg whitespace-nowrap disabled:opacity-50 disabled:cursor-not-allowed" /** * Define button types here. * Export as enum like class. */ export const ButtonType = { DarkButton: { textColor: "text-white", backgroundColor: "bg-gray-600 hover:bg-gray-800", }, PrimaryButton: { textColor: "text-gray-600", backgroundColor: "bg-blue-300 hover:bg-blue-400", }, DefaultButton: { textColor: "text-gray-600", backgroundColor: "bg-gray-300 hover:bg-gray-400", }, TransparentButton: { textColor: "text-gray-600", backgroundColor: "bg-transparent hover:bg-transparent", }, } as const; export type ButtonType = typeof ButtonType[keyof typeof ButtonType];