"use client"; import Link from "next/link"; import type { ReactNode } from "react"; import { cn } from "@/lib/utils"; export function adminSubnavItemClassName(active: boolean, disabled = false): string { if (disabled) { return "border-b-2 border-transparent px-4 py-3 text-sm font-medium text-muted-foreground/45 cursor-not-allowed"; } return cn( "relative -mb-px shrink-0 border-b-2 px-4 py-3 text-sm font-medium transition-colors", active ? "border-primary text-primary" : "border-transparent text-muted-foreground hover:border-border/80 hover:text-foreground", ); } type AdminSubnavProps = { children: ReactNode; className?: string; /** Accessible name for the tab list */ "aria-label": string; }; /** Underline-style horizontal tab bar used across admin page headers. */ export function AdminSubnav({ children, className, "aria-label": ariaLabel }: AdminSubnavProps) { return ( ); } type AdminSubnavLinkProps = { href: string; active: boolean; children: ReactNode; className?: string; disabled?: boolean; disabledTitle?: string; }; export function AdminSubnavLink({ href, active, children, className, disabled = false, disabledTitle, }: AdminSubnavLinkProps) { if (disabled) { return ( {children} ); } return ( {children} ); } type AdminSubnavButtonProps = { active: boolean; onClick: () => void; children: ReactNode; className?: string; count?: number; disabled?: boolean; }; export function AdminSubnavButton({ active, onClick, children, className, count, disabled = false, }: AdminSubnavButtonProps) { return ( ); } type AdminSubnavBarProps = { children: ReactNode; trailing?: ReactNode; className?: string; }; /** Wrapper for subnav plus optional trailing controls (site selector, back link, etc.). */ export function AdminSubnavBar({ children, trailing, className }: AdminSubnavBarProps) { return (