mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-05 10:53:59 +00:00
refactor(ui): extract adaptive panel rail layout
This commit is contained in:
1 parent
83df873879
commit
bf77ae61b8
18 files changed
+816
-521
No files matched your search
@@ -213,3 +213,21 @@ current visible/enabled controls for each key; ordinary movement within those
|
||||
boundaries remains native. The component honors already-handled keys and has no
|
||||
app, server, storage or network dependencies. Its package boundary is checked
|
||||
independently from the standalone screens that consume it.
|
||||
|
||||
## Panel rail layout
|
||||
|
||||
`gods-eye-view/ui/layout` exports synchronous `layoutLeftPanelRail` and
|
||||
`layoutRightPanelRail` passes, `measurePanelNaturalHeight`, and the existing pure
|
||||
corridor/allocation helpers. Separate modules own left placement, right placement,
|
||||
DOM height measurement and rail geometry. They import no application, renderer,
|
||||
server, storage or network modules; package checks build this entry independently.
|
||||
|
||||
Callers supply rail/obstacle DOM nodes, the viewport, HUD state, the preferred
|
||||
panel, disclosure/retry callbacks and the left measurement cache. Right layout
|
||||
reads the caller's Display scroll value at measurement time and restores it
|
||||
within the resulting scroll range. The left pass notifies its caller after
|
||||
alignment so the right pass can follow. Neither pass installs listeners, timers
|
||||
or observers; construction/import does no work. Scheduling, preference writes,
|
||||
share restoration and movement of controls between containers remain caller-owned.
|
||||
Existing helper imports from `cockpitMath.js` and `rightRailPolicy.js` remain
|
||||
compatible through re-exports.
|
||||
@@ -1,5 +1,20 @@
|
||||
# God's Eye View Current State
|
||||
|
||||
## Adaptive panel rail layout
|
||||
|
||||
`ui/layout` supplies the left/right rail layout passes, natural-height
|
||||
measurement and pure corridor/allocation helpers. The UI facade passes live DOM
|
||||
nodes, obstacle nodes, HUD presentation, preferred panels and callbacks. It
|
||||
retains observers, frame scheduling, saved/share preferences and Cockpit portals.
|
||||
|
||||
The left rail keeps its measured collapsed heights and obstacle-safe corridor;
|
||||
the right rail follows its top baseline and preserves Display's scroll owner.
|
||||
Automatic collapse remains presentation only, prioritizes the latest explicit
|
||||
panel, and honors keyboard focus on the right. Mobile layout still releases
|
||||
desktop allocation styles. Stable Display allocation avoids unnecessary style
|
||||
writes. This extraction does not change panel positions or layout defaults.
|
||||
|
||||
|
||||
## Surface keyboard lifecycle
|
||||
|
||||
`ui/surfaces` owns the capture-phase keyboard listener, Tab cycling and return
|
||||
|
||||
Reference in new issue
Block a user