Fix hovered Zigbee topology endpoint layer

Issue: #464
User-Visible: yes
This commit is contained in:
Matysh
2026-09-06 01:23:51 +03:00
parent b7f82d54dd
commit 0f7b0dff14
33 changed files with 267 additions and 212 deletions
+3 -2
View File
@@ -4,8 +4,9 @@
- Active Zigbee topology links and route bubbles now stay readable above room
names and unrelated device markers, while the complete linked device markers
remain on top. Unknown-quality dashed links also have a thin dark contrast
outline ([#464](https://github.com/Matysh/houseplan-card/issues/464)).
— including the one under the pointer — remain on top. Unknown-quality dashed
links also have a thin dark contrast outline
([#464](https://github.com/Matysh/houseplan-card/issues/464)).
## v1.72.0 — 2026-09-05
+2 -2
View File
@@ -10,8 +10,8 @@
- Активные линии и подписи Zigbee-топологии теперь читаются поверх названий
комнат и посторонних маркеров, а полные маркеры связанных устройств остаются
сверху. У серого пунктира неизвестного качества также появилась тонкая
тёмная контрастная обводка
сверху, включая маркер прямо под курсором. У серого пунктира неизвестного
качества также появилась тонкая тёмная контрастная обводка
([#464](https://github.com/Matysh/houseplan-card/issues/464)).
## v1.72.0 — 2026-09-05
+3 -1
View File
@@ -3810,7 +3810,9 @@ require hands on real hardware — they remain for the human pass.
context: overlay — ребёнок `.devlayer` без собственной live-camera
проекции; topology выше пересекающихся room label и постороннего marker,
но ниже полных roots source и каждого реально нарисованного local
endpoint. Host и primitives остаются pointer-transparent.
endpoint. Для source это проверяется настоящим `page.mouse.move`, чтобы
CSS `:hover` участвовал в каскаде; синтетический `pointerover` этого не
доказывает. Host и primitives остаются pointer-transparent.
- [ ] Exact endpoint ownership очищается при pointerleave, touch/pen, потере
hover gate, смене mode/space/setting, invalidation mapping, замене marker
DOM и disconnect. Remote/unplaced цели не поднимают marker.
@@ -330,7 +330,10 @@ forced-colors сохраняет системную палитру.
endpoint markers выше.
3. Снять stage screenshot в самом smoke и прочитать pixels через
`createImageBitmap`/`OffscreenCanvas`: линия видна поверх unrelated marker и
room label, но не поверх центров source/neighbor.
room label, но не поверх центров source/neighbor. Отдельно навести настоящий
Playwright-курсор через `page.mouse.move` на source и проверить, что его
вычисленный `z-index` остаётся выше overlay при активном CSS `:hover`;
синтетический `dispatchEvent(pointerover)` эту ветку каскада не покрывает.
4. Для unknown-LQI link проверить два совпадающих strokes и растровую
последовательность core → dark casing → background/gap при DPR 1; повторить
screen-space geometry на wide/tall и min/default/max zoom.