feat(web): pin Logging/History/Network as a resizable column (#1616)
Add the ability to "pin" the Logging, History, and Network screens into a second column on the right of the InspectorView, so a primary screen and a monitor screen are visible at once (e.g. watch Logs while calling a Tool). - A "pin as column" button on the Logs/History/Network panel toolbars opens the column (shown only when wide + connected). - The column hosts a MonitoringControls tab row (available monitor tabs + close) over the selected embedded screen. Pinning removes the monitor group from the header tab bar; closing (x) returns it. - The divider between the primary area and the column is draggable (pointer + keyboard); width is clamped and persisted. - The split collapses to one column below ~1040px (the ServerListScreen single-card breakpoint) and while disconnected, without discarding the pin preference — it reopens when wide + connected again. State (pinned/tab/width) is view-local and persisted via the existing useLocalStorage pattern, so no new props thread through App and ViewHeader is unchanged (it just receives a filtered tab list). Screens/panels gain an `embedded` mode (fills the parent height, drops the 340px filter sidebar) via a shared EmbeddableScrollArea element. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
4ee9bbce0f
commit
081fd789f1
1 changed files with 1728 additions and 241 deletions
|
|
@ -422,3 +422,30 @@
|
|||
z-index: 200;
|
||||
box-shadow: var(--mantine-shadow-sm);
|
||||
}
|
||||
|
||||
/*
|
||||
* Draggable vertical divider between the primary screen area and the pinned
|
||||
* monitoring column (#1616). The col-resize cursor, the hover/active accent,
|
||||
* and the drag-time user-select suppression are all pseudo-selector / cursor /
|
||||
* cross-element concerns that can't be expressed as Mantine props, so the whole
|
||||
* unit lives here rather than split across the theme.
|
||||
*/
|
||||
.resize-handle {
|
||||
flex: 0 0 auto;
|
||||
width: 6px;
|
||||
cursor: col-resize;
|
||||
background-color: var(--inspector-border-default);
|
||||
transition: background-color 120ms ease;
|
||||
touch-action: none;
|
||||
}
|
||||
|
||||
.resize-handle:hover,
|
||||
.resize-handle:focus-visible {
|
||||
background-color: var(--mantine-primary-color-filled);
|
||||
}
|
||||
|
||||
/* Suppress text selection anywhere on the page while a drag is in progress. */
|
||||
body.resizing-col {
|
||||
user-select: none;
|
||||
cursor: col-resize;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue