From 920b66b79fb63122af0f667d84f3b785ba5e4b48 Mon Sep 17 00:00:00 2001 From: chirokas <157580465+chirokas@users.noreply.github.com> Date: Sat, 20 Sep 2025 13:12:36 +0000 Subject: [PATCH 1/2] fix(s2): Fix ColorLoupe position in ColorSlider for RTL locales --- packages/@react-spectrum/s2/src/ColorSlider.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/@react-spectrum/s2/src/ColorSlider.tsx b/packages/@react-spectrum/s2/src/ColorSlider.tsx index 5fb7994722e..d9a78172a0e 100644 --- a/packages/@react-spectrum/s2/src/ColorSlider.tsx +++ b/packages/@react-spectrum/s2/src/ColorSlider.tsx @@ -41,7 +41,7 @@ export const ColorSlider = forwardRef(function ColorSlider(props: ColorSliderPro let {UNSAFE_className = '', UNSAFE_style, styles} = props; let containerRef = useDOMRef(ref); let trackRef = useRef(null); - let {locale} = useLocale(); + let {direction, locale} = useLocale(); return ( { - let x = state.orientation === 'horizontal' ? state.getThumbPercent(0) : 0.5; + let thumbLeft = direction === 'ltr' ? state.getThumbPercent(0) : 1 - state.getThumbPercent(0); + let x = state.orientation === 'horizontal' ? thumbLeft : 0.5; let y = state.orientation === 'horizontal' ? 0.5 : 1 - state.getThumbPercent(0); return {x, y}; }} /> From 90e5358c26646652b78d60cd5ebc0c7a639a8147 Mon Sep 17 00:00:00 2001 From: chirokas <157580465+chirokas@users.noreply.github.com> Date: Mon, 22 Sep 2025 11:56:57 +0000 Subject: [PATCH 2/2] Fix ColorArea in RTL locales --- packages/@react-spectrum/s2/src/ColorArea.tsx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/@react-spectrum/s2/src/ColorArea.tsx b/packages/@react-spectrum/s2/src/ColorArea.tsx index 12548bef8ea..6c401b3efa8 100644 --- a/packages/@react-spectrum/s2/src/ColorArea.tsx +++ b/packages/@react-spectrum/s2/src/ColorArea.tsx @@ -13,7 +13,8 @@ import { ColorArea as AriaColorArea, ColorAreaProps as AriaColorAreaProps, - ContextValue + ContextValue, + useLocale } from 'react-aria-components'; import {ColorHandle} from './ColorHandle'; import {createContext, forwardRef} from 'react'; @@ -34,6 +35,7 @@ export const ColorArea = forwardRef(function ColorArea(props: ColorAreaProps, re [props, ref] = useSpectrumContextProps(props, ref, ColorAreaContext); let {UNSAFE_className = '', UNSAFE_style, styles} = props; let containerRef = useDOMRef(ref); + let {direction} = useLocale(); return ( ( state.getThumbPosition()} />) + getPosition={() => { + let {x, y} = state.getThumbPosition(); + return { + x: direction === 'ltr' ? x : 1 - x, + y + }; + }} />) } );