Rebuild the UI as an app shell: left sidebar, media gallery, structured events

Replaces the centered single-column of full-width cards with a proper application layout: a persistent left sidebar (Trees, and per-tree People/Sources/Media, with the tree name and sign-out) and a constrained content column. Marketing landing and auth pages are split out (own header/footer; centered auth with the logo).

Adds a Media gallery (upload + image thumbnails / file tiles, served via the backend content endpoint). Events are no longer free-text: a curated event-type list (+ custom) and a structured date (qualifier + day/month/year) that composes a proper genealogical date. Regenerated the OpenAPI client.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Justin Paul <justin@jpaul.me>
This commit is contained in:
2026-06-06 21:56:05 -04:00
parent bd8ee9b647
commit fe9a95c60d
12 changed files with 1056 additions and 104 deletions
+1 -8
View File
@@ -56,14 +56,7 @@ export default function TreeDetailPage() {
return (
<div className="space-y-6">
<div className="flex items-center justify-between">
<Link href="/trees" className="text-sm text-[var(--muted)] hover:underline">
All trees
</Link>
<Link href={`/trees/${treeId}/sources`} className="text-sm text-bronze hover:underline">
Sources
</Link>
</div>
<h1 className="text-2xl font-semibold">People</h1>
<Card>
<CardHeader>