diff --git a/artifacts/tx-os/src/pages/protocol.tsx b/artifacts/tx-os/src/pages/protocol.tsx
index 2e3f5422..655d6cd3 100644
--- a/artifacts/tx-os/src/pages/protocol.tsx
+++ b/artifacts/tx-os/src/pages/protocol.tsx
@@ -621,7 +621,7 @@ function BookingDayGrid({
{roomName(ev.b.roomId)}
{height >= 44 && (
-
+
{timeLabel(ev.b.startsAt)} – {timeLabel(ev.b.endsAt)}
)}
@@ -1024,8 +1024,12 @@ export default function ProtocolPage() {
new Date(iso).toLocaleDateString(isAr ? "ar" : "en", {
dateStyle: "medium",
});
+ // Latin digits even in Arabic (ar-u-nu-latn) so times look like "12:30 م".
+ // Rendered inside RTL containers WITHOUT dir="ltr": forcing LTR on text
+ // that mixes Latin digits with Arabic ص/م makes the bidi algorithm flip
+ // the order (e.g. "م 1:30 – م 12:30").
const fmtTimeOnly = (iso: string) =>
- new Date(iso).toLocaleTimeString(isAr ? "ar" : "en", {
+ new Date(iso).toLocaleTimeString(isAr ? "ar-u-nu-latn" : "en", {
timeStyle: "short",
});
@@ -1096,7 +1100,7 @@ export default function ProtocolPage() {
{fmtDateOnly(b.startsAt)}
-
+
{fmtTimeOnly(b.startsAt)} – {fmtTimeOnly(b.endsAt)}
@@ -2320,7 +2324,7 @@ export default function ProtocolPage() {
+
{fmtTimeOnly(detailsBooking.startsAt)} –{" "}
{fmtTimeOnly(detailsBooking.endsAt)}