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: {}