mouse-override icon: document in layout spec, switch glyph to CursorTextIcon#154
Conversation
…ment list and tiers The pane-header spec omitted the mouse-reporting override icon from both the element list and the responsive-tier breakdown. #148 made its tier behavior concrete (hidden at the minimal tier) without updating the spec. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Deploying mouseterm with
|
| Latest commit: |
38704ca
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://f3fd848a.mouseterm.pages.dev |
| Branch Preview URL: | https://fix-layout-spec-mouse-icon.mouseterm.pages.dev |
Replace SelectionSlashIcon with CursorTextIcon in the pane-header override indicator and update the layout and mouse-and-clipboard specs to match. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
dormouse-bot
left a comment
There was a problem hiding this comment.
The docs additions check out: I traced the render order in TerminalPaneHeader.tsx and the override-icon block (showMouseIcon && tier !== 'minimal') sits after the flexible-gap region and before the tier === 'full' split block — matching the new element-list position and the per-tier visibility now spelled out in layout.md. The SelectionSlashIcon → CursorTextIcon swap is consistent: no SelectionSlashIcon references remain anywhere, CursorTextIcon is already imported/used in MobileTerminalUi.tsx, and Build & Test is green.
One scope observation: the second commit (refactor(mouse): use CursorTextIcon…, 38704ca) changes the glyph users actually see when an override is active — a user-visible runtime change — but the PR title (docs(layout):) and the body ("Changes (docs only)" / "documentation-only change with no runtime behavior") predate it and now describe only the first commit. On a squash-merge that would file the icon change under docs. Worth refreshing the title/body to cover the icon refactor so the merged history reflects both concerns.
|
Addressed the scope observation from the review: refreshed the PR title and description so they cover the |
What
Two related changes to the mouse-reporting override indicator in the pane header.
1. Document the override icon in the layout spec. The pane-header section of
docs/specs/layout.mdomitted the mouse-reporting override icon entirely — it was absent from both the "Elements from left to right" list and the responsive-tier breakdown. The icon has lived in the header for a while (defined indocs/specs/mouse-and-clipboard.md), but #148 made its tier behavior concrete: it now drops at theminimaltier (showMouseIcon && tier !== 'minimal'inTerminalPaneHeader.tsx). That change updated the code without updating layout.md, leaving the placement/tier spec — which AGENTS.md designates as the source of truth for header element placement and sizing — incomplete.2. Switch the override glyph to
CursorTextIcon. While the override is active, the No-Mouse indicator previously rendered Phosphor'sSelectionSlashIcon; it now rendersCursorTextIcon. This is a user-visible runtime change to the glyph shown when an override is in effect. Themouse-and-clipboard.mdandlayout.mdspecs are updated to match.Changes
Docs (
docs/specs/layout.md,docs/specs/mouse-and-clipboard.md):docs/specs/mouse-and-clipboard.mdfor its visual states/behavior, mirroring how the bell and TODO pill point atalert.md.SelectionSlashIcontoCursorTextIcon.Runtime (
lib/src/components/wall/TerminalPaneHeader.tsx):SelectionSlashIconwithCursorTextIconfor the override indicator (import + render site).Verification
Cross-checked against the source: the render order in
lib/src/components/wall/TerminalPaneHeader.tsxplaces the icon between the flexible (flex-1 overflow-hidden) region and thetier === 'full'split/zoom block, gated ontier !== 'minimal'; tier thresholds (>280full,>160compact, else minimal) match theResizeObservercallback. Terminology (CursorClickIcon/CursorTextIcon, "Mouse icon") matchesmouse-and-clipboard.md.Build & Testis green.The icon swap has no automated test; it's a single-glyph substitution with no behavioral branch beyond the existing
inOverrideconditional.