fix(client): three more places follow the reading direction in Arabic

On a phone in Arabic every system notice, the release notes included,
opened as an empty sheet: its three-slot strip is shifted to show the
middle slot, and in a right-to-left row that shift moved all three out
of view. The shifts point the other way in a right-to-left page now,
which the swipe handling already assumed.

The budget's total amount kept its parts in order but sat on the
opposite edge from its label, because the whole row was made left to
right. Only the amount itself is now. The phone chat's bubble tails
were still physical corners while the desktop ones follow the row; both
use logical corners now.

lint:rtl takes comments from the TypeScript parser instead of scanning
lines, so a "/*" inside a string (accept="image/*") no longer hides the
lines after it.
This commit is contained in:
Maurice
2026-10-08 00:01:43 +00:00
parent 0126ef3401
commit d4eccb39a3
7 changed files with 68 additions and 46 deletions
@@ -471,7 +471,7 @@ function ChatBubbleRow({ msg, own, showHeader, isLastInGroup, marginTop, is12h,
className={`px-[13px] py-[9px] text-[0.8125rem] leading-[1.45] ${
own ? 'bg-m-act text-m-actfg' : 'border border-[color:var(--m-rowbr)] bg-[color:var(--m-ic)] text-m-ink'
}`}
style={{ borderRadius: own ? OWN_BUBBLE_RADIUS : OTHER_BUBBLE_RADIUS }}
style={own ? OWN_BUBBLE_RADIUS : OTHER_BUBBLE_RADIUS}
>
{hasReply && (
<div className="mb-1 rounded-[10px] bg-[color:var(--m-card)] px-[10px] py-[5px]">
@@ -54,9 +54,10 @@ export const QUICK_REACTIONS = ['❤️', '😂', '👍', '😮', '😢', '🔥'
/** Bubble corner radii, spec 03 §6.1 — constant per sender, not per group
* position (grouping is expressed through spacing + a single trailing
* timestamp instead, see MCollabChat). */
export const OWN_BUBBLE_RADIUS = '16px 16px 4px 16px'
export const OTHER_BUBBLE_RADIUS = '4px 16px 16px 16px'
* timestamp instead, see MCollabChat). Logical corners, so the tail follows
* the row to the other side in a right-to-left language. */
export const OWN_BUBBLE_RADIUS = { borderStartStartRadius: 16, borderStartEndRadius: 16, borderEndEndRadius: 4, borderEndStartRadius: 16 } as const
export const OTHER_BUBBLE_RADIUS = { borderStartStartRadius: 4, borderStartEndRadius: 16, borderEndEndRadius: 16, borderEndStartRadius: 16 } as const
// SQLite stores UTC without a 'Z' suffix — append one so JS parses it as UTC
// rather than local time (same fix the desktop helpers apply).