Photos live on disk as photos/<board_key>/<file>.{jpg,jpeg,png} (a read-only
volume). A cached directory index (60s TTL) attaches a `photos` URL list to each
surface in /api/map; a /photos StaticFiles mount serves the files. Photos are
public — shown to anonymous visitors and managers alike.
The balloon renders a gallery (main image + thumbnail strip + "1 / N" counter);
clicking a thumbnail swaps the main image, and clicking the main image / "+N"
opens a fullscreen lightbox over the map (prev/next, Esc, backdrop close).
Surfaces without photos render exactly as before.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
23 lines
468 B
JSON
23 lines
468 B
JSON
{
|
|
"name": "mapdash-frontend",
|
|
"private": true,
|
|
"version": "0.2.7",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"typecheck": "tsc --noEmit",
|
|
"build": "tsc --noEmit && vite build"
|
|
},
|
|
"dependencies": {
|
|
"@fontsource/ibm-plex-sans": "^5.3.0",
|
|
"keycloak-js": "^26.2.4",
|
|
"open-props": "^1.7.23",
|
|
"vis-data": "^7.1.9",
|
|
"vis-timeline": "^7.7.3"
|
|
},
|
|
"devDependencies": {
|
|
"typescript": "^5.6.3",
|
|
"vite": "^5.4.10"
|
|
}
|
|
}
|