cc98-cli 0.4.0 → 0.5.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.
Files changed (82) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cli/commands/update.d.ts.map +1 -1
  3. package/dist/cli/commands/update.js +49 -3
  4. package/dist/cli/commands/update.js.map +1 -1
  5. package/dist/storage/settings-store.d.ts +12 -0
  6. package/dist/storage/settings-store.d.ts.map +1 -0
  7. package/dist/storage/settings-store.js +46 -0
  8. package/dist/storage/settings-store.js.map +1 -0
  9. package/dist/tui/ansi.d.ts.map +1 -1
  10. package/dist/tui/ansi.js +5 -1
  11. package/dist/tui/ansi.js.map +1 -1
  12. package/dist/tui/app.js +1 -1
  13. package/dist/tui/app.js.map +1 -1
  14. package/dist/tui/components/content.d.ts +2 -0
  15. package/dist/tui/components/content.d.ts.map +1 -1
  16. package/dist/tui/components/content.js +47 -9
  17. package/dist/tui/components/content.js.map +1 -1
  18. package/dist/tui/components/status.d.ts +3 -0
  19. package/dist/tui/components/status.d.ts.map +1 -1
  20. package/dist/tui/components/status.js +21 -8
  21. package/dist/tui/components/status.js.map +1 -1
  22. package/dist/tui/components/utils.d.ts.map +1 -1
  23. package/dist/tui/components/utils.js +33 -12
  24. package/dist/tui/components/utils.js.map +1 -1
  25. package/dist/tui/controller.d.ts +36 -1
  26. package/dist/tui/controller.d.ts.map +1 -1
  27. package/dist/tui/controller.js +802 -124
  28. package/dist/tui/controller.js.map +1 -1
  29. package/dist/tui/emoji-art.d.ts +11 -0
  30. package/dist/tui/emoji-art.d.ts.map +1 -0
  31. package/dist/tui/emoji-art.js +371 -0
  32. package/dist/tui/emoji-art.js.map +1 -0
  33. package/dist/tui/emoji-renderer.d.ts +16 -0
  34. package/dist/tui/emoji-renderer.d.ts.map +1 -0
  35. package/dist/tui/emoji-renderer.js +110 -0
  36. package/dist/tui/emoji-renderer.js.map +1 -0
  37. package/dist/tui/image-renderer.d.ts +46 -0
  38. package/dist/tui/image-renderer.d.ts.map +1 -0
  39. package/dist/tui/image-renderer.js +259 -0
  40. package/dist/tui/image-renderer.js.map +1 -0
  41. package/dist/tui/keybindings.d.ts +24 -0
  42. package/dist/tui/keybindings.d.ts.map +1 -0
  43. package/dist/tui/keybindings.js +207 -0
  44. package/dist/tui/keybindings.js.map +1 -0
  45. package/dist/tui/navigation.d.ts.map +1 -1
  46. package/dist/tui/navigation.js +4 -0
  47. package/dist/tui/navigation.js.map +1 -1
  48. package/dist/tui/renderer.d.ts.map +1 -1
  49. package/dist/tui/renderer.js +181 -11
  50. package/dist/tui/renderer.js.map +1 -1
  51. package/dist/tui/state/store.d.ts.map +1 -1
  52. package/dist/tui/state/store.js +13 -2
  53. package/dist/tui/state/store.js.map +1 -1
  54. package/dist/tui/state/types.d.ts +24 -0
  55. package/dist/tui/state/types.d.ts.map +1 -1
  56. package/dist/tui/terminal-capabilities.d.ts +24 -0
  57. package/dist/tui/terminal-capabilities.d.ts.map +1 -0
  58. package/dist/tui/terminal-capabilities.js +55 -0
  59. package/dist/tui/terminal-capabilities.js.map +1 -0
  60. package/dist/tui/terminal.js +1 -1
  61. package/dist/tui/terminal.js.map +1 -1
  62. package/dist/tui/topic-reader.d.ts +9 -1
  63. package/dist/tui/topic-reader.d.ts.map +1 -1
  64. package/dist/tui/topic-reader.js +30 -14
  65. package/dist/tui/topic-reader.js.map +1 -1
  66. package/dist/tui/ubb-renderer.d.ts +5 -1
  67. package/dist/tui/ubb-renderer.d.ts.map +1 -1
  68. package/dist/tui/ubb-renderer.js +71 -25
  69. package/dist/tui/ubb-renderer.js.map +1 -1
  70. package/dist/update.d.ts +4 -1
  71. package/dist/update.d.ts.map +1 -1
  72. package/dist/update.js +71 -11
  73. package/dist/update.js.map +1 -1
  74. package/dist/version.d.ts +2 -2
  75. package/dist/version.d.ts.map +1 -1
  76. package/dist/version.js +10 -2
  77. package/dist/version.js.map +1 -1
  78. package/package.json +2 -1
  79. package/dist/tui/components/layout.d.ts +0 -3
  80. package/dist/tui/components/layout.d.ts.map +0 -1
  81. package/dist/tui/components/layout.js +0 -453
  82. package/dist/tui/components/layout.js.map +0 -1
