Added server-side DI registrations for authentication and app-specific services to support Blazor InteractiveAuto prerendering. Registered a scoped HttpClient with base URI for correct API routing. Switched ApiBaseUrl in appsettings.json to https://localhost:8088. Added necessary using statements for new services and providers.
- Introduce IReceiverAuthService and ReceiverAuthService for all envelope receiver authentication and status API calls
- Add ReceiverAuthModel as a client-side DTO for API responses
- Refactor EnvelopeState to store all relevant fields and update via ApplyApiResponse
- Overhaul EnvelopePage.razor to use new service and state, with improved status handling and UI
- Enhance ApiResponse and ApiServiceBase to support structured error deserialization
- Register IReceiverAuthService in DI container
Refactored HandleAccessCodeSubmit to accept a (string Code, bool PreferSms) tuple, enabling support for SMS preference in two-factor authentication. Added explanatory comments and cleaned up outdated comments in LoadEnvelopeAsync for clarity.
- Introduce ActionPanel, EnvelopeInfoCard, TfaForm, ConfirmDialog, StatusPage, and Toast components for modular, presentational UI
- Add ToastService for pub/sub toast notifications; register in DI
- Refactor AccessCodeForm for improved UX and parameterization
- Enhance MainLayout with Toast integration and better error handling
- Standardize and extend app.css for new components and responsive design
- All new components are "dumb" (no service/API knowledge), using EventCallbacks for parent interaction
- ConfirmDialog supports awaitable user confirmation via TaskCompletionSource
Integrated Bootstrap Icons by adding CSS and font assets, updated the project to track static asset folders, and referenced the icon styles in App.razor. Introduced a new app.css with comprehensive base styles, consolidating previous stylesheets for a consistent and modern UI. Ensured Bootstrap CSS is included as a foundational style framework. No code changes were made to the font or CSS asset files themselves.