Component: Smrt.Settings.UI.WinUI3¶
Canonical source:
SmrtApps/src/Smrt.Settings.UI.WinUI3/README.md(mirrored below)
Smrt.Settings.UI.WinUI3¶
Overview & Responsibilities¶
- Reusable WinUI 3 Settings pages and controls shared by SmrtHub host apps.
- Defines the Settings page stack (page types, deep-link targets) to keep navigation stable across shells.
- UI-only: does not own config/state/secrets persistence.
- UI can request host-provided diagnostics operations via an injected contract.
Non-Responsibilities¶
- Does not own the Settings window shell (that is
SettingsHost). - Does not store secrets (credential entry is hosted via Providers UI and ultimately delegated to
Smrt.CloudProviders). - Does not define its own operational data slug.
Configuration¶
- This component does not define or persist configuration.
- Host apps (e.g.,
SettingsHost) own config/state viaSmrt.Configand related stores.
Operational Data (Paths)¶
- This component does not write logs/config/state directly.
- Host apps own operational data paths and must follow
README.Files/System/Policies/SmrtHub-Operational-Data-Policy-v1.0.README.md.
Observability & Logging¶
- UI surfaces should remain safe-by-default: never log secrets.
- Avoid logging profile identifiers and other potentially sensitive metadata unless explicitly approved.
Support Bundle¶
- This component does not directly emit support bundles.
- Host apps should rely on Support Bundle tooling to include their logs and diagnostics.
- The Diagnostics page invokes host actions via
Services/ISettingsDiagnosticsActions.cs.
Current State¶
- The library project exists and is ready to host the Settings page stack.
- Pages are migrated from
SettingsHostso the host can be a thin shell.
Key files and folders¶
Navigation/SettingsNavigation.cs— stable section keys, alias normalization, and page-type mapping (used bySettingsHost).Navigation/SettingsNavigationViewModel.cs— ViewModel-level selection + persistence logic (store is injected by the host).Models/ProvidersPageArgs.cs— optional deep-link args used to target the Providers page (vendor/profile preselection).Models/DiagnosticsPageArgs.cs— navigation args used to inject host diagnostics actions into the Diagnostics page.Services/ISettingsDiagnosticsActions.cs— host-provided contract for diagnostics operations (logs export + SmrtSupport presets).
Pages¶
Pages/ProvidersPage.xaml— hostsSmrt.CloudProviders.UI.WinUI3provider management UI.Pages/DiagnosticsPage.xaml— local-first diagnostics actions (host-injected).- Unified HTML logs export.
- SmrtSupport presets (Assist / Legal / Compliance).
Key Integrations¶
Smrt.UIprovides theming resources; consuming apps should merge Smrt.UI dictionaries at startup.Smrt.CloudProviders.UI.WinUI3is hosted inside the Providers page.
Testing & Validation¶
- Build:
dotnet build SmrtApps/src/Smrt.Settings.UI.WinUI3/Smrt.Settings.UI.WinUI3.csproj -c Debug -r win-x64 - Unit tests:
dotnet test SmrtApps/src/Smrt.Settings.UI.WinUI3.Tests/Smrt.Settings.UI.WinUI3.Tests.csproj -c Debug -r win-x64 - Run C# tests via repo scripts under
Tools/Run-Tests/.
Theming and DPI validation¶
Manual validation checklist (recommended when adding/modifying XAML):
- Light/Dark + High Contrast mode rendering is readable and uses theme resources.
- Per-monitor DPI scaling does not clip controls and preserves spacing at common scales (100%, 150%, 200%).
- Keyboard focus visuals remain visible and consistent.
- Embedded provider management surfaces (
Smrt.CloudProviders.UI.WinUI3) remain visually coherent inside Settings.
Policy References¶
- Documentation:
README.Files/System/Policies/SmrtHub-Documentation-Policy-v1.0.README.md - UI theming:
README.Files/System/Policies/SmrtHub-UI-Theming-Policy.README.md - WinUI3 DPI discipline:
README.Files/System/Policies/SmrtHub-WinUI3-DPI-Discipline.README.md - Privacy/security:
README.Files/System/Policies/SmrtHub-Privacy-and-Security-Policy.README.md - Operational data:
README.Files/System/Policies/SmrtHub-Operational-Data-Policy-v1.0.README.md
Related docs¶
- Settings host:
SmrtApps/CSApps/SettingsHost/README.md - vNext plan:
README.Files/SmrtHub-vNext-Architecture/Plans/Smrt.Settings.UI.WinUI3.plan.md