@navios/commander-tui 1.0.0

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 (348) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +275 -0
  3. package/coverage/__tests__/utils/factories.ts.html +1147 -0
  4. package/coverage/__tests__/utils/index.html +131 -0
  5. package/coverage/__tests__/utils/render-utils.tsx.html +202 -0
  6. package/coverage/base.css +224 -0
  7. package/coverage/block-navigation.js +87 -0
  8. package/coverage/clover.xml +959 -0
  9. package/coverage/components/filter/filter_bar.tsx.html +322 -0
  10. package/coverage/components/filter/index.html +116 -0
  11. package/coverage/components/log/index.html +131 -0
  12. package/coverage/components/log/index.ts.html +88 -0
  13. package/coverage/components/log/log_message.tsx.html +391 -0
  14. package/coverage/components/prompt/index.html +116 -0
  15. package/coverage/components/prompt/prompt_renderer.tsx.html +1123 -0
  16. package/coverage/components/screen/index.html +131 -0
  17. package/coverage/components/screen/loading_message.tsx.html +217 -0
  18. package/coverage/components/screen/progress_message.tsx.html +265 -0
  19. package/coverage/components/sidebar/index.html +146 -0
  20. package/coverage/components/sidebar/sidebar.tsx.html +391 -0
  21. package/coverage/components/sidebar/sidebar_item.tsx.html +235 -0
  22. package/coverage/components/sidebar/sidebar_separator.tsx.html +124 -0
  23. package/coverage/context/index.html +131 -0
  24. package/coverage/context/index.ts.html +88 -0
  25. package/coverage/context/logger_context.tsx.html +412 -0
  26. package/coverage/coverage-final.json +55 -0
  27. package/coverage/favicon.png +0 -0
  28. package/coverage/filter/filter_engine.ts.html +424 -0
  29. package/coverage/filter/index.html +116 -0
  30. package/coverage/hooks/index.html +131 -0
  31. package/coverage/hooks/index.ts.html +88 -0
  32. package/coverage/hooks/use_theme.ts.html +121 -0
  33. package/coverage/index.html +356 -0
  34. package/coverage/keyboard/index.html +116 -0
  35. package/coverage/keyboard/keyboard_manager.ts.html +784 -0
  36. package/coverage/prettify.css +1 -0
  37. package/coverage/prettify.js +2 -0
  38. package/coverage/schemas/index.html +161 -0
  39. package/coverage/schemas/index.ts.html +94 -0
  40. package/coverage/schemas/logger-options.ts.html +124 -0
  41. package/coverage/schemas/prompt-options.ts.html +112 -0
  42. package/coverage/schemas/screen-options.ts.html +127 -0
  43. package/coverage/services/index.html +146 -0
  44. package/coverage/services/logger.ts.html +1192 -0
  45. package/coverage/services/prompt.ts.html +568 -0
  46. package/coverage/services/screen.ts.html +1804 -0
  47. package/coverage/sort-arrow-sprite.png +0 -0
  48. package/coverage/sorter.js +210 -0
  49. package/coverage/themes/dark.ts.html +604 -0
  50. package/coverage/themes/high-contrast.ts.html +619 -0
  51. package/coverage/themes/index.html +176 -0
  52. package/coverage/themes/index.ts.html +97 -0
  53. package/coverage/themes/light.ts.html +601 -0
  54. package/coverage/themes/utils.ts.html +334 -0
  55. package/coverage/tokens/index.html +161 -0
  56. package/coverage/tokens/index.ts.html +94 -0
  57. package/coverage/tokens/logger.ts.html +115 -0
  58. package/coverage/tokens/prompt.ts.html +115 -0
  59. package/coverage/tokens/screen.ts.html +115 -0
  60. package/coverage/types/file.types.ts.html +265 -0
  61. package/coverage/types/filter.types.ts.html +238 -0
  62. package/coverage/types/index.html +236 -0
  63. package/coverage/types/index.ts.html +151 -0
  64. package/coverage/types/keyboard.types.ts.html +364 -0
  65. package/coverage/types/log.types.ts.html +268 -0
  66. package/coverage/types/message.types.ts.html +445 -0
  67. package/coverage/types/prompt.types.ts.html +403 -0
  68. package/coverage/types/screen.types.ts.html +451 -0
  69. package/coverage/types/theme.types.ts.html +841 -0
  70. package/coverage/utils/colors/file-colors.ts.html +112 -0
  71. package/coverage/utils/colors/helpers.ts.html +235 -0
  72. package/coverage/utils/colors/index.html +221 -0
  73. package/coverage/utils/colors/index.ts.html +145 -0
  74. package/coverage/utils/colors/log-colors.ts.html +253 -0
  75. package/coverage/utils/colors/progress-colors.ts.html +160 -0
  76. package/coverage/utils/colors/prompt-colors.ts.html +175 -0
  77. package/coverage/utils/colors/sidebar-colors.ts.html +241 -0
  78. package/coverage/utils/colors/table-colors.ts.html +118 -0
  79. package/coverage/utils/filetype.ts.html +277 -0
  80. package/coverage/utils/format.ts.html +241 -0
  81. package/coverage/utils/index.html +161 -0
  82. package/coverage/utils/index.ts.html +118 -0
  83. package/coverage/utils/stdout-printer.ts.html +523 -0
  84. package/dist/src/components/file/file_log.d.ts +35 -0
  85. package/dist/src/components/file/file_log.d.ts.map +1 -0
  86. package/dist/src/components/file/index.d.ts +2 -0
  87. package/dist/src/components/file/index.d.ts.map +1 -0
  88. package/dist/src/components/filter/filter_bar.d.ts +10 -0
  89. package/dist/src/components/filter/filter_bar.d.ts.map +1 -0
  90. package/dist/src/components/filter/index.d.ts +2 -0
  91. package/dist/src/components/filter/index.d.ts.map +1 -0
  92. package/dist/src/components/help/help_overlay.d.ts +10 -0
  93. package/dist/src/components/help/help_overlay.d.ts.map +1 -0
  94. package/dist/src/components/help/index.d.ts +2 -0
  95. package/dist/src/components/help/index.d.ts.map +1 -0
  96. package/dist/src/components/index.d.ts +27 -0
  97. package/dist/src/components/index.d.ts.map +1 -0
  98. package/dist/src/components/log/debug_log.d.ts +3 -0
  99. package/dist/src/components/log/debug_log.d.ts.map +1 -0
  100. package/dist/src/components/log/error_log.d.ts +3 -0
  101. package/dist/src/components/log/error_log.d.ts.map +1 -0
  102. package/dist/src/components/log/fatal_log.d.ts +3 -0
  103. package/dist/src/components/log/fatal_log.d.ts.map +1 -0
  104. package/dist/src/components/log/index.d.ts +9 -0
  105. package/dist/src/components/log/index.d.ts.map +1 -0
  106. package/dist/src/components/log/info_log.d.ts +3 -0
  107. package/dist/src/components/log/info_log.d.ts.map +1 -0
  108. package/dist/src/components/log/log_message.d.ts +33 -0
  109. package/dist/src/components/log/log_message.d.ts.map +1 -0
  110. package/dist/src/components/log/success_log.d.ts +3 -0
  111. package/dist/src/components/log/success_log.d.ts.map +1 -0
  112. package/dist/src/components/log/trace_log.d.ts +3 -0
  113. package/dist/src/components/log/trace_log.d.ts.map +1 -0
  114. package/dist/src/components/log/warning_log.d.ts +3 -0
  115. package/dist/src/components/log/warning_log.d.ts.map +1 -0
  116. package/dist/src/components/prompt/index.d.ts +3 -0
  117. package/dist/src/components/prompt/index.d.ts.map +1 -0
  118. package/dist/src/components/prompt/prompt_renderer.d.ts +6 -0
  119. package/dist/src/components/prompt/prompt_renderer.d.ts.map +1 -0
  120. package/dist/src/components/screen/group_renderer.d.ts +19 -0
  121. package/dist/src/components/screen/group_renderer.d.ts.map +1 -0
  122. package/dist/src/components/screen/index.d.ts +13 -0
  123. package/dist/src/components/screen/index.d.ts.map +1 -0
  124. package/dist/src/components/screen/loading_message.d.ts +6 -0
  125. package/dist/src/components/screen/loading_message.d.ts.map +1 -0
  126. package/dist/src/components/screen/message_renderer.d.ts +8 -0
  127. package/dist/src/components/screen/message_renderer.d.ts.map +1 -0
  128. package/dist/src/components/screen/progress_message.d.ts +8 -0
  129. package/dist/src/components/screen/progress_message.d.ts.map +1 -0
  130. package/dist/src/components/screen/screen_bridge.d.ts +20 -0
  131. package/dist/src/components/screen/screen_bridge.d.ts.map +1 -0
  132. package/dist/src/components/screen/table_message.d.ts +6 -0
  133. package/dist/src/components/screen/table_message.d.ts.map +1 -0
  134. package/dist/src/components/screen_manager_bridge.d.ts +11 -0
  135. package/dist/src/components/screen_manager_bridge.d.ts.map +1 -0
  136. package/dist/src/components/sidebar/index.d.ts +6 -0
  137. package/dist/src/components/sidebar/index.d.ts.map +1 -0
  138. package/dist/src/components/sidebar/sidebar.d.ts +18 -0
  139. package/dist/src/components/sidebar/sidebar.d.ts.map +1 -0
  140. package/dist/src/components/sidebar/sidebar_item.d.ts +14 -0
  141. package/dist/src/components/sidebar/sidebar_item.d.ts.map +1 -0
  142. package/dist/src/components/sidebar/sidebar_separator.d.ts +2 -0
  143. package/dist/src/components/sidebar/sidebar_separator.d.ts.map +1 -0
  144. package/dist/src/context/logger_context.d.ts +60 -0
  145. package/dist/src/context/logger_context.d.ts.map +1 -0
  146. package/dist/src/filter/filter_engine.d.ts +20 -0
  147. package/dist/src/filter/filter_engine.d.ts.map +1 -0
  148. package/dist/src/filter/index.d.ts +4 -0
  149. package/dist/src/filter/index.d.ts.map +1 -0
  150. package/dist/src/hooks/index.d.ts +2 -0
  151. package/dist/src/hooks/index.d.ts.map +1 -0
  152. package/dist/src/hooks/use_theme.d.ts +7 -0
  153. package/dist/src/hooks/use_theme.d.ts.map +1 -0
  154. package/dist/src/index.d.ts +88 -0
  155. package/dist/src/index.d.ts.map +1 -0
  156. package/dist/src/keyboard/create_bindings.d.ts +31 -0
  157. package/dist/src/keyboard/create_bindings.d.ts.map +1 -0
  158. package/dist/src/keyboard/index.d.ts +12 -0
  159. package/dist/src/keyboard/index.d.ts.map +1 -0
  160. package/dist/src/keyboard/keyboard_manager.d.ts +69 -0
  161. package/dist/src/keyboard/keyboard_manager.d.ts.map +1 -0
  162. package/dist/src/services/index.d.ts +5 -0
  163. package/dist/src/services/index.d.ts.map +1 -0
  164. package/dist/src/services/logger.d.ts +61 -0
  165. package/dist/src/services/logger.d.ts.map +1 -0
  166. package/dist/src/services/prompt.d.ts +37 -0
  167. package/dist/src/services/prompt.d.ts.map +1 -0
  168. package/dist/src/services/screen.d.ts +165 -0
  169. package/dist/src/services/screen.d.ts.map +1 -0
  170. package/dist/src/services/screen_manager.d.ts +124 -0
  171. package/dist/src/services/screen_manager.d.ts.map +1 -0
  172. package/dist/src/themes/dark.d.ts +7 -0
  173. package/dist/src/themes/dark.d.ts.map +1 -0
  174. package/dist/src/themes/high-contrast.d.ts +7 -0
  175. package/dist/src/themes/high-contrast.d.ts.map +1 -0
  176. package/dist/src/themes/index.d.ts +18 -0
  177. package/dist/src/themes/index.d.ts.map +1 -0
  178. package/dist/src/themes/light.d.ts +6 -0
  179. package/dist/src/themes/light.d.ts.map +1 -0
  180. package/dist/src/themes/utils.d.ts +22 -0
  181. package/dist/src/themes/utils.d.ts.map +1 -0
  182. package/dist/src/types/file.types.d.ts +40 -0
  183. package/dist/src/types/file.types.d.ts.map +1 -0
  184. package/dist/src/types/filter.types.d.ts +31 -0
  185. package/dist/src/types/filter.types.d.ts.map +1 -0
  186. package/dist/src/types/index.d.ts +81 -0
  187. package/dist/src/types/index.d.ts.map +1 -0
  188. package/dist/src/types/keyboard.types.d.ts +83 -0
  189. package/dist/src/types/keyboard.types.d.ts.map +1 -0
  190. package/dist/src/types/log.types.d.ts +32 -0
  191. package/dist/src/types/log.types.d.ts.map +1 -0
  192. package/dist/src/types/message.types.d.ts +91 -0
  193. package/dist/src/types/message.types.d.ts.map +1 -0
  194. package/dist/src/types/prompt.types.d.ts +89 -0
  195. package/dist/src/types/prompt.types.d.ts.map +1 -0
  196. package/dist/src/types/screen.types.d.ts +85 -0
  197. package/dist/src/types/screen.types.d.ts.map +1 -0
  198. package/dist/src/types/theme.types.d.ts +216 -0
  199. package/dist/src/types/theme.types.d.ts.map +1 -0
  200. package/dist/src/utils/colors/file-colors.d.ts +10 -0
  201. package/dist/src/utils/colors/file-colors.d.ts.map +1 -0
  202. package/dist/src/utils/colors/helpers.d.ts +29 -0
  203. package/dist/src/utils/colors/helpers.d.ts.map +1 -0
  204. package/dist/src/utils/colors/index.d.ts +13 -0
  205. package/dist/src/utils/colors/index.d.ts.map +1 -0
  206. package/dist/src/utils/colors/log-colors.d.ts +15 -0
  207. package/dist/src/utils/colors/log-colors.d.ts.map +1 -0
  208. package/dist/src/utils/colors/progress-colors.d.ts +25 -0
  209. package/dist/src/utils/colors/progress-colors.d.ts.map +1 -0
  210. package/dist/src/utils/colors/prompt-colors.d.ts +22 -0
  211. package/dist/src/utils/colors/prompt-colors.d.ts.map +1 -0
  212. package/dist/src/utils/colors/sidebar-colors.d.ts +50 -0
  213. package/dist/src/utils/colors/sidebar-colors.d.ts.map +1 -0
  214. package/dist/src/utils/colors/table-colors.d.ts +12 -0
  215. package/dist/src/utils/colors/table-colors.d.ts.map +1 -0
  216. package/dist/src/utils/filetype.d.ts +19 -0
  217. package/dist/src/utils/filetype.d.ts.map +1 -0
  218. package/dist/src/utils/format.d.ts +9 -0
  219. package/dist/src/utils/format.d.ts.map +1 -0
  220. package/dist/src/utils/index.d.ts +20 -0
  221. package/dist/src/utils/index.d.ts.map +1 -0
  222. package/dist/src/utils/stdout-printer.d.ts +10 -0
  223. package/dist/src/utils/stdout-printer.d.ts.map +1 -0
  224. package/dist/tsconfig.lib.tsbuildinfo +1 -0
  225. package/dist/tsconfig.tsbuildinfo +1 -0
  226. package/dist/tsdown.config.d.mts +5 -0
  227. package/dist/tsdown.config.d.mts.map +1 -0
  228. package/dist/vitest.config.d.mts +3 -0
  229. package/dist/vitest.config.d.mts.map +1 -0
  230. package/lib/index.cjs +6349 -0
  231. package/lib/index.cjs.map +1 -0
  232. package/lib/index.d.cts +1720 -0
  233. package/lib/index.d.cts.map +1 -0
  234. package/lib/index.d.mts +1720 -0
  235. package/lib/index.d.mts.map +1 -0
  236. package/lib/index.mjs +6264 -0
  237. package/lib/index.mjs.map +1 -0
  238. package/lib/screen_manager_bridge-BpDgVu3e.cjs +3357 -0
  239. package/lib/screen_manager_bridge-BpDgVu3e.cjs.map +1 -0
  240. package/lib/screen_manager_bridge-CkV7637i.cjs +3 -0
  241. package/lib/screen_manager_bridge-DN2J6_k1.mjs +3 -0
  242. package/lib/screen_manager_bridge-Dfg4QUrl.mjs +3034 -0
  243. package/lib/screen_manager_bridge-Dfg4QUrl.mjs.map +1 -0
  244. package/package.json +43 -0
  245. package/project.json +60 -0
  246. package/src/__tests__/components/__snapshots__/filter_bar.spec.tsx.snap +2245 -0
  247. package/src/__tests__/components/__snapshots__/loading_message.spec.tsx.snap +1382 -0
  248. package/src/__tests__/components/__snapshots__/log_message.spec.tsx.snap +3169 -0
  249. package/src/__tests__/components/__snapshots__/progress_message.spec.tsx.snap +1743 -0
  250. package/src/__tests__/components/__snapshots__/prompt_renderer.spec.tsx.snap +3135 -0
  251. package/src/__tests__/components/__snapshots__/sidebar.spec.tsx.snap +2617 -0
  252. package/src/__tests__/components/filter_bar.spec.tsx +190 -0
  253. package/src/__tests__/components/loading_message.spec.tsx +110 -0
  254. package/src/__tests__/components/log_message.spec.tsx +166 -0
  255. package/src/__tests__/components/progress_message.spec.tsx +147 -0
  256. package/src/__tests__/components/prompt_renderer.spec.tsx +274 -0
  257. package/src/__tests__/components/sidebar.spec.tsx +305 -0
  258. package/src/__tests__/filter/filter_engine.spec.ts +325 -0
  259. package/src/__tests__/keyboard/keyboard_manager.spec.ts +557 -0
  260. package/src/__tests__/mocks/scm-mock.ts +5 -0
  261. package/src/__tests__/services/logger.spec.ts +630 -0
  262. package/src/__tests__/services/prompt.spec.ts +411 -0
  263. package/src/__tests__/services/screen.spec.ts +721 -0
  264. package/src/__tests__/setup.ts +43 -0
  265. package/src/__tests__/utils/factories.ts +354 -0
  266. package/src/__tests__/utils/filetype.spec.ts +195 -0
  267. package/src/__tests__/utils/format.spec.ts +178 -0
  268. package/src/__tests__/utils/render-utils.tsx +39 -0
  269. package/src/__tests__/utils/test-container.ts +48 -0
  270. package/src/components/file/file_log.tsx +241 -0
  271. package/src/components/file/index.ts +1 -0
  272. package/src/components/filter/filter_bar.tsx +79 -0
  273. package/src/components/filter/index.ts +1 -0
  274. package/src/components/help/help_overlay.tsx +100 -0
  275. package/src/components/help/index.ts +1 -0
  276. package/src/components/index.ts +15 -0
  277. package/src/components/log/index.ts +1 -0
  278. package/src/components/log/log_message.tsx +102 -0
  279. package/src/components/prompt/index.ts +2 -0
  280. package/src/components/prompt/prompt_renderer.tsx +346 -0
  281. package/src/components/screen/group_renderer.tsx +64 -0
  282. package/src/components/screen/index.ts +6 -0
  283. package/src/components/screen/loading_message.tsx +44 -0
  284. package/src/components/screen/message_renderer.tsx +108 -0
  285. package/src/components/screen/progress_message.tsx +60 -0
  286. package/src/components/screen/screen_bridge.tsx +149 -0
  287. package/src/components/screen/table_message.tsx +57 -0
  288. package/src/components/screen_manager_bridge.tsx +245 -0
  289. package/src/components/sidebar/index.ts +3 -0
  290. package/src/components/sidebar/sidebar.tsx +102 -0
  291. package/src/components/sidebar/sidebar_item.tsx +50 -0
  292. package/src/components/sidebar/sidebar_separator.tsx +13 -0
  293. package/src/context/index.ts +1 -0
  294. package/src/context/logger_context.tsx +109 -0
  295. package/src/factories/index.ts +1 -0
  296. package/src/factories/screen.factory.ts +22 -0
  297. package/src/filter/filter_engine.ts +113 -0
  298. package/src/filter/index.ts +1 -0
  299. package/src/hooks/index.ts +1 -0
  300. package/src/hooks/use_theme.ts +12 -0
  301. package/src/index.ts +64 -0
  302. package/src/keyboard/create_bindings.ts +457 -0
  303. package/src/keyboard/index.ts +2 -0
  304. package/src/keyboard/keyboard_manager.ts +233 -0
  305. package/src/overrides/console.logger.override.ts +61 -0
  306. package/src/overrides/index.ts +1 -0
  307. package/src/schemas/index.ts +3 -0
  308. package/src/schemas/logger-options.ts +13 -0
  309. package/src/schemas/prompt-options.ts +9 -0
  310. package/src/schemas/screen-options.ts +14 -0
  311. package/src/services/index.ts +4 -0
  312. package/src/services/logger.ts +369 -0
  313. package/src/services/prompt.ts +169 -0
  314. package/src/services/screen.ts +590 -0
  315. package/src/services/screen_manager.tsx +390 -0
  316. package/src/themes/dark.ts +173 -0
  317. package/src/themes/high-contrast.ts +178 -0
  318. package/src/themes/index.ts +4 -0
  319. package/src/themes/light.ts +172 -0
  320. package/src/themes/utils.ts +83 -0
  321. package/src/tokens/index.ts +3 -0
  322. package/src/tokens/logger.ts +10 -0
  323. package/src/tokens/prompt.ts +10 -0
  324. package/src/tokens/screen.ts +10 -0
  325. package/src/types/file.types.ts +60 -0
  326. package/src/types/filter.types.ts +51 -0
  327. package/src/types/index.ts +22 -0
  328. package/src/types/keyboard.types.ts +93 -0
  329. package/src/types/log.types.ts +61 -0
  330. package/src/types/message.types.ts +120 -0
  331. package/src/types/prompt.types.ts +106 -0
  332. package/src/types/screen.types.ts +124 -0
  333. package/src/types/theme.types.ts +252 -0
  334. package/src/utils/colors/file-colors.ts +9 -0
  335. package/src/utils/colors/helpers.ts +50 -0
  336. package/src/utils/colors/index.ts +20 -0
  337. package/src/utils/colors/log-colors.ts +56 -0
  338. package/src/utils/colors/progress-colors.ts +25 -0
  339. package/src/utils/colors/prompt-colors.ts +30 -0
  340. package/src/utils/colors/sidebar-colors.ts +52 -0
  341. package/src/utils/colors/table-colors.ts +11 -0
  342. package/src/utils/filetype.ts +64 -0
  343. package/src/utils/format.ts +52 -0
  344. package/src/utils/index.ts +11 -0
  345. package/src/utils/stdout-printer.ts +255 -0
  346. package/tsconfig.json +14 -0
  347. package/tsdown.config.mts +34 -0
  348. package/vitest.config.mts +10 -0
