{"version":3,"file":"useModalClose.mjs","sources":["../../../packages/modal/useModalClose.ts"],"sourcesContent":["import { MouseEvent, RefObject, useCallback, useRef } from 'react'\n\nexport const useModalClose = <T extends HTMLDivElement>(\n  callback?: () => void,\n): {\n  ref: RefObject<T>\n  handleClick: (event: MouseEvent<T>) => void\n} => {\n  const ref = useRef<T>(null)\n\n  const handleClick = useCallback(\n    (event: MouseEvent<T>) => {\n      const contentElement = ref.current\n\n      if (!contentElement) return\n      if (!(event.target instanceof Node)) return\n\n      if (contentElement.contains(event.target)) return\n\n      callback?.()\n    },\n    [callback],\n  )\n\n  return {\n    ref,\n    handleClick,\n  }\n}\n"],"names":["useModalClose","callback","ref","useRef","handleClick","useCallback","event","contentElement","current","target","Node","contains"],"mappings":";;AAEaA,MAAAA,aAAa,GACxBC,QAAqB,IAIlB;AACH,EAAA,MAAMC,GAAG,GAAGC,MAAM,CAAI,IAAI,CAAC,CAAA;AAE3B,EAAA,MAAMC,WAAW,GAAGC,WAAW,CAC5BC,KAAoB,IAAK;AACxB,IAAA,MAAMC,cAAc,GAAGL,GAAG,CAACM,OAAO,CAAA;IAElC,IAAI,CAACD,cAAc,EAAE,OAAA;AACrB,IAAA,IAAI,EAAED,KAAK,CAACG,MAAM,YAAYC,IAAI,CAAC,EAAE,OAAA;IAErC,IAAIH,cAAc,CAACI,QAAQ,CAACL,KAAK,CAACG,MAAM,CAAC,EAAE,OAAA;AAE3CR,IAAAA,QAAQ,IAAI,CAAA;AACd,GAAC,EACD,CAACA,QAAQ,CACX,CAAC,CAAA;EAED,OAAO;IACLC,GAAG;AACHE,IAAAA,WAAAA;GACD,CAAA;AACH;;;;"}