@@ -0,0 +1,207 @@
1
+ // 快捷键绑定系统
2
+ import { readFile, writeFile, mkdir } from "node:fs/promises";
3
+ import { join } from "node:path";
4
+ import { homedir } from "node:os";
5
+ // 默认快捷键映射
6
+ export const DEFAULT_KEYBINDINGS = {
7
+ // 导航
8
+ moveUp: ["k", "\x1b[A"],
9
+ moveDown: ["j", "\x1b[B"],
10
+ moveLeft: ["h", "\x1b[D"],
11
+ moveRight: ["l", "\x1b[C"],
12
+ confirm: ["\r"],
13
+ back: ["h", "\x1b[D", "\x1b"],
14
+ // 全局
15
+ search: ["/"],
16
+ refresh: ["r"],
17
+ menu: ["o"],
18
+ help: ["?"],
19
+ quit: ["q", "\u0003"],
20
+ // 帖子阅读
21
+ topicScrollUp: ["k", "\x1b[A"],
22
+ topicScrollDown: ["j", "\x1b[B"],
23
+ topicNextPage: ["}"],
24
+ topicPrevPage: ["{"],
25
+ topicNextFloor: ["]"],
26
+ topicPrevFloor: ["["],
27
+ topicJumpPage: ["g"],
28
+ topicJumpFloor: ["G"],
29
+ topicJumpLast: ["G"],
30
+ topicFavorite: ["s"],
31
+ topicLike: ["l"],
32
+ topicDislike: ["d"],
33
+ topicUser: ["u"],
34
+ topicVote: ["v"],
35
+ topicReaction: ["a"],
36
+ topicOpenImage: ["o"],
37
+ topicCopyLink: ["c"],
38
+ topicRefresh: ["r"],
39
+ // 列表
40
+ listNext: ["j", "\x1b[B"],
41
+ listPrev: ["k", "\x1b[A"],
42
+ listOpen: ["l", "\x1b[C", "\r"],
43
+ listBack: ["h", "\x1b[D"],
44
+ listRefresh: ["r"],
45
+ // 搜索
46
+ searchToggleMode: ["\t"],
47
+ searchNext: ["j", "\x1b[B"],
48
+ searchPrev: ["k", "\x1b[A"],
49
+ searchExecute: ["\r"],
50
+ searchClose: ["\x1b", "/"],
51
+ // 菜单
52
+ menuNext: ["j", "\x1b[B"],
53
+ menuPrev: ["k", "\x1b[A"],
54
+ menuExecute: ["\r", "l"],
55
+ menuClose: ["\x1b", "o"],
56
+ // 输入
57
+ inputConfirm: ["\r"],
58
+ inputCancel: ["\x1b"],
59
+ inputBackspace: ["\x7f"]
60
+ };
61
+ // 快捷键管理器
62
+ export class KeybindingManager {
63
+ config;
64
+ configPath;
65
+ loaded = false;
66
+ constructor() {
67
+ this.config = { ...DEFAULT_KEYBINDINGS };
68
+ this.configPath = join(homedir(), ".cc98-cli", "keybindings.json");
69
+ }
70
+ // 加载配置文件
71
+ async load() {
72
+ try {
73
+ const content = await readFile(this.configPath, "utf-8");
74
+ const userConfig = JSON.parse(content);
75
+ this.config = this.mergeConfig(DEFAULT_KEYBINDINGS, userConfig);
76
+ this.loaded = true;
77
+ }
78
+ catch {
79
+ // 文件不存在或解析失败,使用默认配置
80
+ this.config = { ...DEFAULT_KEYBINDINGS };
81
+ this.loaded = true;
82
+ }
83
+ }
84
+ // 保存配置文件
85
+ async save() {
86
+ try {
87
+ const dir = join(homedir(), ".cc98-cli");
88
+ await mkdir(dir, { recursive: true });
89
+ await writeFile(this.configPath, JSON.stringify(this.config, null, 2), "utf-8");
90
+ }
91
+ catch (error) {
92
+ throw new Error(`保存快捷键配置失败: ${error instanceof Error ? error.message : String(error)}`);
93
+ }
94
+ }
95
+ // 合并配置(用户配置覆盖默认配置)
96
+ mergeConfig(defaults, user) {
97
+ const merged = { ...defaults };
98
+ for (const [action, keys] of Object.entries(user)) {
99
+ if (action in defaults) {
100
+ merged[action] = keys;
101
+ }
102
+ }
103
+ return merged;
104
+ }
105
+ // 获取动作的快捷键
106
+ getKeys(action) {
107
+ return this.config[action] ?? [];
108
+ }
109
+ // 检查按键是否匹配动作
110
+ matches(key, action) {
111
+ const keys = this.getKeys(action);
112
+ return keys.includes(key);
113
+ }
114
+ // 获取所有配置
115
+ getConfig() {
116
+ return { ...this.config };
117
+ }
118
+ // 更新动作的快捷键
119
+ updateAction(action, keys) {
120
+ this.config[action] = keys;
121
+ }
122
+ // 重置为默认配置
123
+ resetToDefault() {
124
+ this.config = { ...DEFAULT_KEYBINDINGS };
125
+ }
126
+ // 获取动作的描述
127
+ getActionDescription(action) {
128
+ const descriptions = {
129
+ moveUp: "上移",
130
+ moveDown: "下移",
131
+ moveLeft: "左移/返回",
132
+ moveRight: "右移/进入",
133
+ confirm: "确认",
134
+ back: "返回/取消",
135
+ search: "搜索",
136
+ refresh: "刷新",
137
+ menu: "菜单",
138
+ help: "帮助",
139
+ quit: "退出",
140
+ topicScrollUp: "帖子上滚",
141
+ topicScrollDown: "帖子下滚",
142
+ topicNextPage: "下一页",
143
+ topicPrevPage: "上一页",
144
+ topicNextFloor: "下一层",
145
+ topicPrevFloor: "上一层",
146
+ topicJumpPage: "跳页",
147
+ topicJumpFloor: "跳楼",
148
+ topicJumpLast: "最后一页",
149
+ topicFavorite: "收藏",
150
+ topicLike: "点赞",
151
+ topicDislike: "踩",
152
+ topicUser: "查看用户",
153
+ topicVote: "查看投票",
154
+ topicReaction: "查看评价",
155
+ topicOpenImage: "打开图片",
156
+ topicCopyLink: "复制图片/链接",
157
+ topicRefresh: "刷新帖子",
158
+ listNext: "列表下移",
159
+ listPrev: "列表上移",
160
+ listOpen: "打开",
161
+ listBack: "返回",
162
+ listRefresh: "刷新列表",
163
+ searchToggleMode: "切换搜索模式",
164
+ searchNext: "搜索结果下移",
165
+ searchPrev: "搜索结果上移",
166
+ searchExecute: "执行搜索",
167
+ searchClose: "关闭搜索",
168
+ menuNext: "菜单下移",
169
+ menuPrev: "菜单上移",
170
+ menuExecute: "执行菜单项",
171
+ menuClose: "关闭菜单",
172
+ inputConfirm: "确认输入",
173
+ inputCancel: "取消输入",
174
+ inputBackspace: "退格"
175
+ };
176
+ return descriptions[action] ?? action;
177
+ }
178
+ // 格式化按键显示
179
+ formatKey(key) {
180
+ const specialKeys = {
181
+ "\r": "Enter",
182
+ "\x1b": "Esc",
183
+ "\t": "Tab",
184
+ "\x7f": "Backspace",
185
+ "\u0003": "Ctrl+C",
186
+ "\x1b[A": "↑",
187
+ "\x1b[B": "↓",
188
+ "\x1b[C": "→",
189
+ "\x1b[D": "←"
190
+ };
191
+ return specialKeys[key] ?? key;
192
+ }
193
+ // 格式化动作的快捷键显示
194
+ formatActionKeys(action) {
195
+ const keys = this.getKeys(action);
196
+ return keys.map(k => this.formatKey(k)).join("/");
197
+ }
198
+ }
199
+ // 单例实例
200
+ let instance = null;
201
+ export function getKeybindingManager() {
202
+ if (!instance) {
203
+ instance = new KeybindingManager();
204
+ }
205
+ return instance;
206
+ }
207
+ //# sourceMappingURL=keybindings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keybindings.js","sourceRoot":"","sources":["../../src/tui/keybindings.ts"],"names":[],"mappings":"AAAA,UAAU;AAEV,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AA+DlC,UAAU;AACV,MAAM,CAAC,MAAM,mBAAmB,GAAqB;IACnD,KAAK;IACL,MAAM,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC;IACvB,QAAQ,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC;IACzB,QAAQ,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC;IACzB,SAAS,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC1B,OAAO,EAAE,CAAC,IAAI,CAAC;IACf,IAAI,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC;IAC7B,KAAK;IACL,MAAM,EAAE,CAAC,GAAG,CAAC;IACb,OAAO,EAAE,CAAC,GAAG,CAAC;IACd,IAAI,EAAE,CAAC,GAAG,CAAC;IACX,IAAI,EAAE,CAAC,GAAG,CAAC;IACX,IAAI,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC;IACrB,OAAO;IACP,aAAa,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,eAAe,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC;IAChC,aAAa,EAAE,CAAC,GAAG,CAAC;IACpB,aAAa,EAAE,CAAC,GAAG,CAAC;IACpB,cAAc,EAAE,CAAC,GAAG,CAAC;IACrB,cAAc,EAAE,CAAC,GAAG,CAAC;IACrB,aAAa,EAAE,CAAC,GAAG,CAAC;IACpB,cAAc,EAAE,CAAC,GAAG,CAAC;IACrB,aAAa,EAAE,CAAC,GAAG,CAAC;IACpB,aAAa,EAAE,CAAC,GAAG,CAAC;IACpB,SAAS,EAAE,CAAC,GAAG,CAAC;IAChB,YAAY,EAAE,CAAC,GAAG,CAAC;IACnB,SAAS,EAAE,CAAC,GAAG,CAAC;IAChB,SAAS,EAAE,CAAC,GAAG,CAAC;IAChB,aAAa,EAAE,CAAC,GAAG,CAAC;IACpB,cAAc,EAAE,CAAC,GAAG,CAAC;IACrB,aAAa,EAAE,CAAC,GAAG,CAAC;IACpB,YAAY,EAAE,CAAC,GAAG,CAAC;IACnB,KAAK;IACL,QAAQ,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC;IACzB,QAAQ,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC;IACzB,QAAQ,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC;IAC/B,QAAQ,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC;IACzB,WAAW,EAAE,CAAC,GAAG,CAAC;IAClB,KAAK;IACL,gBAAgB,EAAE,CAAC,IAAI,CAAC;IACxB,UAAU,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC3B,UAAU,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC3B,aAAa,EAAE,CAAC,IAAI,CAAC;IACrB,WAAW,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC;IAC1B,KAAK;IACL,QAAQ,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC;IACzB,QAAQ,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC;IACzB,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC;IACxB,SAAS,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC;IACxB,KAAK;IACL,YAAY,EAAE,CAAC,IAAI,CAAC;IACpB,WAAW,EAAE,CAAC,MAAM,CAAC;IACrB,cAAc,EAAE,CAAC,MAAM,CAAC;CACzB,CAAC;AAEF,SAAS;AACT,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAmB;IACzB,UAAU,CAAS;IACnB,MAAM,GAAG,KAAK,CAAC;IAEvB;QACE,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,mBAAmB,EAAE,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;IACrE,CAAC;IAED,SAAS;IACT,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACzD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAqB,CAAC;YAC3D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;YAChE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,oBAAoB;YACpB,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,mBAAmB,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;IAED,SAAS;IACT,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;YACzC,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACtC,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAClF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,cAAc,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IAED,mBAAmB;IACX,WAAW,CAAC,QAA0B,EAAE,IAAsB;QACpE,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;gBACvB,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;YACxB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,WAAW;IACX,OAAO,CAAC,MAAwB;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACnC,CAAC;IAED,aAAa;IACb,OAAO,CAAC,GAAW,EAAE,MAAwB;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,SAAS;IACT,SAAS;QACP,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED,WAAW;IACX,YAAY,CAAC,MAAwB,EAAE,IAAc;QACnD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED,UAAU;IACV,cAAc;QACZ,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAC3C,CAAC;IAED,UAAU;IACV,oBAAoB,CAAC,MAAwB;QAC3C,MAAM,YAAY,GAAqC;YACrD,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,OAAO;YAClB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,aAAa,EAAE,MAAM;YACrB,eAAe,EAAE,MAAM;YACvB,aAAa,EAAE,KAAK;YACpB,aAAa,EAAE,KAAK;YACpB,cAAc,EAAE,KAAK;YACrB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,MAAM;YACrB,aAAa,EAAE,IAAI;YACnB,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,GAAG;YACjB,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,MAAM;YACjB,aAAa,EAAE,MAAM;YACrB,cAAc,EAAE,MAAM;YACtB,aAAa,EAAE,SAAS;YACxB,YAAY,EAAE,MAAM;YACpB,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,MAAM;YACnB,gBAAgB,EAAE,QAAQ;YAC1B,UAAU,EAAE,QAAQ;YACpB,UAAU,EAAE,QAAQ;YACpB,aAAa,EAAE,MAAM;YACrB,WAAW,EAAE,MAAM;YACnB,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,MAAM;YAChB,WAAW,EAAE,OAAO;YACpB,SAAS,EAAE,MAAM;YACjB,YAAY,EAAE,MAAM;YACpB,WAAW,EAAE,MAAM;YACnB,cAAc,EAAE,IAAI;SACrB,CAAC;QACF,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;IACxC,CAAC;IAED,UAAU;IACV,SAAS,CAAC,GAAW;QACnB,MAAM,WAAW,GAA2B;YAC1C,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,WAAW;YACnB,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,GAAG;YACb,QAAQ,EAAE,GAAG;YACb,QAAQ,EAAE,GAAG;YACb,QAAQ,EAAE,GAAG;SACd,CAAC;QACF,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;IACjC,CAAC;IAED,cAAc;IACd,gBAAgB,CAAC,MAAwB;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC;CACF;AAED,OAAO;AACP,IAAI,QAAQ,GAA6B,IAAI,CAAC;AAE9C,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;IACrC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/tui/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE7D,eAAO,MAAM,QAAQ,EAAE,SAAS,OAAO,EAUtC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAM/C,CAAC"}
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/tui/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE7D,eAAO,MAAM,QAAQ,EAAE,SAAS,OAAO,EAUtC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAU/C,CAAC"}
@@ -11,8 +11,12 @@ export const navItems = [
11
11
  ];
