{"version":3,"file":"HoverCardTrigger.cjs","sources":["../../src/HoverCard/HoverCardTrigger.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface HoverCardTriggerProps extends PopperAnchorProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { injectHoverCardRootContext } from './HoverCardRoot.vue'\nimport { Primitive } from '@/Primitive'\nimport { PopperAnchor, type PopperAnchorProps } from '@/Popper'\nimport { useForwardExpose } from '@/shared'\nimport { excludeTouch } from './utils'\n\nwithDefaults(defineProps<HoverCardTriggerProps>(), {\n  as: 'a',\n})\n\nconst { forwardRef, currentElement } = useForwardExpose()\nconst rootContext = injectHoverCardRootContext()\nrootContext.triggerElement = currentElement\n\nfunction handleLeave() {\n  setTimeout(() => {\n    if (!rootContext.isPointerInTransitRef.value && !rootContext.open.value) {\n      rootContext.onClose()\n    }\n  }, 0)\n}\n</script>\n\n<template>\n  <PopperAnchor\n    as-child\n    :reference=\"reference\"\n  >\n    <Primitive\n      :ref=\"forwardRef\"\n      :as-child=\"asChild\"\n      :as=\"as\"\n      :data-state=\"rootContext.open.value ? 'open' : 'closed'\"\n      data-grace-area-trigger\n      @pointerenter=\"excludeTouch(rootContext.onOpen)($event)\"\n      @pointerleave=\"excludeTouch(handleLeave)($event)\"\n      @focus=\"rootContext.onOpen()\"\n      @blur=\"rootContext.onClose()\"\n    >\n      <slot />\n    </Primitive>\n  </PopperAnchor>\n</template>\n"],"names":["useForwardExpose","injectHoverCardRootContext"],"mappings":";;;;;;;;;;;;;;;;;AAeA,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAIA,wCAAiB,EAAA;AACxD,IAAA,MAAM,cAAcC,kDAA2B,EAAA;AAC/C,IAAA,WAAA,CAAY,cAAiB,GAAA,cAAA;AAE7B,IAAA,SAAS,WAAc,GAAA;AACrB,MAAA,UAAA,CAAW,MAAM;AACf,QAAA,IAAI,CAAC,WAAY,CAAA,qBAAA,CAAsB,SAAS,CAAC,WAAA,CAAY,KAAK,KAAO,EAAA;AACvE,UAAA,WAAA,CAAY,OAAQ,EAAA;AAAA;AACtB,SACC,CAAC,CAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}