reka-ui
Version:
Vue port for Radix UI Primitives.
1 lines • 1.91 kB
Source Map (JSON)
{"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}