{
  "version": 3,
  "sources": ["../../../src/index.ts"],
  "sourcesContent": ["import {\n  createPopper,\n  Instance,\n  Options,\n} from '@popperjs/core';\nimport {\n  createEffect,\n  createSignal,\n  onCleanup,\n} from 'solid-js';\n\nexport default function usePopper<Target extends HTMLElement, Popper extends HTMLElement>(\n  targetElement: () => Target | undefined | null,\n  popperElement: () => Popper | undefined | null,\n  options: Partial<Options> = {},\n): () => Instance | undefined {\n  const [current, setCurrent] = createSignal<Instance>();\n\n  createEffect(() => {\n    setCurrent(undefined);\n\n    const target = targetElement();\n    const popper = popperElement();\n\n    if (target && popper) {\n      const instance = createPopper(target, popper, {});\n  \n      setCurrent(instance);\n  \n      onCleanup(() => {\n        instance.destroy();\n      });\n    }\n  });\n\n  createEffect(() => {\n    const instance = current();\n\n    if (instance) {\n      instance.setOptions({\n        onFirstUpdate: options.onFirstUpdate,\n        placement: options.placement ?? 'bottom',\n        modifiers: options.modifiers ?? [],\n        strategy: options.strategy ?? 'absolute',\n      });\n    }\n  });\n\n  return () => {\n    const instance = current();\n    if (instance) {\n      return {\n        ...instance,\n      };\n    }\n    return undefined;\n  };\n}\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA,EACE;AAAA,OAGK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEQ,SAAR,UACL,eACA,eACA,UAA4B,CAAC,GACD;AAC5B,QAAM,CAAC,SAAS,UAAU,IAAI,aAAuB;AAErD,eAAa,MAAM;AACjB,eAAW,MAAS;AAEpB,UAAM,SAAS,cAAc;AAC7B,UAAM,SAAS,cAAc;AAE7B,QAAI,UAAU,QAAQ;AACpB,YAAM,WAAW,aAAa,QAAQ,QAAQ,CAAC,CAAC;AAEhD,iBAAW,QAAQ;AAEnB,gBAAU,MAAM;AACd,iBAAS,QAAQ;AAAA,MACnB,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AAED,eAAa,MAAM;AAnCrB;AAoCI,UAAM,WAAW,QAAQ;AAEzB,QAAI,UAAU;AACZ,eAAS,WAAW;AAAA,QAClB,eAAe,QAAQ;AAAA,QACvB,YAAW,aAAQ,cAAR,YAAqB;AAAA,QAChC,YAAW,aAAQ,cAAR,YAAqB,CAAC;AAAA,QACjC,WAAU,aAAQ,aAAR,YAAoB;AAAA,MAChC,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AAED,SAAO,MAAM;AACX,UAAM,WAAW,QAAQ;AACzB,QAAI,UAAU;AACZ,aAAO,mBACF;AAAA,IAEP;AACA,WAAO;AAAA,EACT;AACF;",
  "names": []
}
