86e1499e8f
- Design system foundations: Plus Jakarta Sans font, shadow-card/radius tokens in @theme, design-reference/DESIGN-SYSTEM.md with component inventory - Collapsible admin shell (AdminShell): smooth w-64<->w-20 sidebar, new top header with "Admin" + avatar placeholder, localStorage-persisted state - Rename route /admin/leads -> /admin/pipeline (redirect stubs preserved), nav label Lead -> Pipeline; DB table unchanged - Reusable primitives: StatusBadge, SearchInput, SegmentedToggle (dual-theme) - Luxury restyle of lead table, kanban (6 stages + @dnd-kit intact), PageHeader - Tokenize editable-cell / option-multi-select for dark-mode legibility Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
18 lines
514 B
TypeScript
18 lines
514 B
TypeScript
import type { ReactNode } from "react";
|
|
|
|
export function PageHeader({ title, subtitle, action }: {
|
|
title: string;
|
|
subtitle?: string;
|
|
action?: ReactNode;
|
|
}) {
|
|
return (
|
|
<div className="mb-6 flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4">
|
|
<div>
|
|
<h1 className="text-2xl font-semibold tracking-tight text-foreground">{title}</h1>
|
|
{subtitle && <p className="mt-1 text-xs text-muted-foreground">{subtitle}</p>}
|
|
</div>
|
|
{action}
|
|
</div>
|
|
);
|
|
}
|