@nbtca/prompt 1.0.13 → 1.0.14

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.
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * Minimalist menu system
3
- * Six core feature menus
3
+ * Modern @clack/prompts select() with emoji icons and hint text
4
4
  */
5
5
  export type MenuAction = 'events' | 'repair' | 'docs' | 'website' | 'github' | 'roadmap' | 'about' | 'language';
6
6
  /**
7
- * Display main menu
7
+ * Display main menu — loops until user exits via Ctrl+C
8
8
  */
9
9
  export declare function showMainMenu(): Promise<void>;
10
10
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../src/core/menu.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAyDhH;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CA4ClD;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAmCrE"}
1
+ {"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../src/core/menu.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAmBhH;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAoBlD;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAWrE"}
package/dist/core/menu.js CHANGED
@@ -1,112 +1,50 @@
1
1
  /**
2
2
  * Minimalist menu system
3
- * Six core feature menus
3
+ * Modern @clack/prompts select() with emoji icons and hint text
4
4
  */
5
- import inquirer from 'inquirer';
5
+ import { select, isCancel, outro, note } from '@clack/prompts';
6
6
  import chalk from 'chalk';
7
7
  import { showCalendar } from '../features/calendar.js';
8
8
  import { openRepairService } from '../features/repair.js';
9
9
  import { showDocsMenu } from '../features/docs.js';
10
10
  import { openHomepage, openGithub, openRoadmap } from '../features/website.js';
11
- import { printDivider, printNewLine } from './ui.js';
11
+ import { printDivider, printNewLine, success } from './ui.js';
12
12
  import { APP_INFO, URLS } from '../config/data.js';
13
13
  import { t, getCurrentLanguage, setLanguage, clearTranslationCache } from '../i18n/index.js';
14
14
  /**
15
- * Get main menu options
15
+ * Get main menu options with emoji icons and hint text
16
16
  */
17
17
  function getMainMenuOptions() {
18
18
  const trans = t();
19
19
  return [
20
- {
21
- name: '[*] ' + trans.menu.events.padEnd(16) + ' ' + chalk.gray(trans.menu.eventsDesc),
22
- value: 'events',
23
- short: trans.menu.events
24
- },
25
- {
26
- name: '[*] ' + trans.menu.repair.padEnd(16) + ' ' + chalk.gray(trans.menu.repairDesc),
27
- value: 'repair',
28
- short: trans.menu.repair
29
- },
30
- {
31
- name: '[*] ' + trans.menu.docs.padEnd(16) + ' ' + chalk.gray(trans.menu.docsDesc),
32
- value: 'docs',
33
- short: trans.menu.docs
34
- },
35
- {
36
- name: '[*] ' + trans.menu.website.padEnd(16) + ' ' + chalk.gray(trans.menu.websiteDesc),
37
- value: 'website',
38
- short: trans.menu.website
39
- },
40
- {
41
- name: '[*] ' + trans.menu.github.padEnd(16) + ' ' + chalk.gray(trans.menu.githubDesc),
42
- value: 'github',
43
- short: trans.menu.github
44
- },
45
- {
46
- name: '[*] ' + trans.menu.roadmap.padEnd(16) + ' ' + chalk.gray(trans.menu.roadmapDesc),
47
- value: 'roadmap',
48
- short: trans.menu.roadmap
49
- },
50
- {
51
- name: '[?] ' + trans.menu.about.padEnd(16) + ' ' + chalk.gray(trans.menu.aboutDesc),
52
- value: 'about',
53
- short: trans.menu.about
54
- },
55
- {
56
- name: '[⚙] ' + trans.menu.language.padEnd(16) + ' ' + chalk.gray(trans.menu.languageDesc),
57
- value: 'language',
58
- short: trans.menu.language
59
- },
60
- new inquirer.Separator(' '),
61
- {
62
- name: chalk.dim('[x] ' + trans.common.exit),
63
- value: 'exit',
64
- short: trans.common.exit
65
- }
20
+ { value: 'events', label: '🗓 ' + trans.menu.events, hint: trans.menu.eventsDesc },
21
+ { value: 'repair', label: '🔧 ' + trans.menu.repair, hint: trans.menu.repairDesc },
22
+ { value: 'docs', label: '📚 ' + trans.menu.docs, hint: trans.menu.docsDesc },
23
+ { value: 'website', label: '🌐 ' + trans.menu.website, hint: trans.menu.websiteDesc },
24
+ { value: 'github', label: '🐙 ' + trans.menu.github, hint: trans.menu.githubDesc },
25
+ { value: 'roadmap', label: '🗺 ' + trans.menu.roadmap, hint: trans.menu.roadmapDesc },
26
+ { value: 'about', label: 'ℹ️ ' + trans.menu.about, hint: trans.menu.aboutDesc },
27
+ { value: 'language', label: '🌍 ' + trans.menu.language, hint: trans.menu.languageDesc },
66
28
  ];
67
29
  }
