{/*
This second layout toggle is hidden, but needed to reserve the correct spot in the DIV
for the fixed toggle above to fit into. If we wouldn't make it fixed in this view, the transition
would be really weird, because the element is positioned fixed in the month view, and then
- when switching layouts wouldn't anymmore, causing it to animate from the center to the top right,
- while it actuall already was on place. That's why we have this element twice.
+ when switching layouts wouldn't anymore, causing it to animate from the center to the top right,
+ while it actually already was on place. That's why we have this element twice.
*/}
diff --git a/packages/features/bookings/components/AvailableTimes.tsx b/packages/features/bookings/components/AvailableTimes.tsx
index 539f0a489d..ed80ad0b31 100644
--- a/packages/features/bookings/components/AvailableTimes.tsx
+++ b/packages/features/bookings/components/AvailableTimes.tsx
@@ -69,7 +69,7 @@ export const AvailableTimes = ({
{showTimeFormatToggle && (
-
+
)}
diff --git a/packages/features/bookings/components/event-meta/AvailableEventLocations.tsx b/packages/features/bookings/components/event-meta/AvailableEventLocations.tsx
index e0c8467275..a3ee446b6d 100644
--- a/packages/features/bookings/components/event-meta/AvailableEventLocations.tsx
+++ b/packages/features/bookings/components/event-meta/AvailableEventLocations.tsx
@@ -112,7 +112,7 @@ export function AvailableEventLocations({ locations }: { locations: LocationObje
) : filteredLocations.length === 1 ? (
-
+
{filteredLocations}
) : null;
diff --git a/packages/features/bookings/components/event-meta/Details.tsx b/packages/features/bookings/components/event-meta/Details.tsx
index 997bfeaadd..c5eaddc6b4 100644
--- a/packages/features/bookings/components/event-meta/Details.tsx
+++ b/packages/features/bookings/components/event-meta/Details.tsx
@@ -86,7 +86,7 @@ export const EventMetaBlock = ({
)}
/>
) : (
- <>{!!Icon &&
}>
+ <>{!!Icon &&
}>
)}
{children}
@@ -128,9 +128,9 @@ export const EventDetails = ({ event, blocks = defaultEventDetailsBlocks }: Even
case EventDetailBlocks.LOCATION:
if (!event?.locations?.length) return null;
return (
-
+
-
+
);
case EventDetailBlocks.REQUIRES_CONFIRMATION:
diff --git a/packages/features/calendars/DatePicker.tsx b/packages/features/calendars/DatePicker.tsx
index 6a8c7c973d..10d708c0bc 100644
--- a/packages/features/calendars/DatePicker.tsx
+++ b/packages/features/calendars/DatePicker.tsx
@@ -241,7 +241,7 @@ const DatePicker = ({
changeMonth(+1)}
data-testid="incrementMonth"
color="minimal"
diff --git a/packages/features/calendars/weeklyview/components/DateValues/index.tsx b/packages/features/calendars/weeklyview/components/DateValues/index.tsx
index 24d929de8e..1fefead3d1 100644
--- a/packages/features/calendars/weeklyview/components/DateValues/index.tsx
+++ b/packages/features/calendars/weeklyview/components/DateValues/index.tsx
@@ -2,6 +2,7 @@ import React from "react";
import dayjs from "@calcom/dayjs";
import { classNames } from "@calcom/lib";
+import { useLocale } from "@calcom/lib/hooks/useLocale";
type Props = {
days: dayjs.Dayjs[];
@@ -9,10 +10,14 @@ type Props = {
};
export function DateValues({ days, containerNavRef }: Props) {
+ const { i18n } = useLocale();
+ const formatDate = (date: dayjs.Dayjs): string => {
+ return new Intl.DateTimeFormat(i18n.language, { weekday: "short" }).format(date.toDate());
+ };
return (
+ className="bg-default dark:bg-muted border-b-subtle rtl:border-r-default sticky top-[var(--calendar-dates-sticky-offset,0px)] z-[80] flex-none border-b border-r sm:pr-8">
{days.map((day) => {
const isToday = dayjs().isSame(day, "day");
@@ -34,7 +39,7 @@ export function DateValues({ days, containerNavRef }: Props) {
})}
-
+
{days.map((day) => {
const isToday = dayjs().isSame(day, "day");
return (
@@ -45,7 +50,7 @@ export function DateValues({ days, containerNavRef }: Props) {
isToday && "font-bold"
)}>
- {day.format("ddd")}{" "}
+ {formatDate(day)}{" "}
{hours.map((hour) => (
-
+
{/* We need to force the minute to zero, because otherwise in ex GMT+5.5, it would show :30 minute times (but at the positino of :00) */}
{hour.minute(0).format(timeFormat)}
))}
-
diff --git a/packages/features/calendars/weeklyview/components/verticalLines/index.tsx b/packages/features/calendars/weeklyview/components/verticalLines/index.tsx
index a08c19888b..80b1b11cbb 100644
--- a/packages/features/calendars/weeklyview/components/verticalLines/index.tsx
+++ b/packages/features/calendars/weeklyview/components/verticalLines/index.tsx
@@ -1,16 +1,28 @@
import type dayjs from "@calcom/dayjs";
export const VeritcalLines = ({ days }: { days: dayjs.Dayjs[] }) => {
+ const isRTL = () => {
+ const userLocale = navigator.language;
+ const userLanguage = new Intl.Locale(userLocale).language;
+ return ["ar", "he", "fa", "ur"].includes(userLanguage);
+ };
+
+ const direction = isRTL() ? "rtl" : "ltr";
+
return (
+ auto-cols-auto grid-rows-1 divide-x sm:pr-8"
+ dir={direction}
+ style={{
+ direction: direction,
+ }}>
{days.map((_, i) => (
))}
diff --git a/packages/ui/components/alert/Alert.tsx b/packages/ui/components/alert/Alert.tsx
index 2f6a4422ee..c54f755bc8 100644
--- a/packages/ui/components/alert/Alert.tsx
+++ b/packages/ui/components/alert/Alert.tsx
@@ -83,7 +83,7 @@ export const Alert = forwardRef
((props, ref) => {
)}
-
+
{props.title}
{props.message}
diff --git a/packages/ui/components/form/toggleGroup/ToggleGroup.tsx b/packages/ui/components/form/toggleGroup/ToggleGroup.tsx
index 9bb52441e8..5df1d7e616 100644
--- a/packages/ui/components/form/toggleGroup/ToggleGroup.tsx
+++ b/packages/ui/components/form/toggleGroup/ToggleGroup.tsx
@@ -40,7 +40,7 @@ export const ToggleGroup = ({ options, onValueChange, isFullWidth, ...props }: T
{...props}
onValueChange={onValueChange}
className={classNames(
- "min-h-9 border-default bg-default relative inline-flex gap-0.5 rounded-md border p-1",
+ "min-h-9 border-default bg-default relative inline-flex gap-0.5 rounded-md border p-1 rtl:flex-row-reverse",
props.className,
isFullWidth && "w-full"
)}>