reka-ui
Version:
Vue port for Radix UI Primitives.
56 lines (52 loc) • 1.87 kB
JavaScript
'use strict';
const vue = require('vue');
const shared = require('@vueuse/shared');
const shared_createContext = require('../shared/createContext.cjs');
const shared_useForwardExpose = require('../shared/useForwardExpose.cjs');
const [injectTooltipProviderContext, provideTooltipProviderContext] = shared_createContext.createContext("TooltipProvider");
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
...{
inheritAttrs: false
},
__name: "TooltipProvider",
props: {
delayDuration: { default: 700 },
skipDelayDuration: { default: 300 },
disableHoverableContent: { type: Boolean, default: false },
disableClosingTrigger: { type: Boolean },
disabled: { type: Boolean },
ignoreNonKeyboardFocus: { type: Boolean, default: false }
},
setup(__props) {
const props = __props;
const { delayDuration, skipDelayDuration, disableHoverableContent, disableClosingTrigger, ignoreNonKeyboardFocus, disabled } = vue.toRefs(props);
shared_useForwardExpose.useForwardExpose();
const isOpenDelayed = vue.ref(true);
const isPointerInTransitRef = vue.ref(false);
const { start: startTimer, stop: clearTimer } = shared.useTimeoutFn(() => {
isOpenDelayed.value = true;
}, skipDelayDuration, { immediate: false });
provideTooltipProviderContext({
isOpenDelayed,
delayDuration,
onOpen() {
clearTimer();
isOpenDelayed.value = false;
},
onClose() {
startTimer();
},
isPointerInTransitRef,
disableHoverableContent,
disableClosingTrigger,
disabled,
ignoreNonKeyboardFocus
});
return (_ctx, _cache) => {
return vue.renderSlot(_ctx.$slots, "default");
};
}
});
exports._sfc_main = _sfc_main;
exports.injectTooltipProviderContext = injectTooltipProviderContext;
//# sourceMappingURL=TooltipProvider.cjs.map