claude-code-plus-plus 0.2.1 → 0.2.3

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 (376) hide show
  1. package/dist/sidebar/app.d.ts +2 -0
  2. package/dist/sidebar/app.d.ts.map +1 -1
  3. package/dist/sidebar/app.js +30 -3
  4. package/dist/sidebar/app.js.map +1 -1
  5. package/dist/sidebar/render.d.ts +4 -0
  6. package/dist/sidebar/render.d.ts.map +1 -1
  7. package/dist/sidebar/render.js +65 -0
  8. package/dist/sidebar/render.js.map +1 -1
  9. package/dist/types.d.ts +2 -1
  10. package/dist/types.d.ts.map +1 -1
  11. package/dist/types.js.map +1 -1
  12. package/package.json +1 -1
  13. package/dist/app.d.ts +0 -52
  14. package/dist/app.d.ts.map +0 -1
  15. package/dist/app.js +0 -318
  16. package/dist/app.js.map +0 -1
  17. package/dist/core/index.d.ts +0 -14
  18. package/dist/core/index.d.ts.map +0 -1
  19. package/dist/core/index.js +0 -14
  20. package/dist/core/index.js.map +0 -1
  21. package/dist/core/session/index.d.ts +0 -7
  22. package/dist/core/session/index.d.ts.map +0 -1
  23. package/dist/core/session/index.js +0 -6
  24. package/dist/core/session/index.js.map +0 -1
  25. package/dist/core/session/session-manager.d.ts +0 -46
  26. package/dist/core/session/session-manager.d.ts.map +0 -1
  27. package/dist/core/session/session-manager.js +0 -245
  28. package/dist/core/session/session-manager.js.map +0 -1
  29. package/dist/core/session/session.d.ts +0 -44
  30. package/dist/core/session/session.d.ts.map +0 -1
  31. package/dist/core/session/session.js +0 -78
  32. package/dist/core/session/session.js.map +0 -1
  33. package/dist/core/terminal/index.d.ts +0 -7
  34. package/dist/core/terminal/index.d.ts.map +0 -1
  35. package/dist/core/terminal/index.js +0 -6
  36. package/dist/core/terminal/index.js.map +0 -1
  37. package/dist/core/terminal/terminal-manager.d.ts +0 -36
  38. package/dist/core/terminal/terminal-manager.d.ts.map +0 -1
  39. package/dist/core/terminal/terminal-manager.js +0 -182
  40. package/dist/core/terminal/terminal-manager.js.map +0 -1
  41. package/dist/core/terminal/terminal.d.ts +0 -27
  42. package/dist/core/terminal/terminal.d.ts.map +0 -1
  43. package/dist/core/terminal/terminal.js +0 -38
  44. package/dist/core/terminal/terminal.js.map +0 -1
  45. package/dist/core/workspace/index.d.ts +0 -7
  46. package/dist/core/workspace/index.d.ts.map +0 -1
  47. package/dist/core/workspace/index.js +0 -6
  48. package/dist/core/workspace/index.js.map +0 -1
  49. package/dist/core/workspace/workspace-manager.d.ts +0 -59
  50. package/dist/core/workspace/workspace-manager.d.ts.map +0 -1
  51. package/dist/core/workspace/workspace-manager.js +0 -224
  52. package/dist/core/workspace/workspace-manager.js.map +0 -1
  53. package/dist/core/workspace/workspace.d.ts +0 -56
  54. package/dist/core/workspace/workspace.d.ts.map +0 -1
  55. package/dist/core/workspace/workspace.js +0 -96
  56. package/dist/core/workspace/workspace.js.map +0 -1
  57. package/dist/core/worktree/index.d.ts +0 -7
  58. package/dist/core/worktree/index.d.ts.map +0 -1
  59. package/dist/core/worktree/index.js +0 -6
  60. package/dist/core/worktree/index.js.map +0 -1
  61. package/dist/core/worktree/worktree-manager.d.ts +0 -47
  62. package/dist/core/worktree/worktree-manager.d.ts.map +0 -1
  63. package/dist/core/worktree/worktree-manager.js +0 -170
  64. package/dist/core/worktree/worktree-manager.js.map +0 -1
  65. package/dist/core/worktree/worktree.d.ts +0 -35
  66. package/dist/core/worktree/worktree.d.ts.map +0 -1
  67. package/dist/core/worktree/worktree.js +0 -50
  68. package/dist/core/worktree/worktree.js.map +0 -1
  69. package/dist/core/worktree-manager.d.ts +0 -26
  70. package/dist/core/worktree-manager.d.ts.map +0 -1
  71. package/dist/core/worktree-manager.js +0 -177
  72. package/dist/core/worktree-manager.js.map +0 -1
  73. package/dist/events/bus.d.ts +0 -76
  74. package/dist/events/bus.d.ts.map +0 -1
  75. package/dist/events/bus.js +0 -223
  76. package/dist/events/bus.js.map +0 -1
  77. package/dist/events/handlers/index.d.ts +0 -28
  78. package/dist/events/handlers/index.d.ts.map +0 -1
  79. package/dist/events/handlers/index.js +0 -44
  80. package/dist/events/handlers/index.js.map +0 -1
  81. package/dist/events/handlers/session-events.d.ts +0 -12
  82. package/dist/events/handlers/session-events.d.ts.map +0 -1
  83. package/dist/events/handlers/session-events.js +0 -38
  84. package/dist/events/handlers/session-events.js.map +0 -1
  85. package/dist/events/handlers/terminal-events.d.ts +0 -12
  86. package/dist/events/handlers/terminal-events.d.ts.map +0 -1
  87. package/dist/events/handlers/terminal-events.js +0 -37
  88. package/dist/events/handlers/terminal-events.js.map +0 -1
  89. package/dist/events/handlers/ui-events.d.ts +0 -11
  90. package/dist/events/handlers/ui-events.d.ts.map +0 -1
  91. package/dist/events/handlers/ui-events.js +0 -202
  92. package/dist/events/handlers/ui-events.js.map +0 -1
  93. package/dist/events/index.d.ts +0 -9
  94. package/dist/events/index.d.ts.map +0 -1
  95. package/dist/events/index.js +0 -10
  96. package/dist/events/index.js.map +0 -1
  97. package/dist/multiplexer/base.d.ts +0 -73
  98. package/dist/multiplexer/base.d.ts.map +0 -1
  99. package/dist/multiplexer/base.js +0 -68
  100. package/dist/multiplexer/base.js.map +0 -1
  101. package/dist/multiplexer/factory.d.ts +0 -28
  102. package/dist/multiplexer/factory.d.ts.map +0 -1
  103. package/dist/multiplexer/factory.js +0 -72
  104. package/dist/multiplexer/factory.js.map +0 -1
  105. package/dist/multiplexer/index.d.ts +0 -14
  106. package/dist/multiplexer/index.d.ts.map +0 -1
  107. package/dist/multiplexer/index.js +0 -15
  108. package/dist/multiplexer/index.js.map +0 -1
  109. package/dist/multiplexer/tmux/index.d.ts +0 -9
  110. package/dist/multiplexer/tmux/index.d.ts.map +0 -1
  111. package/dist/multiplexer/tmux/index.js +0 -7
  112. package/dist/multiplexer/tmux/index.js.map +0 -1
  113. package/dist/multiplexer/tmux/tmux-commands.d.ts +0 -96
  114. package/dist/multiplexer/tmux/tmux-commands.d.ts.map +0 -1
  115. package/dist/multiplexer/tmux/tmux-commands.js +0 -282
  116. package/dist/multiplexer/tmux/tmux-commands.js.map +0 -1
  117. package/dist/multiplexer/tmux/tmux-config.d.ts +0 -57
  118. package/dist/multiplexer/tmux/tmux-config.d.ts.map +0 -1
  119. package/dist/multiplexer/tmux/tmux-config.js +0 -103
  120. package/dist/multiplexer/tmux/tmux-config.js.map +0 -1
  121. package/dist/multiplexer/tmux/tmux-multiplexer.d.ts +0 -94
  122. package/dist/multiplexer/tmux/tmux-multiplexer.d.ts.map +0 -1
  123. package/dist/multiplexer/tmux/tmux-multiplexer.js +0 -302
  124. package/dist/multiplexer/tmux/tmux-multiplexer.js.map +0 -1
  125. package/dist/multiplexer/windows/index.d.ts +0 -5
  126. package/dist/multiplexer/windows/index.d.ts.map +0 -1
  127. package/dist/multiplexer/windows/index.js +0 -5
  128. package/dist/multiplexer/windows/index.js.map +0 -1
  129. package/dist/multiplexer/windows/windows-multiplexer.d.ts +0 -61
  130. package/dist/multiplexer/windows/windows-multiplexer.d.ts.map +0 -1
  131. package/dist/multiplexer/windows/windows-multiplexer.js +0 -151
  132. package/dist/multiplexer/windows/windows-multiplexer.js.map +0 -1
  133. package/dist/services/claude/claude-detector.d.ts +0 -37
  134. package/dist/services/claude/claude-detector.d.ts.map +0 -1
  135. package/dist/services/claude/claude-detector.js +0 -83
  136. package/dist/services/claude/claude-detector.js.map +0 -1
  137. package/dist/services/claude/claude-service.d.ts +0 -57
  138. package/dist/services/claude/claude-service.d.ts.map +0 -1
  139. package/dist/services/claude/claude-service.js +0 -108
  140. package/dist/services/claude/claude-service.js.map +0 -1
  141. package/dist/services/claude/index.d.ts +0 -7
  142. package/dist/services/claude/index.d.ts.map +0 -1
  143. package/dist/services/claude/index.js +0 -6
  144. package/dist/services/claude/index.js.map +0 -1
  145. package/dist/services/git/branch-service.d.ts +0 -64
  146. package/dist/services/git/branch-service.d.ts.map +0 -1
  147. package/dist/services/git/branch-service.js +0 -217
  148. package/dist/services/git/branch-service.js.map +0 -1
  149. package/dist/services/git/git-service.d.ts +0 -44
  150. package/dist/services/git/git-service.d.ts.map +0 -1
  151. package/dist/services/git/git-service.js +0 -145
  152. package/dist/services/git/git-service.js.map +0 -1
  153. package/dist/services/git/index.d.ts +0 -8
  154. package/dist/services/git/index.d.ts.map +0 -1
  155. package/dist/services/git/index.js +0 -7
  156. package/dist/services/git/index.js.map +0 -1
  157. package/dist/services/git/worktree-service.d.ts +0 -61
  158. package/dist/services/git/worktree-service.d.ts.map +0 -1
  159. package/dist/services/git/worktree-service.js +0 -243
  160. package/dist/services/git/worktree-service.js.map +0 -1
  161. package/dist/services/index.d.ts +0 -12
  162. package/dist/services/index.d.ts.map +0 -1
  163. package/dist/services/index.js +0 -12
  164. package/dist/services/index.js.map +0 -1
  165. package/dist/services/process/index.d.ts +0 -8
  166. package/dist/services/process/index.d.ts.map +0 -1
  167. package/dist/services/process/index.js +0 -6
  168. package/dist/services/process/index.js.map +0 -1
  169. package/dist/services/process/process-monitor.d.ts +0 -98
  170. package/dist/services/process/process-monitor.d.ts.map +0 -1
  171. package/dist/services/process/process-monitor.js +0 -173
  172. package/dist/services/process/process-monitor.js.map +0 -1
  173. package/dist/services/process/process-spawner.d.ts +0 -55
  174. package/dist/services/process/process-spawner.d.ts.map +0 -1
  175. package/dist/services/process/process-spawner.js +0 -93
  176. package/dist/services/process/process-spawner.js.map +0 -1
  177. package/dist/sidebar.d.ts +0 -13
  178. package/dist/sidebar.d.ts.map +0 -1
  179. package/dist/sidebar.js +0 -1535
  180. package/dist/sidebar.js.map +0 -1
  181. package/dist/state/actions.d.ts +0 -49
  182. package/dist/state/actions.d.ts.map +0 -1
  183. package/dist/state/actions.js +0 -512
  184. package/dist/state/actions.js.map +0 -1
  185. package/dist/state/index.d.ts +0 -16
  186. package/dist/state/index.d.ts.map +0 -1
  187. package/dist/state/index.js +0 -28
  188. package/dist/state/index.js.map +0 -1
  189. package/dist/state/middleware/index.d.ts +0 -7
  190. package/dist/state/middleware/index.d.ts.map +0 -1
  191. package/dist/state/middleware/index.js +0 -6
  192. package/dist/state/middleware/index.js.map +0 -1
  193. package/dist/state/middleware/logger.d.ts +0 -22
  194. package/dist/state/middleware/logger.d.ts.map +0 -1
  195. package/dist/state/middleware/logger.js +0 -45
  196. package/dist/state/middleware/logger.js.map +0 -1
  197. package/dist/state/middleware/persistence.d.ts +0 -29
  198. package/dist/state/middleware/persistence.d.ts.map +0 -1
  199. package/dist/state/middleware/persistence.js +0 -71
  200. package/dist/state/middleware/persistence.js.map +0 -1
  201. package/dist/state/persistence/file-adapter.d.ts +0 -48
  202. package/dist/state/persistence/file-adapter.d.ts.map +0 -1
  203. package/dist/state/persistence/file-adapter.js +0 -96
  204. package/dist/state/persistence/file-adapter.js.map +0 -1
  205. package/dist/state/persistence/index.d.ts +0 -8
  206. package/dist/state/persistence/index.d.ts.map +0 -1
  207. package/dist/state/persistence/index.js +0 -6
  208. package/dist/state/persistence/index.js.map +0 -1
  209. package/dist/state/persistence/serializer.d.ts +0 -41
  210. package/dist/state/persistence/serializer.d.ts.map +0 -1
  211. package/dist/state/persistence/serializer.js +0 -114
  212. package/dist/state/persistence/serializer.js.map +0 -1
  213. package/dist/state/selectors.d.ts +0 -67
  214. package/dist/state/selectors.d.ts.map +0 -1
  215. package/dist/state/selectors.js +0 -177
  216. package/dist/state/selectors.js.map +0 -1
  217. package/dist/state/store.d.ts +0 -86
  218. package/dist/state/store.d.ts.map +0 -1
  219. package/dist/state/store.js +0 -161
  220. package/dist/state/store.js.map +0 -1
  221. package/dist/state/types.d.ts +0 -269
  222. package/dist/state/types.d.ts.map +0 -1
  223. package/dist/state/types.js +0 -7
  224. package/dist/state/types.js.map +0 -1
  225. package/dist/state.d.ts +0 -53
  226. package/dist/state.d.ts.map +0 -1
  227. package/dist/state.js +0 -101
  228. package/dist/state.js.map +0 -1
  229. package/dist/terminal-manager.d.ts +0 -16
  230. package/dist/terminal-manager.d.ts.map +0 -1
  231. package/dist/terminal-manager.js +0 -364
  232. package/dist/terminal-manager.js.map +0 -1
  233. package/dist/tmux.d.ts +0 -163
  234. package/dist/tmux.d.ts.map +0 -1
  235. package/dist/tmux.js +0 -360
  236. package/dist/tmux.js.map +0 -1
  237. package/dist/types/config.d.ts +0 -103
  238. package/dist/types/config.d.ts.map +0 -1
  239. package/dist/types/config.js +0 -7
  240. package/dist/types/config.js.map +0 -1
  241. package/dist/types/entities.d.ts +0 -88
  242. package/dist/types/entities.d.ts.map +0 -1
  243. package/dist/types/entities.js +0 -8
  244. package/dist/types/entities.js.map +0 -1
  245. package/dist/types/events.d.ts +0 -156
  246. package/dist/types/events.d.ts.map +0 -1
  247. package/dist/types/events.js +0 -8
  248. package/dist/types/events.js.map +0 -1
  249. package/dist/types/index.d.ts +0 -11
  250. package/dist/types/index.d.ts.map +0 -1
  251. package/dist/types/index.js +0 -8
  252. package/dist/types/index.js.map +0 -1
  253. package/dist/types/multiplexer.d.ts +0 -238
  254. package/dist/types/multiplexer.d.ts.map +0 -1
  255. package/dist/types/multiplexer.js +0 -8
  256. package/dist/types/multiplexer.js.map +0 -1
  257. package/dist/ui/components/base.d.ts +0 -155
  258. package/dist/ui/components/base.d.ts.map +0 -1
  259. package/dist/ui/components/base.js +0 -269
  260. package/dist/ui/components/base.js.map +0 -1
  261. package/dist/ui/components/index.d.ts +0 -10
  262. package/dist/ui/components/index.d.ts.map +0 -1
  263. package/dist/ui/components/index.js +0 -10
  264. package/dist/ui/components/index.js.map +0 -1
  265. package/dist/ui/components/input-field.d.ts +0 -98
  266. package/dist/ui/components/input-field.d.ts.map +0 -1
  267. package/dist/ui/components/input-field.js +0 -274
  268. package/dist/ui/components/input-field.js.map +0 -1
  269. package/dist/ui/components/list.d.ts +0 -94
  270. package/dist/ui/components/list.d.ts.map +0 -1
  271. package/dist/ui/components/list.js +0 -294
  272. package/dist/ui/components/list.js.map +0 -1
  273. package/dist/ui/components/modal.d.ts +0 -83
  274. package/dist/ui/components/modal.d.ts.map +0 -1
  275. package/dist/ui/components/modal.js +0 -249
  276. package/dist/ui/components/modal.js.map +0 -1
  277. package/dist/ui/components/tabs.d.ts +0 -97
  278. package/dist/ui/components/tabs.d.ts.map +0 -1
  279. package/dist/ui/components/tabs.js +0 -252
  280. package/dist/ui/components/tabs.js.map +0 -1
  281. package/dist/ui/components/text.d.ts +0 -60
  282. package/dist/ui/components/text.d.ts.map +0 -1
  283. package/dist/ui/components/text.js +0 -224
  284. package/dist/ui/components/text.js.map +0 -1
  285. package/dist/ui/index.d.ts +0 -12
  286. package/dist/ui/index.d.ts.map +0 -1
  287. package/dist/ui/index.js +0 -18
  288. package/dist/ui/index.js.map +0 -1
  289. package/dist/ui/input/index.d.ts +0 -8
  290. package/dist/ui/input/index.d.ts.map +0 -1
  291. package/dist/ui/input/index.js +0 -8
  292. package/dist/ui/input/index.js.map +0 -1
  293. package/dist/ui/input/input-manager.d.ts +0 -83
  294. package/dist/ui/input/input-manager.d.ts.map +0 -1
  295. package/dist/ui/input/input-manager.js +0 -200
  296. package/dist/ui/input/input-manager.js.map +0 -1
  297. package/dist/ui/input/keybindings.d.ts +0 -47
  298. package/dist/ui/input/keybindings.d.ts.map +0 -1
  299. package/dist/ui/input/keybindings.js +0 -168
  300. package/dist/ui/input/keybindings.js.map +0 -1
  301. package/dist/ui/input/keyboard.d.ts +0 -24
  302. package/dist/ui/input/keyboard.d.ts.map +0 -1
  303. package/dist/ui/input/keyboard.js +0 -230
  304. package/dist/ui/input/keyboard.js.map +0 -1
  305. package/dist/ui/input/mouse.d.ts +0 -44
  306. package/dist/ui/input/mouse.d.ts.map +0 -1
  307. package/dist/ui/input/mouse.js +0 -161
  308. package/dist/ui/input/mouse.js.map +0 -1
  309. package/dist/ui/layout/box.d.ts +0 -63
  310. package/dist/ui/layout/box.d.ts.map +0 -1
  311. package/dist/ui/layout/box.js +0 -160
  312. package/dist/ui/layout/box.js.map +0 -1
  313. package/dist/ui/layout/constraints.d.ts +0 -77
  314. package/dist/ui/layout/constraints.d.ts.map +0 -1
  315. package/dist/ui/layout/constraints.js +0 -154
  316. package/dist/ui/layout/constraints.js.map +0 -1
  317. package/dist/ui/layout/flex.d.ts +0 -59
  318. package/dist/ui/layout/flex.d.ts.map +0 -1
  319. package/dist/ui/layout/flex.js +0 -163
  320. package/dist/ui/layout/flex.js.map +0 -1
  321. package/dist/ui/layout/index.d.ts +0 -7
  322. package/dist/ui/layout/index.d.ts.map +0 -1
  323. package/dist/ui/layout/index.js +0 -7
  324. package/dist/ui/layout/index.js.map +0 -1
  325. package/dist/ui/modals/delete-modal.d.ts +0 -27
  326. package/dist/ui/modals/delete-modal.d.ts.map +0 -1
  327. package/dist/ui/modals/delete-modal.js +0 -59
  328. package/dist/ui/modals/delete-modal.js.map +0 -1
  329. package/dist/ui/modals/index.d.ts +0 -7
  330. package/dist/ui/modals/index.d.ts.map +0 -1
  331. package/dist/ui/modals/index.js +0 -7
  332. package/dist/ui/modals/index.js.map +0 -1
  333. package/dist/ui/modals/input-modal.d.ts +0 -66
  334. package/dist/ui/modals/input-modal.d.ts.map +0 -1
  335. package/dist/ui/modals/input-modal.js +0 -185
  336. package/dist/ui/modals/input-modal.js.map +0 -1
  337. package/dist/ui/modals/quit-modal.d.ts +0 -30
  338. package/dist/ui/modals/quit-modal.d.ts.map +0 -1
  339. package/dist/ui/modals/quit-modal.js +0 -65
  340. package/dist/ui/modals/quit-modal.js.map +0 -1
  341. package/dist/ui/renderer/ansi.d.ts +0 -206
  342. package/dist/ui/renderer/ansi.d.ts.map +0 -1
  343. package/dist/ui/renderer/ansi.js +0 -318
  344. package/dist/ui/renderer/ansi.js.map +0 -1
  345. package/dist/ui/renderer/canvas.d.ts +0 -126
  346. package/dist/ui/renderer/canvas.d.ts.map +0 -1
  347. package/dist/ui/renderer/canvas.js +0 -346
  348. package/dist/ui/renderer/canvas.js.map +0 -1
  349. package/dist/ui/renderer/colors.d.ts +0 -65
  350. package/dist/ui/renderer/colors.d.ts.map +0 -1
  351. package/dist/ui/renderer/colors.js +0 -260
  352. package/dist/ui/renderer/colors.js.map +0 -1
  353. package/dist/ui/renderer/index.d.ts +0 -8
  354. package/dist/ui/renderer/index.d.ts.map +0 -1
  355. package/dist/ui/renderer/index.js +0 -8
  356. package/dist/ui/renderer/index.js.map +0 -1
  357. package/dist/ui/renderer/symbols.d.ts +0 -176
  358. package/dist/ui/renderer/symbols.d.ts.map +0 -1
  359. package/dist/ui/renderer/symbols.js +0 -246
  360. package/dist/ui/renderer/symbols.js.map +0 -1
  361. package/dist/ui/views/index.d.ts +0 -7
  362. package/dist/ui/views/index.d.ts.map +0 -1
  363. package/dist/ui/views/index.js +0 -7
  364. package/dist/ui/views/index.js.map +0 -1
  365. package/dist/ui/views/sidebar-view.d.ts +0 -89
  366. package/dist/ui/views/sidebar-view.d.ts.map +0 -1
  367. package/dist/ui/views/sidebar-view.js +0 -259
  368. package/dist/ui/views/sidebar-view.js.map +0 -1
  369. package/dist/ui/views/terminal-bar-view.d.ts +0 -67
  370. package/dist/ui/views/terminal-bar-view.d.ts.map +0 -1
  371. package/dist/ui/views/terminal-bar-view.js +0 -172
  372. package/dist/ui/views/terminal-bar-view.js.map +0 -1
  373. package/dist/ui/views/welcome-view.d.ts +0 -34
  374. package/dist/ui/views/welcome-view.d.ts.map +0 -1
  375. package/dist/ui/views/welcome-view.js +0 -116
  376. package/dist/ui/views/welcome-view.js.map +0 -1
