{"version":3,"file":"use-window-size.cjs","names":[],"sources":["../../src/hooks/use-window-size.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\n\nexport interface WindowSize {\n    width: number;\n    height: number;\n}\n\n/**\n * Reactive window dimensions. SSR-safe — returns `{ width: 0, height: 0 }`\n * until the first client render.\n *\n * @example\n * const { width, height } = useWindowSize();\n * const columns = width < 640 ? 1 : width < 1024 ? 2 : 3;\n */\nexport function useWindowSize(): WindowSize {\n    const [size, setSize] = useState<WindowSize>(() =>\n        typeof window === \"undefined\"\n            ? { width: 0, height: 0 }\n            : { width: window.innerWidth, height: window.innerHeight },\n    );\n\n    useEffect(() => {\n        if (typeof window === \"undefined\") return;\n        const onResize = (): void =>\n            setSize({ width: window.innerWidth, height: window.innerHeight });\n        onResize();\n        window.addEventListener(\"resize\", onResize, { passive: true });\n        return () => window.removeEventListener(\"resize\", onResize);\n    }, []);\n\n    return size;\n}\n"],"mappings":"uBAeA,SAAgB,GAA4B,CACxC,GAAM,CAAC,EAAM,IAAA,EAAW,EAAA,SAAA,KACpB,OAAO,OAAW,IACZ,CAAE,MAAO,EAAG,OAAQ,CAAE,EACtB,CAAE,MAAO,OAAO,WAAY,OAAQ,OAAO,WAAY,CACjE,EAWA,OATA,EAAA,EAAA,UAAA,KAAgB,CACZ,GAAI,OAAO,OAAW,IAAa,OACnC,IAAM,MACF,EAAQ,CAAE,MAAO,OAAO,WAAY,OAAQ,OAAO,WAAY,CAAC,EAGpE,OAFA,EAAS,EACT,OAAO,iBAAiB,SAAU,EAAU,CAAE,QAAS,EAAK,CAAC,MAChD,OAAO,oBAAoB,SAAU,CAAQ,CAC9D,EAAG,CAAC,CAAC,EAEE,CACX"}