/** biome-ignore-all lint/suspicious/noExplicitAny: generic debounce helper */ // https://decipher.dev/30-seconds-of-typescript/docs/debounce/ export function debounce any>( fn: T, wait: number = 300, ): (...args: Parameters) => void { let timeout: ReturnType return function (this: any, ...args: Parameters) { clearTimeout(timeout) timeout = setTimeout(() => fn.apply(this, args), wait) } }