@zaly/tui 0.0.11 → 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 (260) hide show
  1. package/assets/schemas/shiki-language.schema.json +352 -0
  2. package/assets/schemas/shiki-theme.schema.json +71 -0
  3. package/assets/schemas/theme.schema.json +227 -732
  4. package/assets/themes/andromeeda.json +97 -0
  5. package/assets/themes/ayu-dark.json +31 -44
  6. package/assets/themes/ayu-light.json +106 -0
  7. package/assets/themes/ayu-mirage.json +106 -0
  8. package/assets/themes/catppuccin-frappe.json +44 -60
  9. package/assets/themes/catppuccin-latte.json +44 -60
  10. package/assets/themes/catppuccin-macchiato.json +44 -60
  11. package/assets/themes/catppuccin-mocha.json +44 -60
  12. package/assets/themes/dark-plus.json +99 -0
  13. package/assets/themes/dracula.json +47 -66
  14. package/assets/themes/everforest-dark.json +28 -45
  15. package/assets/themes/everforest-light.json +28 -45
  16. package/assets/themes/github-dark-default.json +107 -0
  17. package/assets/themes/github-dark-dimmed.json +107 -0
  18. package/assets/themes/github-light-default.json +107 -0
  19. package/assets/themes/gruvbox-dark-hard.json +98 -0
  20. package/assets/themes/gruvbox-dark-medium.json +34 -48
  21. package/assets/themes/gruvbox-light-medium.json +98 -0
  22. package/assets/themes/horizon-bright.json +101 -0
  23. package/assets/themes/horizon.json +101 -0
  24. package/assets/themes/iterm2/LICENSE +25 -0
  25. package/assets/themes/iterm2/README.md +28 -0
  26. package/assets/themes/iterm2/catppuccin-latte.json +140 -0
  27. package/assets/themes/iterm2/catppuccin-mocha.json +140 -0
  28. package/assets/themes/iterm2/github-dark.json +140 -0
  29. package/assets/themes/iterm2/github.json +140 -0
  30. package/assets/themes/iterm2/gruvbox-dark.json +140 -0
  31. package/assets/themes/iterm2/gruvbox-light.json +140 -0
  32. package/assets/themes/iterm2/nord.json +140 -0
  33. package/assets/themes/iterm2/tokyonight-day.json +140 -0
  34. package/assets/themes/iterm2/tokyonight-moon.json +140 -0
  35. package/assets/themes/kanagawa-dragon.json +55 -68
  36. package/assets/themes/kanagawa-lotus.json +105 -0
  37. package/assets/themes/kanagawa-wave.json +55 -68
  38. package/assets/themes/light-plus.json +99 -0
  39. package/assets/themes/material-theme-lighter.json +102 -0
  40. package/assets/themes/material-theme-palenight.json +52 -64
  41. package/assets/themes/material-theme.json +102 -0
  42. package/assets/themes/min-dark.json +67 -28
  43. package/assets/themes/min-light.json +67 -32
  44. package/assets/themes/monokai.json +55 -67
  45. package/assets/themes/night-owl-light.json +105 -0
  46. package/assets/themes/night-owl.json +57 -68
  47. package/assets/themes/nord.json +53 -55
  48. package/assets/themes/one-dark-pro.json +46 -57
  49. package/assets/themes/one-light.json +52 -59
  50. package/assets/themes/poimandres.json +51 -68
  51. package/assets/themes/rose-pine-dawn.json +99 -0
  52. package/assets/themes/rose-pine-moon.json +99 -0
  53. package/assets/themes/rose-pine.json +51 -50
  54. package/assets/themes/solarized-dark.json +39 -51
  55. package/assets/themes/solarized-light.json +40 -52
  56. package/assets/themes/synthwave-84.json +48 -50
  57. package/assets/themes/tokyonight-day.json +6 -7
  58. package/assets/themes/tokyonight-moon.json +6 -6
  59. package/assets/themes/tokyonight-night.json +6 -6
  60. package/assets/themes/tokyonight-storm.json +6 -6
  61. package/assets/themes/vesper.json +51 -58
  62. package/assets/themes/vitesse-black.json +103 -0
  63. package/assets/themes/vitesse-dark.json +26 -49
  64. package/assets/themes/vitesse-light.json +26 -49
  65. package/dist/{actions-DFboj3g5.d.mts → actions--ODlgCQ5.d.mts} +4 -4
  66. package/dist/{actions-DFboj3g5.d.mts.map → actions--ODlgCQ5.d.mts.map} +1 -1
  67. package/dist/{ansi-Clq0ozyA.mjs → ansi-CMv71xVr.mjs} +38 -31
  68. package/dist/ansi-CMv71xVr.mjs.map +1 -0
  69. package/dist/ansi.d.mts +3 -1
  70. package/dist/ansi.d.mts.map +1 -1
  71. package/dist/ansi.mjs +1 -1
  72. package/dist/{autocomplete-CxzetPOo.d.mts → autocomplete-CD30kSe_.d.mts} +4 -4
  73. package/dist/{autocomplete-CxzetPOo.d.mts.map → autocomplete-CD30kSe_.d.mts.map} +1 -1
  74. package/dist/{box-DLEcEvDH.mjs → box-C_N_7ChP.mjs} +2 -2
  75. package/dist/box-C_N_7ChP.mjs.map +1 -0
  76. package/dist/builder-Chwtk0nQ.mjs +196 -0
  77. package/dist/builder-Chwtk0nQ.mjs.map +1 -0
  78. package/dist/{callbacks-D132G8dy.mjs → callbacks-DLecWn7G.mjs} +4 -4
  79. package/dist/{callbacks-D132G8dy.mjs.map → callbacks-DLecWn7G.mjs.map} +1 -1
  80. package/dist/client-CNGt-dOt.mjs +1 -0
  81. package/dist/{client-C2GXKfJ1.mjs → client-D7qz4TZt.mjs} +7 -3
  82. package/dist/client-D7qz4TZt.mjs.map +1 -0
  83. package/dist/color-DBMQLv4Y.mjs +37 -0
  84. package/dist/color-DBMQLv4Y.mjs.map +1 -0
  85. package/dist/{ctx-8Nuf5BrN.mjs → ctx-BaQ2hP5u.mjs} +3 -3
  86. package/dist/{ctx-8Nuf5BrN.mjs.map → ctx-BaQ2hP5u.mjs.map} +1 -1
  87. package/dist/ctx-CndlTp1T.mjs +1 -0
  88. package/dist/{divider-l0-JPEIm.mjs → divider-BlNNN2OS.mjs} +2 -2
  89. package/dist/divider-BlNNN2OS.mjs.map +1 -0
  90. package/dist/{files-BUsa-RVl.d.mts → files-B_5HDBPp.d.mts} +3 -3
  91. package/dist/{files-BUsa-RVl.d.mts.map → files-B_5HDBPp.d.mts.map} +1 -1
  92. package/dist/github-Cy2hfWJ7.mjs.map +1 -1
  93. package/dist/{github-D89A3F9U.d.mts → github-CyRwUQ3y.d.mts} +3 -3
  94. package/dist/{github-D89A3F9U.d.mts.map → github-CyRwUQ3y.d.mts.map} +1 -1
  95. package/dist/{image-34bU73bW.d.mts → image-BLls2F4t.d.mts} +2 -2
  96. package/dist/{image-34bU73bW.d.mts.map → image-BLls2F4t.d.mts.map} +1 -1
  97. package/dist/image-Cqtj3yRA.mjs +178 -0
  98. package/dist/image-Cqtj3yRA.mjs.map +1 -0
  99. package/dist/image.d.mts +1 -1
  100. package/dist/index.d.mts +13 -4
  101. package/dist/index.d.mts.map +1 -1
  102. package/dist/index.mjs +8 -7
  103. package/dist/index.mjs.map +1 -1
  104. package/dist/{input-D7fQEUdt.mjs → input-ET2YEMcl.mjs} +16 -11
  105. package/dist/input-ET2YEMcl.mjs.map +1 -0
  106. package/dist/{input-Dylds_sI.d.mts → input-NuD8TH8N.d.mts} +3 -3
  107. package/dist/{input-Dylds_sI.d.mts.map → input-NuD8TH8N.d.mts.map} +1 -1
  108. package/dist/{inspect-DPLRum7L.d.mts → inspect-B1uXxdKC.d.mts} +11 -15
  109. package/dist/inspect-B1uXxdKC.d.mts.map +1 -0
  110. package/dist/{inspect-CcgiZ_F9.mjs → inspect-Cxzs-W0g.mjs} +2 -2
  111. package/dist/{inspect-CcgiZ_F9.mjs.map → inspect-Cxzs-W0g.mjs.map} +1 -1
  112. package/dist/kitty-DKQYsQfH.mjs +1 -0
  113. package/dist/{log-Dy_QnPZF.mjs → log-B4djzy2m.mjs} +5 -5
  114. package/dist/log-B4djzy2m.mjs.map +1 -0
  115. package/dist/{logger-DvuX9DPS.mjs → logger-CvJCITzP.mjs} +3 -3
  116. package/dist/{logger-DvuX9DPS.mjs.map → logger-CvJCITzP.mjs.map} +1 -1
  117. package/dist/{markdown-BGPa7UzD.mjs → markdown-D3ZtRn6C.mjs} +9 -8
  118. package/dist/markdown-D3ZtRn6C.mjs.map +1 -0
  119. package/dist/markdown.d.mts +1 -1
  120. package/dist/markdown.d.mts.map +1 -1
  121. package/dist/markdown.mjs +1 -1
  122. package/dist/math-CU0wmC9N.mjs +1 -0
  123. package/dist/math-Dd7a1irv.mjs +206 -0
  124. package/dist/math-Dd7a1irv.mjs.map +1 -0
  125. package/dist/oklch-Bsh5swbC.mjs +99 -0
  126. package/dist/oklch-Bsh5swbC.mjs.map +1 -0
  127. package/dist/{overlay-9WXYiGgW.mjs → overlay-LvOjG7kn.mjs} +2 -2
  128. package/dist/{overlay-9WXYiGgW.mjs.map → overlay-LvOjG7kn.mjs.map} +1 -1
  129. package/dist/{picker-JL8lZfRH.d.mts → picker-B-OxKKnD.d.mts} +5 -5
  130. package/dist/{picker-JL8lZfRH.d.mts.map → picker-B-OxKKnD.d.mts.map} +1 -1
  131. package/dist/{picker-BqHINl_a.mjs → picker-f6xjgACX.mjs} +2 -2
  132. package/dist/{picker-BqHINl_a.mjs.map → picker-f6xjgACX.mjs.map} +1 -1
  133. package/dist/{queries-B_lOwEiE.mjs → queries-BUkBxkuM.mjs} +66 -3
  134. package/dist/queries-BUkBxkuM.mjs.map +1 -0
  135. package/dist/{queries-Cvalgu6P.d.mts → queries-C75-wG1B.d.mts} +42 -11
  136. package/dist/queries-C75-wG1B.d.mts.map +1 -0
  137. package/dist/{registry-3hLzS4ks.mjs → registry-DUWpSPoo.mjs} +208 -68
  138. package/dist/registry-DUWpSPoo.mjs.map +1 -0
  139. package/dist/{render-f7M2856V.mjs → render-B7LfNM5K.mjs} +2 -2
  140. package/dist/{render-f7M2856V.mjs.map → render-B7LfNM5K.mjs.map} +1 -1
  141. package/dist/{renderer-V6AGjbyf.mjs → renderer-BLsd-wrG.mjs} +167 -20
  142. package/dist/renderer-BLsd-wrG.mjs.map +1 -0
  143. package/dist/renderer-YHbR7JZ4.mjs +1 -0
  144. package/dist/{renderer-DesbRwjQ.mjs → renderer-aAtkFgll.mjs} +8 -7
  145. package/dist/renderer-aAtkFgll.mjs.map +1 -0
  146. package/dist/{select-zGd5pbiB.d.mts → select-BKE5LzdN.d.mts} +3 -3
  147. package/dist/{select-zGd5pbiB.d.mts.map → select-BKE5LzdN.d.mts.map} +1 -1
  148. package/dist/services/logger.d.mts +1 -1
  149. package/dist/services/logger.mjs +1 -1
  150. package/dist/services/notifier.d.mts +1 -1
  151. package/dist/services/notifier.mjs +2 -2
  152. package/dist/services/picker.d.mts +5 -5
  153. package/dist/services/picker.mjs +6 -6
  154. package/dist/services/prompt.d.mts +4 -4
  155. package/dist/services/prompt.mjs +5 -5
  156. package/dist/shiki/server.mjs +37 -14
  157. package/dist/shiki/server.mjs.map +1 -1
  158. package/dist/shiki-B4U0s8jT.mjs +635 -0
  159. package/dist/shiki-B4U0s8jT.mjs.map +1 -0
  160. package/dist/shiki-CJauRusM.mjs +20 -0
  161. package/dist/shiki-CJauRusM.mjs.map +1 -0
  162. package/dist/style-DslRHzI4.mjs +109 -0
  163. package/dist/style-DslRHzI4.mjs.map +1 -0
  164. package/dist/style.d.mts +4 -3
  165. package/dist/style.d.mts.map +1 -1
  166. package/dist/style.mjs +4 -4
  167. package/dist/{text-CRZD9KTN.mjs → text-BoJdKXLU.mjs} +2 -2
  168. package/dist/{text-CRZD9KTN.mjs.map → text-BoJdKXLU.mjs.map} +1 -1
  169. package/dist/{text-BefiXAFW.d.mts → text-CmxbA8lk.d.mts} +3 -3
  170. package/dist/{text-BefiXAFW.d.mts.map → text-CmxbA8lk.d.mts.map} +1 -1
  171. package/dist/{text-BLz1tRoC.mjs → text-DPrhma4x.mjs} +2 -2
  172. package/dist/text-DPrhma4x.mjs.map +1 -0
  173. package/dist/text.d.mts +1 -1
  174. package/dist/text.mjs +1 -1
  175. package/dist/theme-C8LkcoaK.mjs +61 -0
  176. package/dist/theme-C8LkcoaK.mjs.map +1 -0
  177. package/dist/theme-DVX8dvGG.mjs +1794 -0
  178. package/dist/theme-DVX8dvGG.mjs.map +1 -0
  179. package/dist/themes.d.mts +213 -73
  180. package/dist/themes.d.mts.map +1 -1
  181. package/dist/themes.mjs +1 -1
  182. package/dist/{tree-CArtDRec.d.mts → tree-CTvSpF9b.d.mts} +3 -3
  183. package/dist/{tree-CArtDRec.d.mts.map → tree-CTvSpF9b.d.mts.map} +1 -1
  184. package/dist/{types-C0EOLZDc.d.mts → types-C9ceMsbJ.d.mts} +137 -137
  185. package/dist/types-C9ceMsbJ.d.mts.map +1 -0
  186. package/dist/{widget-DtJU2-BJ.d.mts → widget-DlF32PRp.d.mts} +2 -2
  187. package/dist/{widget-DtJU2-BJ.d.mts.map → widget-DlF32PRp.d.mts.map} +1 -1
  188. package/dist/widgets/autocomplete.d.mts +1 -1
  189. package/dist/widgets/autocomplete.mjs +2 -2
  190. package/dist/widgets/box.d.mts +1 -1
  191. package/dist/widgets/box.mjs +1 -1
  192. package/dist/widgets/code.d.mts +4 -2
  193. package/dist/widgets/code.d.mts.map +1 -1
  194. package/dist/widgets/code.mjs +8 -7
  195. package/dist/widgets/code.mjs.map +1 -1
  196. package/dist/widgets/completions/actions.d.mts +1 -1
  197. package/dist/widgets/completions/files.d.mts +1 -1
  198. package/dist/widgets/completions/github.d.mts +1 -1
  199. package/dist/widgets/completions/index.d.mts +3 -3
  200. package/dist/widgets/diff.d.mts +2 -2
  201. package/dist/widgets/diff.d.mts.map +1 -1
  202. package/dist/widgets/diff.mjs +35 -12
  203. package/dist/widgets/diff.mjs.map +1 -1
  204. package/dist/widgets/divider.d.mts +3 -3
  205. package/dist/widgets/divider.mjs +1 -1
  206. package/dist/widgets/image.d.mts +1 -1
  207. package/dist/widgets/image.mjs +4 -4
  208. package/dist/widgets/image.mjs.map +1 -1
  209. package/dist/widgets/input.d.mts +1 -1
  210. package/dist/widgets/input.mjs +1 -1
  211. package/dist/widgets/log.d.mts +1 -1
  212. package/dist/widgets/log.mjs +1 -1
  213. package/dist/widgets/markdown.d.mts +4 -4
  214. package/dist/widgets/markdown.d.mts.map +1 -1
  215. package/dist/widgets/markdown.mjs +1 -1
  216. package/dist/widgets/overlay.d.mts +1 -1
  217. package/dist/widgets/overlay.mjs +1 -1
  218. package/dist/widgets/picker.d.mts +1 -1
  219. package/dist/widgets/picker.mjs +1 -1
  220. package/dist/widgets/progress.d.mts +4 -4
  221. package/dist/widgets/progress.mjs.map +1 -1
  222. package/dist/widgets/select.d.mts +1 -1
  223. package/dist/widgets/show.d.mts +1 -1
  224. package/dist/widgets/spinner.d.mts +2 -2
  225. package/dist/widgets/text.d.mts +1 -1
  226. package/dist/widgets/text.mjs +1 -1
  227. package/dist/widgets/tree.d.mts +1 -1
  228. package/dist/widgets/widget.d.mts +1 -1
  229. package/package.json +5 -7
  230. package/assets/themes/dracula-soft.json +0 -119
  231. package/assets/themes/github-dark.json +0 -123
  232. package/assets/themes/github-light.json +0 -123
  233. package/dist/ansi-Clq0ozyA.mjs.map +0 -1
  234. package/dist/box-DLEcEvDH.mjs.map +0 -1
  235. package/dist/builder-DC9byAmK.mjs +0 -386
  236. package/dist/builder-DC9byAmK.mjs.map +0 -1
  237. package/dist/client-C2GXKfJ1.mjs.map +0 -1
  238. package/dist/client-bzdHIDL2.mjs +0 -1
  239. package/dist/ctx-k0wTqeql.mjs +0 -1
  240. package/dist/divider-l0-JPEIm.mjs.map +0 -1
  241. package/dist/image-Cm5T-uw-.mjs +0 -108
  242. package/dist/image-Cm5T-uw-.mjs.map +0 -1
  243. package/dist/input-D7fQEUdt.mjs.map +0 -1
  244. package/dist/inspect-DPLRum7L.d.mts.map +0 -1
  245. package/dist/log-Dy_QnPZF.mjs.map +0 -1
  246. package/dist/markdown-BGPa7UzD.mjs.map +0 -1
  247. package/dist/queries-B_lOwEiE.mjs.map +0 -1
  248. package/dist/queries-Cvalgu6P.d.mts.map +0 -1
  249. package/dist/registry-3hLzS4ks.mjs.map +0 -1
  250. package/dist/renderer-BSMOuiLM.mjs +0 -1
  251. package/dist/renderer-DesbRwjQ.mjs.map +0 -1
  252. package/dist/renderer-V6AGjbyf.mjs.map +0 -1
  253. package/dist/shiki--ASSYv4_.mjs +0 -12
  254. package/dist/shiki--ASSYv4_.mjs.map +0 -1
  255. package/dist/shiki-D7l5--zz.mjs +0 -432
  256. package/dist/shiki-D7l5--zz.mjs.map +0 -1
  257. package/dist/text-BLz1tRoC.mjs.map +0 -1
  258. package/dist/theme.config-BKXX_noZ.mjs +0 -863
  259. package/dist/theme.config-BKXX_noZ.mjs.map +0 -1
  260. package/dist/types-C0EOLZDc.d.mts.map +0 -1
