[
  {
    "id": "class:g9nkgg:library",
    "kind": "class",
    "fileId": "file:1uhcs2l:library-razor",
    "path": "NexusReader.UI.Shared/Pages/Library.razor",
    "canonicalName": "Library",
    "shortLabel": "Library",
    "longLabel": "Library",
    "purpose": "Blazor UI page that displays the user's library of e-books, loads last-read book summaries from the API, and provides UI to ingest new books or open a selected book."
  },
  {
    "id": "method:bktx49:onafterrenderasync",
    "kind": "method",
    "fileId": "file:1uhcs2l:library-razor",
    "path": "NexusReader.UI.Shared/Pages/Library.razor",
    "line": 511,
    "canonicalName": "OnAfterRenderAsync",
    "shortLabel": "OnAfterRenderAsync()",
    "longLabel": "OnAfterRenderAsync(firstRender: bool) -> Task",
    "signature": "(firstRender: bool) -> Task",
    "purpose": "Lifecycle override that triggers initial load of books on first render."
  },
  {
    "id": "method:676x78:loadbooksasync",
    "kind": "method",
    "fileId": "file:1uhcs2l:library-razor",
    "path": "NexusReader.UI.Shared/Pages/Library.razor",
    "line": 519,
    "canonicalName": "LoadBooksAsync",
    "shortLabel": "LoadBooksAsync()",
    "longLabel": "LoadBooksAsync() -> Task",
    "signature": "() -> Task",
    "purpose": "Loads the list of last-read books from the backend API and updates component state with loading/success/failure handling."
  },
  {
    "id": "method:1ffpsuv:refreshlibrary",
    "kind": "method",
    "fileId": "file:1uhcs2l:library-razor",
    "path": "NexusReader.UI.Shared/Pages/Library.razor",
    "line": 543,
    "canonicalName": "RefreshLibrary",
    "shortLabel": "RefreshLibrary()",
    "longLabel": "RefreshLibrary() -> Task",
    "signature": "() -> Task",
    "purpose": "Public refresh helper invoked after the ingestion modal closes to reload the library."
  },
  {
    "id": "method:8gksn2:openbook",
    "kind": "method",
    "fileId": "file:1uhcs2l:library-razor",
    "path": "NexusReader.UI.Shared/Pages/Library.razor",
    "line": 549,
    "canonicalName": "OpenBook",
    "shortLabel": "OpenBook()",
    "longLabel": "OpenBook(bookId: Guid) -> void",
    "signature": "(bookId: Guid) -> void",
    "purpose": "Navigate to the reader view for the selected book using the injected navigation service."
  }
]