termui 0.1.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 (241) hide show
  1. package/README.md +198 -0
  2. package/package.json +38 -0
  3. package/packages/cli/package.json +36 -0
  4. package/packages/components/dist/data/List.d.ts +15 -0
  5. package/packages/components/dist/data/List.d.ts.map +1 -0
  6. package/packages/components/dist/data/List.js +40 -0
  7. package/packages/components/dist/data/List.js.map +1 -0
  8. package/packages/components/dist/data/Table.d.ts +17 -0
  9. package/packages/components/dist/data/Table.d.ts.map +1 -0
  10. package/packages/components/dist/data/Table.js +74 -0
  11. package/packages/components/dist/data/Table.js.map +1 -0
  12. package/packages/components/dist/data/index.d.ts +5 -0
  13. package/packages/components/dist/data/index.d.ts.map +1 -0
  14. package/packages/components/dist/data/index.js +3 -0
  15. package/packages/components/dist/data/index.js.map +1 -0
  16. package/packages/components/dist/feedback/Alert.d.ts +10 -0
  17. package/packages/components/dist/feedback/Alert.d.ts.map +1 -0
  18. package/packages/components/dist/feedback/Alert.js +23 -0
  19. package/packages/components/dist/feedback/Alert.js.map +1 -0
  20. package/packages/components/dist/feedback/ProgressBar.d.ts +13 -0
  21. package/packages/components/dist/feedback/ProgressBar.d.ts.map +1 -0
  22. package/packages/components/dist/feedback/ProgressBar.js +13 -0
  23. package/packages/components/dist/feedback/ProgressBar.js.map +1 -0
  24. package/packages/components/dist/feedback/Spinner.d.ts +9 -0
  25. package/packages/components/dist/feedback/Spinner.d.ts.map +1 -0
  26. package/packages/components/dist/feedback/Spinner.js +26 -0
  27. package/packages/components/dist/feedback/Spinner.js.map +1 -0
  28. package/packages/components/dist/feedback/index.d.ts +7 -0
  29. package/packages/components/dist/feedback/index.d.ts.map +1 -0
  30. package/packages/components/dist/feedback/index.js +4 -0
  31. package/packages/components/dist/feedback/index.js.map +1 -0
  32. package/packages/components/dist/forms/Form.d.ts +22 -0
  33. package/packages/components/dist/forms/Form.d.ts.map +1 -0
  34. package/packages/components/dist/forms/Form.js +45 -0
  35. package/packages/components/dist/forms/Form.js.map +1 -0
  36. package/packages/components/dist/forms/index.d.ts +3 -0
  37. package/packages/components/dist/forms/index.d.ts.map +1 -0
  38. package/packages/components/dist/forms/index.js +2 -0
  39. package/packages/components/dist/forms/index.js.map +1 -0
  40. package/packages/components/dist/index.d.ts +11 -0
  41. package/packages/components/dist/index.d.ts.map +1 -0
  42. package/packages/components/dist/index.js +21 -0
  43. package/packages/components/dist/index.js.map +1 -0
  44. package/packages/components/dist/input/TextInput.d.ts +14 -0
  45. package/packages/components/dist/input/TextInput.d.ts.map +1 -0
  46. package/packages/components/dist/input/TextInput.js +44 -0
  47. package/packages/components/dist/input/TextInput.js.map +1 -0
  48. package/packages/components/dist/input/index.d.ts +3 -0
  49. package/packages/components/dist/input/index.d.ts.map +1 -0
  50. package/packages/components/dist/input/index.js +2 -0
  51. package/packages/components/dist/input/index.js.map +1 -0
  52. package/packages/components/dist/layout/Box.d.ts +11 -0
  53. package/packages/components/dist/layout/Box.d.ts.map +1 -0
  54. package/packages/components/dist/layout/Box.js +18 -0
  55. package/packages/components/dist/layout/Box.js.map +1 -0
  56. package/packages/components/dist/layout/Grid.d.ts +8 -0
  57. package/packages/components/dist/layout/Grid.d.ts.map +1 -0
  58. package/packages/components/dist/layout/Grid.js +12 -0
  59. package/packages/components/dist/layout/Grid.js.map +1 -0
  60. package/packages/components/dist/layout/ScrollView.d.ts +9 -0
  61. package/packages/components/dist/layout/ScrollView.d.ts.map +1 -0
  62. package/packages/components/dist/layout/ScrollView.js +26 -0
  63. package/packages/components/dist/layout/ScrollView.js.map +1 -0
  64. package/packages/components/dist/layout/Stack.d.ts +12 -0
  65. package/packages/components/dist/layout/Stack.d.ts.map +1 -0
  66. package/packages/components/dist/layout/Stack.js +6 -0
  67. package/packages/components/dist/layout/Stack.js.map +1 -0
  68. package/packages/components/dist/layout/index.d.ts +9 -0
  69. package/packages/components/dist/layout/index.d.ts.map +1 -0
  70. package/packages/components/dist/layout/index.js +5 -0
  71. package/packages/components/dist/layout/index.js.map +1 -0
  72. package/packages/components/dist/navigation/Tabs.d.ts +15 -0
  73. package/packages/components/dist/navigation/Tabs.d.ts.map +1 -0
  74. package/packages/components/dist/navigation/Tabs.js +34 -0
  75. package/packages/components/dist/navigation/Tabs.js.map +1 -0
  76. package/packages/components/dist/navigation/index.d.ts +3 -0
  77. package/packages/components/dist/navigation/index.d.ts.map +1 -0
  78. package/packages/components/dist/navigation/index.js +2 -0
  79. package/packages/components/dist/navigation/index.js.map +1 -0
  80. package/packages/components/dist/overlays/Modal.d.ts +10 -0
  81. package/packages/components/dist/overlays/Modal.d.ts.map +1 -0
  82. package/packages/components/dist/overlays/Modal.js +16 -0
  83. package/packages/components/dist/overlays/Modal.js.map +1 -0
  84. package/packages/components/dist/overlays/index.d.ts +3 -0
  85. package/packages/components/dist/overlays/index.d.ts.map +1 -0
  86. package/packages/components/dist/overlays/index.js +2 -0
  87. package/packages/components/dist/overlays/index.js.map +1 -0
  88. package/packages/components/dist/selection/Checkbox.d.ts +10 -0
  89. package/packages/components/dist/selection/Checkbox.d.ts.map +1 -0
  90. package/packages/components/dist/selection/Checkbox.js +26 -0
  91. package/packages/components/dist/selection/Checkbox.js.map +1 -0
  92. package/packages/components/dist/selection/Select.d.ts +17 -0
  93. package/packages/components/dist/selection/Select.d.ts.map +1 -0
  94. package/packages/components/dist/selection/Select.js +44 -0
  95. package/packages/components/dist/selection/Select.js.map +1 -0
  96. package/packages/components/dist/selection/index.d.ts +5 -0
  97. package/packages/components/dist/selection/index.d.ts.map +1 -0
  98. package/packages/components/dist/selection/index.js +3 -0
  99. package/packages/components/dist/selection/index.js.map +1 -0
  100. package/packages/components/dist/typography/Badge.d.ts +9 -0
  101. package/packages/components/dist/typography/Badge.d.ts.map +1 -0
  102. package/packages/components/dist/typography/Badge.js +18 -0
  103. package/packages/components/dist/typography/Badge.js.map +1 -0
  104. package/packages/components/dist/typography/Text.d.ts +15 -0
  105. package/packages/components/dist/typography/Text.d.ts.map +1 -0
  106. package/packages/components/dist/typography/Text.js +6 -0
  107. package/packages/components/dist/typography/Text.js.map +1 -0
  108. package/packages/components/dist/typography/index.d.ts +5 -0
  109. package/packages/components/dist/typography/index.d.ts.map +1 -0
  110. package/packages/components/dist/typography/index.js +3 -0
  111. package/packages/components/dist/typography/index.js.map +1 -0
  112. package/packages/components/dist/utility/Panel.d.ts +14 -0
  113. package/packages/components/dist/utility/Panel.d.ts.map +1 -0
  114. package/packages/components/dist/utility/Panel.js +8 -0
  115. package/packages/components/dist/utility/Panel.js.map +1 -0
  116. package/packages/components/dist/utility/Toggle.d.ts +11 -0
  117. package/packages/components/dist/utility/Toggle.d.ts.map +1 -0
  118. package/packages/components/dist/utility/Toggle.js +23 -0
  119. package/packages/components/dist/utility/Toggle.js.map +1 -0
  120. package/packages/components/dist/utility/index.d.ts +5 -0
  121. package/packages/components/dist/utility/index.d.ts.map +1 -0
  122. package/packages/components/dist/utility/index.js +3 -0
  123. package/packages/components/dist/utility/index.js.map +1 -0
  124. package/packages/components/package.json +36 -0
  125. package/packages/core/dist/hooks/index.d.ts +18 -0
  126. package/packages/core/dist/hooks/index.d.ts.map +1 -0
  127. package/packages/core/dist/hooks/index.js +13 -0
  128. package/packages/core/dist/hooks/index.js.map +1 -0
  129. package/packages/core/dist/hooks/useAnimation.d.ts +7 -0
  130. package/packages/core/dist/hooks/useAnimation.d.ts.map +1 -0
  131. package/packages/core/dist/hooks/useAnimation.js +40 -0
  132. package/packages/core/dist/hooks/useAnimation.js.map +1 -0
  133. package/packages/core/dist/hooks/useAsync.d.ts +25 -0
  134. package/packages/core/dist/hooks/useAsync.d.ts.map +1 -0
  135. package/packages/core/dist/hooks/useAsync.js +37 -0
  136. package/packages/core/dist/hooks/useAsync.js.map +1 -0
  137. package/packages/core/dist/hooks/useClipboard.d.ts +9 -0
  138. package/packages/core/dist/hooks/useClipboard.d.ts.map +1 -0
  139. package/packages/core/dist/hooks/useClipboard.js +14 -0
  140. package/packages/core/dist/hooks/useClipboard.js.map +1 -0
  141. package/packages/core/dist/hooks/useFocus.d.ts +10 -0
  142. package/packages/core/dist/hooks/useFocus.d.ts.map +1 -0
  143. package/packages/core/dist/hooks/useFocus.js +6 -0
  144. package/packages/core/dist/hooks/useFocus.js.map +1 -0
  145. package/packages/core/dist/hooks/useFocusManager.d.ts +9 -0
  146. package/packages/core/dist/hooks/useFocusManager.d.ts.map +1 -0
  147. package/packages/core/dist/hooks/useFocusManager.js +6 -0
  148. package/packages/core/dist/hooks/useFocusManager.js.map +1 -0
  149. package/packages/core/dist/hooks/useInput.d.ts +22 -0
  150. package/packages/core/dist/hooks/useInput.d.ts.map +1 -0
  151. package/packages/core/dist/hooks/useInput.js +6 -0
  152. package/packages/core/dist/hooks/useInput.js.map +1 -0
  153. package/packages/core/dist/hooks/useInterval.d.ts +6 -0
  154. package/packages/core/dist/hooks/useInterval.d.ts.map +1 -0
  155. package/packages/core/dist/hooks/useInterval.js +18 -0
  156. package/packages/core/dist/hooks/useInterval.js.map +1 -0
  157. package/packages/core/dist/hooks/useKeymap.d.ts +13 -0
  158. package/packages/core/dist/hooks/useKeymap.d.ts.map +1 -0
  159. package/packages/core/dist/hooks/useKeymap.js +36 -0
  160. package/packages/core/dist/hooks/useKeymap.js.map +1 -0
  161. package/packages/core/dist/hooks/useMouse.d.ts +19 -0
  162. package/packages/core/dist/hooks/useMouse.d.ts.map +1 -0
  163. package/packages/core/dist/hooks/useMouse.js +60 -0
  164. package/packages/core/dist/hooks/useMouse.js.map +1 -0
  165. package/packages/core/dist/hooks/useResize.d.ts +7 -0
  166. package/packages/core/dist/hooks/useResize.d.ts.map +1 -0
  167. package/packages/core/dist/hooks/useResize.js +27 -0
  168. package/packages/core/dist/hooks/useResize.js.map +1 -0
  169. package/packages/core/dist/hooks/useTerminal.d.ts +4 -0
  170. package/packages/core/dist/hooks/useTerminal.d.ts.map +1 -0
  171. package/packages/core/dist/hooks/useTerminal.js +17 -0
  172. package/packages/core/dist/hooks/useTerminal.js.map +1 -0
  173. package/packages/core/dist/hooks/useTheme.d.ts +2 -0
  174. package/packages/core/dist/hooks/useTheme.d.ts.map +1 -0
  175. package/packages/core/dist/hooks/useTheme.js +3 -0
  176. package/packages/core/dist/hooks/useTheme.js.map +1 -0
  177. package/packages/core/dist/index.d.ts +4 -0
  178. package/packages/core/dist/index.d.ts.map +1 -0
  179. package/packages/core/dist/index.js +7 -0
  180. package/packages/core/dist/index.js.map +1 -0
  181. package/packages/core/dist/styling/ThemeProvider.d.ts +15 -0
  182. package/packages/core/dist/styling/ThemeProvider.d.ts.map +1 -0
  183. package/packages/core/dist/styling/ThemeProvider.js +44 -0
  184. package/packages/core/dist/styling/ThemeProvider.js.map +1 -0
  185. package/packages/core/dist/styling/index.d.ts +7 -0
  186. package/packages/core/dist/styling/index.d.ts.map +1 -0
  187. package/packages/core/dist/styling/index.js +7 -0
  188. package/packages/core/dist/styling/index.js.map +1 -0
  189. package/packages/core/dist/styling/style.d.ts +25 -0
  190. package/packages/core/dist/styling/style.d.ts.map +1 -0
  191. package/packages/core/dist/styling/style.js +57 -0
  192. package/packages/core/dist/styling/style.js.map +1 -0
  193. package/packages/core/dist/styling/themes/default.d.ts +3 -0
  194. package/packages/core/dist/styling/themes/default.d.ts.map +1 -0
  195. package/packages/core/dist/styling/themes/default.js +49 -0
  196. package/packages/core/dist/styling/themes/default.js.map +1 -0
  197. package/packages/core/dist/styling/themes/dracula.d.ts +3 -0
  198. package/packages/core/dist/styling/themes/dracula.d.ts.map +1 -0
  199. package/packages/core/dist/styling/themes/dracula.js +49 -0
  200. package/packages/core/dist/styling/themes/dracula.js.map +1 -0
  201. package/packages/core/dist/styling/themes/nord.d.ts +3 -0
  202. package/packages/core/dist/styling/themes/nord.d.ts.map +1 -0
  203. package/packages/core/dist/styling/themes/nord.js +49 -0
  204. package/packages/core/dist/styling/themes/nord.js.map +1 -0
  205. package/packages/core/dist/styling/tokens.d.ts +57 -0
  206. package/packages/core/dist/styling/tokens.d.ts.map +1 -0
  207. package/packages/core/dist/styling/tokens.js +6 -0
  208. package/packages/core/dist/styling/tokens.js.map +1 -0
  209. package/packages/core/dist/terminal/ansi.d.ts +107 -0
  210. package/packages/core/dist/terminal/ansi.d.ts.map +1 -0
  211. package/packages/core/dist/terminal/ansi.js +153 -0
  212. package/packages/core/dist/terminal/ansi.js.map +1 -0
  213. package/packages/core/dist/terminal/capabilities.d.ts +21 -0
  214. package/packages/core/dist/terminal/capabilities.d.ts.map +1 -0
  215. package/packages/core/dist/terminal/capabilities.js +74 -0
  216. package/packages/core/dist/terminal/capabilities.js.map +1 -0
  217. package/packages/core/dist/terminal/index.d.ts +3 -0
  218. package/packages/core/dist/terminal/index.d.ts.map +1 -0
  219. package/packages/core/dist/terminal/index.js +3 -0
  220. package/packages/core/dist/terminal/index.js.map +1 -0
  221. package/packages/core/package.json +49 -0
  222. package/registry/components/alert/meta.json +9 -0
  223. package/registry/components/badge/meta.json +9 -0
  224. package/registry/components/box/meta.json +9 -0
  225. package/registry/components/checkbox/meta.json +9 -0
  226. package/registry/components/form/meta.json +9 -0
  227. package/registry/components/grid/meta.json +9 -0
  228. package/registry/components/list/meta.json +9 -0
  229. package/registry/components/modal/meta.json +9 -0
  230. package/registry/components/panel/meta.json +9 -0
  231. package/registry/components/progress-bar/meta.json +9 -0
  232. package/registry/components/scroll-view/meta.json +9 -0
  233. package/registry/components/select/meta.json +9 -0
  234. package/registry/components/spinner/meta.json +9 -0
  235. package/registry/components/stack/meta.json +9 -0
  236. package/registry/components/table/meta.json +9 -0
  237. package/registry/components/tabs/meta.json +9 -0
  238. package/registry/components/text/meta.json +9 -0
  239. package/registry/components/text-input/meta.json +9 -0
  240. package/registry/components/toggle/meta.json +9 -0
  241. package/registry/schema.json +178 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dracula.js","sourceRoot":"","sources":["../../../src/styling/themes/dracula.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAU;IACjC,IAAI,EAAE,SAAS;IACf,MAAM,EAAE;QACN,OAAO,EAAE,SAAS;QAClB,iBAAiB,EAAE,SAAS;QAC5B,SAAS,EAAE,SAAS;QACpB,mBAAmB,EAAE,SAAS;QAC9B,MAAM,EAAE,SAAS;QACjB,gBAAgB,EAAE,SAAS;QAE3B,OAAO,EAAE,SAAS;QAClB,iBAAiB,EAAE,SAAS;QAC5B,OAAO,EAAE,SAAS;QAClB,iBAAiB,EAAE,SAAS;QAC5B,KAAK,EAAE,SAAS;QAChB,eAAe,EAAE,SAAS;QAC1B,IAAI,EAAE,SAAS;QACf,cAAc,EAAE,SAAS;QAEzB,UAAU,EAAE,SAAS;QACrB,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,SAAS;QAChB,eAAe,EAAE,SAAS;QAC1B,MAAM,EAAE,SAAS;QAEjB,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,SAAS;QACpB,mBAAmB,EAAE,SAAS;KAC/B;IACD,OAAO,EAAE;QACP,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;KACL;IACD,UAAU,EAAE;QACV,IAAI,EAAE,IAAI;QACV,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,EAAE;QACR,EAAE,EAAE,MAAM;QACV,EAAE,EAAE,MAAM;KACX;IACD,MAAM,EAAE;QACN,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE,SAAS;KACtB;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Theme } from '../tokens.js';
