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,269 +0,0 @@
1
- /**
2
- * Base Component
3
- *
4
- * Abstract base class for all UI components.
5
- */
6
- // ============================================================================
7
- // Base Component Class
8
- // ============================================================================
9
- export class Component {
10
- id;
11
- visible = true;
12
- focused = false;
13
- disabled = false;
14
- style = {};
15
- constraints = {};
16
- bounds = { x: 0, y: 0, width: 0, height: 0 };
17
- mounted = false;
18
- constructor(props = {}) {
19
- this.id = props.id ?? generateComponentId();
20
- this.visible = props.visible ?? true;
21
- this.focused = props.focused ?? false;
22
- this.disabled = props.disabled ?? false;
23
- this.style = props.style ?? {};
24
- this.constraints = props.constraints ?? {};
25
- }
26
- // ============================================================================
27
- // Lifecycle Methods
28
- // ============================================================================
29
- /**
30
- * Called when component is added to the UI tree
31
- */
32
- mount() {
33
- this.mounted = true;
34
- this.onMount();
35
- }
36
- /**
37
- * Called when component is removed from the UI tree
38
- */
39
- unmount() {
40
- this.onUnmount();
41
- this.mounted = false;
42
- }
43
- /**
44
- * Override to perform setup on mount
45
- */
46
- onMount() { }
47
- /**
48
- * Override to perform cleanup on unmount
49
- */
50
- onUnmount() { }
51
- /**
52
- * Get the minimum size of this component
53
- */
54
- getMinSize() {
55
- return { width: 0, height: 0 };
56
- }
57
- /**
58
- * Set the bounds of this component
59
- */
60
- setBounds(bounds) {
61
- this.bounds = bounds;
62
- }
63
- /**
64
- * Get the current bounds
65
- */
66
- getBounds() {
67
- return this.bounds;
68
- }
69
- // ============================================================================
70
- // Input Handling
71
- // ============================================================================
72
- /**
73
- * Handle a keyboard event
74
- * @returns true if the event was handled
75
- */
76
- handleKey(event) {
77
- return false;
78
- }
79
- /**
80
- * Handle a mouse event
81
- * @returns true if the event was handled
82
- */
83
- handleMouse(event) {
84
- return false;
85
- }
86
- // ============================================================================
87
- // Hit Testing
88
- // ============================================================================
89
- /**
90
- * Test if a point hits this component
91
- */
92
- hitTest(x, y) {
93
- if (!this.visible)
94
- return null;
95
- if (!this.containsPoint(x, y))
96
- return null;
97
- return {
98
- component: this,
99
- x: x - this.bounds.x,
100
- y: y - this.bounds.y,
101
- };
102
- }
103
- /**
104
- * Check if a point is within this component's bounds
105
- */
106
- containsPoint(x, y) {
107
- return (x >= this.bounds.x &&
108
- x < this.bounds.x + this.bounds.width &&
109
- y >= this.bounds.y &&
110
- y < this.bounds.y + this.bounds.height);
111
- }
112
- // ============================================================================
113
- // Focus Management
114
- // ============================================================================
115
- /**
116
- * Request focus for this component
117
- */
118
- focus() {
119
- this.focused = true;
120
- this.onFocus();
121
- }
122
- /**
123
- * Remove focus from this component
124
- */
125
- blur() {
126
- this.focused = false;
127
- this.onBlur();
128
- }
129
- /**
130
- * Override to handle focus gain
131
- */
132
- onFocus() { }
133
- /**
134
- * Override to handle focus loss
135
- */
136
- onBlur() { }
137
- /**
138
- * Check if this component can receive focus
139
- */
140
- isFocusable() {
141
- return this.visible && !this.disabled;
142
- }
143
- // ============================================================================
144
- // State
145
- // ============================================================================
146
- /**
147
- * Enable the component
148
- */
149
- enable() {
150
- this.disabled = false;
151
- }
152
- /**
153
- * Disable the component
154
- */
155
- disable() {
156
- this.disabled = true;
157
- if (this.focused) {
158
- this.blur();
159
- }
160
- }
161
- /**
162
- * Show the component
163
- */
164
- show() {
165
- this.visible = true;
166
- }
167
- /**
168
- * Hide the component
169
- */
170
- hide() {
171
- this.visible = false;
172
- if (this.focused) {
173
- this.blur();
174
- }
175
- }
176
- }
177
- // ============================================================================
178
- // Container Component
179
- // ============================================================================
180
- export class ContainerComponent extends Component {
181
- children = [];
182
- /**
183
- * Add a child component
184
- */
185
- addChild(child) {
186
- this.children.push(child);
187
- if (this.mounted) {
188
- child.mount();
189
- }
190
- }
191
- /**
192
- * Remove a child component
193
- */
194
- removeChild(child) {
195
- const index = this.children.indexOf(child);
196
- if (index !== -1) {
197
- if (this.mounted) {
198
- child.unmount();
199
- }
200
- this.children.splice(index, 1);
201
- }
202
- }
203
- /**
204
- * Remove all children
205
- */
206
- clearChildren() {
207
- for (const child of this.children) {
208
- if (this.mounted) {
209
- child.unmount();
210
- }
211
- }
212
- this.children = [];
213
- }
214
- /**
215
- * Get child by ID
216
- */
217
- getChild(id) {
218
- return this.children.find((c) => c.id === id);
219
- }
220
- /**
221
- * Get all children
222
- */
223
- getChildren() {
224
- return this.children;
225
- }
226
- mount() {
227
- super.mount();
228
- for (const child of this.children) {
229
- child.mount();
230
- }
231
- }
232
- unmount() {
233
- for (const child of this.children) {
234
- child.unmount();
235
- }
236
- super.unmount();
237
- }
238
- hitTest(x, y) {
239
- if (!this.visible)
240
- return null;
241
- if (!this.containsPoint(x, y))
242
- return null;
243
- // Check children in reverse order (top to bottom)
244
- for (let i = this.children.length - 1; i >= 0; i--) {
245
- const result = this.children[i].hitTest(x, y);
246
- if (result)
247
- return result;
248
- }
249
- return {
250
- component: this,
251
- x: x - this.bounds.x,
252
- y: y - this.bounds.y,
253
- };
254
- }
255
- }
256
- // ============================================================================
257
- // Helpers
258
- // ============================================================================
259
- let componentIdCounter = 0;
260
- function generateComponentId() {
261
- return `component-${++componentIdCounter}`;
262
- }
263
- /**
264
- * Reset component ID counter (for testing)
265
- */
266
- export function resetComponentIdCounter() {
267
- componentIdCounter = 0;
268
- }
269
- //# sourceMappingURL=base.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/ui/components/base.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Components Module
3
- */
4
- export { Component, ContainerComponent, resetComponentIdCounter, type HitResult, type ComponentProps, } from './base';
5
- export { Text, createText, truncate, truncateWithEllipsis, wrapText, padText, type TextAlign, type TextProps, } from './text';
6
- export { List, createList, type ListItem, type ListProps, type ListSelectHandler, } from './list';
7
- export { Tabs, createTabs, type Tab, type TabsProps, type TabSelectHandler, type TabCloseHandler, } from './tabs';
8
- export { InputField, createInputField, type InputFieldProps, type InputChangeHandler, type InputSubmitHandler, } from './input-field';
9
- export { Modal, createModal, ConfirmModal, createConfirmModal, type ModalProps, type ModalCloseHandler, type ConfirmModalProps, type ConfirmHandler, } from './modal';
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/components/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,uBAAuB,EACvB,KAAK,SAAS,EACd,KAAK,cAAc,GACpB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACL,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,oBAAoB,EACpB,QAAQ,EACR,OAAO,EACP,KAAK,SAAS,EACd,KAAK,SAAS,GACf,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACL,IAAI,EACJ,UAAU,EACV,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,iBAAiB,GACvB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACL,IAAI,EACJ,UAAU,EACV,KAAK,GAAG,EACR,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,EACL,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,cAAc,GACpB,MAAM,SAAS,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Components Module
3
- */
4
- export { Component, ContainerComponent, resetComponentIdCounter, } from './base';
5
- export { Text, createText, truncate, truncateWithEllipsis, wrapText, padText, } from './text';
6
- export { List, createList, } from './list';
7
- export { Tabs, createTabs, } from './tabs';
8
- export { InputField, createInputField, } from './input-field';
9
- export { Modal, createModal, ConfirmModal, createConfirmModal, } from './modal';
10
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/components/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,uBAAuB,GAGxB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACL,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,oBAAoB,EACpB,QAAQ,EACR,OAAO,GAGR,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACL,IAAI,EACJ,UAAU,GAIX,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACL,IAAI,EACJ,UAAU,GAKX,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACL,UAAU,EACV,gBAAgB,GAIjB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,EACL,WAAW,EACX,YAAY,EACZ,kBAAkB,GAKnB,MAAM,SAAS,CAAC"}
@@ -1,98 +0,0 @@
1
- /**
2
- * Input Field Component
3
- *
4
- * A text input field with cursor.
5
- */
6
- import type { Canvas } from '../renderer';
7
- import type { Bounds, Size } from '../layout';
8
- import { Component, type ComponentProps } from './base';
9
- import type { KeyEvent } from '../input/keyboard';
10
- export interface InputFieldProps extends ComponentProps {
11
- value?: string;
12
- placeholder?: string;
13
- maxLength?: number;
14
- password?: boolean;
15
- }
16
- export type InputChangeHandler = (value: string) => void;
17
- export type InputSubmitHandler = (value: string) => void;
18
- export declare class InputField extends Component {
19
- private value;
20
- private placeholder;
21
- private maxLength;
22
- private password;
23
- private cursorPos;
24
- private scrollOffset;
25
- private changeHandler;
26
- private submitHandler;
27
- constructor(props?: InputFieldProps);
28
- /**
29
- * Set the input value
30
- */
31
- setValue(value: string): void;
32
- /**
33
- * Get the input value
34
- */
35
- getValue(): string;
36
- /**
37
- * Clear the input
38
- */
39
- clear(): void;
40
- /**
41
- * Set change handler
42
- */
43
- onChange(handler: InputChangeHandler): void;
44
- /**
45
- * Set submit handler
46
- */
47
- onSubmit(handler: InputSubmitHandler): void;
48
- /**
49
- * Insert text at cursor
50
- */
51
- insertText(text: string): void;
52
- /**
53
- * Delete character before cursor
54
- */
55
- deleteCharBefore(): void;
56
- /**
57
- * Delete character after cursor
58
- */
59
- deleteCharAfter(): void;
60
- /**
61
- * Delete word before cursor
62
- */
63
- deleteWordBefore(): void;
64
- /**
65
- * Move cursor left
66
- */
67
- moveCursorLeft(): void;
68
- /**
69
- * Move cursor right
70
- */
71
- moveCursorRight(): void;
72
- /**
73
- * Move cursor to start
74
- */
75
- moveCursorToStart(): void;
76
- /**
77
- * Move cursor to end
78
- */
79
- moveCursorToEnd(): void;
80
- /**
81
- * Ensure cursor is visible by adjusting scroll
82
- */
83
- private ensureCursorVisible;
84
- /**
85
- * Submit the input
86
- */
87
- submit(): void;
88
- getPreferredSize(): Size;
89
- getMinSize(): Size;
90
- render(canvas: Canvas, bounds: Bounds): void;
91
- handleKey(event: KeyEvent): boolean;
92
- isFocusable(): boolean;
93
- }
94
- /**
95
- * Create an InputField component
96
- */
97
- export declare function createInputField(props?: InputFieldProps): InputField;
98
- //# sourceMappingURL=input-field.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-field.d.ts","sourceRoot":"","sources":["../../../src/ui/components/input-field.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAS,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAMlD,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AACzD,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAMzD,qBAAa,UAAW,SAAQ,SAAS;IACvC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,YAAY,CAAa;IAEjC,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,aAAa,CAAmC;gBAE5C,KAAK,GAAE,eAAoB;IASvC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAI3C;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAI3C;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAa9B;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAWxB;;OAEG;IACH,eAAe,IAAI,IAAI;IASvB;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAgBxB;;OAEG;IACH,cAAc,IAAI,IAAI;IAOtB;;OAEG;IACH,eAAe,IAAI,IAAI;IAOvB;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAKzB;;OAEG;IACH,eAAe,IAAI,IAAI;IAKvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAW3B;;OAEG;IACH,MAAM,IAAI,IAAI;IAId,gBAAgB,IAAI,IAAI;IAOxB,UAAU,IAAI,IAAI;IAIlB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAsDnC,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO;IA4CnC,WAAW,IAAI,OAAO;CAGhC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,GAAE,eAAoB,GAAG,UAAU,CAExE"}
@@ -1,274 +0,0 @@
1
- /**
2
- * Input Field Component
3
- *
4
- * A text input field with cursor.
5
- */
6
- import { getTheme } from '../renderer/colors';
7
- import { Component } from './base';
8
- // ============================================================================
9
- // InputField Component
10
- // ============================================================================
11
- export class InputField extends Component {
12
- value = '';
13
- placeholder = '';
14
- maxLength = 256;
15
- password = false;
16
- cursorPos = 0;
17
- scrollOffset = 0;
18
- changeHandler = null;
19
- submitHandler = null;
20
- constructor(props = {}) {
21
- super(props);
22
- this.value = props.value ?? '';
23
- this.placeholder = props.placeholder ?? '';
24
- this.maxLength = props.maxLength ?? 256;
25
- this.password = props.password ?? false;
26
- this.cursorPos = this.value.length;
27
- }
28
- /**
29
- * Set the input value
30
- */
31
- setValue(value) {
32
- this.value = value.substring(0, this.maxLength);
33
- this.cursorPos = Math.min(this.cursorPos, this.value.length);
34
- }
35
- /**
36
- * Get the input value
37
- */
38
- getValue() {
39
- return this.value;
40
- }
41
- /**
42
- * Clear the input
43
- */
44
- clear() {
45
- this.value = '';
46
- this.cursorPos = 0;
47
- this.scrollOffset = 0;
48
- this.changeHandler?.(this.value);
49
- }
50
- /**
51
- * Set change handler
52
- */
53
- onChange(handler) {
54
- this.changeHandler = handler;
55
- }
56
- /**
57
- * Set submit handler
58
- */
59
- onSubmit(handler) {
60
- this.submitHandler = handler;
61
- }
62
- /**
63
- * Insert text at cursor
64
- */
65
- insertText(text) {
66
- const remaining = this.maxLength - this.value.length;
67
- const toInsert = text.substring(0, remaining);
68
- this.value =
69
- this.value.substring(0, this.cursorPos) +
70
- toInsert +
71
- this.value.substring(this.cursorPos);
72
- this.cursorPos += toInsert.length;
73
- this.ensureCursorVisible();
74
- this.changeHandler?.(this.value);
75
- }
76
- /**
77
- * Delete character before cursor
78
- */
79
- deleteCharBefore() {
80
- if (this.cursorPos > 0) {
81
- this.value =
82
- this.value.substring(0, this.cursorPos - 1) +
83
- this.value.substring(this.cursorPos);
84
- this.cursorPos--;
85
- this.ensureCursorVisible();
86
- this.changeHandler?.(this.value);
87
- }
88
- }
89
- /**
90
- * Delete character after cursor
91
- */
92
- deleteCharAfter() {
93
- if (this.cursorPos < this.value.length) {
94
- this.value =
95
- this.value.substring(0, this.cursorPos) +
96
- this.value.substring(this.cursorPos + 1);
97
- this.changeHandler?.(this.value);
98
- }
99
- }
100
- /**
101
- * Delete word before cursor
102
- */
103
- deleteWordBefore() {
104
- let pos = this.cursorPos;
105
- // Skip trailing spaces
106
- while (pos > 0 && this.value[pos - 1] === ' ') {
107
- pos--;
108
- }
109
- // Skip word characters
110
- while (pos > 0 && this.value[pos - 1] !== ' ') {
111
- pos--;
112
- }
113
- this.value = this.value.substring(0, pos) + this.value.substring(this.cursorPos);
114
- this.cursorPos = pos;
115
- this.ensureCursorVisible();
116
- this.changeHandler?.(this.value);
117
- }
118
- /**
119
- * Move cursor left
120
- */
121
- moveCursorLeft() {
122
- if (this.cursorPos > 0) {
123
- this.cursorPos--;
124
- this.ensureCursorVisible();
125
- }
126
- }
127
- /**
128
- * Move cursor right
129
- */
130
- moveCursorRight() {
131
- if (this.cursorPos < this.value.length) {
132
- this.cursorPos++;
133
- this.ensureCursorVisible();
134
- }
135
- }
136
- /**
137
- * Move cursor to start
138
- */
139
- moveCursorToStart() {
140
- this.cursorPos = 0;
141
- this.scrollOffset = 0;
142
- }
143
- /**
144
- * Move cursor to end
145
- */
146
- moveCursorToEnd() {
147
- this.cursorPos = this.value.length;
148
- this.ensureCursorVisible();
149
- }
150
- /**
151
- * Ensure cursor is visible by adjusting scroll
152
- */
153
- ensureCursorVisible() {
154
- const visibleWidth = this.bounds.width - 2; // -2 for border
155
- if (visibleWidth <= 0)
156
- return;
157
- if (this.cursorPos < this.scrollOffset) {
158
- this.scrollOffset = this.cursorPos;
159
- }
160
- else if (this.cursorPos >= this.scrollOffset + visibleWidth) {
161
- this.scrollOffset = this.cursorPos - visibleWidth + 1;
162
- }
163
- }
164
- /**
165
- * Submit the input
166
- */
167
- submit() {
168
- this.submitHandler?.(this.value);
169
- }
170
- getPreferredSize() {
171
- return {
172
- width: Math.max(20, this.value.length + 4),
173
- height: 1,
174
- };
175
- }
176
- getMinSize() {
177
- return { width: 5, height: 1 };
178
- }
179
- render(canvas, bounds) {
180
- if (!this.visible || bounds.width < 3)
181
- return;
182
- const theme = getTheme();
183
- const contentWidth = bounds.width;
184
- // Determine text to display
185
- let displayValue = this.password
186
- ? '*'.repeat(this.value.length)
187
- : this.value;
188
- const showPlaceholder = displayValue.length === 0 && !this.focused;
189
- if (showPlaceholder) {
190
- displayValue = this.placeholder;
191
- }
192
- // Apply scroll offset
193
- const visibleText = displayValue.substring(this.scrollOffset, this.scrollOffset + contentWidth);
194
- // Determine style
195
- const style = this.focused
196
- ? { fg: theme.text.fg }
197
- : showPlaceholder
198
- ? { fg: theme.textMuted.fg }
199
- : { fg: theme.text.fg };
200
- // Draw background
201
- canvas.drawText(bounds.x, bounds.y, ' '.repeat(contentWidth), {
202
- bg: this.focused ? theme.inputFocus.bg : theme.inputBg.bg,
203
- });
204
- // Draw text
205
- canvas.drawText(bounds.x, bounds.y, visibleText, {
206
- ...style,
207
- bg: this.focused ? theme.inputFocus.bg : theme.inputBg.bg,
208
- });
209
- // Draw cursor if focused
210
- if (this.focused) {
211
- const cursorX = bounds.x + (this.cursorPos - this.scrollOffset);
212
- if (cursorX >= bounds.x && cursorX < bounds.x + contentWidth) {
213
- const charAtCursor = this.value[this.cursorPos] || ' ';
214
- const displayChar = this.password ? '*' : charAtCursor;
215
- canvas.setCell(cursorX, bounds.y, displayChar, {
216
- fg: theme.textInverse.fg,
217
- bg: theme.text.fg,
218
- });
219
- }
220
- }
221
- }
222
- handleKey(event) {
223
- if (!this.focused)
224
- return false;
225
- switch (event.key) {
226
- case 'enter':
227
- this.submit();
228
- return true;
229
- case 'backspace':
230
- this.deleteCharBefore();
231
- return true;
232
- case 'delete':
233
- this.deleteCharAfter();
234
- return true;
235
- case 'ctrl+w':
236
- this.deleteWordBefore();
237
- return true;
238
- case 'ctrl+u':
239
- this.clear();
240
- return true;
241
- case 'left':
242
- this.moveCursorLeft();
243
- return true;
244
- case 'right':
245
- this.moveCursorRight();
246
- return true;
247
- case 'home':
248
- case 'ctrl+a':
249
- this.moveCursorToStart();
250
- return true;
251
- case 'end':
252
- case 'ctrl+e':
253
- this.moveCursorToEnd();
254
- return true;
255
- default:
256
- // Insert printable characters
257
- if (event.key.length === 1 && !event.modifiers.ctrl && !event.modifiers.alt) {
258
- this.insertText(event.key);
259
- return true;
260
- }
261
- }
262
- return false;
263
- }
264
- isFocusable() {
265
- return this.visible && !this.disabled;
266
- }
267
- }
268
- /**
269
- * Create an InputField component
270
- */
271
- export function createInputField(props = {}) {
272
- return new InputField(props);
273
- }
274
- //# sourceMappingURL=input-field.js.map