@zaly/tui 0.0.12 → 0.1.1

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 (330) 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 +226 -1046
  4. package/assets/themes/andromeeda.json +97 -0
  5. package/assets/themes/ayu-dark.json +31 -25
  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 +43 -40
  9. package/assets/themes/catppuccin-latte.json +43 -40
  10. package/assets/themes/catppuccin-macchiato.json +43 -40
  11. package/assets/themes/catppuccin-mocha.json +43 -40
  12. package/assets/themes/dark-plus.json +99 -0
  13. package/assets/themes/dracula.json +47 -47
  14. package/assets/themes/everforest-dark.json +28 -26
  15. package/assets/themes/everforest-light.json +28 -26
  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 -29
  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 -49
  36. package/assets/themes/kanagawa-lotus.json +105 -0
  37. package/assets/themes/kanagawa-wave.json +56 -50
  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 -45
  41. package/assets/themes/material-theme.json +102 -0
  42. package/assets/themes/min-dark.json +69 -14
  43. package/assets/themes/min-light.json +68 -17
  44. package/assets/themes/monokai.json +54 -47
  45. package/assets/themes/night-owl-light.json +105 -0
  46. package/assets/themes/night-owl.json +57 -49
  47. package/assets/themes/nord.json +53 -39
  48. package/assets/themes/one-dark-pro.json +46 -38
  49. package/assets/themes/one-light.json +52 -41
  50. package/assets/themes/poimandres.json +51 -49
  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 +50 -33
  54. package/assets/themes/solarized-dark.json +38 -31
  55. package/assets/themes/solarized-light.json +40 -33
  56. package/assets/themes/synthwave-84.json +47 -30
  57. package/assets/themes/tokyonight-day.json +3 -3
  58. package/assets/themes/tokyonight-moon.json +3 -2
  59. package/assets/themes/tokyonight-night.json +3 -2
  60. package/assets/themes/tokyonight-storm.json +3 -2
  61. package/assets/themes/vesper.json +50 -42
  62. package/assets/themes/vitesse-black.json +103 -0
  63. package/assets/themes/vitesse-dark.json +26 -30
  64. package/assets/themes/vitesse-light.json +26 -30
  65. package/dist/{actions-DEIKF2ts.mjs → actions-AY6avfEV.mjs} +2 -3
  66. package/dist/{actions-DEIKF2ts.mjs.map → actions-AY6avfEV.mjs.map} +1 -1
  67. package/dist/{actions-Dc4D4uSf.d.mts → actions-B0yyZ-Ww.d.mts} +4 -6
  68. package/dist/actions-B0yyZ-Ww.d.mts.map +1 -0
  69. package/dist/{ansi-DZlXaItJ.mjs → ansi-CxgRPLA2.mjs} +4 -33
  70. package/dist/ansi-CxgRPLA2.mjs.map +1 -0
  71. package/dist/ansi.d.mts +1 -3
  72. package/dist/ansi.d.mts.map +1 -1
  73. package/dist/ansi.mjs +1 -1
  74. package/dist/{autocomplete-StW1QJZJ.d.mts → autocomplete-wgceuhLr.d.mts} +5 -7
  75. package/dist/autocomplete-wgceuhLr.d.mts.map +1 -0
  76. package/dist/{box-BkP4MF82.mjs → box-DToDoXlU.mjs} +8 -10
  77. package/dist/{box-BkP4MF82.mjs.map → box-DToDoXlU.mjs.map} +1 -1
  78. package/dist/builder-BdYlK1Ew.mjs +195 -0
  79. package/dist/builder-BdYlK1Ew.mjs.map +1 -0
  80. package/dist/{callbacks-BwWTCqPJ.mjs → callbacks-DW8XKYKy.mjs} +9 -13
  81. package/dist/{callbacks-BwWTCqPJ.mjs.map → callbacks-DW8XKYKy.mjs.map} +1 -1
  82. package/dist/{client-C2GXKfJ1.mjs → client-BWm6dNZF.mjs} +9 -6
  83. package/dist/client-BWm6dNZF.mjs.map +1 -0
  84. package/dist/client-C69qWhMG.mjs +1 -0
  85. package/dist/{clipboard-CNPBTX7j.mjs → clipboard-UEoX9sup.mjs} +2 -3
  86. package/dist/{clipboard-CNPBTX7j.mjs.map → clipboard-UEoX9sup.mjs.map} +1 -1
  87. package/dist/clipboard.d.mts +0 -2
  88. package/dist/clipboard.d.mts.map +1 -1
  89. package/dist/clipboard.mjs +1 -1
  90. package/dist/color-Cr1VoL49.mjs +36 -0
  91. package/dist/color-Cr1VoL49.mjs.map +1 -0
  92. package/dist/ctx-CYEzzH-7.mjs +1 -0
  93. package/dist/{ctx-B7BmPUCD.mjs → ctx-DBeFcZt6.mjs} +4 -5
  94. package/dist/{ctx-B7BmPUCD.mjs.map → ctx-DBeFcZt6.mjs.map} +1 -1
  95. package/dist/{divider-TSx9NhI_.mjs → divider-qEj5prKE.mjs} +3 -4
  96. package/dist/{divider-TSx9NhI_.mjs.map → divider-qEj5prKE.mjs.map} +1 -1
  97. package/dist/{files-BvThQpOf.mjs → files-C3ZnFpvq.mjs} +3 -4
  98. package/dist/{files-BvThQpOf.mjs.map → files-C3ZnFpvq.mjs.map} +1 -1
  99. package/dist/{files-7DUYSeNc.d.mts → files-CdiDnwA_.d.mts} +3 -5
  100. package/dist/files-CdiDnwA_.d.mts.map +1 -0
  101. package/dist/{flex-Bguo-fUe.mjs → flex-CYp4etqn.mjs} +3 -4
  102. package/dist/{flex-Bguo-fUe.mjs.map → flex-CYp4etqn.mjs.map} +1 -1
  103. package/dist/{github-Cy2hfWJ7.mjs → github-CLveT9mq.mjs} +2 -3
  104. package/dist/{github-Cy2hfWJ7.mjs.map → github-CLveT9mq.mjs.map} +1 -1
  105. package/dist/{github-C1KfXk98.d.mts → github-DC0XemKa.d.mts} +3 -5
  106. package/dist/github-DC0XemKa.d.mts.map +1 -0
  107. package/dist/{image-VaT7AN-S.d.mts → image-DdRDv7q6.d.mts} +2 -4
  108. package/dist/image-DdRDv7q6.d.mts.map +1 -0
  109. package/dist/image-M--Bw4bs.mjs +177 -0
  110. package/dist/image-M--Bw4bs.mjs.map +1 -0
  111. package/dist/image.d.mts +1 -3
  112. package/dist/image.d.mts.map +1 -1
  113. package/dist/image.mjs +1 -1
  114. package/dist/index.d.mts +11 -14
  115. package/dist/index.d.mts.map +1 -1
  116. package/dist/index.mjs +12 -14
  117. package/dist/index.mjs.map +1 -1
  118. package/dist/{input-BGTTujDN.mjs → input-BkE4EpBw.mjs} +6 -7
  119. package/dist/{input-BGTTujDN.mjs.map → input-BkE4EpBw.mjs.map} +1 -1
  120. package/dist/{input-BAYux7qo.d.mts → input-C3kfYoEJ.d.mts} +3 -5
  121. package/dist/input-C3kfYoEJ.d.mts.map +1 -0
  122. package/dist/{inspect-jG_W4njH.mjs → inspect-Cli1beu8.mjs} +3 -4
  123. package/dist/{inspect-jG_W4njH.mjs.map → inspect-Cli1beu8.mjs.map} +1 -1
  124. package/dist/{inspect-CfNydMgO.d.mts → inspect-hSl3U2BD.d.mts} +2 -6
  125. package/dist/inspect-hSl3U2BD.d.mts.map +1 -0
  126. package/dist/kitty-0sJ8axU_.mjs +1 -0
  127. package/dist/{kitty-JbCJC0iQ.mjs → kitty-BH_eK6lz.mjs} +2 -3
  128. package/dist/{kitty-JbCJC0iQ.mjs.map → kitty-BH_eK6lz.mjs.map} +1 -1
  129. package/dist/{log-ByKlM4iI.mjs → log-96b1_J6G.mjs} +6 -7
  130. package/dist/{log-ByKlM4iI.mjs.map → log-96b1_J6G.mjs.map} +1 -1
  131. package/dist/{logger-DSQb0sLP.mjs → logger-DwfXp8LF.mjs} +5 -6
  132. package/dist/{logger-DSQb0sLP.mjs.map → logger-DwfXp8LF.mjs.map} +1 -1
  133. package/dist/{markdown-CwRmWuU6.mjs → markdown-CgRZBhIX.mjs} +12 -12
  134. package/dist/markdown-CgRZBhIX.mjs.map +1 -0
  135. package/dist/markdown.d.mts +2 -4
  136. package/dist/markdown.d.mts.map +1 -1
  137. package/dist/markdown.mjs +1 -1
  138. package/dist/math-Dk8hxbmz.mjs +1 -0
  139. package/dist/math-VPuwFCid.mjs +205 -0
  140. package/dist/math-VPuwFCid.mjs.map +1 -0
  141. package/dist/md.bun.d.mts +1 -3
  142. package/dist/md.bun.d.mts.map +1 -1
  143. package/dist/md.bun.mjs +2 -3
  144. package/dist/md.node.d.mts +1 -3
  145. package/dist/md.node.d.mts.map +1 -1
  146. package/dist/md.node.mjs +2 -3
  147. package/dist/{node-BZ7f6HzU.mjs → node-CXNobGaP.mjs} +3 -4
  148. package/dist/{node-BZ7f6HzU.mjs.map → node-CXNobGaP.mjs.map} +1 -1
  149. package/dist/oklch-Boh4YHEc.mjs +98 -0
  150. package/dist/oklch-Boh4YHEc.mjs.map +1 -0
  151. package/dist/{overlay-BnvOKtGT.mjs → overlay-CevDWgSF.mjs} +3 -4
  152. package/dist/{overlay-BnvOKtGT.mjs.map → overlay-CevDWgSF.mjs.map} +1 -1
  153. package/dist/{picker-Dh5IUrTk.mjs → picker-D9WrE3zF.mjs} +11 -16
  154. package/dist/{picker-Dh5IUrTk.mjs.map → picker-D9WrE3zF.mjs.map} +1 -1
  155. package/dist/{picker-DQs_IW77.d.mts → picker-DsB6--GN.d.mts} +6 -8
  156. package/dist/picker-DsB6--GN.d.mts.map +1 -0
  157. package/dist/{queries-B_lOwEiE.mjs → queries-BIniKnLL.mjs} +68 -7
  158. package/dist/queries-BIniKnLL.mjs.map +1 -0
  159. package/dist/{queries-BDX8mcl5.d.mts → queries-Dmd3IjSd.d.mts} +19 -52
  160. package/dist/queries-Dmd3IjSd.d.mts.map +1 -0
  161. package/dist/{reactive-f7NpAi69.mjs → reactive-DkP75TPk.mjs} +2 -3
  162. package/dist/{reactive-f7NpAi69.mjs.map → reactive-DkP75TPk.mjs.map} +1 -1
  163. package/dist/{registry-D-suU3g0.mjs → registry-CQU0VwpM.mjs} +205 -65
  164. package/dist/registry-CQU0VwpM.mjs.map +1 -0
  165. package/dist/{render-DEIUNLkh.mjs → render-Bp2N2i6J.mjs} +4 -5
  166. package/dist/{render-DEIUNLkh.mjs.map → render-Bp2N2i6J.mjs.map} +1 -1
  167. package/dist/{renderer-zDNlAovy.mjs → renderer-B9sAMA10.mjs} +123 -40
  168. package/dist/renderer-B9sAMA10.mjs.map +1 -0
  169. package/dist/{renderer-MQue4Da5.mjs → renderer-BYl2pbdx.mjs} +9 -9
  170. package/dist/renderer-BYl2pbdx.mjs.map +1 -0
  171. package/dist/renderer-Ctz0hv5o.mjs +1 -0
  172. package/dist/{search-FvGnswRl.d.mts → search-DsHzamic.d.mts} +1 -9
  173. package/dist/search-DsHzamic.d.mts.map +1 -0
  174. package/dist/{select-J2KtwxyK.d.mts → select-BZCFXdjp.d.mts} +3 -5
  175. package/dist/select-BZCFXdjp.d.mts.map +1 -0
  176. package/dist/{select-m7NE6Rwa.mjs → select-CUmAFKJh.mjs} +5 -6
  177. package/dist/{select-m7NE6Rwa.mjs.map → select-CUmAFKJh.mjs.map} +1 -1
  178. package/dist/services/logger.d.mts +1 -1
  179. package/dist/services/logger.mjs +1 -1
  180. package/dist/services/notifier.d.mts +1 -3
  181. package/dist/services/notifier.d.mts.map +1 -1
  182. package/dist/services/notifier.mjs +3 -4
  183. package/dist/services/picker.d.mts +5 -7
  184. package/dist/services/picker.d.mts.map +1 -1
  185. package/dist/services/picker.mjs +8 -9
  186. package/dist/services/prompt.d.mts +4 -6
  187. package/dist/services/prompt.d.mts.map +1 -1
  188. package/dist/services/prompt.mjs +7 -8
  189. package/dist/shiki/server.mjs +40 -19
  190. package/dist/shiki/server.mjs.map +1 -1
  191. package/dist/shiki-BAf9PdIc.mjs +19 -0
  192. package/dist/shiki-BAf9PdIc.mjs.map +1 -0
  193. package/dist/shiki-DUUAIE6f.mjs +632 -0
  194. package/dist/shiki-DUUAIE6f.mjs.map +1 -0
  195. package/dist/{show-DR2x1YFc.mjs → show-D5XNXgZf.mjs} +4 -5
  196. package/dist/{show-DR2x1YFc.mjs.map → show-D5XNXgZf.mjs.map} +1 -1
  197. package/dist/{size-D8JogYLy.mjs → size-BHRJuRk9.mjs} +2 -3
  198. package/dist/{size-D8JogYLy.mjs.map → size-BHRJuRk9.mjs.map} +1 -1
  199. package/dist/style-Cw_EuszU.mjs +108 -0
  200. package/dist/style-Cw_EuszU.mjs.map +1 -0
  201. package/dist/style.d.mts +4 -5
  202. package/dist/style.d.mts.map +1 -1
  203. package/dist/style.mjs +4 -4
  204. package/dist/{text-CkQ7Irmt.mjs → text-4arC3odI.mjs} +3 -4
  205. package/dist/{text-CkQ7Irmt.mjs.map → text-4arC3odI.mjs.map} +1 -1
  206. package/dist/{text-XvPfweeg.mjs → text-BArwVVkg.mjs} +5 -6
  207. package/dist/{text-XvPfweeg.mjs.map → text-BArwVVkg.mjs.map} +1 -1
  208. package/dist/{text-CCYs9RB2.d.mts → text-DdkJXgoC.d.mts} +3 -5
  209. package/dist/text-DdkJXgoC.d.mts.map +1 -0
  210. package/dist/text.d.mts +1 -1
  211. package/dist/text.mjs +1 -1
  212. package/dist/theme-B8hb1lPU.mjs +60 -0
  213. package/dist/theme-B8hb1lPU.mjs.map +1 -0
  214. package/dist/theme-BeSaXGNY.mjs +1792 -0
  215. package/dist/theme-BeSaXGNY.mjs.map +1 -0
  216. package/dist/themes.d.mts +211 -77
  217. package/dist/themes.d.mts.map +1 -1
  218. package/dist/themes.mjs +1 -1
  219. package/dist/{tree-DJl5W_B7.d.mts → tree-Berzv8Rz.d.mts} +3 -5
  220. package/dist/tree-Berzv8Rz.d.mts.map +1 -0
  221. package/dist/{tree-Bo1afYhe.mjs → tree-D6NvMQx8.mjs} +5 -6
  222. package/dist/{tree-Bo1afYhe.mjs.map → tree-D6NvMQx8.mjs.map} +1 -1
  223. package/dist/{types-D2EYlzmK.d.mts → types-ByMHEdCF.d.mts} +133 -131
  224. package/dist/types-ByMHEdCF.d.mts.map +1 -0
  225. package/dist/{types-D3jk1rtk.d.mts → types-CUVUJPz6.d.mts} +1 -3
  226. package/dist/types-CUVUJPz6.d.mts.map +1 -0
  227. package/dist/{utils-3M4D_AXZ.mjs → utils-DHXAegVW.mjs} +1 -2
  228. package/dist/{utils-3M4D_AXZ.mjs.map → utils-DHXAegVW.mjs.map} +1 -1
  229. package/dist/{widget-BkMwhY2p.mjs → widget-sFveyrZE.mjs} +3 -4
  230. package/dist/{widget-BkMwhY2p.mjs.map → widget-sFveyrZE.mjs.map} +1 -1
  231. package/dist/{widget-DPqBbB57.d.mts → widget-sPJaKVU2.d.mts} +2 -4
  232. package/dist/widget-sPJaKVU2.d.mts.map +1 -0
  233. package/dist/widgets/autocomplete.d.mts +1 -1
  234. package/dist/widgets/autocomplete.mjs +5 -6
  235. package/dist/widgets/box.d.mts +1 -1
  236. package/dist/widgets/box.mjs +1 -1
  237. package/dist/widgets/code.d.mts +4 -4
  238. package/dist/widgets/code.d.mts.map +1 -1
  239. package/dist/widgets/code.mjs +12 -12
  240. package/dist/widgets/code.mjs.map +1 -1
  241. package/dist/widgets/completions/actions.d.mts +1 -1
  242. package/dist/widgets/completions/actions.mjs +1 -1
  243. package/dist/widgets/completions/files.d.mts +1 -1
  244. package/dist/widgets/completions/files.mjs +1 -1
  245. package/dist/widgets/completions/github.d.mts +1 -1
  246. package/dist/widgets/completions/github.mjs +1 -1
  247. package/dist/widgets/completions/index.d.mts +3 -3
  248. package/dist/widgets/completions/index.mjs +3 -3
  249. package/dist/widgets/diff.d.mts +2 -4
  250. package/dist/widgets/diff.d.mts.map +1 -1
  251. package/dist/widgets/diff.mjs +38 -16
  252. package/dist/widgets/diff.mjs.map +1 -1
  253. package/dist/widgets/divider.d.mts +2 -4
  254. package/dist/widgets/divider.d.mts.map +1 -1
  255. package/dist/widgets/divider.mjs +1 -1
  256. package/dist/widgets/image.d.mts +1 -1
  257. package/dist/widgets/image.mjs +8 -9
  258. package/dist/widgets/image.mjs.map +1 -1
  259. package/dist/widgets/input.d.mts +1 -1
  260. package/dist/widgets/input.mjs +1 -1
  261. package/dist/widgets/log.d.mts +1 -1
  262. package/dist/widgets/log.mjs +1 -1
  263. package/dist/widgets/markdown.d.mts +5 -7
  264. package/dist/widgets/markdown.d.mts.map +1 -1
  265. package/dist/widgets/markdown.mjs +1 -1
  266. package/dist/widgets/overlay.d.mts +1 -1
  267. package/dist/widgets/overlay.mjs +1 -1
  268. package/dist/widgets/picker.d.mts +1 -1
  269. package/dist/widgets/picker.mjs +1 -1
  270. package/dist/widgets/progress.d.mts +2 -4
  271. package/dist/widgets/progress.d.mts.map +1 -1
  272. package/dist/widgets/progress.mjs +4 -5
  273. package/dist/widgets/select.d.mts +1 -1
  274. package/dist/widgets/select.mjs +1 -1
  275. package/dist/widgets/show.d.mts +1 -3
  276. package/dist/widgets/show.d.mts.map +1 -1
  277. package/dist/widgets/show.mjs +1 -1
  278. package/dist/widgets/spinner.d.mts +2 -4
  279. package/dist/widgets/spinner.d.mts.map +1 -1
  280. package/dist/widgets/spinner.mjs +3 -4
  281. package/dist/widgets/text.d.mts +1 -1
  282. package/dist/widgets/text.mjs +1 -1
  283. package/dist/widgets/tree.d.mts +1 -1
  284. package/dist/widgets/tree.mjs +1 -1
  285. package/dist/widgets/widget.d.mts +1 -1
  286. package/dist/widgets/widget.mjs +1 -1
  287. package/dist/{worker-T6SdPzUH.mjs → worker-CtEowucz.mjs} +2 -3
  288. package/dist/{worker-T6SdPzUH.mjs.map → worker-CtEowucz.mjs.map} +1 -1
  289. package/dist/worker-Mqi380Et.mjs +1 -0
  290. package/package.json +5 -7
  291. package/assets/themes/dracula-soft.json +0 -100
  292. package/assets/themes/github-dark.json +0 -104
  293. package/assets/themes/github-light.json +0 -104
  294. package/dist/actions-Dc4D4uSf.d.mts.map +0 -1
  295. package/dist/ansi-DZlXaItJ.mjs.map +0 -1
  296. package/dist/autocomplete-StW1QJZJ.d.mts.map +0 -1
  297. package/dist/builder-1z5ewEWK.mjs +0 -386
  298. package/dist/builder-1z5ewEWK.mjs.map +0 -1
  299. package/dist/client-C2GXKfJ1.mjs.map +0 -1
  300. package/dist/client-bzdHIDL2.mjs +0 -1
  301. package/dist/ctx-D_JgJ8Eo.mjs +0 -1
  302. package/dist/files-7DUYSeNc.d.mts.map +0 -1
  303. package/dist/github-C1KfXk98.d.mts.map +0 -1
  304. package/dist/image-Cm5T-uw-.mjs +0 -108
  305. package/dist/image-Cm5T-uw-.mjs.map +0 -1
  306. package/dist/image-VaT7AN-S.d.mts.map +0 -1
  307. package/dist/input-BAYux7qo.d.mts.map +0 -1
  308. package/dist/inspect-CfNydMgO.d.mts.map +0 -1
  309. package/dist/markdown-CwRmWuU6.mjs.map +0 -1
  310. package/dist/picker-DQs_IW77.d.mts.map +0 -1
  311. package/dist/queries-BDX8mcl5.d.mts.map +0 -1
  312. package/dist/queries-B_lOwEiE.mjs.map +0 -1
  313. package/dist/registry-D-suU3g0.mjs.map +0 -1
  314. package/dist/renderer-DhqbEVVR.mjs +0 -1
  315. package/dist/renderer-MQue4Da5.mjs.map +0 -1
  316. package/dist/renderer-zDNlAovy.mjs.map +0 -1
  317. package/dist/search-FvGnswRl.d.mts.map +0 -1
  318. package/dist/select-J2KtwxyK.d.mts.map +0 -1
  319. package/dist/shiki--ASSYv4_.mjs +0 -12
  320. package/dist/shiki--ASSYv4_.mjs.map +0 -1
  321. package/dist/shiki-D7l5--zz.mjs +0 -432
  322. package/dist/shiki-D7l5--zz.mjs.map +0 -1
  323. package/dist/text-CCYs9RB2.d.mts.map +0 -1
  324. package/dist/theme.config-B3Yx--C2.mjs +0 -855
  325. package/dist/theme.config-B3Yx--C2.mjs.map +0 -1
  326. package/dist/tree-DJl5W_B7.d.mts.map +0 -1
  327. package/dist/types-D2EYlzmK.d.mts.map +0 -1
  328. package/dist/types-D3jk1rtk.d.mts.map +0 -1
  329. package/dist/widget-DPqBbB57.d.mts.map +0 -1
  330. package/dist/worker-C01jK2Ip.mjs +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"worker-T6SdPzUH.mjs","names":[],"sources":["../src/shiki/worker.ts"],"sourcesContent":["// oxlint-disable typescript/method-signature-style unicorn/require-post-message-target-origin\nimport type { MaybePromise } from \"@zaly/shared\"\n\nexport const workerHost = {\n onMessage: (handler: (message: any) => MaybePromise): void => {\n if (typeof globalThis.addEventListener === \"function\") {\n globalThis.addEventListener(\"message\", (event: MessageEvent) => void handler(event.data))\n return\n }\n void import(\"node:worker_threads\").then(({ parentPort }) => {\n parentPort?.on(\"message\", (message) => void handler(message))\n })\n },\n\n postMessage: (message: unknown): void => {\n if (typeof globalThis.postMessage === \"function\") {\n // oxlint-disable-next-line unicorn/require-post-message-target-origin\n globalThis.postMessage(message)\n return\n }\n void import(\"node:worker_threads\").then(({ parentPort }) => {\n // oxlint-disable-next-line unicorn/require-post-message-target-origin\n parentPort?.postMessage(message)\n })\n },\n}\n\nexport type WorkerInstance<In = unknown, Out = unknown> = {\n on(event: \"message\", handler: (message: Out) => MaybePromise): void\n on(event: \"error\", handler: (error: Error) => MaybePromise): void\n postMessage(message: In): void\n terminate(): void\n}\n\nexport async function createWorker<In = unknown, Out = unknown>(): Promise<\n WorkerInstance<In, Out>\n> {\n const scriptURL = new URL(import.meta.resolve(\"#shiki-worker\"))\n if (typeof globalThis.Worker === \"function\") {\n const w = new Worker(scriptURL, { type: \"module\" })\n // oxlint-disable-next-line typescript/no-unnecessary-condition\n w.unref?.()\n return {\n on: (event, handler) => {\n if (event === \"error\")\n w.addEventListener(event, (e) => void handler(e.error ?? new Error(e.message)))\n else w.addEventListener(event, (e) => void handler(e.data))\n // Registering a listener can re-reference the worker.\n // oxlint-disable-next-line typescript/no-unnecessary-condition\n w.unref?.()\n },\n postMessage: (message) => w.postMessage(message),\n terminate: () => w.terminate(),\n }\n }\n const { Worker: NodeWorker } = await import(\"node:worker_threads\")\n const worker = new NodeWorker(scriptURL)\n worker.unref()\n return {\n on: (event, handler) => {\n worker.on(event, (e) => void handler(e))\n // Registering a listener re-references the worker's MessagePort.\n worker.unref()\n },\n postMessage: (message) => worker.postMessage(message),\n terminate: () => void worker.terminate(),\n }\n}\n"],"mappings":";AAGA,MAAa,aAAa;CACxB,YAAY,YAAkD;EAC5D,IAAI,OAAO,WAAW,qBAAqB,YAAY;GACrD,WAAW,iBAAiB,YAAY,UAAwB,KAAK,QAAQ,MAAM,IAAI,CAAC;GACxF;EACF;EACA,OAAY,sBAAsB,CAAC,MAAM,EAAE,iBAAiB;GAC1D,YAAY,GAAG,YAAY,YAAY,KAAK,QAAQ,OAAO,CAAC;EAC9D,CAAC;CACH;CAEA,cAAc,YAA2B;EACvC,IAAI,OAAO,WAAW,gBAAgB,YAAY;GAEhD,WAAW,YAAY,OAAO;GAC9B;EACF;EACA,OAAY,sBAAsB,CAAC,MAAM,EAAE,iBAAiB;GAE1D,YAAY,YAAY,OAAO;EACjC,CAAC;CACH;AACF;AASA,eAAsB,eAEpB;CACA,MAAM,YAAY,IAAI,IAAI,YAAY,QAAQ,eAAe,CAAC;CAC9D,IAAI,OAAO,WAAW,WAAW,YAAY;EAC3C,MAAM,IAAI,IAAI,OAAO,WAAW,EAAE,MAAM,SAAS,CAAC;EAElD,EAAE,QAAQ;EACV,OAAO;GACL,KAAK,OAAO,YAAY;IACtB,IAAI,UAAU,SACZ,EAAE,iBAAiB,QAAQ,MAAM,KAAK,QAAQ,EAAE,SAAS,IAAI,MAAM,EAAE,OAAO,CAAC,CAAC;SAC3E,EAAE,iBAAiB,QAAQ,MAAM,KAAK,QAAQ,EAAE,IAAI,CAAC;IAG1D,EAAE,QAAQ;GACZ;GACA,cAAc,YAAY,EAAE,YAAY,OAAO;GAC/C,iBAAiB,EAAE,UAAU;EAC/B;CACF;CACA,MAAM,EAAE,QAAQ,eAAe,MAAM,OAAO;CAC5C,MAAM,SAAS,IAAI,WAAW,SAAS;CACvC,OAAO,MAAM;CACb,OAAO;EACL,KAAK,OAAO,YAAY;GACtB,OAAO,GAAG,QAAQ,MAAM,KAAK,QAAQ,CAAC,CAAC;GAEvC,OAAO,MAAM;EACf;EACA,cAAc,YAAY,OAAO,YAAY,OAAO;EACpD,iBAAiB,KAAK,OAAO,UAAU;CACzC;AACF"}
