diff --git a/web/src/lib/components/ui/tooltip/Tooltip.svelte b/web/src/lib/components/ui/tooltip/Tooltip.svelte index 59567e1d..e425aa1b 100644 --- a/web/src/lib/components/ui/tooltip/Tooltip.svelte +++ b/web/src/lib/components/ui/tooltip/Tooltip.svelte @@ -3,9 +3,42 @@ export let position: 'top' | 'bottom' | 'left' | 'right' = 'top'; let tooltipVisible = false; - let tooltipElement: HTMLDivElement; + let triggerElement: HTMLDivElement; + let tooltipStyle = ''; + + function calculatePosition() { + if (!triggerElement) return; + + const rect = triggerElement.getBoundingClientRect(); + const gap = 8; + + let top = 0; + let left = 0; + + switch (position) { + case 'top': + top = rect.top - gap; + left = rect.left + rect.width / 2; + break; + case 'bottom': + top = rect.bottom + gap; + left = rect.left + rect.width / 2; + break; + case 'left': + top = rect.top + rect.height / 2; + left = rect.left - gap; + break; + case 'right': + top = rect.top + rect.height / 2; + left = rect.right + gap; + break; + } + + tooltipStyle = `top: ${top}px; left: ${left}px;`; + } function showTooltip() { + calculatePosition(); tooltipVisible = true; } @@ -16,7 +49,8 @@