diff --git a/.changeset/dry-turtles-leave.md b/.changeset/dry-turtles-leave.md new file mode 100644 index 0000000000..ebf0de5464 --- /dev/null +++ b/.changeset/dry-turtles-leave.md @@ -0,0 +1,7 @@ +--- +"@khanacademy/perseus-dev-ui": patch +"@khanacademy/perseus": patch +--- + +[Storybook] Configure Aphrodite to Not Append !important to Styles +[Radio] Bugfix - Incorrect choice showing as blue instead of red diff --git a/.storybook/main.ts b/.storybook/main.ts index f8fd25a5e5..eb08bdbeb3 100644 --- a/.storybook/main.ts +++ b/.storybook/main.ts @@ -3,6 +3,25 @@ import {mergeConfig} from "vite"; import type {StorybookConfig} from "@storybook/react-vite"; +// This is a temporary plugin option to mimic what is in PROD in regard to cascade layers. +// Perseus LESS files are wrapped in the 'shared' layer in Webapp. +// To get the same ordering of precedence in Storybook, the imported LESS files need to be wrapped accordingly. +// Once the LESS files have cascade layers included (LEMS-2801), +// then the following plugin option should be removed. +const lessWrapper = { + name: "wrap-less-in-layer", + transform: (code: string, pathname: string) => { + if (pathname.endsWith(".less")) { + const layerStatements = + "@layer reset, shared, legacy;\n@layer shared"; + return { + code: `${layerStatements} { ${code} }`, + map: null, + }; + } + }, +}; + const config: StorybookConfig = { framework: "@storybook/react-vite", @@ -53,6 +72,7 @@ const config: StorybookConfig = { }, // Fix from: https://github.com/storybookjs/storybook/issues/25256#issuecomment-1866441206 assetsInclude: ["/sb-preview/runtime.js"], + plugins: [...viteConfig.plugins, lessWrapper], }); }, staticDirs: ["../static"], diff --git a/dev/vite.config.ts b/dev/vite.config.ts index b1f6268979..2fdf22f2da 100644 --- a/dev/vite.config.ts +++ b/dev/vite.config.ts @@ -27,6 +27,10 @@ export default defineConfig({ hubble: resolve(__dirname, "../vendor/hubble/hubble.js"), raphael: resolve(__dirname, "../vendor/raphael/raphael.js"), jsdiff: resolve(__dirname, "../vendor/jsdiff/jsdiff.js"), + aphrodite: resolve( + __dirname, + "../node_modules/aphrodite/no-important", + ), ...packageAliases, }, }, diff --git a/packages/perseus/src/widgets/group/__snapshots__/group.test.tsx.snap b/packages/perseus/src/widgets/group/__snapshots__/group.test.tsx.snap index c81b660127..fdeff76800 100644 --- a/packages/perseus/src/widgets/group/__snapshots__/group.test.tsx.snap +++ b/packages/perseus/src/widgets/group/__snapshots__/group.test.tsx.snap @@ -189,10 +189,9 @@ exports[`group widget should snapshot: initial render 1`] = ` style="border-color: transparent; border-radius: 50%;" >