@zaly/tui 0.0.4
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.
- package/LICENSE +21 -0
- package/README.md +59 -0
- package/assets/schemas/theme.schema.json +899 -0
- package/assets/themes/LICENSE-tokyonight.txt +201 -0
- package/assets/themes/NOTICES.md +69 -0
- package/assets/themes/ayu-dark.json +119 -0
- package/assets/themes/catppuccin-frappe.json +124 -0
- package/assets/themes/catppuccin-latte.json +124 -0
- package/assets/themes/catppuccin-macchiato.json +124 -0
- package/assets/themes/catppuccin-mocha.json +124 -0
- package/assets/themes/dracula-soft.json +119 -0
- package/assets/themes/dracula.json +119 -0
- package/assets/themes/everforest-dark.json +118 -0
- package/assets/themes/everforest-light.json +118 -0
- package/assets/themes/github-dark.json +123 -0
- package/assets/themes/github-light.json +123 -0
- package/assets/themes/gruvbox-dark-medium.json +112 -0
- package/assets/themes/kanagawa-dragon.json +115 -0
- package/assets/themes/kanagawa-wave.json +115 -0
- package/assets/themes/material-theme-palenight.json +114 -0
- package/assets/themes/min-dark.json +55 -0
- package/assets/themes/min-light.json +59 -0
- package/assets/themes/monokai.json +116 -0
- package/assets/themes/night-owl.json +116 -0
- package/assets/themes/nord.json +101 -0
- package/assets/themes/one-dark-pro.json +110 -0
- package/assets/themes/one-light.json +108 -0
- package/assets/themes/poimandres.json +123 -0
- package/assets/themes/rose-pine.json +98 -0
- package/assets/themes/solarized-dark.json +116 -0
- package/assets/themes/solarized-light.json +116 -0
- package/assets/themes/synthwave-84.json +100 -0
- package/assets/themes/tokyonight-day.json +157 -0
- package/assets/themes/tokyonight-moon.json +157 -0
- package/assets/themes/tokyonight-night.json +157 -0
- package/assets/themes/tokyonight-storm.json +157 -0
- package/assets/themes/vesper.json +103 -0
- package/assets/themes/vitesse-dark.json +126 -0
- package/assets/themes/vitesse-light.json +126 -0
- package/dist/ansi-Clq0ozyA.mjs +206 -0
- package/dist/ansi-Clq0ozyA.mjs.map +1 -0
- package/dist/ansi.d.mts +48 -0
- package/dist/ansi.d.mts.map +1 -0
- package/dist/ansi.mjs +2 -0
- package/dist/autocomplete-Dfw-yQDa.d.mts +100 -0
- package/dist/autocomplete-Dfw-yQDa.d.mts.map +1 -0
- package/dist/box-DyaByEiG.mjs +386 -0
- package/dist/box-DyaByEiG.mjs.map +1 -0
- package/dist/builder-D49ECBEf.mjs +385 -0
- package/dist/builder-D49ECBEf.mjs.map +1 -0
- package/dist/callbacks-CNjGNxVw.mjs +279 -0
- package/dist/callbacks-CNjGNxVw.mjs.map +1 -0
- package/dist/client-D6C_uczF.mjs +142 -0
- package/dist/client-D6C_uczF.mjs.map +1 -0
- package/dist/clipboard.d.mts +104 -0
- package/dist/clipboard.d.mts.map +1 -0
- package/dist/clipboard.mjs +404 -0
- package/dist/clipboard.mjs.map +1 -0
- package/dist/flex-Bguo-fUe.mjs +202 -0
- package/dist/flex-Bguo-fUe.mjs.map +1 -0
- package/dist/image-Cm5T-uw-.mjs +108 -0
- package/dist/image-Cm5T-uw-.mjs.map +1 -0
- package/dist/image.d.mts +123 -0
- package/dist/image.d.mts.map +1 -0
- package/dist/image.mjs +2 -0
- package/dist/index.d.mts +64 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +222 -0
- package/dist/index.mjs.map +1 -0
- package/dist/input-B5Vy-iaa.d.mts +141 -0
- package/dist/input-B5Vy-iaa.d.mts.map +1 -0
- package/dist/inspect-D1d9t-ni.mjs +101 -0
- package/dist/inspect-D1d9t-ni.mjs.map +1 -0
- package/dist/inspect-D6FW_QUo.d.mts +67 -0
- package/dist/inspect-D6FW_QUo.d.mts.map +1 -0
- package/dist/kitty-JbCJC0iQ.mjs +673 -0
- package/dist/kitty-JbCJC0iQ.mjs.map +1 -0
- package/dist/markdown.d.mts +24 -0
- package/dist/markdown.d.mts.map +1 -0
- package/dist/markdown.mjs +2 -0
- package/dist/md.bun.d.mts +14 -0
- package/dist/md.bun.d.mts.map +1 -0
- package/dist/md.bun.mjs +28 -0
- package/dist/md.bun.mjs.map +1 -0
- package/dist/md.node.d.mts +14 -0
- package/dist/md.node.d.mts.map +1 -0
- package/dist/md.node.mjs +126 -0
- package/dist/md.node.mjs.map +1 -0
- package/dist/node-BZ7f6HzU.mjs +316 -0
- package/dist/node-BZ7f6HzU.mjs.map +1 -0
- package/dist/picker-D8OLb6kZ.d.mts +36 -0
- package/dist/picker-D8OLb6kZ.d.mts.map +1 -0
- package/dist/picker-ndVVt6qF.mjs +621 -0
- package/dist/picker-ndVVt6qF.mjs.map +1 -0
- package/dist/queries-DH3bj74K.d.mts +1963 -0
- package/dist/queries-DH3bj74K.d.mts.map +1 -0
- package/dist/reactive-f7NpAi69.mjs +623 -0
- package/dist/reactive-f7NpAi69.mjs.map +1 -0
- package/dist/registry-U654j61Y.mjs +356 -0
- package/dist/registry-U654j61Y.mjs.map +1 -0
- package/dist/render-DxVLqqB9.mjs +74 -0
- package/dist/render-DxVLqqB9.mjs.map +1 -0
- package/dist/renderer-CdLCkJB-.mjs +42 -0
- package/dist/renderer-CdLCkJB-.mjs.map +1 -0
- package/dist/renderer-CxL4xbkl.mjs +2644 -0
- package/dist/renderer-CxL4xbkl.mjs.map +1 -0
- package/dist/rolldown-runtime-D7D4PA-g.mjs +13 -0
- package/dist/search-FvGnswRl.d.mts +49 -0
- package/dist/search-FvGnswRl.d.mts.map +1 -0
- package/dist/select-CbmAZdpt.d.mts +116 -0
- package/dist/select-CbmAZdpt.d.mts.map +1 -0
- package/dist/services/logger.d.mts +2 -0
- package/dist/services/logger.mjs +71 -0
- package/dist/services/logger.mjs.map +1 -0
- package/dist/services/notifier.d.mts +17 -0
- package/dist/services/notifier.d.mts.map +1 -0
- package/dist/services/notifier.mjs +71 -0
- package/dist/services/notifier.mjs.map +1 -0
- package/dist/services/picker.d.mts +36 -0
- package/dist/services/picker.d.mts.map +1 -0
- package/dist/services/picker.mjs +137 -0
- package/dist/services/picker.mjs.map +1 -0
- package/dist/services/prompt.d.mts +30 -0
- package/dist/services/prompt.d.mts.map +1 -0
- package/dist/services/prompt.mjs +83 -0
- package/dist/services/prompt.mjs.map +1 -0
- package/dist/shiki-BrjVUkeh.mjs +423 -0
- package/dist/shiki-BrjVUkeh.mjs.map +1 -0
- package/dist/size-D8JogYLy.mjs +34 -0
- package/dist/size-D8JogYLy.mjs.map +1 -0
- package/dist/style.d.mts +10 -0
- package/dist/style.d.mts.map +1 -0
- package/dist/style.mjs +4 -0
- package/dist/text.d.mts +33 -0
- package/dist/text.d.mts.map +1 -0
- package/dist/text.mjs +111 -0
- package/dist/text.mjs.map +1 -0
- package/dist/theme.config-CU3B50HN.mjs +832 -0
- package/dist/theme.config-CU3B50HN.mjs.map +1 -0
- package/dist/themes.d.mts +113 -0
- package/dist/themes.d.mts.map +1 -0
- package/dist/themes.mjs +2 -0
- package/dist/tree-C28QOVIK.d.mts +23 -0
- package/dist/tree-C28QOVIK.d.mts.map +1 -0
- package/dist/types-B9Eh7k2v.d.mts +212 -0
- package/dist/types-B9Eh7k2v.d.mts.map +1 -0
- package/dist/types-D3jk1rtk.d.mts +140 -0
- package/dist/types-D3jk1rtk.d.mts.map +1 -0
- package/dist/utils-3M4D_AXZ.mjs +40 -0
- package/dist/utils-3M4D_AXZ.mjs.map +1 -0
- package/dist/widgets/autocomplete.d.mts +2 -0
- package/dist/widgets/autocomplete.mjs +165 -0
- package/dist/widgets/autocomplete.mjs.map +1 -0
- package/dist/widgets/box.d.mts +2 -0
- package/dist/widgets/box.mjs +2 -0
- package/dist/widgets/code.d.mts +48 -0
- package/dist/widgets/code.d.mts.map +1 -0
- package/dist/widgets/code.mjs +59 -0
- package/dist/widgets/code.mjs.map +1 -0
- package/dist/widgets/completions/actions.d.mts +41 -0
- package/dist/widgets/completions/actions.d.mts.map +1 -0
- package/dist/widgets/completions/actions.mjs +48 -0
- package/dist/widgets/completions/actions.mjs.map +1 -0
- package/dist/widgets/completions/files.d.mts +29 -0
- package/dist/widgets/completions/files.d.mts.map +1 -0
- package/dist/widgets/completions/files.mjs +42 -0
- package/dist/widgets/completions/files.mjs.map +1 -0
- package/dist/widgets/completions/github.d.mts +64 -0
- package/dist/widgets/completions/github.d.mts.map +1 -0
- package/dist/widgets/completions/github.mjs +137 -0
- package/dist/widgets/completions/github.mjs.map +1 -0
- package/dist/widgets/completions/index.d.mts +4 -0
- package/dist/widgets/completions/index.mjs +4 -0
- package/dist/widgets/diff.d.mts +57 -0
- package/dist/widgets/diff.d.mts.map +1 -0
- package/dist/widgets/diff.mjs +199 -0
- package/dist/widgets/diff.mjs.map +1 -0
- package/dist/widgets/divider.d.mts +11 -0
- package/dist/widgets/divider.d.mts.map +1 -0
- package/dist/widgets/divider.mjs +9 -0
- package/dist/widgets/divider.mjs.map +1 -0
- package/dist/widgets/image.d.mts +37 -0
- package/dist/widgets/image.d.mts.map +1 -0
- package/dist/widgets/image.mjs +77 -0
- package/dist/widgets/image.mjs.map +1 -0
- package/dist/widgets/input.d.mts +2 -0
- package/dist/widgets/input.mjs +497 -0
- package/dist/widgets/input.mjs.map +1 -0
- package/dist/widgets/log.d.mts +2 -0
- package/dist/widgets/log.mjs +130 -0
- package/dist/widgets/log.mjs.map +1 -0
- package/dist/widgets/markdown.d.mts +45 -0
- package/dist/widgets/markdown.d.mts.map +1 -0
- package/dist/widgets/markdown.mjs +124 -0
- package/dist/widgets/markdown.mjs.map +1 -0
- package/dist/widgets/overlay.d.mts +2 -0
- package/dist/widgets/overlay.mjs +18 -0
- package/dist/widgets/overlay.mjs.map +1 -0
- package/dist/widgets/picker.d.mts +2 -0
- package/dist/widgets/picker.mjs +2 -0
- package/dist/widgets/progress.d.mts +48 -0
- package/dist/widgets/progress.d.mts.map +1 -0
- package/dist/widgets/progress.mjs +48 -0
- package/dist/widgets/progress.mjs.map +1 -0
- package/dist/widgets/select.d.mts +2 -0
- package/dist/widgets/select.mjs +195 -0
- package/dist/widgets/select.mjs.map +1 -0
- package/dist/widgets/show.d.mts +55 -0
- package/dist/widgets/show.d.mts.map +1 -0
- package/dist/widgets/show.mjs +85 -0
- package/dist/widgets/show.mjs.map +1 -0
- package/dist/widgets/spinner.d.mts +65 -0
- package/dist/widgets/spinner.d.mts.map +1 -0
- package/dist/widgets/spinner.mjs +147 -0
- package/dist/widgets/spinner.mjs.map +1 -0
- package/dist/widgets/text.d.mts +2 -0
- package/dist/widgets/text.mjs +32 -0
- package/dist/widgets/text.mjs.map +1 -0
- package/dist/widgets/tree.d.mts +2 -0
- package/dist/widgets/tree.mjs +73 -0
- package/dist/widgets/tree.mjs.map +1 -0
- package/dist/widgets/widget.d.mts +49 -0
- package/dist/widgets/widget.d.mts.map +1 -0
- package/dist/widgets/widget.mjs +40 -0
- package/dist/widgets/widget.mjs.map +1 -0
- package/dist/worker-DjHuQSbY.mjs +27 -0
- package/dist/worker-DjHuQSbY.mjs.map +1 -0
- package/package.json +117 -0
|
@@ -0,0 +1,423 @@
|
|
|
1
|
+
import { hasColors } from "@zaly/shared/env";
|
|
2
|
+
//#region src/schemas/gen/shiki.ts
|
|
3
|
+
const lang = (() => {
|
|
4
|
+
const _iv1 = /* @__PURE__ */ new Set([
|
|
5
|
+
"1c",
|
|
6
|
+
"1c-query",
|
|
7
|
+
"abap",
|
|
8
|
+
"actionscript-3",
|
|
9
|
+
"ada",
|
|
10
|
+
"adoc",
|
|
11
|
+
"angular-html",
|
|
12
|
+
"angular-ts",
|
|
13
|
+
"apache",
|
|
14
|
+
"apex",
|
|
15
|
+
"apl",
|
|
16
|
+
"applescript",
|
|
17
|
+
"ara",
|
|
18
|
+
"asciidoc",
|
|
19
|
+
"asm",
|
|
20
|
+
"astro",
|
|
21
|
+
"awk",
|
|
22
|
+
"ballerina",
|
|
23
|
+
"bash",
|
|
24
|
+
"bat",
|
|
25
|
+
"batch",
|
|
26
|
+
"be",
|
|
27
|
+
"beancount",
|
|
28
|
+
"berry",
|
|
29
|
+
"bibtex",
|
|
30
|
+
"bicep",
|
|
31
|
+
"bird",
|
|
32
|
+
"bird2",
|
|
33
|
+
"blade",
|
|
34
|
+
"bsl",
|
|
35
|
+
"c",
|
|
36
|
+
"c#",
|
|
37
|
+
"c++",
|
|
38
|
+
"c3",
|
|
39
|
+
"cadence",
|
|
40
|
+
"cairo",
|
|
41
|
+
"cdc",
|
|
42
|
+
"cjs",
|
|
43
|
+
"clarity",
|
|
44
|
+
"clj",
|
|
45
|
+
"clojure",
|
|
46
|
+
"closure-templates",
|
|
47
|
+
"cmake",
|
|
48
|
+
"cmd",
|
|
49
|
+
"cobol",
|
|
50
|
+
"codeowners",
|
|
51
|
+
"codeql",
|
|
52
|
+
"coffee",
|
|
53
|
+
"coffeescript",
|
|
54
|
+
"common-lisp",
|
|
55
|
+
"console",
|
|
56
|
+
"coq",
|
|
57
|
+
"cpp",
|
|
58
|
+
"cql",
|
|
59
|
+
"crystal",
|
|
60
|
+
"cs",
|
|
61
|
+
"csharp",
|
|
62
|
+
"css",
|
|
63
|
+
"csv",
|
|
64
|
+
"cts",
|
|
65
|
+
"cue",
|
|
66
|
+
"cypher",
|
|
67
|
+
"d",
|
|
68
|
+
"dart",
|
|
69
|
+
"dax",
|
|
70
|
+
"desktop",
|
|
71
|
+
"diff",
|
|
72
|
+
"docker",
|
|
73
|
+
"dockerfile",
|
|
74
|
+
"dotenv",
|
|
75
|
+
"dream-maker",
|
|
76
|
+
"edge",
|
|
77
|
+
"elisp",
|
|
78
|
+
"elixir",
|
|
79
|
+
"elm",
|
|
80
|
+
"emacs-lisp",
|
|
81
|
+
"erb",
|
|
82
|
+
"erl",
|
|
83
|
+
"erlang",
|
|
84
|
+
"f",
|
|
85
|
+
"f#",
|
|
86
|
+
"f03",
|
|
87
|
+
"f08",
|
|
88
|
+
"f18",
|
|
89
|
+
"f77",
|
|
90
|
+
"f90",
|
|
91
|
+
"f95",
|
|
92
|
+
"fennel",
|
|
93
|
+
"fish",
|
|
94
|
+
"fluent",
|
|
95
|
+
"for",
|
|
96
|
+
"fortran-fixed-form",
|
|
97
|
+
"fortran-free-form",
|
|
98
|
+
"fs",
|
|
99
|
+
"fsharp",
|
|
100
|
+
"fsl",
|
|
101
|
+
"ftl",
|
|
102
|
+
"gd",
|
|
103
|
+
"gdresource",
|
|
104
|
+
"gdscript",
|
|
105
|
+
"gdshader",
|
|
106
|
+
"genie",
|
|
107
|
+
"gherkin",
|
|
108
|
+
"git-commit",
|
|
109
|
+
"git-rebase",
|
|
110
|
+
"gjs",
|
|
111
|
+
"gleam",
|
|
112
|
+
"glimmer-js",
|
|
113
|
+
"glimmer-ts",
|
|
114
|
+
"glsl",
|
|
115
|
+
"gn",
|
|
116
|
+
"gnuplot",
|
|
117
|
+
"go",
|
|
118
|
+
"gql",
|
|
119
|
+
"graphql",
|
|
120
|
+
"groovy",
|
|
121
|
+
"gts",
|
|
122
|
+
"hack",
|
|
123
|
+
"haml",
|
|
124
|
+
"handlebars",
|
|
125
|
+
"haskell",
|
|
126
|
+
"haxe",
|
|
127
|
+
"hbs",
|
|
128
|
+
"hcl",
|
|
129
|
+
"hjson",
|
|
130
|
+
"hlsl",
|
|
131
|
+
"hs",
|
|
132
|
+
"html",
|
|
133
|
+
"html-derivative",
|
|
134
|
+
"http",
|
|
135
|
+
"hurl",
|
|
136
|
+
"hxml",
|
|
137
|
+
"hy",
|
|
138
|
+
"imba",
|
|
139
|
+
"ini",
|
|
140
|
+
"jade",
|
|
141
|
+
"java",
|
|
142
|
+
"javascript",
|
|
143
|
+
"jinja",
|
|
144
|
+
"jison",
|
|
145
|
+
"jl",
|
|
146
|
+
"js",
|
|
147
|
+
"json",
|
|
148
|
+
"json5",
|
|
149
|
+
"jsonc",
|
|
150
|
+
"jsonl",
|
|
151
|
+
"jsonnet",
|
|
152
|
+
"jssm",
|
|
153
|
+
"jsx",
|
|
154
|
+
"julia",
|
|
155
|
+
"just",
|
|
156
|
+
"kdl",
|
|
157
|
+
"kotlin",
|
|
158
|
+
"kql",
|
|
159
|
+
"kt",
|
|
160
|
+
"kts",
|
|
161
|
+
"kusto",
|
|
162
|
+
"latex",
|
|
163
|
+
"lean",
|
|
164
|
+
"lean4",
|
|
165
|
+
"less",
|
|
166
|
+
"liquid",
|
|
167
|
+
"lisp",
|
|
168
|
+
"lit",
|
|
169
|
+
"llvm",
|
|
170
|
+
"log",
|
|
171
|
+
"logo",
|
|
172
|
+
"lua",
|
|
173
|
+
"luau",
|
|
174
|
+
"make",
|
|
175
|
+
"makefile",
|
|
176
|
+
"markdown",
|
|
177
|
+
"marko",
|
|
178
|
+
"matlab",
|
|
179
|
+
"mbt",
|
|
180
|
+
"mbti",
|
|
181
|
+
"md",
|
|
182
|
+
"mdc",
|
|
183
|
+
"mdx",
|
|
184
|
+
"mediawiki",
|
|
185
|
+
"mermaid",
|
|
186
|
+
"mips",
|
|
187
|
+
"mipsasm",
|
|
188
|
+
"mjs",
|
|
189
|
+
"mmd",
|
|
190
|
+
"mojo",
|
|
191
|
+
"moonbit",
|
|
192
|
+
"move",
|
|
193
|
+
"mts",
|
|
194
|
+
"nar",
|
|
195
|
+
"narrat",
|
|
196
|
+
"nextflow",
|
|
197
|
+
"nextflow-groovy",
|
|
198
|
+
"nf",
|
|
199
|
+
"nginx",
|
|
200
|
+
"nim",
|
|
201
|
+
"nix",
|
|
202
|
+
"nu",
|
|
203
|
+
"nushell",
|
|
204
|
+
"objc",
|
|
205
|
+
"objective-c",
|
|
206
|
+
"objective-cpp",
|
|
207
|
+
"ocaml",
|
|
208
|
+
"odin",
|
|
209
|
+
"openscad",
|
|
210
|
+
"pascal",
|
|
211
|
+
"perl",
|
|
212
|
+
"perl6",
|
|
213
|
+
"php",
|
|
214
|
+
"pkl",
|
|
215
|
+
"plsql",
|
|
216
|
+
"po",
|
|
217
|
+
"polar",
|
|
218
|
+
"postcss",
|
|
219
|
+
"pot",
|
|
220
|
+
"potx",
|
|
221
|
+
"powerquery",
|
|
222
|
+
"powershell",
|
|
223
|
+
"prisma",
|
|
224
|
+
"prolog",
|
|
225
|
+
"properties",
|
|
226
|
+
"proto",
|
|
227
|
+
"protobuf",
|
|
228
|
+
"ps",
|
|
229
|
+
"ps1",
|
|
230
|
+
"pug",
|
|
231
|
+
"puppet",
|
|
232
|
+
"purescript",
|
|
233
|
+
"py",
|
|
234
|
+
"python",
|
|
235
|
+
"ql",
|
|
236
|
+
"qml",
|
|
237
|
+
"qmldir",
|
|
238
|
+
"qss",
|
|
239
|
+
"r",
|
|
240
|
+
"racket",
|
|
241
|
+
"raku",
|
|
242
|
+
"razor",
|
|
243
|
+
"rb",
|
|
244
|
+
"reg",
|
|
245
|
+
"regex",
|
|
246
|
+
"regexp",
|
|
247
|
+
"rel",
|
|
248
|
+
"riscv",
|
|
249
|
+
"ron",
|
|
250
|
+
"rosmsg",
|
|
251
|
+
"rs",
|
|
252
|
+
"rst",
|
|
253
|
+
"ruby",
|
|
254
|
+
"rust",
|
|
255
|
+
"sas",
|
|
256
|
+
"sass",
|
|
257
|
+
"scad",
|
|
258
|
+
"scala",
|
|
259
|
+
"scheme",
|
|
260
|
+
"scss",
|
|
261
|
+
"sdbl",
|
|
262
|
+
"sh",
|
|
263
|
+
"shader",
|
|
264
|
+
"shaderlab",
|
|
265
|
+
"shell",
|
|
266
|
+
"shellscript",
|
|
267
|
+
"shellsession",
|
|
268
|
+
"smalltalk",
|
|
269
|
+
"solidity",
|
|
270
|
+
"soy",
|
|
271
|
+
"sparql",
|
|
272
|
+
"spl",
|
|
273
|
+
"splunk",
|
|
274
|
+
"sql",
|
|
275
|
+
"ssh-config",
|
|
276
|
+
"stata",
|
|
277
|
+
"styl",
|
|
278
|
+
"stylus",
|
|
279
|
+
"surql",
|
|
280
|
+
"surrealql",
|
|
281
|
+
"svelte",
|
|
282
|
+
"swift",
|
|
283
|
+
"system-verilog",
|
|
284
|
+
"systemd",
|
|
285
|
+
"talon",
|
|
286
|
+
"talonscript",
|
|
287
|
+
"tasl",
|
|
288
|
+
"tcl",
|
|
289
|
+
"templ",
|
|
290
|
+
"terraform",
|
|
291
|
+
"tex",
|
|
292
|
+
"tf",
|
|
293
|
+
"tfvars",
|
|
294
|
+
"toml",
|
|
295
|
+
"tres",
|
|
296
|
+
"ts",
|
|
297
|
+
"ts-tags",
|
|
298
|
+
"tscn",
|
|
299
|
+
"tsp",
|
|
300
|
+
"tsv",
|
|
301
|
+
"tsx",
|
|
302
|
+
"turtle",
|
|
303
|
+
"twig",
|
|
304
|
+
"typ",
|
|
305
|
+
"typescript",
|
|
306
|
+
"typespec",
|
|
307
|
+
"typst",
|
|
308
|
+
"v",
|
|
309
|
+
"vala",
|
|
310
|
+
"vb",
|
|
311
|
+
"verilog",
|
|
312
|
+
"vhdl",
|
|
313
|
+
"vim",
|
|
314
|
+
"viml",
|
|
315
|
+
"vimscript",
|
|
316
|
+
"vue",
|
|
317
|
+
"vue-html",
|
|
318
|
+
"vue-vine",
|
|
319
|
+
"vy",
|
|
320
|
+
"vyper",
|
|
321
|
+
"wasm",
|
|
322
|
+
"wenyan",
|
|
323
|
+
"wgsl",
|
|
324
|
+
"wiki",
|
|
325
|
+
"wikitext",
|
|
326
|
+
"wit",
|
|
327
|
+
"wl",
|
|
328
|
+
"wolfram",
|
|
329
|
+
"xml",
|
|
330
|
+
"xsl",
|
|
331
|
+
"yaml",
|
|
332
|
+
"yml",
|
|
333
|
+
"zenscript",
|
|
334
|
+
"zig",
|
|
335
|
+
"zsh",
|
|
336
|
+
"文言"
|
|
337
|
+
]);
|
|
338
|
+
return (input) => true === _iv1.has(input);
|
|
339
|
+
})();
|
|
340
|
+
(() => {
|
|
341
|
+
const _iv1 = /* @__PURE__ */ new Set([
|
|
342
|
+
"andromeeda",
|
|
343
|
+
"aurora-x",
|
|
344
|
+
"ayu-dark",
|
|
345
|
+
"ayu-light",
|
|
346
|
+
"ayu-mirage",
|
|
347
|
+
"catppuccin-frappe",
|
|
348
|
+
"catppuccin-latte",
|
|
349
|
+
"catppuccin-macchiato",
|
|
350
|
+
"catppuccin-mocha",
|
|
351
|
+
"dark-plus",
|
|
352
|
+
"dracula",
|
|
353
|
+
"dracula-soft",
|
|
354
|
+
"everforest-dark",
|
|
355
|
+
"everforest-light",
|
|
356
|
+
"github-dark",
|
|
357
|
+
"github-dark-default",
|
|
358
|
+
"github-dark-dimmed",
|
|
359
|
+
"github-dark-high-contrast",
|
|
360
|
+
"github-light",
|
|
361
|
+
"github-light-default",
|
|
362
|
+
"github-light-high-contrast",
|
|
363
|
+
"gruvbox-dark-hard",
|
|
364
|
+
"gruvbox-dark-medium",
|
|
365
|
+
"gruvbox-dark-soft",
|
|
366
|
+
"gruvbox-light-hard",
|
|
367
|
+
"gruvbox-light-medium",
|
|
368
|
+
"gruvbox-light-soft",
|
|
369
|
+
"horizon",
|
|
370
|
+
"horizon-bright",
|
|
371
|
+
"houston",
|
|
372
|
+
"kanagawa-dragon",
|
|
373
|
+
"kanagawa-lotus",
|
|
374
|
+
"kanagawa-wave",
|
|
375
|
+
"laserwave",
|
|
376
|
+
"light-plus",
|
|
377
|
+
"material-theme",
|
|
378
|
+
"material-theme-darker",
|
|
379
|
+
"material-theme-lighter",
|
|
380
|
+
"material-theme-ocean",
|
|
381
|
+
"material-theme-palenight",
|
|
382
|
+
"min-dark",
|
|
383
|
+
"min-light",
|
|
384
|
+
"monokai",
|
|
385
|
+
"night-owl",
|
|
386
|
+
"night-owl-light",
|
|
387
|
+
"nord",
|
|
388
|
+
"one-dark-pro",
|
|
389
|
+
"one-light",
|
|
390
|
+
"plastic",
|
|
391
|
+
"poimandres",
|
|
392
|
+
"red",
|
|
393
|
+
"rose-pine",
|
|
394
|
+
"rose-pine-dawn",
|
|
395
|
+
"rose-pine-moon",
|
|
396
|
+
"slack-dark",
|
|
397
|
+
"slack-ochin",
|
|
398
|
+
"snazzy-light",
|
|
399
|
+
"solarized-dark",
|
|
400
|
+
"solarized-light",
|
|
401
|
+
"synthwave-84",
|
|
402
|
+
"tokyo-night",
|
|
403
|
+
"vesper",
|
|
404
|
+
"vitesse-black",
|
|
405
|
+
"vitesse-dark",
|
|
406
|
+
"vitesse-light"
|
|
407
|
+
]);
|
|
408
|
+
return (input) => true === _iv1.has(input);
|
|
409
|
+
})();
|
|
410
|
+
function isShikiLang(input) {
|
|
411
|
+
return lang(input);
|
|
412
|
+
}
|
|
413
|
+
//#endregion
|
|
414
|
+
//#region src/shiki/shiki.ts
|
|
415
|
+
async function codeToAnsi(code, lang, opts) {
|
|
416
|
+
if (!hasColors || !lang || !isShikiLang(lang)) return code;
|
|
417
|
+
const { shikiWorker } = await import("./client-D6C_uczF.mjs").then((n) => n.t);
|
|
418
|
+
return (await shikiWorker.highlight(code, lang, opts)).value;
|
|
419
|
+
}
|
|
420
|
+
//#endregion
|
|
421
|
+
export { isShikiLang as n, codeToAnsi as t };
|
|
422
|
+
|
|
423
|
+
//# sourceMappingURL=shiki-BrjVUkeh.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shiki-BrjVUkeh.mjs","names":[],"sources":["../src/schemas/gen/shiki.ts","../src/shiki/shiki.ts"],"sourcesContent":["import type { ShikiLanguage, ShikiTheme } from \"../../shiki/types.ts\";\nconst lang = (() => { const _iv1 = new Set([\"1c\", \"1c-query\", \"abap\", \"actionscript-3\", \"ada\", \"adoc\", \"angular-html\", \"angular-ts\", \"apache\", \"apex\", \"apl\", \"applescript\", \"ara\", \"asciidoc\", \"asm\", \"astro\", \"awk\", \"ballerina\", \"bash\", \"bat\", \"batch\", \"be\", \"beancount\", \"berry\", \"bibtex\", \"bicep\", \"bird\", \"bird2\", \"blade\", \"bsl\", \"c\", \"c#\", \"c++\", \"c3\", \"cadence\", \"cairo\", \"cdc\", \"cjs\", \"clarity\", \"clj\", \"clojure\", \"closure-templates\", \"cmake\", \"cmd\", \"cobol\", \"codeowners\", \"codeql\", \"coffee\", \"coffeescript\", \"common-lisp\", \"console\", \"coq\", \"cpp\", \"cql\", \"crystal\", \"cs\", \"csharp\", \"css\", \"csv\", \"cts\", \"cue\", \"cypher\", \"d\", \"dart\", \"dax\", \"desktop\", \"diff\", \"docker\", \"dockerfile\", \"dotenv\", \"dream-maker\", \"edge\", \"elisp\", \"elixir\", \"elm\", \"emacs-lisp\", \"erb\", \"erl\", \"erlang\", \"f\", \"f#\", \"f03\", \"f08\", \"f18\", \"f77\", \"f90\", \"f95\", \"fennel\", \"fish\", \"fluent\", \"for\", \"fortran-fixed-form\", \"fortran-free-form\", \"fs\", \"fsharp\", \"fsl\", \"ftl\", \"gd\", \"gdresource\", \"gdscript\", \"gdshader\", \"genie\", \"gherkin\", \"git-commit\", \"git-rebase\", \"gjs\", \"gleam\", \"glimmer-js\", \"glimmer-ts\", \"glsl\", \"gn\", \"gnuplot\", \"go\", \"gql\", \"graphql\", \"groovy\", \"gts\", \"hack\", \"haml\", \"handlebars\", \"haskell\", \"haxe\", \"hbs\", \"hcl\", \"hjson\", \"hlsl\", \"hs\", \"html\", \"html-derivative\", \"http\", \"hurl\", \"hxml\", \"hy\", \"imba\", \"ini\", \"jade\", \"java\", \"javascript\", \"jinja\", \"jison\", \"jl\", \"js\", \"json\", \"json5\", \"jsonc\", \"jsonl\", \"jsonnet\", \"jssm\", \"jsx\", \"julia\", \"just\", \"kdl\", \"kotlin\", \"kql\", \"kt\", \"kts\", \"kusto\", \"latex\", \"lean\", \"lean4\", \"less\", \"liquid\", \"lisp\", \"lit\", \"llvm\", \"log\", \"logo\", \"lua\", \"luau\", \"make\", \"makefile\", \"markdown\", \"marko\", \"matlab\", \"mbt\", \"mbti\", \"md\", \"mdc\", \"mdx\", \"mediawiki\", \"mermaid\", \"mips\", \"mipsasm\", \"mjs\", \"mmd\", \"mojo\", \"moonbit\", \"move\", \"mts\", \"nar\", \"narrat\", \"nextflow\", \"nextflow-groovy\", \"nf\", \"nginx\", \"nim\", \"nix\", \"nu\", \"nushell\", \"objc\", \"objective-c\", \"objective-cpp\", \"ocaml\", \"odin\", \"openscad\", \"pascal\", \"perl\", \"perl6\", \"php\", \"pkl\", \"plsql\", \"po\", \"polar\", \"postcss\", \"pot\", \"potx\", \"powerquery\", \"powershell\", \"prisma\", \"prolog\", \"properties\", \"proto\", \"protobuf\", \"ps\", \"ps1\", \"pug\", \"puppet\", \"purescript\", \"py\", \"python\", \"ql\", \"qml\", \"qmldir\", \"qss\", \"r\", \"racket\", \"raku\", \"razor\", \"rb\", \"reg\", \"regex\", \"regexp\", \"rel\", \"riscv\", \"ron\", \"rosmsg\", \"rs\", \"rst\", \"ruby\", \"rust\", \"sas\", \"sass\", \"scad\", \"scala\", \"scheme\", \"scss\", \"sdbl\", \"sh\", \"shader\", \"shaderlab\", \"shell\", \"shellscript\", \"shellsession\", \"smalltalk\", \"solidity\", \"soy\", \"sparql\", \"spl\", \"splunk\", \"sql\", \"ssh-config\", \"stata\", \"styl\", \"stylus\", \"surql\", \"surrealql\", \"svelte\", \"swift\", \"system-verilog\", \"systemd\", \"talon\", \"talonscript\", \"tasl\", \"tcl\", \"templ\", \"terraform\", \"tex\", \"tf\", \"tfvars\", \"toml\", \"tres\", \"ts\", \"ts-tags\", \"tscn\", \"tsp\", \"tsv\", \"tsx\", \"turtle\", \"twig\", \"typ\", \"typescript\", \"typespec\", \"typst\", \"v\", \"vala\", \"vb\", \"verilog\", \"vhdl\", \"vim\", \"viml\", \"vimscript\", \"vue\", \"vue-html\", \"vue-vine\", \"vy\", \"vyper\", \"wasm\", \"wenyan\", \"wgsl\", \"wiki\", \"wikitext\", \"wit\", \"wl\", \"wolfram\", \"xml\", \"xsl\", \"yaml\", \"yml\", \"zenscript\", \"zig\", \"zsh\", \"\\u6587\\u8A00\"]); return (input: any): input is ShikiLanguage => true === _iv1.has(input); })();\nconst theme = (() => { const _iv1 = new Set([\"andromeeda\", \"aurora-x\", \"ayu-dark\", \"ayu-light\", \"ayu-mirage\", \"catppuccin-frappe\", \"catppuccin-latte\", \"catppuccin-macchiato\", \"catppuccin-mocha\", \"dark-plus\", \"dracula\", \"dracula-soft\", \"everforest-dark\", \"everforest-light\", \"github-dark\", \"github-dark-default\", \"github-dark-dimmed\", \"github-dark-high-contrast\", \"github-light\", \"github-light-default\", \"github-light-high-contrast\", \"gruvbox-dark-hard\", \"gruvbox-dark-medium\", \"gruvbox-dark-soft\", \"gruvbox-light-hard\", \"gruvbox-light-medium\", \"gruvbox-light-soft\", \"horizon\", \"horizon-bright\", \"houston\", \"kanagawa-dragon\", \"kanagawa-lotus\", \"kanagawa-wave\", \"laserwave\", \"light-plus\", \"material-theme\", \"material-theme-darker\", \"material-theme-lighter\", \"material-theme-ocean\", \"material-theme-palenight\", \"min-dark\", \"min-light\", \"monokai\", \"night-owl\", \"night-owl-light\", \"nord\", \"one-dark-pro\", \"one-light\", \"plastic\", \"poimandres\", \"red\", \"rose-pine\", \"rose-pine-dawn\", \"rose-pine-moon\", \"slack-dark\", \"slack-ochin\", \"snazzy-light\", \"solarized-dark\", \"solarized-light\", \"synthwave-84\", \"tokyo-night\", \"vesper\", \"vitesse-black\", \"vitesse-dark\", \"vitesse-light\"]); return (input: any): input is ShikiTheme => true === _iv1.has(input); })();\nexport function isShikiLang(input: unknown): input is ShikiLanguage {\n return lang(input);\n}\nexport function isShikiTheme(input: unknown): input is ShikiTheme {\n return theme(input);\n}\n","import type { ShikiOpts } from \"./types.ts\"\n\nimport { hasColors } from \"@zaly/shared/env\"\nimport { isShikiLang } from \"../schemas/gen/shiki.ts\"\n\nexport async function codeToAnsi(code: string, lang: string, opts?: ShikiOpts): Promise<string> {\n if (!hasColors || !lang || !isShikiLang(lang)) return code\n const { shikiWorker } = await import(\"../shiki/client.ts\")\n const ret = await shikiWorker.highlight(code, lang, opts)\n return ret.value\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
//#region src/layout/size.ts
|
|
2
|
+
/**
|
|
3
|
+
* Resolve a Size to cells, given the axis size available from the parent.
|
|
4
|
+
*
|
|
5
|
+
* - `number` — passes through
|
|
6
|
+
* - `Pct` — percentage of `available`, rounded down
|
|
7
|
+
* - `'fill'` — full `available`
|
|
8
|
+
* - `'fit'` / `undefined` — returns undefined; caller measures content
|
|
9
|
+
*
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
function resolveSize(size, available) {
|
|
13
|
+
if (size === void 0 || size === "fit") return void 0;
|
|
14
|
+
if (size === "fill") return available;
|
|
15
|
+
if (typeof size === "number") return size;
|
|
16
|
+
return Math.floor(Number.parseFloat(size) / 100 * available);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Clamp a value to [min, max]. Each bound may be a `Size` (number or `Pct`) or
|
|
20
|
+
* undefined. When both bounds conflict, `min` wins — matches CSS/flex.
|
|
21
|
+
*
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
function clamp(value, opts) {
|
|
25
|
+
const maxN = resolveSize(opts.max, opts.available);
|
|
26
|
+
if (maxN !== void 0 && value > maxN) value = maxN;
|
|
27
|
+
const minN = resolveSize(opts.min, opts.available);
|
|
28
|
+
if (minN !== void 0 && value < minN) value = minN;
|
|
29
|
+
return value;
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
export { resolveSize as n, clamp as t };
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=size-D8JogYLy.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"size-D8JogYLy.mjs","names":[],"sources":["../src/layout/size.ts"],"sourcesContent":["/** Percentage string like `'50%'`, resolved against the parent's content axis. */\nexport type Pct = `${number}%`\n\n/**\n * Size along one axis.\n * - `number` — absolute cells\n * - `Pct` — percentage of the parent's content axis\n * - `'fill'` — take all of the remaining space in the flex allocation\n * - `'fit'` — shrink to the content's natural size, capped at the\n * available axis. Mirrors CSS `fit-content`. Pairs nicely\n * with `'fill'` — `fill` grows, `fit` shrinks.\n */\nexport type Size = number | Pct | \"fill\" | \"fit\"\n\n/**\n * Resolve a Size to cells, given the axis size available from the parent.\n *\n * - `number` — passes through\n * - `Pct` — percentage of `available`, rounded down\n * - `'fill'` — full `available`\n * - `'fit'` / `undefined` — returns undefined; caller measures content\n *\n * @internal\n */\nexport function resolveSize(size: Size | undefined, available: number): number | undefined {\n if (size === undefined || size === \"fit\") return undefined\n if (size === \"fill\") return available\n if (typeof size === \"number\") return size\n return Math.floor((Number.parseFloat(size) / 100) * available)\n}\n\nexport interface ClampOpts {\n min?: Size\n max?: Size\n available: number\n}\n\n/**\n * Clamp a value to [min, max]. Each bound may be a `Size` (number or `Pct`) or\n * undefined. When both bounds conflict, `min` wins — matches CSS/flex.\n *\n * @internal\n */\nexport function clamp(value: number, opts: ClampOpts): number {\n const maxN = resolveSize(opts.max, opts.available)\n if (maxN !== undefined && value > maxN) value = maxN\n const minN = resolveSize(opts.min, opts.available)\n if (minN !== undefined && value < minN) value = minN\n return value\n}\n"],"mappings":";;;;;;;;;;;AAwBA,SAAgB,YAAY,MAAwB,WAAuC;CACzF,IAAI,SAAS,KAAA,KAAa,SAAS,OAAO,OAAO,KAAA;CACjD,IAAI,SAAS,QAAQ,OAAO;CAC5B,IAAI,OAAO,SAAS,UAAU,OAAO;CACrC,OAAO,KAAK,MAAO,OAAO,WAAW,IAAI,IAAI,MAAO,SAAS;AAC/D;;;;;;;AAcA,SAAgB,MAAM,OAAe,MAAyB;CAC5D,MAAM,OAAO,YAAY,KAAK,KAAK,KAAK,SAAS;CACjD,IAAI,SAAS,KAAA,KAAa,QAAQ,MAAM,QAAQ;CAChD,MAAM,OAAO,YAAY,KAAK,KAAK,KAAK,SAAS;CACjD,IAAI,SAAS,KAAA,KAAa,QAAQ,MAAM,QAAQ;CAChD,OAAO;AACT"}
|
package/dist/style.d.mts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { a as AnsiStyle, c as Color, d as RGB, f as Style, i as AnsiColorName, l as ColorLightness, o as AnyStyle, p as ThemeKey, r as AnsiColor, s as BrightAnsiColorName, u as HexColor } from "./types-B9Eh7k2v.mjs";
|
|
2
|
+
import { a as StyleBuilder, i as isMarkdown, n as inspect, o as styleBuilder, r as inspectFormat, t as InspectOpts } from "./inspect-D6FW_QUo.mjs";
|
|
3
|
+
//#region src/style/color.d.ts
|
|
4
|
+
declare function toHex(c: RGB): HexColor;
|
|
5
|
+
declare function toHex(r: number, g: number, b: number): HexColor;
|
|
6
|
+
declare function parseHex(hex: string): RGB;
|
|
7
|
+
declare function isHexColor(s: string): s is HexColor;
|
|
8
|
+
//#endregion
|
|
9
|
+
export { type AnsiColor, type AnsiColorName, type AnsiStyle, type AnyStyle, type BrightAnsiColorName, type Color, type ColorLightness, type HexColor, InspectOpts, type RGB, type Style, StyleBuilder, type ThemeKey, inspect, inspectFormat, isHexColor, isMarkdown, parseHex, styleBuilder, toHex };
|
|
10
|
+
//# sourceMappingURL=style.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.d.mts","names":[],"sources":["../src/style/color.ts"],"mappings":";;;iBAMgB,MAAM,GAAG,MAAM;iBACf,MAAM,WAAW,WAAW,YAAY;iBAMxC,SAAS,cAAc;iBAcvB,WAAW,YAAY,KAAK"}
|
package/dist/style.mjs
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { d as toHex, l as isHexColor, u as parseHex } from "./ansi-Clq0ozyA.mjs";
|
|
2
|
+
import { t as styleBuilder } from "./builder-D49ECBEf.mjs";
|
|
3
|
+
import { n as inspectFormat, r as isMarkdown, t as inspect } from "./inspect-D1d9t-ni.mjs";
|
|
4
|
+
export { inspect, inspectFormat, isHexColor, isMarkdown, parseHex, styleBuilder, toHex };
|
package/dist/text.d.mts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { J as Layout } from "./queries-DH3bj74K.mjs";
|
|
2
|
+
import { a as StyleBuilder } from "./inspect-D6FW_QUo.mjs";
|
|
3
|
+
//#region src/layout/text.d.ts
|
|
4
|
+
type WrapMode = "word" | "char" | "none";
|
|
5
|
+
declare function formatText(text: string, opts: {
|
|
6
|
+
wrap?: WrapMode;
|
|
7
|
+
width: number;
|
|
8
|
+
style?: StyleBuilder;
|
|
9
|
+
/** When wrapping, preserve the indentation of the original text. */
|
|
10
|
+
indent?: boolean;
|
|
11
|
+
/** When wrapping ANSI-styled text, pad wrapped fragments to `width`
|
|
12
|
+
* using the background color active at the fragment's last cell.
|
|
13
|
+
* Natural lines that already fit are left unchanged. */
|
|
14
|
+
wrapBg?: boolean;
|
|
15
|
+
}): string[];
|
|
16
|
+
declare function expandTabs(s: string, tabSize?: number): string;
|
|
17
|
+
declare function formatLines(text: string | string[], opts?: {
|
|
18
|
+
numbered?: boolean;
|
|
19
|
+
numberOffset?: number;
|
|
20
|
+
maxLineLength?: number;
|
|
21
|
+
offset?: number;
|
|
22
|
+
limit?: number;
|
|
23
|
+
more?: false | ((more: number, msg: string) => string);
|
|
24
|
+
style?: StyleBuilder;
|
|
25
|
+
}): string[];
|
|
26
|
+
declare function calcLayout(text: string, opts?: {
|
|
27
|
+
wrap?: WrapMode;
|
|
28
|
+
}): Layout;
|
|
29
|
+
declare function countLines(text: string): number;
|
|
30
|
+
declare function capitalize(s: string): string;
|
|
31
|
+
//#endregion
|
|
32
|
+
export { WrapMode, calcLayout, capitalize, countLines, expandTabs, formatLines, formatText };
|
|
33
|
+
//# sourceMappingURL=text.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.d.mts","names":[],"sources":["../src/layout/text.ts"],"mappings":";;;KAeY;iBAKI,WACd,cACA;EACE,OAAO;EACP;EACA,QAAQ;;EAER;;;;EAIA;;iBAmDY,WAAW,WAAW;iBAsBtB,YACd,yBACA;EACE;EACA;EACA;EACA;EACA;EACA,iBAAiB,cAAc;EAC/B,QAAQ;;iBA0DI,WAAW,cAAc;EAAQ,OAAO;IAAkB;iBAS1D,WAAW;iBAUX,WAAW"}
|
package/dist/text.mjs
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { c as styleAnsi, n as ansiBg } from "./ansi-Clq0ozyA.mjs";
|
|
2
|
+
import { clamp } from "@zaly/shared";
|
|
3
|
+
import { hasAnsi, sliceAnsi, splitAnsi, stringWidth, stripAnsi, truncateAnsi, wrapAnsi } from "@zaly/shared/ansi";
|
|
4
|
+
//#region src/layout/text.ts
|
|
5
|
+
const ELLIPSIS = "…";
|
|
6
|
+
const TAB_WIDTH = 4;
|
|
7
|
+
function formatText(text, opts) {
|
|
8
|
+
const mode = opts.wrap ?? "word";
|
|
9
|
+
const lines = splitAnsi(expandTabs(text));
|
|
10
|
+
const ret = [];
|
|
11
|
+
if (mode === "none") ret.push(...lines);
|
|
12
|
+
else for (const line of lines) {
|
|
13
|
+
if (stringWidth(line) <= opts.width) {
|
|
14
|
+
ret.push(line);
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
const stripped = stripAnsi(line);
|
|
18
|
+
if (stripped.slice(opts.width).trim() === "") {
|
|
19
|
+
ret.push(sliceAnsi(line, 0, opts.width));
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
const indentWidth = opts.indent ? stringWidth(stripped.match(/^\s*/)?.[0] ?? "") : 0;
|
|
23
|
+
const indent = indentWidth > 0 ? sliceAnsi(line, 0, indentWidth) : "";
|
|
24
|
+
const wrapped = splitAnsi(wrapAnsi(indent ? sliceAnsi(line, indentWidth) : line, opts.width - indentWidth, { mode }));
|
|
25
|
+
for (let r = 0; r < wrapped.length; r++) {
|
|
26
|
+
let row = r > 0 && wrapped[r].startsWith(" ") ? wrapped[r].slice(1) : wrapped[r];
|
|
27
|
+
if (row === "" && r > 0 && r < wrapped.length - 1) continue;
|
|
28
|
+
if (indent) row = `${indent}${row}`;
|
|
29
|
+
if (opts.wrapBg) {
|
|
30
|
+
const rowWidth = stringWidth(row);
|
|
31
|
+
const bg = rowWidth > 0 ? ansiBg(row, rowWidth - 1) : void 0;
|
|
32
|
+
if (bg && rowWidth < opts.width) row = `${row}${styleAnsi(" ".repeat(opts.width - rowWidth), { bg })}`;
|
|
33
|
+
}
|
|
34
|
+
ret.push(row);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return ret.map((line) => opts.style ? opts.style(line) : line);
|
|
38
|
+
}
|
|
39
|
+
function expandTabs(s, tabSize = TAB_WIDTH) {
|
|
40
|
+
if (!s.includes(" ")) return s;
|
|
41
|
+
const plain = hasAnsi(s) ? stripAnsi(s) : s;
|
|
42
|
+
const spaces = [];
|
|
43
|
+
let col = 0;
|
|
44
|
+
for (const ch of plain) if (ch === " ") {
|
|
45
|
+
const n = tabSize - col % tabSize;
|
|
46
|
+
spaces.push(" ".repeat(n));
|
|
47
|
+
col += n;
|
|
48
|
+
} else if (ch === "\n" || ch === "\r") col = 0;
|
|
49
|
+
else col += stringWidth(ch);
|
|
50
|
+
let i = 0;
|
|
51
|
+
return s.replaceAll(" ", () => spaces[i++] ?? " ".repeat(tabSize));
|
|
52
|
+
}
|
|
53
|
+
function formatLines(text, opts = {}) {
|
|
54
|
+
const lines = (typeof text === "string" ? splitAnsi(text) : text).map((line) => expandTabs(line));
|
|
55
|
+
const offset = clamp(opts.offset ?? 0, 0, lines.length - 1);
|
|
56
|
+
const limit = clamp(opts.limit ?? lines.length, 1, lines.length - offset);
|
|
57
|
+
const ellipsis = opts.style?.(ELLIPSIS) ?? ELLIPSIS;
|
|
58
|
+
let slice = lines.slice(offset, offset + limit).map((line) => opts.maxLineLength ? truncateAnsi(line, opts.maxLineLength, ellipsis) : line);
|
|
59
|
+
const numberOffset = opts.numberOffset ?? offset + 1;
|
|
60
|
+
const gutterWidth = String(numberOffset + slice.length - 1).length + 2;
|
|
61
|
+
if (opts.numbered) slice = slice.map((line, i) => {
|
|
62
|
+
const n = numberOffset + i;
|
|
63
|
+
const lineo = `${String(n).padStart(gutterWidth - 2)} │`;
|
|
64
|
+
return `${opts.style?.(lineo) ?? lineo} ${line}`;
|
|
65
|
+
});
|
|
66
|
+
if (slice.length < lines.length && opts.more !== false) {
|
|
67
|
+
const moreN = lines.length - slice.length;
|
|
68
|
+
let more = `+${moreN} more line${moreN > 1 ? "s" : ""}`;
|
|
69
|
+
more = opts.more?.(moreN, more) ?? more;
|
|
70
|
+
if (opts.numbered) {
|
|
71
|
+
const moreGutter = `${"…".padStart(gutterWidth - 2)} │`;
|
|
72
|
+
slice.push(`${opts.style?.(moreGutter) ?? moreGutter} ${opts.style?.(more) ?? more}`);
|
|
73
|
+
} else slice.push(opts.style?.(more) ?? more);
|
|
74
|
+
}
|
|
75
|
+
return slice;
|
|
76
|
+
}
|
|
77
|
+
function maxContent(text) {
|
|
78
|
+
return text.split("\n").reduce((m, line) => Math.max(m, stringWidth(line)), 0);
|
|
79
|
+
}
|
|
80
|
+
function minContent(text, mode) {
|
|
81
|
+
switch (mode) {
|
|
82
|
+
case "none": return;
|
|
83
|
+
case "char": return 1;
|
|
84
|
+
case "word": return text.split(/\s+/).reduce((m, word) => Math.max(m, stringWidth(word)), 0);
|
|
85
|
+
default: return;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function calcLayout(text, opts = {}) {
|
|
89
|
+
text = expandTabs(text);
|
|
90
|
+
const width = maxContent(text);
|
|
91
|
+
return {
|
|
92
|
+
minWidth: minContent(text, opts.wrap ?? "word") ?? width,
|
|
93
|
+
width
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
function countLines(text) {
|
|
97
|
+
let count = 0;
|
|
98
|
+
let pos = text.indexOf("\n");
|
|
99
|
+
while (pos !== -1) {
|
|
100
|
+
count++;
|
|
101
|
+
pos = text.indexOf("\n", pos + 1);
|
|
102
|
+
}
|
|
103
|
+
return count;
|
|
104
|
+
}
|
|
105
|
+
function capitalize(s) {
|
|
106
|
+
return s.charAt(0).toUpperCase() + s.slice(1);
|
|
107
|
+
}
|
|
108
|
+
//#endregion
|
|
109
|
+
export { calcLayout, capitalize, countLines, expandTabs, formatLines, formatText };
|
|
110
|
+
|
|
111
|
+
//# sourceMappingURL=text.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.mjs","names":[],"sources":["../src/layout/text.ts"],"sourcesContent":["import type { Layout } from \"../core/state.ts\"\nimport type { StyleBuilder } from \"../style/builder.ts\"\n\nimport { clamp } from \"@zaly/shared\"\nimport {\n hasAnsi,\n sliceAnsi,\n splitAnsi,\n stringWidth,\n stripAnsi,\n truncateAnsi,\n wrapAnsi,\n} from \"@zaly/shared/ansi\"\nimport { ansiBg, styleAnsi } from \"../style/ansi.ts\"\n\nexport type WrapMode = \"word\" | \"char\" | \"none\"\n\nconst ELLIPSIS = \"…\"\nconst TAB_WIDTH = 4\n\nexport function formatText(\n text: string,\n opts: {\n wrap?: WrapMode\n width: number\n style?: StyleBuilder\n /** When wrapping, preserve the indentation of the original text. */\n indent?: boolean\n /** When wrapping ANSI-styled text, pad wrapped fragments to `width`\n * using the background color active at the fragment's last cell.\n * Natural lines that already fit are left unchanged. */\n wrapBg?: boolean\n }\n): string[] {\n const mode = opts.wrap ?? \"word\"\n const lines = splitAnsi(expandTabs(text))\n const ret: string[] = []\n if (mode === \"none\") ret.push(...lines)\n else {\n for (const line of lines) {\n const sw = stringWidth(line)\n\n // Fast path for short lines that don't need wrapping\n if (sw <= opts.width) {\n ret.push(line)\n continue\n }\n\n const stripped = stripAnsi(line)\n\n // Long line that ends in (ansi) whitespace, so just strip\n if (stripped.slice(opts.width).trim() === \"\") {\n ret.push(sliceAnsi(line, 0, opts.width))\n continue\n }\n\n const indentWidth = opts.indent ? stringWidth(stripped.match(/^\\s*/)?.[0] ?? \"\") : 0\n const indent = indentWidth > 0 ? sliceAnsi(line, 0, indentWidth) : \"\"\n const bare = indent ? sliceAnsi(line, indentWidth) : line\n const wrapped = splitAnsi(wrapAnsi(bare, opts.width - indentWidth, { mode }))\n\n // * strip single leading space from wrapped lines after the first\n // * preserve indentation when enabled\n // * pad wrapped lines with bg color if padding is enabled and the line is short\n for (let r = 0; r < wrapped.length; r++) {\n let row = r > 0 && wrapped[r].startsWith(\" \") ? wrapped[r].slice(1) : wrapped[r]\n if (row === \"\" && r > 0 && r < wrapped.length - 1) continue\n if (indent) row = `${indent}${row}`\n if (opts.wrapBg) {\n const rowWidth = stringWidth(row)\n const bg = rowWidth > 0 ? ansiBg(row, rowWidth - 1) : undefined\n if (bg && rowWidth < opts.width) {\n row = `${row}${styleAnsi(\" \".repeat(opts.width - rowWidth), { bg })}`\n }\n }\n ret.push(row)\n }\n }\n }\n return ret.map((line) => (opts.style ? opts.style(line) : line))\n}\n\nexport function expandTabs(s: string, tabSize = TAB_WIDTH): string {\n if (!s.includes(\"\\t\")) return s\n const plain = hasAnsi(s) ? stripAnsi(s) : s\n const spaces: string[] = []\n let col = 0\n\n for (const ch of plain) {\n if (ch === \"\\t\") {\n const n = tabSize - (col % tabSize)\n spaces.push(\" \".repeat(n))\n col += n\n } else if (ch === \"\\n\" || ch === \"\\r\") {\n col = 0\n } else {\n col += stringWidth(ch)\n }\n }\n\n let i = 0\n return s.replaceAll(\"\\t\", () => spaces[i++] ?? \" \".repeat(tabSize))\n}\n\nexport function formatLines(\n text: string | string[],\n opts: {\n numbered?: boolean\n numberOffset?: number\n maxLineLength?: number\n offset?: number\n limit?: number\n more?: false | ((more: number, msg: string) => string)\n style?: StyleBuilder\n } = {}\n): string[] {\n const lines = (typeof text === \"string\" ? splitAnsi(text) : text).map((line) => expandTabs(line))\n const offset = clamp(opts.offset ?? 0, 0, lines.length - 1)\n const limit = clamp(opts.limit ?? lines.length, 1, lines.length - offset)\n const ellipsis = opts.style?.(ELLIPSIS) ?? ELLIPSIS\n let slice = lines\n .slice(offset, offset + limit)\n .map((line) => (opts.maxLineLength ? truncateAnsi(line, opts.maxLineLength, ellipsis) : line))\n\n const numberOffset = opts.numberOffset ?? offset + 1\n const gutterWidth = String(numberOffset + slice.length - 1).length + 2\n\n if (opts.numbered) {\n slice = slice.map((line, i) => {\n const n = numberOffset + i\n const lineo = `${String(n).padStart(gutterWidth - 2)} │`\n return `${opts.style?.(lineo) ?? lineo} ${line}`\n })\n }\n\n if (slice.length < lines.length && opts.more !== false) {\n const moreN = lines.length - slice.length\n let more = `+${moreN} more line${moreN > 1 ? \"s\" : \"\"}`\n more = opts.more?.(moreN, more) ?? more\n if (opts.numbered) {\n const moreGutter = `${\"…\".padStart(gutterWidth - 2)} │`\n slice.push(`${opts.style?.(moreGutter) ?? moreGutter} ${opts.style?.(more) ?? more}`)\n } else slice.push(opts.style?.(more) ?? more)\n }\n\n return slice\n}\n\nfunction maxContent(text: string): number {\n return text.split(\"\\n\").reduce((m, line) => Math.max(m, stringWidth(line)), 0)\n}\n\nfunction minContent(text: string, mode: WrapMode): number | undefined {\n switch (mode) {\n case \"none\": {\n return\n } // can't break, same as max\n case \"char\": {\n return 1\n } // can break anywhere → 1cell floor\n case \"word\": {\n // longest unbreakable run\n return text.split(/\\s+/).reduce((m, word) => Math.max(m, stringWidth(word)), 0)\n }\n default: {\n mode satisfies never // future modes get caught at type-check time\n return undefined\n }\n }\n}\n\nexport function calcLayout(text: string, opts: { wrap?: WrapMode } = {}): Layout {\n text = expandTabs(text)\n const width = maxContent(text)\n return {\n minWidth: minContent(text, opts.wrap ?? \"word\") ?? width,\n width,\n }\n}\n\nexport function countLines(text: string): number {\n let count = 0\n let pos = text.indexOf(\"\\n\")\n while (pos !== -1) {\n count++\n pos = text.indexOf(\"\\n\", pos + 1)\n }\n return count\n}\n\nexport function capitalize(s: string): string {\n return s.charAt(0).toUpperCase() + s.slice(1)\n}\n"],"mappings":";;;;AAiBA,MAAM,WAAW;AACjB,MAAM,YAAY;AAElB,SAAgB,WACd,MACA,MAWU;CACV,MAAM,OAAO,KAAK,QAAQ;CAC1B,MAAM,QAAQ,UAAU,WAAW,IAAI,CAAC;CACxC,MAAM,MAAgB,CAAC;CACvB,IAAI,SAAS,QAAQ,IAAI,KAAK,GAAG,KAAK;MAEpC,KAAK,MAAM,QAAQ,OAAO;EAIxB,IAHW,YAAY,IAGlB,KAAK,KAAK,OAAO;GACpB,IAAI,KAAK,IAAI;GACb;EACF;EAEA,MAAM,WAAW,UAAU,IAAI;EAG/B,IAAI,SAAS,MAAM,KAAK,KAAK,CAAC,CAAC,KAAK,MAAM,IAAI;GAC5C,IAAI,KAAK,UAAU,MAAM,GAAG,KAAK,KAAK,CAAC;GACvC;EACF;EAEA,MAAM,cAAc,KAAK,SAAS,YAAY,SAAS,MAAM,MAAM,CAAC,GAAG,MAAM,EAAE,IAAI;EACnF,MAAM,SAAS,cAAc,IAAI,UAAU,MAAM,GAAG,WAAW,IAAI;EAEnE,MAAM,UAAU,UAAU,SADb,SAAS,UAAU,MAAM,WAAW,IAAI,MACZ,KAAK,QAAQ,aAAa,EAAE,KAAK,CAAC,CAAC;EAK5E,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;GACvC,IAAI,MAAM,IAAI,KAAK,QAAQ,EAAE,CAAC,WAAW,GAAG,IAAI,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,QAAQ;GAC9E,IAAI,QAAQ,MAAM,IAAI,KAAK,IAAI,QAAQ,SAAS,GAAG;GACnD,IAAI,QAAQ,MAAM,GAAG,SAAS;GAC9B,IAAI,KAAK,QAAQ;IACf,MAAM,WAAW,YAAY,GAAG;IAChC,MAAM,KAAK,WAAW,IAAI,OAAO,KAAK,WAAW,CAAC,IAAI,KAAA;IACtD,IAAI,MAAM,WAAW,KAAK,OACxB,MAAM,GAAG,MAAM,UAAU,IAAI,OAAO,KAAK,QAAQ,QAAQ,GAAG,EAAE,GAAG,CAAC;GAEtE;GACA,IAAI,KAAK,GAAG;EACd;CACF;CAEF,OAAO,IAAI,KAAK,SAAU,KAAK,QAAQ,KAAK,MAAM,IAAI,IAAI,IAAK;AACjE;AAEA,SAAgB,WAAW,GAAW,UAAU,WAAmB;CACjE,IAAI,CAAC,EAAE,SAAS,GAAI,GAAG,OAAO;CAC9B,MAAM,QAAQ,QAAQ,CAAC,IAAI,UAAU,CAAC,IAAI;CAC1C,MAAM,SAAmB,CAAC;CAC1B,IAAI,MAAM;CAEV,KAAK,MAAM,MAAM,OACf,IAAI,OAAO,KAAM;EACf,MAAM,IAAI,UAAW,MAAM;EAC3B,OAAO,KAAK,IAAI,OAAO,CAAC,CAAC;EACzB,OAAO;CACT,OAAO,IAAI,OAAO,QAAQ,OAAO,MAC/B,MAAM;MAEN,OAAO,YAAY,EAAE;CAIzB,IAAI,IAAI;CACR,OAAO,EAAE,WAAW,WAAY,OAAO,QAAQ,IAAI,OAAO,OAAO,CAAC;AACpE;AAEA,SAAgB,YACd,MACA,OAQI,CAAC,GACK;CACV,MAAM,SAAS,OAAO,SAAS,WAAW,UAAU,IAAI,IAAI,KAAA,CAAM,KAAK,SAAS,WAAW,IAAI,CAAC;CAChG,MAAM,SAAS,MAAM,KAAK,UAAU,GAAG,GAAG,MAAM,SAAS,CAAC;CAC1D,MAAM,QAAQ,MAAM,KAAK,SAAS,MAAM,QAAQ,GAAG,MAAM,SAAS,MAAM;CACxE,MAAM,WAAW,KAAK,QAAQ,QAAQ,KAAK;CAC3C,IAAI,QAAQ,MACT,MAAM,QAAQ,SAAS,KAAK,CAAC,CAC7B,KAAK,SAAU,KAAK,gBAAgB,aAAa,MAAM,KAAK,eAAe,QAAQ,IAAI,IAAK;CAE/F,MAAM,eAAe,KAAK,gBAAgB,SAAS;CACnD,MAAM,cAAc,OAAO,eAAe,MAAM,SAAS,CAAC,CAAC,CAAC,SAAS;CAErE,IAAI,KAAK,UACP,QAAQ,MAAM,KAAK,MAAM,MAAM;EAC7B,MAAM,IAAI,eAAe;EACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,cAAc,CAAC,EAAE;EACrD,OAAO,GAAG,KAAK,QAAQ,KAAK,KAAK,MAAM,GAAG;CAC5C,CAAC;CAGH,IAAI,MAAM,SAAS,MAAM,UAAU,KAAK,SAAS,OAAO;EACtD,MAAM,QAAQ,MAAM,SAAS,MAAM;EACnC,IAAI,OAAO,IAAI,MAAM,YAAY,QAAQ,IAAI,MAAM;EACnD,OAAO,KAAK,OAAO,OAAO,IAAI,KAAK;EACnC,IAAI,KAAK,UAAU;GACjB,MAAM,aAAa,GAAG,IAAI,SAAS,cAAc,CAAC,EAAE;GACpD,MAAM,KAAK,GAAG,KAAK,QAAQ,UAAU,KAAK,WAAW,GAAG,KAAK,QAAQ,IAAI,KAAK,MAAM;EACtF,OAAO,MAAM,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI;CAC9C;CAEA,OAAO;AACT;AAEA,SAAS,WAAW,MAAsB;CACxC,OAAO,KAAK,MAAM,IAAI,CAAC,CAAC,QAAQ,GAAG,SAAS,KAAK,IAAI,GAAG,YAAY,IAAI,CAAC,GAAG,CAAC;AAC/E;AAEA,SAAS,WAAW,MAAc,MAAoC;CACpE,QAAQ,MAAR;EACE,KAAK,QACH;EAEF,KAAK,QACH,OAAO;EAET,KAAK,QAEH,OAAO,KAAK,MAAM,KAAK,CAAC,CAAC,QAAQ,GAAG,SAAS,KAAK,IAAI,GAAG,YAAY,IAAI,CAAC,GAAG,CAAC;EAEhF,SAEE;CAEJ;AACF;AAEA,SAAgB,WAAW,MAAc,OAA4B,CAAC,GAAW;CAC/E,OAAO,WAAW,IAAI;CACtB,MAAM,QAAQ,WAAW,IAAI;CAC7B,OAAO;EACL,UAAU,WAAW,MAAM,KAAK,QAAQ,MAAM,KAAK;EACnD;CACF;AACF;AAEA,SAAgB,WAAW,MAAsB;CAC/C,IAAI,QAAQ;CACZ,IAAI,MAAM,KAAK,QAAQ,IAAI;CAC3B,OAAO,QAAQ,IAAI;EACjB;EACA,MAAM,KAAK,QAAQ,MAAM,MAAM,CAAC;CAClC;CACA,OAAO;AACT;AAEA,SAAgB,WAAW,GAAmB;CAC5C,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,MAAM,CAAC;AAC9C"}
|