namespace TeamsISO.App.Services; /// /// The HTML / CSS / JS for the embedded control panel served at /// GET /ui. Single self-contained string — no external CDN deps, no /// build step, no React. Phone-friendly remote that connects via WebSocket /// to /ws and posts to the existing REST endpoints. /// /// v2 additions: /// - Live preview tiles per participant via GET /participants/{id}/thumbnail.jpg /// (engine encodes the latest ProcessedFrame as a 192-wide JPEG; refreshed /// ~1Hz alongside the WebSocket state push). /// - Topology toggle card — shows whether raw Teams NDI sources are /// hidden from the LAN, with Apply / Restore buttons that hit the /// /topology/apply + /topology/restore REST endpoints. Operator still /// has to restart Teams afterward, surfaced in a banner on apply. /// internal static class ControlPanelHtml { private const string Html = @" TeamsISO Control

TeamsISO control surface

connecting…
Network topology
"; public static string Get() => Html; }