forked from Lilly-Protocol/lily-frontend
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpage-scaffold.tsx
More file actions
76 lines (70 loc) · 2.78 KB
/
Copy pathpage-scaffold.tsx
File metadata and controls
76 lines (70 loc) · 2.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import type { RouteScaffold } from "@/types/site";
import { ImplementationAreasWrapper } from "./implementation-areas-wrapper";
type PageScaffoldProps = {
<div className="flex flex-wrap items-start justify-between gap-4 min-w-0">
readonly dynamicLabel?: string;
readonly statusMessage?: string;
};
export function PageScaffold({
route,
dynamicLabel,
statusMessage,
}: PageScaffoldProps) {
return (
<main className="surface rounded-[1.75rem] p-8 sm:p-10">
<p className="eyebrow text-(--color-accent)">{route.section}</p>
<div className="mt-4 flex flex-wrap items-start justify-between gap-4">
<div>
<h1 className="text-4xl font-semibold tracking-tight">
{route.title}
</h1>
<p className="mt-4 max-w-3xl text-lg leading-8 text-(--color-muted)">
{route.purpose}
</p>
</div>
<div className="rounded-2xl border border-(--color-line) bg-(--color-panel-muted) px-4 py-3 font-mono text-sm text-(--color-muted)">
{dynamicLabel ?? route.path}
</div>
</div>
{statusMessage ? (
<p
role="status"
aria-live="polite"
aria-atomic="true"
className="mt-6 rounded-2xl border border-[var(--color-line)] bg-[var(--color-panel-muted)] px-4 py-3 text-sm text-[var(--color-muted)]"
>
{statusMessage}
</p>
) : null}
<section className="mt-8 grid gap-6 lg:grid-cols-[1.2fr_0.8fr]">
<article className="rounded-3xl border border-(--color-line) bg-(--color-panel-muted) p-6">
<h2 className="text-xl font-semibold">
Contributor implementation note
</h2>
<p className="mt-3 text-base leading-7 text-(--color-muted)">
This route is intentionally scaffolded. Contributors should
implement the real experience from the approved Figma design rather
than reuse removed demo content.
</p>
<p className="mt-4 text-base leading-7 text-(--color-muted)">
{route.figmaScope}
</p>
<p className="mt-4 text-base leading-7 text-[var(--color-muted)]">{route.figmaScope}</p>
</article>
<article className="rounded-3xl border border-(--color-line) bg-(--color-panel-muted) p-6">
<h2 className="text-xl font-semibold">Natural issue slices</h2>
<ul className="mt-4 grid gap-3">
{route.implementationAreas.map((area) => (
<li
key={area}
className="rounded-2xl border border-[var(--color-line)] bg-[var(--color-panel-solid)] px-4 py-3 text-sm text-[var(--color-muted)]"
>
{area}
</li>
))}
</ul>
</article>
</section>
</section>
);
}