import { getTheme } from "./theme"; // These values bind the shared theme to the owner's approved A3 visual contract. test.each([ ["light", "#ffffff", "#f5f4f9", "#694394", "#302744", "#695e78", "#ddd6e7"], ["dark", "#282334", "#352d43", "#d7b6f7", "#edf0f6", "#cec2da", "#5e526e"], ] as const)("%s uses the approved A3 semantic roles", (mode, canvas, surface, accent, ink, muted, divider) => { const theme = getTheme(mode); const palette = theme.colorSchemes[mode].palette; expect(palette.background.default.toLowerCase()).toBe(canvas); expect(palette.background.elevated.toLowerCase()).toBe(surface); expect(palette.primary.main.toLowerCase()).toBe(accent); expect(palette.text.primary.toLowerCase()).toBe(ink); expect(palette.text.secondary.toLowerCase()).toBe(muted); expect(palette.divider.toLowerCase()).toBe(divider); expect(theme.typography.button.textTransform).toBe("none"); });