import React from 'react'; import { Breadcrumbs, BreadcrumbItem } from './Breadcrumbs'; export type PageHeaderProps = { /** Page title */ title: React.ReactNode; /** Subtitle shown after title */ subtitle?: React.ReactNode; /** Icon before title */ icon?: React.ReactNode; /** Breadcrumb items */ breadcrumbs?: BreadcrumbItem[]; /** Breadcrumb line actions (right side of breadcrumb line) */ breadcrumbActions?: React.ReactNode; /** Header actions (buttons, dropdowns on right side of page title) */ actions?: React.ReactNode; /** Additional className */ className?: string; /** Show breadcrumb line (default true) */ showBreadcrumbLine?: boolean; }; /** * Layout 3 page header component. * * Structure: * - breadcrumb-line (optional): breadcrumbs + header-elements * - page-header-content: page-title + header-elements with actions */ export function PageHeader({ title, subtitle, icon, breadcrumbs, breadcrumbActions, actions, className = '', showBreadcrumbLine = true }: PageHeaderProps) { return (
{/* Breadcrumb line */} {showBreadcrumbLine && breadcrumbs && (
{breadcrumbActions && (
{breadcrumbActions}
)}
)} {/* Page header content */}

{icon && {icon}} {title} {subtitle && - {subtitle}}

{actions && (
{actions}
)}
); } export type BreadcrumbElementProps = { icon?: React.ReactNode; children: React.ReactNode; href?: string; }; /** * Breadcrumb action element for page header. */ export function BreadcrumbElement({ icon, children, href = '#' }: BreadcrumbElementProps) { return ( {icon && {icon}} {children} ); }