UI System Logic Check
Challenge on lesson: Checkpoint: UI System Logic
Implement three UI-system helpers:
1. resolveTokens(scopes) โ scopes is an array of token objects applied in order (earliest first). RETURN one merged object; later scopes override earlier ones token by token.
2. applyTheme(state, action) โ state is { mode: "light" | "dark" | "system", explicit: boolean }. Actions: { type: "set", mode } sets an explicit mode, { type: "reset" } returns to { mode: "system", explicit: false }. RETURN the new state; never mutate the input.
3. motionPolicy(prefersReducedMotion, userSetting) โ userSetting is "system" | "reduced" | "full". RETURN "reduced" when the user explicitly chose reduced OR (user chose system AND prefersReducedMotion is true); otherwise "full".
Back to lesson: Checkpoint: UI System Logic