[
  {
    "id": "class:11lr4zo:knowledgegraph",
    "kind": "class",
    "fileId": "file:jo64ly:knowledgegraph-razor",
    "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
    "canonicalName": "KnowledgeGraph",
    "shortLabel": "KnowledgeGraph",
    "longLabel": "KnowledgeGraph",
    "purpose": "Blazor UI component that renders and manages an interactive knowledge graph visualization via JS interop, wiring app-level graph services and user interactions to the client-side graph module."
  },
  {
    "id": "method:1ari3ha:oninitialized",
    "kind": "method",
    "fileId": "file:jo64ly:knowledgegraph-razor",
    "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
    "line": 41,
    "canonicalName": "OnInitialized",
    "shortLabel": "OnInitialized()",
    "longLabel": "OnInitialized() -> void",
    "signature": "() -> void",
    "purpose": "Subscribe component handlers to FocusMode and GraphService events during component initialization."
  },
  {
    "id": "method:14hlcms:handlegraphupdate",
    "kind": "method",
    "fileId": "file:jo64ly:knowledgegraph-razor",
    "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
    "line": 49,
    "canonicalName": "HandleGraphUpdate",
    "shortLabel": "HandleGraphUpdate()",
    "longLabel": "HandleGraphUpdate() -> Task",
    "signature": "() -> Task",
    "purpose": "Respond to graph data changes by instructing the JS graph module to clear or update and force a UI re-render."
  },
  {
    "id": "method:16kjevr:handleactivenodechange",
    "kind": "method",
    "fileId": "file:jo64ly:knowledgegraph-razor",
    "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
    "line": 65,
    "canonicalName": "HandleActiveNodeChange",
    "shortLabel": "HandleActiveNodeChange()",
    "longLabel": "HandleActiveNodeChange(nodeId: string) -> Task",
    "signature": "(nodeId: string) -> Task",
    "purpose": "Tell the JS graph module to highlight/set the active node when the active node changes in the graph service."
  },
  {
    "id": "method:1xjbcak:handleloadingchange",
    "kind": "method",
    "fileId": "file:jo64ly:knowledgegraph-razor",
    "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
    "line": 71,
    "canonicalName": "HandleLoadingChange",
    "shortLabel": "HandleLoadingChange()",
    "longLabel": "HandleLoadingChange(isLoading: bool) -> Task",
    "signature": "(isLoading: bool) -> Task",
    "purpose": "Trigger a UI re-render when the graph loading state changes."
  },
  {
    "id": "method:1cayj92:onafterrenderasync",
    "kind": "method",
    "fileId": "file:jo64ly:knowledgegraph-razor",
    "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
    "line": 76,
    "canonicalName": "OnAfterRenderAsync",
    "shortLabel": "OnAfterRenderAsync()",
    "longLabel": "OnAfterRenderAsync(firstRender: bool) -> Task",
    "signature": "(firstRender: bool) -> Task",
    "purpose": "On first render, initialize the JS graph module and, if data already exists, perform an initial graph update."
  },
  {
    "id": "method:1to2smv:initializegraphasync",
    "kind": "method",
    "fileId": "file:jo64ly:knowledgegraph-razor",
    "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
    "line": 89,
    "canonicalName": "InitializeGraphAsync",
    "shortLabel": "InitializeGraphAsync()",
    "longLabel": "InitializeGraphAsync() -> Task",
    "signature": "() -> Task",
    "purpose": "Import the client JS module, create a DotNet helper reference and mount the graph with initial data."
  },
  {
    "id": "method:1muyu85:zoomin",
    "kind": "method",
    "fileId": "file:jo64ly:knowledgegraph-razor",
    "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
    "line": 96,
    "canonicalName": "ZoomIn",
    "shortLabel": "ZoomIn()",
    "longLabel": "ZoomIn() -> Task",
    "signature": "() -> Task",
    "purpose": "Request the JS graph module to zoom in."
  },
  {
    "id": "method:1l8ubet:zoomout",
    "kind": "method",
    "fileId": "file:jo64ly:knowledgegraph-razor",
    "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
    "line": 97,
    "canonicalName": "ZoomOut",
    "shortLabel": "ZoomOut()",
    "longLabel": "ZoomOut() -> Task",
    "signature": "() -> Task",
    "purpose": "Request the JS graph module to zoom out."
  },
  {
    "id": "method:129w46l:zoomreset",
    "kind": "method",
    "fileId": "file:jo64ly:knowledgegraph-razor",
    "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
    "line": 98,
    "canonicalName": "ZoomReset",
    "shortLabel": "ZoomReset()",
    "longLabel": "ZoomReset() -> Task",
    "signature": "() -> Task",
    "purpose": "Request the JS graph module to reset zoom/transform."
  },
  {
    "id": "method:66cucs:onnodeclicked",
    "kind": "method",
    "fileId": "file:jo64ly:knowledgegraph-razor",
    "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
    "line": 101,
    "canonicalName": "OnNodeClicked",
    "shortLabel": "OnNodeClicked()",
    "longLabel": "OnNodeClicked(nodeId: string) -> Task",
    "signature": "(nodeId: string) -> Task",
    "purpose": "Called from JS when a node is clicked: notify the interaction service and forward the event to any parent via EventCallback."
  },
  {
    "id": "method:qjg1lv:handlefocussimulation",
    "kind": "method",
    "fileId": "file:jo64ly:knowledgegraph-razor",
    "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
    "line": 112,
    "canonicalName": "HandleFocusSimulation",
    "shortLabel": "HandleFocusSimulation()",
    "longLabel": "HandleFocusSimulation() -> Task",
    "signature": "() -> Task",
    "purpose": "Respond to focus-mode toggles by pausing or resuming the client JS graph simulation."
  },
  {
    "id": "method:lvsss7:disposeasync",
    "kind": "method",
    "fileId": "file:jo64ly:knowledgegraph-razor",
    "path": "NexusReader.UI.Shared/Components/Organisms/KnowledgeGraph.razor",
    "line": 125,
    "canonicalName": "DisposeAsync",
    "shortLabel": "DisposeAsync()",
    "longLabel": "DisposeAsync() -> ValueTask",
    "signature": "() -> ValueTask",
    "purpose": "Unsubscribe event handlers, unmount and dispose the JS module and DotNet helper when the component is disposed."
  }
]