{"version":3,"sources":["../../../../src/sensors/useOnClickOutside/index.ts"],"sourcesContent":["\"use client\";\nimport { useScope } from \"@usels/core\";\nimport type { Fn } from \"@usels/core\";\nimport type { MaybeEventTarget } from \"../../types\";\nimport {\n  createOnClickOutside,\n  type OnClickOutsideHandler,\n  type OnClickOutsideOptions,\n  type OnClickOutsideReturn,\n} from \"./core\";\n\nexport { createOnClickOutside } from \"./core\";\nexport type { OnClickOutsideHandler, OnClickOutsideOptions, OnClickOutsideReturn } from \"./core\";\n\nexport type UseOnClickOutside = typeof createOnClickOutside;\n\nexport const useOnClickOutside: UseOnClickOutside = ((\n  target: MaybeEventTarget,\n  handler: OnClickOutsideHandler<OnClickOutsideOptions<boolean>>,\n  options: OnClickOutsideOptions<boolean> = {}\n): Fn | OnClickOutsideReturn => {\n  return useScope(\n    (p) => {\n      // Handler freshness via scope props — latest closure on each event dispatch.\n      const fresh: OnClickOutsideHandler<OnClickOutsideOptions<boolean>> = (ev) => {\n        const latest = p.handler as\n          | OnClickOutsideHandler<OnClickOutsideOptions<boolean>>\n          | undefined;\n        latest?.(ev);\n      };\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any -- overload dispatch requires casting\n      return (createOnClickOutside as any)(target, fresh, options) as Fn | OnClickOutsideReturn;\n    },\n    { handler }\n  );\n}) as UseOnClickOutside;\n"],"mappings":";AACA,SAAS,gBAAgB;AAGzB;AAAA,EACE;AAAA,OAIK;AAEP,SAAS,wBAAAA,6BAA4B;AAK9B,MAAM,qBAAwC,CACnD,QACA,SACA,UAA0C,CAAC,MACb;AAC9B,SAAO;AAAA,IACL,CAAC,MAAM;AAEL,YAAM,QAA+D,CAAC,OAAO;AAC3E,cAAM,SAAS,EAAE;AAGjB,iBAAS,EAAE;AAAA,MACb;AAEA,aAAQ,qBAA6B,QAAQ,OAAO,OAAO;AAAA,IAC7D;AAAA,IACA,EAAE,QAAQ;AAAA,EACZ;AACF;","names":["createOnClickOutside"]}