{"version":3,"sources":["../src/useOnClickOutside.ts","../src/utils/isBrowser.ts"],"sourcesContent":["import { useEffect } from \"react\";\nimport { isBrowser } from \"./utils/isBrowser\";\n\nexport const useOnClickOutside = <\n  E extends Element | null | undefined = HTMLElement,\n>(\n  ref: React.RefObject<E>,\n  handler?: (event: MouseEvent | TouchEvent) => void,\n) => {\n  useEffect(() => {\n    if (!isBrowser) {\n      return;\n    }\n    if (!handler) {\n      return;\n    }\n    const listener = (event: MouseEvent | TouchEvent) => {\n      if (!ref.current || ref.current.contains(event.target as Node)) {\n        return;\n      }\n\n      handler(event);\n    };\n\n    document.addEventListener(\"mousedown\", listener, { passive: true });\n    document.addEventListener(\"touchstart\", listener, { passive: true });\n\n    return () => {\n      document.removeEventListener(\"mousedown\", listener);\n      document.removeEventListener(\"touchstart\", listener);\n    };\n  }, [handler, ref]);\n};\n","export const isBrowser =\n  typeof window !== \"undefined\" &&\n  typeof document !== \"undefined\" &&\n  window.document === document;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA0B;;;ACAnB,IAAM,YACX,OAAO,WAAW,eAClB,OAAO,aAAa,eACpB,OAAO,aAAa;;;ADAf,IAAM,oBAAoB,CAG/B,KACA,YACG;AACH,8BAAU,MAAM;AACd,QAAI,CAAC,WAAW;AACd;AAAA,IACF;AACA,QAAI,CAAC,SAAS;AACZ;AAAA,IACF;AACA,UAAM,WAAW,CAAC,UAAmC;AACnD,UAAI,CAAC,IAAI,WAAW,IAAI,QAAQ,SAAS,MAAM,MAAc,GAAG;AAC9D;AAAA,MACF;AAEA,cAAQ,KAAK;AAAA,IACf;AAEA,aAAS,iBAAiB,aAAa,UAAU,EAAE,SAAS,KAAK,CAAC;AAClE,aAAS,iBAAiB,cAAc,UAAU,EAAE,SAAS,KAAK,CAAC;AAEnE,WAAO,MAAM;AACX,eAAS,oBAAoB,aAAa,QAAQ;AAClD,eAAS,oBAAoB,cAAc,QAAQ;AAAA,IACrD;AAAA,EACF,GAAG,CAAC,SAAS,GAAG,CAAC;AACnB;","names":[]}