claude-code-plus-plus 0.2.0 → 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 (441) hide show
  1. package/dist/cli/commands/index.js +5 -1
  2. package/dist/cli/commands/index.js.map +1 -1
  3. package/dist/cli/commands/start.js +4 -1
  4. package/dist/cli/commands/start.js.map +1 -1
  5. package/dist/cli/index.js +18 -3
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/cli/parser.js +8 -3
  8. package/dist/cli/parser.js.map +1 -1
  9. package/dist/cli/validators.js +30 -20
  10. package/dist/cli/validators.js.map +1 -1
  11. package/dist/config/defaults.js +10 -5
  12. package/dist/config/defaults.js.map +1 -1
  13. package/dist/config/index.js +24 -4
  14. package/dist/config/index.js.map +1 -1
  15. package/dist/config/loader.js +29 -20
  16. package/dist/config/loader.js.map +1 -1
  17. package/dist/config/paths.js +30 -21
  18. package/dist/config/paths.js.map +1 -1
  19. package/dist/config/schema.js +6 -2
  20. package/dist/config/schema.js.map +1 -1
  21. package/dist/git/index.js +6 -1
  22. package/dist/git/index.js.map +1 -1
  23. package/dist/git/worktree.js +18 -13
  24. package/dist/git/worktree.js.map +1 -1
  25. package/dist/index.js +41 -6
  26. package/dist/index.js.map +1 -1
  27. package/dist/launcher/index.d.ts.map +1 -1
  28. package/dist/launcher/index.js +60 -26
  29. package/dist/launcher/index.js.map +1 -1
  30. package/dist/platform/clipboard.js +22 -15
  31. package/dist/platform/clipboard.js.map +1 -1
  32. package/dist/platform/detector.js +37 -22
  33. package/dist/platform/detector.js.map +1 -1
  34. package/dist/platform/index.js +42 -4
  35. package/dist/platform/index.js.map +1 -1
  36. package/dist/platform/paths.js +61 -48
  37. package/dist/platform/paths.js.map +1 -1
  38. package/dist/platform/shell.js +35 -27
  39. package/dist/platform/shell.js.map +1 -1
  40. package/dist/sidebar/app.d.ts.map +1 -1
  41. package/dist/sidebar/app.js +73 -39
  42. package/dist/sidebar/app.js.map +1 -1
  43. package/dist/sidebar/index.js +4 -2
  44. package/dist/sidebar/index.js.map +1 -1
  45. package/dist/sidebar/input.js +12 -5
  46. package/dist/sidebar/input.js.map +1 -1
  47. package/dist/sidebar/render.js +102 -90
  48. package/dist/sidebar/render.js.map +1 -1
  49. package/dist/terminal/bar-handler.js +9 -7
  50. package/dist/terminal/bar-handler.js.map +1 -1
  51. package/dist/terminal/bar-render.js +6 -2
  52. package/dist/terminal/bar-render.js.map +1 -1
  53. package/dist/terminal/index.js +6 -1
  54. package/dist/terminal/index.js.map +1 -1
  55. package/dist/tmux/commands.js +18 -11
  56. package/dist/tmux/commands.js.map +1 -1
  57. package/dist/tmux/index.js +33 -7
  58. package/dist/tmux/index.js.map +1 -1
  59. package/dist/tmux/pane.js +76 -51
  60. package/dist/tmux/pane.js.map +1 -1
  61. package/dist/types.js +4 -1
  62. package/dist/types.js.map +1 -1
  63. package/dist/utils/async.js +16 -7
  64. package/dist/utils/async.js.map +1 -1
  65. package/dist/utils/errors.js +31 -14
  66. package/dist/utils/errors.js.map +1 -1
  67. package/dist/utils/id.js +19 -10
  68. package/dist/utils/id.js.map +1 -1
  69. package/dist/utils/index.js +65 -6
  70. package/dist/utils/index.js.map +1 -1
  71. package/dist/utils/logger.js +17 -10
  72. package/dist/utils/logger.js.map +1 -1
  73. package/dist/utils/string.js +22 -10
  74. package/dist/utils/string.js.map +1 -1
  75. package/dist/utils/validation.js +28 -13
  76. package/dist/utils/validation.js.map +1 -1
  77. package/package.json +4 -4
  78. package/dist/app.d.ts +0 -52
  79. package/dist/app.d.ts.map +0 -1
  80. package/dist/app.js +0 -318
  81. package/dist/app.js.map +0 -1
  82. package/dist/core/index.d.ts +0 -14
  83. package/dist/core/index.d.ts.map +0 -1
  84. package/dist/core/index.js +0 -14
  85. package/dist/core/index.js.map +0 -1
  86. package/dist/core/session/index.d.ts +0 -7
  87. package/dist/core/session/index.d.ts.map +0 -1
  88. package/dist/core/session/index.js +0 -6
  89. package/dist/core/session/index.js.map +0 -1
  90. package/dist/core/session/session-manager.d.ts +0 -46
  91. package/dist/core/session/session-manager.d.ts.map +0 -1
  92. package/dist/core/session/session-manager.js +0 -245
  93. package/dist/core/session/session-manager.js.map +0 -1
  94. package/dist/core/session/session.d.ts +0 -44
  95. package/dist/core/session/session.d.ts.map +0 -1
  96. package/dist/core/session/session.js +0 -78
  97. package/dist/core/session/session.js.map +0 -1
  98. package/dist/core/terminal/index.d.ts +0 -7
  99. package/dist/core/terminal/index.d.ts.map +0 -1
  100. package/dist/core/terminal/index.js +0 -6
  101. package/dist/core/terminal/index.js.map +0 -1
  102. package/dist/core/terminal/terminal-manager.d.ts +0 -36
  103. package/dist/core/terminal/terminal-manager.d.ts.map +0 -1
  104. package/dist/core/terminal/terminal-manager.js +0 -182
  105. package/dist/core/terminal/terminal-manager.js.map +0 -1
  106. package/dist/core/terminal/terminal.d.ts +0 -27
  107. package/dist/core/terminal/terminal.d.ts.map +0 -1
  108. package/dist/core/terminal/terminal.js +0 -38
  109. package/dist/core/terminal/terminal.js.map +0 -1
  110. package/dist/core/workspace/index.d.ts +0 -7
  111. package/dist/core/workspace/index.d.ts.map +0 -1
  112. package/dist/core/workspace/index.js +0 -6
  113. package/dist/core/workspace/index.js.map +0 -1
  114. package/dist/core/workspace/workspace-manager.d.ts +0 -59
  115. package/dist/core/workspace/workspace-manager.d.ts.map +0 -1
  116. package/dist/core/workspace/workspace-manager.js +0 -224
  117. package/dist/core/workspace/workspace-manager.js.map +0 -1
  118. package/dist/core/workspace/workspace.d.ts +0 -56
  119. package/dist/core/workspace/workspace.d.ts.map +0 -1
  120. package/dist/core/workspace/workspace.js +0 -96
  121. package/dist/core/workspace/workspace.js.map +0 -1
  122. package/dist/core/worktree/index.d.ts +0 -7
  123. package/dist/core/worktree/index.d.ts.map +0 -1
  124. package/dist/core/worktree/index.js +0 -6
  125. package/dist/core/worktree/index.js.map +0 -1
  126. package/dist/core/worktree/worktree-manager.d.ts +0 -47
  127. package/dist/core/worktree/worktree-manager.d.ts.map +0 -1
  128. package/dist/core/worktree/worktree-manager.js +0 -170
  129. package/dist/core/worktree/worktree-manager.js.map +0 -1
  130. package/dist/core/worktree/worktree.d.ts +0 -35
  131. package/dist/core/worktree/worktree.d.ts.map +0 -1
  132. package/dist/core/worktree/worktree.js +0 -50
  133. package/dist/core/worktree/worktree.js.map +0 -1
  134. package/dist/core/worktree-manager.d.ts +0 -26
  135. package/dist/core/worktree-manager.d.ts.map +0 -1
  136. package/dist/core/worktree-manager.js +0 -177
  137. package/dist/core/worktree-manager.js.map +0 -1
  138. package/dist/events/bus.d.ts +0 -76
  139. package/dist/events/bus.d.ts.map +0 -1
  140. package/dist/events/bus.js +0 -223
  141. package/dist/events/bus.js.map +0 -1
  142. package/dist/events/handlers/index.d.ts +0 -28
  143. package/dist/events/handlers/index.d.ts.map +0 -1
  144. package/dist/events/handlers/index.js +0 -44
  145. package/dist/events/handlers/index.js.map +0 -1
  146. package/dist/events/handlers/session-events.d.ts +0 -12
  147. package/dist/events/handlers/session-events.d.ts.map +0 -1
  148. package/dist/events/handlers/session-events.js +0 -38
  149. package/dist/events/handlers/session-events.js.map +0 -1
  150. package/dist/events/handlers/terminal-events.d.ts +0 -12
  151. package/dist/events/handlers/terminal-events.d.ts.map +0 -1
  152. package/dist/events/handlers/terminal-events.js +0 -37
  153. package/dist/events/handlers/terminal-events.js.map +0 -1
  154. package/dist/events/handlers/ui-events.d.ts +0 -11
  155. package/dist/events/handlers/ui-events.d.ts.map +0 -1
  156. package/dist/events/handlers/ui-events.js +0 -202
  157. package/dist/events/handlers/ui-events.js.map +0 -1
  158. package/dist/events/index.d.ts +0 -9
  159. package/dist/events/index.d.ts.map +0 -1
  160. package/dist/events/index.js +0 -10
  161. package/dist/events/index.js.map +0 -1
  162. package/dist/multiplexer/base.d.ts +0 -73
  163. package/dist/multiplexer/base.d.ts.map +0 -1
  164. package/dist/multiplexer/base.js +0 -68
  165. package/dist/multiplexer/base.js.map +0 -1
  166. package/dist/multiplexer/factory.d.ts +0 -28
  167. package/dist/multiplexer/factory.d.ts.map +0 -1
  168. package/dist/multiplexer/factory.js +0 -72
  169. package/dist/multiplexer/factory.js.map +0 -1
  170. package/dist/multiplexer/index.d.ts +0 -14
  171. package/dist/multiplexer/index.d.ts.map +0 -1
  172. package/dist/multiplexer/index.js +0 -15
  173. package/dist/multiplexer/index.js.map +0 -1
  174. package/dist/multiplexer/tmux/index.d.ts +0 -9
  175. package/dist/multiplexer/tmux/index.d.ts.map +0 -1
  176. package/dist/multiplexer/tmux/index.js +0 -7
  177. package/dist/multiplexer/tmux/index.js.map +0 -1
  178. package/dist/multiplexer/tmux/tmux-commands.d.ts +0 -96
  179. package/dist/multiplexer/tmux/tmux-commands.d.ts.map +0 -1
  180. package/dist/multiplexer/tmux/tmux-commands.js +0 -282
  181. package/dist/multiplexer/tmux/tmux-commands.js.map +0 -1
  182. package/dist/multiplexer/tmux/tmux-config.d.ts +0 -57
  183. package/dist/multiplexer/tmux/tmux-config.d.ts.map +0 -1
  184. package/dist/multiplexer/tmux/tmux-config.js +0 -103
  185. package/dist/multiplexer/tmux/tmux-config.js.map +0 -1
  186. package/dist/multiplexer/tmux/tmux-multiplexer.d.ts +0 -94
  187. package/dist/multiplexer/tmux/tmux-multiplexer.d.ts.map +0 -1
  188. package/dist/multiplexer/tmux/tmux-multiplexer.js +0 -302
  189. package/dist/multiplexer/tmux/tmux-multiplexer.js.map +0 -1
  190. package/dist/multiplexer/windows/index.d.ts +0 -5
  191. package/dist/multiplexer/windows/index.d.ts.map +0 -1
  192. package/dist/multiplexer/windows/index.js +0 -5
  193. package/dist/multiplexer/windows/index.js.map +0 -1
  194. package/dist/multiplexer/windows/windows-multiplexer.d.ts +0 -61
  195. package/dist/multiplexer/windows/windows-multiplexer.d.ts.map +0 -1
  196. package/dist/multiplexer/windows/windows-multiplexer.js +0 -151
  197. package/dist/multiplexer/windows/windows-multiplexer.js.map +0 -1
  198. package/dist/services/claude/claude-detector.d.ts +0 -37
  199. package/dist/services/claude/claude-detector.d.ts.map +0 -1
  200. package/dist/services/claude/claude-detector.js +0 -83
  201. package/dist/services/claude/claude-detector.js.map +0 -1
  202. package/dist/services/claude/claude-service.d.ts +0 -57
  203. package/dist/services/claude/claude-service.d.ts.map +0 -1
  204. package/dist/services/claude/claude-service.js +0 -108
  205. package/dist/services/claude/claude-service.js.map +0 -1
  206. package/dist/services/claude/index.d.ts +0 -7
  207. package/dist/services/claude/index.d.ts.map +0 -1
  208. package/dist/services/claude/index.js +0 -6
  209. package/dist/services/claude/index.js.map +0 -1
  210. package/dist/services/git/branch-service.d.ts +0 -64
  211. package/dist/services/git/branch-service.d.ts.map +0 -1
  212. package/dist/services/git/branch-service.js +0 -217
  213. package/dist/services/git/branch-service.js.map +0 -1
  214. package/dist/services/git/git-service.d.ts +0 -44
  215. package/dist/services/git/git-service.d.ts.map +0 -1
  216. package/dist/services/git/git-service.js +0 -145
  217. package/dist/services/git/git-service.js.map +0 -1
  218. package/dist/services/git/index.d.ts +0 -8
  219. package/dist/services/git/index.d.ts.map +0 -1
  220. package/dist/services/git/index.js +0 -7
  221. package/dist/services/git/index.js.map +0 -1
  222. package/dist/services/git/worktree-service.d.ts +0 -61
  223. package/dist/services/git/worktree-service.d.ts.map +0 -1
  224. package/dist/services/git/worktree-service.js +0 -243
  225. package/dist/services/git/worktree-service.js.map +0 -1
  226. package/dist/services/index.d.ts +0 -12
  227. package/dist/services/index.d.ts.map +0 -1
  228. package/dist/services/index.js +0 -12
  229. package/dist/services/index.js.map +0 -1
  230. package/dist/services/process/index.d.ts +0 -8
  231. package/dist/services/process/index.d.ts.map +0 -1
  232. package/dist/services/process/index.js +0 -6
  233. package/dist/services/process/index.js.map +0 -1
  234. package/dist/services/process/process-monitor.d.ts +0 -98
  235. package/dist/services/process/process-monitor.d.ts.map +0 -1
  236. package/dist/services/process/process-monitor.js +0 -173
  237. package/dist/services/process/process-monitor.js.map +0 -1
  238. package/dist/services/process/process-spawner.d.ts +0 -55
  239. package/dist/services/process/process-spawner.d.ts.map +0 -1
  240. package/dist/services/process/process-spawner.js +0 -93
  241. package/dist/services/process/process-spawner.js.map +0 -1
  242. package/dist/sidebar.d.ts +0 -13
  243. package/dist/sidebar.d.ts.map +0 -1
  244. package/dist/sidebar.js +0 -1535
  245. package/dist/sidebar.js.map +0 -1
  246. package/dist/state/actions.d.ts +0 -49
  247. package/dist/state/actions.d.ts.map +0 -1
  248. package/dist/state/actions.js +0 -512
  249. package/dist/state/actions.js.map +0 -1
  250. package/dist/state/index.d.ts +0 -16
  251. package/dist/state/index.d.ts.map +0 -1
  252. package/dist/state/index.js +0 -28
  253. package/dist/state/index.js.map +0 -1
  254. package/dist/state/middleware/index.d.ts +0 -7
  255. package/dist/state/middleware/index.d.ts.map +0 -1
  256. package/dist/state/middleware/index.js +0 -6
  257. package/dist/state/middleware/index.js.map +0 -1
  258. package/dist/state/middleware/logger.d.ts +0 -22
  259. package/dist/state/middleware/logger.d.ts.map +0 -1
  260. package/dist/state/middleware/logger.js +0 -45
  261. package/dist/state/middleware/logger.js.map +0 -1
  262. package/dist/state/middleware/persistence.d.ts +0 -29
  263. package/dist/state/middleware/persistence.d.ts.map +0 -1
  264. package/dist/state/middleware/persistence.js +0 -71
  265. package/dist/state/middleware/persistence.js.map +0 -1
  266. package/dist/state/persistence/file-adapter.d.ts +0 -48
  267. package/dist/state/persistence/file-adapter.d.ts.map +0 -1
  268. package/dist/state/persistence/file-adapter.js +0 -96
  269. package/dist/state/persistence/file-adapter.js.map +0 -1
  270. package/dist/state/persistence/index.d.ts +0 -8
  271. package/dist/state/persistence/index.d.ts.map +0 -1
  272. package/dist/state/persistence/index.js +0 -6
  273. package/dist/state/persistence/index.js.map +0 -1
  274. package/dist/state/persistence/serializer.d.ts +0 -41
  275. package/dist/state/persistence/serializer.d.ts.map +0 -1
  276. package/dist/state/persistence/serializer.js +0 -114
  277. package/dist/state/persistence/serializer.js.map +0 -1
  278. package/dist/state/selectors.d.ts +0 -67
  279. package/dist/state/selectors.d.ts.map +0 -1
  280. package/dist/state/selectors.js +0 -177
  281. package/dist/state/selectors.js.map +0 -1
  282. package/dist/state/store.d.ts +0 -86
  283. package/dist/state/store.d.ts.map +0 -1
  284. package/dist/state/store.js +0 -161
  285. package/dist/state/store.js.map +0 -1
  286. package/dist/state/types.d.ts +0 -269
  287. package/dist/state/types.d.ts.map +0 -1
  288. package/dist/state/types.js +0 -7
  289. package/dist/state/types.js.map +0 -1
  290. package/dist/state.d.ts +0 -53
  291. package/dist/state.d.ts.map +0 -1
  292. package/dist/state.js +0 -101
  293. package/dist/state.js.map +0 -1
  294. package/dist/terminal-manager.d.ts +0 -16
  295. package/dist/terminal-manager.d.ts.map +0 -1
  296. package/dist/terminal-manager.js +0 -364
  297. package/dist/terminal-manager.js.map +0 -1
  298. package/dist/tmux.d.ts +0 -163
  299. package/dist/tmux.d.ts.map +0 -1
  300. package/dist/tmux.js +0 -360
  301. package/dist/tmux.js.map +0 -1
  302. package/dist/types/config.d.ts +0 -103
  303. package/dist/types/config.d.ts.map +0 -1
  304. package/dist/types/config.js +0 -7
  305. package/dist/types/config.js.map +0 -1
  306. package/dist/types/entities.d.ts +0 -88
  307. package/dist/types/entities.d.ts.map +0 -1
  308. package/dist/types/entities.js +0 -8
  309. package/dist/types/entities.js.map +0 -1
  310. package/dist/types/events.d.ts +0 -156
  311. package/dist/types/events.d.ts.map +0 -1
  312. package/dist/types/events.js +0 -8
  313. package/dist/types/events.js.map +0 -1
  314. package/dist/types/index.d.ts +0 -11
  315. package/dist/types/index.d.ts.map +0 -1
  316. package/dist/types/index.js +0 -8
  317. package/dist/types/index.js.map +0 -1
  318. package/dist/types/multiplexer.d.ts +0 -238
  319. package/dist/types/multiplexer.d.ts.map +0 -1
  320. package/dist/types/multiplexer.js +0 -8
  321. package/dist/types/multiplexer.js.map +0 -1
  322. package/dist/ui/components/base.d.ts +0 -155
  323. package/dist/ui/components/base.d.ts.map +0 -1
  324. package/dist/ui/components/base.js +0 -269
  325. package/dist/ui/components/base.js.map +0 -1
  326. package/dist/ui/components/index.d.ts +0 -10
  327. package/dist/ui/components/index.d.ts.map +0 -1
  328. package/dist/ui/components/index.js +0 -10
  329. package/dist/ui/components/index.js.map +0 -1
  330. package/dist/ui/components/input-field.d.ts +0 -98
  331. package/dist/ui/components/input-field.d.ts.map +0 -1
  332. package/dist/ui/components/input-field.js +0 -274
  333. package/dist/ui/components/input-field.js.map +0 -1
  334. package/dist/ui/components/list.d.ts +0 -94
  335. package/dist/ui/components/list.d.ts.map +0 -1
  336. package/dist/ui/components/list.js +0 -294
  337. package/dist/ui/components/list.js.map +0 -1
  338. package/dist/ui/components/modal.d.ts +0 -83
  339. package/dist/ui/components/modal.d.ts.map +0 -1
  340. package/dist/ui/components/modal.js +0 -249
  341. package/dist/ui/components/modal.js.map +0 -1
  342. package/dist/ui/components/tabs.d.ts +0 -97
  343. package/dist/ui/components/tabs.d.ts.map +0 -1
  344. package/dist/ui/components/tabs.js +0 -252
  345. package/dist/ui/components/tabs.js.map +0 -1
  346. package/dist/ui/components/text.d.ts +0 -60
  347. package/dist/ui/components/text.d.ts.map +0 -1
  348. package/dist/ui/components/text.js +0 -224
  349. package/dist/ui/components/text.js.map +0 -1
  350. package/dist/ui/index.d.ts +0 -12
  351. package/dist/ui/index.d.ts.map +0 -1
  352. package/dist/ui/index.js +0 -18
  353. package/dist/ui/index.js.map +0 -1
  354. package/dist/ui/input/index.d.ts +0 -8
  355. package/dist/ui/input/index.d.ts.map +0 -1
  356. package/dist/ui/input/index.js +0 -8
  357. package/dist/ui/input/index.js.map +0 -1
  358. package/dist/ui/input/input-manager.d.ts +0 -83
  359. package/dist/ui/input/input-manager.d.ts.map +0 -1
  360. package/dist/ui/input/input-manager.js +0 -200
  361. package/dist/ui/input/input-manager.js.map +0 -1
  362. package/dist/ui/input/keybindings.d.ts +0 -47
  363. package/dist/ui/input/keybindings.d.ts.map +0 -1
  364. package/dist/ui/input/keybindings.js +0 -168
  365. package/dist/ui/input/keybindings.js.map +0 -1
  366. package/dist/ui/input/keyboard.d.ts +0 -24
  367. package/dist/ui/input/keyboard.d.ts.map +0 -1
  368. package/dist/ui/input/keyboard.js +0 -230
  369. package/dist/ui/input/keyboard.js.map +0 -1
  370. package/dist/ui/input/mouse.d.ts +0 -44
  371. package/dist/ui/input/mouse.d.ts.map +0 -1
  372. package/dist/ui/input/mouse.js +0 -161
  373. package/dist/ui/input/mouse.js.map +0 -1
  374. package/dist/ui/layout/box.d.ts +0 -63
  375. package/dist/ui/layout/box.d.ts.map +0 -1
  376. package/dist/ui/layout/box.js +0 -160
  377. package/dist/ui/layout/box.js.map +0 -1
  378. package/dist/ui/layout/constraints.d.ts +0 -77
  379. package/dist/ui/layout/constraints.d.ts.map +0 -1
  380. package/dist/ui/layout/constraints.js +0 -154
  381. package/dist/ui/layout/constraints.js.map +0 -1
  382. package/dist/ui/layout/flex.d.ts +0 -59
  383. package/dist/ui/layout/flex.d.ts.map +0 -1
  384. package/dist/ui/layout/flex.js +0 -163
  385. package/dist/ui/layout/flex.js.map +0 -1
  386. package/dist/ui/layout/index.d.ts +0 -7
  387. package/dist/ui/layout/index.d.ts.map +0 -1
  388. package/dist/ui/layout/index.js +0 -7
  389. package/dist/ui/layout/index.js.map +0 -1
  390. package/dist/ui/modals/delete-modal.d.ts +0 -27
  391. package/dist/ui/modals/delete-modal.d.ts.map +0 -1
  392. package/dist/ui/modals/delete-modal.js +0 -59
  393. package/dist/ui/modals/delete-modal.js.map +0 -1
  394. package/dist/ui/modals/index.d.ts +0 -7
  395. package/dist/ui/modals/index.d.ts.map +0 -1
  396. package/dist/ui/modals/index.js +0 -7
  397. package/dist/ui/modals/index.js.map +0 -1
  398. package/dist/ui/modals/input-modal.d.ts +0 -66
  399. package/dist/ui/modals/input-modal.d.ts.map +0 -1
  400. package/dist/ui/modals/input-modal.js +0 -185
  401. package/dist/ui/modals/input-modal.js.map +0 -1
  402. package/dist/ui/modals/quit-modal.d.ts +0 -30
  403. package/dist/ui/modals/quit-modal.d.ts.map +0 -1
  404. package/dist/ui/modals/quit-modal.js +0 -65
  405. package/dist/ui/modals/quit-modal.js.map +0 -1
  406. package/dist/ui/renderer/ansi.d.ts +0 -206
  407. package/dist/ui/renderer/ansi.d.ts.map +0 -1
  408. package/dist/ui/renderer/ansi.js +0 -318
  409. package/dist/ui/renderer/ansi.js.map +0 -1
  410. package/dist/ui/renderer/canvas.d.ts +0 -126
  411. package/dist/ui/renderer/canvas.d.ts.map +0 -1
  412. package/dist/ui/renderer/canvas.js +0 -346
  413. package/dist/ui/renderer/canvas.js.map +0 -1
  414. package/dist/ui/renderer/colors.d.ts +0 -65
  415. package/dist/ui/renderer/colors.d.ts.map +0 -1
  416. package/dist/ui/renderer/colors.js +0 -260
  417. package/dist/ui/renderer/colors.js.map +0 -1
  418. package/dist/ui/renderer/index.d.ts +0 -8
  419. package/dist/ui/renderer/index.d.ts.map +0 -1
  420. package/dist/ui/renderer/index.js +0 -8
  421. package/dist/ui/renderer/index.js.map +0 -1
  422. package/dist/ui/renderer/symbols.d.ts +0 -176
  423. package/dist/ui/renderer/symbols.d.ts.map +0 -1
  424. package/dist/ui/renderer/symbols.js +0 -246
  425. package/dist/ui/renderer/symbols.js.map +0 -1
  426. package/dist/ui/views/index.d.ts +0 -7
  427. package/dist/ui/views/index.d.ts.map +0 -1
  428. package/dist/ui/views/index.js +0 -7
  429. package/dist/ui/views/index.js.map +0 -1
  430. package/dist/ui/views/sidebar-view.d.ts +0 -89
  431. package/dist/ui/views/sidebar-view.d.ts.map +0 -1
  432. package/dist/ui/views/sidebar-view.js +0 -259
  433. package/dist/ui/views/sidebar-view.js.map +0 -1
  434. package/dist/ui/views/terminal-bar-view.d.ts +0 -67
  435. package/dist/ui/views/terminal-bar-view.d.ts.map +0 -1
  436. package/dist/ui/views/terminal-bar-view.js +0 -172
  437. package/dist/ui/views/terminal-bar-view.js.map +0 -1
  438. package/dist/ui/views/welcome-view.d.ts +0 -34
  439. package/dist/ui/views/welcome-view.d.ts.map +0 -1
  440. package/dist/ui/views/welcome-view.js +0 -116
  441. package/dist/ui/views/welcome-view.js.map +0 -1
