Telegram-iOS/submodules/InstantPageUI
isaac 9dada484aa InstantPage V2: proper RTL layout for rich messages
When a rich message's page-level rtl flag is set, mirror every V2 block
ornament and content column onto the trailing (right) edge, gated solely on
the explicit flag (no content auto-detection, no send/wire change, V2 only):

- Two centralized leading/trailing geometry helpers (instantPageV2ContentColumnX
  / instantPageV2LeadingEdgeX) as the single source of truth for gutter side.
- Lists: content column mirrors to match the marker (8pt trailing gap).
- Blockquotes: bar + text gutter on the trailing edge, single- and multi-block
  (multi-block child band rigid-translated; caption uses its own single-inset
  delta).
- <details>: chevron + title indented from the right (rtl flag on the item).
- Uniform trailing alignment for paragraph/heading/simple-text.
- Keep the full bounding width for non-leading alignment so display-time
  alignment lands at the true edge: .right (RTL text) was collapsing short
  content to the leading edge under fitToWidth (the list-gap), and .center
  (pull quotes) was failing to center body + author. Only .natural shrinks.

LTR output is unchanged (.right/.center are only produced under RTL contexts /
pull quotes). Builds clean; runtime-verified on an rtl message with lists,
blockquotes, pull quotes, and inline formatting.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 15:01:59 +02:00
..
Sources InstantPage V2: proper RTL layout for rich messages 2026-06-04 15:01:59 +02:00
BUILD InstantPage V2: audio/music rendering, playback, and file-bubble styling 2026-06-02 17:44:45 +02:00