PageHeader вынесен из OpsDashboard; empty чартов/очереди — EmptyState по центру. Co-authored-by: Cursor <cursoragent@cursor.com>
23 lines
729 B
TypeScript
23 lines
729 B
TypeScript
import type { ReactNode } from 'react'
|
|
|
|
interface PageHeaderProps {
|
|
title: string
|
|
description?: ReactNode
|
|
actions?: ReactNode
|
|
}
|
|
|
|
/** Page-level section header — etalon EvoBGP / Domains list. */
|
|
export function PageHeader({ title, description, actions }: PageHeaderProps) {
|
|
return (
|
|
<div className="flex flex-col gap-2 md:flex-row md:items-center md:justify-between">
|
|
<div className="flex flex-col gap-px">
|
|
<h1 className="text-2xl font-semibold tracking-tight">{title}</h1>
|
|
{description ? (
|
|
<p className="text-muted-foreground text-sm">{description}</p>
|
|
) : null}
|
|
</div>
|
|
{actions ? <div className="flex items-center gap-2">{actions}</div> : null}
|
|
</div>
|
|
)
|
|
}
|