diff --git a/src/lib/components/Tooltip.svelte b/src/lib/components/Tooltip.svelte index 245179ef..74f44fe8 100644 --- a/src/lib/components/Tooltip.svelte +++ b/src/lib/components/Tooltip.svelte @@ -77,26 +77,8 @@ break; } - // Clamp horizontal position to keep tooltip within viewport - if (finalPosition === 'bottom' || finalPosition === 'top') { - const halfWidth = tooltipMaxWidth / 2; - if (x - halfWidth < padding) { - x = padding + halfWidth; - } else if (x + halfWidth > window.innerWidth - padding) { - x = window.innerWidth - padding - halfWidth; - } - } - - // Clamp vertical position for left/right tooltips - if (finalPosition === 'left' || finalPosition === 'right') { - const halfHeight = tooltipHeight / 2; - if (y - halfHeight < padding) { - y = padding + halfHeight; - } else if (y + halfHeight > window.innerHeight - padding) { - y = window.innerHeight - padding - halfHeight; - } - } - + // Viewport clamping happens in the component after render, + // where the actual tooltip dimensions can be measured. tooltipStore.set({ text, shortcut, maxWidth, x, y, visible: true, position: finalPosition }); }, 50); } @@ -152,21 +134,51 @@ -{#if state.visible} +{#if tip.visible}
- {state.text} - {#if state.shortcut} - {state.shortcut} + {tip.text} + {#if tip.shortcut} + {tip.shortcut} {/if}
{/if} diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 9f93dc74..028d05a5 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1366,11 +1366,6 @@ - - -
@@ -1840,27 +1835,6 @@ .editor-nav .brand { margin-right: var(--space-xs); } /* Push the top-anchored floating overlays below the fixed nav. */ .app.has-nav .subsystem-breadcrumb { top: calc(var(--space-md) + var(--header-height)); } - .app.has-nav .logo-overlay { top: calc(var(--space-md) + var(--header-height)); } - - /* Logo overlay — stays over the canvas, below the fixed nav. */ - .logo-overlay { - position: fixed; - top: var(--space-md); - left: var(--space-md); - z-index: 100; - background: none; - border: none; - padding: 0; - cursor: pointer; - } - .logo-overlay img { - height: 44px; - width: auto; - transition: opacity var(--transition-fast); - } - .logo-overlay:hover img { - opacity: 0.8; - } .toolbar-btn { width: var(--header-height); @@ -2064,7 +2038,6 @@ pointer-events: none; } - /* Logo overlay */ /* Subsystem breadcrumb navigation */ .subsystem-breadcrumb { position: fixed;