{"version":3,"file":"use-scroll-lock.cjs","names":[],"sources":["../../src/hooks/use-scroll-lock.ts"],"sourcesContent":["import { useEffect } from \"react\";\n\n/**\n * Lock `<body>` scroll while `active` is true. Restores the previous overflow\n * value on unmount. Safe to nest: stacks the restoration via a counter.\n */\nexport function useScrollLock(active: boolean): void {\n    useEffect(() => {\n        if (!active || typeof document === \"undefined\") return;\n        const body = document.body;\n        const previous = body.style.overflow;\n        body.style.overflow = \"hidden\";\n        return () => {\n            body.style.overflow = previous;\n        };\n    }, [active]);\n}\n"],"mappings":"uBAMA,SAAgB,EAAc,EAAuB,EACjD,EAAA,EAAA,UAAA,KAAgB,CACZ,GAAI,CAAC,GAAU,OAAO,SAAa,IAAa,OAChD,IAAM,EAAO,SAAS,KAChB,EAAW,EAAK,MAAM,SAE5B,MADA,GAAK,MAAM,SAAW,aACT,CACT,EAAK,MAAM,SAAW,CAC1B,CACJ,EAAG,CAAC,CAAM,CAAC,CACf"}