Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 9 additions & 21 deletions frontend/src/components/common/HelpTooltip.vue
Original file line number Diff line number Diff line change
Expand Up @@ -22,44 +22,32 @@ function updatePosition() {
const el = triggerRef.value
if (!el) return
const rect = el.getBoundingClientRect()
console.log(rect)
tooltipStyle.value = {
top: `${rect.top + window.scrollY}px`,
top: `${rect.top}px`,
left: `${rect.left + rect.width / 2 + window.scrollX}px`,
}
}
</script>

<template>
<div
ref="trigger"
class="group relative ml-1 inline-flex items-center align-middle"
@mouseenter="onEnter"
@mouseleave="onLeave"
>
<div ref="trigger" class="group relative ml-1 inline-flex items-center align-middle" @mouseenter="onEnter"
@mouseleave="onLeave">
<!-- Trigger Icon -->
<slot name="trigger">
<svg
class="h-4 w-4 cursor-help text-gray-400 transition-colors hover:text-primary-600 dark:text-gray-500 dark:hover:text-primary-400"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
stroke-width="2"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
/>
fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
<path stroke-linecap="round" stroke-linejoin="round"
d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
</svg>
</slot>

<!-- Teleport to body to escape modal overflow clipping -->
<Teleport to="body">
<div
v-show="show"
<div v-show="show"
class="fixed z-[99999] w-64 -translate-x-1/2 -translate-y-full rounded-lg bg-gray-900 p-3 text-xs leading-relaxed text-white shadow-xl ring-1 ring-white/10 dark:bg-gray-800"
:style="{ top: `calc(${tooltipStyle.top} - 8px)`, left: tooltipStyle.left }"
>
:style="{ top: `calc(${tooltipStyle.top} - 8px)`, left: tooltipStyle.left }">
<slot>{{ content }}</slot>
<div class="absolute -bottom-1 left-1/2 h-2 w-2 -translate-x-1/2 rotate-45 bg-gray-900 dark:bg-gray-800"></div>
</div>
Expand Down
Loading