---
/**
* The reading map — an orbiting point cloud of every passage read, traced in the
* order it was highlighted.
*
* import ReadingMap from '../components/ReadingMap.astro';
*
*
* Pieces:
* src/components/ReadingMap.astro ← this file
* src/lib/reading-map.js ← the renderer (shared with the standalone preview
* in c0smere_devops/library-rag/umap/web)
* src/styles/reading-map.css ← the chrome
* public/reading_umap.json ← `uv run umap/export.py -o …`
*
* ⚠️ The payload is a STATIC SNAPSHOT. Nothing on cyrion regenerates it — the 5-minute
* auto-build rebuilds the site, not the data. New reading only reaches this map when
* someone re-runs `export.py` and commits the result. See library-rag/umap/PLAN.md §7.
*/
import '../styles/reading-map.css';
interface Props {
/** Payload URL. Same-origin: a static file, not an API call. */
src?: string;
/** Caption under the canvas. Pass `null` to omit. */
caption?: string | null;
}
const {
src = '/reading_umap.json',
caption = 'Every passage I have read, arranged by what it is about — traced in the order I highlighted it.',
} = Astro.props;
---
{caption && {caption}}