import { clsx, type ClassValue } from 'clsx' import { twMerge } from 'tailwind-merge' export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)) } export function debounce void>( func: T, delay: number ): T { let timeoutId: ReturnType return function (this: any, ...args: Parameters) { clearTimeout(timeoutId) timeoutId = setTimeout(() => func.apply(this, args), delay) } as T }