Part of #3201 (shadcn/ui migration epic). Batch 4 of 4.
Phase 3-B4 — specials restyle (libraries stay)
Scope: the viz/terminal/map libraries — echarts (charts), xterm (terminals), novnc (VNC), cytoscape (graphs), leaflet (maps).
Approach (default assumption, revisited at #shadcn-8): keep each library, restyle to the shadcn token layer:
- echarts: theme object generated FROM the shadcn CSS custom properties (single source of truth), re-registered per palette switch.
- xterm: ITheme built from the same tokens (light/dark).
- cytoscape: style function reads tokens.
- leaflet: CSS overrides mapped to tokens (tiles unchanged).
- novnc: chrome/background only (no protocol/UI change).
No library swaps in this issue. Replacing any special is a #shadcn-8 decision.
Gate: each special renders correctly in both modes and at least 2 palettes; resize/interaction smoke-tested; clean build.
No AI attribution. Decision protocol: DECISION file + WAITING + stop.
Part of #3201 (shadcn/ui migration epic). Batch 4 of 4.
Phase 3-B4 — specials restyle (libraries stay)
Scope: the viz/terminal/map libraries — echarts (charts), xterm (terminals), novnc (VNC), cytoscape (graphs), leaflet (maps).
Approach (default assumption, revisited at #shadcn-8): keep each library, restyle to the shadcn token layer:
No library swaps in this issue. Replacing any special is a #shadcn-8 decision.
Gate: each special renders correctly in both modes and at least 2 palettes; resize/interaction smoke-tested; clean build.
No AI attribution. Decision protocol: DECISION file + WAITING + stop.