12
12
  export const settingsItems = [
13
13
  { title: "切换账号", meta: "account", detail: "选择或管理登录账号" },
14
+ { title: "自动签到", meta: "auto-signin", detail: "启动后为所有账号执行每日签到" },
14
15
  { title: "检查更新", meta: "update", detail: "检查 CC98-CLI 新版本" },
15
16
  { title: "缓存管理", meta: "cache", detail: "查看和清理本地缓存" },
17
+ { title: "CC98 像素 Logo", meta: "pixel-logo", detail: "查看终端像素化的 CC98 标识" },
18
+ { title: "表情包预览", meta: "emoji-preview", detail: "按分类查看 365 个终端像素表情" },
19
+ { title: "快捷键设置", meta: "keybindings", detail: "自定义快捷键绑定" },
16
20
  { title: "快捷键帮助", meta: "help", detail: "查看所有可用快捷键" },
17
21
  { title: "退出登录", meta: "logout", detail: "清除本地登录信息" }
18
22
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/tui/navigation.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAuB;IAC1C,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;IACxC,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;IAC7C,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE;IACvC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;IAC3C,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;IAC9C,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;IAC9C,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;IAC7C,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;IACvC,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;CAC/C,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE;IACvD,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE;IAC5D,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE;IACrD,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE;IACrD,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE;CACtD,CAAC"}
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/tui/navigation.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAuB;IAC1C,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;IACxC,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;IAC7C,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE;IACvC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;IAC3C,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;IAC9C,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;IAC9C,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;IAC7C,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;IACvC,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;CAC/C,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE;IACvD,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,gBAAgB,EAAE;IAChE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE;IAC5D,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE;IACrD,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,kBAAkB,EAAE;IACzE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,mBAAmB,EAAE;IACtE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE;IAC3D,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE;IACrD,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE;CACtD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/tui/renderer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAoB,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAmBnE,wBAAgB,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CA0HrF"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/tui/renderer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAoB,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAyBnE,wBAAgB,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAuIrF"}
@@ -1,8 +1,12 @@
1
- import { ansi, bg, fg, stripAnsi } from "./ansi.js";
1
+ import { ansi, bg, fg, moveTo, stripAnsi } from "./ansi.js";
2
2
  import { Header, Overview, Sidebar, Content, StatusBar, fit, blank } from "./components/index.js";
