namespace ytLive.Models; /// /// One row in the left panel's alert stack (creator design, 2026-11-05). The stack sits above the /// panel's content and pushes it down, so an alert is seen without hunting for a tab. /// Pinned rows are standing state, not errors to clear: they show a pin instead of a /// close control and are only removed when the state itself changes (the Steam licence indicator /// becomes dismissible — and its dismissal permanent — once ownership is verified). /// Clicking a row runs its action: the licence indicator opens About; an event alert opens the /// Logs tab with that event's lines highlighted. /// public sealed record AttentionAlert( string Id, string Label, string Text, bool IsPinned, AttentionAlertAction Action, long LogFrom = 0, long LogTo = 0) { /// True while a close control should be shown (a dismissible row). public bool CanDismiss => !IsPinned; /// True while the row should show the pin glyph instead of a close control. public bool ShowsPin => IsPinned; } public enum AttentionAlertAction { /// Open the About panel (the licence indicator). About, /// Open the Logs tab and highlight this event's lines. Logs, }