natus tooltip: fix portal placement + viewport clamping + SVG sign icon
All checks were successful
ci/woodpecker/push/pyswiss Pipeline was successful
ci/woodpecker/push/main Pipeline was successful

- Move #id_natus_tooltip out of #id_applets_container (container-type:
  inline-size breaks position:fixed) → add to home.html alongside
  #id_tooltip_portal
- Move #id_natus_tooltip out of .natus-modal-wrap (transform breaks
  position:fixed) → place as sibling of .natus-overlay in room.html
- Add _positionTooltip() helper in natus-wheel.js: flips tooltip to
  left of cursor when it would overflow right edge; clamps both axes
- Replace hardcoded 280px in dashboard.js palette tooltip with measured
  offsetWidth; add left-edge floor (Math.max margin)
- Planet tooltip format: @14.0° Capricorn (<svg-icon>) using preloaded
  _signPaths; falls back to unicode symbol if not yet loaded
- Add .tt-sign-icon SCSS: fill:currentColor, vertical-align:middle

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Disco DeDisco
2026-04-18 14:02:49 -04:00
parent f15b17f7bd
commit 09ed64080b
7 changed files with 40 additions and 17 deletions

View File

@@ -49,8 +49,10 @@ const bindPaletteSwatches = () => {
portal.style.display = 'block';
portal.style.position = 'fixed';
portal.style.top = `${rect.bottom + 8}px`;
portal.style.left = `${Math.min(rect.left, window.innerWidth - 280)}px`;
portal.style.zIndex = '9999';
const margin = 8;
const ttW = portal.offsetWidth;
portal.style.left = `${Math.max(margin, Math.min(rect.left, window.innerWidth - ttW - margin))}px`;
}
function hideTooltip() {