3
3
  import { navItems } from "./navigation.js";
4
4
  import { currentTopicLine, currentTopicPost, lineKindLabel } from "./topic-reader.js";
5
+ import { getKeybindingManager } from "./keybindings.js";
5
6
  import { BOX_ROUNDED } from "./borders.js";
7
+ import { EMOJI_CATEGORIES, getEmojiArt, renderEmojiCode } from "./emoji-renderer.js";
8
+ import { getImageDimensionsSync, renderLocalImageSync } from "./image-renderer.js";
9
+ import { detectTerminalCapabilities, supportsInlineImages } from "./terminal-capabilities.js";
6
10
  const cc98Blue = fg(0, 130, 202);
7
11
  const cc98BlueSoft = fg(94, 180, 232);
8
12
  const white = fg(245, 250, 255);
@@ -16,6 +20,8 @@ const overview = new Overview();
16
20
  const sidebar = new Sidebar();
17
21
  const content = new Content();
18
22
  const statusBar = new StatusBar();
23
+ const keybindings = getKeybindingManager();
24
+ const imagePreviewMarker = "\x00cc98-image-preview\x00";
19
25
  export function draw(state, size) {
20
26
  const width = Math.max(60, size.columns);
21
27
  const height = Math.max(20, size.rows);
@@ -71,9 +77,16 @@ export function draw(state, size) {
71
77
  ansi.reset);
72
78
  }
73
79
  const sidebarLines = sidebar.render(state, sidebarWidth, bodyHeight);
74
- const mainLines = content.render(state, mainWidth, bodyHeight);
80
+ const mainLines = content.render(state, mainWidth - 2, bodyHeight);
75
81
  const rightLines = rightWidth > 0 ? drawRight(state, rightWidth, bodyHeight) : [];