2
+ export declare const nordTheme: Theme;
3
+ //# sourceMappingURL=nord.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nord.d.ts","sourceRoot":"","sources":["../../../src/styling/themes/nord.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE1C,eAAO,MAAM,SAAS,EAAE,KAkDvB,CAAC"}
@@ -0,0 +1,49 @@
1
+ export const nordTheme = {
2
+ name: 'nord',
3
+ colors: {
4
+ primary: '#88C0D0',
5
+ primaryForeground: '#2E3440',
6
+ secondary: '#4C566A',
7
+ secondaryForeground: '#ECEFF4',
8
+ accent: '#81A1C1',
9
+ accentForeground: '#2E3440',
10
+ success: '#A3BE8C',
11
+ successForeground: '#2E3440',
12
+ warning: '#EBCB8B',
13
+ warningForeground: '#2E3440',
14
+ error: '#BF616A',
15
+ errorForeground: '#ECEFF4',
16
+ info: '#5E81AC',
17
+ infoForeground: '#ECEFF4',
18
+ background: '#2E3440',
19
+ foreground: '#ECEFF4',
20
+ muted: '#3B4252',
21
+ mutedForeground: '#4C566A',
22
+ border: '#4C566A',
23
+ focusRing: '#88C0D0',
24
+ selection: '#3B4252',
25
+ selectionForeground: '#ECEFF4',
26
+ },
27
+ spacing: {
28
+ 0: 0,
29
+ 1: 1,
30
+ 2: 2,
31
+ 3: 3,
32
+ 4: 4,
33
+ 6: 6,
34
+ 8: 8,
35
+ },
36
+ typography: {
37
+ bold: true,
38
+ sm: 'dim',
39
+ base: '',
40
+ lg: 'bold',
41
+ xl: 'bold',
42
+ },
43
+ border: {
44
+ style: 'round',
45
+ color: '#4C566A',
46
+ focusColor: '#88C0D0',
47
+ },
48
+ };
49
+ //# sourceMappingURL=nord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nord.js","sourceRoot":"","sources":["../../../src/styling/themes/nord.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAU;IAC9B,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE;QACN,OAAO,EAAE,SAAS;QAClB,iBAAiB,EAAE,SAAS;QAC5B,SAAS,EAAE,SAAS;QACpB,mBAAmB,EAAE,SAAS;QAC9B,MAAM,EAAE,SAAS;QACjB,gBAAgB,EAAE,SAAS;QAE3B,OAAO,EAAE,SAAS;QAClB,iBAAiB,EAAE,SAAS;QAC5B,OAAO,EAAE,SAAS;QAClB,iBAAiB,EAAE,SAAS;QAC5B,KAAK,EAAE,SAAS;QAChB,eAAe,EAAE,SAAS;QAC1B,IAAI,EAAE,SAAS;QACf,cAAc,EAAE,SAAS;QAEzB,UAAU,EAAE,SAAS;QACrB,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,SAAS;QAChB,eAAe,EAAE,SAAS;QAC1B,MAAM,EAAE,SAAS;QAEjB,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,SAAS;QACpB,mBAAmB,EAAE,SAAS;KAC/B;IACD,OAAO,EAAE;QACP,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;KACL;IACD,UAAU,EAAE;QACV,IAAI,EAAE,IAAI;QACV,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,EAAE;QACR,EAAE,EAAE,MAAM;QACV,EAAE,EAAE,MAAM;KACX;IACD,MAAM,EAAE;QACN,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE,SAAS;KACtB;CACF,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Design token types for TermUI theming.
3
+ * All theme objects must conform to this shape.
4
+ */
5
+ export interface ColorTokens {
6
+ primary: string;
7
+ primaryForeground: string;
8
+ secondary: string;
9
+ secondaryForeground: string;
10
+ accent: string;
11
+ accentForeground: string;
12
+ success: string;
13
+ successForeground: string;
14
+ warning: string;
15
+ warningForeground: string;
16
+ error: string;
17
+ errorForeground: string;
18
+ info: string;
19
+ infoForeground: string;
20
+ background: string;
21
+ foreground: string;
22
+ muted: string;
23
+ mutedForeground: string;
24
+ border: string;
25
+ focusRing: string;
26
+ selection: string;
27
+ selectionForeground: string;
28
+ }
29
+ export interface SpacingTokens {
30
+ 0: number;
31
+ 1: number;
32
+ 2: number;
33
+ 3: number;
34
+ 4: number;
35
+ 6: number;
36
+ 8: number;
37
+ }
38
+ export interface TypographyTokens {
39
+ bold: boolean;
40
+ sm: string;
41
+ base: string;
42
+ lg: string;
43
+ xl: string;
44
+ }
45
+ export interface BorderTokens {
46
+ style: 'single' | 'double' | 'round' | 'bold' | 'singleDouble' | 'doubleSingle' | 'classic';
47
+ color: string;
48
+ focusColor: string;
49
+ }
50
+ export interface Theme {
51
+ name: string;
52
+ colors: ColorTokens;
53
+ spacing: SpacingTokens;
54
+ typography: TypographyTokens;
55
+ border: BorderTokens;
56
+ }
57
+ //# sourceMappingURL=tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/styling/tokens.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,WAAW;IAE1B,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IAGzB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IAGvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IAGf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,gBAAgB;IAE/B,IAAI,EAAE,OAAO,CAAC;IAEd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,cAAc,GAAG,cAAc,GAAG,SAAS,CAAC;IAC5F,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,MAAM,EAAE,YAAY,CAAC;CACtB"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Design token types for TermUI theming.
3
+ * All theme objects must conform to this shape.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/styling/tokens.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * ANSI escape code utilities for terminal output.
3
+ * Covers: colors, styles, cursor movement, screen control.
4
+ */
5
+ export declare const reset = "\u001B[0m";
6
+ export declare const bold = "\u001B[1m";
7
+ export declare const dim = "\u001B[2m";
8
+ export declare const italic = "\u001B[3m";
9
+ export declare const underline = "\u001B[4m";
10
+ export declare const blink = "\u001B[5m";
11
+ export declare const inverse = "\u001B[7m";
12
+ export declare const hidden = "\u001B[8m";
13
+ export declare const strikethrough = "\u001B[9m";
14
+ export declare const fg: {
15
+ readonly black: "\u001B[30m";
16
+ readonly red: "\u001B[31m";
17
+ readonly green: "\u001B[32m";
18
+ readonly yellow: "\u001B[33m";
19
+ readonly blue: "\u001B[34m";
20
+ readonly magenta: "\u001B[35m";
21
+ readonly cyan: "\u001B[36m";
22
+ readonly white: "\u001B[37m";
23
+ readonly default: "\u001B[39m";
24
+ readonly brightBlack: "\u001B[90m";
25
+ readonly brightRed: "\u001B[91m";
26
+ readonly brightGreen: "\u001B[92m";
27
+ readonly brightYellow: "\u001B[93m";
28
+ readonly brightBlue: "\u001B[94m";
29
+ readonly brightMagenta: "\u001B[95m";
30
+ readonly brightCyan: "\u001B[96m";
31
+ readonly brightWhite: "\u001B[97m";
32
+ };
33
+ export declare const bg: {
34
+ readonly black: "\u001B[40m";
35
+ readonly red: "\u001B[41m";
36
+ readonly green: "\u001B[42m";
37
+ readonly yellow: "\u001B[43m";
38
+ readonly blue: "\u001B[44m";
39
+ readonly magenta: "\u001B[45m";
40
+ readonly cyan: "\u001B[46m";
41
+ readonly white: "\u001B[47m";
42
+ readonly default: "\u001B[49m";
43
+ readonly brightBlack: "\u001B[100m";
44
+ readonly brightRed: "\u001B[101m";
45
+ readonly brightGreen: "\u001B[102m";
46
+ readonly brightYellow: "\u001B[103m";
47
+ readonly brightBlue: "\u001B[104m";
48
+ readonly brightMagenta: "\u001B[105m";
49
+ readonly brightCyan: "\u001B[106m";
50
+ readonly brightWhite: "\u001B[107m";
51
+ };
52
+ /** 256-color foreground: \x1b[38;5;<n>m */
53
+ export declare function fg256(n: number): string;
54
+ /** 256-color background: \x1b[48;5;<n>m */
55
+ export declare function bg256(n: number): string;
56
+ /** True-color (24-bit) foreground: \x1b[38;2;<r>;<g>;<b>m */
57
+ export declare function fgRgb(r: number, g: number, b: number): string;
58
+ /** True-color (24-bit) background: \x1b[48;2;<r>;<g>;<b>m */
59
+ export declare function bgRgb(r: number, g: number, b: number): string;
60
+ /** Parse a hex color string (#RRGGBB or #RGB) into {r,g,b} */
61
+ export declare function parseHex(hex: string): {
62
+ r: number;
63
+ g: number;
64
+ b: number;
65
+ };
66
+ /** Apply true-color foreground from a hex string */
67
+ export declare function fgHex(hex: string): string;
68
+ /** Apply true-color background from a hex string */
69
+ export declare function bgHex(hex: string): string;
70
+ export declare const cursor: {
71
+ readonly up: (n?: number) => string;
72
+ readonly down: (n?: number) => string;
73
+ readonly forward: (n?: number) => string;
74
+ readonly back: (n?: number) => string;
75
+ readonly nextLine: (n?: number) => string;
76
+ readonly prevLine: (n?: number) => string;
77
+ readonly column: (n?: number) => string;
78
+ readonly position: (row: number, col: number) => string;
79
+ readonly hide: "\u001B[?25l";
80
+ readonly show: "\u001B[?25h";
81
+ readonly save: "\u001B[s";
82
+ readonly restore: "\u001B[u";
83
+ };
84
+ export declare const screen: {
85
+ readonly clear: "\u001B[2J";
86
+ readonly clearToEnd: "\u001B[0J";
87
+ readonly clearToStart: "\u001B[1J";
88
+ readonly clearLine: "\u001B[2K";
89
+ readonly clearLineToEnd: "\u001B[0K";
90
+ readonly clearLineToStart: "\u001B[1K";
91
+ readonly alternateBuffer: "\u001B[?1049h";
92
+ readonly mainBuffer: "\u001B[?1049l";
93
+ };
94
+ export declare const osc: {
95
+ /** OSC 8 — hyperlink: \x1b]8;;url\x1b\\ text \x1b]8;;\x1b\\ */
96
+ readonly hyperlink: (url: string, text: string) => string;
97
+ /** OSC 52 — clipboard write (base64-encoded) */
98
+ readonly clipboardWrite: (data: string) => string;
99
+ /** OSC 0 — set window title */
100
+ readonly setTitle: (title: string) => string;
101
+ };
102
+ /** Wrap text with a style and reset */
103
+ export declare function style(code: string, text: string): string;
104
+ export declare function stripAnsi(str: string): string;
105
+ /** Measure visible width of a string (strips ANSI first) */
106
+ export declare function visibleWidth(str: string): number;
107
+ //# sourceMappingURL=ansi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ansi.d.ts","sourceRoot":"","sources":["../../src/terminal/ansi.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,eAAO,MAAM,KAAK,cAAc,CAAC;AAGjC,eAAO,MAAM,IAAI,cAAc,CAAC;AAChC,eAAO,MAAM,GAAG,cAAc,CAAC;AAC/B,eAAO,MAAM,MAAM,cAAc,CAAC;AAClC,eAAO,MAAM,SAAS,cAAc,CAAC;AACrC,eAAO,MAAM,KAAK,cAAc,CAAC;AACjC,eAAO,MAAM,OAAO,cAAc,CAAC;AACnC,eAAO,MAAM,MAAM,cAAc,CAAC;AAClC,eAAO,MAAM,aAAa,cAAc,CAAC;AAGzC,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;CAmBL,CAAC;AAGX,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;CAmBL,CAAC;AAEX,2CAA2C;AAC3C,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEvC;AAED,2CAA2C;AAC3C,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEvC;AAED,6DAA6D;AAC7D,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,6DAA6D;AAC7D,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,8DAA8D;AAC9D,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAYzE;AAED,oDAAoD;AACpD,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGzC;AAED,oDAAoD;AACpD,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGzC;AAGD,eAAO,MAAM,MAAM;;;;;;;;6BAQD,MAAM,OAAO,MAAM;;;;;CAK3B,CAAC;AAGX,eAAO,MAAM,MAAM;;;;;;;;;CAST,CAAC;AAGX,eAAO,MAAM,GAAG;IACd,+DAA+D;8BAC9C,MAAM,QAAQ,MAAM;IAErC,gDAAgD;oCACzB,MAAM;IAI7B,+BAA+B;+BACb,MAAM;CAChB,CAAC;AAEX,uCAAuC;AACvC,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAMD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,4DAA4D;AAC5D,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * ANSI escape code utilities for terminal output.
3
+ * Covers: colors, styles, cursor movement, screen control.
4
+ */
5
+ // ESC character
6
+ const ESC = '\x1b';
7
+ // Reset
8
+ export const reset = `${ESC}[0m`;
9
+ // Text styles
10
+ export const bold = `${ESC}[1m`;
11
+ export const dim = `${ESC}[2m`;
12
+ export const italic = `${ESC}[3m`;
13
+ export const underline = `${ESC}[4m`;
14
+ export const blink = `${ESC}[5m`;
15
+ export const inverse = `${ESC}[7m`;
16
+ export const hidden = `${ESC}[8m`;
17
+ export const strikethrough = `${ESC}[9m`;
18
+ // Standard foreground colors (30–37)
19
+ export const fg = {
20
+ black: `${ESC}[30m`,
21
+ red: `${ESC}[31m`,
22
+ green: `${ESC}[32m`,
23
+ yellow: `${ESC}[33m`,
24
+ blue: `${ESC}[34m`,
25
+ magenta: `${ESC}[35m`,
26
+ cyan: `${ESC}[36m`,
27
+ white: `${ESC}[37m`,
28
+ default: `${ESC}[39m`,
29
+ // Bright variants (90–97)
30
+ brightBlack: `${ESC}[90m`,
31
+ brightRed: `${ESC}[91m`,
32
+ brightGreen: `${ESC}[92m`,
33
+ brightYellow: `${ESC}[93m`,
34
+ brightBlue: `${ESC}[94m`,
35
+ brightMagenta: `${ESC}[95m`,
36
+ brightCyan: `${ESC}[96m`,
37
+ brightWhite: `${ESC}[97m`,
38
+ };
39
+ // Standard background colors (40–47)
40
+ export const bg = {
41
+ black: `${ESC}[40m`,
42
+ red: `${ESC}[41m`,
43
+ green: `${ESC}[42m`,
44
+ yellow: `${ESC}[43m`,
45
+ blue: `${ESC}[44m`,
46
+ magenta: `${ESC}[45m`,
47
+ cyan: `${ESC}[46m`,
48
+ white: `${ESC}[47m`,
49
+ default: `${ESC}[49m`,
50
+ // Bright backgrounds
51
+ brightBlack: `${ESC}[100m`,
52
+ brightRed: `${ESC}[101m`,
53
+ brightGreen: `${ESC}[102m`,
54
+ brightYellow: `${ESC}[103m`,
55
+ brightBlue: `${ESC}[104m`,
56
+ brightMagenta: `${ESC}[105m`,
57
+ brightCyan: `${ESC}[106m`,
58
+ brightWhite: `${ESC}[107m`,
59
+ };
60
+ /** 256-color foreground: \x1b[38;5;<n>m */
61
+ export function fg256(n) {
62
+ return `${ESC}[38;5;${n}m`;
63
+ }
64
+ /** 256-color background: \x1b[48;5;<n>m */
65
+ export function bg256(n) {
66
+ return `${ESC}[48;5;${n}m`;
67
+ }
68
+ /** True-color (24-bit) foreground: \x1b[38;2;<r>;<g>;<b>m */
69
+ export function fgRgb(r, g, b) {
70
+ return `${ESC}[38;2;${r};${g};${b}m`;
71
+ }
72
+ /** True-color (24-bit) background: \x1b[48;2;<r>;<g>;<b>m */
73
+ export function bgRgb(r, g, b) {
74
+ return `${ESC}[48;2;${r};${g};${b}m`;
75
+ }
76
+ /** Parse a hex color string (#RRGGBB or #RGB) into {r,g,b} */
77
+ export function parseHex(hex) {
78
+ const clean = hex.replace('#', '');
79
+ if (clean.length === 3) {
80
+ const r = parseInt(clean[0] + clean[0], 16);
81
+ const g = parseInt(clean[1] + clean[1], 16);
82
+ const b = parseInt(clean[2] + clean[2], 16);
83
+ return { r, g, b };
84
+ }
85
+ const r = parseInt(clean.slice(0, 2), 16);
86
+ const g = parseInt(clean.slice(2, 4), 16);
87
+ const b = parseInt(clean.slice(4, 6), 16);
88
+ return { r, g, b };
89
+ }
90
+ /** Apply true-color foreground from a hex string */
91
+ export function fgHex(hex) {
92
+ const { r, g, b } = parseHex(hex);
93
+ return fgRgb(r, g, b);
94
+ }
95
+ /** Apply true-color background from a hex string */
96
+ export function bgHex(hex) {
97
+ const { r, g, b } = parseHex(hex);
98
+ return bgRgb(r, g, b);
99
+ }
100
+ // Cursor movement
101
+ export const cursor = {
102
+ up: (n = 1) => `${ESC}[${n}A`,
103
+ down: (n = 1) => `${ESC}[${n}B`,
104
+ forward: (n = 1) => `${ESC}[${n}C`,
105
+ back: (n = 1) => `${ESC}[${n}D`,
106
+ nextLine: (n = 1) => `${ESC}[${n}E`,
107
+ prevLine: (n = 1) => `${ESC}[${n}F`,
108
+ column: (n = 1) => `${ESC}[${n}G`,
109
+ position: (row, col) => `${ESC}[${row};${col}H`,
110
+ hide: `${ESC}[?25l`,
111
+ show: `${ESC}[?25h`,
112
+ save: `${ESC}[s`,
113
+ restore: `${ESC}[u`,
114
+ };
115
+ // Screen control
116
+ export const screen = {
117
+ clear: `${ESC}[2J`,
118
+ clearToEnd: `${ESC}[0J`,
119
+ clearToStart: `${ESC}[1J`,
120
+ clearLine: `${ESC}[2K`,
121
+ clearLineToEnd: `${ESC}[0K`,
122
+ clearLineToStart: `${ESC}[1K`,
123
+ alternateBuffer: `${ESC}[?1049h`,
124
+ mainBuffer: `${ESC}[?1049l`,
125
+ };
126
+ // OSC (Operating System Command) sequences
127
+ export const osc = {
128
+ /** OSC 8 — hyperlink: \x1b]8;;url\x1b\\ text \x1b]8;;\x1b\\ */
129
+ hyperlink: (url, text) => `${ESC}]8;;${url}${ESC}\\${text}${ESC}]8;;${ESC}\\`,
130
+ /** OSC 52 — clipboard write (base64-encoded) */
131
+ clipboardWrite: (data) => {
132
+ const encoded = Buffer.from(data).toString('base64');
133
+ return `${ESC}]52;c;${encoded}\x07`;
134
+ },
135
+ /** OSC 0 — set window title */
136
+ setTitle: (title) => `${ESC}]0;${title}\x07`,
137
+ };
138
+ /** Wrap text with a style and reset */
139
+ export function style(code, text) {
140
+ return `${code}${text}${reset}`;
141
+ }
142
+ /** Strip all ANSI escape sequences from a string */
143
+ // We implement a fast inline stripper here;
144
+ // consumers should prefer the 'strip-ansi' package for full coverage
145
+ const ANSI_REGEX = /\x1b\[[0-9;]*[mGKHFABCDJn]|\x1b\][^\\]*\x1b\\|\x1b[()][AB012]/g;
146
+ export function stripAnsi(str) {
147
+ return str.replace(ANSI_REGEX, '');
148
+ }
149
+ /** Measure visible width of a string (strips ANSI first) */
150
+ export function visibleWidth(str) {
151
+ return stripAnsi(str).length;
152
+ }
153
+ //# sourceMappingURL=ansi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ansi.js","sourceRoot":"","sources":["../../src/terminal/ansi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Terminal capability detection.
3
+ * Detects: color depth, unicode support, mouse support, true-color.
4
+ */
5
+ export type ColorDepth = 1 | 4 | 8 | 24;
6
+ export interface TerminalCapabilities {
7
+ colorDepth: ColorDepth;
8
+ supportsUnicode: boolean;
9
+ supportsTrueColor: boolean;
10
+ supports256Color: boolean;
11
+ supportsMouse: boolean;
12
+ columns: number;
13
+ rows: number;
14
+ isTTY: boolean;
15
+ }
16
+ /** Detect current terminal capabilities from process environment */
17
+ export declare function detectCapabilities(): TerminalCapabilities;
18
+ export declare function getCapabilities(): TerminalCapabilities;
19
+ /** Force re-detect capabilities (useful after SIGWINCH) */
20
+ export declare function refreshCapabilities(): TerminalCapabilities;
21
+ //# sourceMappingURL=capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/terminal/capabilities.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAExC,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,oEAAoE;AACpE,wBAAgB,kBAAkB,IAAI,oBAAoB,CA2DzD;AAKD,wBAAgB,eAAe,IAAI,oBAAoB,CAKtD;AAED,2DAA2D;AAC3D,wBAAgB,mBAAmB,IAAI,oBAAoB,CAG1D"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Terminal capability detection.
3
+ * Detects: color depth, unicode support, mouse support, true-color.
4
+ */
5
+ /** Detect current terminal capabilities from process environment */
6
+ export function detectCapabilities() {
7
+ const isTTY = Boolean(process.stdout.isTTY);
8
+ const columns = process.stdout.columns ?? 80;
9
+ const rows = process.stdout.rows ?? 24;
10
+ // NO_COLOR / FORCE_COLOR env vars
11
+ const noColor = 'NO_COLOR' in process.env;
12
+ const forceColor = process.env['FORCE_COLOR'];
13
+ // Color depth detection
14
+ let colorDepth = 1;
15
+ if (!noColor) {
16
+ if (forceColor === '3' || forceColor === 'true' || forceColor === '1') {
17
+ colorDepth = 24;
18
+ }
19
+ else if (forceColor === '2') {
20
+ colorDepth = 8;
21
+ }
22
+ else if (isTTY) {
23
+ // Check COLORTERM env for true-color
24
+ const colorterm = (process.env['COLORTERM'] ?? '').toLowerCase();
25
+ if (colorterm === 'truecolor' || colorterm === '24bit') {
26
+ colorDepth = 24;
27
+ }
28
+ else if ((process.env['TERM_PROGRAM'] ?? '').toLowerCase().includes('iterm') ||
29
+ (process.env['TERM_PROGRAM'] ?? '').toLowerCase() === 'hyper') {
30
+ colorDepth = 24;
31
+ }
32
+ else if ((process.env['TERM'] ?? '').includes('256color')) {
33
+ colorDepth = 8;
34
+ }
35
+ else if (process.env['TERM'] === 'xterm' || isTTY) {
36
+ colorDepth = 4;
37
+ }
38
+ }
39
+ }
40
+ const supportsTrueColor = colorDepth === 24;
41
+ const supports256Color = colorDepth >= 8;
42
+ // Unicode detection
43
+ const lang = process.env['LANG'] ?? process.env['LC_ALL'] ?? '';
44
+ const supportsUnicode = lang.toLowerCase().includes('utf-8') ||
45
+ lang.toLowerCase().includes('utf8') ||
46
+ process.platform === 'darwin' ||
47
+ (process.env['TERM_PROGRAM'] ?? '') !== '';
48
+ // Mouse support (most modern terminals support xterm mouse protocol)
49
+ const supportsMouse = isTTY;
50
+ return {
51
+ colorDepth,
52
+ supportsUnicode,
53
+ supportsTrueColor,
54
+ supports256Color,
55
+ supportsMouse,
56
+ columns,
57
+ rows,
58
+ isTTY,
59
+ };
60
+ }
61
+ /** Singleton instance for the current terminal session */
62
+ let _capabilities = null;
63
+ export function getCapabilities() {
64
+ if (!_capabilities) {
65
+ _capabilities = detectCapabilities();
66
+ }
67
+ return _capabilities;
68
+ }
69
+ /** Force re-detect capabilities (useful after SIGWINCH) */
70
+ export function refreshCapabilities() {
71
+ _capabilities = detectCapabilities();
72
+ return _capabilities;
73
+ }
74
+ //# sourceMappingURL=capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/terminal/capabilities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { reset, bold, dim, italic, underline, blink, inverse, hidden, strikethrough, fg, bg, fg256, bg256, fgRgb, bgRgb, parseHex, fgHex, bgHex, cursor, screen, osc, style as ansiStyle, stripAnsi, visibleWidth, } from './ansi.js';
2
+ export * from './capabilities.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/terminal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,IAAI,EACJ,GAAG,EACH,MAAM,EACN,SAAS,EACT,KAAK,EACL,OAAO,EACP,MAAM,EACN,aAAa,EACb,EAAE,EACF,EAAE,EACF,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,EACL,MAAM,EACN,MAAM,EACN,GAAG,EACH,KAAK,IAAI,SAAS,EAClB,SAAS,EACT,YAAY,GACb,MAAM,WAAW,CAAC;AACnB,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { reset, bold, dim, italic, underline, blink, inverse, hidden, strikethrough, fg, bg, fg256, bg256, fgRgb, bgRgb, parseHex, fgHex, bgHex, cursor, screen, osc, style as ansiStyle, stripAnsi, visibleWidth, } from './ansi.js';
2
+ export * from './capabilities.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/terminal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,IAAI,EACJ,GAAG,EACH,MAAM,EACN,SAAS,EACT,KAAK,EACL,OAAO,EACP,MAAM,EACN,aAAa,EACb,EAAE,EACF,EAAE,EACF,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,EACL,MAAM,EACN,MAAM,EACN,GAAG,EACH,KAAK,IAAI,SAAS,EAClB,SAAS,EACT,YAAY,GACb,MAAM,WAAW,CAAC;AACnB,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@termui/core",
3
+ "version": "0.1.0",
4
+ "description": "TermUI core — terminal layer, rendering, styling, and hooks",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ },
13
+ "./styling": {
14
+ "types": "./dist/styling/index.d.ts",
15
+ "import": "./dist/styling/index.js"
16
+ },
17
+ "./hooks": {
18
+ "types": "./dist/hooks/index.d.ts",
19
+ "import": "./dist/hooks/index.js"
20
+ },
21
+ "./terminal": {
22
+ "types": "./dist/terminal/index.d.ts",
23
+ "import": "./dist/terminal/index.js"
24
+ }
25
+ },
26
+ "scripts": {
27
+ "build": "tsc -p tsconfig.build.json",
28
+ "dev": "tsc -p tsconfig.build.json --watch",
29
+ "test": "vitest run",
30
+ "test:watch": "vitest",
31
+ "lint": "eslint src --ext .ts,.tsx",
32
+ "typecheck": "tsc --noEmit"
33
+ },
34
+ "dependencies": {
35
+ "ink": "^5.0.0",
36
+ "react": "^18.0.0",
37
+ "strip-ansi": "^7.1.0"
38
+ },
39
+ "peerDependencies": {
40
+ "react": "^18.0.0"
41
+ },
42
+ "devDependencies": {
43
+ "@types/react": "^18.0.0",
44
+ "@types/node": "^20.0.0",
45
+ "vitest": "^1.0.0",
46
+ "@vitest/coverage-v8": "^1.0.0",
47
+ "typescript": "^5.4.0"
48
+ }
49
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "alert",
3
+ "description": "Alert box with success/error/warning/info variants",
4
+ "version": "0.1.0",
5
+ "category": "feedback",
6
+ "files": ["Alert.tsx"],
7
+ "deps": [],
8
+ "peerComponents": []
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "badge",
3
+ "description": "Semantic status indicator badge (success/error/warning/info)",
4
+ "version": "0.1.0",
5
+ "category": "typography",
6
+ "files": ["Badge.tsx"],
7
+ "deps": [],
8
+ "peerComponents": []
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "box",
3
+ "description": "Enhanced flexbox container with theme-aware borders",
4
+ "version": "0.1.0",
5
+ "category": "layout",
6
+ "files": ["Box.tsx"],
7
+ "deps": [],
8
+ "peerComponents": []
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "checkbox",
3
+ "description": "Checkbox with indeterminate state",
4
+ "version": "0.1.0",
5
+ "category": "selection",
6
+ "files": ["Checkbox.tsx"],
7
+ "deps": [],
8
+ "peerComponents": []
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "form",
3
+ "description": "Form container with validation, Ctrl+S submit, and dirty tracking",
4
+ "version": "0.1.0",
5
+ "category": "forms",
6
+ "files": ["Form.tsx"],
7
+ "deps": [],
8
+ "peerComponents": []
9
+ }