fix: screenshare dismiss, GIF header, PiP resize, call subtitle, CSS vars

- CallControls: screenshare confirm now closes on Escape or click-outside
  (transparent fixed backdrop + window keydown listener); cleaned indentation
- GifPicker: TDS header rendered a JSX comment ({/* GIF_SEARCH */}) so the
  // GIF_SEARCH label was invisible; changed to {'// GIF_SEARCH'}
- CallEmbedProvider: PiP resize clamping now works at initial bottom/right
  position by normalising to top/left before parsing el.style.left
- CallEmbedProvider: incoming call subtitle now reads 'Incoming Video Call'
  or 'Incoming Voice Call' based on m.call.intent
- PollContent: progress bar background now uses --bg-surface-active /
  --bg-surface-low instead of hardcoded white (invisible in light mode)
- index.css + lotus-terminal.css.ts: define --bg-surface, --bg-surface-low,
  --bg-surface-active, --bg-surface-border, --text-primary as global CSS vars
  with vanilla fallbacks and TDS dark/light overrides; these were used by
  poll, location map, upload card and GIF picker but never defined

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-23 22:51:56 -04:00
parent db0b083a3e
commit fc5f808cf9
6 changed files with 98 additions and 51 deletions
+12
View File
@@ -85,6 +85,12 @@ export const lotusTerminalBodyClass = style({
'--lt-font-mono': "'JetBrains Mono', 'Fira Code', 'Cascadia Code', 'Courier New', monospace",
'--lt-font-display': "'JetBrains Mono', 'Fira Code', 'Courier New', monospace",
'--lt-font-crt': "'VT323', 'Courier New', monospace",
// Semantic surface aliases (poll, location, upload card, gif picker)
'--bg-surface': '#07101a',
'--bg-surface-low': '#060c14',
'--bg-surface-active': 'rgba(0,212,255,0.12)',
'--bg-surface-border': 'rgba(0,212,255,0.20)',
'--text-primary': '#c4d9ee',
} as any,
});
@@ -436,6 +442,12 @@ globalStyle(`html[data-theme="light"] body.${lotusTerminalBodyClass}`, {
'--lt-box-glow-green': '0 0 0 2px rgba(0,109,53,0.22), 0 2px 8px rgba(0,109,53,0.12)',
'--lt-box-glow-red': '0 0 0 2px rgba(181,0,31,0.22), 0 2px 8px rgba(181,0,31,0.12)',
'--lt-box-glow-amber': '0 0 0 2px rgba(138,90,0,0.22), 0 2px 8px rgba(138,90,0,0.12)',
// Semantic surface aliases — light overrides
'--bg-surface': '#ffffff',
'--bg-surface-low': '#e2e7ef',
'--bg-surface-active': 'rgba(0,98,184,0.10)',
'--bg-surface-border': 'rgba(0,98,184,0.22)',
'--text-primary': '#111827',
} as any,
});