82
+ const overlays = [];
83
+ const bodyStartRow = 5;
84
+ const rightContentColumn = sidebarWidth + mainWidth;
76
85
  for (let row = 0; row < bodyHeight; row += 1) {
86
+ const rawRightLine = rightLines[row] ?? "";
87
+ const imagePreview = rawRightLine.startsWith(imagePreviewMarker)
88
+ ? rawRightLine.slice(imagePreviewMarker.length)
89
+ : undefined;
77
90
  const parts = [
78
91
  line + box.vertical + ansi.reset,
79
92
  fit(sidebarLines[row] ?? "", sidebarWidth - 2),
@@ -81,7 +94,10 @@ export function draw(state, size) {
81
94
  fit(mainLines[row] ?? "", mainWidth - 2)
82
95
  ];
83
96
  if (rightWidth > 0) {
84
- parts.push(line + box.vertical + ansi.reset, fit(rightLines[row] ?? "", rightWidth - 2), line + box.vertical + ansi.reset);
97
+ if (imagePreview !== undefined) {
98
+ overlays.push(`${moveTo(bodyStartRow + row, rightContentColumn)}${imagePreview}`);
99
+ }
100
+ parts.push(line + box.vertical + ansi.reset, fit(imagePreview === undefined ? rawRightLine : "", rightWidth - 2), line + box.vertical + ansi.reset);
85
101
  }
86
102
  else {
87
103
  parts.push(line + box.vertical + ansi.reset);
@@ -121,17 +137,41 @@ export function draw(state, size) {
121
137
  output = drawSearchModal(lines, state, width, height);
122
138
  if (state.modal === "user")
123
139
  output = drawUserDetailModal(lines, state, width, height);
140
+ if (state.modal === null && overlays.length > 0) {
141
+ output += overlays.join("") + moveTo(height, 1);
142
+ }
124
143
  return output;
125
144
  }
126
145
  function drawRight(state, width, height) {
127
146
  if (state.mode === "topic" && state.topic) {
128
- return drawTopicRight(state.topic, state.scroll, width, height);
147
+ return drawTopicRight(state.topic, state.topic.cursorLine, width, height);
148
+ }
149
+ // 新版本更新通知(首次显示)
150
+ if (state.updateAvailable?.isNew) {
151
+ return drawUpdateRight(state.updateAvailable, width, height);
129
152
  }
130
153
  if (state.focus === "nav") {
131
154
  return drawNavRight(state, width, height);
132
155
  }
133
156
  return drawItemRight(state, width, height);
134
157
  }
158
+ function drawUpdateRight(update, width, height) {
159
+ const rows = [];
160
+ const updateFg = fg(255, 200, 50);
161
+ rows.push(`${updateFg}${ansi.bold} ⬆ 新版本可用${ansi.reset}`);
162
+ rows.push(`${cc98Blue}${ansi.bold} ${update.tagName}${ansi.reset}`);
163
+ rows.push(`${line}${"─".repeat(Math.max(0, width - 1))}${ansi.reset}`);
164
+ // 显示更新内容(截取前几行)
165
+ const bodyLines = update.body.split("\n").filter(l => l.trim()).slice(0, 6);
166
+ for (const lineText of bodyLines) {
167
+ if (rows.length >= height - 3)
168
+ break;
169
+ rows.push(`${muted} ${lineText.slice(0, width - 4)}${ansi.reset}`);
170
+ }
171
+ rows.push("");
172
+ rows.push(`${muted} Esc 关闭 任意键隐藏${ansi.reset}`);
173
+ return rows.concat(blank(height - rows.length, width)).slice(0, height);
174
+ }
135
175
  function drawNavRight(state, width, height) {
136
176
  const rows = [];
137
177
  const nav = navItems[state.navIndex];
@@ -154,6 +194,15 @@ function drawItemRight(state, width, height) {
154
194
  if (!selected) {
155
195
  return blank(height, width);
156
196
  }
197
+ if (selected.meta?.startsWith("emoji:")) {
198
+ return drawEmojiRight(selected.meta.slice("emoji:".length), width, height);
199
+ }
200
+ if (selected.meta?.startsWith("emoji-category:")) {
201
+ return drawEmojiCategoryRight(selected.meta.slice("emoji-category:".length), width, height);
202
+ }
203
+ if (selected.meta?.startsWith("emoji-batch:")) {
204
+ return drawEmojiBatchRight(selected.meta.slice("emoji-batch:".length), width, height);
205
+ }
157
206
  const rows = [];
158
207
  rows.push(`${cc98Blue}${ansi.bold} ${selected.title}${ansi.reset}`);
159
208
  rows.push(`${line}${"─".repeat(Math.max(0, width - 1))}${ansi.reset}`);
@@ -175,6 +224,62 @@ function drawItemRight(state, width, height) {
175
224
  }
176
225
  return rows.concat(blank(height - rows.length, width)).slice(0, height);
177
226
  }
227
+ function drawEmojiRight(code, width, height) {
228
+ const art = getEmojiArt(code);
229
+ const rendered = renderEmojiCode(code);
230
+ if (!art || !rendered) {
231
+ return [`${danger} 未找到 [${code}]${ansi.reset}`].concat(blank(height - 1, width)).slice(0, height);
232
+ }
233
+ const category = EMOJI_CATEGORIES.find((item) => item.codes.includes(code));
234
+ const rows = [];
235
+ rows.push(`${cc98Blue}${ansi.bold} [${code}]${ansi.reset}`);
236
+ rows.push(`${line}${"─".repeat(Math.max(0, width - 1))}${ansi.reset}`);
237
+ rows.push(`${muted} 分类: ${category?.label ?? "未知"}${ansi.reset}`);
238
+ rows.push(`${muted} 尺寸: ${art.width}x${art.height}px${ansi.reset}`);
239
+ rows.push(`${muted} 颜色: ${art.palette.length}${ansi.reset}`);
240
+ rows.push("");
241
+ rows.push(...rendered.split("\n"));
242
+ rows.push("");
243
+ rows.push(`${muted}Enter 放大预览${ansi.reset}`);
244
+ return rows.concat(blank(height - rows.length, width)).slice(0, height);
245
+ }
246
+ function drawEmojiCategoryRight(id, width, height) {
247
+ const category = EMOJI_CATEGORIES.find((item) => item.id === id);
248
+ if (!category) {
249
+ return blank(height, width);
250
+ }
251
+ const rows = [
252
+ `${cc98Blue}${ansi.bold} ${category.label}${ansi.reset}`,
253
+ `${line}${"─".repeat(Math.max(0, width - 1))}${ansi.reset}`,
254
+ `${muted} 来源: Assets/Emoji/${category.source}${ansi.reset}`,
255
+ `${muted} 数量: ${category.codes.length}${ansi.reset}`,
256
+ `${muted} 范围: ${category.codes[0]} - ${category.codes.at(-1)}${ansi.reset}`,
257
+ "",
258
+ `${muted}继续向下选择具体表情${ansi.reset}`
259
+ ];
260
+ return rows.concat(blank(height - rows.length, width)).slice(0, height);
261
+ }
262
+ function drawEmojiBatchRight(value, width, height) {
263
+ const [id, batchValue] = value.split(":");
264
+ const batchNumber = Number(batchValue);
265
+ const category = EMOJI_CATEGORIES.find((item) => item.id === id);
266
+ if (!category || !Number.isFinite(batchNumber) || batchNumber < 1) {
267
+ return blank(height, width);
268
+ }
269
+ const start = (batchNumber - 1) * 20;
270
+ const codes = category.codes.slice(start, start + 20);
271
+ const rows = [
272
+ `${cc98Blue}${ansi.bold} ${category.label} 第 ${batchNumber} 批${ansi.reset}`,
273
+ `${line}${"─".repeat(Math.max(0, width - 1))}${ansi.reset}`,
274
+ `${muted} 数量: ${codes.length}${ansi.reset}`,
275
+ `${muted} 范围: ${codes[0] ?? "-"} - ${codes.at(-1) ?? "-"}${ansi.reset}`,
276
+ "",
277
+ ...codes.map((code) => `${muted}[${code}]${ansi.reset}`),
278
+ "",
279
+ `${muted}继续向下逐个验收${ansi.reset}`
280
+ ];
281
+ return rows.concat(blank(height - rows.length, width)).slice(0, height);
282
+ }
178
283
  function drawTopicRight(topic, scroll, width, height) {
179
284
  const rows = [];
180
285
  const post = currentTopicPost(topic, scroll);
@@ -199,25 +304,90 @@ function drawTopicRight(topic, scroll, width, height) {
199
304
  if (post.linkCount > 0)
200
305
  rows.push(`${muted} 链接: ${post.linkCount}${ansi.reset}`);
201
306
  }
307
+ if (topicLine?.kind === "image" && topicLine.imageUrl && rows.length < height - 4) {
308
+ rows.push(`${line}${"─".repeat(Math.max(0, width - 1))}${ansi.reset}`);
309
+ rows.push(...drawImagePreview(topic, topicLine.imageUrl, width, Math.max(0, height - rows.length - 4)));
310
+ }
202
311
  rows.push(`${line}${"─".repeat(Math.max(0, width - 1))}${ansi.reset}`);
203
312
  rows.push(`${muted} 当前: ${scroll + 1}/${topic.lines.length}${ansi.reset}`);
204
313
  rows.push(`${muted} 已加载: ${topic.loaded} 楼${ansi.reset}`);
205
314
  return rows.concat(blank(height - rows.length, width)).slice(0, height);
206
315
  }
316
+ function drawImagePreview(topic, imageUrl, width, height) {
317
+ const rows = [];
318
+ const cachedPath = topic.imageCache.get(imageUrl);
319
+ rows.push(`${cc98Blue}${ansi.bold} 图片预览${ansi.reset}`);
320
+ if (height <= 1) {
321
+ return rows;
322
+ }
323
+ if (topic.imageErrors.has(imageUrl)) {
324
+ rows.push(`${danger} 下载失败${ansi.reset}`);
325
+ rows.push(`${muted} o 打开 c 复制图片${ansi.reset}`);
326
+ return rows.slice(0, height);
327
+ }
328
+ if (!cachedPath) {
329
+ rows.push(`${muted}${topic.imageLoading.has(imageUrl) ? " 加载中..." : " 等待缓存..."}${ansi.reset}`);
330
+ rows.push(`${muted} o 打开 c 复制图片${ansi.reset}`);
331
+ return rows.slice(0, height);
332
+ }
333
+ if (!supportsInlineImages()) {
334
+ const capabilities = detectTerminalCapabilities();
335
+ rows.push(`${muted} 当前终端未检测到图片协议${ansi.reset}`);
336
+ rows.push(`${muted} TERM=${capabilities.term || "-"}${ansi.reset}`);
337
+ rows.push(`${muted} o 打开 c 复制图片${ansi.reset}`);
338
+ return rows.slice(0, height);
339
+ }
340
+ const previewSize = estimateRightPreviewSize(cachedPath, width, Math.max(1, height - 2));
341
+ const rendered = renderLocalImageSync(cachedPath, {
342
+ maxWidth: previewSize.cols,
343
+ maxHeight: previewSize.rows
344
+ });
345
+ if (!rendered) {
346
+ rows.push(`${muted} 当前协议无法渲染此图片${ansi.reset}`);
347
+ rows.push(`${muted} o 打开 c 复制图片${ansi.reset}`);
348
+ return rows.slice(0, height);
349
+ }
350
+ rows.push(`${imagePreviewMarker}${rendered.escapeSequence}`);
351
+ rows.push(...blank(Math.max(0, previewSize.rows - 1), width));
352
+ rows.push(`${muted} o 打开 c 复制图片${ansi.reset}`);
353
+ return rows.slice(0, height);
354
+ }
355
+ function estimateRightPreviewSize(filePath, width, maxRows) {
356
+ const maxCols = Math.max(8, width - 2);
357
+ const clampedMaxRows = Math.max(4, Math.min(20, maxRows));
358
+ const fallback = { cols: Math.min(maxCols, 32), rows: Math.min(clampedMaxRows, 12) };
359
+ const dimensions = getImageDimensionsSync(filePath);
360
+ if (!dimensions || dimensions.width <= 0 || dimensions.height <= 0) {
361
+ return fallback;
362
+ }
363
+ const cellWidthPx = 8;
364
+ const cellHeightPx = 18;
365
+ const naturalCols = Math.max(1, Math.ceil(dimensions.width / cellWidthPx));
366
+ const naturalRows = Math.max(1, Math.ceil(dimensions.height / cellHeightPx));
367
+ const scale = Math.min(1, maxCols / naturalCols, clampedMaxRows / naturalRows);
368
+ return {
369
+ cols: Math.max(8, Math.min(maxCols, Math.round(naturalCols * scale))),
370
+ rows: Math.max(4, Math.min(clampedMaxRows, Math.round(naturalRows * scale)))
371
+ };
372
+ }
207
373
  function drawHelpModal(baseLines, width, height) {
208
374
  return overlay(baseLines, width, height, Math.min(60, width - 4), [
209
375
  `${cc98Blue}${ansi.bold}快捷键帮助${ansi.reset}`,
210
376
  "",
211
- "导航: j/k ↑↓ 移动 h 返回 Enter 打开",
212
- "全局: / 搜索 r 刷新 o 菜单 ? 帮助 q 退出",
213
- "帖子: j/k 滚动 n 下页 s 收藏 l 赞 d 踩",
214
- "帖子: u 用户 [/] 楼层 数字+Enter 跳楼",
215
- "搜索: j/k ↑↓ 移动 Enter 搜索/打开 Tab 切换",
216
- "菜单: j/k ↑↓ 移动 Enter 执行 o 关闭",
377
+ `导航: ${keys("moveDown")}/${keys("moveUp")} 移动 ${keys("back")} 返回 ${keys("confirm")} 打开`,
378
+ `全局: ${keys("search")} 搜索 ${keys("refresh")} 刷新 ${keys("menu")} 菜单 ${keys("help")} 帮助 ${keys("quit")} 退出`,
379
+ `帖子: ${keys("topicScrollDown")}/${keys("topicScrollUp")} 滚动 ${keys("topicNextPage")}/${keys("topicPrevPage")} 翻页 ${keys("topicNextFloor")}/${keys("topicPrevFloor")} 楼层`,
380
+ `帖子: 数字+${keys("topicJumpPage")} 跳页 数字+${keys("topicJumpFloor")} 跳楼 ${keys("topicJumpLast")} 最后`,
381
+ `帖子: ${keys("topicFavorite")} 收藏 ${keys("topicLike")} ${keys("topicDislike")} ${keys("topicUser")} 用户`,
382
+ `搜索: ${keys("searchNext")}/${keys("searchPrev")} 移动 ${keys("searchExecute")} 搜索/打开 ${keys("searchToggleMode")} 切换`,
383
+ `菜单: ${keys("menuNext")}/${keys("menuPrev")} 移动 ${keys("menuExecute")} 执行 ${keys("menuClose")} 关闭`,
217
384
  "",
218
385
  `${muted}任意键关闭${ansi.reset}`
219
386
  ]);
220
387
  }
388
+ function keys(action) {
389
+ return keybindings.formatActionKeys(action);
390
+ }
221
391
  function drawMenuModal(baseLines, state, width, height) {
222
392
  const rows = [`${cc98Blue}${ansi.bold}操作菜单${ansi.reset}`, ""];
223
393
  rows.push(...state.menuItems.map((item, index) => {
@@ -234,7 +404,7 @@ function drawInfoModal(baseLines, state, width, height) {
234
404
  "",
235
405
  ...state.infoLines.slice(0, Math.max(1, height - 8)),
236
406
  "",
237
- `${muted}Esc / Enter 关闭${ansi.reset}`
407
+ `${muted}${keys("back")} / ${keys("confirm")} 关闭${ansi.reset}`
238
408
  ]);
239
409
  }
240
410
  function drawSearchModal(baseLines, state, width, height) {
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/tui/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAClG,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,QAAQ,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACjC,MAAM,YAAY,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACtC,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAChC,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAChC,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAC7B,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACjC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC5B,MAAM,GAAG,GAAG,WAAW,CAAC;AAExB,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AAC5B,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AAChC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;AAElC,MAAM,UAAU,IAAI,CAAC,KAAe,EAAE,IAAuC;IAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,YAAY,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACzF,MAAM,SAAS,GAAG,KAAK,GAAG,YAAY,GAAG,UAAU,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,MAAM,cAAc,GAAG,CAAC,CAAC,CAAC,qBAAqB;IAC/C,yFAAyF;IACzF,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,GAAG,cAAc,CAAC;IAC/C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAExC,QAAQ;IACR,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CACR,IAAI;YACJ,GAAG,CAAC,OAAO;YACX,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;YACvC,GAAG,CAAC,OAAO;YACX,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;YACpC,GAAG,CAAC,OAAO;YACX,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;YACrC,GAAG,CAAC,QAAQ;YACZ,IAAI,CAAC,KAAK,CACX,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CACR,IAAI;YACJ,GAAG,CAAC,OAAO;YACX,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;YACvC,GAAG,CAAC,OAAO;YACX,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;YACpC,GAAG,CAAC,QAAQ;YACZ,IAAI,CAAC,KAAK,CACX,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;IAE7D,MAAM;IACN,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CACR,IAAI;YACJ,GAAG,CAAC,QAAQ;YACZ,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;YACvC,GAAG,CAAC,KAAK;YACT,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;YACpC,GAAG,CAAC,KAAK;YACT,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;YACrC,GAAG,CAAC,OAAO;YACX,IAAI,CAAC,KAAK,CACX,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CACR,IAAI;YACJ,GAAG,CAAC,QAAQ;YACZ,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;YACvC,GAAG,CAAC,KAAK;YACT,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;YACpC,GAAG,CAAC,OAAO;YACX,IAAI,CAAC,KAAK,CACX,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAElF,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG;YACZ,IAAI,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK;YAChC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,YAAY,GAAG,CAAC,CAAC;YAC9C,IAAI,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK;YAChC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,SAAS,GAAG,CAAC,CAAC;SACzC,CAAC;QACF,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CACR,IAAI,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,EAChC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,UAAU,GAAG,CAAC,CAAC,EAC1C,IAAI,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CACjC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED,QAAQ;IACR,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CACR,IAAI;YACJ,GAAG,CAAC,UAAU;YACd,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;YACvC,GAAG,CAAC,KAAK;YACT,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;YACpC,GAAG,CAAC,KAAK;YACT,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;YACrC,GAAG,CAAC,WAAW;YACf,IAAI,CAAC,KAAK,CACX,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CACR,IAAI;YACJ,GAAG,CAAC,UAAU;YACd,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;YACvC,GAAG,CAAC,KAAK;YACT,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;YACpC,GAAG,CAAC,WAAW;YACf,IAAI,CAAC,KAAK,CACX,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAE3C,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM;QAAE,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACzE,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM;QAAE,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAChF,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM;QAAE,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAChF,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ;QAAE,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACpF,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM;QAAE,MAAM,GAAG,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACtF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,SAAS,CAAC,KAAe,EAAE,KAAa,EAAE,MAAc;IAC/D,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC1C,OAAO,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;QAC1B,OAAO,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,YAAY,CAAC,KAAe,EAAE,KAAa,EAAE,MAAc;IAClE,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAErC,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACtE,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAEvE,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM;YAAE,MAAM;QACjC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC,GAAG,YAAY,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,aAAa,CAAC,KAAe,EAAE,KAAa,EAAE,MAAc;IACnE,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACpE,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACvE,IAAI,QAAQ,CAAC,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACvE,IAAI,QAAQ,CAAC,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,GAAG,YAAY,IAAI,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAClF,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/F,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/F,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAE7F,eAAe;IACf,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACvH,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,cAAc,CAAC,KAAuB,EAAE,MAAc,EAAE,KAAa,EAAE,MAAc;IAC5F,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAElD,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACvD,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACvE,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACnE,IAAI,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACzF,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7E,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACvF,IAAI,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACvE,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACnF,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACvE,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3E,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,aAAa,CAAC,SAAmB,EAAE,KAAa,EAAE,MAAc;IACvE,OAAO,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE;QAChE,GAAG,QAAQ,GAAG,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,KAAK,EAAE;QAC3C,EAAE;QACF,iCAAiC;QACjC,kCAAkC;QAClC,kCAAkC;QAClC,+BAA+B;QAC/B,oCAAoC;QACpC,+BAA+B;QAC/B,EAAE;QACF,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE;KAC7B,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,SAAmB,EAAE,KAAe,EAAE,KAAa,EAAE,MAAc;IACxF,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9D,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC/C,MAAM,MAAM,GAAG,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC;QACzC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IACxH,CAAC,CAAC,CAAC,CAAC;IACJ,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3E,OAAO,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,aAAa,CAAC,SAAmB,EAAE,KAAe,EAAE,KAAa,EAAE,MAAc;IACxF,OAAO,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE;QAChE,GAAG,QAAQ,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE;QAChE,EAAE;QACF,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;QACpD,EAAE;QACF,GAAG,KAAK,iBAAiB,IAAI,CAAC,KAAK,EAAE;KACtC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,SAAmB,EAAE,KAAe,EAAE,KAAa,EAAE,MAAc;IAC1F,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,IAAI,CAAC;IACpD,MAAM,IAAI,GAAG;QACX,GAAG,QAAQ,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE;QACxC,EAAE;QACF,OAAO,UAAU,EAAE;QACnB,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,UAAU;QAC5E,KAAK,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE;QACvD,EAAE;KACH,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;QAC1E,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO;QAAE,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACnH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,KAAK,4BAA4B,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAChE,OAAO,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAmB,EAAE,KAAe,EAAE,KAAa,EAAE,MAAc;IAC9F,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;IAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IACD,MAAM,IAAI,GAAG;QACX,GAAG,QAAQ,GAAG,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,KAAK,EAAE;QAC1C,EAAE;QACF,OAAO,IAAI,CAAC,IAAI,EAAE;QAClB,QAAQ,IAAI,CAAC,MAAM,EAAE;QACrB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS;QAC5C,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS;QAClE,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,SAAS,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;QAC9F,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE;QACzC,EAAE;QACF,GAAG,KAAK,2BAA2B,IAAI,CAAC,KAAK,EAAE;KAChD,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;IAChE,IAAI,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,QAAQ,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,OAAO,CAAC,SAAmB,EAAE,KAAa,EAAE,MAAc,EAAE,UAAkB,EAAE,OAAiB;IACxG,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;IAE9B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,QAAQ,GAAG,KAAK,CAAC;QAC7B,IAAI,GAAG,IAAI,MAAM,CAAC,MAAM;YAAE,MAAM;QAChC,MAAM,GAAG,GAAG,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACrF,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACvD,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,KAAa,EAAE,KAAa,EAAE,WAAmB;IACpF,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;IACzC,OAAO,GAAG,MAAM,GAAG,WAAW,GAAG,KAAK,EAAE,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/tui/renderer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/tui/state/store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,wBAAgB,kBAAkB,IAAI,QAAQ,CA6B7C;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAWjD"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/tui/state/store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,wBAAgB,kBAAkB,IAAI,QAAQ,CA8B7C;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAWjD"}