import { type ClassValue, clsx } from "clsx";
import { twMerge } from "tailwind-merge";
import type { CardStyleVariant } from "@/providers/themeProvider/config/types";

export function cn(...inputs: (string | undefined | null | false)[]) {
  return inputs.filter(Boolean).join(" ");
}

export function cls(...inputs: ClassValue[]) {
  return twMerge(clsx(inputs));
}

// Check if text should use inverted color based on cardStyle
export function shouldUseInvertedText(useInvertedBackground: "noInvert" | "invertDefault" | "invertCard" | undefined, cardStyle: CardStyleVariant): boolean {
  if (!useInvertedBackground || useInvertedBackground === "noInvert") return false;

  const lightCardStyles: CardStyleVariant[] = [
    "solid-accent-light",
    "solid-accent",
    "elevated-accent",
    "elevated-accent-light"
  ];

  return lightCardStyles.includes(cardStyle);
}