1
+ {"version":3,"file":"worker-CtEowucz.mjs","names":[],"sources":["../src/shiki/worker.ts"],"sourcesContent":["// oxlint-disable typescript/method-signature-style unicorn/require-post-message-target-origin\nimport type { MaybePromise } from \"@zaly/shared\"\n\nexport const workerHost = {\n onMessage: (handler: (message: any) => MaybePromise): void => {\n if (typeof globalThis.addEventListener === \"function\") {\n globalThis.addEventListener(\"message\", (event: MessageEvent) => void handler(event.data))\n return\n }\n void import(\"node:worker_threads\").then(({ parentPort }) => {\n parentPort?.on(\"message\", (message) => void handler(message))\n })\n },\n\n postMessage: (message: unknown): void => {\n if (typeof globalThis.postMessage === \"function\") {\n // oxlint-disable-next-line unicorn/require-post-message-target-origin\n globalThis.postMessage(message)\n return\n }\n void import(\"node:worker_threads\").then(({ parentPort }) => {\n // oxlint-disable-next-line unicorn/require-post-message-target-origin\n parentPort?.postMessage(message)\n })\n },\n}\n\nexport type WorkerInstance<In = unknown, Out = unknown> = {\n on(event: \"message\", handler: (message: Out) => MaybePromise): void\n on(event: \"error\", handler: (error: Error) => MaybePromise): void\n postMessage(message: In): void\n terminate(): void\n}\n\nexport async function createWorker<In = unknown, Out = unknown>(): Promise<\n WorkerInstance<In, Out>\n> {\n const scriptURL = new URL(import.meta.resolve(\"#shiki-worker\"))\n if (typeof globalThis.Worker === \"function\") {\n const w = new Worker(scriptURL, { type: \"module\" })\n // oxlint-disable-next-line typescript/no-unnecessary-condition\n w.unref?.()\n return {\n on: (event, handler) => {\n if (event === \"error\")\n w.addEventListener(event, (e) => void handler(e.error ?? new Error(e.message)))\n else w.addEventListener(event, (e) => void handler(e.data))\n // Registering a listener can re-reference the worker.\n // oxlint-disable-next-line typescript/no-unnecessary-condition\n w.unref?.()\n },\n postMessage: (message) => w.postMessage(message),\n terminate: () => w.terminate(),\n }\n }\n const { Worker: NodeWorker } = await import(\"node:worker_threads\")\n const worker = new NodeWorker(scriptURL)\n worker.unref()\n return {\n on: (event, handler) => {\n worker.on(event, (e) => void handler(e))\n // Registering a listener re-references the worker's MessagePort.\n worker.unref()\n },\n postMessage: (message) => worker.postMessage(message),\n terminate: () => void worker.terminate(),\n }\n}\n"],"mappings":";AAGA,MAAa,aAAa;CACxB,YAAY,YAAkD;EAC5D,IAAI,OAAO,WAAW,qBAAqB,YAAY;GACrD,WAAW,iBAAiB,YAAY,UAAwB,KAAK,QAAQ,MAAM,IAAI,CAAC;GACxF;EACF;EACA,OAAY,sBAAsB,CAAC,MAAM,EAAE,iBAAiB;GAC1D,YAAY,GAAG,YAAY,YAAY,KAAK,QAAQ,OAAO,CAAC;EAC9D,CAAC;CACH;CAEA,cAAc,YAA2B;EACvC,IAAI,OAAO,WAAW,gBAAgB,YAAY;GAEhD,WAAW,YAAY,OAAO;GAC9B;EACF;EACA,OAAY,sBAAsB,CAAC,MAAM,EAAE,iBAAiB;GAE1D,YAAY,YAAY,OAAO;EACjC,CAAC;CACH;AACF;AASA,eAAsB,eAEpB;CACA,MAAM,YAAY,IAAI,IAAI,YAAY,QAAQ,eAAe,CAAC;CAC9D,IAAI,OAAO,WAAW,WAAW,YAAY;EAC3C,MAAM,IAAI,IAAI,OAAO,WAAW,EAAE,MAAM,SAAS,CAAC;EAElD,EAAE,QAAQ;EACV,OAAO;GACL,KAAK,OAAO,YAAY;IACtB,IAAI,UAAU,SACZ,EAAE,iBAAiB,QAAQ,MAAM,KAAK,QAAQ,EAAE,SAAS,IAAI,MAAM,EAAE,OAAO,CAAC,CAAC;SAC3E,EAAE,iBAAiB,QAAQ,MAAM,KAAK,QAAQ,EAAE,IAAI,CAAC;IAG1D,EAAE,QAAQ;GACZ;GACA,cAAc,YAAY,EAAE,YAAY,OAAO;GAC/C,iBAAiB,EAAE,UAAU;EAC/B;CACF;CACA,MAAM,EAAE,QAAQ,eAAe,MAAM,OAAO;CAC5C,MAAM,SAAS,IAAI,WAAW,SAAS;CACvC,OAAO,MAAM;CACb,OAAO;EACL,KAAK,OAAO,YAAY;GACtB,OAAO,GAAG,QAAQ,MAAM,KAAK,QAAQ,CAAC,CAAC;GAEvC,OAAO,MAAM;EACf;EACA,cAAc,YAAY,OAAO,YAAY,OAAO;EACpD,iBAAiB,KAAK,OAAO,UAAU;CACzC;AACF"}
@@ -0,0 +1 @@
1
+ export { t as createWorker } from "./worker-CtEowucz.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zaly/tui",
3
- "version": "0.0.12",
3
+ "version": "0.1.1",
4
4
  "description": "Terminal UI framework used by zaly.",
