diff --git a/artifacts/tx-os/src/pages/executive-meetings.tsx b/artifacts/tx-os/src/pages/executive-meetings.tsx index 2f80e9d6..9dd1c898 100644 --- a/artifacts/tx-os/src/pages/executive-meetings.tsx +++ b/artifacts/tx-os/src/pages/executive-meetings.tsx @@ -4645,22 +4645,20 @@ function MeetingRow({ onSave={onSaveTitle} ariaLabel={t("executiveMeetings.editMeetingTitle")} dir={isRtl ? "rtl" : "ltr"} - // #641: pin to cell-start alignment (right in AR, left in EN) - // for the view-mode wrapper AND any inner `

` Tiptap saved — - // `safeHtml` keeps `style` attributes (so users can colour / - // size text), which means a stray `text-align: center` saved - // by the editor would otherwise leak into the cell. The - // `!` modifier outranks the inline style so the title always - // reads from the start of the cell regardless of what's - // stored. - className="font-medium leading-snug break-words text-start [&_p]:!text-start" + // Center the title horizontally for the view-mode wrapper AND + // any inner `

` Tiptap saved — `safeHtml` keeps `style` + // attributes (so users can colour / size text), which means a + // stray `text-align` saved by the editor would otherwise leak + // into the cell. The `!` modifier outranks the inline style so + // the title always stays centered regardless of what's stored. + className="font-medium leading-snug break-words text-center [&_p]:!text-center" disabled={!canMutate} testId={`em-edit-title-${meeting.id}`} startInEditMode={autoEditTitle} onStartedEditing={onAutoEditTitleConsumed} /> {meeting.location && ( -

+
{meeting.location}
)} @@ -4757,7 +4755,7 @@ function MeetingRow({ }} ariaLabel={t("executiveMeetings.merge.editLabel")} dir={isRtl ? "rtl" : "ltr"} - className="font-medium leading-snug break-words" + className="font-medium leading-snug break-words text-center [&_p]:!text-center" disabled={!canMutate} placeholder={t("executiveMeetings.merge.placeholder")} testId={`em-merge-edit-${meeting.id}`} @@ -5869,7 +5867,7 @@ function AttendeeGroup({ than a stray line of text. */}
{label}
@@ -5964,7 +5962,7 @@ function AttendeeFlow({ } if (items.length === 0 && !showAdd && !isPending) { - return ; + return ; } // Locate the listIdx where the inline pending ghost should appear, when @@ -6009,7 +6007,7 @@ function AttendeeFlow({ return (
  • +
      {items.flatMap(({ a, i }, listIdx) => { const isSub = (a.kind ?? "person") === "subheading"; const nodes: ReactNode[] = []; @@ -6150,7 +6148,7 @@ function AttendeeFlow({ key={a.id ?? `sub-${i}`} data-testid={`em-attendee-subheading-${i}`} data-attendee-kind="subheading" - className="basis-full text-start font-semibold text-[#0B1E3F]/90 mt-1.5 mb-0.5 leading-snug" + className="basis-full text-center font-semibold text-[#0B1E3F]/90 mt-1.5 mb-0.5 leading-snug" > {editable ? (