import { ref, watch, type Ref } from 'vue' /** Debounced mirror of a ref (no @vueuse dependency). */ export function refDebounced(source: Ref, ms: number): Ref { const debounced = ref(source.value) as Ref let timer: ReturnType | undefined watch( source, (v) => { if (timer) clearTimeout(timer) timer = setTimeout(() => { debounced.value = v }, ms) }, { flush: 'sync' } ) return debounced }