5
5
  "keywords": [
6
6
  "ansi",
@@ -79,18 +79,20 @@
79
79
  "access": "public"
80
80
  },
81
81
  "dependencies": {
82
- "@zaly/shared": "0.0.12",
82
+ "@mathjax/src": "^4.1.3",
83
+ "@zaly/shared": "0.1.1",
83
84
  "diff": "^9.0.0",
84
85
  "marked": "^18.1.1",
85
86
  "pathe": "^2.0.3",
86
87
  "shiki": "^4.5.0"
87
88
  },
88
89
  "devDependencies": {
90
+ "@shikijs/vscode-textmate": "10.1.0",
89
91
  "ghostty-web": "^0.4.0",
90
92
  "mitata": "^1.0.34",
91
93
  "slice-ansi": "^9.0.1",
92
94
  "string-width": "^8.3.0",
93
- "typia": "^15.1.0",
95
+ "typebox": "^1.4.3",
94
96
  "wrap-ansi": "^10.0.2"
95
97
  },
96
98
  "optionalDependencies": {
@@ -100,14 +102,10 @@
100
102
  "bun": ">=1.2",
101
103
  "node": ">=22.18.0"
102
104
  },
103
- "inlinedDependencies": {
104
- "typia": "15.1.0"
105
- },
106
105
  "scripts": {
107
106
  "bench": "z bench",
108
107
  "build": "z build",
109
108
  "build:themes-1-shiki": "bun scripts/themes-shiki.ts",
110
- "build:themes-2-nvim": "exit 0; nvim -l scripts/themes-nvim.lua",
111
109
  "build:themes-3-tokyonight": "bun scripts/themes-tokyonight.ts",
112
110
  "build:themes-4-builtin": "bun scripts/themes-builtin.ts && oxfmt src/themes/builtin.ts",
113
111
  "docs:api": "typedoc",
@@ -1,100 +0,0 @@
1
- {
2
- "$schema": "file:./../schemas/theme.schema.json",
3
- "id": "dracula-soft",
4
- "name": "Dracula Theme Soft",
5
- "shiki": "dracula-soft",
6
- "fg": "#f6f6f4",
7
- "bg": "#282A36",
8
- "primary": "#bf9eee",
9
- "accent": "#f286c4",
10
- "success": "#62e884",
11
- "info": "#97e1f1",
12
- "warn": "#97e1f1",
13
- "error": "#ee6666",
14
- "muted": "#7b7f8b",
15
- "border": "#bf9eee",
16
- "selection": {
17
- "bg": "#44475A"
18
- },
19
- "diffAdd": {
20
- "bg": "#2d443f",
21
- "fg": "#62e884"
22
- },
23
- "diffDel": {
24
- "bg": "#6b3740",
25
- "fg": "#ee6666"
26
- },
27
- "diffTitle": {
28
- "fg": "#7b7f8b"
29
- },
30
- "comment": {
31
- "fg": "#7b7f8b"
32
- },
33
- "syntaxNumber": {
34
- "fg": "#bf9eee"
35
- },
36
- "syntaxString": {
37
- "fg": "#e7ee98"
38
- },
39
- "syntaxBoolean": {
40
- "fg": "#bf9eee"
41
- },
42
- "syntaxFunction": {
43
- "fg": "#62e884"
44
- },
45
- "syntaxField": {
46
- "fg": "#f6f6f4"
47
- },
48
- "syntaxConstant": {
49
- "fg": "#bf9eee"
50
- },
51
- "syntaxSpecial": {
52
- "fg": "#f286c4"
53
- },
54
- "mdHeading": {
55
- "bold": true,
56
- "fg": "#bf9eee"
57
- },
58
- "mdHeading1": {
59
- "bold": true,
60
- "fg": "#bf9eee"
61
- },
62
- "mdHeading2": {
63
- "bold": true,
64
- "fg": "#bf9eee"
65
- },
66
- "mdHeading3": {
67
- "bold": true,
68
- "fg": "#bf9eee"
69
- },
70
- "mdHeading4": {
71
- "bold": true,
72
- "fg": "#bf9eee"
73
- },
74
- "mdHeading5": {
75
- "bold": true,
76
- "fg": "#bf9eee"
77
- },
78
- "mdHeading6": {
79
- "bold": true,
80
- "fg": "#bf9eee"
81
- },
82
- "mdBold": {
83
- "bold": true,
84
- "fg": "#FFB86C"
85
- },
86
- "mdItalic": {
87
- "italic": true,
88
- "fg": "#e7ee98"
89
- },
90
- "mdLink": {
91
- "fg": "#97e1f1"
92
- },
93
- "mdQuote": {
94
- "italic": true,
95
- "fg": "#e7ee98"
96
- },
97
- "mdHr": {
98
- "fg": "#7b7f8b"
99
- }
100
- }
@@ -1,104 +0,0 @@
1
- {
2
- "$schema": "file:./../schemas/theme.schema.json",
3
- "id": "github-dark",
4
- "name": "GitHub Dark",
5
- "shiki": "github-dark",
6
- "fg": "#e1e4e8",
7
- "bg": "#24292e",
8
- "primary": "#79b8ff",
9
- "accent": "#c8e1ff",
10
- "success": "#34d058",
11
- "info": "#39c5cf",
12
- "warn": "#ffea7f",
13
- "error": "#f97583",
14
- "muted": "#959da5",
15
- "border": "#1b1f23",
16
- "selection": {
17
- "bg": "#284566"
18
- },
19
- "diffAdd": {
20
- "bg": "#254132",
21
- "fg": "#85e89d"
22
- },
23
- "diffDel": {
24
- "bg": "#462c33",
25
- "fg": "#fdaeb7"
26
- },
27
- "diffTitle": {
28
- "fg": "#fdaeb7",
29
- "bg": "#86181d"
30
- },
31
- "comment": {
32
- "fg": "#6a737d"
33
- },
34
- "syntaxNumber": {
35
- "fg": "#79b8ff"
36
- },
37
- "syntaxString": {
38
- "fg": "#9ecbff"
39
- },
40
- "syntaxBoolean": {
41
- "fg": "#79b8ff"
42
- },
43
- "syntaxFunction": {
44
- "fg": "#b392f0"
45
- },
46
- "syntaxField": {
47
- "fg": "#e1e4e8"
48
- },
49
- "syntaxConstant": {
50
- "fg": "#79b8ff"
51
- },
52
- "syntaxSpecial": {
53
- "fg": "#f97583"
54
- },
55
- "mdHeading": {
56
- "bold": true,
57
- "fg": "#79b8ff"
58
- },
59
- "mdHeading1": {
60
- "bold": true,
61
- "fg": "#79b8ff"
62
- },
63
- "mdHeading2": {
64
- "bold": true,
65
- "fg": "#79b8ff"
66
- },
67
- "mdHeading3": {
68
- "bold": true,
69
- "fg": "#79b8ff"
70
- },
71
- "mdHeading4": {
72
- "bold": true,
73
- "fg": "#79b8ff"
74
- },
75
- "mdHeading5": {
76
- "bold": true,
77
- "fg": "#79b8ff"
78
- },
79
- "mdHeading6": {
80
- "bold": true,
81
- "fg": "#79b8ff"
82
- },
83
- "mdBold": {
84
- "bold": true,
85
- "fg": "#e1e4e8"
86
- },
87
- "mdItalic": {
88
- "italic": true,
89
- "fg": "#e1e4e8"
90
- },
91
- "mdStrikethrough": {
92
- "strikethrough": true
93
- },
94
- "mdLink": {
95
- "underline": true
96
- },
97
- "mdQuote": {
98
- "fg": "#85e89d"
99
- },
100
- "mdHr": {
101
- "bold": true,
102
- "fg": "#79b8ff"
103
- }
104
- }
@@ -1,104 +0,0 @@
1
- {
2
- "$schema": "file:./../schemas/theme.schema.json",
3
- "id": "github-light",
4
- "name": "GitHub Light",
5
- "shiki": "github-light",
6
- "fg": "#24292e",
7
- "bg": "#fff",
8
- "primary": "#0366d6",
9
- "accent": "#005cc5",
10
- "success": "#28a745",
11
- "info": "#1b7c83",
12
- "warn": "#f9c513",
13
- "error": "#cb2431",
14
- "muted": "#959da5",
15
- "border": "#e1e4e8",
16
- "selection": {
17
- "bg": "#dae9f9"
18
- },
19
- "diffAdd": {
20
- "bg": "#e4f9e9",
21
- "fg": "#22863a"
22
- },
23
- "diffDel": {
24
- "bg": "#fae5e7",
25
- "fg": "#b31d28"
26
- },
27
- "diffTitle": {
28
- "fg": "#b31d28",
29
- "bg": "#ffeef0"
30
- },
31
- "comment": {
32
- "fg": "#6a737d"
33
- },
34
- "syntaxNumber": {
35
- "fg": "#005cc5"
36
- },
37
- "syntaxString": {
38
- "fg": "#032f62"
39
- },
40
- "syntaxBoolean": {
41
- "fg": "#005cc5"
42
- },
43
- "syntaxFunction": {
44
- "fg": "#6f42c1"
45
- },
46
- "syntaxField": {
47
- "fg": "#24292e"
48
- },
49
- "syntaxConstant": {
50
- "fg": "#005cc5"
51
- },
52
- "syntaxSpecial": {
53
- "fg": "#d73a49"
54
- },
55
- "mdHeading": {
56
- "bold": true,
57
- "fg": "#005cc5"
58
- },
59
- "mdHeading1": {
60
- "bold": true,
61
- "fg": "#005cc5"
62
- },
63
- "mdHeading2": {
64
- "bold": true,
65
- "fg": "#005cc5"
66
- },
67
- "mdHeading3": {
68
- "bold": true,
69
- "fg": "#005cc5"
70
- },
71
- "mdHeading4": {
72
- "bold": true,
73
- "fg": "#005cc5"
74
- },
75
- "mdHeading5": {
76
- "bold": true,
77
- "fg": "#005cc5"
78
- },
79
- "mdHeading6": {
80
- "bold": true,
81
- "fg": "#005cc5"
82
- },
83
- "mdBold": {
84
- "bold": true,
85
- "fg": "#24292e"
86
- },
87
- "mdItalic": {
88
- "italic": true,
89
- "fg": "#24292e"
90
- },
91
- "mdStrikethrough": {
92
- "strikethrough": true
93
- },
94
- "mdLink": {
95
- "underline": true
96
- },
97
- "mdQuote": {
98
- "fg": "#22863a"
99
- },
100
- "mdHr": {
101
- "bold": true,
102
- "fg": "#005cc5"
103
- }
104
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"actions-Dc4D4uSf.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 +0,0 @@
1
- {"version":3,"file":"ansi-DZlXaItJ.mjs","names":[],"sources":["../src/style/color.ts","../src/style/ansi.ts"],"sourcesContent":["import type { HexColor, RGB } from \"./types.ts\"\n\nimport { clamp } from \"@zaly/shared\"\n\nconst hexByte = (n: number): string => clamp(Math.round(n), 0, 255).toString(16).padStart(2, \"0\")\n\nexport function toHex(c: RGB): HexColor\nexport function toHex(r: number, g: number, b: number): HexColor\nexport function toHex(x: number | RGB, y?: number, z?: number): HexColor {\n const [r, g, b] = Array.isArray(x) ? x : [x, y!, z!]\n return `#${hexByte(r)}${hexByte(g)}${hexByte(b)}`\n}\n\nexport function parseHex(hex: string): RGB {\n let s = hex.charCodeAt(0) === 0x23 ? hex.slice(1) : hex // strip leading #\n if (s.length === 4) s = s.slice(0, 3) // strip alpha\n if (s.length === 8) s = s.slice(0, 6) // strip alpha\n if (s.length === 3) {\n // Expand \"abc\" → \"aabbcc\" without allocating an array.\n s = s[0] + s[0] + s[1] + s[1] + s[2] + s[2]\n }\n if (s.length !== 6) throw new Error(`invalid hex color: ${hex}`)\n const n = Number.parseInt(s, 16)\n if (Number.isNaN(n)) throw new Error(`invalid hex color: ${hex}`)\n return [(n >> 16) & 0xff, (n >> 8) & 0xff, n & 0xff]\n}\n\nexport function isHexColor(s: string): s is HexColor {\n return /^#[0-9a-fA-F]{3,8}$/.test(s)\n}\n","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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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"autocomplete-StW1QJZJ.d.mts","names":[],"sources":["../src/widgets/autocomplete.ts"],"mappings":";;;;;;;;;KAgBY,SAAS,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;UAkBnB,iBAAiB,UAAU,SAAS;EACnD,mBAAmB;EACnB,UAAU,SAAS,YAAY;EAC/B,SAAS,SAAS;EAClB,SAAS,aAAa;;UAIP,0BAA0B;UAE1B,4BAA4B;;;;;;;EAO3C,OAAO,QAAQ,IAAI;EAMnB,SAAS,eAAe;;EAExB,YAAY;EACZ,UAAU;EACV;;UAGe,2BAA2B;;;;EAI1C;IAAY;IAAgB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA6CvB,qBAAqB,KAAK,mBAAmB;;kBACxC;WACE;WAET,QAAQ;EAKjB,YAAY,MAAM;MAoDd;YAiFM,QAAQ,KAAK,uBAAuB;;;;;iBAmBhC,aAAa,MAAM,sBAAsB"}