--- 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