claude-code-plus-plus 0.2.1 → 0.2.2

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 (365) hide show
  1. package/package.json +1 -1
  2. package/dist/app.d.ts +0 -52
  3. package/dist/app.d.ts.map +0 -1
  4. package/dist/app.js +0 -318
  5. package/dist/app.js.map +0 -1
  6. package/dist/core/index.d.ts +0 -14
  7. package/dist/core/index.d.ts.map +0 -1
  8. package/dist/core/index.js +0 -14
  9. package/dist/core/index.js.map +0 -1
  10. package/dist/core/session/index.d.ts +0 -7
  11. package/dist/core/session/index.d.ts.map +0 -1
  12. package/dist/core/session/index.js +0 -6
  13. package/dist/core/session/index.js.map +0 -1
  14. package/dist/core/session/session-manager.d.ts +0 -46
  15. package/dist/core/session/session-manager.d.ts.map +0 -1
  16. package/dist/core/session/session-manager.js +0 -245
  17. package/dist/core/session/session-manager.js.map +0 -1
  18. package/dist/core/session/session.d.ts +0 -44
  19. package/dist/core/session/session.d.ts.map +0 -1
  20. package/dist/core/session/session.js +0 -78
  21. package/dist/core/session/session.js.map +0 -1
  22. package/dist/core/terminal/index.d.ts +0 -7
  23. package/dist/core/terminal/index.d.ts.map +0 -1
  24. package/dist/core/terminal/index.js +0 -6
  25. package/dist/core/terminal/index.js.map +0 -1
  26. package/dist/core/terminal/terminal-manager.d.ts +0 -36
  27. package/dist/core/terminal/terminal-manager.d.ts.map +0 -1
  28. package/dist/core/terminal/terminal-manager.js +0 -182
  29. package/dist/core/terminal/terminal-manager.js.map +0 -1
  30. package/dist/core/terminal/terminal.d.ts +0 -27
  31. package/dist/core/terminal/terminal.d.ts.map +0 -1
  32. package/dist/core/terminal/terminal.js +0 -38
  33. package/dist/core/terminal/terminal.js.map +0 -1
  34. package/dist/core/workspace/index.d.ts +0 -7
  35. package/dist/core/workspace/index.d.ts.map +0 -1
  36. package/dist/core/workspace/index.js +0 -6
  37. package/dist/core/workspace/index.js.map +0 -1
  38. package/dist/core/workspace/workspace-manager.d.ts +0 -59
  39. package/dist/core/workspace/workspace-manager.d.ts.map +0 -1
  40. package/dist/core/workspace/workspace-manager.js +0 -224
  41. package/dist/core/workspace/workspace-manager.js.map +0 -1
  42. package/dist/core/workspace/workspace.d.ts +0 -56
  43. package/dist/core/workspace/workspace.d.ts.map +0 -1
  44. package/dist/core/workspace/workspace.js +0 -96
  45. package/dist/core/workspace/workspace.js.map +0 -1
  46. package/dist/core/worktree/index.d.ts +0 -7
  47. package/dist/core/worktree/index.d.ts.map +0 -1
  48. package/dist/core/worktree/index.js +0 -6
  49. package/dist/core/worktree/index.js.map +0 -1
  50. package/dist/core/worktree/worktree-manager.d.ts +0 -47
  51. package/dist/core/worktree/worktree-manager.d.ts.map +0 -1
  52. package/dist/core/worktree/worktree-manager.js +0 -170
  53. package/dist/core/worktree/worktree-manager.js.map +0 -1
  54. package/dist/core/worktree/worktree.d.ts +0 -35
  55. package/dist/core/worktree/worktree.d.ts.map +0 -1
  56. package/dist/core/worktree/worktree.js +0 -50
  57. package/dist/core/worktree/worktree.js.map +0 -1
  58. package/dist/core/worktree-manager.d.ts +0 -26
  59. package/dist/core/worktree-manager.d.ts.map +0 -1
  60. package/dist/core/worktree-manager.js +0 -177
  61. package/dist/core/worktree-manager.js.map +0 -1
  62. package/dist/events/bus.d.ts +0 -76
  63. package/dist/events/bus.d.ts.map +0 -1
  64. package/dist/events/bus.js +0 -223
  65. package/dist/events/bus.js.map +0 -1
  66. package/dist/events/handlers/index.d.ts +0 -28
  67. package/dist/events/handlers/index.d.ts.map +0 -1
  68. package/dist/events/handlers/index.js +0 -44
  69. package/dist/events/handlers/index.js.map +0 -1
  70. package/dist/events/handlers/session-events.d.ts +0 -12
  71. package/dist/events/handlers/session-events.d.ts.map +0 -1
  72. package/dist/events/handlers/session-events.js +0 -38
  73. package/dist/events/handlers/session-events.js.map +0 -1
  74. package/dist/events/handlers/terminal-events.d.ts +0 -12
  75. package/dist/events/handlers/terminal-events.d.ts.map +0 -1
  76. package/dist/events/handlers/terminal-events.js +0 -37
  77. package/dist/events/handlers/terminal-events.js.map +0 -1
  78. package/dist/events/handlers/ui-events.d.ts +0 -11
  79. package/dist/events/handlers/ui-events.d.ts.map +0 -1
  80. package/dist/events/handlers/ui-events.js +0 -202
  81. package/dist/events/handlers/ui-events.js.map +0 -1
  82. package/dist/events/index.d.ts +0 -9
  83. package/dist/events/index.d.ts.map +0 -1
  84. package/dist/events/index.js +0 -10
  85. package/dist/events/index.js.map +0 -1
  86. package/dist/multiplexer/base.d.ts +0 -73
  87. package/dist/multiplexer/base.d.ts.map +0 -1
  88. package/dist/multiplexer/base.js +0 -68
  89. package/dist/multiplexer/base.js.map +0 -1
  90. package/dist/multiplexer/factory.d.ts +0 -28
  91. package/dist/multiplexer/factory.d.ts.map +0 -1
  92. package/dist/multiplexer/factory.js +0 -72
  93. package/dist/multiplexer/factory.js.map +0 -1
  94. package/dist/multiplexer/index.d.ts +0 -14
  95. package/dist/multiplexer/index.d.ts.map +0 -1
  96. package/dist/multiplexer/index.js +0 -15
  97. package/dist/multiplexer/index.js.map +0 -1
  98. package/dist/multiplexer/tmux/index.d.ts +0 -9
  99. package/dist/multiplexer/tmux/index.d.ts.map +0 -1
  100. package/dist/multiplexer/tmux/index.js +0 -7
  101. package/dist/multiplexer/tmux/index.js.map +0 -1
  102. package/dist/multiplexer/tmux/tmux-commands.d.ts +0 -96
  103. package/dist/multiplexer/tmux/tmux-commands.d.ts.map +0 -1
  104. package/dist/multiplexer/tmux/tmux-commands.js +0 -282
  105. package/dist/multiplexer/tmux/tmux-commands.js.map +0 -1
  106. package/dist/multiplexer/tmux/tmux-config.d.ts +0 -57
  107. package/dist/multiplexer/tmux/tmux-config.d.ts.map +0 -1
  108. package/dist/multiplexer/tmux/tmux-config.js +0 -103
  109. package/dist/multiplexer/tmux/tmux-config.js.map +0 -1
  110. package/dist/multiplexer/tmux/tmux-multiplexer.d.ts +0 -94
  111. package/dist/multiplexer/tmux/tmux-multiplexer.d.ts.map +0 -1
  112. package/dist/multiplexer/tmux/tmux-multiplexer.js +0 -302
  113. package/dist/multiplexer/tmux/tmux-multiplexer.js.map +0 -1
  114. package/dist/multiplexer/windows/index.d.ts +0 -5
  115. package/dist/multiplexer/windows/index.d.ts.map +0 -1
  116. package/dist/multiplexer/windows/index.js +0 -5
  117. package/dist/multiplexer/windows/index.js.map +0 -1
  118. package/dist/multiplexer/windows/windows-multiplexer.d.ts +0 -61
  119. package/dist/multiplexer/windows/windows-multiplexer.d.ts.map +0 -1
  120. package/dist/multiplexer/windows/windows-multiplexer.js +0 -151
  121. package/dist/multiplexer/windows/windows-multiplexer.js.map +0 -1
  122. package/dist/services/claude/claude-detector.d.ts +0 -37
  123. package/dist/services/claude/claude-detector.d.ts.map +0 -1
  124. package/dist/services/claude/claude-detector.js +0 -83
  125. package/dist/services/claude/claude-detector.js.map +0 -1
  126. package/dist/services/claude/claude-service.d.ts +0 -57
  127. package/dist/services/claude/claude-service.d.ts.map +0 -1
  128. package/dist/services/claude/claude-service.js +0 -108
  129. package/dist/services/claude/claude-service.js.map +0 -1
  130. package/dist/services/claude/index.d.ts +0 -7
  131. package/dist/services/claude/index.d.ts.map +0 -1
  132. package/dist/services/claude/index.js +0 -6
  133. package/dist/services/claude/index.js.map +0 -1
  134. package/dist/services/git/branch-service.d.ts +0 -64
  135. package/dist/services/git/branch-service.d.ts.map +0 -1
  136. package/dist/services/git/branch-service.js +0 -217
  137. package/dist/services/git/branch-service.js.map +0 -1
  138. package/dist/services/git/git-service.d.ts +0 -44
  139. package/dist/services/git/git-service.d.ts.map +0 -1
  140. package/dist/services/git/git-service.js +0 -145
  141. package/dist/services/git/git-service.js.map +0 -1
  142. package/dist/services/git/index.d.ts +0 -8
  143. package/dist/services/git/index.d.ts.map +0 -1
  144. package/dist/services/git/index.js +0 -7
  145. package/dist/services/git/index.js.map +0 -1
  146. package/dist/services/git/worktree-service.d.ts +0 -61
  147. package/dist/services/git/worktree-service.d.ts.map +0 -1
  148. package/dist/services/git/worktree-service.js +0 -243
  149. package/dist/services/git/worktree-service.js.map +0 -1
  150. package/dist/services/index.d.ts +0 -12
  151. package/dist/services/index.d.ts.map +0 -1
  152. package/dist/services/index.js +0 -12
  153. package/dist/services/index.js.map +0 -1
  154. package/dist/services/process/index.d.ts +0 -8
  155. package/dist/services/process/index.d.ts.map +0 -1
  156. package/dist/services/process/index.js +0 -6
  157. package/dist/services/process/index.js.map +0 -1
  158. package/dist/services/process/process-monitor.d.ts +0 -98
  159. package/dist/services/process/process-monitor.d.ts.map +0 -1
  160. package/dist/services/process/process-monitor.js +0 -173
  161. package/dist/services/process/process-monitor.js.map +0 -1
  162. package/dist/services/process/process-spawner.d.ts +0 -55
  163. package/dist/services/process/process-spawner.d.ts.map +0 -1
  164. package/dist/services/process/process-spawner.js +0 -93
  165. package/dist/services/process/process-spawner.js.map +0 -1
  166. package/dist/sidebar.d.ts +0 -13
  167. package/dist/sidebar.d.ts.map +0 -1
  168. package/dist/sidebar.js +0 -1535
  169. package/dist/sidebar.js.map +0 -1
  170. package/dist/state/actions.d.ts +0 -49
  171. package/dist/state/actions.d.ts.map +0 -1
  172. package/dist/state/actions.js +0 -512
  173. package/dist/state/actions.js.map +0 -1
  174. package/dist/state/index.d.ts +0 -16
  175. package/dist/state/index.d.ts.map +0 -1
  176. package/dist/state/index.js +0 -28
  177. package/dist/state/index.js.map +0 -1
  178. package/dist/state/middleware/index.d.ts +0 -7
  179. package/dist/state/middleware/index.d.ts.map +0 -1
  180. package/dist/state/middleware/index.js +0 -6
  181. package/dist/state/middleware/index.js.map +0 -1
  182. package/dist/state/middleware/logger.d.ts +0 -22
  183. package/dist/state/middleware/logger.d.ts.map +0 -1
  184. package/dist/state/middleware/logger.js +0 -45
  185. package/dist/state/middleware/logger.js.map +0 -1
  186. package/dist/state/middleware/persistence.d.ts +0 -29
  187. package/dist/state/middleware/persistence.d.ts.map +0 -1
  188. package/dist/state/middleware/persistence.js +0 -71
  189. package/dist/state/middleware/persistence.js.map +0 -1
  190. package/dist/state/persistence/file-adapter.d.ts +0 -48
  191. package/dist/state/persistence/file-adapter.d.ts.map +0 -1
  192. package/dist/state/persistence/file-adapter.js +0 -96
  193. package/dist/state/persistence/file-adapter.js.map +0 -1
  194. package/dist/state/persistence/index.d.ts +0 -8
  195. package/dist/state/persistence/index.d.ts.map +0 -1
  196. package/dist/state/persistence/index.js +0 -6
  197. package/dist/state/persistence/index.js.map +0 -1
  198. package/dist/state/persistence/serializer.d.ts +0 -41
  199. package/dist/state/persistence/serializer.d.ts.map +0 -1
  200. package/dist/state/persistence/serializer.js +0 -114
  201. package/dist/state/persistence/serializer.js.map +0 -1
  202. package/dist/state/selectors.d.ts +0 -67
  203. package/dist/state/selectors.d.ts.map +0 -1
  204. package/dist/state/selectors.js +0 -177
  205. package/dist/state/selectors.js.map +0 -1
  206. package/dist/state/store.d.ts +0 -86
  207. package/dist/state/store.d.ts.map +0 -1
  208. package/dist/state/store.js +0 -161
  209. package/dist/state/store.js.map +0 -1
  210. package/dist/state/types.d.ts +0 -269
  211. package/dist/state/types.d.ts.map +0 -1
  212. package/dist/state/types.js +0 -7
  213. package/dist/state/types.js.map +0 -1
  214. package/dist/state.d.ts +0 -53
  215. package/dist/state.d.ts.map +0 -1
  216. package/dist/state.js +0 -101
  217. package/dist/state.js.map +0 -1
  218. package/dist/terminal-manager.d.ts +0 -16
  219. package/dist/terminal-manager.d.ts.map +0 -1
  220. package/dist/terminal-manager.js +0 -364
  221. package/dist/terminal-manager.js.map +0 -1
  222. package/dist/tmux.d.ts +0 -163
  223. package/dist/tmux.d.ts.map +0 -1
  224. package/dist/tmux.js +0 -360
  225. package/dist/tmux.js.map +0 -1
  226. package/dist/types/config.d.ts +0 -103
  227. package/dist/types/config.d.ts.map +0 -1
  228. package/dist/types/config.js +0 -7
  229. package/dist/types/config.js.map +0 -1
  230. package/dist/types/entities.d.ts +0 -88
  231. package/dist/types/entities.d.ts.map +0 -1
  232. package/dist/types/entities.js +0 -8
  233. package/dist/types/entities.js.map +0 -1
  234. package/dist/types/events.d.ts +0 -156
  235. package/dist/types/events.d.ts.map +0 -1
  236. package/dist/types/events.js +0 -8
  237. package/dist/types/events.js.map +0 -1
  238. package/dist/types/index.d.ts +0 -11
  239. package/dist/types/index.d.ts.map +0 -1
  240. package/dist/types/index.js +0 -8
  241. package/dist/types/index.js.map +0 -1
  242. package/dist/types/multiplexer.d.ts +0 -238
  243. package/dist/types/multiplexer.d.ts.map +0 -1
  244. package/dist/types/multiplexer.js +0 -8
  245. package/dist/types/multiplexer.js.map +0 -1
  246. package/dist/ui/components/base.d.ts +0 -155
  247. package/dist/ui/components/base.d.ts.map +0 -1
  248. package/dist/ui/components/base.js +0 -269
  249. package/dist/ui/components/base.js.map +0 -1
  250. package/dist/ui/components/index.d.ts +0 -10
  251. package/dist/ui/components/index.d.ts.map +0 -1
  252. package/dist/ui/components/index.js +0 -10
  253. package/dist/ui/components/index.js.map +0 -1
  254. package/dist/ui/components/input-field.d.ts +0 -98
  255. package/dist/ui/components/input-field.d.ts.map +0 -1
  256. package/dist/ui/components/input-field.js +0 -274
  257. package/dist/ui/components/input-field.js.map +0 -1
  258. package/dist/ui/components/list.d.ts +0 -94
  259. package/dist/ui/components/list.d.ts.map +0 -1
  260. package/dist/ui/components/list.js +0 -294
  261. package/dist/ui/components/list.js.map +0 -1
  262. package/dist/ui/components/modal.d.ts +0 -83
  263. package/dist/ui/components/modal.d.ts.map +0 -1
  264. package/dist/ui/components/modal.js +0 -249
  265. package/dist/ui/components/modal.js.map +0 -1
  266. package/dist/ui/components/tabs.d.ts +0 -97
  267. package/dist/ui/components/tabs.d.ts.map +0 -1
  268. package/dist/ui/components/tabs.js +0 -252
  269. package/dist/ui/components/tabs.js.map +0 -1
  270. package/dist/ui/components/text.d.ts +0 -60
  271. package/dist/ui/components/text.d.ts.map +0 -1
  272. package/dist/ui/components/text.js +0 -224
  273. package/dist/ui/components/text.js.map +0 -1
  274. package/dist/ui/index.d.ts +0 -12
  275. package/dist/ui/index.d.ts.map +0 -1
  276. package/dist/ui/index.js +0 -18
  277. package/dist/ui/index.js.map +0 -1
  278. package/dist/ui/input/index.d.ts +0 -8
  279. package/dist/ui/input/index.d.ts.map +0 -1
  280. package/dist/ui/input/index.js +0 -8
  281. package/dist/ui/input/index.js.map +0 -1
  282. package/dist/ui/input/input-manager.d.ts +0 -83
  283. package/dist/ui/input/input-manager.d.ts.map +0 -1
  284. package/dist/ui/input/input-manager.js +0 -200
  285. package/dist/ui/input/input-manager.js.map +0 -1
  286. package/dist/ui/input/keybindings.d.ts +0 -47
  287. package/dist/ui/input/keybindings.d.ts.map +0 -1
  288. package/dist/ui/input/keybindings.js +0 -168
  289. package/dist/ui/input/keybindings.js.map +0 -1
  290. package/dist/ui/input/keyboard.d.ts +0 -24
  291. package/dist/ui/input/keyboard.d.ts.map +0 -1
  292. package/dist/ui/input/keyboard.js +0 -230
  293. package/dist/ui/input/keyboard.js.map +0 -1
  294. package/dist/ui/input/mouse.d.ts +0 -44
  295. package/dist/ui/input/mouse.d.ts.map +0 -1
  296. package/dist/ui/input/mouse.js +0 -161
  297. package/dist/ui/input/mouse.js.map +0 -1
  298. package/dist/ui/layout/box.d.ts +0 -63
  299. package/dist/ui/layout/box.d.ts.map +0 -1
  300. package/dist/ui/layout/box.js +0 -160
  301. package/dist/ui/layout/box.js.map +0 -1
  302. package/dist/ui/layout/constraints.d.ts +0 -77
  303. package/dist/ui/layout/constraints.d.ts.map +0 -1
  304. package/dist/ui/layout/constraints.js +0 -154
  305. package/dist/ui/layout/constraints.js.map +0 -1
  306. package/dist/ui/layout/flex.d.ts +0 -59
  307. package/dist/ui/layout/flex.d.ts.map +0 -1
  308. package/dist/ui/layout/flex.js +0 -163
  309. package/dist/ui/layout/flex.js.map +0 -1
  310. package/dist/ui/layout/index.d.ts +0 -7
  311. package/dist/ui/layout/index.d.ts.map +0 -1
  312. package/dist/ui/layout/index.js +0 -7
  313. package/dist/ui/layout/index.js.map +0 -1
  314. package/dist/ui/modals/delete-modal.d.ts +0 -27
  315. package/dist/ui/modals/delete-modal.d.ts.map +0 -1
  316. package/dist/ui/modals/delete-modal.js +0 -59
  317. package/dist/ui/modals/delete-modal.js.map +0 -1
  318. package/dist/ui/modals/index.d.ts +0 -7
  319. package/dist/ui/modals/index.d.ts.map +0 -1
  320. package/dist/ui/modals/index.js +0 -7
  321. package/dist/ui/modals/index.js.map +0 -1
  322. package/dist/ui/modals/input-modal.d.ts +0 -66
  323. package/dist/ui/modals/input-modal.d.ts.map +0 -1
  324. package/dist/ui/modals/input-modal.js +0 -185
  325. package/dist/ui/modals/input-modal.js.map +0 -1
  326. package/dist/ui/modals/quit-modal.d.ts +0 -30
  327. package/dist/ui/modals/quit-modal.d.ts.map +0 -1
  328. package/dist/ui/modals/quit-modal.js +0 -65
  329. package/dist/ui/modals/quit-modal.js.map +0 -1
  330. package/dist/ui/renderer/ansi.d.ts +0 -206
  331. package/dist/ui/renderer/ansi.d.ts.map +0 -1
  332. package/dist/ui/renderer/ansi.js +0 -318
  333. package/dist/ui/renderer/ansi.js.map +0 -1
  334. package/dist/ui/renderer/canvas.d.ts +0 -126
  335. package/dist/ui/renderer/canvas.d.ts.map +0 -1
  336. package/dist/ui/renderer/canvas.js +0 -346
  337. package/dist/ui/renderer/canvas.js.map +0 -1
  338. package/dist/ui/renderer/colors.d.ts +0 -65
  339. package/dist/ui/renderer/colors.d.ts.map +0 -1
  340. package/dist/ui/renderer/colors.js +0 -260
  341. package/dist/ui/renderer/colors.js.map +0 -1
  342. package/dist/ui/renderer/index.d.ts +0 -8
  343. package/dist/ui/renderer/index.d.ts.map +0 -1
  344. package/dist/ui/renderer/index.js +0 -8
  345. package/dist/ui/renderer/index.js.map +0 -1
  346. package/dist/ui/renderer/symbols.d.ts +0 -176
  347. package/dist/ui/renderer/symbols.d.ts.map +0 -1
  348. package/dist/ui/renderer/symbols.js +0 -246
  349. package/dist/ui/renderer/symbols.js.map +0 -1
  350. package/dist/ui/views/index.d.ts +0 -7
  351. package/dist/ui/views/index.d.ts.map +0 -1
  352. package/dist/ui/views/index.js +0 -7
  353. package/dist/ui/views/index.js.map +0 -1
  354. package/dist/ui/views/sidebar-view.d.ts +0 -89
  355. package/dist/ui/views/sidebar-view.d.ts.map +0 -1
  356. package/dist/ui/views/sidebar-view.js +0 -259
  357. package/dist/ui/views/sidebar-view.js.map +0 -1
  358. package/dist/ui/views/terminal-bar-view.d.ts +0 -67
  359. package/dist/ui/views/terminal-bar-view.d.ts.map +0 -1
  360. package/dist/ui/views/terminal-bar-view.js +0 -172
  361. package/dist/ui/views/terminal-bar-view.js.map +0 -1
  362. package/dist/ui/views/welcome-view.d.ts +0 -34
  363. package/dist/ui/views/welcome-view.d.ts.map +0 -1
  364. package/dist/ui/views/welcome-view.js +0 -116
  365. package/dist/ui/views/welcome-view.js.map +0 -1
