import { debounce } from '$shared/lib/utils'; /** * Default debounce delay used when no wait is provided. Picked to feel * snappy for typing while still coalescing API-bound side effects. */ export const DEFAULT_DEBOUNCE_MS = 300; /** * Creates reactive state with immediate and debounced values. * * Useful for UI inputs that need instant feedback but debounced logic * (e.g., search fields with API calls). The immediate value updates on * every change for UI binding, while debounced updates after a delay. * * @param initialValue - Initial value for both immediate and debounced state * @param wait - Delay in milliseconds before updating debounced value (default: 300) * @returns Object with immediate/debounced getters, immediate setter, and reset method * * @example * ```svelte * * * * *
Typing: {search.immediate}
*Searching: {search.debounced}
* ``` */ export function createDebouncedState