{"version":3,"sources":["../../../../src/elements/useDocumentVisibility/core.ts"],"sourcesContent":["import { observable, type Observable } from \"@legendapp/state\";\nimport { onMount } from \"@usels/core\";\nimport { defaultDocument } from \"@shared/configurable\";\n\n/**\n * Framework-agnostic reactive document visibility state.\n *\n * Tracks the browser tab's visibility state (`'visible'` or `'hidden'`).\n * Returns a writable `Observable<DocumentVisibilityState>` that updates\n * automatically when the user switches tabs or minimizes the window.\n *\n * SSR-safe: returns `'visible'` when `document` is not available.\n *\n * @returns `Observable<DocumentVisibilityState>` — reflects current tab visibility.\n */\nexport function createDocumentVisibility(): Observable<DocumentVisibilityState> {\n  // Always initialize with 'visible' to match SSR output and avoid hydration mismatch.\n  // The actual value is synced after mount.\n  const visibility$ = observable<DocumentVisibilityState>(\"visible\");\n\n  onMount(() => {\n    if (!defaultDocument) return;\n\n    visibility$.set(defaultDocument.visibilityState);\n\n    const handler = () => {\n      visibility$.set(defaultDocument!.visibilityState);\n    };\n\n    defaultDocument.addEventListener(\"visibilitychange\", handler, { passive: true });\n\n    return () => {\n      defaultDocument!.removeEventListener(\"visibilitychange\", handler);\n    };\n  });\n\n  return visibility$;\n}\n"],"mappings":"AAAA,SAAS,kBAAmC;AAC5C,SAAS,eAAe;AACxB,SAAS,uBAAuB;AAazB,SAAS,2BAAgE;AAG9E,QAAM,cAAc,WAAoC,SAAS;AAEjE,UAAQ,MAAM;AACZ,QAAI,CAAC,gBAAiB;AAEtB,gBAAY,IAAI,gBAAgB,eAAe;AAE/C,UAAM,UAAU,MAAM;AACpB,kBAAY,IAAI,gBAAiB,eAAe;AAAA,IAClD;AAEA,oBAAgB,iBAAiB,oBAAoB,SAAS,EAAE,SAAS,KAAK,CAAC;AAE/E,WAAO,MAAM;AACX,sBAAiB,oBAAoB,oBAAoB,OAAO;AAAA,IAClE;AAAA,EACF,CAAC;AAED,SAAO;AACT;","names":[]}