@@ -1,60 +0,0 @@
1
- /**
2
- * Text Component
3
- *
4
- * Renders styled text with optional truncation and alignment.
5
- */
6
- import type { Canvas } from '../renderer';
7
- import type { Bounds, Size } from '../layout';
8
- import { Component, type ComponentProps } from './base';
9
- export type TextAlign = 'left' | 'center' | 'right';
10
- export interface TextProps extends ComponentProps {
11
- text?: string;
12
- align?: TextAlign;
13
- wrap?: boolean;
14
- ellipsis?: boolean;
15
- }
16
- export declare class Text extends Component {
17
- private text;
18
- private align;
19
- private wrap;
20
- private ellipsis;
21
- constructor(props?: TextProps);
22
- /**
23
- * Set the text content
24
- */
25
- setText(text: string): void;
26
- /**
27
- * Get the text content
28
- */
29
- getText(): string;
30
- /**
31
- * Set text alignment
32
- */
33
- setAlign(align: TextAlign): void;
34
- getPreferredSize(): Size;
35
- getMinSize(): Size;
36
- render(canvas: Canvas, bounds: Bounds): void;
37
- private renderSingleLine;
38
- private renderWrapped;
39
- }
40
- /**
41
- * Truncate text to fit within width
42
- */
43
- export declare function truncate(text: string, maxWidth: number): string;
44
- /**
45
- * Truncate text with ellipsis
46
- */
47
- export declare function truncateWithEllipsis(text: string, maxWidth: number): string;
48
- /**
49
- * Wrap text to fit within width
50
- */
51
- export declare function wrapText(text: string, maxWidth: number): string[];
52
- /**
53
- * Pad text to width
54
- */
55
- export declare function padText(text: string, width: number, align?: TextAlign): string;
56
- /**
57
- * Create a Text component
58
- */
59
- export declare function createText(props?: TextProps): Text;
60
- //# sourceMappingURL=text.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/ui/components/text.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAS,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AAMxD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEpD,MAAM,WAAW,SAAU,SAAQ,cAAc;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAMD,qBAAa,IAAK,SAAQ,SAAS;IACjC,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,QAAQ,CAAiB;gBAErB,KAAK,GAAE,SAAc;IAQjC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3B;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAIhC,gBAAgB,IAAI,IAAI;IAWxB,UAAU,IAAI,IAAI;IAIlB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAY5C,OAAO,CAAC,gBAAgB;IA4BxB,OAAO,CAAC,aAAa;CA6BtB;AAMD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM/D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAS3E;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAiDjE;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,SAAkB,GAAG,MAAM,CAmBtF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,GAAE,SAAc,GAAG,IAAI,CAEtD"}
@@ -1,224 +0,0 @@
1
- /**
2
- * Text Component
3
- *
4
- * Renders styled text with optional truncation and alignment.
5
- */
6
- import { visibleLength, stripAnsi } from '../renderer/ansi';
7
- import { Component } from './base';
8
- // ============================================================================
9
- // Text Component
10
- // ============================================================================
11
- export class Text extends Component {
12
- text = '';
13
- align = 'left';
14
- wrap = false;
15
- ellipsis = true;
16
- constructor(props = {}) {
17
- super(props);
18
- this.text = props.text ?? '';
19
- this.align = props.align ?? 'left';
20
- this.wrap = props.wrap ?? false;
21
- this.ellipsis = props.ellipsis ?? true;
22
- }
23
- /**
24
- * Set the text content
25
- */
26
- setText(text) {
27
- this.text = text;
28
- }
29
- /**
30
- * Get the text content
31
- */
32
- getText() {
33
- return this.text;
34
- }
35
- /**
36
- * Set text alignment
37
- */
38
- setAlign(align) {
39
- this.align = align;
40
- }
41
- getPreferredSize() {
42
- if (this.wrap) {
43
- // When wrapping, width is flexible but we need at least 1 character
44
- return { width: 1, height: 1 };
45
- }
46
- return {
47
- width: visibleLength(this.text),
48
- height: 1,
49
- };
50
- }
51
- getMinSize() {
52
- return { width: 1, height: 1 };
53
- }
54
- render(canvas, bounds) {
55
- if (!this.visible || bounds.width < 1 || bounds.height < 1) {
56
- return;
57
- }
58
- if (this.wrap) {
59
- this.renderWrapped(canvas, bounds);
60
- }
61
- else {
62
- this.renderSingleLine(canvas, bounds);
63
- }
64
- }
65
- renderSingleLine(canvas, bounds) {
66
- let displayText = this.text;
67
- const textWidth = visibleLength(displayText);
68
- // Truncate if necessary
69
- if (textWidth > bounds.width) {
70
- if (this.ellipsis && bounds.width > 3) {
71
- displayText = truncateWithEllipsis(displayText, bounds.width);
72
- }
73
- else {
74
- displayText = truncate(displayText, bounds.width);
75
- }
76
- }
77
- // Calculate x position based on alignment
78
- const displayWidth = visibleLength(displayText);
79
- let x = bounds.x;
80
- switch (this.align) {
81
- case 'center':
82
- x = bounds.x + Math.floor((bounds.width - displayWidth) / 2);
83
- break;
84
- case 'right':
85
- x = bounds.x + bounds.width - displayWidth;
86
- break;
87
- }
88
- canvas.drawText(x, bounds.y, stripAnsi(displayText), this.style);
89
- }
90
- renderWrapped(canvas, bounds) {
91
- const lines = wrapText(this.text, bounds.width);
92
- const maxLines = bounds.height;
93
- for (let i = 0; i < Math.min(lines.length, maxLines); i++) {
94
- let line = lines[i];
95
- // If this is the last visible line and there's more, add ellipsis
96
- if (i === maxLines - 1 && lines.length > maxLines) {
97
- if (this.ellipsis && bounds.width > 3) {
98
- line = truncateWithEllipsis(line, bounds.width);
99
- }
100
- }
101
- // Calculate x position based on alignment
102
- const lineWidth = visibleLength(line);
103
- let x = bounds.x;
104
- switch (this.align) {
105
- case 'center':
106
- x = bounds.x + Math.floor((bounds.width - lineWidth) / 2);
107
- break;
108
- case 'right':
109
- x = bounds.x + bounds.width - lineWidth;
110
- break;
111
- }
112
- canvas.drawText(x, bounds.y + i, stripAnsi(line), this.style);
113
- }
114
- }
115
- }
116
- // ============================================================================
117
- // Helper Functions
118
- // ============================================================================
119
- /**
120
- * Truncate text to fit within width
121
- */
122
- export function truncate(text, maxWidth) {
123
- const stripped = stripAnsi(text);
124
- if (stripped.length <= maxWidth) {
125
- return stripped;
126
- }
127
- return stripped.substring(0, maxWidth);
128
- }
129
- /**
130
- * Truncate text with ellipsis
131
- */
132
- export function truncateWithEllipsis(text, maxWidth) {
133
- const stripped = stripAnsi(text);
134
- if (stripped.length <= maxWidth) {
135
- return stripped;
136
- }
137
- if (maxWidth <= 3) {
138
- return stripped.substring(0, maxWidth);
139
- }
140
- return stripped.substring(0, maxWidth - 1) + '…';
141
- }
142
- /**
143
- * Wrap text to fit within width
144
- */
145
- export function wrapText(text, maxWidth) {
146
- if (maxWidth < 1)
147
- return [];
148
- const stripped = stripAnsi(text);
149
- const words = stripped.split(/\s+/);
150
- const lines = [];
151
- let currentLine = '';
152
- for (const word of words) {
153
- if (word.length === 0)
154
- continue;
155
- if (currentLine.length === 0) {
156
- // Start of new line
157
- if (word.length > maxWidth) {
158
- // Word is too long, need to break it
159
- let remaining = word;
160
- while (remaining.length > maxWidth) {
161
- lines.push(remaining.substring(0, maxWidth));
162
- remaining = remaining.substring(maxWidth);
163
- }
164
- currentLine = remaining;
165
- }
166
- else {
167
- currentLine = word;
168
- }
169
- }
170
- else if (currentLine.length + 1 + word.length <= maxWidth) {
171
- // Word fits on current line
172
- currentLine += ' ' + word;
173
- }
174
- else {
175
- // Word doesn't fit, start new line
176
- lines.push(currentLine);
177
- if (word.length > maxWidth) {
178
- // Word is too long, need to break it
179
- let remaining = word;
180
- while (remaining.length > maxWidth) {
181
- lines.push(remaining.substring(0, maxWidth));
182
- remaining = remaining.substring(maxWidth);
183
- }
184
- currentLine = remaining;
185
- }
186
- else {
187
- currentLine = word;
188
- }
189
- }
190
- }
191
- if (currentLine.length > 0) {
192
- lines.push(currentLine);
193
- }
194
- return lines.length > 0 ? lines : [''];
195
- }
196
- /**
197
- * Pad text to width
198
- */
199
- export function padText(text, width, align = 'left') {
200
- const stripped = stripAnsi(text);
201
- const textWidth = stripped.length;
202
- if (textWidth >= width) {
203
- return stripped.substring(0, width);
204
- }
205
- const padding = width - textWidth;
206
- switch (align) {
207
- case 'left':
208
- return stripped + ' '.repeat(padding);
209
- case 'right':
210
- return ' '.repeat(padding) + stripped;
211
- case 'center': {
212
- const left = Math.floor(padding / 2);
213
- const right = padding - left;
214
- return ' '.repeat(left) + stripped + ' '.repeat(right);
215
- }
216
- }
217
- }
218
- /**
219
- * Create a Text component
220
- */
221
- export function createText(props = {}) {
222
- return new Text(props);
223
- }
224
- //# sourceMappingURL=text.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/ui/components/text.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- /**
2
- * UI Module
3
- *
4
- * User interface components and rendering.
5
- */
6
- export * from './renderer';
7
- export * from './input';
8
- export * from './layout';
9
- export { Component, ContainerComponent, resetComponentIdCounter, type HitResult, type ComponentProps, Text, createText, truncate, truncateWithEllipsis, wrapText, padText, type TextAlign, type TextProps, List, createList, type ListItem, type ListProps, type ListSelectHandler, Tabs, createTabs, type Tab, type TabsProps, type TabSelectHandler, type TabCloseHandler, InputField, createInputField, type InputFieldProps, type InputChangeHandler, type InputSubmitHandler as InputFieldSubmitHandler, Modal, createModal, ConfirmModal, createConfirmModal, type ModalProps, type ModalCloseHandler, type ConfirmModalProps, type ConfirmHandler, } from './components';
10
- export * from './views';
11
- export { QuitModal, createQuitModal, type QuitAction, type QuitHandler, type QuitModalProps, InputModal, createInputModal, createWorktreeModal, createSessionModal, createRenameModal, type InputModalProps, type InputSubmitHandler as ModalInputSubmitHandler, type InputCancelHandler, DeleteModal, createDeleteModal, createWorktreeDeleteModal, createSessionDeleteModal, type DeleteModalProps, } from './modals';
12
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC;AAGzB,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,uBAAuB,EACvB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,oBAAoB,EACpB,QAAQ,EACR,OAAO,EACP,KAAK,SAAS,EACd,KAAK,SAAS,EACd,IAAI,EACJ,UAAU,EACV,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,IAAI,EACJ,UAAU,EACV,KAAK,GAAG,EACR,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,UAAU,EACV,gBAAgB,EAChB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,IAAI,uBAAuB,EAClD,KAAK,EACL,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC;AAGtB,cAAc,SAAS,CAAC;AAGxB,OAAO,EACL,SAAS,EACT,eAAe,EACf,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,eAAe,EACpB,KAAK,kBAAkB,IAAI,uBAAuB,EAClD,KAAK,kBAAkB,EACvB,WAAW,EACX,iBAAiB,EACjB,yBAAyB,EACzB,wBAAwB,EACxB,KAAK,gBAAgB,GACtB,MAAM,UAAU,CAAC"}
package/dist/ui/index.js DELETED
@@ -1,18 +0,0 @@
1
- /**
2
- * UI Module
3
- *
4
- * User interface components and rendering.
5
- */
6
- // Renderer
7
- export * from './renderer';
8
- // Input
9
- export * from './input';
10
- // Layout
11
- export * from './layout';
12
- // Components
13
- export { Component, ContainerComponent, resetComponentIdCounter, Text, createText, truncate, truncateWithEllipsis, wrapText, padText, List, createList, Tabs, createTabs, InputField, createInputField, Modal, createModal, ConfirmModal, createConfirmModal, } from './components';
14
- // Views
15
- export * from './views';
16
- // Modals
17
- export { QuitModal, createQuitModal, InputModal, createInputModal, createWorktreeModal, createSessionModal, createRenameModal, DeleteModal, createDeleteModal, createWorktreeDeleteModal, createSessionDeleteModal, } from './modals';
18
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,WAAW;AACX,cAAc,YAAY,CAAC;AAE3B,QAAQ;AACR,cAAc,SAAS,CAAC;AAExB,SAAS;AACT,cAAc,UAAU,CAAC;AAEzB,aAAa;AACb,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,uBAAuB,EAGvB,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,oBAAoB,EACpB,QAAQ,EACR,OAAO,EAGP,IAAI,EACJ,UAAU,EAIV,IAAI,EACJ,UAAU,EAKV,UAAU,EACV,gBAAgB,EAIhB,KAAK,EACL,WAAW,EACX,YAAY,EACZ,kBAAkB,GAKnB,MAAM,cAAc,CAAC;AAEtB,QAAQ;AACR,cAAc,SAAS,CAAC;AAExB,SAAS;AACT,OAAO,EACL,SAAS,EACT,eAAe,EAIf,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EAIjB,WAAW,EACX,iBAAiB,EACjB,yBAAyB,EACzB,wBAAwB,GAEzB,MAAM,UAAU,CAAC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Input Module
3
- */
4
- export { parseKeyInput, matchesKey, formatKeyEvent, type KeyEvent, } from './keyboard';
5
- export { parseMouseInput, isMouseSequence, formatMouseEvent, isInRegion, getRelativePosition, type MouseEvent, } from './mouse';
6
- export { DEFAULT_KEYBINDINGS, getAction, getBindingsForContext, getBindingForAction, getAllBindingsForAction, addBinding, removeBinding, resetBindings, getHelpText, type ActionName, type Keybinding, } from './keybindings';
7
- export { InputManager, getInputManager, createInputManager, resetInputManager, type KeyHandler, type MouseHandler, } from './input-manager';
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/input/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,aAAa,EACb,UAAU,EACV,cAAc,EACd,KAAK,QAAQ,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,mBAAmB,EACnB,KAAK,UAAU,GAChB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,UAAU,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,KAAK,UAAU,EACf,KAAK,UAAU,GAChB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,YAAY,GAClB,MAAM,iBAAiB,CAAC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Input Module
3
- */
4
- export { parseKeyInput, matchesKey, formatKeyEvent, } from './keyboard';
5
- export { parseMouseInput, isMouseSequence, formatMouseEvent, isInRegion, getRelativePosition, } from './mouse';
6
- export { DEFAULT_KEYBINDINGS, getAction, getBindingsForContext, getBindingForAction, getAllBindingsForAction, addBinding, removeBinding, resetBindings, getHelpText, } from './keybindings';
7
- export { InputManager, getInputManager, createInputManager, resetInputManager, } from './input-manager';
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/input/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,aAAa,EACb,UAAU,EACV,cAAc,GAEf,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,mBAAmB,GAEpB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,UAAU,EACV,aAAa,EACb,aAAa,EACb,WAAW,GAGZ,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,iBAAiB,GAGlB,MAAM,iBAAiB,CAAC"}
@@ -1,83 +0,0 @@
1
- /**
2
- * Input Manager
3
- *
4
- * Unified input handling for keyboard and mouse events.
5
- */
6
- import type { ReadStream, WriteStream } from 'tty';
7
- import { type KeyEvent } from './keyboard';
8
- import { type MouseEvent } from './mouse';
9
- export type KeyHandler = (event: KeyEvent) => void;
10
- export type MouseHandler = (event: MouseEvent) => void;
11
- interface InputManagerOptions {
12
- enableMouse?: boolean;
13
- stdin?: ReadStream;
14
- stdout?: WriteStream;
15
- }
16
- export declare class InputManager {
17
- private stdin;
18
- private stdout;
19
- private keyHandlers;
20
- private mouseHandlers;
21
- private running;
22
- private mouseEnabled;
23
- private dataHandler;
24
- constructor(options?: InputManagerOptions);
25
- /**
26
- * Start listening for input
27
- */
28
- start(enableMouse?: boolean): void;
29
- /**
30
- * Stop listening for input
31
- */
32
- stop(): void;
33
- /**
34
- * Enable mouse tracking
35
- */
36
- enableMouse(): void;
37
- /**
38
- * Disable mouse tracking
39
- */
40
- disableMouse(): void;
41
- /**
42
- * Handle raw input data
43
- */
44
- private handleInput;
45
- /**
46
- * Emit a key event to all handlers
47
- */
48
- private emitKeyEvent;
49
- /**
50
- * Emit a mouse event to all handlers
51
- */
52
- private emitMouseEvent;
53
- /**
54
- * Register a key handler
55
- */
56
- onKey(handler: KeyHandler): () => void;
57
- /**
58
- * Register a mouse handler
59
- */
60
- onMouse(handler: MouseHandler): () => void;
61
- /**
62
- * Check if input manager is running
63
- */
64
- isRunning(): boolean;
65
- /**
66
- * Check if mouse is enabled
67
- */
68
- isMouseEnabled(): boolean;
69
- }
70
- /**
71
- * Get or create the global input manager
72
- */
73
- export declare function getInputManager(options?: InputManagerOptions): InputManager;
74
- /**
75
- * Create a new input manager (for testing or multiple instances)
76
- */
77
- export declare function createInputManager(options?: InputManagerOptions): InputManager;
78
- /**
79
- * Reset the global input manager
80
- */
81
- export declare function resetInputManager(): void;
82
- export {};
83
- //# sourceMappingURL=input-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-manager.d.ts","sourceRoot":"","sources":["../../../src/ui/input/input-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,KAAK,CAAC;AAGnD,OAAO,EAAiB,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAoC,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAO5E,MAAM,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;AACnD,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;AAEvD,UAAU,mBAAmB;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAMD,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,WAAW,CAAyC;gBAEhD,OAAO,GAAE,mBAAwB;IAK7C;;OAEG;IACH,KAAK,CAAC,WAAW,GAAE,OAAc,GAAG,IAAI;IAwBxC;;OAEG;IACH,IAAI,IAAI,IAAI;IAsBZ;;OAEG;IACH,WAAW,IAAI,IAAI;IAMnB;;OAEG;IACH,YAAY,IAAI,IAAI;IAMpB;;OAEG;IACH,OAAO,CAAC,WAAW;IAiBnB;;OAEG;IACH,OAAO,CAAC,YAAY;IAepB;;OAEG;IACH,OAAO,CAAC,cAAc;IAmBtB;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,IAAI;IAOtC;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,IAAI;IAO1C;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,cAAc,IAAI,OAAO;CAG1B;AAQD;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,YAAY,CAK3E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,YAAY,CAE9E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAKxC"}
@@ -1,200 +0,0 @@
1
- /**
2
- * Input Manager
3
- *
4
- * Unified input handling for keyboard and mouse events.
5
- */
6
- import { getEventBus } from '../../events';
7
- import { parseKeyInput } from './keyboard';
8
- import { parseMouseInput, isMouseSequence } from './mouse';
9
- import * as ansi from '../renderer/ansi';
10
- // ============================================================================
11
- // Input Manager Class
12
- // ============================================================================
13
- export class InputManager {
14
- stdin;
15
- stdout;
16
- keyHandlers = new Set();
17
- mouseHandlers = new Set();
18
- running = false;
19
- mouseEnabled = false;
20
- dataHandler = null;
21
- constructor(options = {}) {
22
- this.stdin = options.stdin ?? process.stdin;
23
- this.stdout = options.stdout ?? process.stdout;
24
- }
25
- /**
26
- * Start listening for input
27
- */
28
- start(enableMouse = true) {
29
- if (this.running)
30
- return;
31
- this.running = true;
32
- // Put stdin in raw mode
33
- if (this.stdin.isTTY) {
34
- this.stdin.setRawMode(true);
35
- }
36
- // Enable mouse if requested
37
- if (enableMouse) {
38
- this.enableMouse();
39
- }
40
- // Set up data handler
41
- this.dataHandler = (data) => {
42
- this.handleInput(data);
43
- };
44
- this.stdin.on('data', this.dataHandler);
45
- // Resume stdin
46
- this.stdin.resume();
47
- }
48
- /**
49
- * Stop listening for input
50
- */
51
- stop() {
52
- if (!this.running)
53
- return;
54
- this.running = false;
55
- // Disable mouse
56
- if (this.mouseEnabled) {
57
- this.disableMouse();
58
- }
59
- // Remove data handler
60
- if (this.dataHandler) {
61
- this.stdin.off('data', this.dataHandler);
62
- this.dataHandler = null;
63
- }
64
- // Restore stdin
65
- if (this.stdin.isTTY) {
66
- this.stdin.setRawMode(false);
67
- }
68
- this.stdin.pause();
69
- }
70
- /**
71
- * Enable mouse tracking
72
- */
73
- enableMouse() {
74
- if (this.mouseEnabled)
75
- return;
76
- this.mouseEnabled = true;
77
- this.stdout.write(ansi.enableMouse());
78
- }
79
- /**
80
- * Disable mouse tracking
81
- */
82
- disableMouse() {
83
- if (!this.mouseEnabled)
84
- return;
85
- this.mouseEnabled = false;
86
- this.stdout.write(ansi.disableMouse());
87
- }
88
- /**
89
- * Handle raw input data
90
- */
91
- handleInput(data) {
92
- const str = data.toString('utf8');
93
- // Check if it's a mouse event
94
- if (isMouseSequence(str)) {
95
- const mouseEvent = parseMouseInput(str);
96
- if (mouseEvent) {
97
- this.emitMouseEvent(mouseEvent);
98
- return;
99
- }
100
- }
101
- // Parse as keyboard input
102
- const keyEvent = parseKeyInput(data);
103
- this.emitKeyEvent(keyEvent);
104
- }
105
- /**
106
- * Emit a key event to all handlers
107
- */
108
- emitKeyEvent(event) {
109
- // Emit to local handlers
110
- for (const handler of this.keyHandlers) {
111
- handler(event);
112
- }
113
- // Emit to event bus
114
- const eventBus = getEventBus();
115
- eventBus.emit('ui:key', {
116
- key: event.key,
117
- raw: event.raw,
118
- modifiers: event.modifiers,
119
- });
120
- }
121
- /**
122
- * Emit a mouse event to all handlers
123
- */
124
- emitMouseEvent(event) {
125
- // Emit to local handlers
126
- for (const handler of this.mouseHandlers) {
127
- handler(event);
128
- }
129
- // Emit to event bus
130
- const eventBus = getEventBus();
131
- // Convert button type to match event type (exclude 'none')
132
- const button = event.button === 'none' ? 'left' : event.button;
133
- eventBus.emit('ui:mouse', {
134
- x: event.x,
135
- y: event.y,
136
- button,
137
- action: event.action,
138
- scrollDirection: event.scrollDirection,
139
- });
140
- }
141
- /**
142
- * Register a key handler
143
- */
144
- onKey(handler) {
145
- this.keyHandlers.add(handler);
146
- return () => {
147
- this.keyHandlers.delete(handler);
148
- };
149
- }
150
- /**
151
- * Register a mouse handler
152
- */
153
- onMouse(handler) {
154
- this.mouseHandlers.add(handler);
155
- return () => {
156
- this.mouseHandlers.delete(handler);
157
- };
158
- }
159
- /**
160
- * Check if input manager is running
161
- */
162
- isRunning() {
163
- return this.running;
164
- }
165
- /**
166
- * Check if mouse is enabled
167
- */
168
- isMouseEnabled() {
169
- return this.mouseEnabled;
170
- }
171
- }
172
- // ============================================================================
173
- // Factory Functions
174
- // ============================================================================
175
- let globalInputManager = null;
176
- /**
177
- * Get or create the global input manager
178
- */
179
- export function getInputManager(options) {
180
- if (!globalInputManager) {
181
- globalInputManager = new InputManager(options);
182
- }
183
- return globalInputManager;
184
- }
185
- /**
186
- * Create a new input manager (for testing or multiple instances)
187
- */
188
- export function createInputManager(options) {
189
- return new InputManager(options);
190
- }
191
- /**
192
- * Reset the global input manager
193
- */
194
- export function resetInputManager() {
195
- if (globalInputManager) {
196
- globalInputManager.stop();
197
- globalInputManager = null;
198
- }
199
- }
200
- //# sourceMappingURL=input-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-manager.js","sourceRoot":"","sources":["../../../src/ui/input/input-manager.ts"],"names":[],"mappings":"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"}