@@ -1,59 +0,0 @@
1
- /**
2
- * Flex Layout
3
- *
4
- * A simplified flex-like layout system for distributing space.
5
- */
6
- import type { Bounds, Size } from './constraints';
7
- export type FlexDirection = 'row' | 'column';
8
- export type FlexAlign = 'start' | 'center' | 'end' | 'stretch';
9
- export type FlexJustify = 'start' | 'center' | 'end' | 'space-between' | 'space-around';
10
- export interface FlexItem {
11
- /** Fixed size (takes priority over flex) */
12
- size?: number;
13
- /** Flex grow factor */
14
- flex?: number;
15
- /** Minimum size */
16
- minSize?: number;
17
- /** Maximum size */
18
- maxSize?: number;
19
- }
20
- export interface FlexConfig {
21
- direction: FlexDirection;
22
- align?: FlexAlign;
23
- justify?: FlexJustify;
24
- gap?: number;
25
- }
26
- export interface FlexResult {
27
- bounds: Bounds;
28
- index: number;
29
- }
30
- /**
31
- * Calculate flex layout
32
- *
33
- * Distributes available space among items according to their flex values
34
- */
35
- export declare function flexLayout(container: Bounds, items: FlexItem[], config: FlexConfig): FlexResult[];
36
- /**
37
- * Simple split layout (two panes, one fixed, one flex)
38
- */
39
- export declare function splitLayout(container: Bounds, direction: FlexDirection, fixedSize: number, fixedFirst?: boolean): {
40
- fixed: Bounds;
41
- flex: Bounds;
42
- };
43
- /**
44
- * Three-pane layout (header, content, footer)
45
- */
46
- export declare function threePartLayout(container: Bounds, headerSize: number, footerSize: number): {
47
- header: Bounds;
48
- content: Bounds;
49
- footer: Bounds;
50
- };
51
- /**
52
- * Center a size within bounds
53
- */
54
- export declare function centerInBounds(container: Bounds, size: Size): Bounds;
55
- /**
56
- * Align bounds within container
57
- */
58
- export declare function alignInBounds(container: Bounds, size: Size, horizontal: 'start' | 'center' | 'end', vertical: 'start' | 'center' | 'end'): Bounds;
59
- //# sourceMappingURL=flex.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flex.d.ts","sourceRoot":"","sources":["../../../src/ui/layout/flex.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAMlD,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,QAAQ,CAAC;AAC7C,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AAC/D,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,eAAe,GAAG,cAAc,CAAC;AAExF,MAAM,WAAW,QAAQ;IACvB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,aAAa,CAAC;IACzB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAMD;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,QAAQ,EAAE,EACjB,MAAM,EAAE,UAAU,GACjB,UAAU,EAAE,CA8Ed;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,MAAM,EACjB,UAAU,GAAE,OAAc,GACzB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAiBjC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAyBrD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,CAOpE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,EACtC,QAAQ,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GACnC,MAAM,CA6BR"}
@@ -1,163 +0,0 @@
1
- /**
2
- * Flex Layout
3
- *
4
- * A simplified flex-like layout system for distributing space.
5
- */
6
- // ============================================================================
7
- // Flex Layout Functions
8
- // ============================================================================
9
- /**
10
- * Calculate flex layout
11
- *
12
- * Distributes available space among items according to their flex values
13
- */
14
- export function flexLayout(container, items, config) {
15
- const { direction, gap = 0 } = config;
16
- const isRow = direction === 'row';
17
- // Get main axis size
18
- const mainAxisSize = isRow ? container.width : container.height;
19
- const crossAxisSize = isRow ? container.height : container.width;
20
- // Calculate total gap space
21
- const totalGapSpace = Math.max(0, (items.length - 1) * gap);
22
- // Available space after gaps
23
- const availableSpace = mainAxisSize - totalGapSpace;
24
- // Calculate fixed and flex totals
25
- let fixedTotal = 0;
26
- let flexTotal = 0;
27
- for (const item of items) {
28
- if (item.size !== undefined) {
29
- fixedTotal += item.size;
30
- }
31
- else {
32
- flexTotal += item.flex ?? 1;
33
- }
34
- }
35
- // Space available for flex items
36
- const flexSpace = Math.max(0, availableSpace - fixedTotal);
37
- // Calculate sizes
38
- const sizes = [];
39
- for (const item of items) {
40
- let size;
41
- if (item.size !== undefined) {
42
- size = item.size;
43
- }
44
- else {
45
- const flexValue = item.flex ?? 1;
46
- size = flexTotal > 0 ? (flexValue / flexTotal) * flexSpace : 0;
47
- }
48
- // Apply constraints
49
- if (item.minSize !== undefined) {
50
- size = Math.max(size, item.minSize);
51
- }
52
- if (item.maxSize !== undefined) {
53
- size = Math.min(size, item.maxSize);
54
- }
55
- sizes.push(Math.floor(size));
56
- }
57
- // Build results
58
- const results = [];
59
- let position = 0;
60
- for (let i = 0; i < items.length; i++) {
61
- const size = sizes[i];
62
- const bounds = isRow
63
- ? {
64
- x: container.x + position,
65
- y: container.y,
66
- width: size,
67
- height: crossAxisSize,
68
- }
69
- : {
70
- x: container.x,
71
- y: container.y + position,
72
- width: crossAxisSize,
73
- height: size,
74
- };
75
- results.push({ bounds, index: i });
76
- position += size + gap;
77
- }
78
- return results;
79
- }
80
- /**
81
- * Simple split layout (two panes, one fixed, one flex)
82
- */
83
- export function splitLayout(container, direction, fixedSize, fixedFirst = true) {
84
- const isRow = direction === 'row';
85
- const mainAxisSize = isRow ? container.width : container.height;
86
- const flexSize = Math.max(0, mainAxisSize - fixedSize);
87
- const firstSize = fixedFirst ? fixedSize : flexSize;
88
- const secondSize = fixedFirst ? flexSize : fixedSize;
89
- const first = isRow
90
- ? { x: container.x, y: container.y, width: firstSize, height: container.height }
91
- : { x: container.x, y: container.y, width: container.width, height: firstSize };
92
- const second = isRow
93
- ? { x: container.x + firstSize, y: container.y, width: secondSize, height: container.height }
94
- : { x: container.x, y: container.y + firstSize, width: container.width, height: secondSize };
95
- return fixedFirst ? { fixed: first, flex: second } : { fixed: second, flex: first };
96
- }
97
- /**
98
- * Three-pane layout (header, content, footer)
99
- */
100
- export function threePartLayout(container, headerSize, footerSize) {
101
- const contentHeight = Math.max(0, container.height - headerSize - footerSize);
102
- const header = {
103
- x: container.x,
104
- y: container.y,
105
- width: container.width,
106
- height: headerSize,
107
- };
108
- const content = {
109
- x: container.x,
110
- y: container.y + headerSize,
111
- width: container.width,
112
- height: contentHeight,
113
- };
114
- const footer = {
115
- x: container.x,
116
- y: container.y + headerSize + contentHeight,
117
- width: container.width,
118
- height: footerSize,
119
- };
120
- return { header, content, footer };
121
- }
122
- /**
123
- * Center a size within bounds
124
- */
125
- export function centerInBounds(container, size) {
126
- return {
127
- x: container.x + Math.floor((container.width - size.width) / 2),
128
- y: container.y + Math.floor((container.height - size.height) / 2),
129
- width: size.width,
130
- height: size.height,
131
- };
132
- }
133
- /**
134
- * Align bounds within container
135
- */
136
- export function alignInBounds(container, size, horizontal, vertical) {
137
- let x;
138
- let y;
139
- switch (horizontal) {
140
- case 'start':
141
- x = container.x;
142
- break;
143
- case 'center':
144
- x = container.x + Math.floor((container.width - size.width) / 2);
145
- break;
146
- case 'end':
147
- x = container.x + container.width - size.width;
148
- break;
149
- }
150
- switch (vertical) {
151
- case 'start':
152
- y = container.y;
153
- break;
154
- case 'center':
155
- y = container.y + Math.floor((container.height - size.height) / 2);
156
- break;
157
- case 'end':
158
- y = container.y + container.height - size.height;
159
- break;
160
- }
161
- return { x, y, width: size.width, height: size.height };
162
- }
163
- //# sourceMappingURL=flex.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flex.js","sourceRoot":"","sources":["../../../src/ui/layout/flex.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Layout Module
3
- */
4
- export { constrainSize, getPreferredSize, fitsConstraints, mergeConstraints, createBounds, containsPoint, boundsIntersect, boundsIntersection, expandBounds, shrinkBounds, getInnerBounds, type Size, type SizeConstraints, type Position, type Bounds, } from './constraints';
5
- export { uniformSpacing, createSpacing, hvSpacing, getHorizontalSpacing, getVerticalSpacing, calculateBox, calculateMinSize, calculateContentSize, getChromeSize, type Spacing, type BoxConfig, type BoxMetrics, } from './box';
6
- export { flexLayout, splitLayout, threePartLayout, centerInBounds, alignInBounds, type FlexDirection, type FlexAlign, type FlexJustify, type FlexItem, type FlexConfig, type FlexResult, } from './flex';
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/layout/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,KAAK,IAAI,EACT,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,MAAM,GACZ,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,cAAc,EACd,aAAa,EACb,SAAS,EACT,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,UAAU,GAChB,MAAM,OAAO,CAAC;AAEf,OAAO,EACL,UAAU,EACV,WAAW,EACX,eAAe,EACf,cAAc,EACd,aAAa,EACb,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,UAAU,GAChB,MAAM,QAAQ,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Layout Module
3
- */
4
- export { constrainSize, getPreferredSize, fitsConstraints, mergeConstraints, createBounds, containsPoint, boundsIntersect, boundsIntersection, expandBounds, shrinkBounds, getInnerBounds, } from './constraints';
5
- export { uniformSpacing, createSpacing, hvSpacing, getHorizontalSpacing, getVerticalSpacing, calculateBox, calculateMinSize, calculateContentSize, getChromeSize, } from './box';
6
- export { flexLayout, splitLayout, threePartLayout, centerInBounds, alignInBounds, } from './flex';
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/layout/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,cAAc,GAKf,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,cAAc,EACd,aAAa,EACb,SAAS,EACT,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,GAId,MAAM,OAAO,CAAC;AAEf,OAAO,EACL,UAAU,EACV,WAAW,EACX,eAAe,EACf,cAAc,EACd,aAAa,GAOd,MAAM,QAAQ,CAAC"}
@@ -1,27 +0,0 @@
1
- /**
2
- * Delete Modal
3
- *
4
- * Confirmation dialog for deleting worktrees or sessions.
5
- */
6
- import { ConfirmModal, type ConfirmModalProps } from '../components/modal';
7
- export interface DeleteModalProps extends Omit<ConfirmModalProps, 'message' | 'confirmLabel'> {
8
- itemType: 'worktree' | 'session';
9
- itemName: string;
10
- sessionCount?: number;
11
- }
12
- export declare class DeleteModal extends ConfirmModal {
13
- constructor(props: DeleteModalProps);
14
- }
15
- /**
16
- * Create a DeleteModal
17
- */
18
- export declare function createDeleteModal(props: DeleteModalProps): DeleteModal;
19
- /**
20
- * Create a delete modal for a worktree
21
- */
22
- export declare function createWorktreeDeleteModal(branchName: string, sessionCount: number): DeleteModal;
23
- /**
24
- * Create a delete modal for a session
25
- */
26
- export declare function createSessionDeleteModal(sessionName: string): DeleteModal;
27
- //# sourceMappingURL=delete-modal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delete-modal.d.ts","sourceRoot":"","sources":["../../../src/ui/modals/delete-modal.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAsB,KAAK,iBAAiB,EAAuB,MAAM,qBAAqB,CAAC;AAMpH,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,SAAS,GAAG,cAAc,CAAC;IAC3F,QAAQ,EAAE,UAAU,GAAG,SAAS,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD,qBAAa,WAAY,SAAQ,YAAY;gBAC/B,KAAK,EAAE,gBAAgB;CAuBpC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,WAAW,CAEtE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,WAAW,CAMb;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAKzE"}
@@ -1,59 +0,0 @@
1
- /**
2
- * Delete Modal
3
- *
4
- * Confirmation dialog for deleting worktrees or sessions.
5
- */
6
- import { ConfirmModal } from '../components/modal';
7
- // ============================================================================
8
- // DeleteModal
9
- // ============================================================================
10
- export class DeleteModal extends ConfirmModal {
11
- constructor(props) {
12
- const { itemType, itemName, sessionCount = 0 } = props;
13
- let message;
14
- if (itemType === 'worktree') {
15
- message = sessionCount > 0
16
- ? `Delete worktree "${itemName}" and its ${sessionCount} session${sessionCount > 1 ? 's' : ''}?`
17
- : `Delete worktree "${itemName}"?`;
18
- }
19
- else {
20
- message = `Delete session "${itemName}"?`;
21
- }
22
- super({
23
- ...props,
24
- title: props.title ?? `Delete ${itemType}`,
25
- message,
26
- confirmLabel: 'Delete',
27
- cancelLabel: 'Cancel',
28
- dangerous: true,
29
- width: props.width ?? 50,
30
- height: props.height ?? 7,
31
- });
32
- }
33
- }
34
- /**
35
- * Create a DeleteModal
36
- */
37
- export function createDeleteModal(props) {
38
- return new DeleteModal(props);
39
- }
40
- /**
41
- * Create a delete modal for a worktree
42
- */
43
- export function createWorktreeDeleteModal(branchName, sessionCount) {
44
- return createDeleteModal({
45
- itemType: 'worktree',
46
- itemName: branchName,
47
- sessionCount,
48
- });
49
- }
50
- /**
51
- * Create a delete modal for a session
52
- */
53
- export function createSessionDeleteModal(sessionName) {
54
- return createDeleteModal({
55
- itemType: 'session',
56
- itemName: sessionName,
57
- });
58
- }
59
- //# sourceMappingURL=delete-modal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delete-modal.js","sourceRoot":"","sources":["../../../src/ui/modals/delete-modal.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAmE,MAAM,qBAAqB,CAAC;AAYpH,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E,MAAM,OAAO,WAAY,SAAQ,YAAY;IAC3C,YAAY,KAAuB;QACjC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC;QAEvD,IAAI,OAAe,CAAC;QACpB,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC5B,OAAO,GAAG,YAAY,GAAG,CAAC;gBACxB,CAAC,CAAC,oBAAoB,QAAQ,aAAa,YAAY,WAAW,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG;gBAChG,CAAC,CAAC,oBAAoB,QAAQ,IAAI,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,mBAAmB,QAAQ,IAAI,CAAC;QAC5C,CAAC;QAED,KAAK,CAAC;YACJ,GAAG,KAAK;YACR,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,UAAU,QAAQ,EAAE;YAC1C,OAAO;YACP,YAAY,EAAE,QAAQ;YACtB,WAAW,EAAE,QAAQ;YACrB,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE;YACxB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC;SAC1B,CAAC,CAAC;IACL,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAuB;IACvD,OAAO,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,UAAkB,EAClB,YAAoB;IAEpB,OAAO,iBAAiB,CAAC;QACvB,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,UAAU;QACpB,YAAY;KACb,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,WAAmB;IAC1D,OAAO,iBAAiB,CAAC;QACvB,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,WAAW;KACtB,CAAC,CAAC;AACL,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Modals Module
3
- */
4
- export { QuitModal, createQuitModal, type QuitAction, type QuitHandler, type QuitModalProps, } from './quit-modal';
5
- export { InputModal, createInputModal, createWorktreeModal, createSessionModal, createRenameModal, type InputModalProps, type InputSubmitHandler, type InputCancelHandler, } from './input-modal';
6
- export { DeleteModal, createDeleteModal, createWorktreeDeleteModal, createSessionDeleteModal, type DeleteModalProps, } from './delete-modal';
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/modals/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,SAAS,EACT,eAAe,EACf,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,yBAAyB,EACzB,wBAAwB,EACxB,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Modals Module
3
- */
4
- export { QuitModal, createQuitModal, } from './quit-modal';
5
- export { InputModal, createInputModal, createWorktreeModal, createSessionModal, createRenameModal, } from './input-modal';
6
- export { DeleteModal, createDeleteModal, createWorktreeDeleteModal, createSessionDeleteModal, } from './delete-modal';
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/modals/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,SAAS,EACT,eAAe,GAIhB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,GAIlB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,yBAAyB,EACzB,wBAAwB,GAEzB,MAAM,gBAAgB,CAAC"}
@@ -1,66 +0,0 @@
1
- /**
2
- * Input Modal
3
- *
4
- * Modal dialog for text input (create/rename).
5
- */
6
- import type { Canvas } from '../renderer';
7
- import type { Bounds } from '../layout';
8
- import { Modal, type ModalProps } from '../components/modal';
9
- import type { KeyEvent } from '../input/keyboard';
10
- export interface InputModalProps extends ModalProps {
11
- label?: string;
12
- placeholder?: string;
13
- initialValue?: string;
14
- validateFn?: (value: string) => string | null;
15
- }
16
- export type InputSubmitHandler = (value: string) => void;
17
- export type InputCancelHandler = () => void;
18
- export declare class InputModal extends Modal {
19
- private label;
20
- private inputField;
21
- private validateFn;
22
- private errorMessage;
23
- private submitHandler;
24
- private cancelHandler;
25
- constructor(props?: InputModalProps);
26
- /**
27
- * Set submit handler
28
- */
29
- onSubmit(handler: InputSubmitHandler): void;
30
- /**
31
- * Set cancel handler
32
- */
33
- onCancel(handler: InputCancelHandler): void;
34
- /**
35
- * Get current value
36
- */
37
- getValue(): string;
38
- /**
39
- * Set value
40
- */
41
- setValue(value: string): void;
42
- /**
43
- * Try to submit
44
- */
45
- private trySubmit;
46
- render(canvas: Canvas, bounds: Bounds): void;
47
- handleKey(event: KeyEvent): boolean;
48
- mount(): void;
49
- }
50
- /**
51
- * Create an InputModal
52
- */
53
- export declare function createInputModal(props?: InputModalProps): InputModal;
54
- /**
55
- * Create a "Create Worktree" modal
56
- */
57
- export declare function createWorktreeModal(): InputModal;
58
- /**
59
- * Create a "Create Session" modal
60
- */
61
- export declare function createSessionModal(branchName: string): InputModal;
62
- /**
63
- * Create a "Rename" modal
64
- */
65
- export declare function createRenameModal(currentName: string, type: string): InputModal;
66
- //# sourceMappingURL=input-modal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-modal.d.ts","sourceRoot":"","sources":["../../../src/ui/modals/input-modal.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAMlD,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CAC/C;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AACzD,MAAM,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC;AAM5C,qBAAa,UAAW,SAAQ,KAAK;IACnC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAAmD;IACrE,OAAO,CAAC,YAAY,CAAuB;IAE3C,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,aAAa,CAAmC;gBAE5C,KAAK,GAAE,eAAoB;IAsBvC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAI3C;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAI3C;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B;;OAEG;IACH,OAAO,CAAC,SAAS;IAiBR,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAwC5C,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO;IAenC,KAAK,IAAI,IAAI;CAKvB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,GAAE,eAAoB,GAAG,UAAU,CAExE;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,UAAU,CAahD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,CAMjE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAU/E"}
@@ -1,185 +0,0 @@
1
- /**
2
- * Input Modal
3
- *
4
- * Modal dialog for text input (create/rename).
5
- */
6
- import { getTheme } from '../renderer/colors';
7
- import { Modal } from '../components/modal';
8
- import { createInputField } from '../components/input-field';
9
- // ============================================================================
10
- // InputModal
11
- // ============================================================================
12
- export class InputModal extends Modal {
13
- label = '';
14
- inputField;
15
- validateFn = null;
16
- errorMessage = null;
17
- submitHandler = null;
18
- cancelHandler = null;
19
- constructor(props = {}) {
20
- super({
21
- ...props,
22
- width: props.width ?? 50,
23
- height: props.height ?? 8,
24
- });
25
- this.label = props.label ?? '';
26
- this.validateFn = props.validateFn ?? null;
27
- // Create input field
28
- this.inputField = createInputField({
29
- value: props.initialValue ?? '',
30
- placeholder: props.placeholder ?? '',
31
- });
32
- this.addChild(this.inputField);
33
- // Set up input handlers
34
- this.inputField.onSubmit((value) => {
35
- this.trySubmit();
36
- });
37
- }
38
- /**
39
- * Set submit handler
40
- */
41
- onSubmit(handler) {
42
- this.submitHandler = handler;
43
- }
44
- /**
45
- * Set cancel handler
46
- */
47
- onCancel(handler) {
48
- this.cancelHandler = handler;
49
- }
50
- /**
51
- * Get current value
52
- */
53
- getValue() {
54
- return this.inputField.getValue();
55
- }
56
- /**
57
- * Set value
58
- */
59
- setValue(value) {
60
- this.inputField.setValue(value);
61
- this.errorMessage = null;
62
- }
63
- /**
64
- * Try to submit
65
- */
66
- trySubmit() {
67
- const value = this.inputField.getValue().trim();
68
- // Validate
69
- if (this.validateFn) {
70
- const error = this.validateFn(value);
71
- if (error) {
72
- this.errorMessage = error;
73
- return;
74
- }
75
- }
76
- this.errorMessage = null;
77
- this.submitHandler?.(value);
78
- this.close();
79
- }
80
- render(canvas, bounds) {
81
- // Call parent render for modal frame
82
- super.render(canvas, bounds);
83
- const theme = getTheme();
84
- const contentBounds = this.getContentBounds();
85
- // Draw label
86
- if (this.label) {
87
- canvas.drawText(contentBounds.x, contentBounds.y, this.label, {
88
- fg: theme.text.fg,
89
- });
90
- }
91
- // Draw input field
92
- const inputY = contentBounds.y + (this.label ? 2 : 0);
93
- const inputBounds = {
94
- x: contentBounds.x,
95
- y: inputY,
96
- width: contentBounds.width,
97
- height: 1,
98
- };
99
- this.inputField.setBounds(inputBounds);
100
- this.inputField.render(canvas, inputBounds);
101
- // Draw error message
102
- if (this.errorMessage) {
103
- const errorY = inputY + 2;
104
- canvas.drawText(contentBounds.x, errorY, this.errorMessage, {
105
- fg: theme.error.fg,
106
- });
107
- }
108
- // Draw hint
109
- const hintY = contentBounds.y + contentBounds.height - 1;
110
- canvas.drawText(contentBounds.x, hintY, 'Enter: confirm Esc: cancel', {
111
- fg: theme.textMuted.fg,
112
- });
113
- }
114
- handleKey(event) {
115
- switch (event.key) {
116
- case 'enter':
117
- this.trySubmit();
118
- return true;
119
- case 'escape':
120
- this.cancelHandler?.();
121
- this.close();
122
- return true;
123
- }
124
- // Delegate to input field
125
- return this.inputField.handleKey(event);
126
- }
127
- mount() {
128
- super.mount();
129
- // Focus input field when mounted
130
- this.inputField.focus();
131
- }
132
- }
133
- /**
134
- * Create an InputModal
135
- */
136
- export function createInputModal(props = {}) {
137
- return new InputModal(props);
138
- }
139
- // ============================================================================
140
- // Specialized Input Modals
141
- // ============================================================================
142
- /**
143
- * Create a "Create Worktree" modal
144
- */
145
- export function createWorktreeModal() {
146
- return createInputModal({
147
- title: 'Create Worktree',
148
- label: 'Branch name:',
149
- placeholder: 'feature/my-branch',
150
- validateFn: (value) => {
151
- if (!value)
152
- return 'Branch name is required';
153
- if (!/^[a-zA-Z0-9._/-]+$/.test(value)) {
154
- return 'Invalid branch name';
155
- }
156
- return null;
157
- },
158
- });
159
- }
160
- /**
161
- * Create a "Create Session" modal
162
- */
163
- export function createSessionModal(branchName) {
164
- return createInputModal({
165
- title: 'Create Session',
166
- label: 'Session name (optional):',
167
- placeholder: branchName,
168
- });
169
- }
170
- /**
171
- * Create a "Rename" modal
172
- */
173
- export function createRenameModal(currentName, type) {
174
- return createInputModal({
175
- title: `Rename ${type}`,
176
- label: 'New name:',
177
- initialValue: currentName,
178
- validateFn: (value) => {
179
- if (!value)
180
- return 'Name is required';
181
- return null;
182
- },
183
- });
184
- }
185
- //# sourceMappingURL=input-modal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-modal.js","sourceRoot":"","sources":["../../../src/ui/modals/input-modal.ts"],"names":[],"mappings":"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"}