UNPKG

@zag-js/dom-query

Version:

The dom helper library for zag.js machines

34 lines (32 loc) 877 B
import "./chunk-QZ7TP4HQ.mjs"; // src/pointer-lock.ts import { addDomEvent } from "./event.mjs"; function requestPointerLock(doc, fn) { const body = doc.body; const supported = "pointerLockElement" in doc || "mozPointerLockElement" in doc; const isLocked = () => !!doc.pointerLockElement; function onPointerChange() { fn?.(isLocked()); } function onPointerError(event) { if (isLocked()) fn?.(false); console.error("PointerLock error occurred:", event); doc.exitPointerLock(); } if (!supported) return; try { body.requestPointerLock(); } catch { } const cleanup = [ addDomEvent(doc, "pointerlockchange", onPointerChange, false), addDomEvent(doc, "pointerlockerror", onPointerError, false) ]; return () => { cleanup.forEach((cleanup2) => cleanup2()); doc.exitPointerLock(); }; } export { requestPointerLock };