feat(ui): RecordHeader; PageHeader breadcrumb; DataTable rowTone + mono columns
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>feat/client-detail-redesign
parent
c299aea18c
commit
6dbddd9822
@ -0,0 +1,27 @@
|
||||
import type { ReactNode } from 'react'
|
||||
import { avatarColors, initials } from './avatar'
|
||||
|
||||
/** Entity header: avatar + name + status pill + one meta line + action cluster. */
|
||||
export function RecordHeader(props: {
|
||||
name: string
|
||||
avatarSeed?: string
|
||||
status?: ReactNode
|
||||
meta?: ReactNode
|
||||
actions?: ReactNode
|
||||
}) {
|
||||
const seed = props.avatarSeed ?? props.name
|
||||
const { bg, fg } = avatarColors(seed)
|
||||
return (
|
||||
<div className="wf-rec">
|
||||
<div className="wf-avatar" style={{ background: bg, color: fg }}>{initials(seed)}</div>
|
||||
<div className="wf-rec-body">
|
||||
<div className="wf-rec-title">
|
||||
<h1>{props.name}</h1>
|
||||
{props.status}
|
||||
</div>
|
||||
{props.meta !== undefined && <div className="wf-rec-meta">{props.meta}</div>}
|
||||
</div>
|
||||
{props.actions !== undefined && <div className="wf-rec-actions">{props.actions}</div>}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
Loading…
Reference in New Issue