c16942777d
F1: extract the navbar-visibility crux (width/height 0 or right<=0 -> hidden) from getNavbarRect into a pure isNavbarRectVisible in dock-helpers.ts + 3 tests; getNavbarRect calls it (identical null cases). F2: base the dock/undock button's label/icon/title on the effective useDock state (docked && dockRect present) rather than the raw docked flag, so a docked window that fell back to floating (collapsed sidebar) doesn't show 'Undock'. Toggle action unchanged; no remount. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>