{"version":3,"file":"useHover.mjs","sources":["../../../../src/composables/useHover.ts"],"sourcesContent":["import { ref, Ref, watch, onMounted } from 'vue'\n\nimport { useHTMLElement, useEvent } from './'\n\nexport function useHover (el?: Ref<HTMLElement | null | undefined>, disabled?: Ref<boolean>) {\n  const isHovered = ref(false)\n\n  const onMouseEnter = () => {\n    if (disabled?.value) { return }\n    isHovered.value = true\n  }\n  const onMouseLeave = () => { isHovered.value = false }\n\n  disabled && watch(disabled, (v) => {\n    if (v) { isHovered.value = false }\n  })\n\n  const target = useHTMLElement(el as Ref<HTMLElement>)\n\n  useEvent('mouseenter', onMouseEnter, target)\n  useEvent('mouseleave', onMouseLeave, target)\n\n  return { isHovered, onMouseEnter, onMouseLeave }\n}\n"],"names":[],"mappings":";;;AAIgB,SAAA,SAAU,IAA0C,UAAyB;AACrF,QAAA,YAAY,IAAI,KAAK;AAE3B,QAAM,eAAe,MAAM;AACzB,QAAI,qCAAU,OAAO;AAAE;AAAA,IAAO;AAC9B,cAAU,QAAQ;AAAA,EAAA;AAEpB,QAAM,eAAe,MAAM;AAAE,cAAU,QAAQ;AAAA,EAAA;AAEnC,cAAA,MAAM,UAAU,CAAC,MAAM;AACjC,QAAI,GAAG;AAAE,gBAAU,QAAQ;AAAA,IAAM;AAAA,EAAA,CAClC;AAEK,QAAA,SAAS,eAAe,EAAsB;AAE3C,WAAA,cAAc,cAAc,MAAM;AAClC,WAAA,cAAc,cAAc,MAAM;AAEpC,SAAA,EAAE,WAAW,cAAc;AACpC;"}