68
30
  /**
69
- * Display main menu
31
+ * Display main menu — loops until user exits via Ctrl+C
70
32
  */
71
33
  export async function showMainMenu() {
72
34
  while (true) {
73
- try {
74
- const trans = t();
75
- // Show keybinding hints
76
- console.log(chalk.dim(' ' + trans.menu.navigationHint));
77
- console.log(chalk.dim(' ' + trans.menu.quickCommandHint));
78
- console.log();
79
- const { action } = await inquirer.prompt([
80
- {
81
- type: 'list',
82
- name: 'action',
83
- message: trans.menu.chooseAction,
84
- choices: getMainMenuOptions(),
85
- pageSize: 15,
86
- loop: false
87
- }
88
- ]);
89
- // Handle user selection
90
- if (action === 'exit') {
91
- console.log();
92
- console.log(chalk.dim(trans.common.goodbye));
93
- process.exit(0);
94
- }
95
- await runMenuAction(action);
96
- // Show divider after operation
97
- printNewLine();
98
- printDivider();
99
- printNewLine();
100
- }
101
- catch (err) {
102
- // Handle Ctrl+C exit
103
- if (err.message?.includes('User force closed')) {
104
- console.log();
105
- console.log(chalk.dim(t().common.goodbye));
106
- process.exit(0);
107
- }
108
- throw err;
35
+ const trans = t();
36
+ const action = await select({
37
+ message: trans.menu.chooseAction,
38
+ options: getMainMenuOptions(),
39
+ });
40
+ if (isCancel(action)) {
41
+ outro(chalk.dim(t().common.goodbye));
42
+ process.exit(0);
109
43
  }
44
+ await runMenuAction(action);
45
+ printNewLine();
46
+ printDivider();
47
+ printNewLine();
110
48
  }
111
49
  }
112
50
  /**
@@ -141,30 +79,29 @@ export async function runMenuAction(action) {
141
79
  }
142
80
  }
143
81
  /**
144
- * Display about information
82
+ * Display about information using clack note() box
145
83
  */
146
84
  function showAbout() {
147
85
  const trans = t();
148
- console.log();
149
- console.log(chalk.bold('>> ' + trans.about.title));
150
- console.log();
151
- console.log(chalk.dim(trans.about.project.padEnd(12)) + APP_INFO.name);
152
- console.log(chalk.dim(trans.about.version.padEnd(12)) + `v${APP_INFO.version}`);
153
- console.log(chalk.dim(trans.about.description.padEnd(12)) + APP_INFO.fullDescription);
154
- console.log();
155
- console.log(chalk.dim(trans.about.github.padEnd(12)) + chalk.cyan(APP_INFO.repository));
156
- console.log(chalk.dim(trans.about.website.padEnd(12)) + chalk.cyan(URLS.homepage));
157
- console.log(chalk.dim(trans.about.email.padEnd(12)) + chalk.cyan(URLS.email));
158
- console.log();
159
- console.log(chalk.dim(trans.about.features));
160
- console.log(' ' + trans.about.feature1);
161
- console.log(' ' + trans.about.feature2);
162
- console.log(' ' + trans.about.feature3);
163
- console.log(' ' + trans.about.feature4);
164
- console.log();
165
- console.log(chalk.dim(trans.about.license.padEnd(12)) + 'MIT License');
166
- console.log(chalk.dim(trans.about.author.padEnd(12)) + 'm1ngsama');
167
- console.log();
86
+ const content = [
87
+ `${chalk.dim(trans.about.project.padEnd(12))}${APP_INFO.name}`,
88
+ `${chalk.dim(trans.about.version.padEnd(12))}v${APP_INFO.version}`,
89
+ `${chalk.dim(trans.about.description.padEnd(12))}${APP_INFO.fullDescription}`,
90
+ '',
91
+ `${chalk.dim(trans.about.github.padEnd(12))}${chalk.cyan(APP_INFO.repository)}`,
92
+ `${chalk.dim(trans.about.website.padEnd(12))}${chalk.cyan(URLS.homepage)}`,
93
+ `${chalk.dim(trans.about.email.padEnd(12))}${chalk.cyan(URLS.email)}`,
94
+ '',
95
+ chalk.dim(trans.about.features),
96
+ ' ' + trans.about.feature1,
97
+ ' ' + trans.about.feature2,
98
+ ' ' + trans.about.feature3,
99
+ ' ' + trans.about.feature4,
100
+ '',
101
+ `${chalk.dim(trans.about.license.padEnd(12))}MIT License`,
102
+ `${chalk.dim(trans.about.author.padEnd(12))}m1ngsama`,
103
+ ].join('\n');
104
+ note(content, trans.about.title);
168
105
  }
169
106
  /**
170
107
  * Display language selection menu
@@ -172,29 +109,20 @@ function showAbout() {
172
109
  async function showLanguageMenu() {
173
110
  const trans = t();
174
111
  const currentLang = getCurrentLanguage();
175
- console.log();
176
- console.log(chalk.bold('>> ' + trans.language.title));
177
- console.log();
178
- console.log(chalk.dim(trans.language.currentLanguage + ': ') + chalk.cyan(trans.language[currentLang]));
179
- console.log();
180
- const { language } = await inquirer.prompt([
181
- {
182
- type: 'list',
183
- name: 'language',
184
- message: trans.language.selectLanguage,
185
- choices: [
186
- { name: trans.language.zh, value: 'zh' },
187
- { name: trans.language.en, value: 'en' }
188
- ],
189
- default: currentLang
190
- }
191
- ]);
112
+ const language = await select({
113
+ message: trans.language.selectLanguage,
114
+ options: [
115
+ { value: 'zh', label: trans.language.zh, hint: currentLang === 'zh' ? ' 当前' : undefined },
116
+ { value: 'en', label: trans.language.en, hint: currentLang === 'en' ? '✓ current' : undefined },
117
+ ],
118
+ initialValue: currentLang,
119
+ });
120
+ if (isCancel(language))
121
+ return;
192
122
  if (language !== currentLang) {
193
123
  setLanguage(language);
194
124
  clearTranslationCache();
195
- console.log();
196
- console.log(chalk.green('✓ ' + t().language.changed));
197
- console.log();
125
+ success(t().language.changed);
198
126
  }
199
127
  }
200
128
  //# sourceMappingURL=menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/core/menu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/core/menu.ts"],"names":[],"mappings":"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"}
package/dist/core/ui.d.ts CHANGED
@@ -1,19 +1,7 @@
1
1
  /**
2
2
  * Minimalist UI component library
3
- * Provides basic terminal UI components
3
+ * Delegates to @clack/prompts for modern terminal output
4
4
  */
5
- /**
6
- * Display header title
7
- */
8
- export declare function printHeader(title: string): void;
9
- /**
10
- * Display divider line
11
- */
12
- export declare function printDivider(): void;
13
- /**
14
- * Display loading spinner
15
- */
16
- export declare function showSpinner(text: string, duration: number): Promise<void>;
17
5
  /**
18
6
  * Display success message
19
7
  */
@@ -30,6 +18,14 @@ export declare function info(msg: string): void;
30
18
  * Display warning message
31
19
  */
32
20
  export declare function warning(msg: string): void;
21
+ /**
22
+ * No-op: session framing moved to main.ts intro()
23
+ */
24
+ export declare function printHeader(_title: string): void;
25
+ /**
26
+ * Display divider line
27
+ */
28
+ export declare function printDivider(): void;
33
29
  /**
34
30
  * Clear screen
35
31
  */
@@ -38,4 +34,9 @@ export declare function clearScreen(): void;
38
34
  * Print empty lines
39
35
  */
40
36
  export declare function printNewLine(count?: number): void;
37
+ /**
38
+ * Create and start a real async spinner.
39
+ * Caller is responsible for calling .stop(msg) or .stop(msg, 1) on error.
40
+ */
41
+ export declare function createSpinner(msg: string): import("@clack/prompts").SpinnerResult;
41
42
  //# sourceMappingURL=ui.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/core/ui.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAG/C;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAGnC;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB/E;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEzC;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEvC;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEtC;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEzC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAIlC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,GAAE,MAAU,GAAG,IAAI,CAIpD"}
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/core/ui.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEzC;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEvC;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEtC;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEzC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAGnC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAIlC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,GAAE,MAAU,GAAG,IAAI,CAIpD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,0CAIxC"}
package/dist/core/ui.js CHANGED
@@ -1,64 +1,45 @@
1
1
  /**
2
2
  * Minimalist UI component library
3
- * Provides basic terminal UI components
3
+ * Delegates to @clack/prompts for modern terminal output
4
4
  */
5
+ import { log, spinner as clackSpinner } from '@clack/prompts';
5
6
  import chalk from 'chalk';
6
- /**
7
- * Display header title
8
- */
9
- export function printHeader(title) {
10
- console.log(chalk.dim(title));
11
- console.log();
12
- }
13
- /**
14
- * Display divider line
15
- */
16
- export function printDivider() {
17
- const terminalWidth = process.stdout.columns || 80;
18
- console.log(chalk.dim('─'.repeat(Math.min(terminalWidth, 80))));
19
- }
20
- /**
21
- * Display loading spinner
22
- */
23
- export async function showSpinner(text, duration) {
24
- const frames = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
25
- let i = 0;
26
- const startTime = Date.now();
27
- return new Promise((resolve) => {
28
- const interval = setInterval(() => {
29
- process.stdout.write(`\r${chalk.cyan(frames[i])} ${text}`);
30
- i = (i + 1) % frames.length;
31
- if (Date.now() - startTime >= duration) {
32
- clearInterval(interval);
33
- process.stdout.write('\r' + ' '.repeat(text.length + 5) + '\r');
34
- resolve();
35
- }
36
- }, 80);
37
- });
38
- }
39
7
  /**
40
8
  * Display success message
41
9
  */
42
10
  export function success(msg) {
43
- console.log(chalk.green('[✓]') + ' ' + msg);
11
+ log.success(msg);
44
12
  }
45
13
  /**
46
14
  * Display error message
47
15
  */
48
16
  export function error(msg) {
49
- console.error(chalk.red('[✗]') + ' ' + msg);
17
+ log.error(msg);
50
18
  }
51
19
  /**
52
20
  * Display info message
53
21
  */
54
22
  export function info(msg) {
55
- console.log(chalk.blue('[ℹ]') + ' ' + msg);
23
+ log.info(msg);
56
24
  }
57
25
  /**
58
26
  * Display warning message
59
27
  */
60
28
  export function warning(msg) {
61
- console.error(chalk.yellow('[⚠]') + ' ' + msg);
29
+ log.warn(msg);
30
+ }
31
+ /**
32
+ * No-op: session framing moved to main.ts intro()
33
+ */
34
+ export function printHeader(_title) {
35
+ // intentional noop — intro() in main.ts owns the header
36
+ }
37
+ /**
38
+ * Display divider line
39
+ */
40
+ export function printDivider() {
41
+ const terminalWidth = process.stdout.columns || 80;
42
+ console.log(chalk.dim('─'.repeat(Math.min(terminalWidth, 80))));
62
43
  }
63
44
  /**
64
45
  * Clear screen
@@ -76,4 +57,13 @@ export function printNewLine(count = 1) {
76
57
  console.log();
77
58
  }
78
59
  }
60
+ /**
61
+ * Create and start a real async spinner.
62
+ * Caller is responsible for calling .stop(msg) or .stop(msg, 1) on error.
63
+ */
64
+ export function createSpinner(msg) {
65
+ const s = clackSpinner();
66
+ s.start(msg);
67
+ return s;
68
+ }
79
69
  //# sourceMappingURL=ui.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/core/ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/core/ui.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,GAAG,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,GAAW;IACjC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,GAAW;IAC/B,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,IAAI,CAAC,GAAW;IAC9B,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,GAAW;IACjC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,wDAAwD;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB,CAAC;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,CAAC,GAAG,YAAY,EAAE,CAAC;IACzB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * ICS calendar module
3
- * Fetches and renders upcoming events.
3
+ * Fetches and renders upcoming events with Unicode box table.
4
4
  */
5
5
  export interface Event {
6
6
  date: string;
@@ -18,6 +18,9 @@ export interface EventOutputItem {
18
18
  }
19
19
  export declare function fetchEvents(): Promise<Event[]>;
20
20
  export declare function serializeEvents(events: Event[]): EventOutputItem[];
21
+ /**
22
+ * Render events as a Unicode box-drawing table
23
+ */
21
24
  export declare function renderEventsTable(events: Event[], options?: {
22
25
  color?: boolean;
23
26
  }): string;
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/features/calendar.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAyCpD;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,EAAE,CAQlE;AAmBD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAqCxF;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAUnD;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAYlD"}
1
+ {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/features/calendar.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAyCpD;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,EAAE,CAQlE;AAmBD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAoDxF;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAUnD;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAYlD"}
@@ -1,11 +1,11 @@
1
1
  /**
2
2
  * ICS calendar module
3
- * Fetches and renders upcoming events.
3
+ * Fetches and renders upcoming events with Unicode box table.
4
4
  */
5
5
  import axios from 'axios';
6
6
  import ICAL from 'ical.js';
7
7
  import chalk from 'chalk';
8
- import { error, info, printDivider } from '../core/ui.js';
8
+ import { info, printDivider, createSpinner } from '../core/ui.js';
9
9
  import { t } from '../i18n/index.js';
10
10
  export async function fetchEvents() {
11
11
  try {
@@ -68,33 +68,44 @@ function formatTime(date) {
68
68
  const minutes = String(date.getMinutes()).padStart(2, '0');
69
69
  return `${hours}:${minutes}`;
70
70
  }
71
+ /**
72
+ * Render events as a Unicode box-drawing table
73
+ */
71
74
  export function renderEventsTable(events, options) {
72
75
  const trans = t();
73
76
  const color = options?.color !== false;
74
77
  if (events.length === 0) {
75
78
  return trans.calendar.noEvents;
76
79
  }
77
- const dateWidth = 14;
78
- const titleWidth = 32;
79
- const locationWidth = 20;
80
+ const dateWidth = 13;
81
+ const titleWidth = 30;
82
+ const locationWidth = 16;
83
+ const top = `┌${'─'.repeat(dateWidth + 2)}┬${'─'.repeat(titleWidth + 2)}┬${'─'.repeat(locationWidth + 2)}┐`;
84
+ const divider = `├${'─'.repeat(dateWidth + 2)}┼${'─'.repeat(titleWidth + 2)}┼${'─'.repeat(locationWidth + 2)}┤`;
85
+ const bottom = `└${'─'.repeat(dateWidth + 2)}┴${'─'.repeat(titleWidth + 2)}┴${'─'.repeat(locationWidth + 2)}┘`;
86
+ const headerRow = `│ ${trans.calendar.dateTime.padEnd(dateWidth)} │ ${trans.calendar.eventName.padEnd(titleWidth)} │ ${trans.calendar.location.padEnd(locationWidth)} │`;
80
87
  const lines = [];
81
- lines.push(`${trans.calendar.title} ${trans.calendar.subtitle}`);
82
- lines.push(`${trans.calendar.dateTime.padEnd(dateWidth)}${trans.calendar.eventName.padEnd(titleWidth)}${trans.calendar.location}`);
83
- lines.push('-'.repeat(Math.min((process.stdout.columns || 80), 80)));
84
- for (const event of events) {
85
- const dateTime = `${event.date} ${event.time}`.padEnd(dateWidth);
86
- const title = truncate(event.title, titleWidth - 1).padEnd(titleWidth);
87
- const location = truncate(event.location, locationWidth);
88
- if (color) {
89
- lines.push(chalk.cyan(dateTime) + chalk.white(title) + chalk.gray(location));
90
- }
91
- else {
92
- lines.push(dateTime + title + location);
88
+ if (color) {
89
+ lines.push(chalk.dim(top));
90
+ lines.push(chalk.bold(headerRow));
91
+ lines.push(chalk.dim(divider));
92
+ for (const event of events) {
93
+ const dateTime = `${event.date} ${event.time}`;
94
+ const title = truncate(event.title, titleWidth);
95
+ const location = truncate(event.location, locationWidth);
96
+ lines.push(`│ ${chalk.cyan(dateTime.padEnd(dateWidth))} ${chalk.white(title.padEnd(titleWidth))} ${chalk.gray(location.padEnd(locationWidth))} │`);
93
97
  }
98
+ lines.push(chalk.dim(bottom));
94
99
  }
95
- if (color) {
96
- lines[0] = chalk.cyan.bold(lines[0]);
97
- lines[1] = chalk.bold(lines[1]);
100
+ else {
101
+ lines.push(top);
102
+ lines.push(headerRow);
103
+ lines.push(divider);
104
+ for (const event of events) {
105
+ const dateTime = `${event.date} ${event.time}`;
106
+ lines.push(`│ ${dateTime.padEnd(dateWidth)} │ ${truncate(event.title, titleWidth).padEnd(titleWidth)} │ ${truncate(event.location, locationWidth).padEnd(locationWidth)} │`);
107
+ }
108
+ lines.push(bottom);
98
109
  }
99
110
  return lines.join('\n');
100
111
  }
@@ -110,14 +121,14 @@ export function displayEvents(events) {
110
121
  }
111
122
  export async function showCalendar() {
112
123
  const trans = t();
124
+ const s = createSpinner(trans.calendar.loading);
113
125
  try {
114
- info(trans.calendar.loading);
115
126
  const events = await fetchEvents();
116
- console.log('\r' + ' '.repeat(60) + '\r');
127
+ s.stop(`${events.length} ${trans.calendar.eventsFound}`);
117
128
  displayEvents(events);
118
129
  }
119
130
  catch {
120
- error(trans.calendar.error);
131
+ s.error(trans.calendar.error);
121
132
  console.log(chalk.gray(' ' + trans.calendar.errorHint));
122
133
  console.log();
123
134
  }
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/features/calendar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/features/calendar.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,11 @@
3
3
  * 获取并渲染Markdown文档
4
4
  */
5
5
  /**
6
- * 在浏览器中打开知识库
6
+ * Open docs in browser with real spinner
7
7
  */
8
8
  export declare function openDocsInBrowser(path?: string): Promise<void>;
9
9
  /**
10
- * 显示知识库菜单
10
+ * Show docs category menu
11
11
  */
12
12
  export declare function showDocsMenu(): Promise<void>;
13
13
  //# sourceMappingURL=docs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/features/docs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA2fH;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAcpE;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAyDlD"}
1
+ {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/features/docs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6TH;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAcpE;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAwBlD"}