Files
portainer/app/react/components/Widget/WidgetTitle.tsx
LP B 0c2f07988a feat(app/sources): source create view (#2680)
Co-authored-by: Chaim Lev-Ari <chaim.lev-ari@portainer.io>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-10 21:34:46 +03:00

38 lines
975 B
TypeScript

import clsx from 'clsx';
import { PropsWithChildren, ReactNode } from 'react';
import { WidgetIcon } from './WidgetIcon';
import { useWidgetContext } from './Widget';
interface Props {
title: ReactNode;
icon?: ReactNode;
className?: string;
subtitle?: string;
}
export function WidgetTitle({
title,
icon,
className,
children,
subtitle,
}: PropsWithChildren<Props>) {
const { titleId } = useWidgetContext();
return (
<div className="widget-header">
<div className="flex items-center justify-between">
<span className={clsx('inline-flex items-center gap-1', className)}>
{icon && <WidgetIcon icon={icon} />}
<h2 id={titleId} className={clsx('m-0 text-base', icon && 'ml-1')}>
{title}
</h2>
</span>
<span className={clsx('flex items-center', className)}>{children}</span>
</div>
{subtitle && <span className="text-muted small">{subtitle}</span>}
</div>
);
}