This commit is contained in:
Zeeshaun
2026-05-06 15:08:32 +00:00
parent b05a1a954b
commit 0de593c7d3
54 changed files with 4522 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
"use client";
import Link from "next/link";
import type { Route } from "next";
import { usePathname } from "next/navigation";
import { cn } from "@/lib/utils";
const navItems = [
{ href: "/dashboard", label: "Dashboard" },
{ href: "/roster", label: "Roster" },
{ href: "/lineup", label: "Generate Lineup" },
{ href: "/settings", label: "Pitching Rules" }
];
export function AppShell({
title,
subtitle,
children,
actions
}: {
title: string;
subtitle: string;
children: React.ReactNode;
actions?: React.ReactNode;
}) {
const pathname = usePathname();
return (
<div className="app-shell">
<header className="hero">
<div>
<p className="eyebrow">Little League Coach Console</p>
<h1>{title}</h1>
<p className="hero-copy">{subtitle}</p>
</div>
{actions ? <div className="hero-actions">{actions}</div> : null}
</header>
<nav className="tabs" aria-label="Primary">
{navItems.map((item) => (
<Link key={item.href} href={item.href as Route} className={cn("tab", pathname === item.href && "tab-active")}>
{item.label}
</Link>
))}
</nav>
<main className="page-grid">{children}</main>
</div>
);
}