{"version":3,"file":"ScrollAreaScrollbarHover.cjs","sources":["../../src/ScrollArea/ScrollAreaScrollbarHover.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ScrollAreaScrollbarAutoProps } from './ScrollAreaScrollbarAuto.vue'\n\nexport interface ScrollAreaScrollbarHoverProps extends ScrollAreaScrollbarAutoProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { onMounted, onUnmounted, ref } from 'vue'\nimport { injectScrollAreaRootContext } from './ScrollAreaRoot.vue'\nimport ScrollAreaScrollbarAuto from './ScrollAreaScrollbarAuto.vue'\nimport { Presence } from '@/Presence'\nimport { useForwardExpose } from '@/shared'\n\ndefineOptions({\n  inheritAttrs: false,\n})\n\ndefineProps<ScrollAreaScrollbarHoverProps>()\n\nconst rootContext = injectScrollAreaRootContext()\n\nconst { forwardRef } = useForwardExpose()\n\nlet timeout: ReturnType<typeof setTimeout> | undefined | number\nconst visible = ref(false)\n\nfunction handlePointerEnter() {\n  window.clearTimeout(timeout)\n  visible.value = true\n}\nfunction handlePointerLeave() {\n  timeout = window.setTimeout(() => {\n    visible.value = false\n  }, rootContext.scrollHideDelay.value)\n}\n\nonMounted(() => {\n  const scrollArea = rootContext.scrollArea.value\n\n  if (scrollArea) {\n    scrollArea.addEventListener('pointerenter', handlePointerEnter)\n    scrollArea.addEventListener('pointerleave', handlePointerLeave)\n  }\n})\n\nonUnmounted(() => {\n  const scrollArea = rootContext.scrollArea.value\n  if (scrollArea) {\n    window.clearTimeout(timeout)\n    scrollArea.removeEventListener('pointerenter', handlePointerEnter)\n    scrollArea.removeEventListener('pointerleave', handlePointerLeave)\n  }\n})\n</script>\n\n<template>\n  <Presence :present=\"forceMount || visible\">\n    <ScrollAreaScrollbarAuto\n      v-bind=\"$attrs\"\n      :ref=\"forwardRef\"\n      :data-state=\"visible ? 'visible' : 'hidden'\"\n    >\n      <slot />\n    </ScrollAreaScrollbarAuto>\n  </Presence>\n</template>\n"],"names":["injectScrollAreaRootContext","useForwardExpose","ref","onMounted","onUnmounted"],"mappings":";;;;;;;;;;;;;;;;;AAmBA,IAAA,MAAM,cAAcA,qDAA4B,EAAA;AAEhD,IAAM,MAAA,EAAE,UAAW,EAAA,GAAIC,wCAAiB,EAAA;AAExC,IAAI,IAAA,OAAA;AACJ,IAAM,MAAA,OAAA,GAAUC,QAAI,KAAK,CAAA;AAEzB,IAAA,SAAS,kBAAqB,GAAA;AAC5B,MAAA,MAAA,CAAO,aAAa,OAAO,CAAA;AAC3B,MAAA,OAAA,CAAQ,KAAQ,GAAA,IAAA;AAAA;AAElB,IAAA,SAAS,kBAAqB,GAAA;AAC5B,MAAU,OAAA,GAAA,MAAA,CAAO,WAAW,MAAM;AAChC,QAAA,OAAA,CAAQ,KAAQ,GAAA,KAAA;AAAA,OAClB,EAAG,WAAY,CAAA,eAAA,CAAgB,KAAK,CAAA;AAAA;AAGtC,IAAAC,aAAA,CAAU,MAAM;AACd,MAAM,MAAA,UAAA,GAAa,YAAY,UAAW,CAAA,KAAA;AAE1C,MAAA,IAAI,UAAY,EAAA;AACd,QAAW,UAAA,CAAA,gBAAA,CAAiB,gBAAgB,kBAAkB,CAAA;AAC9D,QAAW,UAAA,CAAA,gBAAA,CAAiB,gBAAgB,kBAAkB,CAAA;AAAA;AAChE,KACD,CAAA;AAED,IAAAC,eAAA,CAAY,MAAM;AAChB,MAAM,MAAA,UAAA,GAAa,YAAY,UAAW,CAAA,KAAA;AAC1C,MAAA,IAAI,UAAY,EAAA;AACd,QAAA,MAAA,CAAO,aAAa,OAAO,CAAA;AAC3B,QAAW,UAAA,CAAA,mBAAA,CAAoB,gBAAgB,kBAAkB,CAAA;AACjE,QAAW,UAAA,CAAA,mBAAA,CAAoB,gBAAgB,kBAAkB,CAAA;AAAA;AACnE,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;"}