@siegesailor/terminal-sigma 1.1.0 → 1.2.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 CHANGED
@@ -6,17 +6,17 @@
6
6
  [![main: Release](https://github.com/SiegeSailor/Terminal-Sigma/actions/workflows/main-release.yml/badge.svg)](https://github.com/SiegeSailor/Terminal-Sigma/actions/workflows/main-release.yml)
7
7
  [![release: Desktop](https://github.com/SiegeSailor/Terminal-Sigma/actions/workflows/release-desktop.yml/badge.svg)](https://github.com/SiegeSailor/Terminal-Sigma/actions/workflows/release-desktop.yml)
8
8
 
9
- Terminal-Sigma is a terminal-based application that gives game-style feedback on your self-development journey. Though it is a CLI, it is meant to stay open: it fills the terminal, updates in real time, and is operated through menus rather than commands. It speaks English and Traditional Chinese, and it features 5 main components:
9
+ Terminal-Sigma is a terminal-based application that gives game-style feedback on your self-development journey. Though it is a CLI, it is meant to stay open: it fills the terminal, updates in real time, and is operated through menus rather than commands. It speaks English, Traditional Chinese, and Korean, and it features 5 main components:
10
10
 
11
11
  | Component | What It Does |
12
12
  | --------------------- | ------------------------------------------------------------------------------------------------------------- |
13
- | Character Progression | A pixel-art character that levels up with you, unlocks gear, and acts out what you are doing |
14
- | Diet Tracker | Logs each meal step by step, with its calories and protein, against a daily goal of 3 meals |
13
+ | Character Progression | A hooded pixel-art wanderer that levels up with you, unlocks gear, and acts out what you are doing |
15
14
  | Everyday Quotes | An inspiring quote that refreshes every 30 minutes, on restart, or on demand |
15
+ | Health | Your meals and workouts against daily targets worked out from your profile, with advice for the rest of today |
16
+ | Logs | Every focus, meal, and workout you logged, with the latest 4 always on the menu |
16
17
  | Tomato Timer | A Pomodoro timer: 25 minutes of focus, then a 5-minute break, against a daily goal of 4 focus sessions |
17
- | Workout Tracker | Logs each workout step by step, with its activity, minutes, and intensity, against a daily goal of 30 minutes |
18
18
 
19
- Underneath, your journey is written to the local file `~/.terminal-sigma/progress.json`. There is no plan to support logging at this point, and we chose JSON as a readable format, so that you can port it easily.
19
+ Underneath, your journey and your settings are written to the local file `~/.terminal-sigma/progress.json`. There is no plan to support logging at this point, and we chose JSON as a readable format, so that you can port it easily.
20
20
 
21
21
  ## Installation
22
22
 
@@ -50,7 +50,7 @@ Download the file for your system from the [latest release](https://github.com/S
50
50
  > xattr -dr com.apple.quarantine "/Applications/Terminal Sigma.app"
51
51
  > ```
52
52
 
53
- The desktop app opens the dashboard in its own window, sends a system notification when a focus or break ends, and uses the default options below.
53
+ The desktop app opens the dashboard in its own window, sends a system notification when a focus or break ends, and uses your profile's name and the default timer options below.
54
54
 
55
55
  ## Usage
56
56
 
@@ -62,26 +62,39 @@ siegesailor-terminal-sigma --name "Ken"
62
62
 
63
63
  On the first run, it asks for your language and saves the answer in `progress.json`; change it at any time from **Language** in the menu. Every option has a default:
64
64
 
65
- | Option | Default | Description |
66
- | --------------- | ------------ | ---------------------------------- |
67
- | `--break <min>` | `5` | Minutes of each Tomato Timer break |
68
- | `--focus <min>` | `25` | Minutes of each Tomato Timer focus |
69
- | `--name <name>` | `Rook Sigma` | The name of your character |
65
+ | Option | Default | Description |
66
+ | --------------- | ------------------------------------ | ---------------------------------- |
67
+ | `--break <min>` | `5` | Minutes of each Tomato Timer break |
68
+ | `--focus <min>` | `25` | Minutes of each Tomato Timer focus |
69
+ | `--name <name>` | Your profile's name, or `Rook Sigma` | The name of your character |
70
70
 
71
71
  ### Menu
72
72
 
73
- The menu at the bottom drives everything, and Enter opens an item:
73
+ The menu drives everything, and Enter opens an item:
74
74
 
75
- | Item | Enter Does |
76
- | --------------- | -------------------------------------------------------------------------- |
77
- | Diet Tracker | Asks for the food, its calories, and its protein, one at a time |
78
- | Everyday Quotes | Draws a new quote |
79
- | Language | Switches between English and Traditional Chinese |
80
- | Logs | Lists every focus, meal, and workout, newest first, with a filter per kind |
81
- | Tomato Timer | Starts a focus, or pauses, resumes, or stops the running one |
82
- | Workout Tracker | Asks for the activity, its minutes, and its intensity, one at a time |
75
+ | Item | Enter Does |
76
+ | --------------- | -------------------------------------------------------------------------------------------------- |
77
+ | Everyday Quotes | Draws a new quote |
78
+ | Health | Shows today's targets and advice, then logs a meal or a workout |
79
+ | Language | Switches between English, Traditional Chinese, and Korean |
80
+ | Logs | Lists every focus, meal, and workout, newest first, with a filter per kind |
81
+ | Profile | Asks for your name, age, height, weight, gender, work style, and health goal, showing saved values |
82
+ | Theme | Picks the color tone of the dashboard and your character: Dusk, Ember, Frost, Mono, or Moss |
83
+ | Tomato Timer | Starts a focus, or pauses, resumes, or stops the running one |
83
84
 
84
- A stopped focus earns nothing. While you log a meal or a workout, the character eats, runs, lifts, or stretches to match, and it celebrates when you level up.
85
+ A meal asks for the food, its calories, and its protein; a workout asks for the activity, its minutes, and its intensity, one at a time. A stopped focus earns nothing. While you log, the character eats, runs, lifts, or stretches to match, and it celebrates when you level up.
86
+
87
+ ### Health Targets
88
+
89
+ The Health group works out 3 daily targets from your profile, in metric units, and falls back to 2,000 kcal, 50 g of protein, and 30 minutes of exercise until you fill it in:
90
+
91
+ | Target | How It Is Worked Out |
92
+ | -------- | ------------------------------------------------------------------------------------------------------------------------- |
93
+ | Calories | The Mifflin-St Jeor resting rate, times 1.2 to 1.725 by work style, then 500 less to lose fat or 200 to 300 more to build |
94
+ | Exercise | 30 minutes to stay healthy, 45 to lose fat or build muscle, and 60 to build endurance |
95
+ | Protein | 1.0 to 2.0 g per kg of body weight by goal, plus up to 0.3 g for a physical job, never above 2.2 g |
96
+
97
+ The targets are general guidance for healthy adults, not medical advice.
85
98
 
86
99
  ### Keys
87
100
 
@@ -89,7 +102,7 @@ Every view shows its keys at the bottom right:
89
102
 
90
103
  | Key | Action |
91
104
  | ------------------------- | --------------------------------------------------------- |
92
- | `1` to `6` | Jump to a menu item |
105
+ | `1` to `7` | Jump to a menu item |
93
106
  | Arrows or `h` `j` `k` `l` | Move through the menu, a list, or the log filters |
94
107
  | Enter | Open the item, choose the option, or go to the next field |
95
108
  | Esc | Go back to the menu without logging anything |
@@ -108,11 +121,21 @@ Both are optional:
108
121
 
109
122
  ## Progress File
110
123
 
111
- `progress.json` holds your language and what you logged. Your experience, level, and daily progress are worked out from it every time, so editing the file by hand can never put them out of sync:
124
+ `progress.json` holds your settings and what you logged. Your experience, level, and daily progress are worked out from it every time, so editing the file by hand can never put them out of sync:
112
125
 
113
126
  ```json
114
127
  {
115
128
  "language": "en",
129
+ "theme": "ember",
130
+ "profile": {
131
+ "name": "Ken",
132
+ "age": 30,
133
+ "height": 175,
134
+ "weight": 70,
135
+ "gender": "male",
136
+ "workStyle": "desk",
137
+ "goal": "buildMuscle"
138
+ },
116
139
  "focus": [{ "at": "2026-10-03T09:00:00.000Z", "minutes": 25 }],
117
140
  "meals": [
118
141
  {
@@ -133,7 +156,19 @@ Both are optional:
133
156
  }
134
157
  ```
135
158
 
136
- `language` is `en` or `zh-TW`. A workout's `activity` is one of `cycling`, `other`, `running`, `strength`, `swimming`, `walking`, or `yoga`, and its `intensity` is `light`, `moderate`, or `vigorous`. Files written by version 1 still load as they are.
159
+ Each setting takes 1 of a fixed set of values:
160
+
161
+ | Field | Values |
162
+ | -------------------- | --------------------------------------------------------------------------- |
163
+ | `language` | `en`, `ko`, or `zh-TW` |
164
+ | `profile.gender` | `female`, `male`, or `other` |
165
+ | `profile.goal` | `buildMuscle`, `endurance`, `loseFat`, or `maintain` |
166
+ | `profile.workStyle` | `active`, `athlete`, `desk`, or `standing` |
167
+ | `theme` | `dusk`, `ember`, `frost`, `mono`, or `moss` |
168
+ | `workouts.activity` | `cycling`, `other`, `running`, `strength`, `swimming`, `walking`, or `yoga` |
169
+ | `workouts.intensity` | `light`, `moderate`, or `vigorous` |
170
+
171
+ Every setting is optional, and files written by version 1 still load as they are.
137
172
 
138
173
  Every 100 XP is a level, and every level from level 2 to level 9 upgrades 1 piece of your character's gear. Experience is earned as follows:
139
174
 
package/build/app.js CHANGED
@@ -1,26 +1,29 @@
1
1
  import { homedir } from "node:os";
2
2
  import zod from "zod";
3
3
  import React from "react";
4
- import { Select, ThemeProvider } from "@inkjs/ui";
4
+ import { ThemeProvider } from "@inkjs/ui";
5
5
  import { Box, Text, useApp, useInput, useStdout, useWindowSize } from "ink";
6
6
  import Character from "./components/character.js";
7
+ import Choice from "./components/choice.js";
7
8
  import EntryForm from "./components/entry-form.js";
8
9
  import Footer from "./components/footer.js";
9
- import LogsView from "./components/logs-view.js";
10
+ import LogsView, { LogRow } from "./components/logs-view.js";
10
11
  import MenuGrid from "./components/menu-grid.js";
11
12
  import TodayPanel from "./components/today-panel.js";
12
- import { characterWidth, dietFieldsOf, layoutOf, menuItemsOf, menuOrder, metricsOf, workoutFieldsOf, } from "./content.js";
13
- import { intensities, languages, messagesOf, workoutActivities, } from "./i18n.js";
13
+ import { characterWidth, dietFieldsOf, layoutOf, menuItemsOf, menuOrder, profileFieldsOf, sectionsOf, workoutFieldsOf, } from "./content.js";
14
+ import { adviceOf, targetsOf } from "./health.js";
15
+ import { formatNumber, genders, healthGoals, intensities, languages, messagesOf, workoutActivities, workStyles, } from "./i18n.js";
14
16
  import { experienceOf, experiencePerMeal, levelOf, logsOf, saveProgress, todayOf, workoutExperience, } from "./progress.js";
15
17
  import { fetchQuote, hasQuoteApi, localizedQuote, quoteRefreshMinutes, randomBundledQuote, } from "./quotes.js";
16
- import { colors, uiTheme } from "./theme.js";
18
+ import { paletteContext, themeNames, themes, uiThemeOf, } from "./theme.js";
17
19
  import { advanceTimer, formatClock, idleTimer, remainingOf, toggleTimer, } from "./timer.js";
18
20
  export const optionsSchema = zod.object({
19
- name: zod.string().min(1).default("Rook Sigma"),
21
+ name: zod.string().min(1).optional(),
20
22
  focus: zod.number().int().positive().default(25),
21
23
  break: zod.number().int().positive().default(5),
22
24
  });
23
25
  const flashMilliseconds = 6000;
26
+ const recentCount = 4;
24
27
  const workoutAnimation = (activity) => {
25
28
  if (activity === "strength") {
26
29
  return "lift";
@@ -31,11 +34,14 @@ const languageOptions = languages.map((language) => ({
31
34
  label: messagesOf(language).languageName,
32
35
  value: language,
33
36
  }));
34
- const asLanguage = (value) => value === "zh-TW" ? "zh-TW" : "en";
37
+ const pick = (options, value, fallback) => options.find((option) => option === value) ?? fallback;
35
38
  function Titled({ title, children, }) {
36
- return (React.createElement(Box, { flexDirection: "column" },
37
- React.createElement(Text, { bold: true, color: colors.accent }, title),
38
- children));
39
+ return (React.createElement(paletteContext.Consumer, null, (palette) => (React.createElement(Box, { flexDirection: "column" },
40
+ React.createElement(Text, { bold: true, color: palette.accent }, title),
41
+ children))));
42
+ }
43
+ function Swatches({ palette }) {
44
+ return (React.createElement(Text, null, Object.values(palette.metrics).map((color) => (React.createElement(Text, { key: color, color: color }, "\u2588\u2588")))));
39
45
  }
40
46
  export default function App({ options, file, initialProgress }) {
41
47
  const { exit } = useApp();
@@ -51,6 +57,10 @@ export default function App({ options, file, initialProgress }) {
51
57
  const [draftActivity, setDraftActivity] = React.useState();
52
58
  const language = progress.language ?? "en";
53
59
  const messages = messagesOf(language);
60
+ const themeName = progress.theme ?? "ember";
61
+ const palette = themes[themeName];
62
+ const uiTheme = React.useMemo(() => uiThemeOf(palette), [palette]);
63
+ const name = options.name ?? progress.profile?.name ?? "Rook Sigma";
54
64
  const [message, setMessage] = React.useState(() => ({
55
65
  text: messages.savedTo(file.replace(homedir(), "~")),
56
66
  tone: "info",
@@ -60,28 +70,38 @@ export default function App({ options, file, initialProgress }) {
60
70
  };
61
71
  // Saves first and only then shows the change, so the screen never claims
62
72
  // something the file does not hold.
63
- const record = React.useCallback((update, text, activity) => {
64
- const next = update(progress);
65
- const { form, notSaved } = messagesOf(next.language ?? "en");
73
+ const save = React.useCallback((next) => {
66
74
  try {
67
75
  saveProgress(file, next);
76
+ return true;
68
77
  }
69
78
  catch (error) {
70
- setMessage({ text: notSaved(String(error)), tone: "error" });
79
+ setMessage({
80
+ text: messagesOf(next.language ?? "en").notSaved(String(error)),
81
+ tone: "error",
82
+ });
83
+ return false;
84
+ }
85
+ }, [file]);
86
+ const record = React.useCallback((update, text, activity) => {
87
+ const next = update(progress);
88
+ if (!save(next)) {
71
89
  return;
72
90
  }
73
91
  const after = levelOf(experienceOf(next));
74
92
  const leveledUp = after > levelOf(experienceOf(progress));
75
93
  setProgress(next);
76
94
  setMessage({
77
- text: leveledUp ? `${text} ${form.levelUp(after)}` : text,
95
+ text: leveledUp
96
+ ? `${text} ${messagesOf(next.language ?? "en").form.levelUp(after)}`
97
+ : text,
78
98
  tone: "success",
79
99
  });
80
100
  setFlash({
81
101
  activity: leveledUp ? "levelUp" : activity,
82
102
  until: Date.now() + flashMilliseconds,
83
103
  });
84
- }, [file, progress]);
104
+ }, [progress, save]);
85
105
  React.useEffect(() => {
86
106
  const interval = setInterval(() => {
87
107
  setNow(Date.now());
@@ -142,31 +162,28 @@ export default function App({ options, file, initialProgress }) {
142
162
  exit();
143
163
  }
144
164
  else if (view !== "menu" && key.escape) {
145
- const isForm = view === "diet" || view === "workout";
165
+ const isForm = ["diet", "workout", "profile"].includes(view);
146
166
  backToMenu(isForm ? messages.form.cancelled : undefined);
147
167
  }
148
168
  }, { isActive: progress.language !== undefined });
149
- const chooseLanguage = (next) => {
150
- const updated = { ...progress, language: next };
151
- try {
152
- saveProgress(file, updated);
153
- }
154
- catch (error) {
155
- say(messagesOf(next).notSaved(String(error)), "error");
156
- return;
169
+ const saveSetting = (next, text) => {
170
+ if (save(next)) {
171
+ setProgress(next);
172
+ backToMenu(text);
157
173
  }
158
- setProgress(updated);
159
- backToMenu(messagesOf(next).languageChanged);
160
174
  };
175
+ const chooseLanguage = (value) => {
176
+ const next = pick(languages, value, "en");
177
+ saveSetting({ ...progress, language: next }, messagesOf(next).languageChanged);
178
+ };
179
+ const providers = (children) => (React.createElement(paletteContext.Provider, { value: palette },
180
+ React.createElement(ThemeProvider, { theme: uiTheme }, children)));
161
181
  if (progress.language === undefined) {
162
- return (React.createElement(ThemeProvider, { theme: uiTheme },
163
- React.createElement(Box, { borderColor: colors.accent, borderStyle: "round", flexDirection: "column", paddingX: 2, paddingY: 1 },
164
- React.createElement(Titled, { title: "\u273B Terminal Sigma" },
165
- React.createElement(Text, { dimColor: true }, messages.chooseLanguage),
166
- React.createElement(Box, { marginTop: 1 },
167
- React.createElement(Select, { options: languageOptions, onChange: (value) => {
168
- chooseLanguage(asLanguage(value));
169
- } }))))));
182
+ return providers(React.createElement(Box, { borderColor: palette.accent, borderStyle: "round", flexDirection: "column", paddingX: 2, paddingY: 1 },
183
+ React.createElement(Titled, { title: "\u273B Terminal Sigma" },
184
+ React.createElement(Text, { dimColor: true }, messages.chooseLanguage),
185
+ React.createElement(Box, { marginTop: 1 },
186
+ React.createElement(Choice, { options: languageOptions, onSelect: chooseLanguage })))));
170
187
  }
171
188
  const isRunning = timer.endsAt !== undefined;
172
189
  const isIdle = !isRunning &&
@@ -201,6 +218,14 @@ export default function App({ options, file, initialProgress }) {
201
218
  backToMenu();
202
219
  }
203
220
  };
221
+ const chooseHealthAction = (action) => {
222
+ if (action === "diet" || action === "workout" || action === "profile") {
223
+ setView(action);
224
+ }
225
+ else {
226
+ backToMenu();
227
+ }
228
+ };
204
229
  const submitMeal = (values) => {
205
230
  const food = values.food ?? "";
206
231
  backToMenu();
@@ -220,14 +245,31 @@ export default function App({ options, file, initialProgress }) {
220
245
  const submitWorkout = (values) => {
221
246
  const workout = {
222
247
  at: new Date().toISOString(),
223
- activity: workoutActivities.find((option) => option === values.activity) ??
224
- "other",
248
+ activity: pick(workoutActivities, values.activity, "other"),
225
249
  minutes: Number(values.minutes),
226
- intensity: intensities.find((option) => option === values.intensity) ?? "moderate",
250
+ intensity: pick(intensities, values.intensity, "moderate"),
227
251
  };
228
252
  backToMenu();
229
253
  record((current) => ({ ...current, workouts: [...current.workouts, workout] }), messages.form.workoutLogged(messages.workoutActivity[workout.activity], workout.minutes, workoutExperience(workout)), workoutAnimation(workout.activity));
230
254
  };
255
+ const submitProfile = (values) => {
256
+ saveSetting({
257
+ ...progress,
258
+ profile: {
259
+ name: values.name ?? name,
260
+ age: Number(values.age),
261
+ height: Number(values.height),
262
+ weight: Number(values.weight),
263
+ gender: pick(genders, values.gender, "other"),
264
+ workStyle: pick(workStyles, values.workStyle, "desk"),
265
+ goal: pick(healthGoals, values.goal, "maintain"),
266
+ },
267
+ }, messages.form.profileSaved);
268
+ };
269
+ const chooseTheme = (value) => {
270
+ const next = pick(themeNames, value, "ember");
271
+ saveSetting({ ...progress, theme: next }, messages.themes.changed(messages.themes.names[next]));
272
+ };
231
273
  const experience = experienceOf(progress);
232
274
  const level = levelOf(experience);
233
275
  const today = todayOf(progress, now);
@@ -253,56 +295,93 @@ export default function App({ options, file, initialProgress }) {
253
295
  logs: messages.hints.logs,
254
296
  diet: messages.hints.form,
255
297
  workout: messages.hints.form,
298
+ profile: messages.hints.form,
256
299
  timer: messages.hints.select,
300
+ health: messages.hints.select,
301
+ theme: messages.hints.select,
257
302
  language: messages.hints.select,
258
303
  };
259
304
  const panels = {
260
- menu: (React.createElement(MenuGrid, { columns: layout.menuColumns, isActive: view === "menu", items: menuItemsOf(messages, language, {
261
- timerSignal,
262
- meals: today.meals,
263
- workoutMinutes: today.workoutMinutes,
264
- logs: logs.length,
265
- focus: durations.focus,
266
- rest: durations.break,
267
- }), onSelect: selectMenu })),
305
+ menu: (React.createElement(Box, { flexDirection: "column" },
306
+ React.createElement(MenuGrid, { columns: layout.menuColumns, isActive: view === "menu", items: menuItemsOf(messages, language, {
307
+ timerSignal,
308
+ progress,
309
+ now,
310
+ logs: logs.length,
311
+ theme: themeName,
312
+ focus: durations.focus,
313
+ rest: durations.break,
314
+ }), onSelect: selectMenu }),
315
+ React.createElement(Box, { flexDirection: "column", marginTop: 1 },
316
+ React.createElement(Text, { bold: true, color: palette.soft }, messages.recent.title),
317
+ logs.length === 0 ? (React.createElement(Text, { dimColor: true }, messages.recent.empty)) : null,
318
+ logs.slice(0, recentCount).map((log) => (React.createElement(LogRow, { key: `${log.kind}-${log.at}`, language: language, log: log, messages: messages })))))),
268
319
  timer: (React.createElement(Titled, { title: messages.menu.timer },
269
- React.createElement(Select, { options: [
320
+ React.createElement(Choice, { options: [
270
321
  {
271
322
  label: isRunning ? messages.timer.pause : messages.timer.resume,
272
323
  value: "toggle",
273
324
  },
274
325
  { label: messages.timer.stop, value: "stop" },
275
326
  { label: messages.timer.back, value: "back" },
276
- ], onChange: chooseTimerAction }))),
327
+ ], onSelect: chooseTimerAction }))),
328
+ health: (React.createElement(HealthPanel, { language: language, messages: messages, palette: palette, progress: progress, today: today, onSelect: chooseHealthAction })),
277
329
  diet: (React.createElement(EntryForm, { fields: dietFieldsOf(messages), messages: messages, title: messages.form.dietTitle, onSubmit: submitMeal })),
278
330
  workout: (React.createElement(EntryForm, { fields: workoutFieldsOf(messages), messages: messages, title: messages.form.workoutTitle, onSubmit: submitWorkout, onValues: (values) => {
279
331
  setDraftActivity(values.activity);
280
332
  } })),
333
+ profile: (React.createElement(EntryForm, { fields: profileFieldsOf(messages, progress.profile, name), messages: messages, title: messages.form.profileTitle, onSubmit: submitProfile })),
334
+ theme: (React.createElement(Titled, { title: messages.menu.theme },
335
+ React.createElement(Choice, { initialValue: themeName, options: themeNames.map((option) => ({
336
+ label: messages.themes.names[option].padEnd(8),
337
+ value: option,
338
+ hint: React.createElement(Swatches, { palette: themes[option] }),
339
+ })), onSelect: chooseTheme }))),
281
340
  language: (React.createElement(Titled, { title: messages.menu.language },
282
- React.createElement(Select, { options: languageOptions, onChange: (value) => {
283
- chooseLanguage(asLanguage(value));
284
- } }))),
341
+ React.createElement(Choice, { initialValue: language, options: languageOptions, onSelect: chooseLanguage }))),
285
342
  };
286
343
  const shownQuote = localizedQuote(quote, language);
287
- const todayPanel = (React.createElement(TodayPanel, { metrics: metricsOf(messages, language, progress, now), title: messages.today.title, width: layout.todayWidth }));
288
- return (React.createElement(ThemeProvider, { theme: uiTheme },
289
- React.createElement(Box, { flexDirection: "column", height: size.rows ? rows : undefined, overflow: "hidden", width: columns },
290
- React.createElement(Box, { borderColor: colors.accent, borderStyle: "round", flexDirection: "column", flexShrink: 0, paddingX: 1 },
291
- React.createElement(Box, { justifyContent: "space-between" },
292
- React.createElement(Text, { bold: true, color: colors.accent }, "\u273B Terminal Sigma"),
293
- React.createElement(Text, { dimColor: true }, new Date(now).toLocaleTimeString(language, { hour12: false }))),
294
- React.createElement(Text, { dimColor: true, italic: true, wrap: "truncate-end" }, `“${shownQuote.quote}” — ${shownQuote.author}`)),
295
- view === "logs" ? (React.createElement(Box, { borderColor: colors.accent, borderStyle: "round", flexGrow: 1, paddingX: 1 },
296
- React.createElement(LogsView, { height: rows - 7, language: language, logs: logs, messages: messages }))) : (React.createElement(React.Fragment, null,
297
- React.createElement(Box, { flexDirection: layout.stacked ? "column-reverse" : "row", flexGrow: 1 },
298
- layout.showCharacter ? (React.createElement(Character, { activity: activity, label: activity === "levelUp"
299
- ? `${messages.activity.levelUp} ${messages.level(level)}`
300
- : messages.activity[activity], level: messages.level(level), levelNumber: level, name: options.name, width: characterWidth })) : null,
301
- layout.showToday && layout.todayBeside ? todayPanel : null,
302
- React.createElement(Box, { borderColor: view === "menu" ? colors.border : colors.accent, borderStyle: "round", flexDirection: "column", paddingX: 1, width: layout.panelWidth }, view === "menu" ? panels.menu : panels[view])),
303
- layout.showToday && !layout.todayBeside ? todayPanel : null)),
304
- React.createElement(Footer, { hint: hints[view], message: isIdle || isRunning
305
- ? message.text
306
- : `${messages.timer.pausedAt(phaseLabel, clock)} · ${message.text}`, status: isRunning ? messages.timer.left(phaseLabel, clock) : undefined, tone: message.tone }))));
344
+ const todayPanel = (React.createElement(TodayPanel, { sections: sectionsOf(language, palette, progress, now), title: messages.today.title, width: layout.todayWidth }));
345
+ return providers(React.createElement(Box, { flexDirection: "column", height: size.rows ? rows : undefined, overflow: "hidden", width: columns },
346
+ React.createElement(Box, { borderColor: palette.accent, borderStyle: "round", flexDirection: "column", flexShrink: 0, paddingX: 1 },
347
+ React.createElement(Box, { justifyContent: "space-between" },
348
+ React.createElement(Text, { bold: true, color: palette.accent }, "\u273B Terminal Sigma"),
349
+ React.createElement(Text, { dimColor: true }, new Date(now).toTimeString().slice(0, 8))),
350
+ React.createElement(Text, { dimColor: true, italic: true, wrap: "truncate-end" }, `“${shownQuote.quote}” — ${shownQuote.author}`)),
351
+ view === "logs" ? (React.createElement(Box, { borderColor: palette.accent, borderStyle: "round", flexGrow: 1, paddingX: 1 },
352
+ React.createElement(LogsView, { height: rows - 7, language: language, logs: logs, messages: messages }))) : (React.createElement(React.Fragment, null,
353
+ React.createElement(Box, { flexDirection: layout.stacked ? "column-reverse" : "row", flexGrow: 1 },
354
+ layout.showCharacter ? (React.createElement(Character, { activity: activity, label: activity === "levelUp"
355
+ ? `${messages.activity.levelUp} ${messages.level(level)}`
356
+ : messages.activity[activity], level: messages.level(level), levelNumber: level, name: name, width: characterWidth })) : null,
357
+ layout.showToday && layout.todayBeside ? todayPanel : null,
358
+ React.createElement(Box, { borderColor: view === "menu" ? palette.border : palette.accent, borderStyle: "round", flexDirection: "column", paddingX: 1, width: layout.panelWidth }, view === "menu" ? panels.menu : panels[view])),
359
+ layout.showToday && !layout.todayBeside ? todayPanel : null)),
360
+ React.createElement(Footer, { hint: hints[view], message: isIdle || isRunning
361
+ ? message.text
362
+ : `${messages.timer.pausedAt(phaseLabel, clock)} · ${message.text}`, status: isRunning ? messages.timer.left(phaseLabel, clock) : undefined, tone: message.tone })));
363
+ }
364
+ function HealthPanel({ language, messages, palette, progress, today, onSelect, }) {
365
+ const { profile } = progress;
366
+ const targets = targetsOf(profile);
367
+ const { health } = messages;
368
+ const options = [
369
+ ...(profile ? [] : [{ label: health.setUp, value: "profile" }]),
370
+ { label: health.logMeal, value: "diet" },
371
+ { label: health.logWorkout, value: "workout" },
372
+ { label: health.back, value: "back" },
373
+ ];
374
+ return (React.createElement(Box, { flexDirection: "column" },
375
+ React.createElement(Text, { bold: true, color: palette.accent }, profile
376
+ ? health.title(messages.goal[profile.goal])
377
+ : messages.menu.health),
378
+ React.createElement(Text, { dimColor: true }, health.targets(formatNumber(language, targets.calories), targets.protein, targets.workoutMinutes)),
379
+ React.createElement(Box, { flexDirection: "column", marginY: 1 },
380
+ profile ? null : React.createElement(Text, { dimColor: true }, health.noProfile),
381
+ adviceOf(profile, today, language, messages).map((advice) => (React.createElement(Text, { key: advice.text },
382
+ React.createElement(Text, { color: advice.isDone ? palette.success : palette.accent }, "⏺ "),
383
+ React.createElement(Text, null, advice.text)))),
384
+ profile ? (React.createElement(Text, { dimColor: true, italic: true }, health.tip[profile.goal])) : null),
385
+ React.createElement(Choice, { options: options, onSelect: onSelect })));
307
386
  }
308
387
  //# sourceMappingURL=app.js.map
package/build/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../source/app.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../source/app.tsx"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ const cli = meow(`
11
11
  $ siegesailor-terminal-sigma [options]
12
12
 
13
13
  Options
14
- --name Your character's name (default: Rook Sigma)
14
+ --name Your character's name (default: your profile's name)
15
15
  --focus Minutes of each Tomato Timer focus (default: 25)
16
16
  --break Minutes of each Tomato Timer break (default: 5)
17
17
  `, {
@@ -1,20 +1,20 @@
1
1
  import React from "react";
2
2
  import { Box, Text, useAnimation } from "ink";
3
3
  import { animationOf, composeFrame, paletteOf, toSegments, } from "../pixel-art.js";
4
- import { colors, spinnerFrames } from "../theme.js";
4
+ import { spinnerFrames, usePalette } from "../theme.js";
5
5
  export default function Character({ name, level, levelNumber, activity, label, width, }) {
6
+ const palette = usePalette();
6
7
  const { frame } = useAnimation({ interval: animationOf(activity).interval });
7
- const lines = toSegments(composeFrame(activity, frame, levelNumber), paletteOf(levelNumber));
8
- const spinner = activity === "idle" ? "·" : spinnerFrames[frame % spinnerFrames.length];
9
- return (React.createElement(Box, { borderColor: colors.border, borderStyle: "round", flexDirection: "column", paddingX: 1, width: width },
10
- React.createElement(Box, { justifyContent: "space-between" },
8
+ const lines = toSegments(composeFrame(activity, frame, levelNumber), paletteOf(levelNumber, palette));
9
+ return (React.createElement(Box, { borderColor: palette.border, borderStyle: "round", flexDirection: "column", flexShrink: 0, paddingX: 1, width: width },
10
+ React.createElement(Box, { gap: 1, justifyContent: "space-between" },
11
11
  React.createElement(Text, { bold: true, wrap: "truncate-end" }, name),
12
- React.createElement(Text, { color: colors.accent }, level)),
12
+ React.createElement(Text, { color: palette.accent }, level)),
13
13
  React.createElement(Box, { alignItems: "center", flexDirection: "column", flexGrow: 1, justifyContent: "center" }, lines.map((line, row) => (React.createElement(Box, { key: row }, line.map((segment, column) => (React.createElement(Text
14
14
  // eslint-disable-next-line react/no-array-index-key
15
15
  , {
16
16
  // eslint-disable-next-line react/no-array-index-key
17
17
  key: column, backgroundColor: segment.backgroundColor, color: segment.color }, segment.text))))))),
18
- React.createElement(Text, { color: colors.accent, wrap: "truncate-end" }, `${spinner} ${label}`)));
18
+ React.createElement(Text, { color: palette.accent, wrap: "truncate-end" }, `${spinnerFrames[frame % spinnerFrames.length] ?? "·"} ${label}`)));
19
19
  }
20
20
  //# sourceMappingURL=character.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"character.js","sourceRoot":"","sources":["../../source/components/character.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AAC9C,OAAO,EAEN,WAAW,EACX,YAAY,EACZ,SAAS,EACT,UAAU,GACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAWpD,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EACjC,IAAI,EACJ,KAAK,EACL,WAAW,EACX,QAAQ,EACR,KAAK,EACL,KAAK,GACW;IAChB,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,UAAU,CACvB,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,EAC1C,SAAS,CAAC,WAAW,CAAC,CACtB,CAAC;IACF,MAAM,OAAO,GACZ,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAEzE,OAAO,CACN,oBAAC,GAAG,IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAC1B,WAAW,EAAC,OAAO,EACnB,aAAa,EAAC,QAAQ,EACtB,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,KAAK;QAEZ,oBAAC,GAAG,IAAC,cAAc,EAAC,eAAe;YAClC,oBAAC,IAAI,IAAC,IAAI,QAAC,IAAI,EAAC,cAAc,IAC5B,IAAI,CACC;YACP,oBAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,IAAG,KAAK,CAAQ,CACrC;QACN,oBAAC,GAAG,IACH,UAAU,EAAC,QAAQ,EACnB,aAAa,EAAC,QAAQ,EACtB,QAAQ,EAAE,CAAC,EACX,cAAc,EAAC,QAAQ,IAEtB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAGzB,oBAAC,GAAG,IAAC,GAAG,EAAE,GAAG,IACX,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAC9B,oBAAC,IAAI;QACJ,oDAAoD;;YAApD,oDAAoD;YACpD,GAAG,EAAE,MAAM,EACX,eAAe,EAAE,OAAO,CAAC,eAAe,EACxC,KAAK,EAAE,OAAO,CAAC,KAAK,IAEnB,OAAO,CAAC,IAAI,CACP,CACP,CAAC,CACG,CACN,CAAC,CACG;QACN,oBAAC,IAAI,IACJ,KAAK,EAAE,MAAM,CAAC,MAAM,EACpB,IAAI,EAAC,cAAc,IAClB,GAAG,OAAO,IAAI,KAAK,EAAE,CAAQ,CAC1B,CACN,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"character.js","sourceRoot":"","sources":["../../source/components/character.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AAC9C,OAAO,EAEN,WAAW,EACX,YAAY,EACZ,SAAS,EACT,UAAU,GACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAWxD,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EACjC,IAAI,EACJ,KAAK,EACL,WAAW,EACX,QAAQ,EACR,KAAK,EACL,KAAK,GACW;IAChB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,UAAU,CACvB,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,EAC1C,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAC/B,CAAC;IAEF,OAAO,CACN,oBAAC,GAAG,IACH,WAAW,EAAE,OAAO,CAAC,MAAM,EAC3B,WAAW,EAAC,OAAO,EACnB,aAAa,EAAC,QAAQ,EACtB,UAAU,EAAE,CAAC,EACb,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,KAAK;QAEZ,oBAAC,GAAG,IAAC,GAAG,EAAE,CAAC,EAAE,cAAc,EAAC,eAAe;YAC1C,oBAAC,IAAI,IAAC,IAAI,QAAC,IAAI,EAAC,cAAc,IAC5B,IAAI,CACC;YACP,oBAAC,IAAI,IAAC,KAAK,EAAE,OAAO,CAAC,MAAM,IAAG,KAAK,CAAQ,CACtC;QACN,oBAAC,GAAG,IACH,UAAU,EAAC,QAAQ,EACnB,aAAa,EAAC,QAAQ,EACtB,QAAQ,EAAE,CAAC,EACX,cAAc,EAAC,QAAQ,IAEtB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAGzB,oBAAC,GAAG,IAAC,GAAG,EAAE,GAAG,IACX,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAC9B,oBAAC,IAAI;QACJ,oDAAoD;;YAApD,oDAAoD;YACpD,GAAG,EAAE,MAAM,EACX,eAAe,EAAE,OAAO,CAAC,eAAe,EACxC,KAAK,EAAE,OAAO,CAAC,KAAK,IAEnB,OAAO,CAAC,IAAI,CACP,CACP,CAAC,CACG,CACN,CAAC,CACG;QACN,oBAAC,IAAI,IAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAC,cAAc,IAC9C,GAAG,aAAa,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,KAAK,EAAE,CAC3D,CACF,CACN,CAAC;AACH,CAAC"}