diff --git a/external-admin/src/i18n/emotionCache.integration.test.jsx b/external-admin/src/i18n/emotionCache.integration.test.jsx
new file mode 100644
index 0000000..18acb18
--- /dev/null
+++ b/external-admin/src/i18n/emotionCache.integration.test.jsx
@@ -0,0 +1,25 @@
+import { CacheProvider } from "@emotion/react";
+import Button from "@mui/material/Button";
+import { createTheme, ThemeProvider } from "@mui/material/styles";
+import { render, screen } from "@testing-library/react";
+import { expect, test } from "vitest";
+import { externalEmotionCache } from "./emotionCache.js";
+
+test("keeps MUI mounted when the live page switches from LTR to RTL", () => {
+ const view = render();
+ expect(screen.getByRole("button", { name: "ltr" })).toBeInTheDocument();
+
+ // Exercise Emotion's real insert pipeline: a standalone Stylis serializer test cannot detect a plugin resolved from a second, incompatible Stylis version.
+ expect(() => view.rerender()).not.toThrow();
+ expect(screen.getByRole("button", { name: "rtl" })).toBeInTheDocument();
+});
+
+function DirectionProbe({ direction }) {
+ return (
+
+
+
+
+
+ );
+}
diff --git a/package.json b/package.json
index 0236793..97dad83 100644
--- a/package.json
+++ b/package.json
@@ -30,7 +30,7 @@
"react": "19.2.5",
"react-dom": "19.2.5",
"react-router-dom": "^7.14.2",
- "stylis": "4.4.0",
+ "stylis": "4.2.0",
"svgaplayerweb": "2.3.2",
"zod": "^4.4.1"
},
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 3385623..58abe24 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -25,7 +25,7 @@ importers:
version: 9.0.0(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
'@mui/stylis-plugin-rtl':
specifier: 9.1.1
- version: 9.1.1(stylis@4.4.0)
+ version: 9.1.1(stylis@4.2.0)
'@tanstack/react-query':
specifier: ^5.100.6
version: 5.100.6(react@19.2.5)
@@ -45,8 +45,8 @@ importers:
specifier: ^7.14.2
version: 7.14.2(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
stylis:
- specifier: 4.4.0
- version: 4.4.0
+ specifier: 4.2.0
+ version: 4.2.0
svgaplayerweb:
specifier: 2.3.2
version: 2.3.2
@@ -1876,9 +1876,6 @@ packages:
stylis@4.2.0:
resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==}
- stylis@4.4.0:
- resolution: {integrity: sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==}
-
supports-color@10.2.2:
resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==}
engines: {node: '>=18'}
@@ -2591,11 +2588,11 @@ snapshots:
'@emotion/react': 11.14.0(@types/react@19.2.14)(react@19.2.5)
'@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5)
- '@mui/stylis-plugin-rtl@9.1.1(stylis@4.4.0)':
+ '@mui/stylis-plugin-rtl@9.1.1(stylis@4.2.0)':
dependencies:
'@babel/runtime': 7.29.2
cssjanus: 2.3.1
- stylis: 4.4.0
+ stylis: 4.2.0
'@mui/system@9.0.0(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5)':
dependencies:
@@ -3844,8 +3841,6 @@ snapshots:
stylis@4.2.0: {}
- stylis@4.4.0: {}
-
supports-color@10.2.2: {}
supports-preserve-symlinks-flag@1.0.0: {}