diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-23 19:34:01 -0400 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-23 19:34:01 -0400 |
| commit | c5ca8b7d7ac1aa751c1bf79ad35b178f96b3ba77 (patch) | |
| tree | 06a771c8b21eb9b05ede74dd63fd475bdd4dbd60 /tests/test-setup-telega.bats | |
| parent | 558723421f320d00a1d9c7704cae567a00e17310 (diff) | |
| download | dotemacs-c5ca8b7d7ac1aa751c1bf79ad35b178f96b3ba77.tar.gz dotemacs-c5ca8b7d7ac1aa751c1bf79ad35b178f96b3ba77.zip | |
feat(theme-studio): locate preview elements by hover and click
Hovering a data-face preview element shows its section, face, and effective value in the preview-label info line, and the element's title carries the full record: effective fg/bg plus a per-attribute source note (direct, inherited-from-X, default, or cleared-rendering-as-default). Clicking an on-pane element scrolls to and flashes its assignment row. Off-pane and cross-surface elements stay hover-only.
A single owner-qualified registry keyed by {owner, face} backs both data-face surfaces, package and UI, so the same face name under two owners never collides. The pure helpers in app-core.js take all state as arguments and return data. The one stateful adapter, previewSpan, lives in previews.js and emits the escaped markup. os() stays a package-owner wrapper over previewSpan, and a unified locateClick dispatcher replaces the per-surface click branches.
Covered by test-locate.mjs and four new browser gates. Full harness green.
Diffstat (limited to 'tests/test-setup-telega.bats')
0 files changed, 0 insertions, 0 deletions
