feat: loading placeholder tile while new session is being created

- Inject .tile--loading skeleton tile into #session-grid immediately after
  POST /api/sessions succeeds, giving instant visual feedback while the
  backend creates the tmux session (which may take several seconds)
- Remove the placeholder when the poll finds the session or on timeout
- Add shimmer animation via @keyframes shimmer to style.css
- Tile placed after original .tile-body pre rule to avoid selector-substring
  match in _extract_rule_block CSS tests
This commit is contained in:
Brian Krabach
2026-03-30 07:39:18 -07:00
parent b38c87185a
commit e6add00f0d
5 changed files with 195 additions and 15 deletions
+20
View File
@@ -258,6 +258,26 @@ function closeTerminal() {
window._openTerminal = openTerminal;
window._closeTerminal = closeTerminal;
// ---------------------------------------------------------------------------
// setTerminalFontSize — live font-size update without reconnecting
// ---------------------------------------------------------------------------
/**
* Update the terminal font size at runtime without reconnecting.
* Modifies _term.options.fontSize and refits the terminal to recalculate dimensions.
* No-op when no terminal is open.
* @param {number} size - font size in pixels
*/
function setTerminalFontSize(size) {
if (!_term) return;
_term.options.fontSize = size;
if (_fitAddon) {
try { _fitAddon.fit(); } catch (_) {}
}
}
window._setTerminalFontSize = setTerminalFontSize;
// ---------------------------------------------------------------------------
// Android touch scroll — rAF-batched WheelEvent dispatch
// Android batches touchmove events irregularly; dispatching one WheelEvent