fix(client): keep the right-sidebar tab's own scroller on dsh 0.1.7+
The 0.1.7 sidebar wraps every tab body in a definite-height `.tabBody` whose `overflow: hidden` clips the grown tab root out of reach, while the dockkit pane body above it never sees the overflow — the Context pane in the right Sidebar could not scroll at all. The sidebar-scoped root now keeps its own scroller (the shared `height: 100%` + `overflow-y: auto` chrome, inset aside): the height resolves against the 0.1.7 tab body or the 0.1.5 pane body alike, and degrades to the pane scrolling wherever neither height resolves — one scroller either way.
This commit is contained in:
1 parent
cbf02e1524
commit
0f9d2fba2f
2 files changed
+16
-11
No files matched your search
@@ -2,8 +2,9 @@
|
||||
* Scroll an element's nearest scrollable ancestor so the element tops that
|
||||
* scrollport. The jump's landing reveal needs this host-agnostic: the
|
||||
* conversation tab scrolls the shared `[data-conversation-scroll]` container
|
||||
* while the right Sidebar scrolls dockkit's pane body (a CSS-module class,
|
||||
* no stable attribute of its own), so the walk takes whichever ancestor
|
||||
* while the right Sidebar's scroller differs per generation (dockkit's pane
|
||||
* body — a CSS-module class with no stable attribute — on the 0.1.5 line, the
|
||||
* tab root itself on the 0.1.7 line), so the walk takes whichever ancestor
|
||||
* actually scrolls — the rect delta lands the anchor flush regardless of the
|
||||
* container's current position. `document.body` ends the walk: the page
|
||||
* itself never scrolls. False — never a throw — when no ancestor scrolls (the
|
||||
|
||||
@@ -8,17 +8,21 @@
|
||||
*/
|
||||
.lc-root { padding: 16px 20px 32px; overflow-y: auto; height: 100%; box-sizing: border-box; color: var(--dsw-alias-label-primary); font-size: 13px; }
|
||||
/*
|
||||
Right Sidebar panel (dsh 0.1.5-rc.1+): the dockkit pane body scrolls and
|
||||
its `.pane` clips overflow — so the tab root drops its own scroller and lets
|
||||
the pane own both. The body draws NO padding of its own (dockkit leaves each
|
||||
tab its own insets), so the root keeps a 12px frame on all four sides — the
|
||||
harness's own body inset — instead of the wide shared chrome. Scoped by the
|
||||
panel's own markers, which exist only inside the right column (the open panel
|
||||
and the float host that carries a tab dragged out of it); the conversation tab
|
||||
and the /context modal are unaffected.
|
||||
Right Sidebar panel (dsh 0.1.5-rc.1+): the body draws NO padding of its own
|
||||
(dockkit leaves each tab its own insets), so the root keeps a 12px frame on
|
||||
all four sides — the harness's own body inset — instead of the wide shared
|
||||
chrome. The root KEEPS its own scroller: the 0.1.5 line renders the tab
|
||||
straight into the scrolling dockkit pane body, while the 0.1.7 line wraps it
|
||||
in a definite-height `.tabBody` whose `overflow: hidden` would clip a grown
|
||||
root out of reach — `height: 100%` resolves against whichever definite-height
|
||||
host the running generation provides (and degrades to the root growing under
|
||||
an auto-height one, where the pane scrolls instead: one scroller either way).
|
||||
Scoped by the panel's own markers, which exist only inside the right column
|
||||
(the open panel and the 0.1.5 float host that carries a tab dragged out of
|
||||
it); the conversation tab and the /context modal are unaffected.
|
||||
*/
|
||||
[data-sidebar-right-open] .lc-root,
|
||||
[data-sidebar-right-float-host] .lc-root { height: auto; overflow: visible; padding: 12px; }
|
||||
[data-sidebar-right-float-host] .lc-root { padding: 12px; }
|
||||
/* The Context tab chip's emblem: held at its drawn size in the title's flex
|
||||
line (dockkit's `.tabTitle`; the files chip's own titleIcon idiom). */
|
||||
.lc-title-icon { flex: none; }
|
||||
|
||||
Reference in new issue
Block a user