1import { SingleColorToken } from "@tokens-studio/types"
2import { ColorScheme, Players } from "../../common"
3import { colorToken } from "./token"
4
5export type PlayerToken = Record<"selection" | "cursor", SingleColorToken>
6
7export type PlayersToken = Record<keyof Players, PlayerToken>
8
9function buildPlayerToken(colorScheme: ColorScheme, index: number): PlayerToken {
10
11 const playerNumber = index.toString() as keyof Players
12
13 return {
14 selection: colorToken(`player${index}Selection`, colorScheme.players[playerNumber].selection),
15 cursor: colorToken(`player${index}Cursor`, colorScheme.players[playerNumber].cursor),
16 }
17}
18
19export const playersToken = (colorScheme: ColorScheme): PlayersToken => ({
20 "0": buildPlayerToken(colorScheme, 0),
21 "1": buildPlayerToken(colorScheme, 1),
22 "2": buildPlayerToken(colorScheme, 2),
23 "3": buildPlayerToken(colorScheme, 3),
24 "4": buildPlayerToken(colorScheme, 4),
25 "5": buildPlayerToken(colorScheme, 5),
26 "6": buildPlayerToken(colorScheme, 6),
27 "7": buildPlayerToken(colorScheme, 7)
28})