@@ -0,0 +1,12 @@
1
+ export { KeyboardManager, formatKeyBinding } from './keyboard_manager.ts'
2
+ export { createDefaultBindings, handlePrintableInput } from './create_bindings.ts'
3
+ export type {
4
+ KeyEvent,
5
+ KeyBinding,
6
+ KeyboardContext,
7
+ KeyBindingsConfig,
8
+ KeyBindingCategory,
9
+ KeyBindingCondition,
10
+ KeyHandler,
11
+ } from '../types/keyboard.types.ts'
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/keyboard/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACnF,YAAY,EACV,QAAQ,EACR,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,UAAU,GACX,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,69 @@
1
+ import type {
2
+ KeyEvent,
3
+ KeyBinding,
4
+ KeyboardContext,
5
+ KeyBindingsConfig,
6
+ KeyBindingCategory,
7
+ } from '../types/keyboard.types.ts'
8
+ /**
9
+ * Manages keyboard bindings and dispatches key events to handlers.
10
+ */
11
+ export declare class KeyboardManager {
12
+ private bindings
13
+ private disabled
14
+ constructor(config?: KeyBindingsConfig)
15
+ /**
16
+ * Add bindings to the manager.
17
+ */
18
+ addBindings(bindings: KeyBinding[]): void
19
+ /**
20
+ * Remove a binding by key name.
21
+ */
22
+ removeBinding(key: string): void
23
+ /**
24
+ * Disable a key (prevents it from being matched).
25
+ */
26
+ disableKey(key: string): void
27
+ /**
28
+ * Enable a previously disabled key.
29
+ */
30
+ enableKey(key: string): void
31
+ /**
32
+ * Handle a key event, dispatching to the appropriate handler.
33
+ * Returns true if a handler consumed the event.
34
+ */
35
+ handleKey(key: KeyEvent, context: KeyboardContext): boolean
36
+ /**
37
+ * Get all bindings for display in help overlay.
38
+ */
39
+ getBindingsForHelp(): KeyBinding[]
40
+ /**
41
+ * Get bindings grouped by category.
42
+ */
43
+ getBindingsByCategory(): Record<KeyBindingCategory, KeyBinding[]>
44
+ /**
45
+ * Find a matching binding for the given key and context.
46
+ */
47
+ private findMatchingBinding
48
+ /**
49
+ * Check if a key event matches a binding's key specification.
50
+ */
51
+ private keyMatches
52
+ /**
53
+ * Check if context matches a binding's condition.
54
+ */
55
+ private conditionMatches
56
+ /**
57
+ * Check if a binding is disabled.
58
+ */
59
+ private isDisabled
60
+ /**
61
+ * Sort bindings by priority (higher first).
62
+ */
63
+ private sortBindings
64
+ }
65
+ /**
66
+ * Format a key binding for display.
67
+ */
68
+ export declare function formatKeyBinding(binding: KeyBinding): string
69
+ //# sourceMappingURL=keyboard_manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyboard_manager.d.ts","sourceRoot":"","sources":["../../../src/keyboard/keyboard_manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,4BAA4B,CAAC;AAEpC;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,QAAQ,CAA0B;gBAE9B,MAAM,CAAC,EAAE,iBAAiB;IAatC;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI;IAKzC;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAOhC;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI7B;;OAEG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI5B;;;OAGG;IACH,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO;IAS3D;;OAEG;IACH,kBAAkB,IAAI,UAAU,EAAE;IAIlC;;OAEG;IACH,qBAAqB,IAAI,MAAM,CAAC,kBAAkB,EAAE,UAAU,EAAE,CAAC;IAkBjE;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;OAEG;IACH,OAAO,CAAC,UAAU;IAiBlB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmDxB;;OAEG;IACH,OAAO,CAAC,UAAU;IAKlB;;OAEG;IACH,OAAO,CAAC,YAAY;CAGrB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAsC5D"}
@@ -0,0 +1,5 @@
1
+ export { ScreenManager } from './screen_manager.tsx'
2
+ export { Screen } from './screen.ts'
3
+ export { Logger } from './logger.ts'
4
+ export { Prompt } from './prompt.ts'
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,61 @@
1
+ import type { LogLevel } from '../types/index.ts'
2
+ import type { LoadingHandle, ProgressHandle, PromiseOptions } from '../types/index.ts'
3
+
4
+ import type { Screen } from './screen.ts'
5
+ export interface LoggerOptions {
6
+ context?: string
7
+ enabledLevels?: LogLevel[]
8
+ }
9
+ export declare class Logger {
10
+ private screen
11
+ private context?
12
+ private enabledLevels
13
+ constructor(screen: Screen, options?: LoggerOptions | string)
14
+ private isLevelEnabled
15
+ trace(msg: string | object, label?: string): this
16
+ debug(msg: string | object, label?: string): this
17
+ info(msg: string | object, label?: string): this
18
+ success(msg: string | object, label?: string): this
19
+ warn(msg: string | object, label?: string): this
20
+ error(msg: string | object, label?: string): this
21
+ fatal(msg: string | object, label?: string): this
22
+ private log
23
+ file(path: string, content: string): this
24
+ diff(path: string, diffContent: string, view?: 'unified' | 'split'): this
25
+ fileError(path: string, content: string, errorLines: number[], startLine?: number): this
26
+ /**
27
+ * Sonner-like promise handling
28
+ */
29
+ promise<T>(promise: Promise<T>, options: PromiseOptions<T>): Promise<T>
30
+ /**
31
+ * Create a loading message with manual resolution
32
+ */
33
+ loading(message: string): LoadingHandle
34
+ /**
35
+ * Create a progress bar with manual updates
36
+ */
37
+ progress(
38
+ label: string,
39
+ options: {
40
+ total: number
41
+ },
42
+ ): ProgressHandle
43
+ /**
44
+ * Start a collapsible log group
45
+ */
46
+ group(label: string): this
47
+ /**
48
+ * End the current log group
49
+ */
50
+ groupEnd(): this
51
+ /**
52
+ * Display tabular data
53
+ */
54
+ table(
55
+ data: Record<string, unknown>[],
56
+ options?: {
57
+ title?: string
58
+ },
59
+ ): this
60
+ }
61
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/services/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EASV,aAAa,EACb,cAAc,EACd,cAAc,EACf,MAAM,mBAAmB,CAAC;AAQ3B,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;CAC5B;AAID,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,aAAa,CAAgB;gBAEzB,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM;IAa5D,OAAO,CAAC,cAAc;IAQtB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAKjD,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAIjD,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAIhD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAInD,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAIhD,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAIjD,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAIjD,OAAO,CAAC,GAAG;IAuBX,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAgBzC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,IAAI;IAiBzE,SAAS,CACP,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAAE,EACpB,SAAS,GAAE,MAAU,GACpB,IAAI;IAsBP;;OAEG;IACG,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IA6C7E;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa;IAgCvC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc;IAyCnE;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAa1B;;OAEG;IACH,QAAQ,IAAI,IAAI;IAiBhB;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAyB3E"}
@@ -0,0 +1,37 @@
1
+ import type {
2
+ ChoiceOptions,
3
+ ConfirmOptions,
4
+ InputOptions,
5
+ MultiChoiceOptions,
6
+ } from '../types/index.ts'
7
+
8
+ import type { Screen } from './screen.ts'
9
+ /**
10
+ * Prompt class for interactive user input.
11
+ * Similar to Logger, but for prompts that require user interaction.
12
+ */
13
+ export declare class Prompt {
14
+ private screen
15
+ constructor(screen: Screen)
16
+ /**
17
+ * Display a choice prompt and wait for user selection.
18
+ * Returns the selected value (or input text if an input option was selected).
19
+ */
20
+ choice(options: ChoiceOptions): Promise<string>
21
+ /**
22
+ * Display a confirmation prompt and wait for user response.
23
+ * Returns true for confirm, false for cancel.
24
+ */
25
+ confirm(options: ConfirmOptions): Promise<boolean>
26
+ /**
27
+ * Display a text input prompt and wait for user input.
28
+ * Returns the entered text.
29
+ */
30
+ input(options: InputOptions): Promise<string>
31
+ /**
32
+ * Display a multi-select choice prompt.
33
+ * Returns an array of selected values.
34
+ */
35
+ multiChoice(options: MultiChoiceOptions): Promise<string[]>
36
+ }
37
+ //# sourceMappingURL=prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/services/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,YAAY,EACZ,kBAAkB,EAKnB,MAAM,mBAAmB,CAAC;AAE3B;;;GAGG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAI1B;;;OAGG;IACG,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IA0BrD;;;OAGG;IACG,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BxD;;;OAGG;IACG,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBnD;;;OAGG;IACG,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAoClE"}
@@ -0,0 +1,165 @@
1
+ import type {
2
+ ScreenOptions,
3
+ ScreenStatus,
4
+ MessageData,
5
+ LoadingMessageData,
6
+ ProgressMessageData,
7
+ PromptData,
8
+ } from '../types/index.ts'
9
+
10
+ import type { ScreenManager } from './screen_manager.tsx'
11
+ export declare class Screen {
12
+ private id
13
+ private name
14
+ private icon?
15
+ private badgeCount
16
+ private status
17
+ private hidden
18
+ private messages
19
+ private manager
20
+ private changeListeners
21
+ private printFn
22
+ private hasPrinted
23
+ private promptQueue
24
+ private activePrompt
25
+ constructor(id: string, options: ScreenOptions)
26
+ /**
27
+ * Internal: Set the manager reference
28
+ */
29
+ _setManager(manager: ScreenManager): void
30
+ /**
31
+ * Internal: Set the print function for stdout output
32
+ */
33
+ _setPrintFn(fn: (messages: MessageData[], name: string, isError: boolean) => void): void
34
+ getId(): string
35
+ getName(): string
36
+ getIcon(): string | undefined
37
+ getBadgeCount(): number
38
+ setBadgeCount(count: number): this
39
+ isHidden(): boolean
40
+ setHidden(hidden: boolean): this
41
+ show(): this
42
+ hide(): this
43
+ getStatus(): ScreenStatus
44
+ /**
45
+ * Set screen status. When success/fail and TUI is not bound, prints to stdout/stderr
46
+ */
47
+ setStatus(status: ScreenStatus): this
48
+ /**
49
+ * Check if this screen is complete (success or fail)
50
+ */
51
+ isComplete(): boolean
52
+ /**
53
+ * Check if this screen has been printed to console
54
+ */
55
+ hasPrintedToConsole(): boolean
56
+ /**
57
+ * Force print to console (called when TUI unbinds)
58
+ */
59
+ _flushToConsole(): void
60
+ /**
61
+ * Get all messages for rendering
62
+ */
63
+ getMessages(): MessageData[]
64
+ /**
65
+ * Add a message to the screen (internal use by Logger)
66
+ */
67
+ addMessage(message: MessageData): void
68
+ /**
69
+ * Update a loading message (internal use by Logger)
70
+ */
71
+ updateMessage(id: string, updates: Partial<LoadingMessageData>): void
72
+ /**
73
+ * Update a progress message (internal use by Logger)
74
+ */
75
+ updateProgressMessage(id: string, updates: Partial<ProgressMessageData>): void
76
+ /**
77
+ * Clear all messages
78
+ */
79
+ clear(): this
80
+ /**
81
+ * Add a prompt to the queue (internal use by Prompt class)
82
+ * Returns a promise that resolves when the user responds
83
+ */
84
+ _addPrompt(prompt: PromptData): Promise<string | boolean | string[]>
85
+ /**
86
+ * Resolve a prompt with its default value
87
+ */
88
+ private resolvePromptWithDefault
89
+ /**
90
+ * Get the currently active prompt (for rendering)
91
+ */
92
+ getActivePrompt(): PromptData | null
93
+ /**
94
+ * Check if this screen has an active prompt
95
+ */
96
+ hasActivePrompt(): boolean
97
+ /**
98
+ * Update prompt selection (for keyboard navigation)
99
+ */
100
+ updatePromptSelection(index: number): void
101
+ /**
102
+ * Navigate prompt selection up
103
+ */
104
+ promptNavigateUp(): void
105
+ /**
106
+ * Navigate prompt selection down
107
+ */
108
+ promptNavigateDown(): void
109
+ /**
110
+ * Toggle left/right for confirm prompts
111
+ */
112
+ promptNavigateLeft(): void
113
+ promptNavigateRight(): void
114
+ /**
115
+ * Toggle selection for multiChoice prompts
116
+ */
117
+ promptToggleSelection(): void
118
+ /**
119
+ * Enter input mode for choice prompts (if current selection allows input)
120
+ * or for input prompts (always)
121
+ */
122
+ promptEnterInputMode(): boolean
123
+ /**
124
+ * Exit input mode for choice prompts
125
+ */
126
+ promptExitInputMode(): void
127
+ /**
128
+ * Check if prompt is in input mode
129
+ */
130
+ isPromptInInputMode(): boolean
131
+ /**
132
+ * Update input value for choice prompts
133
+ */
134
+ promptUpdateInput(value: string): void
135
+ /**
136
+ * Append character to input
137
+ */
138
+ promptAppendInput(char: string): void
139
+ /**
140
+ * Delete last character from input
141
+ */
142
+ promptDeleteLastChar(): void
143
+ /**
144
+ * Check if multiChoice prompt can be submitted (meets minSelect requirement)
145
+ */
146
+ canSubmitPrompt(): boolean
147
+ /**
148
+ * Submit the current prompt selection
149
+ */
150
+ promptSubmit(): void
151
+ /**
152
+ * Activate the next prompt in the queue
153
+ */
154
+ private activateNextPrompt
155
+ /**
156
+ * Register a change listener for re-renders
157
+ */
158
+ onChange(listener: () => void): () => void
159
+ private notifyChange
160
+ /**
161
+ * Print all messages to stdout/stderr with ANSI colors
162
+ */
163
+ private printToConsole
164
+ }
165
+ //# sourceMappingURL=screen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screen.d.ts","sourceRoot":"","sources":["../../../src/services/screen.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ import type { ScreenOptions, BindOptions, FocusArea, Theme } from '../types/index.ts'
2
+
3
+ import { Screen } from './screen.ts'
4
+ export declare class ScreenManager {
5
+ private screens
6
+ private screenOrder
7
+ private activeScreenId
8
+ private renderer
9
+ private root
10
+ private isBound
11
+ private changeListeners
12
+ private bindOptions
13
+ private autoCloseTimer
14
+ private theme
15
+ focusArea: FocusArea
16
+ selectedIndex: number
17
+ /**
18
+ * Create a new screen and return it
19
+ */
20
+ createScreen(options: ScreenOptions): Screen
21
+ /**
22
+ * Remove a screen dynamically
23
+ */
24
+ removeScreen(screen: Screen): void
25
+ /**
26
+ * Non-blocking bind - starts TUI rendering in background
27
+ */
28
+ bind(options?: BindOptions): Promise<void>
29
+ /**
30
+ * Get the configured theme
31
+ */
32
+ getTheme(): Theme | undefined
33
+ /**
34
+ * Stop TUI rendering and cleanup
35
+ * Flushes all completed screens to stdout/stderr
36
+ */
37
+ unbind(): void
38
+ /**
39
+ * Print all completed screens that haven't been printed yet
40
+ */
41
+ private flushCompletedScreens
42
+ /**
43
+ * Check if TUI is currently bound
44
+ */
45
+ isTuiBound(): boolean
46
+ /**
47
+ * Called by Screen when a prompt becomes active
48
+ * Focuses the screen and switches to content area
49
+ */
50
+ onScreenPromptActivated(screen: Screen): void
51
+ /**
52
+ * Check if any screen has an active prompt
53
+ */
54
+ hasActivePrompt(): boolean
55
+ /**
56
+ * Get the screen with an active prompt (if any)
57
+ */
58
+ getScreenWithActivePrompt(): Screen | null
59
+ /**
60
+ * Called by Screen when visibility changes
61
+ * Handles switching active screen if needed
62
+ */
63
+ onScreenVisibilityChanged(screen: Screen): void
64
+ /**
65
+ * Called by Screen when status becomes success/fail
66
+ * Moves completed screens to end of sidebar list
67
+ */
68
+ onScreenCompleted(screen: Screen): void
69
+ /**
70
+ * Check if all screens are successful and start auto-close timer if enabled
71
+ */
72
+ private checkAutoClose
73
+ /**
74
+ * Get visible screens in display order (excludes hidden screens)
75
+ */
76
+ getScreens(): Screen[]
77
+ /**
78
+ * Get all screens in display order (includes hidden screens)
79
+ */
80
+ getAllScreens(): Screen[]
81
+ /**
82
+ * Get the active screen
83
+ */
84
+ getActiveScreen(): Screen | null
85
+ /**
86
+ * Set the active screen
87
+ */
88
+ setActiveScreen(screen: Screen): void
89
+ /**
90
+ * Get bind options
91
+ */
92
+ getBindOptions(): BindOptions
93
+ /**
94
+ * Set focus area (sidebar or content)
95
+ */
96
+ setFocusArea(area: FocusArea): void
97
+ /**
98
+ * Set selected index in sidebar
99
+ */
100
+ setSelectedIndex(index: number): void
101
+ /**
102
+ * Navigate sidebar up
103
+ */
104
+ navigateUp(): void
105
+ /**
106
+ * Navigate sidebar down
107
+ */
108
+ navigateDown(): void
109
+ /**
110
+ * Select the currently highlighted screen
111
+ */
112
+ selectCurrent(): void
113
+ /**
114
+ * Toggle focus between sidebar and content
115
+ */
116
+ toggleFocus(): void
117
+ /**
118
+ * Register a change listener for re-renders
119
+ */
120
+ onChange(listener: () => void): () => void
121
+ private notifyChange
122
+ private render
123
+ }
124
+ //# sourceMappingURL=screen_manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screen_manager.d.ts","sourceRoot":"","sources":["../../../src/services/screen_manager.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAe,MAAM,mBAAmB,CAAC;AAEnG,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,IAAI,CAA8C;IAC1D,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,KAAK,CAAoB;IAG1B,SAAS,EAAE,SAAS,CAAa;IACjC,aAAa,EAAE,MAAM,CAAK;IAEjC;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM;IAuB5C;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAsBlC;;OAEG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBhD;;OAEG;IACH,QAAQ,IAAI,KAAK,GAAG,SAAS;IAI7B;;;OAGG;IACH,MAAM,IAAI,IAAI;IAoBd;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAS7B;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;;OAGG;IACH,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM7C;;OAEG;IACH,eAAe,IAAI,OAAO;IAS1B;;OAEG;IACH,yBAAyB,IAAI,MAAM,GAAG,IAAI;IAS1C;;;OAGG;IACH,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAiB/C;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAuBvC;;OAEG;IACH,OAAO,CAAC,cAAc;IAwBtB;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE;IAMtB;;OAEG;IACH,aAAa,IAAI,MAAM,EAAE;IAMzB;;OAEG;IACH,eAAe,IAAI,MAAM,GAAG,IAAI;IAMhC;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKrC;;OAEG;IACH,cAAc,IAAI,WAAW;IAI7B;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAKnC;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMrC;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,aAAa,IAAI,IAAI;IAQrB;;OAEG;IACH,WAAW,IAAI,IAAI;IAKnB;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAK1C,OAAO,CAAC,YAAY;YAKN,MAAM;CAOrB"}
@@ -0,0 +1,7 @@
1
+ import type { Theme } from '../types/theme.types.ts'
2
+ /**
3
+ * Default dark theme.
4
+ * Migrated from the scattered color files in utils/colors/.
5
+ */
6
+ export declare const darkTheme: Theme
7
+ //# sourceMappingURL=dark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dark.d.ts","sourceRoot":"","sources":["../../../src/themes/dark.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAErD;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,KA0KvB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { Theme } from '../types/theme.types.ts'
2
+ /**
3
+ * High contrast theme for accessibility.
4
+ * Uses pure black/white with saturated colors for maximum visibility.
5
+ */
6
+ export declare const highContrastTheme: Theme
7
+ //# sourceMappingURL=high-contrast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"high-contrast.d.ts","sourceRoot":"","sources":["../../../src/themes/high-contrast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAErD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAgL/B,CAAC"}
@@ -0,0 +1,18 @@
1
+ export { darkTheme } from './dark.ts'
2
+ export { lightTheme } from './light.ts'
3
+ export { highContrastTheme } from './high-contrast.ts'
4
+ export { createTheme, createThemeFrom, mergeThemes, getThemePreset, resolveTheme } from './utils.ts'
5
+ export type {
6
+ Theme,
7
+ ThemePreset,
8
+ PartialTheme,
9
+ LogLevelTheme,
10
+ SidebarTheme,
11
+ HeaderTheme,
12
+ ProgressTheme,
13
+ PromptTheme,
14
+ FilterTheme,
15
+ HelpTheme,
16
+ SemanticColors,
17
+ } from '../types/theme.types.ts'
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/themes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,WAAW,EACX,eAAe,EACf,WAAW,EACX,cAAc,EACd,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,KAAK,EACL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACX,SAAS,EACT,cAAc,GACf,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { Theme } from '../types/theme.types.ts'
2
+ /**
3
+ * Light theme for terminals with light backgrounds.
4
+ */
5
+ export declare const lightTheme: Theme
6
+ //# sourceMappingURL=light.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"light.d.ts","sourceRoot":"","sources":["../../../src/themes/light.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,KA0KxB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { Theme, PartialTheme, ThemePreset } from '../types/theme.types.ts'
2
+ /**
3
+ * Get a theme by preset name.
4
+ */
5
+ export declare function getThemePreset(preset: ThemePreset): Theme
6
+ /**
7
+ * Merge a base theme with partial overrides.
8
+ */
9
+ export declare function mergeThemes(base: Theme, overrides: PartialTheme): Theme
10
+ /**
11
+ * Create a custom theme by extending the dark theme with overrides.
12
+ */
13
+ export declare function createTheme(overrides: PartialTheme): Theme
14
+ /**
15
+ * Create a custom theme by extending a specific base theme.
16
+ */
17
+ export declare function createThemeFrom(base: Theme | ThemePreset, overrides: PartialTheme): Theme
18
+ /**
19
+ * Resolve a theme value which can be a Theme object or a preset name.
20
+ */
21
+ export declare function resolveTheme(theme: Theme | ThemePreset): Theme
22
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/themes/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAsChF;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,KAAK,CAWzD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,GAAG,KAAK,CAEvE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,YAAY,GAAG,KAAK,CAE1D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,KAAK,GAAG,WAAW,EACzB,SAAS,EAAE,YAAY,GACtB,KAAK,CAGP;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW,GAAG,KAAK,CAE9D"}
@@ -0,0 +1,40 @@
1
+ import type { RGBA } from '@opentui/core'
2
+ export type FileLogMode = 'full' | 'diff' | 'partial'
3
+ export interface FileLogBaseProps {
4
+ /** File path or name to display in header */
5
+ filePath: string
6
+ /** Override auto-detected filetype for syntax highlighting */
7
+ filetype?: string
8
+ /** Show line numbers */
9
+ showLineNumbers?: boolean
10
+ /** Show header with file path */
11
+ showHeader?: boolean
12
+ /** Custom header background color */
13
+ headerBackgroundColor?: string | RGBA
14
+ }
15
+ export interface FileLogFullProps extends FileLogBaseProps {
16
+ mode: 'full'
17
+ /** The complete file content */
18
+ content: string
19
+ }
20
+ export interface FileLogDiffProps extends FileLogBaseProps {
21
+ mode: 'diff'
22
+ /** Unified diff string */
23
+ diff: string
24
+ /** Diff view mode */
25
+ view?: 'unified' | 'split'
26
+ }
27
+ export interface FileLogPartialProps extends FileLogBaseProps {
28
+ mode: 'partial'
29
+ /** File content (full or partial) */
30
+ content: string
31
+ /** Starting line number of the content (1-indexed) */
32
+ startLine: number
33
+ /** Lines to highlight as errors */
34
+ errorLines?: number[]
35
+ /** Error highlighting colors */
36
+ errorLineBackground?: string | RGBA
37
+ errorLineBorderColor?: string | RGBA
38
+ }
39
+ export type FileLogProps = FileLogFullProps | FileLogDiffProps | FileLogPartialProps
40
+ //# sourceMappingURL=file.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.types.d.ts","sourceRoot":"","sources":["../../../src/types/file.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAM1C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IAEjB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,wBAAwB;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,iCAAiC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,qCAAqC;IACrC,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,IAAI,EAAE,MAAM,CAAC;IAEb,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,IAAI,EAAE,MAAM,CAAC;IAEb,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IAEb,qBAAqB;IACrB,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,IAAI,EAAE,SAAS,CAAC;IAEhB,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAEhB,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAC;IAElB,mCAAmC;IACnC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB,gCAAgC;IAChC,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,MAAM,YAAY,GACpB,gBAAgB,GAChB,gBAAgB,GAChB,mBAAmB,CAAC"}