{
  "generatedAt": "2026-05-25T11:23:59.964Z",
  "runId": "v4-1779707139870-rlu0248l",
  "document": {
    "filename": "web-client-and-shared-ui.md",
    "title": "Web Client (WASM) and Shared UI Components",
    "kind": "service",
    "scopeDescription": "Describe the Blazor Web.Client entry, HTTP handlers, platform implementations (WasmEpubService, WasmKnowledgeService, WebPlatformService) and the shared UI library (components, pages, services) used by both Web and MAUI.",
    "relativeOutputPath": "domains/web-client-and-shared-ui.md",
    "publicationTier": "secondary",
    "collectionId": "domains:domains",
    "collectionKind": "domains"
  },
  "contextBag": {
    "id": "web_client_and_shared_ui_md",
    "bagType": "module",
    "title": "Web Client (WASM) and Shared UI Components context bag",
    "anchorFiles": [
      "NexusReader.Web.Client/Program.cs"
    ],
    "includedFiles": [
      {
        "path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
        "reason": "Included because it likely participates in the core orchestration path",
        "source": "scope"
      },
      {
        "path": "NexusReader.Web.Client/Program.cs",
        "reason": "Selected as an entrypoint anchor for this flow scope",
        "source": "entrypoint"
      },
      {
        "path": "NexusReader.Web.Client/Services/WasmEpubService.cs",
        "reason": "Included because it likely participates in the core orchestration path",
        "source": "scope"
      },
      {
        "path": "NexusReader.Web.Client/Services/WasmKnowledgeService.cs",
        "reason": "Included because it likely participates in the core orchestration path",
        "source": "scope"
      },
      {
        "path": "NexusReader.Web.Client/Services/WebPlatformService.cs",
        "reason": "Included because it likely participates in the core orchestration path",
        "source": "scope"
      },
      {
        "path": "NexusReader.Web.Client/NexusReader.Web.Client.csproj",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Services/FocusModeService.cs",
        "reason": "Included because it likely participates in the core orchestration path",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Services/IdentityService.cs",
        "reason": "Included because it likely stabilizes the contracts or business data in this scope",
        "source": "type-reference"
      },
      {
        "path": "NexusReader.UI.Shared/Services/IFocusModeService.cs",
        "reason": "Included because it likely participates in the core orchestration path",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Services/IKnowledgeGraphService.cs",
        "reason": "Included because it likely participates in the core orchestration path",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Services/IQuizStateService.cs",
        "reason": "Included because it likely participates in the core orchestration path",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Services/IReaderInteractionService.cs",
        "reason": "Included because it likely participates in the core orchestration path",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Services/IReaderNavigationService.cs",
        "reason": "Included because it likely participates in the core orchestration path",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Services/ISyncService.cs",
        "reason": "Included because it likely participates in the core orchestration path",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Services/IThemeService.cs",
        "reason": "Included because it likely participates in the core orchestration path",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Services/KnowledgeGraphService.cs",
        "reason": "Included because it likely participates in the core orchestration path",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
        "reason": "Included because it likely participates in the core orchestration path",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
        "reason": "Included because it likely participates in the core orchestration path",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Services/ReaderInteractionService.cs",
        "reason": "Included because it likely participates in the core orchestration path",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Services/ReaderNavigationService.cs",
        "reason": "Included because it likely participates in the core orchestration path",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Services/SyncService.cs",
        "reason": "Included because it likely participates in the core orchestration path",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Services/ThemeService.cs",
        "reason": "Included because it likely participates in the core orchestration path",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Services/WebStorageService.cs",
        "reason": "Included because it likely participates in the core orchestration path",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor.js",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Services/KnowledgeCoordinator.cs",
        "reason": "Included because it likely participates in the core orchestration path",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/_Imports.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Components/Atoms/NexusButton.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Components/Atoms/NexusSearchBox.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Components/Atoms/NexusTypography.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Components/Molecules/AiAssistantBubble.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Components/Molecules/GroundednessBadge.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Components/Molecules/IntelligenceToolbar.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Components/Molecules/KnowledgeCheck.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Components/Molecules/SelectionAiPanel.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Components/Organisms/BookIngestionModal.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Components/Organisms/CurrentReadingWidget.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Components/Organisms/GlobalIntelligencePanel.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Components/Organisms/ReaderCanvas.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Components/Organisms/ReaderFooter.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Components/RedirectToLogin.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Layout/AuthLayout.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Layout/ReaderLayout.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Layout/ReconnectModal.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/NexusReader.UI.Shared.csproj",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Pages/Dashboard.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Pages/Home.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Pages/Intelligence.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Pages/Library.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Pages/NotFound.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Pages/Settings.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      },
      {
        "path": "NexusReader.UI.Shared/Routes.razor",
        "reason": "Included because it belongs to the resolved document scope",
        "source": "scope"
      }
    ],
    "relatedDomains": [
      "auth",
      "account"
    ],
    "relatedEntrypoints": [
      "NexusReader.Web.Client/Program.cs"
    ],
    "confidence": 0.6200000000000001
  }
}