Task #727: flush attendees table + rose external pill + darker card text
- AttendeesTable got optional `flush` prop: flush mode drops rounded-xl/border/shadow, uses only border-t so the table attaches full-width inside the expanded booking details card. Dialog usage unchanged (non-flush card style). - Attendee side "خارج الهيئة" pill changed violet → rose (bg-rose-100 text-rose-700), matching the external booking badge. - Darker text in expanded card: title text-slate-900; grid values text-slate-800 font-semibold; removed max-w-2xl width cap. - UI-only; tsc --noEmit clean; architect PASS.
This commit is contained in:
@@ -1225,7 +1225,7 @@ export default function ProtocolPage() {
|
|||||||
<span className="text-[11px] text-slate-400">
|
<span className="text-[11px] text-slate-400">
|
||||||
{t("protocol.bookings.table.title")}
|
{t("protocol.bookings.table.title")}
|
||||||
</span>
|
</span>
|
||||||
<div className="text-sm font-bold text-slate-800">
|
<div className="text-sm font-bold text-slate-900">
|
||||||
{b.title}
|
{b.title}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1272,22 +1272,26 @@ export default function ProtocolPage() {
|
|||||||
<div className="text-[11px] text-slate-400">
|
<div className="text-[11px] text-slate-400">
|
||||||
{label}
|
{label}
|
||||||
</div>
|
</div>
|
||||||
<div className="text-xs font-medium text-slate-700 break-words">
|
<div className="text-xs font-semibold text-slate-800 break-words">
|
||||||
{value != null && value !== "" ? value : "—"}
|
{value != null && value !== "" ? value : "—"}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
<div className="px-4 py-2.5">
|
<div>
|
||||||
<div className="mb-1.5 text-[11px] font-semibold text-slate-400">
|
<div className="px-4 pt-2.5 pb-1.5 text-[11px] font-semibold text-slate-400">
|
||||||
{t("protocol.bookings.keyAttendees")}
|
{t("protocol.bookings.keyAttendees")}
|
||||||
</div>
|
</div>
|
||||||
{b.keyAttendees && b.keyAttendees.length > 0 ? (
|
{b.keyAttendees && b.keyAttendees.length > 0 ? (
|
||||||
<div className="max-w-2xl">
|
<AttendeesTable
|
||||||
<AttendeesTable attendees={b.keyAttendees} t={t} />
|
attendees={b.keyAttendees}
|
||||||
</div>
|
t={t}
|
||||||
|
flush
|
||||||
|
/>
|
||||||
) : (
|
) : (
|
||||||
<span className="text-xs text-slate-600">—</span>
|
<span className="block px-4 pb-2.5 text-xs text-slate-600">
|
||||||
|
—
|
||||||
|
</span>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
{b.status === "rejected" && b.rejectionReason && (
|
{b.status === "rejected" && b.rejectionReason && (
|
||||||
@@ -2473,12 +2477,21 @@ export default function ProtocolPage() {
|
|||||||
function AttendeesTable({
|
function AttendeesTable({
|
||||||
attendees,
|
attendees,
|
||||||
t,
|
t,
|
||||||
|
flush = false,
|
||||||
}: {
|
}: {
|
||||||
attendees: KeyAttendee[];
|
attendees: KeyAttendee[];
|
||||||
t: (key: string) => string;
|
t: (key: string) => string;
|
||||||
|
flush?: boolean;
|
||||||
}) {
|
}) {
|
||||||
return (
|
return (
|
||||||
<div className="overflow-x-auto rounded-xl border border-slate-200 shadow-sm">
|
<div
|
||||||
|
className={cn(
|
||||||
|
"overflow-x-auto",
|
||||||
|
flush
|
||||||
|
? "border-t border-slate-200"
|
||||||
|
: "rounded-xl border border-slate-200 shadow-sm",
|
||||||
|
)}
|
||||||
|
>
|
||||||
<Table>
|
<Table>
|
||||||
<TableHeader>
|
<TableHeader>
|
||||||
<TableRow className="border-b border-slate-200 bg-slate-100/80 hover:bg-slate-100/80">
|
<TableRow className="border-b border-slate-200 bg-slate-100/80 hover:bg-slate-100/80">
|
||||||
@@ -2509,7 +2522,7 @@ function AttendeesTable({
|
|||||||
className={cn(
|
className={cn(
|
||||||
"inline-block whitespace-nowrap rounded-full px-2.5 py-0.5 text-[11px] font-medium",
|
"inline-block whitespace-nowrap rounded-full px-2.5 py-0.5 text-[11px] font-medium",
|
||||||
a.side === "external"
|
a.side === "external"
|
||||||
? "bg-violet-100 text-violet-700"
|
? "bg-rose-100 text-rose-700"
|
||||||
: "bg-sky-100 text-sky-700",
|
: "bg-sky-100 text-sky-700",
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
|
|||||||
Reference in New Issue
Block a user