feat(ui/graph): optimize graph dynamics, immersive reader, and code blocks

- Fix #16: Implement D3.js transitions and active state badges for Knowledge Graph.
- Fix #12: Implement Immersive Reader Layout with Merriweather typography.
- Fix #20: Professional code block styling with high contrast and monospace fonts.
- Resolve DI runtime error in WASM by adding dummy services.
- Replace generic 'Not Found' message with Nexus preloader.
- Enforce 'no async void' architecture across UI services.
This commit is contained in:
2026-05-08 20:13:39 +02:00
parent 00c5658662
commit 06f8c823a6
33 changed files with 370 additions and 149 deletions
@@ -2,15 +2,15 @@ namespace NexusReader.UI.Shared.Services;
public interface IReaderInteractionService
{
event Action<string>? OnNodeSelected;
event Action<string>? OnScrollToBlockRequested;
event Action<string>? OnHighlightBlockRequested;
event Action<string, string, SelectionCoordinates>? OnTextSelected;
event Func<string, Task>? OnNodeSelected;
event Func<string, Task>? OnScrollToBlockRequested;
event Func<string, Task>? OnHighlightBlockRequested;
event Func<string, string, SelectionCoordinates, Task>? OnTextSelected;
void NotifyNodeSelected(string nodeId);
void RequestScrollToBlock(string blockId);
void RequestHighlightBlock(string blockId);
void NotifyTextSelected(string text, string blockId, SelectionCoordinates coords);
Task NotifyNodeSelected(string nodeId);
Task RequestScrollToBlock(string blockId);
Task RequestHighlightBlock(string blockId);
Task NotifyTextSelected(string text, string blockId, SelectionCoordinates coords);
}
public record SelectionCoordinates(double Top, double Left, double Width);