@@ -1,103 +1,96 @@
1
1
  {
2
- "$schema": "file:./../schemas/theme.schema.json",
2
+ "$schema": "https://raw.githubusercontent.com/folke/zaly/main/packages/tui/assets/schemas/theme.schema.json",
3
3
  "id": "vesper",
4
4
  "name": "Vesper",
5
5
  "shiki": "vesper",
6
- "text": "#FFF",
7
- "ui": {
8
- "bg": "#101010",
9
- "fg": "#FFF"
10
- },
11
- "primary": "#FFC799",
12
- "accent": "#FFCFA8",
13
- "warn": "#FFC799",
14
- "error": "#FF8080",
15
- "code": {
16
- "bg": "#101010"
17
- },
18
- "mdCodeBlock": {
19
- "bg": "#101010"
20
- },
21
- "overlay": {
22
- "bg": "#101010"
23
- },
24
- "highlight": {
25
- "bg": "#333333"
26
- },
6
+ "bg": "#101010",
7
+ "fg": "#ffffff",
8
+ "primary": "#ffc799",
9
+ "accent": "#ffcfa8",
10
+ "success": "#99ffe4",
11
+ "info": "#ffc799",
12
+ "warn": "#ffc799",
13
+ "error": "#ff8080",
27
14
  "selection": {
28
15
  "bg": "#333333"
29
16
  },
30
17
  "diffAdd": {
31
- "bg": "#1b2421",
32
- "fg": "#99FFE4"
18
+ "bg": "#1b2421"
33
19
  },
34
20
  "diffDel": {
35
- "bg": "#241919",
36
- "fg": "#FF8080"
21
+ "bg": "#241919"
37
22
  },
38
- "comment": {
39
- "fg": "#575757"
23
+ "syntaxBoolean": {
24
+ "fg": "#ffc799"
40
25
  },
41
- "syntaxNumber": {
42
- "fg": "#FFC799"
26
+ "syntaxBracket": {
27
+ "fg": "#ffffff"
43
28
  },
44
- "syntaxString": {
45
- "fg": "#99FFE4"
29
+ "syntaxConstant": {
30
+ "fg": "#ffffff"
46
31
  },
47
- "syntaxBoolean": {
48
- "fg": "#FFC799"
32
+ "syntaxDelimiter": {
33
+ "fg": "#ffffff"
34
+ },
35
+ "syntaxField": {
36
+ "fg": "#ffffff"
49
37
  },
50
38
  "syntaxFunction": {
51
- "fg": "#FFC799"
39
+ "fg": "#ffc799"
52
40
  },
53
- "syntaxField": {
54
- "fg": "#FFF"
41
+ "syntaxNumber": {
42
+ "fg": "#ffc799"
55
43
  },
56
44
  "syntaxSpecial": {
57
- "fg": "#A0A0A0"
45
+ "fg": "#a0a0a0"
46
+ },
47
+ "syntaxString": {
48
+ "fg": "#99ffe4"
49
+ },
50
+ "comment": {
51
+ "fg": "#575757"
58
52
  },
59
53
  "mdHeading": {
60
- "fg": "#FFC799",
61
- "bold": true
54
+ "bold": true,
55
+ "fg": "#ffc799"
62
56
  },
63
57
  "mdHeading1": {
64
- "fg": "#FFC799",
65
- "bold": true
58
+ "bold": true,
59
+ "fg": "#ffc799"
66
60
  },
67
61
  "mdHeading2": {
68
- "fg": "#FFC799",
69
- "bold": true
62
+ "bold": true,
63
+ "fg": "#ffc799"
70
64
  },
71
65
  "mdHeading3": {
72
- "fg": "#FFC799",
73
- "bold": true
66
+ "bold": true,
67
+ "fg": "#ffc799"
74
68
  },
75
69
  "mdHeading4": {
76
- "fg": "#FFC799",
77
- "bold": true
70
+ "bold": true,
71
+ "fg": "#ffc799"
78
72
  },
79
73
  "mdHeading5": {
80
- "fg": "#FFC799",
81
- "bold": true
74
+ "bold": true,
75
+ "fg": "#ffc799"
82
76
  },
83
77
  "mdHeading6": {
84
- "fg": "#FFC799",
85
- "bold": true
78
+ "bold": true,
79
+ "fg": "#ffc799"
86
80
  },
87
81
  "mdBold": {
88
82
  "bold": true,
89
- "fg": "#FFF"
83
+ "fg": "#ffffff"
90
84
  },
91
85
  "mdItalic": {
92
- "italic": true,
93
- "fg": "#FFF"
86
+ "fg": "#ffffff",
87
+ "italic": true
94
88
  },
95
89
  "mdLink": {
96
- "underline": true,
97
- "fg": "#FFC799"
90
+ "fg": "#ffffff"
98
91
  },
99
92
  "mdHr": {
100
93
  "bold": true,
101
- "fg": "#65737E"
94
+ "fg": "#65737e"
102
95
  }
103
96
  }
@@ -0,0 +1,103 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/folke/zaly/main/packages/tui/assets/schemas/theme.schema.json",
3
+ "id": "vitesse-black",
4
+ "name": "Vitesse Black",
5
+ "shiki": "vitesse-black",
6
+ "bg": "#000000",
7
+ "fg": "#afaca2",
8
+ "primary": "#4d9375",
9
+ "accent": "#4d9375",
10
+ "success": "#4d9375",
11
+ "info": "#5eaab5",
12
+ "warn": "#d4976c",
13
+ "error": "#cb7676",
14
+ "selection": {
15
+ "bg": "#161616"
16
+ },
17
+ "diffAdd": {
18
+ "bg": "#182e25"
19
+ },
20
+ "diffDel": {
21
+ "bg": "#361c1c"
22
+ },
23
+ "syntaxBoolean": {
24
+ "fg": "#4d9375"
25
+ },
26
+ "syntaxBracket": {
27
+ "fg": "#444444"
28
+ },
29
+ "syntaxConstant": {
30
+ "fg": "#bd976a"
31
+ },
32
+ "syntaxDelimiter": {
33
+ "fg": "#444444"
34
+ },
35
+ "syntaxField": {
36
+ "fg": "#bd976a"
37
+ },
38
+ "syntaxFunction": {
39
+ "fg": "#80a665"
40
+ },
41
+ "syntaxNumber": {
42
+ "fg": "#4c9a91"
43
+ },
44
+ "syntaxSpecial": {
45
+ "fg": "#4d9375"
46
+ },
47
+ "syntaxString": {
48
+ "fg": "#c98a7d"
49
+ },
50
+ "border": "#191919",
51
+ "comment": {
52
+ "fg": "#657365"
53
+ },
54
+ "mdHeading": {
55
+ "bold": true,
56
+ "fg": "#4d9375"
57
+ },
58
+ "mdHeading1": {
59
+ "bold": true,
60
+ "fg": "#4d9375"
61
+ },
62
+ "mdHeading2": {
63
+ "bold": true,
64
+ "fg": "#4d9375"
65
+ },
66
+ "mdHeading3": {
67
+ "bold": true,
68
+ "fg": "#4d9375"
69
+ },
70
+ "mdHeading4": {
71
+ "bold": true,
72
+ "fg": "#4d9375"
73
+ },
74
+ "mdHeading5": {
75
+ "bold": true,
76
+ "fg": "#4d9375"
77
+ },
78
+ "mdHeading6": {
79
+ "bold": true,
80
+ "fg": "#4d9375"
81
+ },
82
+ "mdBold": {
83
+ "bold": true,
84
+ "fg": "#afaca2"
85
+ },
86
+ "mdItalic": {
87
+ "fg": "#afaca2",
88
+ "italic": true
89
+ },
90
+ "mdLink": {
91
+ "fg": "#c98a7d"
92
+ },
93
+ "mdQuote": {
94
+ "fg": "#5d99a9"
95
+ },
96
+ "mdListBullet": {
97
+ "fg": "#d4976c"
98
+ },
99
+ "mdHr": {
100
+ "bold": true,
101
+ "fg": "#79b8ff"
102
+ }
103
+ }
@@ -1,78 +1,55 @@
1
1
  {
2
- "$schema": "file:./../schemas/theme.schema.json",
2
+ "$schema": "https://raw.githubusercontent.com/folke/zaly/main/packages/tui/assets/schemas/theme.schema.json",
3
3
  "id": "vitesse-dark",
4
4
  "name": "Vitesse Dark",
5
5
  "shiki": "vitesse-dark",
6
- "text": "#dbd7caee",
7
- "subtle": "#777777",
8
- "ui": {
9
- "bg": "#121212",
10
- "fg": "#dbd7caee"
11
- },
6
+ "bg": "#121212",
7
+ "fg": "#cecabe",
12
8
  "primary": "#4d9375",
13
9
  "accent": "#4d9375",
14
10
  "success": "#4d9375",
15
11
  "info": "#5eaab5",
16
12
  "warn": "#d4976c",
17
13
  "error": "#cb7676",
18
- "muted": "#777777",
19
- "border": "#191919",
20
- "code": {
21
- "bg": "#121212"
22
- },
23
- "mdCodeBlock": {
24
- "bg": "#121212"
25
- },
26
- "overlay": {
27
- "bg": "#121212"
28
- },
29
- "highlight": {
30
- "bg": "#272727"
31
- },
32
14
  "selection": {
33
15
  "bg": "#272727"
34
16
  },
35
17
  "diffAdd": {
36
- "bg": "#253a31",
37
- "fg": "#85e89d"
18
+ "bg": "#253a31"
38
19
  },
39
20
  "diffDel": {
40
- "bg": "#422828",
41
- "fg": "#fdaeb7"
21
+ "bg": "#422828"
42
22
  },
43
- "diffTitle": {
44
- "fg": "#fdaeb7",
45
- "bg": "#86181d"
23
+ "syntaxBoolean": {
24
+ "fg": "#4d9375"
46
25
  },
47
- "comment": {
48
- "fg": "#687668"
26
+ "syntaxBracket": {
27
+ "fg": "#666666"
49
28
  },
50
- "syntaxNumber": {
51
- "fg": "#4C9A91"
29
+ "syntaxConstant": {
30
+ "fg": "#bd976a"
52
31
  },
53
- "syntaxString": {
54
- "fg": "#c98a7d"
32
+ "syntaxDelimiter": {
33
+ "fg": "#666666"
55
34
  },
56
- "syntaxBoolean": {
57
- "fg": "#4d9375"
35
+ "syntaxField": {
36
+ "fg": "#bd976a"
58
37
  },
59
38
  "syntaxFunction": {
60
39
  "fg": "#80a665"
61
40
  },
62
- "syntaxField": {
63
- "fg": "#bd976a"
64
- },
65
- "syntaxConstant": {
66
- "fg": "#c99076"
41
+ "syntaxNumber": {
42
+ "fg": "#4c9a91"
67
43
  },
68
44
  "syntaxSpecial": {
69
45
  "fg": "#4d9375"
70
46
  },
71
- "syntaxDelimiter": {
72
- "fg": "#666666"
47
+ "syntaxString": {
48
+ "fg": "#c98a7d"
73
49
  },
74
- "syntaxBracket": {
75
- "fg": "#666666"
50
+ "border": "#191919",
51
+ "comment": {
52
+ "fg": "#687668"
76
53
  },
77
54
  "mdHeading": {
78
55
  "bold": true,
@@ -107,8 +84,8 @@
107
84
  "fg": "#cecabe"
108
85
  },
109
86
  "mdItalic": {
110
- "italic": true,
111
- "fg": "#cecabe"
87
+ "fg": "#cecabe",
88
+ "italic": true
112
89
  },
113
90
  "mdLink": {
114
91
  "fg": "#c98a7d"
@@ -116,8 +93,8 @@
116
93
  "mdQuote": {
117
94
  "fg": "#5d99a9"
118
95
  },
119
- "mdCode": {
120
- "fg": "#4d9375"
96
+ "mdListBullet": {
97
+ "fg": "#d4976c"
121
98
  },
122
99
  "mdHr": {
123
100
  "bold": true,
@@ -1,78 +1,55 @@
1
1
  {
2
- "$schema": "file:./../schemas/theme.schema.json",
2
+ "$schema": "https://raw.githubusercontent.com/folke/zaly/main/packages/tui/assets/schemas/theme.schema.json",
3
3
  "id": "vitesse-light",
4
4
  "name": "Vitesse Light",
5
5
  "shiki": "vitesse-light",
6
- "text": "#393a34",
7
- "subtle": "#aaaaaa",
8
- "ui": {
9
- "bg": "#ffffff",
10
- "fg": "#393a34"
11
- },
6
+ "bg": "#ffffff",
7
+ "fg": "#393a34",
12
8
  "primary": "#1c6b48",
13
9
  "accent": "#1c6b48",
14
10
  "success": "#1e754f",
15
11
  "info": "#2993a3",
16
12
  "warn": "#a65e2b",
17
13
  "error": "#ab5959",
18
- "muted": "#aaaaaa",
19
- "border": "#f0f0f0",
20
- "code": {
21
- "bg": "#ffffff"
22
- },
23
- "mdCodeBlock": {
24
- "bg": "#ffffff"
25
- },
26
- "overlay": {
27
- "bg": "#ffffff"
28
- },
29
- "highlight": {
30
- "bg": "#eaeaea"
31
- },
32
14
  "selection": {
33
15
  "bg": "#eaeaea"
34
16
  },
35
17
  "diffAdd": {
36
- "bg": "#d4e3dd",
37
- "fg": "#22863a"
18
+ "bg": "#d4e3dd"
38
19
  },
39
20
  "diffDel": {
40
- "bg": "#ead5d5",
41
- "fg": "#b31d28"
21
+ "bg": "#ead5d5"
42
22
  },
43
- "diffTitle": {
44
- "fg": "#b31d28",
45
- "bg": "#ffeef0"
23
+ "syntaxBoolean": {
24
+ "fg": "#1e754f"
46
25
  },
47
- "comment": {
48
- "fg": "#a0ada0"
26
+ "syntaxBracket": {
27
+ "fg": "#999999"
49
28
  },
50
- "syntaxNumber": {
51
- "fg": "#2f798a"
29
+ "syntaxConstant": {
30
+ "fg": "#b07d48"
52
31
  },
53
- "syntaxString": {
54
- "fg": "#b56959"
32
+ "syntaxDelimiter": {
33
+ "fg": "#999999"
55
34
  },
56
- "syntaxBoolean": {
57
- "fg": "#1e754f"
35
+ "syntaxField": {
36
+ "fg": "#b07d48"
58
37
  },
59
38
  "syntaxFunction": {
60
39
  "fg": "#59873a"
61
40
  },
62
- "syntaxField": {
63
- "fg": "#b07d48"
64
- },
65
- "syntaxConstant": {
66
- "fg": "#a65e2b"
41
+ "syntaxNumber": {
42
+ "fg": "#2f798a"
67
43
  },
68
44
  "syntaxSpecial": {
69
45
  "fg": "#1e754f"
70
46
  },
71
- "syntaxDelimiter": {
72
- "fg": "#999999"
47
+ "syntaxString": {
48
+ "fg": "#b56959"
73
49
  },
74
- "syntaxBracket": {
75
- "fg": "#999999"
50
+ "border": "#f0f0f0",
51
+ "comment": {
52
+ "fg": "#a0ada0"
76
53
  },
77
54
  "mdHeading": {
78
55
  "bold": true,
@@ -107,8 +84,8 @@
107
84
  "fg": "#393a34"
108
85
  },
109
86
  "mdItalic": {
110
- "italic": true,
111
- "fg": "#393a34"
87
+ "fg": "#393a34",
88
+ "italic": true
112
89
  },
113
90
  "mdLink": {
114
91
  "fg": "#b56959"
@@ -116,8 +93,8 @@
116
93
  "mdQuote": {
117
94
  "fg": "#2e808f"
118
95
  },
119
- "mdCode": {
120
- "fg": "#1c6b48"
96
+ "mdListBullet": {
97
+ "fg": "#a65e2b"
121
98
  },
122
99
  "mdHr": {
123
100
  "bold": true,
@@ -1,6 +1,6 @@
1
- import { Bt as Actions, It as ActionDef } from "./queries-Cvalgu6P.mjs";
2
- import { n as PickerItem } from "./picker-JL8lZfRH.mjs";
3
- import { o as CompletionSource } from "./autocomplete-CxzetPOo.mjs";
1
+ import { Ht as Actions, Rt as ActionDef } from "./queries-C75-wG1B.mjs";
2
+ import { n as PickerItem } from "./picker-B-OxKKnD.mjs";
3
+ import { o as CompletionSource } from "./autocomplete-CD30kSe_.mjs";
4
4
  //#region src/widgets/completions/actions.d.ts
5
5
  /** Completion item produced by `actionsSource`. Carries the full
6
6
  * `ActionInfo` plus the action `id` so the source's `accept` can
@@ -38,4 +38,4 @@ interface ActionsSourceOptions {
38
38
  declare function actionsSource(opts: ActionsSourceOptions): CompletionSource<ActionCompletionItem>;
39
39
  //#endregion
40
40
  export { ActionsSourceOptions as n, actionsSource as r, ActionCompletionItem as t };
41
- //# sourceMappingURL=actions-DFboj3g5.d.mts.map
41
+ //# sourceMappingURL=actions--ODlgCQ5.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"actions-DFboj3g5.d.mts","names":[],"sources":["../src/widgets/completions/actions.ts"],"mappings":";;;;;;;;KAQY,uBAAuB,YAAY;EAAe;EAAY;;UAEzD;;EAEf,SAAS;;EAET,UAAU;;;EAGV,UAAU,YAAY,MAAM;;;;;;;;;;;;;;;;;;iBAmBd,cAAc,MAAM,uBAAuB,iBAAiB"}
1
+ {"version":3,"file":"actions--ODlgCQ5.d.mts","names":[],"sources":["../src/widgets/completions/actions.ts"],"mappings":";;;;;;;;KAQY,uBAAuB,YAAY;EAAe;EAAY;;UAEzD;;EAEf,SAAS;;EAET,UAAU;;;EAGV,UAAU,YAAY,MAAM;;;;;;;;;;;;;;;;;;iBAmBd,cAAc,MAAM,uBAAuB,iBAAiB"}
@@ -1,34 +1,6 @@
1
- import { clamp } from "@zaly/shared";
1
+ import { i as toHex, n as isHexColor, r as parseHex } from "./color-DBMQLv4Y.mjs";
2
2
  import { sliceAnsi } from "@zaly/shared/ansi";
3
3
  import { hasColors } from "@zaly/shared/env";
4
- //#region src/style/color.ts
5
- const hexByte = (n) => clamp(Math.round(n), 0, 255).toString(16).padStart(2, "0");
6
- function toHex(x, y, z) {
7
- const [r, g, b] = Array.isArray(x) ? x : [
8
- x,
9
- y,
10
- z
11
- ];
12
- return `#${hexByte(r)}${hexByte(g)}${hexByte(b)}`;
13
- }
14
- function parseHex(hex) {
15
- let s = hex.charCodeAt(0) === 35 ? hex.slice(1) : hex;
16
- if (s.length === 4) s = s.slice(0, 3);
17
- if (s.length === 8) s = s.slice(0, 6);
18
- if (s.length === 3) s = s[0] + s[0] + s[1] + s[1] + s[2] + s[2];
19
- if (s.length !== 6) throw new Error(`invalid hex color: ${hex}`);
20
- const n = Number.parseInt(s, 16);
21
- if (Number.isNaN(n)) throw new Error(`invalid hex color: ${hex}`);
22
- return [
23
- n >> 16 & 255,
24
- n >> 8 & 255,
25
- n & 255
26
- ];
27
- }
28
- function isHexColor(s) {
29
- return /^#[0-9a-fA-F]{3,8}$/.test(s);
30
- }
31
- //#endregion
32
4
  //#region src/style/ansi.ts
33
5
  const OSC8 = "\x1B]8;;";
34
6
  const ST = "\x1B\\";
@@ -154,6 +126,41 @@ function reapplyStyle(s, escape) {
154
126
  }
155
127
  return result + s.slice(lastPos);
156
128
  }
129
+ /** Resolve terminal-default color resets without changing explicit child colors. */
130
+ function applyDefaultColors(text, fg, bg) {
131
+ if (!fg && !bg || !text.includes("\x1B[")) return text;
132
+ const fgParams = fg.slice(2, -1);
133
+ const bgParams = bg.slice(2, -1);
134
+ return text.replaceAll(/\x1b\[([\d;:]*)m/g, (match, raw) => {
135
+ const params = raw.split(";");
136
+ const next = [];
137
+ let changed = false;
138
+ for (let i = 0; i < params.length; i++) {
139
+ const param = params[i];
140
+ const code = Number(param);
141
+ if (code === 0) {
142
+ next.push(param, ...[fgParams, bgParams].filter(Boolean));
143
+ changed = true;
144
+ } else if (code === 39 && fgParams) {
145
+ next.push(fgParams);
146
+ changed = true;
147
+ } else if (code === 49 && bgParams) {
148
+ next.push(bgParams);
149
+ changed = true;
150
+ } else {
151
+ next.push(param);
152
+ if (code === 38 || code === 48 || code === 58) {
153
+ let count = 0;
154
+ if (params[i + 1] === "2") count = 4;
155
+ else if (params[i + 1] === "5") count = 2;
156
+ next.push(...params.slice(i + 1, i + 1 + count));
157
+ i += count;
158
+ }
159
+ }
160
+ }
161
+ return changed ? `\x1b[${next.join(";")}m` : match;
162
+ });
163
+ }
157
164
  function stripAnsiBg(s) {
158
165
  return s.replaceAll(/\x1b\[([0-9;]*)m/g, (match, raw) => {
159
166
  const next = stripBgParams(raw);
@@ -201,6 +208,6 @@ function ansiBg(str, idx) {
201
208
  return bg;
202
209
  }
203
210
  //#endregion
204
- export { openAnsi as a, styleAnsi as c, toHex as d, hyperlink as i, isHexColor as l, ansiBg as n, reapplyStyle as o, ansiColor as r, stripAnsiBg as s, RESET as t, parseHex as u };
211
+ export { hyperlink as a, stripAnsiBg as c, applyDefaultColors as i, styleAnsi as l, ansiBg as n, openAnsi as o, ansiColor as r, reapplyStyle as s, RESET as t };
205
212
 
206
- //# sourceMappingURL=ansi-Clq0ozyA.mjs.map
213
+ //# sourceMappingURL=ansi-CMv71xVr.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ansi-CMv71xVr.mjs","names":[],"sources":["../src/style/ansi.ts"],"sourcesContent":["import type { AnsiColor, AnsiStyle } from \"./types.ts\"\n\nimport { sliceAnsi } from \"@zaly/shared/ansi\"\nimport { hasColors } from \"@zaly/shared/env\"\nimport { isHexColor, parseHex, toHex } from \"./color.ts\"\n\n/** Optional wrap mode: `\"word\"` (default) breaks at word boundaries;\n * `\"char\"` hard-wraps mid-word. */\nexport interface WrapOpts {\n mode?: \"word\" | \"char\"\n}\n\n// ---- ANSI escape categories -------------------------------------------\n// OSC 8 hyperlink sequence. ESC + backslash is the \"string terminator\" (ST)\n// that closes the OSC. Format: `ESC]8;;URL ST TEXT ESC]8;; ST`.\nconst OSC8 = \"\\x1b]8;;\"\nconst ST = \"\\x1b\\\\\"\nexport const RESET = \"\\x1b[0m\"\n\n// Attribute → SGR code. Order matters for stable output.\nconst ATTRS = [\n [\"bold\", 1],\n [\"dim\", 2],\n [\"italic\", 3],\n [\"underline\", 4],\n [\"inverse\", 7],\n [\"strikethrough\", 9],\n] as const satisfies readonly (readonly [keyof AnsiStyle, number])[]\n\n// Standard 8-color ANSI palette. Offsets from SGR 30 (fg) and 40 (bg).\nconst ANSI_OFFSET: Record<string, number> = {\n black: 0,\n blue: 4,\n cyan: 6,\n green: 2,\n magenta: 5,\n red: 1,\n white: 7,\n yellow: 3,\n}\n\nconst ANSI_BG: Record<number, AnsiColor> = {\n 100: \"gray\", // or \"brightBlack\" if that exists\n 101: \"brightRed\",\n 102: \"brightGreen\",\n 103: \"brightYellow\",\n 104: \"brightBlue\",\n 105: \"brightMagenta\",\n 106: \"brightCyan\",\n 107: \"brightWhite\",\n 40: \"black\",\n 41: \"red\",\n 42: \"green\",\n 43: \"yellow\",\n 44: \"blue\",\n 45: \"magenta\",\n 46: \"cyan\",\n 47: \"white\",\n}\n\nconst notFound = Symbol(\"not found\")\nconst colorCache = new Map<string, string | typeof notFound>()\n\n/**\n * Wrap `text` in an OSC 8 hyperlink pointing at `url`. Modern terminals\n * (iTerm2, kitty, WezTerm, VS Code, Ghostty, …) render the text as\n * clickable while falling back gracefully to plain text elsewhere.\n *\n * Safe to nest ANSI SGR styling inside the `text` argument — OSC 8 is a\n * separate escape category and doesn't conflict.\n *\n * An empty `url` short-circuits and returns `text` unchanged, so callers\n * can unconditionally pipe link text through this helper.\n *\n * @internal\n */\nexport function hyperlink(url: string, text: string): string {\n if (url === \"\") return text\n return `${OSC8}${url}${ST}${text}${OSC8}${ST}`\n}\n\nexport function ansiColor(color: AnsiColor, kind: \"fg\" | \"bg\"): string | undefined {\n if (!hasColors) return\n const key = `${color}-${kind}`\n let cached = colorCache.get(key)\n if (cached === undefined) colorCache.set(key, (cached = _ansiColor(color, kind)) ?? notFound)\n return cached === notFound ? undefined : cached\n}\n\nfunction _ansiColor(color: AnsiColor, kind: \"fg\" | \"bg\"): string | undefined {\n if (color === \"inherit\") return\n // Gray aliases to brightBlack.\n if (color === \"gray\" || color === \"grey\") return String(kind === \"fg\" ? 90 : 100)\n\n const base = color in ANSI_OFFSET ? color : undefined\n if (base !== undefined) return String((kind === \"fg\" ? 30 : 40) + ANSI_OFFSET[base])\n\n if (color.startsWith(\"bright\")) {\n const rest = color.slice(\"bright\".length).toLowerCase()\n if (rest in ANSI_OFFSET) return String((kind === \"fg\" ? 90 : 100) + ANSI_OFFSET[rest])\n }\n\n const rgb = isHexColor(color) ? parseHex(color) : undefined\n if (rgb) {\n const indicator = kind === \"fg\" ? 38 : 48\n return `${indicator};2;${rgb[0]};${rgb[1]};${rgb[2]}`\n }\n}\n\nexport function openAnsi(style: AnsiStyle) {\n if (!hasColors) return \"\"\n const params: (number | string | undefined)[] = []\n for (const [key, code] of ATTRS) if (style[key]) params.push(code)\n if (style.fg !== undefined) params.push(ansiColor(style.fg, \"fg\"))\n if (style.bg !== undefined) params.push(ansiColor(style.bg, \"bg\"))\n const attrs = params.filter((p) => p !== undefined)\n if (attrs.length === 0) return \"\"\n return `\\x1b[${attrs.join(\";\")}m`\n}\n\nexport function styleAnsi(text: string, style?: AnsiStyle): string {\n if (!style) return text\n const open = openAnsi(style)\n if (open === \"\") return text\n return `${open}${text}${RESET}`\n}\n\n/**\n * Post-process a styled string so an outer style is re-applied after any\n * inner full-reset (`\\x1b[0m`). Without this, a child's reset clobbers\n * the parent's bg/fg/attrs for the remainder of the line.\n *\n * `escape` is the already-built SGR run to re-emit after each reset\n * (typically the return value of `openStyle(parentStyle, theme)`). If\n * empty, the input is returned unchanged.\n *\n * Inlined indexOf loop rather than `String.prototype.replaceAll` — the\n * manual version avoids the regex/object allocation overhead of\n * `replaceAll` and runs meaningfully faster on short strings (hot in\n * the builder's `apply`, called once per styled span). Pattern taken\n * from ansis's nested-style resolver.\n *\n * @internal\n */\nexport function reapplyStyle(s: string, escape: string): string {\n if (escape === \"\" || !s.includes(RESET)) return s\n const replacement = RESET + escape\n const searchLength = RESET.length\n let result = \"\"\n let lastPos = 0\n let pos = s.indexOf(RESET)\n while (pos !== -1) {\n result += s.slice(lastPos, pos) + replacement\n lastPos = pos + searchLength\n pos = s.indexOf(RESET, lastPos)\n }\n return result + s.slice(lastPos)\n}\n\n/** Resolve terminal-default color resets without changing explicit child colors. */\nexport function applyDefaultColors(text: string, fg: string, bg: string): string {\n if ((!fg && !bg) || !text.includes(\"\\x1b[\")) return text\n const fgParams = fg.slice(2, -1)\n const bgParams = bg.slice(2, -1)\n return text.replaceAll(/\\x1b\\[([\\d;:]*)m/g, (match, raw: string) => {\n const params = raw.split(\";\")\n const next: string[] = []\n let changed = false\n for (let i = 0; i < params.length; i++) {\n const param = params[i]\n const code = Number(param)\n if (code === 0) {\n next.push(param, ...[fgParams, bgParams].filter(Boolean))\n changed = true\n } else if (code === 39 && fgParams) {\n next.push(fgParams)\n changed = true\n } else if (code === 49 && bgParams) {\n next.push(bgParams)\n changed = true\n } else {\n next.push(param)\n // RGB components and palette indexes can themselves be 0, 39, or 49.\n if (code === 38 || code === 48 || code === 58) {\n let count = 0\n if (params[i + 1] === \"2\") count = 4\n else if (params[i + 1] === \"5\") count = 2\n next.push(...params.slice(i + 1, i + 1 + count))\n i += count\n }\n }\n }\n return changed ? `\\x1b[${next.join(\";\")}m` : match\n })\n}\n\nexport function stripAnsiBg(s: string): string {\n return s.replaceAll(/\\x1b\\[([0-9;]*)m/g, (match, raw: string) => {\n const next = stripBgParams(raw)\n if (next === raw) return match\n return next === \"\" ? \"\" : `\\x1b[${next}m`\n })\n}\n\nfunction stripBgParams(raw: string): string {\n if (raw === \"\") return raw\n const params = raw.split(\";\").map(Number)\n const ret: number[] = []\n for (let i = 0; i < params.length; i++) {\n const p = params[i]\n if ((p >= 40 && p <= 47) || (p >= 100 && p <= 107) || p === 49) continue\n if (p === 48) {\n const mode = params[i + 1]\n if (mode === 2) {\n i += 4\n continue\n }\n if (mode === 5) {\n i += 2\n continue\n }\n continue\n }\n ret.push(p)\n }\n return ret.join(\";\")\n}\n\nexport function ansiBg(str: string, idx: number): AnsiColor | undefined {\n const cell = sliceAnsi(str, idx, idx + 1)\n\n let bg: AnsiColor | undefined\n\n for (const match of cell.matchAll(/\\x1b\\[([0-9;]*)m/g)) {\n const params = match[1].split(\";\").map(Number)\n\n for (let i = 0; i < params.length; i++) {\n const p = params[i]\n\n if ((p >= 40 && p <= 47) || (p >= 100 && p <= 107)) {\n bg = ANSI_BG[p]\n } else if (p === 48 && params[i + 1] === 2) {\n bg = toHex(params[i + 2], params[i + 3], params[i + 4])\n i += 4\n }\n }\n }\n\n return bg\n}\n"],"mappings":"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"}
package/dist/ansi.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { a as AnsiStyle, r as AnsiColor } from "./types-C0EOLZDc.mjs";
1
+ import { r as AnsiStyle, t as AnsiColor } from "./types-C9ceMsbJ.mjs";
2
2
  //#region src/style/ansi.d.ts
3
3
  /** Optional wrap mode: `"word"` (default) breaks at word boundaries;
4
4
  * `"char"` hard-wraps mid-word. */
@@ -41,6 +41,8 @@ export declare function styleAnsi(text: string, style?: AnsiStyle): string;
41
41
  * @internal
42
42
  */
43
43
  export declare function reapplyStyle(s: string, escape: string): string;
44
+ /** Resolve terminal-default color resets without changing explicit child colors. */
45
+ export declare function applyDefaultColors(text: string, fg: string, bg: string): string;
44
46
  export declare function stripAnsiBg(s: string): string;
45
47
  export declare function ansiBg(str: string, idx: number): AnsiColor | undefined;
46
48
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"ansi.d.mts","names":[],"sources":["../src/style/ansi.ts"],"mappings":";;;;iBAQiB;EACf;;qBAQW;;;;;;;;;;;;;;wBA2DG,UAAU,aAAa;wBAKvB,UAAU,OAAO,WAAW;wBA4B5B,SAAS,OAAO;wBAWhB,UAAU,cAAc,QAAQ;;;;;;;;;;;;;;;;;;wBAwBhC,aAAa,WAAW;wBAexB,YAAY;wBAgCZ,OAAO,aAAa,cAAc"}
1
+ {"version":3,"file":"ansi.d.mts","names":[],"sources":["../src/style/ansi.ts"],"mappings":";;;;iBAQiB;EACf;;qBAQW;;;;;;;;;;;;;;wBA2DG,UAAU,aAAa;wBAKvB,UAAU,OAAO,WAAW;wBA4B5B,SAAS,OAAO;wBAWhB,UAAU,cAAc,QAAQ;;;;;;;;;;;;;;;;;;wBAwBhC,aAAa,WAAW;;wBAgBxB,mBAAmB,cAAc,YAAY;wBAoC7C,YAAY;wBAgCZ,OAAO,aAAa,cAAc"}
package/dist/ansi.mjs CHANGED
@@ -1 +1 @@
1
- export { t as RESET, n as ansiBg, r as ansiColor, i as hyperlink, a as openAnsi, o as reapplyStyle, s as stripAnsiBg, c as styleAnsi } from "./ansi-Clq0ozyA.mjs";
1
+ export { t as RESET, n as ansiBg, r as ansiColor, i as applyDefaultColors, a as hyperlink, o as openAnsi, s as reapplyStyle, c as stripAnsiBg, l as styleAnsi } from "./ansi-CMv71xVr.mjs";