brainrot-cli 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +372 -0
- package/dist/AchievementNotification.d.ts +28 -0
- package/dist/AchievementNotification.d.ts.map +1 -0
- package/dist/AchievementNotification.js +74 -0
- package/dist/AchievementNotification.js.map +1 -0
- package/dist/GameSelector.d.ts +25 -0
- package/dist/GameSelector.d.ts.map +1 -0
- package/dist/GameSelector.js +105 -0
- package/dist/GameSelector.js.map +1 -0
- package/dist/HelpOverlay.d.ts +15 -0
- package/dist/HelpOverlay.d.ts.map +1 -0
- package/dist/HelpOverlay.js +134 -0
- package/dist/HelpOverlay.js.map +1 -0
- package/dist/Layout.d.ts +49 -0
- package/dist/Layout.d.ts.map +1 -0
- package/dist/Layout.js +83 -0
- package/dist/Layout.js.map +1 -0
- package/dist/Leaderboard.d.ts +46 -0
- package/dist/Leaderboard.d.ts.map +1 -0
- package/dist/Leaderboard.js +68 -0
- package/dist/Leaderboard.js.map +1 -0
- package/dist/LogViewer.d.ts +33 -0
- package/dist/LogViewer.d.ts.map +1 -0
- package/dist/LogViewer.js +179 -0
- package/dist/LogViewer.js.map +1 -0
- package/dist/LoopAlertOverlay.d.ts +15 -0
- package/dist/LoopAlertOverlay.d.ts.map +1 -0
- package/dist/LoopAlertOverlay.js +17 -0
- package/dist/LoopAlertOverlay.js.map +1 -0
- package/dist/LoopManagementPanel.d.ts +44 -0
- package/dist/LoopManagementPanel.d.ts.map +1 -0
- package/dist/LoopManagementPanel.js +220 -0
- package/dist/LoopManagementPanel.js.map +1 -0
- package/dist/SettingsMenu.d.ts +22 -0
- package/dist/SettingsMenu.d.ts.map +1 -0
- package/dist/SettingsMenu.js +367 -0
- package/dist/SettingsMenu.js.map +1 -0
- package/dist/SplitPane.d.ts +63 -0
- package/dist/SplitPane.d.ts.map +1 -0
- package/dist/SplitPane.js +104 -0
- package/dist/SplitPane.js.map +1 -0
- package/dist/StatsMenu.d.ts +15 -0
- package/dist/StatsMenu.d.ts.map +1 -0
- package/dist/StatsMenu.js +230 -0
- package/dist/StatsMenu.js.map +1 -0
- package/dist/StatusBar.d.ts +58 -0
- package/dist/StatusBar.d.ts.map +1 -0
- package/dist/StatusBar.js +106 -0
- package/dist/StatusBar.js.map +1 -0
- package/dist/__tests__/ralph-loop-parser.test.d.ts +2 -0
- package/dist/__tests__/ralph-loop-parser.test.d.ts.map +1 -0
- package/dist/__tests__/ralph-loop-parser.test.js +143 -0
- package/dist/__tests__/ralph-loop-parser.test.js.map +1 -0
- package/dist/claude-code-process.d.ts +76 -0
- package/dist/claude-code-process.d.ts.map +1 -0
- package/dist/claude-code-process.js +221 -0
- package/dist/claude-code-process.js.map +1 -0
- package/dist/cli.d.ts +42 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +265 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +206 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +270 -0
- package/dist/config.js.map +1 -0
- package/dist/game-types.d.ts +177 -0
- package/dist/game-types.d.ts.map +1 -0
- package/dist/game-types.js +55 -0
- package/dist/game-types.js.map +1 -0
- package/dist/games/MinesweeperGame.d.ts +15 -0
- package/dist/games/MinesweeperGame.d.ts.map +1 -0
- package/dist/games/MinesweeperGame.js +555 -0
- package/dist/games/MinesweeperGame.js.map +1 -0
- package/dist/games/PongGame.d.ts +15 -0
- package/dist/games/PongGame.d.ts.map +1 -0
- package/dist/games/PongGame.js +379 -0
- package/dist/games/PongGame.js.map +1 -0
- package/dist/games/SnakeGame.d.ts +15 -0
- package/dist/games/SnakeGame.d.ts.map +1 -0
- package/dist/games/SnakeGame.js +333 -0
- package/dist/games/SnakeGame.js.map +1 -0
- package/dist/games/TetrisGame.d.ts +15 -0
- package/dist/games/TetrisGame.d.ts.map +1 -0
- package/dist/games/TetrisGame.js +654 -0
- package/dist/games/TetrisGame.js.map +1 -0
- package/dist/games/index.d.ts +23 -0
- package/dist/games/index.d.ts.map +1 -0
- package/dist/games/index.js +47 -0
- package/dist/games/index.js.map +1 -0
- package/dist/high-scores.d.ts +57 -0
- package/dist/high-scores.d.ts.map +1 -0
- package/dist/high-scores.js +230 -0
- package/dist/high-scores.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +264 -0
- package/dist/index.js.map +1 -0
- package/dist/ralph-loop-parser.d.ts +58 -0
- package/dist/ralph-loop-parser.d.ts.map +1 -0
- package/dist/ralph-loop-parser.js +315 -0
- package/dist/ralph-loop-parser.js.map +1 -0
- package/dist/stats.d.ts +142 -0
- package/dist/stats.d.ts.map +1 -0
- package/dist/stats.js +521 -0
- package/dist/stats.js.map +1 -0
- package/dist/styled-components.d.ts +231 -0
- package/dist/styled-components.d.ts.map +1 -0
- package/dist/styled-components.js +192 -0
- package/dist/styled-components.js.map +1 -0
- package/dist/theme.d.ts +301 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +372 -0
- package/dist/theme.js.map +1 -0
- package/dist/themes.d.ts +117 -0
- package/dist/themes.d.ts.map +1 -0
- package/dist/themes.js +296 -0
- package/dist/themes.js.map +1 -0
- package/dist/ui/index.d.ts +13 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +29 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/use-claude-code.d.ts +30 -0
- package/dist/use-claude-code.d.ts.map +1 -0
- package/dist/use-claude-code.js +84 -0
- package/dist/use-claude-code.js.map +1 -0
- package/dist/use-config.d.ts +58 -0
- package/dist/use-config.d.ts.map +1 -0
- package/dist/use-config.js +113 -0
- package/dist/use-config.js.map +1 -0
- package/dist/use-game-loop.d.ts +47 -0
- package/dist/use-game-loop.d.ts.map +1 -0
- package/dist/use-game-loop.js +136 -0
- package/dist/use-game-loop.js.map +1 -0
- package/dist/use-high-scores.d.ts +41 -0
- package/dist/use-high-scores.d.ts.map +1 -0
- package/dist/use-high-scores.js +94 -0
- package/dist/use-high-scores.js.map +1 -0
- package/dist/use-layout-state.d.ts +77 -0
- package/dist/use-layout-state.d.ts.map +1 -0
- package/dist/use-layout-state.js +160 -0
- package/dist/use-layout-state.js.map +1 -0
- package/dist/use-ralph-loop.d.ts +41 -0
- package/dist/use-ralph-loop.d.ts.map +1 -0
- package/dist/use-ralph-loop.js +106 -0
- package/dist/use-ralph-loop.js.map +1 -0
- package/dist/use-spinner.d.ts +46 -0
- package/dist/use-spinner.d.ts.map +1 -0
- package/dist/use-spinner.js +71 -0
- package/dist/use-spinner.js.map +1 -0
- package/dist/use-stats.d.ts +59 -0
- package/dist/use-stats.d.ts.map +1 -0
- package/dist/use-stats.js +150 -0
- package/dist/use-stats.js.map +1 -0
- package/dist/use-terminal-size.d.ts +29 -0
- package/dist/use-terminal-size.d.ts.map +1 -0
- package/dist/use-terminal-size.js +48 -0
- package/dist/use-terminal-size.js.map +1 -0
- package/dist/useTheme.d.ts +76 -0
- package/dist/useTheme.d.ts.map +1 -0
- package/dist/useTheme.js +136 -0
- package/dist/useTheme.js.map +1 -0
- package/package.json +58 -0
package/dist/theme.d.ts
ADDED
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme System
|
|
3
|
+
*
|
|
4
|
+
* Centralized visual styling for a modern terminal aesthetic.
|
|
5
|
+
* Provides consistent colors, typography, spacing, and visual constants.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Primary color palette - semantic colors for consistent UI
|
|
9
|
+
*/
|
|
10
|
+
export declare const colors: {
|
|
11
|
+
readonly primary: "cyan";
|
|
12
|
+
readonly secondary: "magenta";
|
|
13
|
+
readonly accent: "yellow";
|
|
14
|
+
readonly success: "green";
|
|
15
|
+
readonly warning: "yellow";
|
|
16
|
+
readonly error: "red";
|
|
17
|
+
readonly info: "cyan";
|
|
18
|
+
readonly text: "white";
|
|
19
|
+
readonly textMuted: "gray";
|
|
20
|
+
readonly textDim: "gray";
|
|
21
|
+
readonly border: "gray";
|
|
22
|
+
readonly borderFocus: "cyan";
|
|
23
|
+
readonly borderActive: "yellow";
|
|
24
|
+
readonly bgHighlight: "cyan";
|
|
25
|
+
readonly bgWarning: "yellow";
|
|
26
|
+
readonly bgError: "red";
|
|
27
|
+
readonly bgSuccess: "green";
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Status colors for loop/process states
|
|
31
|
+
*/
|
|
32
|
+
export declare const statusColors: {
|
|
33
|
+
readonly idle: "gray";
|
|
34
|
+
readonly running: "green";
|
|
35
|
+
readonly paused: "yellow";
|
|
36
|
+
readonly completed: "cyan";
|
|
37
|
+
readonly errored: "red";
|
|
38
|
+
readonly waiting_for_input: "magenta";
|
|
39
|
+
readonly starting: "yellow";
|
|
40
|
+
readonly stopping: "yellow";
|
|
41
|
+
readonly stopped: "gray";
|
|
42
|
+
readonly crashed: "red";
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Alert type colors
|
|
46
|
+
*/
|
|
47
|
+
export declare const alertColors: {
|
|
48
|
+
readonly question: "cyan";
|
|
49
|
+
readonly confirmation: "yellow";
|
|
50
|
+
readonly error: "red";
|
|
51
|
+
readonly permission: "magenta";
|
|
52
|
+
readonly info: "cyan";
|
|
53
|
+
readonly success: "green";
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Game-specific colors
|
|
57
|
+
*/
|
|
58
|
+
export declare const gameColors: {
|
|
59
|
+
readonly player: "cyan";
|
|
60
|
+
readonly opponent: "magenta";
|
|
61
|
+
readonly item: "yellow";
|
|
62
|
+
readonly obstacle: "red";
|
|
63
|
+
readonly bonus: "green";
|
|
64
|
+
readonly neutral: "gray";
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Position ranking colors (for leaderboards)
|
|
68
|
+
*/
|
|
69
|
+
export declare const rankColors: {
|
|
70
|
+
readonly first: "yellow";
|
|
71
|
+
readonly second: "white";
|
|
72
|
+
readonly third: "white";
|
|
73
|
+
readonly top3: "yellow";
|
|
74
|
+
readonly highlighted: "green";
|
|
75
|
+
readonly normal: undefined;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Box drawing characters for borders and frames
|
|
79
|
+
*/
|
|
80
|
+
export declare const boxChars: {
|
|
81
|
+
readonly light: {
|
|
82
|
+
readonly topLeft: "┌";
|
|
83
|
+
readonly topRight: "┐";
|
|
84
|
+
readonly bottomLeft: "└";
|
|
85
|
+
readonly bottomRight: "┘";
|
|
86
|
+
readonly horizontal: "─";
|
|
87
|
+
readonly vertical: "│";
|
|
88
|
+
readonly teeDown: "┬";
|
|
89
|
+
readonly teeUp: "┴";
|
|
90
|
+
readonly teeRight: "├";
|
|
91
|
+
readonly teeLeft: "┤";
|
|
92
|
+
readonly cross: "┼";
|
|
93
|
+
};
|
|
94
|
+
readonly heavy: {
|
|
95
|
+
readonly topLeft: "┏";
|
|
96
|
+
readonly topRight: "┓";
|
|
97
|
+
readonly bottomLeft: "┗";
|
|
98
|
+
readonly bottomRight: "┛";
|
|
99
|
+
readonly horizontal: "━";
|
|
100
|
+
readonly vertical: "┃";
|
|
101
|
+
readonly teeDown: "┳";
|
|
102
|
+
readonly teeUp: "┻";
|
|
103
|
+
readonly teeRight: "┣";
|
|
104
|
+
readonly teeLeft: "┫";
|
|
105
|
+
readonly cross: "╋";
|
|
106
|
+
};
|
|
107
|
+
readonly double: {
|
|
108
|
+
readonly topLeft: "╔";
|
|
109
|
+
readonly topRight: "╗";
|
|
110
|
+
readonly bottomLeft: "╚";
|
|
111
|
+
readonly bottomRight: "╝";
|
|
112
|
+
readonly horizontal: "═";
|
|
113
|
+
readonly vertical: "║";
|
|
114
|
+
readonly teeDown: "╦";
|
|
115
|
+
readonly teeUp: "╩";
|
|
116
|
+
readonly teeRight: "╠";
|
|
117
|
+
readonly teeLeft: "╣";
|
|
118
|
+
readonly cross: "╬";
|
|
119
|
+
};
|
|
120
|
+
readonly rounded: {
|
|
121
|
+
readonly topLeft: "╭";
|
|
122
|
+
readonly topRight: "╮";
|
|
123
|
+
readonly bottomLeft: "╰";
|
|
124
|
+
readonly bottomRight: "╯";
|
|
125
|
+
readonly horizontal: "─";
|
|
126
|
+
readonly vertical: "│";
|
|
127
|
+
readonly teeDown: "┬";
|
|
128
|
+
readonly teeUp: "┴";
|
|
129
|
+
readonly teeRight: "├";
|
|
130
|
+
readonly teeLeft: "┤";
|
|
131
|
+
readonly cross: "┼";
|
|
132
|
+
};
|
|
133
|
+
};
|
|
134
|
+
/**
|
|
135
|
+
* Status indicator icons
|
|
136
|
+
*/
|
|
137
|
+
export declare const statusIcons: {
|
|
138
|
+
readonly idle: "○";
|
|
139
|
+
readonly running: "●";
|
|
140
|
+
readonly paused: "◐";
|
|
141
|
+
readonly completed: "✓";
|
|
142
|
+
readonly errored: "✗";
|
|
143
|
+
readonly waiting_for_input: "?";
|
|
144
|
+
readonly starting: "◔";
|
|
145
|
+
readonly stopping: "◔";
|
|
146
|
+
readonly stopped: "○";
|
|
147
|
+
readonly crashed: "✗";
|
|
148
|
+
};
|
|
149
|
+
/**
|
|
150
|
+
* Alert/notification icons
|
|
151
|
+
*/
|
|
152
|
+
export declare const alertIcons: {
|
|
153
|
+
readonly question: "?";
|
|
154
|
+
readonly confirmation: "!";
|
|
155
|
+
readonly error: "✗";
|
|
156
|
+
readonly permission: "⚿";
|
|
157
|
+
readonly info: "ℹ";
|
|
158
|
+
readonly success: "✓";
|
|
159
|
+
readonly warning: "⚠";
|
|
160
|
+
};
|
|
161
|
+
/**
|
|
162
|
+
* Navigation and action icons
|
|
163
|
+
*/
|
|
164
|
+
export declare const navIcons: {
|
|
165
|
+
readonly arrowRight: "▸";
|
|
166
|
+
readonly arrowLeft: "◂";
|
|
167
|
+
readonly arrowUp: "▴";
|
|
168
|
+
readonly arrowDown: "▾";
|
|
169
|
+
readonly bullet: "•";
|
|
170
|
+
readonly checkbox: "☐";
|
|
171
|
+
readonly checkboxChecked: "☑";
|
|
172
|
+
readonly radio: "○";
|
|
173
|
+
readonly radioSelected: "●";
|
|
174
|
+
readonly pointer: "›";
|
|
175
|
+
readonly chevronRight: "»";
|
|
176
|
+
readonly chevronLeft: "«";
|
|
177
|
+
};
|
|
178
|
+
/**
|
|
179
|
+
* Progress and loading indicators
|
|
180
|
+
*/
|
|
181
|
+
export declare const progressChars: {
|
|
182
|
+
readonly filled: "█";
|
|
183
|
+
readonly empty: "░";
|
|
184
|
+
readonly half: "▓";
|
|
185
|
+
readonly light: "▒";
|
|
186
|
+
readonly spinner: readonly ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
|
|
187
|
+
readonly dots: readonly ["⠁", "⠂", "⠄", "⡀", "⢀", "⠠", "⠐", "⠈"];
|
|
188
|
+
readonly braille: readonly ["⣾", "⣽", "⣻", "⢿", "⡿", "⣟", "⣯", "⣷"];
|
|
189
|
+
readonly clock: readonly ["🕐", "🕑", "🕒", "🕓", "🕔", "🕕", "🕖", "🕗", "🕘", "🕙", "🕚", "🕛"];
|
|
190
|
+
};
|
|
191
|
+
/**
|
|
192
|
+
* Game-specific characters
|
|
193
|
+
*/
|
|
194
|
+
export declare const gameChars: {
|
|
195
|
+
readonly ball: "●";
|
|
196
|
+
readonly paddle: "█";
|
|
197
|
+
readonly block: "█";
|
|
198
|
+
readonly empty: " ";
|
|
199
|
+
readonly wall: "▓";
|
|
200
|
+
readonly snakeHead: "●";
|
|
201
|
+
readonly snakeBody: "○";
|
|
202
|
+
readonly food: "◆";
|
|
203
|
+
readonly tetrominoFilled: "█";
|
|
204
|
+
readonly tetrominoGhost: "▒";
|
|
205
|
+
readonly tetrominoEmpty: "·";
|
|
206
|
+
readonly mine: "✱";
|
|
207
|
+
readonly flag: "⚑";
|
|
208
|
+
readonly unknown: "■";
|
|
209
|
+
readonly revealed: "□";
|
|
210
|
+
};
|
|
211
|
+
/**
|
|
212
|
+
* Decorative elements
|
|
213
|
+
*/
|
|
214
|
+
export declare const decorChars: {
|
|
215
|
+
readonly sparkle: "✦";
|
|
216
|
+
readonly star: "★";
|
|
217
|
+
readonly starEmpty: "☆";
|
|
218
|
+
readonly heart: "♥";
|
|
219
|
+
readonly diamond: "◆";
|
|
220
|
+
readonly club: "♣";
|
|
221
|
+
readonly spade: "♠";
|
|
222
|
+
readonly music: "♪";
|
|
223
|
+
readonly sun: "☀";
|
|
224
|
+
readonly moon: "☽";
|
|
225
|
+
readonly lightning: "⚡";
|
|
226
|
+
readonly fire: "🔥";
|
|
227
|
+
readonly trophy: "🏆";
|
|
228
|
+
};
|
|
229
|
+
/**
|
|
230
|
+
* Pre-configured border styles for Ink components
|
|
231
|
+
*/
|
|
232
|
+
export declare const borderStyles: {
|
|
233
|
+
readonly default: "single";
|
|
234
|
+
readonly focused: "round";
|
|
235
|
+
readonly active: "double";
|
|
236
|
+
readonly alert: "round";
|
|
237
|
+
readonly panel: "single";
|
|
238
|
+
readonly card: "round";
|
|
239
|
+
readonly modal: "double";
|
|
240
|
+
};
|
|
241
|
+
/**
|
|
242
|
+
* Consistent spacing values
|
|
243
|
+
*/
|
|
244
|
+
export declare const spacing: {
|
|
245
|
+
readonly none: 0;
|
|
246
|
+
readonly xs: 1;
|
|
247
|
+
readonly sm: 1;
|
|
248
|
+
readonly md: 2;
|
|
249
|
+
readonly lg: 3;
|
|
250
|
+
readonly xl: 4;
|
|
251
|
+
};
|
|
252
|
+
/**
|
|
253
|
+
* Get a spinner frame based on elapsed time
|
|
254
|
+
*/
|
|
255
|
+
export declare function getSpinnerFrame(elapsedMs: number, type?: keyof typeof progressChars): string;
|
|
256
|
+
/**
|
|
257
|
+
* Create a progress bar string
|
|
258
|
+
*/
|
|
259
|
+
export declare function createProgressBar(percentage: number, width?: number, filled?: string, empty?: string): string;
|
|
260
|
+
/**
|
|
261
|
+
* Create a horizontal divider line
|
|
262
|
+
*/
|
|
263
|
+
export declare function createDivider(width: number, style?: keyof typeof boxChars): string;
|
|
264
|
+
/**
|
|
265
|
+
* Create a box frame (top or bottom line with corners)
|
|
266
|
+
*/
|
|
267
|
+
export declare function createBoxLine(width: number, position: "top" | "bottom", style?: keyof typeof boxChars): string;
|
|
268
|
+
/**
|
|
269
|
+
* Get color for a status value
|
|
270
|
+
*/
|
|
271
|
+
export declare function getStatusColor(status: string): string;
|
|
272
|
+
/**
|
|
273
|
+
* Get icon for a status value
|
|
274
|
+
*/
|
|
275
|
+
export declare function getStatusIcon(status: string): string;
|
|
276
|
+
/**
|
|
277
|
+
* Get color for an alert type
|
|
278
|
+
*/
|
|
279
|
+
export declare function getAlertColor(type: string): string;
|
|
280
|
+
/**
|
|
281
|
+
* Get icon for an alert type
|
|
282
|
+
*/
|
|
283
|
+
export declare function getAlertIcon(type: string): string;
|
|
284
|
+
/**
|
|
285
|
+
* Get color for a rank position
|
|
286
|
+
*/
|
|
287
|
+
export declare function getRankColor(position: number, isHighlighted?: boolean): string | undefined;
|
|
288
|
+
/**
|
|
289
|
+
* Truncate text with ellipsis
|
|
290
|
+
*/
|
|
291
|
+
export declare function truncate(text: string, maxLength: number): string;
|
|
292
|
+
/**
|
|
293
|
+
* Pad text to center within a width
|
|
294
|
+
*/
|
|
295
|
+
export declare function centerText(text: string, width: number): string;
|
|
296
|
+
export type ColorKey = keyof typeof colors;
|
|
297
|
+
export type StatusColorKey = keyof typeof statusColors;
|
|
298
|
+
export type AlertColorKey = keyof typeof alertColors;
|
|
299
|
+
export type BoxStyle = keyof typeof boxChars;
|
|
300
|
+
export type BorderStyle = keyof typeof borderStyles;
|
|
301
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;CAyBT,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;CAWf,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;CAOd,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;CAOb,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;CAOb,CAAC;AAMX;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDX,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;CAWd,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;CAQb,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;CAaX,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;CAShB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;CAuBZ,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;CAcb,CAAC;AAMX;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;CAQf,CAAC;AAMX;;GAEG;AACH,eAAO,MAAM,OAAO;;;;;;;CAOV,CAAC;AAMX;;GAEG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,MAAM,OAAO,aAAyB,GAC3C,MAAM,CAOR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,MAAW,EAClB,MAAM,GAAE,MAA6B,EACrC,KAAK,GAAE,MAA4B,GAClC,MAAM,CAKR;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAM,OAAO,QAAkB,GACrC,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,KAAK,GAAG,QAAQ,EAC1B,KAAK,GAAE,MAAM,OAAO,QAAkB,GACrC,MAAM,CAOR;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,GAAE,OAAe,GAAG,MAAM,GAAG,SAAS,CAKjG;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAI9D;AAMD,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,MAAM,CAAC;AAC3C,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,YAAY,CAAC;AACvD,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,WAAW,CAAC;AACrD,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,QAAQ,CAAC;AAC7C,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,YAAY,CAAC"}
|
package/dist/theme.js
ADDED
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme System
|
|
3
|
+
*
|
|
4
|
+
* Centralized visual styling for a modern terminal aesthetic.
|
|
5
|
+
* Provides consistent colors, typography, spacing, and visual constants.
|
|
6
|
+
*/
|
|
7
|
+
// ============================================================================
|
|
8
|
+
// COLOR PALETTE
|
|
9
|
+
// ============================================================================
|
|
10
|
+
/**
|
|
11
|
+
* Primary color palette - semantic colors for consistent UI
|
|
12
|
+
*/
|
|
13
|
+
export const colors = {
|
|
14
|
+
// Brand colors
|
|
15
|
+
primary: "cyan",
|
|
16
|
+
secondary: "magenta",
|
|
17
|
+
accent: "yellow",
|
|
18
|
+
// Semantic colors
|
|
19
|
+
success: "green",
|
|
20
|
+
warning: "yellow",
|
|
21
|
+
error: "red",
|
|
22
|
+
info: "cyan",
|
|
23
|
+
// Neutrals
|
|
24
|
+
text: "white",
|
|
25
|
+
textMuted: "gray",
|
|
26
|
+
textDim: "gray",
|
|
27
|
+
border: "gray",
|
|
28
|
+
borderFocus: "cyan",
|
|
29
|
+
borderActive: "yellow",
|
|
30
|
+
// Background indicators (used with dim/inverse text)
|
|
31
|
+
bgHighlight: "cyan",
|
|
32
|
+
bgWarning: "yellow",
|
|
33
|
+
bgError: "red",
|
|
34
|
+
bgSuccess: "green",
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Status colors for loop/process states
|
|
38
|
+
*/
|
|
39
|
+
export const statusColors = {
|
|
40
|
+
idle: "gray",
|
|
41
|
+
running: "green",
|
|
42
|
+
paused: "yellow",
|
|
43
|
+
completed: "cyan",
|
|
44
|
+
errored: "red",
|
|
45
|
+
waiting_for_input: "magenta",
|
|
46
|
+
starting: "yellow",
|
|
47
|
+
stopping: "yellow",
|
|
48
|
+
stopped: "gray",
|
|
49
|
+
crashed: "red",
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Alert type colors
|
|
53
|
+
*/
|
|
54
|
+
export const alertColors = {
|
|
55
|
+
question: "cyan",
|
|
56
|
+
confirmation: "yellow",
|
|
57
|
+
error: "red",
|
|
58
|
+
permission: "magenta",
|
|
59
|
+
info: "cyan",
|
|
60
|
+
success: "green",
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Game-specific colors
|
|
64
|
+
*/
|
|
65
|
+
export const gameColors = {
|
|
66
|
+
player: "cyan",
|
|
67
|
+
opponent: "magenta",
|
|
68
|
+
item: "yellow",
|
|
69
|
+
obstacle: "red",
|
|
70
|
+
bonus: "green",
|
|
71
|
+
neutral: "gray",
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Position ranking colors (for leaderboards)
|
|
75
|
+
*/
|
|
76
|
+
export const rankColors = {
|
|
77
|
+
first: "yellow",
|
|
78
|
+
second: "white",
|
|
79
|
+
third: "white",
|
|
80
|
+
top3: "yellow",
|
|
81
|
+
highlighted: "green",
|
|
82
|
+
normal: undefined,
|
|
83
|
+
};
|
|
84
|
+
// ============================================================================
|
|
85
|
+
// UNICODE CHARACTERS
|
|
86
|
+
// ============================================================================
|
|
87
|
+
/**
|
|
88
|
+
* Box drawing characters for borders and frames
|
|
89
|
+
*/
|
|
90
|
+
export const boxChars = {
|
|
91
|
+
// Light box drawing
|
|
92
|
+
light: {
|
|
93
|
+
topLeft: "┌",
|
|
94
|
+
topRight: "┐",
|
|
95
|
+
bottomLeft: "└",
|
|
96
|
+
bottomRight: "┘",
|
|
97
|
+
horizontal: "─",
|
|
98
|
+
vertical: "│",
|
|
99
|
+
teeDown: "┬",
|
|
100
|
+
teeUp: "┴",
|
|
101
|
+
teeRight: "├",
|
|
102
|
+
teeLeft: "┤",
|
|
103
|
+
cross: "┼",
|
|
104
|
+
},
|
|
105
|
+
// Heavy box drawing
|
|
106
|
+
heavy: {
|
|
107
|
+
topLeft: "┏",
|
|
108
|
+
topRight: "┓",
|
|
109
|
+
bottomLeft: "┗",
|
|
110
|
+
bottomRight: "┛",
|
|
111
|
+
horizontal: "━",
|
|
112
|
+
vertical: "┃",
|
|
113
|
+
teeDown: "┳",
|
|
114
|
+
teeUp: "┻",
|
|
115
|
+
teeRight: "┣",
|
|
116
|
+
teeLeft: "┫",
|
|
117
|
+
cross: "╋",
|
|
118
|
+
},
|
|
119
|
+
// Double line box drawing
|
|
120
|
+
double: {
|
|
121
|
+
topLeft: "╔",
|
|
122
|
+
topRight: "╗",
|
|
123
|
+
bottomLeft: "╚",
|
|
124
|
+
bottomRight: "╝",
|
|
125
|
+
horizontal: "═",
|
|
126
|
+
vertical: "║",
|
|
127
|
+
teeDown: "╦",
|
|
128
|
+
teeUp: "╩",
|
|
129
|
+
teeRight: "╠",
|
|
130
|
+
teeLeft: "╣",
|
|
131
|
+
cross: "╬",
|
|
132
|
+
},
|
|
133
|
+
// Rounded box drawing
|
|
134
|
+
rounded: {
|
|
135
|
+
topLeft: "╭",
|
|
136
|
+
topRight: "╮",
|
|
137
|
+
bottomLeft: "╰",
|
|
138
|
+
bottomRight: "╯",
|
|
139
|
+
horizontal: "─",
|
|
140
|
+
vertical: "│",
|
|
141
|
+
teeDown: "┬",
|
|
142
|
+
teeUp: "┴",
|
|
143
|
+
teeRight: "├",
|
|
144
|
+
teeLeft: "┤",
|
|
145
|
+
cross: "┼",
|
|
146
|
+
},
|
|
147
|
+
};
|
|
148
|
+
/**
|
|
149
|
+
* Status indicator icons
|
|
150
|
+
*/
|
|
151
|
+
export const statusIcons = {
|
|
152
|
+
idle: "○",
|
|
153
|
+
running: "●",
|
|
154
|
+
paused: "◐",
|
|
155
|
+
completed: "✓",
|
|
156
|
+
errored: "✗",
|
|
157
|
+
waiting_for_input: "?",
|
|
158
|
+
starting: "◔",
|
|
159
|
+
stopping: "◔",
|
|
160
|
+
stopped: "○",
|
|
161
|
+
crashed: "✗",
|
|
162
|
+
};
|
|
163
|
+
/**
|
|
164
|
+
* Alert/notification icons
|
|
165
|
+
*/
|
|
166
|
+
export const alertIcons = {
|
|
167
|
+
question: "?",
|
|
168
|
+
confirmation: "!",
|
|
169
|
+
error: "✗",
|
|
170
|
+
permission: "⚿",
|
|
171
|
+
info: "ℹ",
|
|
172
|
+
success: "✓",
|
|
173
|
+
warning: "⚠",
|
|
174
|
+
};
|
|
175
|
+
/**
|
|
176
|
+
* Navigation and action icons
|
|
177
|
+
*/
|
|
178
|
+
export const navIcons = {
|
|
179
|
+
arrowRight: "▸",
|
|
180
|
+
arrowLeft: "◂",
|
|
181
|
+
arrowUp: "▴",
|
|
182
|
+
arrowDown: "▾",
|
|
183
|
+
bullet: "•",
|
|
184
|
+
checkbox: "☐",
|
|
185
|
+
checkboxChecked: "☑",
|
|
186
|
+
radio: "○",
|
|
187
|
+
radioSelected: "●",
|
|
188
|
+
pointer: "›",
|
|
189
|
+
chevronRight: "»",
|
|
190
|
+
chevronLeft: "«",
|
|
191
|
+
};
|
|
192
|
+
/**
|
|
193
|
+
* Progress and loading indicators
|
|
194
|
+
*/
|
|
195
|
+
export const progressChars = {
|
|
196
|
+
filled: "█",
|
|
197
|
+
empty: "░",
|
|
198
|
+
half: "▓",
|
|
199
|
+
light: "▒",
|
|
200
|
+
spinner: ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"],
|
|
201
|
+
dots: ["⠁", "⠂", "⠄", "⡀", "⢀", "⠠", "⠐", "⠈"],
|
|
202
|
+
braille: ["⣾", "⣽", "⣻", "⢿", "⡿", "⣟", "⣯", "⣷"],
|
|
203
|
+
clock: ["🕐", "🕑", "🕒", "🕓", "🕔", "🕕", "🕖", "🕗", "🕘", "🕙", "🕚", "🕛"],
|
|
204
|
+
};
|
|
205
|
+
/**
|
|
206
|
+
* Game-specific characters
|
|
207
|
+
*/
|
|
208
|
+
export const gameChars = {
|
|
209
|
+
// General
|
|
210
|
+
ball: "●",
|
|
211
|
+
paddle: "█",
|
|
212
|
+
block: "█",
|
|
213
|
+
empty: " ",
|
|
214
|
+
wall: "▓",
|
|
215
|
+
// Snake
|
|
216
|
+
snakeHead: "●",
|
|
217
|
+
snakeBody: "○",
|
|
218
|
+
food: "◆",
|
|
219
|
+
// Tetris
|
|
220
|
+
tetrominoFilled: "█",
|
|
221
|
+
tetrominoGhost: "▒",
|
|
222
|
+
tetrominoEmpty: "·",
|
|
223
|
+
// Minesweeper
|
|
224
|
+
mine: "✱",
|
|
225
|
+
flag: "⚑",
|
|
226
|
+
unknown: "■",
|
|
227
|
+
revealed: "□",
|
|
228
|
+
};
|
|
229
|
+
/**
|
|
230
|
+
* Decorative elements
|
|
231
|
+
*/
|
|
232
|
+
export const decorChars = {
|
|
233
|
+
sparkle: "✦",
|
|
234
|
+
star: "★",
|
|
235
|
+
starEmpty: "☆",
|
|
236
|
+
heart: "♥",
|
|
237
|
+
diamond: "◆",
|
|
238
|
+
club: "♣",
|
|
239
|
+
spade: "♠",
|
|
240
|
+
music: "♪",
|
|
241
|
+
sun: "☀",
|
|
242
|
+
moon: "☽",
|
|
243
|
+
lightning: "⚡",
|
|
244
|
+
fire: "🔥",
|
|
245
|
+
trophy: "🏆",
|
|
246
|
+
};
|
|
247
|
+
// ============================================================================
|
|
248
|
+
// BORDER STYLES
|
|
249
|
+
// ============================================================================
|
|
250
|
+
/**
|
|
251
|
+
* Pre-configured border styles for Ink components
|
|
252
|
+
*/
|
|
253
|
+
export const borderStyles = {
|
|
254
|
+
default: "single",
|
|
255
|
+
focused: "round",
|
|
256
|
+
active: "double",
|
|
257
|
+
alert: "round",
|
|
258
|
+
panel: "single",
|
|
259
|
+
card: "round",
|
|
260
|
+
modal: "double",
|
|
261
|
+
};
|
|
262
|
+
// ============================================================================
|
|
263
|
+
// SPACING
|
|
264
|
+
// ============================================================================
|
|
265
|
+
/**
|
|
266
|
+
* Consistent spacing values
|
|
267
|
+
*/
|
|
268
|
+
export const spacing = {
|
|
269
|
+
none: 0,
|
|
270
|
+
xs: 1,
|
|
271
|
+
sm: 1,
|
|
272
|
+
md: 2,
|
|
273
|
+
lg: 3,
|
|
274
|
+
xl: 4,
|
|
275
|
+
};
|
|
276
|
+
// ============================================================================
|
|
277
|
+
// ANIMATION / VISUAL FEEDBACK
|
|
278
|
+
// ============================================================================
|
|
279
|
+
/**
|
|
280
|
+
* Get a spinner frame based on elapsed time
|
|
281
|
+
*/
|
|
282
|
+
export function getSpinnerFrame(elapsedMs, type = "spinner") {
|
|
283
|
+
const chars = progressChars[type];
|
|
284
|
+
if (Array.isArray(chars)) {
|
|
285
|
+
const frameIndex = Math.floor(elapsedMs / 80) % chars.length;
|
|
286
|
+
return chars[frameIndex];
|
|
287
|
+
}
|
|
288
|
+
return chars;
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Create a progress bar string
|
|
292
|
+
*/
|
|
293
|
+
export function createProgressBar(percentage, width = 20, filled = progressChars.filled, empty = progressChars.empty) {
|
|
294
|
+
const clampedPct = Math.max(0, Math.min(100, percentage));
|
|
295
|
+
const filledCount = Math.round((clampedPct / 100) * width);
|
|
296
|
+
const emptyCount = width - filledCount;
|
|
297
|
+
return filled.repeat(filledCount) + empty.repeat(emptyCount);
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Create a horizontal divider line
|
|
301
|
+
*/
|
|
302
|
+
export function createDivider(width, style = "light") {
|
|
303
|
+
return boxChars[style].horizontal.repeat(width);
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Create a box frame (top or bottom line with corners)
|
|
307
|
+
*/
|
|
308
|
+
export function createBoxLine(width, position, style = "light") {
|
|
309
|
+
const chars = boxChars[style];
|
|
310
|
+
const innerWidth = Math.max(0, width - 2);
|
|
311
|
+
if (position === "top") {
|
|
312
|
+
return chars.topLeft + chars.horizontal.repeat(innerWidth) + chars.topRight;
|
|
313
|
+
}
|
|
314
|
+
return chars.bottomLeft + chars.horizontal.repeat(innerWidth) + chars.bottomRight;
|
|
315
|
+
}
|
|
316
|
+
// ============================================================================
|
|
317
|
+
// UTILITIES
|
|
318
|
+
// ============================================================================
|
|
319
|
+
/**
|
|
320
|
+
* Get color for a status value
|
|
321
|
+
*/
|
|
322
|
+
export function getStatusColor(status) {
|
|
323
|
+
return statusColors[status] ?? colors.textMuted;
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Get icon for a status value
|
|
327
|
+
*/
|
|
328
|
+
export function getStatusIcon(status) {
|
|
329
|
+
return statusIcons[status] ?? "?";
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Get color for an alert type
|
|
333
|
+
*/
|
|
334
|
+
export function getAlertColor(type) {
|
|
335
|
+
return alertColors[type] ?? colors.info;
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Get icon for an alert type
|
|
339
|
+
*/
|
|
340
|
+
export function getAlertIcon(type) {
|
|
341
|
+
return alertIcons[type] ?? alertIcons.info;
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Get color for a rank position
|
|
345
|
+
*/
|
|
346
|
+
export function getRankColor(position, isHighlighted = false) {
|
|
347
|
+
if (isHighlighted)
|
|
348
|
+
return rankColors.highlighted;
|
|
349
|
+
if (position === 1)
|
|
350
|
+
return rankColors.first;
|
|
351
|
+
if (position <= 3)
|
|
352
|
+
return rankColors.top3;
|
|
353
|
+
return rankColors.normal;
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Truncate text with ellipsis
|
|
357
|
+
*/
|
|
358
|
+
export function truncate(text, maxLength) {
|
|
359
|
+
if (text.length <= maxLength)
|
|
360
|
+
return text;
|
|
361
|
+
return text.slice(0, maxLength - 1) + "…";
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Pad text to center within a width
|
|
365
|
+
*/
|
|
366
|
+
export function centerText(text, width) {
|
|
367
|
+
if (text.length >= width)
|
|
368
|
+
return text;
|
|
369
|
+
const padding = Math.floor((width - text.length) / 2);
|
|
370
|
+
return " ".repeat(padding) + text + " ".repeat(width - text.length - padding);
|
|
371
|
+
}
|
|
372
|
+
//# sourceMappingURL=theme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"}
|