/**
 * Authenticated layout top bar: optional actions (titles live in PageHeroSection).
 */
export default function PageHeader({
    title,
    subtitle,
    actions,
    className = '',
}) {
    const hasTitle = Boolean(title);
    const hasAside = Boolean(actions);

    if (!hasTitle && !subtitle && !hasAside) {
        return null;
    }

    return (
        <div
            className={`flex min-w-0 flex-col gap-0.5 sm:flex-row sm:items-center ${
                hasTitle || subtitle
                    ? 'sm:justify-between'
                    : 'sm:justify-end'
            } ${className}`.trim()}
        >
            {(hasTitle || subtitle) && (
                <div className="min-w-0">
                    {hasTitle && (
                        <h2 className="truncate text-lg font-semibold leading-tight text-gray-800 sm:text-xl">
                            {title}
                        </h2>
                    )}
                    {subtitle && (
                        <p className="truncate text-xs text-gray-600 sm:text-sm">
                            {subtitle}
                        </p>
                    )}
                </div>
            )}
            {hasAside && (
                <div className="flex flex-wrap items-center gap-2">
                    {actions}
                </div>
            )}
        </div>
    );
}
