From db8deb232bd7024e3ec975fb4a793ac76dd9b2a7 Mon Sep 17 00:00:00 2001 From: gosangam Date: Mon, 11 May 2026 01:36:49 +0530 Subject: [PATCH] header --- app/about/page.tsx | 36 ++++++++++++++++++++---- components/page-header.tsx | 57 +++++++++++++++++++++++++------------- 2 files changed, 68 insertions(+), 25 deletions(-) diff --git a/app/about/page.tsx b/app/about/page.tsx index 161c992c..8cf09f94 100644 --- a/app/about/page.tsx +++ b/app/about/page.tsx @@ -4,16 +4,18 @@ import { PageHeader } from "@/components/page-header"; import { buildOgMeta } from "@/lib/og"; import { BookOpen, + Users, BrainCircuit, Blocks, Circle, CheckCircle2, + CircleCheck, } from "lucide-react"; const PHASES = [ { title: "Phase I — The Vedabase", - status: "in-progress" as const, + status: "done" as const, icon: BookOpen, description: "Indexing the complete pre-1980s Vedabase into a structured, searchable database — books, letters, essays, magazines, journals, glossary, and disciple records — with a clean, accessible reading interface.", @@ -26,7 +28,21 @@ const PHASES = [ ], }, { - title: "Phase II — AI Companion", + title: "Phase II — Devotee Features", + status: "in-progress" as const, + icon: Users, + description: + "Adding user-centric features so devotees can engage with the archive personally — sign in, save favourite quotes, build collections, share with attribution, and mention passages in their own writing.", + highlights: [ + "Account sign-in and personal profiles", + "Save and organise quotes into collections", + "Share quotes with rich attribution and highlight links", + "Bookmark verses, letters, and lectures for later reading", + "Mention passages — reference any line in the archive from outside the site", + ], + }, + { + title: "Phase III — AI Companion", status: "upcoming" as const, icon: BrainCircuit, description: @@ -38,7 +54,7 @@ const PHASES = [ ], }, { - title: "Phase III — Decentralized Preservation", + title: "Phase IV — Decentralized Preservation", status: "upcoming" as const, icon: Blocks, description: @@ -134,7 +150,7 @@ export default function AboutPage() {

Roadmap

- Our work is organized into three phases — each building on the + Our work is organized into four phases — each building on the last.

@@ -145,13 +161,16 @@ export default function AboutPage() { {PHASES.map((phase, i) => { const Icon = phase.icon; + const isDone = phase.status === "done"; const isInProgress = phase.status === "in-progress"; return (
{/* Timeline node */}
- {isInProgress ? ( + {isDone ? ( + + ) : isInProgress ? (
@@ -167,7 +186,12 @@ export default function AboutPage() {

{phase.title}

- {isInProgress ? ( + {isDone ? ( + + + Complete + + ) : isInProgress ? ( In Progress diff --git a/components/page-header.tsx b/components/page-header.tsx index 5c2ae151..55954151 100644 --- a/components/page-header.tsx +++ b/components/page-header.tsx @@ -48,10 +48,46 @@ export function PageHeader({ className, )} > -
+ {/* + Layout strategy: + - Mobile: actions float to the right so the title text wraps around + them on the first line and uses the FULL container width on every + subsequent line (which is what `pr-*` cannot achieve since padding + applies to all lines). + - Desktop (md+): standard flex row so title and actions sit side-by-side. + */} +
+ {/* Actions — float on mobile (rendered first so float works correctly), + inline flex on desktop. Order doesn't matter visually on desktop + because the parent's `justify-between` places them at the end. */} +
+ + {/* Hide reading settings on mobile when search is active */} +
+ +
+
+ {/* Title / logo area — hidden on mobile when search is active */}
{fromSearch ? ( <> @@ -72,23 +108,6 @@ export function PageHeader({ children )}
- - {/* Actions — expands to fill width on mobile when search is active */} -
- - {/* Hide reading settings on mobile when search is active */} -
- -
-
);