Anchored tooltips gain hover intent: show delay, warm window, tooltip-delay attribute#130
Open
ctate wants to merge 5 commits into
Open
Anchored tooltips gain hover intent: show delay, warm window, tooltip-delay attribute#130ctate wants to merge 5 commits into
ctate wants to merge 5 commits into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
- ui_schema: tooltip (39) becomes anchorable; fresh attr code 80 tooltip-delay (.whole, field tooltip_delay) with the pins test re-pinned for the addition - Options/Widget carry tooltip_delay (ms; -1 follows the new ControlMetricTokens tooltip_show_delay_ms/tooltip_warm_window_ms defaults of 700/300) - Validator scopes tooltip-delay to tooltip beside anchor with teaching messages, mirrored in the LSP/docs attribute tables and covered in ui_markup_tests Co-authored-by: Marcus Schiesser <17126+marcusschiesser@users.noreply.github.com>
- Anchored tooltips become runtime-owned chrome: adoption stamps them hidden, hover on their trigger arms the show delay, leaving disarms, a dwell past the deadline shows on the presented frame's recorded timestamp, and hiding opens the shared warm window that shows the next trigger's tooltip instantly - Every transition steps on journaled input/frame timestamps (canvasRenderAnimationStartNsForView at pointer dispatch, GpuSurfaceFrameEvent.timestamp_ns at frame advance) and an armed delay rides the render-animation frame pump, so recorded sweeps replay byte-identically - Escape dismissal clears the intent machine with the surface, and five behavior tests cover sweep-shows-nothing, dwell-shows, leave-disarms, warm transfer/expiry, and tooltip-delay=0
- Interpreter test: anchor + tooltip-delay stamp the widget declaration, the token-default and static leaves keep -1/null so existing documents lower byte-identically - Compiled-vs-interpreter parity: identical trees and identical anchor/delay stamps across both engines for declared, defaulted, and static tooltips
- The markup e2e fixture gains an anchored tooltip (tooltip-delay="200") on the Add trigger through the stack pattern - A recorded dwell arms, shows on the frame at the deadline, and hides on leave; two recordings are byte-identical and the replay verifies every per-frame fingerprint checkpoint on the journaled clock
… skill - Tooltip reference page teaches the anchored stack pattern, the 700ms/300ms hover-intent windows, tooltip-delay=0, and gains the scoped attribute table (tooltip joins the anchor family in the generated vocab) - native-ui skill enumerates anchor on tooltip and the tooltip-delay attribute; changelog fragment tells the feature story
ab1b4c2 to
00e6bdf
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes the reported issue: tooltips painted the instant their trigger was hovered, so sweeping a toolbar flashed every tooltip. (Investigation found the reported behavior was actually the floor of a missing capability —
<tooltip>was a static always-painted leaf with no hover path at all.)skipDelayDurationbehavior our components mirror).<tooltip>joinsdropdown-menuas an anchorable element; non-anchored tooltips keep their classic paint-when-rendered behavior, so every existing document lowers byte-identically.semantics.hiddenchannel as the dismissal echo, so accessibility snapshots and replay fingerprints reflect it.tooltip-delayattribute (milliseconds;0restores instant) on the tooltip element, registry attr code 80, schema_version 1 (additive). Defaults live as themable metric tokens (tooltip_show_delay_ms,tooltip_warm_window_ms). Validator teachings scope it to anchored tooltips; both engines verified in parity.Suites: full battery, validate, test-tooling, test-examples-native, test-ts-core-e2e, and the docs check — all green.
Fixes #125