/** * Utility functions for the web application */ import { type ClassValue, clsx } from 'clsx'; import { twMerge } from 'tailwind-merge'; /** * Merge Tailwind CSS classes with proper precedence * * Uses clsx for conditional classes and tailwind-merge to handle conflicts * * @example * ```tsx * cn('bg-red-500', isActive && 'bg-blue-500') // 'bg-blue-500' if active * cn('p-4', className) // Merges with user-provided className * ``` */ export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)); }