From 7e73c505f8ed9e5eec3ae5a41cc7ef9a56e4d58f Mon Sep 17 00:00:00 2001 From: Maya Date: Sat, 22 Nov 2025 17:41:44 +0300 Subject: [PATCH] fix: tooltip persisting --- src/lib/components/visual/Tooltip.svelte | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/lib/components/visual/Tooltip.svelte b/src/lib/components/visual/Tooltip.svelte index edeba94..3ca218f 100644 --- a/src/lib/components/visual/Tooltip.svelte +++ b/src/lib/components/visual/Tooltip.svelte @@ -54,15 +54,30 @@ if (timeout) clearTimeout(timeout); } + function handleGlobalMouseMove(e: MouseEvent) { + if (!showTooltip || !triggerElement) return; + + const triggerRect = triggerElement.getBoundingClientRect(); + const isOverTrigger = + e.clientX >= triggerRect.left && + e.clientX <= triggerRect.right && + e.clientY >= triggerRect.top && + e.clientY <= triggerRect.bottom; + + if (!isOverTrigger) hide(); + } + $effect(() => { if (showTooltip && tooltipElement) { document.body.appendChild(tooltipElement); + document.addEventListener("mousemove", handleGlobalMouseMove); } return () => { if (tooltipElement && tooltipElement.parentNode === document.body) { document.body.removeChild(tooltipElement); } + document.removeEventListener("mousemove", handleGlobalMouseMove); }; });