1import { SingleColorToken } from "@tokens-studio/types"
2import { color_token } from "./token"
3import { Players } from "../create_theme"
4import { useTheme } from "../../../src/common"
5
6export type PlayerToken = Record<"selection" | "cursor", SingleColorToken>
7
8export type PlayersToken = Record<keyof Players, PlayerToken>
9
10function build_player_token(index: number): PlayerToken {
11 const theme = useTheme()
12 const player_number = index.toString() as keyof Players
13
14 return {
15 selection: color_token(
16 `player${index}Selection`,
17 theme.players[player_number].selection
18 ),
19 cursor: color_token(
20 `player${index}Cursor`,
21 theme.players[player_number].cursor
22 ),
23 }
24}
25
26export const players_token = (): PlayersToken => {
27 return {
28 "0": build_player_token(0),
29 "1": build_player_token(1),
30 "2": build_player_token(2),
31 "3": build_player_token(3),
32 "4": build_player_token(4),
33 "5": build_player_token(5),
34 "6": build_player_token(6),
35 "7": build_player_token(7),
36 }
37}