merge: integrate upstream changes with multi-device federation

This commit is contained in:
Brian Krabach
2026-03-31 05:48:49 -07:00
15 changed files with 1743 additions and 54 deletions
+45
View File
@@ -239,6 +239,30 @@ body {
margin: 0;
}
/* Loading placeholder tile — shown while a new session is being created */
.tile--loading {
opacity: 0.6;
pointer-events: none;
}
.tile--loading .tile-body pre {
background: repeating-linear-gradient(
90deg,
var(--border) 0px,
var(--bg-surface) 30px,
var(--border) 60px
);
background-size: 200% 100%;
animation: shimmer 1.5s ease-in-out infinite;
min-height: 60px;
border-radius: 2px;
}
@keyframes shimmer {
0% { background-position: 200% 0; }
100% { background-position: -200% 0; }
}
.tile-pre {
position: absolute;
inset: 0;
@@ -1492,6 +1516,27 @@ body {
padding: 8px 12px 4px;
}
/* ============================================================
Dashboard view modes — Fit
============================================================ */
/* Fit view — tiles fill viewport, no scroll */
.session-grid--fit {
overflow: hidden;
}
/* In fit mode, stretch pre to fill the full tile body height and anchor content to bottom */
.session-grid--fit .tile-body pre {
top: 0; /* stretch to fill full tile body height in fit mode */
overflow-y: scroll; /* enable scrollTop positioning (content anchored via JS scrollTop=scrollHeight) */
scrollbar-width: none; /* Firefox: hide scrollbar */
-ms-overflow-style: none; /* IE/Edge: hide scrollbar */
}
.session-grid--fit .tile-body pre::-webkit-scrollbar {
display: none; /* Chrome/Safari: hide scrollbar */
}
/* ============================================================
Responsive overlay sidebar at <960px
============================================================ */