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,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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"}