1f225298b17c3404ca48f00541373861634dc3f6
In Arabic/RTL the Postpone dialog (opened from the upcoming-meeting
alert) was visibly overlapping its own borders on two tabs:
1. Postpone tab → cascade preview ("الاجتماعات المتأثرة"): the times
column ran wider than the pink panel, the title column pushed it
off-screen, and the meeting-# header wrapped to two lines while
the others stayed on one.
2. Reschedule tab: three native date / start / end inputs forced into
md:grid-cols-3 inside an sm:max-w-md dialog, which clipped the
right-most input against the dialog frame in RTL.
Both issues were pure layout — the dialog was simply too narrow for
its content.
Changes (artifacts/tx-os/src/components/executive-meetings/upcoming-meeting-alert.tsx):
- Bumped the postpone DialogContent from `sm:max-w-md` (≈448 px) to
`sm:max-w-2xl` (≈672 px). Still full width on phones, capped on
desktop. Reschedule's existing `grid-cols-1 sm:grid-cols-2
md:grid-cols-3` now has room to actually render three inputs at md
without clipping (Input already defaults to w-full).
- CascadePromptBlock affected-meetings table: switched to
`table-fixed` with an explicit `<colgroup>` (w-20 number / flex
title / w-40 times). The number column was bumped from w-12 to
w-20 so the Arabic header "رقم الاجتماع" + `whitespace-nowrap`
has room at common font sizes (raised during code review). Title
cell keeps its `truncate` + `title=` tooltip but no longer needs
`max-w-[180px]`. Added `whitespace-nowrap` to # and times headers
so the latter never wraps. Wrapper got `overflow-x-hidden` to
belt-and-suspenders the no-horizontal-scroll guarantee. Action
button row already used `flex-wrap` — preserved.
Tests (artifacts/tx-os/tests/executive-meetings-upcoming-alert.spec.mjs):
- Added a Reschedule-tab regression test that opens the dialog at
1280×800 in Arabic and asserts the bounding boxes of
`reschedule-date` / `reschedule-start` / `reschedule-end` all sit
inside the dialog's bounding box (1 px tolerance).
- Added a Cascade-table regression test (raised during code review)
that seeds a primary + 2 followers, postpones to fire the cascade
prompt, and asserts the `cascade-followers-list` and the last
`<td>` (times) of the first follower row both sit inside the
dialog at desktop width in RTL.
- Confirmed no behavior regressions across the postpone-by-10,
cascade follower display, tab-switching, and reschedule-to-tomorrow
tests.
Out of scope (per task spec): backend cascade/postpone logic, the
floating alert panel itself, dialog visual restyling, and the Cancel
tab beyond what comes "for free" with the wider dialog.
The pre-existing `test` workflow failures (executive-meetings reorder,
font-settings roundtrip, notes-share recipient PATCH 403/404) are
unrelated to this layout change and were already failing before.
Polish Services: Saudi Coffee rename + image, fix Black Coffee Arabic, hide order notes behind a button (Task #394)
Description
No description provided
Languages
TypeScript
69.4%
JavaScript
29%
CSS
0.6%
Shell
0.6%
Dockerfile
0.2%
Other
0.2%