Refactor client settings fields, fix logs overwrite, improve settings modal

- Replace FieldBounds with generic ClientSettingsField<T> abstraction
- Add IClientSettingsField, ClientSettingsMinMaxField, ClientSettingsBoolField
- Put abstractions in Models/Client/Abstractions namespace
- Fields hold values; CoerceValue for clamping on set
- ClientSettingsService hydrates fields on load; ToDto for save
- Settings modal binds directly to field values, collapsible only for All context
- Add LogsPreView with ShouldRender freeze to prevent Blazor overwriting JS-owned logs DOM
- Add left margin to static group heading in single-section mode
This commit is contained in:
2026-02-11 08:28:44 +10:00
parent 5ac2006b80
commit cefc488712
18 changed files with 258 additions and 129 deletions
@@ -86,6 +86,10 @@
transform: rotate(135deg);
}
.settings-group-title-static {
margin-left: 0.75rem;
}
.settings-group-content {
max-height: 0;
overflow: hidden;