@@ -1,223 +0,0 @@
1
- /**
2
- * Event Bus Implementation
3
- *
4
- * Provides a typed event bus for decoupled communication between modules.
5
- */
6
- import { getLogger } from '../utils';
7
- /**
8
- * Event bus for application-wide event handling
9
- */
10
- export class EventBus {
11
- listeners = new Map();
12
- allListeners = new Set();
13
- debugMode = false;
14
- /**
15
- * Enable debug mode to log all events
16
- */
17
- setDebugMode(enabled) {
18
- this.debugMode = enabled;
19
- }
20
- /**
21
- * Emit an event to all registered listeners
22
- */
23
- emit(type, payload) {
24
- const event = {
25
- ...payload,
26
- type,
27
- timestamp: new Date(),
28
- };
29
- if (this.debugMode) {
30
- const logger = getLogger();
31
- logger.debug(`Event: ${type}`, event);
32
- }
33
- // Notify type-specific listeners
34
- const typeListeners = this.listeners.get(type);
35
- if (typeListeners) {
36
- const toRemove = [];
37
- for (const listener of typeListeners) {
38
- try {
39
- listener.handler(event);
40
- }
41
- catch (error) {
42
- const logger = getLogger();
43
- logger.error(`Error in event handler for ${type}`, error);
44
- }
45
- if (listener.once) {
46
- toRemove.push(listener);
47
- }
48
- }
49
- // Remove one-time listeners
50
- for (const listener of toRemove) {
51
- typeListeners.delete(listener);
52
- }
53
- }
54
- // Notify wildcard listeners
55
- for (const listener of this.allListeners) {
56
- try {
57
- listener(event);
58
- }
59
- catch (error) {
60
- const logger = getLogger();
61
- logger.error(`Error in wildcard event handler`, error);
62
- }
63
- }
64
- }
65
- /**
66
- * Subscribe to events of a specific type
67
- */
68
- on(type, handler) {
69
- if (!this.listeners.has(type)) {
70
- this.listeners.set(type, new Set());
71
- }
72
- const listener = {
73
- handler: handler,
74
- once: false,
75
- };
76
- this.listeners.get(type).add(listener);
77
- return () => {
78
- this.listeners.get(type)?.delete(listener);
79
- };
80
- }
81
- /**
82
- * Subscribe to a single event occurrence
83
- */
84
- once(type, handler) {
85
- if (!this.listeners.has(type)) {
86
- this.listeners.set(type, new Set());
87
- }
88
- const listener = {
89
- handler: handler,
90
- once: true,
91
- };
92
- this.listeners.get(type).add(listener);
93
- return () => {
94
- this.listeners.get(type)?.delete(listener);
95
- };
96
- }
97
- /**
98
- * Remove a specific handler for an event type
99
- */
100
- off(type, handler) {
101
- const typeListeners = this.listeners.get(type);
102
- if (typeListeners) {
103
- for (const listener of typeListeners) {
104
- if (listener.handler === handler) {
105
- typeListeners.delete(listener);
106
- break;
107
- }
108
- }
109
- }
110
- }
111
- /**
112
- * Subscribe to all events
113
- */
114
- onAll(handler) {
115
- this.allListeners.add(handler);
116
- return () => {
117
- this.allListeners.delete(handler);
118
- };
119
- }
120
- /**
121
- * Wait for a specific event type
122
- */
123
- waitFor(type, timeout) {
124
- return new Promise((resolve, reject) => {
125
- let timeoutId;
126
- const unsubscribe = this.once(type, (event) => {
127
- if (timeoutId) {
128
- clearTimeout(timeoutId);
129
- }
130
- resolve(event);
131
- });
132
- if (timeout !== undefined) {
133
- timeoutId = setTimeout(() => {
134
- unsubscribe();
135
- reject(new Error(`Timeout waiting for event: ${type}`));
136
- }, timeout);
137
- }
138
- });
139
- }
140
- /**
141
- * Wait for an event matching a predicate
142
- */
143
- waitForMatch(type, predicate, timeout) {
144
- return new Promise((resolve, reject) => {
145
- let timeoutId;
146
- let unsubscribe;
147
- const handler = (event) => {
148
- if (predicate(event)) {
149
- if (timeoutId) {
150
- clearTimeout(timeoutId);
151
- }
152
- unsubscribe?.();
153
- resolve(event);
154
- }
155
- };
156
- unsubscribe = this.on(type, handler);
157
- if (timeout !== undefined) {
158
- timeoutId = setTimeout(() => {
159
- unsubscribe?.();
160
- reject(new Error(`Timeout waiting for matching event: ${type}`));
161
- }, timeout);
162
- }
163
- });
164
- }
165
- /**
166
- * Remove all listeners for a specific event type
167
- */
168
- removeAllListeners(type) {
169
- if (type) {
170
- this.listeners.delete(type);
171
- }
172
- else {
173
- this.listeners.clear();
174
- this.allListeners.clear();
175
- }
176
- }
177
- /**
178
- * Get the count of listeners for a specific event type
179
- */
180
- listenerCount(type) {
181
- return this.listeners.get(type)?.size || 0;
182
- }
183
- /**
184
- * Get all registered event types
185
- */
186
- eventTypes() {
187
- return Array.from(this.listeners.keys());
188
- }
189
- }
190
- /**
191
- * Create an event with timestamp
192
- */
193
- export function createEvent(type, payload) {
194
- return {
195
- ...payload,
196
- type,
197
- timestamp: new Date(),
198
- };
199
- }
200
- // Global event bus instance (will be set by the app)
201
- let globalEventBus = null;
202
- /**
203
- * Get the global event bus
204
- */
205
- export function getEventBus() {
206
- if (!globalEventBus) {
207
- globalEventBus = new EventBus();
208
- }
209
- return globalEventBus;
210
- }
211
- /**
212
- * Set the global event bus
213
- */
214
- export function setEventBus(bus) {
215
- globalEventBus = bus;
216
- }
217
- /**
218
- * Create a new event bus instance
219
- */
220
- export function createEventBus() {
221
- return new EventBus();
222
- }
223
- //# sourceMappingURL=bus.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bus.js","sourceRoot":"","sources":["../../src/events/bus.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- /**
2
- * Event Handlers Index
3
- *
4
- * Exports event handler registration functions.
5
- */
6
- import type { EventBus } from '../bus';
7
- import type { IMultiplexer } from '../../types';
8
- /**
9
- * Register all event handlers with the event bus
10
- * This function should be called during app initialization
11
- */
12
- export declare function registerEventHandlers(eventBus: EventBus, multiplexer?: IMultiplexer): void;
13
- /**
14
- * Register session event handlers
15
- */
16
- export declare function registerSessionHandlers(eventBus: EventBus, multiplexer: IMultiplexer): void;
17
- /**
18
- * Register terminal event handlers
19
- */
20
- export declare function registerTerminalHandlers(eventBus: EventBus, multiplexer: IMultiplexer): void;
21
- /**
22
- * Register UI event handlers
23
- */
24
- export declare function registerUIHandlers(eventBus: EventBus): void;
25
- export { createSessionEventHandlers } from './session-events';
26
- export { createTerminalEventHandlers } from './terminal-events';
27
- export { createUIEventHandlers } from './ui-events';
28
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/events/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAKhD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,QAAQ,EAClB,WAAW,CAAC,EAAE,YAAY,GACzB,IAAI,CASN;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,YAAY,GACxB,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,YAAY,GACxB,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAE3D;AAGD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
@@ -1,44 +0,0 @@
1
- /**
2
- * Event Handlers Index
3
- *
4
- * Exports event handler registration functions.
5
- */
6
- import { createSessionEventHandlers } from './session-events';
7
- import { createTerminalEventHandlers } from './terminal-events';
8
- import { createUIEventHandlers } from './ui-events';
9
- /**
10
- * Register all event handlers with the event bus
11
- * This function should be called during app initialization
12
- */
13
- export function registerEventHandlers(eventBus, multiplexer) {
14
- // Register UI handlers (no multiplexer needed)
15
- createUIEventHandlers(eventBus);
16
- // Register session and terminal handlers if multiplexer is provided
17
- if (multiplexer) {
18
- createSessionEventHandlers(eventBus, multiplexer);
19
- createTerminalEventHandlers(eventBus, multiplexer);
20
- }
21
- }
22
- /**
23
- * Register session event handlers
24
- */
25
- export function registerSessionHandlers(eventBus, multiplexer) {
26
- createSessionEventHandlers(eventBus, multiplexer);
27
- }
28
- /**
29
- * Register terminal event handlers
30
- */
31
- export function registerTerminalHandlers(eventBus, multiplexer) {
32
- createTerminalEventHandlers(eventBus, multiplexer);
33
- }
34
- /**
35
- * Register UI event handlers
36
- */
37
- export function registerUIHandlers(eventBus) {
38
- createUIEventHandlers(eventBus);
39
- }
40
- // Re-export individual handler creators
41
- export { createSessionEventHandlers } from './session-events';
42
- export { createTerminalEventHandlers } from './terminal-events';
43
- export { createUIEventHandlers } from './ui-events';
44
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/events/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAkB,EAClB,WAA0B;IAE1B,+CAA+C;IAC/C,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAEhC,oEAAoE;IACpE,IAAI,WAAW,EAAE,CAAC;QAChB,0BAA0B,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAClD,2BAA2B,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAAkB,EAClB,WAAyB;IAEzB,0BAA0B,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,QAAkB,EAClB,WAAyB;IAEzB,2BAA2B,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAkB;IACnD,qBAAqB,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,wCAAwC;AACxC,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
@@ -1,12 +0,0 @@
1
- /**
2
- * Session Event Handlers
3
- *
4
- * Handles session lifecycle events and coordinates with multiplexer.
5
- */
6
- import type { EventBus } from '../bus';
7
- import type { IMultiplexer } from '../../types';
8
- /**
9
- * Create session event handlers
10
- */
11
- export declare function createSessionEventHandlers(eventBus: EventBus, multiplexer: IMultiplexer): void;
12
- //# sourceMappingURL=session-events.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-events.d.ts","sourceRoot":"","sources":["../../../src/events/handlers/session-events.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAKhD;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,YAAY,GACxB,IAAI,CAgCN"}
@@ -1,38 +0,0 @@
1
- /**
2
- * Session Event Handlers
3
- *
4
- * Handles session lifecycle events and coordinates with multiplexer.
5
- */
6
- import { getLogger } from '../../utils';
7
- const logger = getLogger().child('session-events');
8
- /**
9
- * Create session event handlers
10
- */
11
- export function createSessionEventHandlers(eventBus, multiplexer) {
12
- // Handle session creation
13
- eventBus.on('session:created', async (event) => {
14
- logger.debug('Session created', { sessionId: event.session.id });
15
- // Session created - the pane is already created by session manager
16
- // This event is for notification/logging purposes
17
- });
18
- // Handle session deletion
19
- eventBus.on('session:deleted', async (event) => {
20
- logger.debug('Session deleted', { sessionId: event.sessionId });
21
- // Clean up any multiplexer resources if needed
22
- // The actual pane cleanup is handled by session manager
23
- });
24
- // Handle session activation
25
- eventBus.on('session:activated', async (event) => {
26
- logger.debug('Session activated', { sessionId: event.sessionId });
27
- // Focus the main pane of the activated session
28
- // This could be used to switch tmux focus if needed
29
- });
30
- // Handle session rename
31
- eventBus.on('session:renamed', async (event) => {
32
- logger.debug('Session renamed', {
33
- sessionId: event.sessionId,
34
- newTitle: event.newTitle,
35
- });
36
- });
37
- }
38
- //# sourceMappingURL=session-events.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-events.js","sourceRoot":"","sources":["../../../src/events/handlers/session-events.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAEnD;;GAEG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAAkB,EAClB,WAAyB;IAEzB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,CAAC,iBAAiB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAC7C,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAEjE,mEAAmE;QACnE,kDAAkD;IACpD,CAAC,CAAC,CAAC;IAEH,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,CAAC,iBAAiB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAC7C,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QAEhE,+CAA+C;QAC/C,wDAAwD;IAC1D,CAAC,CAAC,CAAC;IAEH,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,CAAC,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAC/C,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QAElE,+CAA+C;QAC/C,oDAAoD;IACtD,CAAC,CAAC,CAAC;IAEH,wBAAwB;IACxB,QAAQ,CAAC,EAAE,CAAC,iBAAiB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAC7C,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE;YAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,12 +0,0 @@
1
- /**
2
- * Terminal Event Handlers
3
- *
4
- * Handles terminal lifecycle events and coordinates with multiplexer.
5
- */
6
- import type { EventBus } from '../bus';
7
- import type { IMultiplexer } from '../../types';
8
- /**
9
- * Create terminal event handlers
10
- */
11
- export declare function createTerminalEventHandlers(eventBus: EventBus, multiplexer: IMultiplexer): void;
12
- //# sourceMappingURL=terminal-events.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"terminal-events.d.ts","sourceRoot":"","sources":["../../../src/events/handlers/terminal-events.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAKhD;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,YAAY,GACxB,IAAI,CA+BN"}
@@ -1,37 +0,0 @@
1
- /**
2
- * Terminal Event Handlers
3
- *
4
- * Handles terminal lifecycle events and coordinates with multiplexer.
5
- */
6
- import { getLogger } from '../../utils';
7
- const logger = getLogger().child('terminal-events');
8
- /**
9
- * Create terminal event handlers
10
- */
11
- export function createTerminalEventHandlers(eventBus, multiplexer) {
12
- // Handle terminal creation
13
- eventBus.on('terminal:created', async (event) => {
14
- logger.debug('Terminal created', { terminalId: event.terminal.id });
15
- // Terminal created - the pane is already created by terminal manager
16
- // This event is for notification/logging purposes
17
- });
18
- // Handle terminal deletion
19
- eventBus.on('terminal:deleted', async (event) => {
20
- logger.debug('Terminal deleted', { terminalId: event.terminalId });
21
- // Clean up any multiplexer resources if needed
22
- });
23
- // Handle terminal activation
24
- eventBus.on('terminal:activated', async (event) => {
25
- logger.debug('Terminal activated', { terminalId: event.terminalId });
26
- // Focus the terminal pane
27
- // This could trigger showing the terminal in the foreground
28
- });
29
- // Handle terminal rename
30
- eventBus.on('terminal:renamed', async (event) => {
31
- logger.debug('Terminal renamed', {
32
- terminalId: event.terminalId,
33
- newTitle: event.newTitle,
34
- });
35
- });
36
- }
37
- //# sourceMappingURL=terminal-events.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"terminal-events.js","sourceRoot":"","sources":["../../../src/events/handlers/terminal-events.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAEpD;;GAEG;AACH,MAAM,UAAU,2BAA2B,CACzC,QAAkB,EAClB,WAAyB;IAEzB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAC9C,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAEpE,qEAAqE;QACrE,kDAAkD;IACpD,CAAC,CAAC,CAAC;IAEH,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAC9C,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;QAEnE,+CAA+C;IACjD,CAAC,CAAC,CAAC;IAEH,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAChD,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;QAErE,0BAA0B;QAC1B,4DAA4D;IAC9D,CAAC,CAAC,CAAC;IAEH,yBAAyB;IACzB,QAAQ,CAAC,EAAE,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAC9C,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE;YAC/B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,11 +0,0 @@
1
- /**
2
- * UI Event Handlers
3
- *
4
- * Handles UI interaction events and maps them to actions.
5
- */
6
- import type { EventBus } from '../bus';
7
- /**
8
- * Create UI event handlers
9
- */
10
- export declare function createUIEventHandlers(eventBus: EventBus): void;
11
- //# sourceMappingURL=ui-events.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ui-events.d.ts","sourceRoot":"","sources":["../../../src/events/handlers/ui-events.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAMvC;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CA0C9D"}
@@ -1,202 +0,0 @@
1
- /**
2
- * UI Event Handlers
3
- *
4
- * Handles UI interaction events and maps them to actions.
5
- */
6
- import { getStore, actions, dispatch, selectSelectedIndex, selectSidebarItemCount } from '../../state';
7
- import { getLogger } from '../../utils';
8
- const logger = getLogger().child('ui-events');
9
- /**
10
- * Create UI event handlers
11
- */
12
- export function createUIEventHandlers(eventBus) {
13
- // Handle key events
14
- eventBus.on('ui:key', (event) => {
15
- const state = getStore().getState();
16
- // Handle modal key events first
17
- if (state.ui.modal.type) {
18
- handleModalKey(event, eventBus);
19
- return;
20
- }
21
- // Handle input mode key events
22
- if (state.ui.inputMode.active) {
23
- handleInputKey(event);
24
- return;
25
- }
26
- // Normal mode key handling
27
- handleNormalKey(event, eventBus);
28
- });
29
- // Handle mouse events
30
- eventBus.on('ui:mouse', (event) => {
31
- logger.debug('Mouse event', { x: event.x, y: event.y, button: event.button });
32
- // Mouse handling can be implemented for clicking on items
33
- });
34
- // Handle resize events
35
- eventBus.on('ui:resize', (event) => {
36
- logger.debug('Resize event', { width: event.width, height: event.height });
37
- // Canvas resize is handled by app.ts
38
- });
39
- // Handle modal open events
40
- eventBus.on('ui:modal:opened', (event) => {
41
- logger.debug('Modal opened', { type: event.modalType });
42
- });
43
- // Handle modal close events
44
- eventBus.on('ui:modal:closed', () => {
45
- logger.debug('Modal closed');
46
- });
47
- }
48
- /**
49
- * Handle key events in normal mode
50
- */
51
- function handleNormalKey(event, eventBus) {
52
- const key = event.key;
53
- const state = getStore().getState();
54
- const currentIndex = selectSelectedIndex(state);
55
- const itemCount = selectSidebarItemCount(state);
56
- switch (key) {
57
- // Navigation
58
- case 'up':
59
- case 'k':
60
- if (currentIndex > 0) {
61
- dispatch(actions.select(currentIndex - 1));
62
- }
63
- break;
64
- case 'down':
65
- case 'j':
66
- if (currentIndex < itemCount - 1) {
67
- dispatch(actions.select(currentIndex + 1));
68
- }
69
- break;
70
- // Selection/activation
71
- case 'enter':
72
- case 'l':
73
- // Activate selected item - handled by app based on what's selected
74
- break;
75
- // Create new
76
- case 'n':
77
- dispatch(actions.showModal('create-session'));
78
- break;
79
- // Delete
80
- case 'x':
81
- case 'delete':
82
- dispatch(actions.showModal('delete-session'));
83
- break;
84
- // Rename
85
- case 'r':
86
- dispatch(actions.showModal('rename-session'));
87
- break;
88
- // Toggle sidebar
89
- case 'tab':
90
- dispatch(actions.toggleSidebar());
91
- break;
92
- // Help - no help modal type, ignore for now
93
- case '?':
94
- break;
95
- // Quit
96
- case 'q':
97
- dispatch(actions.showModal('quit'));
98
- break;
99
- default:
100
- // Unhandled key
101
- break;
102
- }
103
- }
104
- /**
105
- * Handle key events when modal is open
106
- */
107
- function handleModalKey(event, eventBus) {
108
- const key = event.key;
109
- const state = getStore().getState();
110
- switch (key) {
111
- case 'escape':
112
- dispatch(actions.closeModal());
113
- break;
114
- case 'enter':
115
- // Confirm modal action
116
- const modalType = state.ui.modal.type || 'unknown';
117
- eventBus.emit('ui:modal:closed', { modalType });
118
- dispatch(actions.closeModal());
119
- break;
120
- case 'up':
121
- case 'k':
122
- // Navigate modal options up
123
- {
124
- const currentSel = state.ui.modal.selection;
125
- if (currentSel > 0) {
126
- dispatch(actions.modalSelect(currentSel - 1));
127
- }
128
- }
129
- break;
130
- case 'down':
131
- case 'j':
132
- // Navigate modal options down
133
- dispatch(actions.modalSelect(state.ui.modal.selection + 1));
134
- break;
135
- case 'y':
136
- // Confirm (for yes/no dialogs)
137
- if (state.ui.modal.type === 'quit' ||
138
- state.ui.modal.type === 'delete-session' ||
139
- state.ui.modal.type === 'delete-worktree') {
140
- // Handle confirmation
141
- dispatch(actions.closeModal());
142
- }
143
- break;
144
- case 'n':
145
- // Cancel (for yes/no dialogs)
146
- if (state.ui.modal.type === 'quit' ||
147
- state.ui.modal.type === 'delete-session' ||
148
- state.ui.modal.type === 'delete-worktree') {
149
- dispatch(actions.closeModal());
150
- }
151
- break;
152
- default:
153
- break;
154
- }
155
- }
156
- /**
157
- * Handle key events when in input mode
158
- */
159
- function handleInputKey(event) {
160
- const key = event.key;
161
- const state = getStore().getState();
162
- const { value, cursorPos } = state.ui.inputMode;
163
- switch (key) {
164
- case 'escape':
165
- dispatch(actions.endInput());
166
- break;
167
- case 'enter':
168
- // Submit input - the value is available in state
169
- dispatch(actions.endInput());
170
- break;
171
- case 'backspace':
172
- if (cursorPos > 0) {
173
- const newValue = value.slice(0, cursorPos - 1) + value.slice(cursorPos);
174
- dispatch(actions.updateInput(newValue, cursorPos - 1));
175
- }
176
- break;
177
- case 'left':
178
- if (cursorPos > 0) {
179
- dispatch(actions.updateInput(value, cursorPos - 1));
180
- }
181
- break;
182
- case 'right':
183
- if (cursorPos < value.length) {
184
- dispatch(actions.updateInput(value, cursorPos + 1));
185
- }
186
- break;
187
- case 'home':
188
- dispatch(actions.updateInput(value, 0));
189
- break;
190
- case 'end':
191
- dispatch(actions.updateInput(value, value.length));
192
- break;
193
- default:
194
- // Regular character input - only single printable characters
195
- if (key.length === 1 && key >= ' ') {
196
- const newValue = value.slice(0, cursorPos) + key + value.slice(cursorPos);
197
- dispatch(actions.updateInput(newValue, cursorPos + 1));
198
- }
199
- break;
200
- }
201
- }
202
- //# sourceMappingURL=ui-events.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ui-events.js","sourceRoot":"","sources":["../../../src/events/handlers/ui-events.ts"],"names":[],"mappings":"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"}