namespace DeepDrftPublic.Client.Services; /// /// Holds the Mix visualizer's zoom (visible time-span in seconds) for the lifetime of the WASM app /// instance. Scoped in DI, so it lives across SPA navigations within one listening session — open a /// second mix and the slider keeps where you left it — but a fresh page load (F5) constructs a new /// instance, resetting to the default. That matches the spec's "persist within session, reset on /// fresh load" without any cookie/localStorage round-trip (see phase-9-mix-visualizer-redesign §B). /// public sealed class MixVisualizerZoomState { /// /// Default opening window. Mirrors DEFAULT_VISIBLE_SECONDS in MixVisualizer.ts; keep the /// two in sync (the TS owns the rendering anchors, this owns the C#-side session default). /// public const double DefaultVisibleSeconds = 10.0; /// Visible time-span in seconds. Survives navigation; resets on fresh page load. public double VisibleSeconds { get; set; } = DefaultVisibleSeconds; }