"use client";
import { useEffect, useRef, useState } from "react";
//#region packages/@mantine/hooks/src/use-idle/use-idle.ts
const DEFAULT_OPTIONS = {
	events: [
		"keydown",
		"mousemove",
		"touchmove",
		"click",
		"scroll",
		"wheel"
	],
	initialState: true
};
function useIdle(timeout, options) {
	const { events, initialState } = {
		...DEFAULT_OPTIONS,
		...options
	};
	const [idle, setIdle] = useState(initialState);
	const timer = useRef(-1);
	useEffect(() => {
		const handleEvents = () => {
			setIdle(false);
			if (timer.current) window.clearTimeout(timer.current);
			timer.current = window.setTimeout(() => {
				setIdle(true);
			}, timeout);
		};
		events.forEach((event) => document.addEventListener(event, handleEvents));
		timer.current = window.setTimeout(() => {
			setIdle(true);
		}, timeout);
		return () => {
			events.forEach((event) => document.removeEventListener(event, handleEvents));
			window.clearTimeout(timer.current);
			timer.current = -1;
		};
	}, [timeout]);
	return idle;
}
//#endregion
export { useIdle };

//# sourceMappingURL=use-idle.mjs.map