---
title: "API Reference"
description: "Complete reference for props, types, and configuration options"
sidebarTitle: "API Reference"
---
## Component Props
### Core Props
Array of documents with their associated memories to display in the graph. This is the primary data source for the visualization.
```tsx
```
Indicates whether the initial data is currently loading. Shows a loading indicator overlay.
```tsx
```
Error object to display if data fetching fails. Shows an error state with the error message.
```tsx
```
Content to display when no documents are available. Useful for custom empty states.
```tsx
No memories yet
```
### Display Props
Visual variant that determines the default zoom level and UI layout.
- **console**: Full dashboard view (zoom: 0.8, spaces selector shown, legend bottom-right)
- **consumer**: Embedded widget view (zoom: 0.5, spaces selector hidden, legend top-right)
```tsx
{/* Full dashboard */}
{/* Embedded widget */}
```
Controls visibility of the spaces/container filter dropdown. Defaults to `true` for console variant, `false` for consumer variant.
```tsx
{/* Force show on consumer variant */}
```
Custom ID for the legend element. Useful for DOM targeting or testing.
```tsx
```
### Highlighting Props
Array of document IDs to highlight in the graph. Supports both internal IDs and custom IDs. Perfect for showing search results or filtered content.
```tsx
```
Controls whether highlights are currently visible. Useful for toggling highlights on/off.
```tsx
const [showHighlights, setShowHighlights] = useState(true)
```
### Pagination Props
For large datasets, implement pagination to load documents incrementally:
Indicates whether additional data is being loaded. Shows a loading indicator without blocking interactions.
```tsx
```
Indicates whether more documents are available to load.
```tsx
```
Total number of documents currently loaded. Displayed in the loading indicator.
```tsx
```
Async callback function to load more documents. Called automatically when user scrolls near the viewport edge.
```tsx
const loadMore = async () => {
const nextPage = await fetchNextPage()
setDocuments(prev => [...prev, ...nextPage])
}
```
### Advanced Props
Number of pixels occluded on the right side (e.g., by a chat panel). Used to adjust auto-fit calculations.
```tsx
{/* Account for 400px chat panel on the right */}
```
Enable automatic loading when 80% of documents are visible in viewport. Set to `false` for manual pagination control.
```tsx
```
Custom theme class name for styling overrides. Use with Vanilla Extract theme system.
```tsx
import { customTheme } from './my-theme.css'
```
## TypeScript Types
### Core Data Types
```typescript
interface DocumentWithMemories {
id: string
customId?: string | null
title?: string
content?: string
summary?: string
url?: string
summaryEmbedding?: number[] // For similarity calculations
memoryEntries: MemoryEntry[]
createdAt: string
updatedAt: string
userId?: string
spaceId?: string
spaceContainerTag?: string
}
interface MemoryEntry {
id: string
documentId: string
content: string | null
embedding?: number[]
spaceContainerTag?: string
spaceId?: string
updatesMemoryId?: string | null
relation?: 'updates' | 'extends' | 'derives' | null
isForgotten?: boolean
isLatest?: boolean
forgetAfter?: string | null
createdAt: string
updatedAt: string
}
```
### Graph Types
```typescript
interface GraphNode {
id: string
type: 'document' | 'memory'
x: number
y: number
data: DocumentWithMemories | MemoryEntry
size: number
color: string
isHovered: boolean
isDragging: boolean
}
interface GraphEdge {
id: string
source: string
target: string
similarity: number // 0-1 for semantic similarity
visualProps: {
opacity: number
thickness: number
glow: number
pulseDuration: number
}
color: string
edgeType: 'doc-memory' | 'doc-doc' | 'version'
relationType?: 'updates' | 'extends' | 'derives'
}
```
### Component Props Type
```typescript
interface MemoryGraphProps {
// Core
documents: DocumentWithMemories[]
isLoading?: boolean
error?: Error | null
children?: ReactNode
// Display
variant?: 'console' | 'consumer'
showSpacesSelector?: boolean
legendId?: string
// Highlighting
highlightDocumentIds?: string[]
highlightsVisible?: boolean
// Pagination
isLoadingMore?: boolean
hasMore?: boolean
totalLoaded?: number
loadMoreDocuments?: () => Promise
// Advanced
occludedRightPx?: number
autoLoadOnViewport?: boolean
themeClassName?: string
}
```
## Variants Comparison
| Feature | Console | Consumer |
|---------|---------|----------|
| **Initial Zoom** | 0.8 (closer view) | 0.5 (wider view) |
| **Spaces Selector** | Shown by default | Hidden by default |
| **Legend Position** | Bottom-right | Top-right |
| **Best For** | Full-page dashboards | Embedded widgets |
| **Use Cases** | Admin panels, analytics | Sidebars, chat integration |
### Console Variant
```tsx
```
{/* TODO: Add console variant screenshot */}
### Consumer Variant
```tsx
```
{/* TODO: Add consumer variant screenshot */}
## Type Imports
Import all types you need for TypeScript:
```typescript
import type {
// Data types
DocumentWithMemories,
MemoryEntry,
DocumentsResponse,
// Graph types
GraphNode,
GraphEdge,
MemoryRelation,
// Component types
MemoryGraphProps,
// Theme types (if customizing)
Sprinkles,
} from '@supermemory/memory-graph'
```
## Next Steps
See real-world implementation patterns
Solve common issues