@visulima/colorize 2.0.0-alpha.10 → 2.0.0-alpha.12
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/CHANGELOG.md +36 -0
- package/dist/gradient.cjs +3 -62
- package/dist/gradient.d.cts +21 -12
- package/dist/gradient.d.mts +21 -12
- package/dist/gradient.d.ts +21 -12
- package/dist/gradient.mjs +3 -56
- package/dist/index.browser.d.mts +203 -60
- package/dist/index.browser.d.ts +204 -0
- package/dist/index.browser.mjs +1 -61
- package/dist/index.server.cjs +2 -255
- package/dist/index.server.d.cts +12 -6
- package/dist/index.server.d.mts +203 -60
- package/dist/index.server.d.ts +12 -6
- package/dist/index.server.mjs +1 -61
- package/dist/packem_shared/Colorize-BUAQi0t0.js +2 -0
- package/dist/packem_shared/Colorize-i0NybjSp.js +1 -0
- package/dist/packem_shared/GradientBuilder-CudosKb8.cjs +1 -0
- package/dist/packem_shared/GradientBuilder-Du8WSL23.mjs +1 -0
- package/dist/packem_shared/colorize.server-BkQZGeaS.mjs +2 -0
- package/dist/packem_shared/colorize.server-Dn-gV0MN.cjs +2 -0
- package/dist/packem_shared/convertHexToRgb-CJNE3k_E.mjs +1 -0
- package/dist/packem_shared/convertHexToRgb-Dvalc5FD.cjs +1 -0
- package/dist/packem_shared/rgbToAnsi256--f09kvlF.cjs +1 -0
- package/dist/packem_shared/rgbToAnsi256-YETEPW8R.mjs +1 -0
- package/dist/packem_shared/types.d-bhP-2hCu.d.cts +154 -0
- package/dist/packem_shared/types.d-bhP-2hCu.d.mts +154 -0
- package/dist/packem_shared/types.d-bhP-2hCu.d.ts +154 -0
- package/dist/template.cjs +2 -152
- package/dist/template.d.cts +10 -4
- package/dist/template.d.mts +4 -4
- package/dist/template.d.ts +10 -4
- package/dist/template.mjs +2 -146
- package/dist/utils.cjs +1 -13
- package/dist/utils.d.cts +13 -2
- package/dist/utils.d.mts +13 -2
- package/dist/utils.d.ts +13 -2
- package/dist/utils.mjs +1 -2
- package/package.json +13 -13
- package/dist/ansi-codes.d.cts +0 -18
- package/dist/ansi-codes.d.mts +0 -18
- package/dist/ansi-codes.d.ts +0 -18
- package/dist/colorize.browser.d.mts +0 -3
- package/dist/colorize.server.d.cts +0 -10
- package/dist/colorize.server.d.mts +0 -10
- package/dist/colorize.server.d.ts +0 -10
- package/dist/css-code.d.mts +0 -11
- package/dist/gradient/gradient-builder.d.cts +0 -10
- package/dist/gradient/gradient-builder.d.mts +0 -10
- package/dist/gradient/gradient-builder.d.ts +0 -10
- package/dist/gradient/util/color-names.d.cts +0 -2
- package/dist/gradient/util/color-names.d.mts +0 -2
- package/dist/gradient/util/color-names.d.ts +0 -2
- package/dist/gradient/util/compute.d.cts +0 -2
- package/dist/gradient/util/compute.d.mts +0 -2
- package/dist/gradient/util/compute.d.ts +0 -2
- package/dist/gradient/util/hsv-to-rgb.d.cts +0 -5
- package/dist/gradient/util/hsv-to-rgb.d.mts +0 -5
- package/dist/gradient/util/hsv-to-rgb.d.ts +0 -5
- package/dist/gradient/util/interpolate.d.cts +0 -3
- package/dist/gradient/util/interpolate.d.mts +0 -3
- package/dist/gradient/util/interpolate.d.ts +0 -3
- package/dist/gradient/util/rgb-to-hsv.d.cts +0 -9
- package/dist/gradient/util/rgb-to-hsv.d.mts +0 -9
- package/dist/gradient/util/rgb-to-hsv.d.ts +0 -9
- package/dist/packem_shared/Colorize-BQ-Wlgs0.js +0 -409
- package/dist/packem_shared/Colorize-rJUN0RFg.js +0 -250
- package/dist/packem_shared/GradientBuilder-CkX4Imo9.mjs +0 -483
- package/dist/packem_shared/GradientBuilder-DRrwebdU.cjs +0 -487
- package/dist/packem_shared/colorize.server-CwTmhs0e.cjs +0 -198
- package/dist/packem_shared/colorize.server-YxoHIDUp.mjs +0 -196
- package/dist/packem_shared/convertHexToRgb-51-edHxE.cjs +0 -21
- package/dist/packem_shared/convertHexToRgb-BZwJEiMZ.mjs +0 -17
- package/dist/packem_shared/rgbToAnsi256-BdS0fomP.mjs +0 -41
- package/dist/packem_shared/rgbToAnsi256-DL8eajTz.cjs +0 -47
- package/dist/template/make-colorize-template.d.cts +0 -9
- package/dist/template/make-colorize-template.d.mts +0 -9
- package/dist/template/make-colorize-template.d.ts +0 -9
- package/dist/template/make-template.d.cts +0 -10
- package/dist/template/make-template.d.mts +0 -10
- package/dist/template/make-template.d.ts +0 -10
- package/dist/types.d.cts +0 -174
- package/dist/types.d.mts +0 -174
- package/dist/types.d.ts +0 -174
- package/dist/util/ansi-code-hex-map.d.mts +0 -8
- package/dist/util/clamp.d.cts +0 -12
- package/dist/util/clamp.d.mts +0 -12
- package/dist/util/clamp.d.ts +0 -12
- package/dist/util/convert-hex-to-rgb.d.cts +0 -8
- package/dist/util/convert-hex-to-rgb.d.mts +0 -8
- package/dist/util/convert-hex-to-rgb.d.ts +0 -8
- package/dist/util/convert-rgb-to-ansi.d.cts +0 -18
- package/dist/util/convert-rgb-to-ansi.d.mts +0 -18
- package/dist/util/convert-rgb-to-ansi.d.ts +0 -18
- package/dist/util/string-replace-all.d.cts +0 -12
- package/dist/util/string-replace-all.d.mts +0 -12
- package/dist/util/string-replace-all.d.ts +0 -12
- package/dist/util/unescape.d.cts +0 -9
- package/dist/util/unescape.d.mts +0 -9
- package/dist/util/unescape.d.ts +0 -9
|
@@ -1,409 +0,0 @@
|
|
|
1
|
-
const ansiCodeHexMap = {
|
|
2
|
-
0: "#000",
|
|
3
|
-
1: "#800",
|
|
4
|
-
2: "#080",
|
|
5
|
-
3: "#880",
|
|
6
|
-
4: "#008",
|
|
7
|
-
5: "#808",
|
|
8
|
-
6: "#088",
|
|
9
|
-
7: "#ccc",
|
|
10
|
-
8: "#444",
|
|
11
|
-
9: "#f00",
|
|
12
|
-
10: "#0f0",
|
|
13
|
-
11: "#ff0",
|
|
14
|
-
12: "#00f",
|
|
15
|
-
13: "#f0f",
|
|
16
|
-
14: "#0ff",
|
|
17
|
-
15: "#fff",
|
|
18
|
-
16: "#000",
|
|
19
|
-
17: "#00005f",
|
|
20
|
-
18: "#000087",
|
|
21
|
-
19: "#0000af",
|
|
22
|
-
20: "#0000d7",
|
|
23
|
-
21: "#0000ff",
|
|
24
|
-
22: "#005f00",
|
|
25
|
-
23: "#005f5f",
|
|
26
|
-
24: "#005f87",
|
|
27
|
-
25: "#005faf",
|
|
28
|
-
26: "#005fd7",
|
|
29
|
-
27: "#005fff",
|
|
30
|
-
28: "#008700",
|
|
31
|
-
29: "#00875f",
|
|
32
|
-
30: "#008787",
|
|
33
|
-
31: "#0087af",
|
|
34
|
-
32: "#0087d7",
|
|
35
|
-
33: "#0087ff",
|
|
36
|
-
34: "#00af00",
|
|
37
|
-
35: "#00af5f",
|
|
38
|
-
36: "#00af87",
|
|
39
|
-
37: "#00afaf",
|
|
40
|
-
38: "#00afd7",
|
|
41
|
-
39: "#00afff",
|
|
42
|
-
40: "#00d700",
|
|
43
|
-
41: "#00d75f",
|
|
44
|
-
42: "#00d787",
|
|
45
|
-
43: "#00d7af",
|
|
46
|
-
44: "#00d7d7",
|
|
47
|
-
45: "#00d7ff",
|
|
48
|
-
46: "#00ff00",
|
|
49
|
-
47: "#00ff5f",
|
|
50
|
-
48: "#00ff87",
|
|
51
|
-
49: "#00ffaf",
|
|
52
|
-
50: "#00ffd7",
|
|
53
|
-
51: "#00ffff",
|
|
54
|
-
52: "#5f0000",
|
|
55
|
-
53: "#5f005f",
|
|
56
|
-
54: "#5f0087",
|
|
57
|
-
55: "#5f00af",
|
|
58
|
-
56: "#5f00d7",
|
|
59
|
-
57: "#5f00ff",
|
|
60
|
-
58: "#5f5f00",
|
|
61
|
-
59: "#5f5f5f",
|
|
62
|
-
60: "#5f5f87",
|
|
63
|
-
61: "#5f5faf",
|
|
64
|
-
62: "#5f5fd7",
|
|
65
|
-
63: "#5f5fff",
|
|
66
|
-
64: "#5f8700",
|
|
67
|
-
65: "#5f875f",
|
|
68
|
-
66: "#5f8787",
|
|
69
|
-
67: "#5f87af",
|
|
70
|
-
68: "#5f87d7",
|
|
71
|
-
69: "#5f87ff",
|
|
72
|
-
70: "#5faf00",
|
|
73
|
-
71: "#5faf5f",
|
|
74
|
-
72: "#5faf87",
|
|
75
|
-
73: "#5fafaf",
|
|
76
|
-
74: "#5fafd7",
|
|
77
|
-
75: "#5fafff",
|
|
78
|
-
76: "#5fd700",
|
|
79
|
-
77: "#5fd75f",
|
|
80
|
-
78: "#5fd787",
|
|
81
|
-
79: "#5fd7af",
|
|
82
|
-
80: "#5fd7d7",
|
|
83
|
-
81: "#5fd7ff",
|
|
84
|
-
82: "#5fff00",
|
|
85
|
-
83: "#5fff5f",
|
|
86
|
-
84: "#5fff87",
|
|
87
|
-
85: "#5fffaf",
|
|
88
|
-
86: "#5fffd7",
|
|
89
|
-
87: "#5fffff",
|
|
90
|
-
88: "#870000",
|
|
91
|
-
89: "#87005f",
|
|
92
|
-
90: "#870087",
|
|
93
|
-
91: "#8700af",
|
|
94
|
-
92: "#8700d7",
|
|
95
|
-
93: "#8700ff",
|
|
96
|
-
94: "#875f00",
|
|
97
|
-
95: "#875f5f",
|
|
98
|
-
96: "#875f87",
|
|
99
|
-
97: "#875faf",
|
|
100
|
-
98: "#875fd7",
|
|
101
|
-
99: "#875fff",
|
|
102
|
-
100: "#878700",
|
|
103
|
-
101: "#87875f",
|
|
104
|
-
102: "#878787",
|
|
105
|
-
103: "#8787af",
|
|
106
|
-
104: "#8787d7",
|
|
107
|
-
105: "#8787ff",
|
|
108
|
-
106: "#87af00",
|
|
109
|
-
107: "#87af5f",
|
|
110
|
-
108: "#87af87",
|
|
111
|
-
109: "#87afaf",
|
|
112
|
-
110: "#87afd7",
|
|
113
|
-
111: "#87afff",
|
|
114
|
-
112: "#87d700",
|
|
115
|
-
113: "#87d75f",
|
|
116
|
-
114: "#87d787",
|
|
117
|
-
115: "#87d7af",
|
|
118
|
-
116: "#87d7d7",
|
|
119
|
-
117: "#87d7ff",
|
|
120
|
-
118: "#87ff00",
|
|
121
|
-
119: "#87ff5f",
|
|
122
|
-
120: "#87ff87",
|
|
123
|
-
121: "#87ffaf",
|
|
124
|
-
122: "#87ffd7",
|
|
125
|
-
123: "#87ffff",
|
|
126
|
-
124: "#af0000",
|
|
127
|
-
125: "#af005f",
|
|
128
|
-
126: "#af0087",
|
|
129
|
-
127: "#af00af",
|
|
130
|
-
128: "#af00d7",
|
|
131
|
-
129: "#af00ff",
|
|
132
|
-
130: "#af5f00",
|
|
133
|
-
131: "#af5f5f",
|
|
134
|
-
132: "#af5f87",
|
|
135
|
-
133: "#af5faf",
|
|
136
|
-
134: "#af5fd7",
|
|
137
|
-
135: "#af5fff",
|
|
138
|
-
136: "#af8700",
|
|
139
|
-
137: "#af875f",
|
|
140
|
-
138: "#af8787",
|
|
141
|
-
139: "#af87af",
|
|
142
|
-
140: "#af87d7",
|
|
143
|
-
141: "#af87ff",
|
|
144
|
-
142: "#afaf00",
|
|
145
|
-
143: "#afaf5f",
|
|
146
|
-
144: "#afaf87",
|
|
147
|
-
145: "#afafaf",
|
|
148
|
-
146: "#afafd7",
|
|
149
|
-
147: "#afafff",
|
|
150
|
-
148: "#afd700",
|
|
151
|
-
149: "#afd75f",
|
|
152
|
-
150: "#afd787",
|
|
153
|
-
151: "#afd7af",
|
|
154
|
-
152: "#afd7d7",
|
|
155
|
-
153: "#afd7ff",
|
|
156
|
-
154: "#afff00",
|
|
157
|
-
155: "#afff5f",
|
|
158
|
-
156: "#afff87",
|
|
159
|
-
157: "#afffaf",
|
|
160
|
-
158: "#afffd7",
|
|
161
|
-
159: "#afffff",
|
|
162
|
-
160: "#d70000",
|
|
163
|
-
161: "#d7005f",
|
|
164
|
-
162: "#d70087",
|
|
165
|
-
163: "#d700af",
|
|
166
|
-
164: "#d700d7",
|
|
167
|
-
165: "#d700ff",
|
|
168
|
-
166: "#d75f00",
|
|
169
|
-
167: "#d75f5f",
|
|
170
|
-
168: "#d75f87",
|
|
171
|
-
169: "#d75faf",
|
|
172
|
-
170: "#d75fd7",
|
|
173
|
-
171: "#d75fff",
|
|
174
|
-
172: "#d78700",
|
|
175
|
-
173: "#d7875f",
|
|
176
|
-
174: "#d78787",
|
|
177
|
-
175: "#d787af",
|
|
178
|
-
176: "#d787d7",
|
|
179
|
-
177: "#d787ff",
|
|
180
|
-
178: "#d7af00",
|
|
181
|
-
179: "#d7af5f",
|
|
182
|
-
180: "#d7af87",
|
|
183
|
-
181: "#d7afaf",
|
|
184
|
-
182: "#d7afd7",
|
|
185
|
-
183: "#d7afff",
|
|
186
|
-
184: "#d7d700",
|
|
187
|
-
185: "#d7d75f",
|
|
188
|
-
186: "#d7d787",
|
|
189
|
-
187: "#d7d7af",
|
|
190
|
-
188: "#d7d7d7",
|
|
191
|
-
189: "#d7d7ff",
|
|
192
|
-
190: "#d7ff00",
|
|
193
|
-
191: "#d7ff5f",
|
|
194
|
-
192: "#d7ff87",
|
|
195
|
-
193: "#d7ffaf",
|
|
196
|
-
194: "#d7ffd7",
|
|
197
|
-
195: "#d7ffff",
|
|
198
|
-
196: "#ff0000",
|
|
199
|
-
197: "#ff005f",
|
|
200
|
-
198: "#ff0087",
|
|
201
|
-
199: "#ff00af",
|
|
202
|
-
200: "#ff00d7",
|
|
203
|
-
201: "#ff00ff",
|
|
204
|
-
202: "#ff5f00",
|
|
205
|
-
203: "#ff5f5f",
|
|
206
|
-
204: "#ff5f87",
|
|
207
|
-
205: "#ff5faf",
|
|
208
|
-
206: "#ff5fd7",
|
|
209
|
-
207: "#ff5fff",
|
|
210
|
-
208: "#ff8700",
|
|
211
|
-
209: "#ff875f",
|
|
212
|
-
210: "#ff8787",
|
|
213
|
-
211: "#ff87af",
|
|
214
|
-
212: "#ff87d7",
|
|
215
|
-
213: "#ff87ff",
|
|
216
|
-
214: "#ffaf00",
|
|
217
|
-
215: "#ffaf5f",
|
|
218
|
-
216: "#ffaf87",
|
|
219
|
-
217: "#ffafaf",
|
|
220
|
-
218: "#ffafd7",
|
|
221
|
-
219: "#ffafff",
|
|
222
|
-
220: "#ffd700",
|
|
223
|
-
221: "#ffd75f",
|
|
224
|
-
222: "#ffd787",
|
|
225
|
-
223: "#ffd7af",
|
|
226
|
-
224: "#ffd7d7",
|
|
227
|
-
225: "#ffd7ff",
|
|
228
|
-
226: "#ffff00",
|
|
229
|
-
227: "#ffff5f",
|
|
230
|
-
228: "#ffff87",
|
|
231
|
-
229: "#ffffaf",
|
|
232
|
-
230: "#ffffd7",
|
|
233
|
-
231: "#ffffff",
|
|
234
|
-
232: "#080808",
|
|
235
|
-
233: "#121212",
|
|
236
|
-
234: "#1c1c1c",
|
|
237
|
-
235: "#262626",
|
|
238
|
-
236: "#303030",
|
|
239
|
-
237: "#3a3a3a",
|
|
240
|
-
238: "#444444",
|
|
241
|
-
239: "#4e4e4e",
|
|
242
|
-
240: "#585858",
|
|
243
|
-
241: "#626262",
|
|
244
|
-
242: "#6c6c6c",
|
|
245
|
-
243: "#767676",
|
|
246
|
-
244: "#808080",
|
|
247
|
-
245: "#8a8a8a",
|
|
248
|
-
246: "#949494",
|
|
249
|
-
247: "#9e9e9e",
|
|
250
|
-
248: "#a8a8a8",
|
|
251
|
-
249: "#b2b2b2",
|
|
252
|
-
250: "#bcbcbc",
|
|
253
|
-
251: "#c6c6c6",
|
|
254
|
-
252: "#d0d0d0",
|
|
255
|
-
253: "#dadada",
|
|
256
|
-
254: "#e4e4e4",
|
|
257
|
-
255: "#eeeeee"
|
|
258
|
-
};
|
|
259
|
-
|
|
260
|
-
const baseStyles = {
|
|
261
|
-
bold: "font-weight: bold;",
|
|
262
|
-
dim: "opacity: 0.5;",
|
|
263
|
-
hidden: "visibility: hidden;",
|
|
264
|
-
inverse: "background-color: currentColor; color: background-color;",
|
|
265
|
-
italic: "font-style: italic;",
|
|
266
|
-
overline: "text-decoration: overline;",
|
|
267
|
-
reset: "color: inherit",
|
|
268
|
-
strike: "text-decoration: line-through;",
|
|
269
|
-
strikethrough: "text-decoration: line-through;",
|
|
270
|
-
underline: "text-decoration: underline;",
|
|
271
|
-
visible: "opacity: 0;"
|
|
272
|
-
};
|
|
273
|
-
const baseColors = {
|
|
274
|
-
bgBlack: "background-color: black; color: white;",
|
|
275
|
-
bgBlackBright: "background-color: #666; color: white;",
|
|
276
|
-
bgBlue: "background-color: blue; color: white;",
|
|
277
|
-
bgBlueBright: "background-color: #55f; color: white;",
|
|
278
|
-
bgCyan: "background-color: cyan; color: black;",
|
|
279
|
-
bgCyanBright: "background-color: #5ff; color: black;",
|
|
280
|
-
bgGray: "background-color: #666; color: white;",
|
|
281
|
-
// US spelling alias for bgBlackBright
|
|
282
|
-
bgGreen: "background-color: green; color: white;",
|
|
283
|
-
bgGreenBright: "background-color: #5f5; color: white;",
|
|
284
|
-
bgGrey: "background-color: #666; color: white;",
|
|
285
|
-
// UK spelling alias for bgBlackBright
|
|
286
|
-
bgMagenta: "background-color: magenta; color: white;",
|
|
287
|
-
bgMagentaBright: "background-color: #f5f; color: white;",
|
|
288
|
-
bgRed: "background-color: red; color: white;",
|
|
289
|
-
bgRedBright: "background-color: #f55; color: white;",
|
|
290
|
-
bgWhite: "background-color: white; color: black;",
|
|
291
|
-
bgWhiteBright: "background-color: #eee; color: black;",
|
|
292
|
-
bgYellow: "background-color: yellow; color: black;",
|
|
293
|
-
bgYellowBright: "background-color: #ff5; color: black;",
|
|
294
|
-
black: "color: black;",
|
|
295
|
-
blackBright: "color: #666;",
|
|
296
|
-
blue: "color: blue;",
|
|
297
|
-
blueBright: "color: #55f;",
|
|
298
|
-
cyan: "color: cyan;",
|
|
299
|
-
cyanBright: "color: #5ff;",
|
|
300
|
-
gray: "color: #666;",
|
|
301
|
-
// US spelling alias for blackBright
|
|
302
|
-
green: "color: green;",
|
|
303
|
-
greenBright: "color: #5f5;",
|
|
304
|
-
grey: "color: #666;",
|
|
305
|
-
// UK spelling alias for blackBright
|
|
306
|
-
magenta: "color: magenta;",
|
|
307
|
-
magentaBright: "color: #f5f;",
|
|
308
|
-
red: "color: red;",
|
|
309
|
-
redBright: "color: #f55;",
|
|
310
|
-
white: "color: white;",
|
|
311
|
-
whiteBright: "color: #eee;",
|
|
312
|
-
yellow: "color: yellow;",
|
|
313
|
-
yellowBright: "color: #ff5;"
|
|
314
|
-
};
|
|
315
|
-
const styleMethods = {
|
|
316
|
-
bg: (code) => `background-color: ${ansiCodeHexMap[code] ?? ""};`,
|
|
317
|
-
bgHex: (hex) => `background-color: ${hex};`,
|
|
318
|
-
bgRgb: (r, g, b) => `background-color: rgb(${String(r)},${String(g)},${String(b)});`,
|
|
319
|
-
fg: (code) => `color: ${ansiCodeHexMap[code] ?? ""};`,
|
|
320
|
-
hex: (hex) => `color:${hex};`,
|
|
321
|
-
rgb: (r, g, b) => `color: rgb(${String(r)},${String(g)},${String(b)});`
|
|
322
|
-
};
|
|
323
|
-
|
|
324
|
-
const styles = {};
|
|
325
|
-
let stylePrototype = null;
|
|
326
|
-
const cssStringToObject = (css) => {
|
|
327
|
-
const cssObject = {};
|
|
328
|
-
css.replace(/(?<=^|;)\s*([^:]+)\s*:\s*([^;]+)\s*/g, (_, key, value) => {
|
|
329
|
-
cssObject[key] = value;
|
|
330
|
-
return value;
|
|
331
|
-
});
|
|
332
|
-
return cssObject;
|
|
333
|
-
};
|
|
334
|
-
const createStyle = ({ props }, css) => {
|
|
335
|
-
let cssStack = css;
|
|
336
|
-
if (props?.cssStack) {
|
|
337
|
-
const cssObject = cssStringToObject(css);
|
|
338
|
-
const propertiesCssObject = cssStringToObject(props.cssStack);
|
|
339
|
-
for (const key in propertiesCssObject) {
|
|
340
|
-
cssObject[key] ??= propertiesCssObject[key];
|
|
341
|
-
}
|
|
342
|
-
cssStack = `${JSON.stringify(cssObject).replace(/["{}]/g, "").replace(/,/g, ";")};`;
|
|
343
|
-
}
|
|
344
|
-
const style = (input, ...values) => {
|
|
345
|
-
if (!input) {
|
|
346
|
-
return [];
|
|
347
|
-
}
|
|
348
|
-
if (typeof input === "string" && input.includes("%c")) {
|
|
349
|
-
const collectedStyles = input.match(/(?<=,).*;/g);
|
|
350
|
-
const inputWithoutStyles = input.replace(/,.*;/g, "");
|
|
351
|
-
return [`%c${inputWithoutStyles}`, style.css, ...collectedStyles ?? []];
|
|
352
|
-
}
|
|
353
|
-
if (typeof input === "number" || typeof input === "string") {
|
|
354
|
-
return [`%c${String(input)}`, style.css];
|
|
355
|
-
}
|
|
356
|
-
if (input.raw !== void 0 && Array.isArray(values) && values.length > 0) {
|
|
357
|
-
const rawString = String.raw(input, ...values);
|
|
358
|
-
const collectedStyles = rawString.match(/(?<=,).*;/g);
|
|
359
|
-
const inputWithoutStyles = rawString.replace(/,.*;/g, "");
|
|
360
|
-
return [`%c${inputWithoutStyles}`, style.css, ...(collectedStyles ?? []).join("").split(",").filter(Boolean)];
|
|
361
|
-
}
|
|
362
|
-
const [first, ...rest] = input;
|
|
363
|
-
rest.unshift(style.css);
|
|
364
|
-
return [`${String(first).includes("%c") ? "" : "%c"}${String(first)}`, rest.join("")];
|
|
365
|
-
};
|
|
366
|
-
Object.setPrototypeOf(style, stylePrototype);
|
|
367
|
-
style.props = { css, cssStack, props };
|
|
368
|
-
style.css = cssStack;
|
|
369
|
-
return style;
|
|
370
|
-
};
|
|
371
|
-
const WebColorize = function() {
|
|
372
|
-
const self = (string_) => String(string_);
|
|
373
|
-
self.strip = (value) => value;
|
|
374
|
-
for (const name in baseColors) {
|
|
375
|
-
styles[name] = {
|
|
376
|
-
get() {
|
|
377
|
-
const style = createStyle(this, baseColors[name]);
|
|
378
|
-
Object.defineProperty(this, name, { value: style });
|
|
379
|
-
return style;
|
|
380
|
-
}
|
|
381
|
-
};
|
|
382
|
-
}
|
|
383
|
-
for (const name in baseStyles) {
|
|
384
|
-
styles[name] = {
|
|
385
|
-
get() {
|
|
386
|
-
const style = createStyle(this, baseStyles[name]);
|
|
387
|
-
Object.defineProperty(this, name, { value: style });
|
|
388
|
-
return style;
|
|
389
|
-
}
|
|
390
|
-
};
|
|
391
|
-
}
|
|
392
|
-
stylePrototype = Object.defineProperties({}, styles);
|
|
393
|
-
Object.setPrototypeOf(self, stylePrototype);
|
|
394
|
-
return self;
|
|
395
|
-
};
|
|
396
|
-
for (const name in styleMethods) {
|
|
397
|
-
styles[name] = {
|
|
398
|
-
get() {
|
|
399
|
-
return (...arguments_) => (
|
|
400
|
-
// @ts-expect-error: TODO: fix typing of `arguments_`
|
|
401
|
-
createStyle(this, styleMethods[name](...arguments_))
|
|
402
|
-
);
|
|
403
|
-
}
|
|
404
|
-
};
|
|
405
|
-
}
|
|
406
|
-
styles.ansi256 = styles.fg;
|
|
407
|
-
styles.bgAnsi256 = styles.bg;
|
|
408
|
-
|
|
409
|
-
export { WebColorize as default };
|
|
@@ -1,250 +0,0 @@
|
|
|
1
|
-
import { isStdoutColorSupported } from '@visulima/is-ansi-color-supported';
|
|
2
|
-
|
|
3
|
-
function ansiRegex({ onlyFirst = false } = {}) {
|
|
4
|
-
const ST = "(?:\\u0007|\\u001B\\u005C|\\u009C)";
|
|
5
|
-
const osc = `(?:\\u001B\\][\\s\\S]*?${ST})`;
|
|
6
|
-
const csi = "[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";
|
|
7
|
-
const pattern = `${osc}|${csi}`;
|
|
8
|
-
return new RegExp(pattern, onlyFirst ? void 0 : "g");
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
const clamp = (number_, min, max) => {
|
|
12
|
-
if (min > number_) {
|
|
13
|
-
return min;
|
|
14
|
-
}
|
|
15
|
-
return Math.min(number_, max);
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
const HEX_COLOR_REGEX = /([a-f\d]{3,6})/i;
|
|
19
|
-
const convertHexToRgb = (hex) => {
|
|
20
|
-
let [, color] = HEX_COLOR_REGEX.exec(hex) ?? [];
|
|
21
|
-
const colorLength = color ? color.length : 0;
|
|
22
|
-
if (colorLength === 3) {
|
|
23
|
-
const c0 = color.charAt(0);
|
|
24
|
-
const c1 = color.charAt(1);
|
|
25
|
-
const c2 = color.charAt(2);
|
|
26
|
-
color = c0 + c0 + c1 + c1 + c2 + c2;
|
|
27
|
-
} else if (colorLength !== 6) {
|
|
28
|
-
return [0, 0, 0];
|
|
29
|
-
}
|
|
30
|
-
const colorNumber = Number.parseInt(color, 16);
|
|
31
|
-
return [colorNumber >> 16 & 255, colorNumber >> 8 & 255, colorNumber & 255];
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
const rgbToAnsi256 = (r, g, b) => {
|
|
35
|
-
if (r === g && g === b) {
|
|
36
|
-
if (r < 8) {
|
|
37
|
-
return 16;
|
|
38
|
-
}
|
|
39
|
-
if (r > 248) {
|
|
40
|
-
return 231;
|
|
41
|
-
}
|
|
42
|
-
return Math.round((r - 8) / 247 * 24) + 232;
|
|
43
|
-
}
|
|
44
|
-
return 16 + 36 * Math.round(r / 51) + 6 * Math.round(g / 51) + Math.round(b / 51);
|
|
45
|
-
};
|
|
46
|
-
const ansi256To16 = (code) => {
|
|
47
|
-
let r;
|
|
48
|
-
let g;
|
|
49
|
-
let b;
|
|
50
|
-
if (code < 8) {
|
|
51
|
-
return 30 + code;
|
|
52
|
-
}
|
|
53
|
-
if (code < 16) {
|
|
54
|
-
return 90 + (code - 8);
|
|
55
|
-
}
|
|
56
|
-
if (code >= 232) {
|
|
57
|
-
r = g = b = ((code - 232) * 10 + 8) / 255;
|
|
58
|
-
} else {
|
|
59
|
-
code -= 16;
|
|
60
|
-
const remainder = code % 36;
|
|
61
|
-
r = Math.floor(code / 36) / 5;
|
|
62
|
-
g = Math.floor(remainder / 6) / 5;
|
|
63
|
-
b = remainder % 6 / 5;
|
|
64
|
-
}
|
|
65
|
-
const value = Math.max(r, g, b) * 2;
|
|
66
|
-
if (value === 0) {
|
|
67
|
-
return 30;
|
|
68
|
-
}
|
|
69
|
-
const code16 = 30 + (Math.round(b) << 2 | Math.round(g) << 1 | Math.round(r));
|
|
70
|
-
return value === 2 ? code16 + 60 : code16;
|
|
71
|
-
};
|
|
72
|
-
const rgbToAnsi16 = (r, g, b) => ansi256To16(rgbToAnsi256(r, g, b));
|
|
73
|
-
|
|
74
|
-
const closeCode = 39;
|
|
75
|
-
const bgCloseCode = 49;
|
|
76
|
-
const bgOffset = 10;
|
|
77
|
-
const supportedColor = isStdoutColorSupported();
|
|
78
|
-
const mono = { close: "", open: "" };
|
|
79
|
-
const esc = supportedColor > 0 ? (open, close) => {
|
|
80
|
-
return { close: `\x1B[${String(close)}m`, open: `\x1B[${String(open)}m` };
|
|
81
|
-
} : () => mono;
|
|
82
|
-
const createRgbFunction = (function_) => (r, g, b) => function_(rgbToAnsi256(Number(r), Number(g), Number(b)));
|
|
83
|
-
const createHexFunction = (function_) => (hex) => {
|
|
84
|
-
const [r, g, b] = convertHexToRgb(hex);
|
|
85
|
-
return function_(r, g, b);
|
|
86
|
-
};
|
|
87
|
-
let createAnsi256 = (code) => esc(`38;5;${String(code)}`, closeCode);
|
|
88
|
-
let createBgAnsi256 = (code) => esc(`48;5;${String(code)}`, bgCloseCode);
|
|
89
|
-
let createRgb = (r, g, b) => esc(`38;2;${String(r)};${String(g)};${String(b)}`, closeCode);
|
|
90
|
-
let createBgRgb = (r, g, b) => esc(`48;2;${String(r)};${String(g)};${String(b)}`, bgCloseCode);
|
|
91
|
-
if (supportedColor === 1) {
|
|
92
|
-
createAnsi256 = (code) => esc(ansi256To16(Number(code)), closeCode);
|
|
93
|
-
createBgAnsi256 = (code) => esc(ansi256To16(Number(code)) + bgOffset, bgCloseCode);
|
|
94
|
-
createRgb = (r, g, b) => esc(rgbToAnsi16(Number(r), Number(g), Number(b)), closeCode);
|
|
95
|
-
createBgRgb = (r, g, b) => esc(rgbToAnsi16(Number(r), Number(g), Number(b)) + bgOffset, bgCloseCode);
|
|
96
|
-
} else if (supportedColor === 2) {
|
|
97
|
-
createRgb = createRgbFunction(createAnsi256);
|
|
98
|
-
createBgRgb = createRgbFunction(createBgAnsi256);
|
|
99
|
-
}
|
|
100
|
-
const baseStyles = {
|
|
101
|
-
// 21 isn't widely supported and 22 does the same thing
|
|
102
|
-
bold: esc(1, 22),
|
|
103
|
-
dim: esc(2, 22),
|
|
104
|
-
hidden: esc(8, 28),
|
|
105
|
-
inverse: esc(7, 27),
|
|
106
|
-
italic: esc(3, 23),
|
|
107
|
-
overline: esc(53, 55),
|
|
108
|
-
reset: esc(0, 0),
|
|
109
|
-
strike: esc(9, 29),
|
|
110
|
-
// alias for strikethrough
|
|
111
|
-
strikethrough: esc(9, 29),
|
|
112
|
-
underline: esc(4, 24),
|
|
113
|
-
visible: mono
|
|
114
|
-
};
|
|
115
|
-
const baseColors = {
|
|
116
|
-
bgBlack: esc(40, bgCloseCode),
|
|
117
|
-
bgBlackBright: esc(100, bgCloseCode),
|
|
118
|
-
bgBlue: esc(44, bgCloseCode),
|
|
119
|
-
bgBlueBright: esc(104, bgCloseCode),
|
|
120
|
-
bgCyan: esc(46, bgCloseCode),
|
|
121
|
-
bgCyanBright: esc(106, bgCloseCode),
|
|
122
|
-
bgGray: esc(100, bgCloseCode),
|
|
123
|
-
// US spelling alias for bgBlackBright
|
|
124
|
-
bgGreen: esc(42, bgCloseCode),
|
|
125
|
-
bgGreenBright: esc(102, bgCloseCode),
|
|
126
|
-
bgGrey: esc(100, bgCloseCode),
|
|
127
|
-
// UK spelling alias for bgBlackBright
|
|
128
|
-
bgMagenta: esc(45, bgCloseCode),
|
|
129
|
-
bgMagentaBright: esc(105, bgCloseCode),
|
|
130
|
-
bgRed: esc(41, bgCloseCode),
|
|
131
|
-
bgRedBright: esc(101, bgCloseCode),
|
|
132
|
-
bgWhite: esc(47, bgCloseCode),
|
|
133
|
-
bgWhiteBright: esc(107, bgCloseCode),
|
|
134
|
-
bgYellow: esc(43, bgCloseCode),
|
|
135
|
-
bgYellowBright: esc(103, bgCloseCode),
|
|
136
|
-
black: esc(30, closeCode),
|
|
137
|
-
blackBright: esc(90, closeCode),
|
|
138
|
-
blue: esc(34, closeCode),
|
|
139
|
-
blueBright: esc(94, closeCode),
|
|
140
|
-
cyan: esc(36, closeCode),
|
|
141
|
-
cyanBright: esc(96, closeCode),
|
|
142
|
-
gray: esc(90, closeCode),
|
|
143
|
-
// US spelling alias for blackBright
|
|
144
|
-
green: esc(32, closeCode),
|
|
145
|
-
greenBright: esc(92, closeCode),
|
|
146
|
-
grey: esc(90, closeCode),
|
|
147
|
-
// UK spelling alias for blackBright
|
|
148
|
-
magenta: esc(35, closeCode),
|
|
149
|
-
magentaBright: esc(95, closeCode),
|
|
150
|
-
red: esc(31, closeCode),
|
|
151
|
-
redBright: esc(91, closeCode),
|
|
152
|
-
white: esc(37, closeCode),
|
|
153
|
-
whiteBright: esc(97, closeCode),
|
|
154
|
-
yellow: esc(33, closeCode),
|
|
155
|
-
yellowBright: esc(93, closeCode)
|
|
156
|
-
};
|
|
157
|
-
const styleMethods = {
|
|
158
|
-
bg: (code) => createBgAnsi256(clamp(code, 0, 255)),
|
|
159
|
-
bgHex: createHexFunction(createBgRgb),
|
|
160
|
-
bgRgb: (r, g, b) => createBgRgb(clamp(r, 0, 255), clamp(g, 0, 255), clamp(b, 0, 255)),
|
|
161
|
-
fg: (code) => createAnsi256(clamp(code, 0, 255)),
|
|
162
|
-
hex: createHexFunction(createRgb),
|
|
163
|
-
rgb: (r, g, b) => createRgb(clamp(r, 0, 255), clamp(g, 0, 255), clamp(b, 0, 255))
|
|
164
|
-
};
|
|
165
|
-
|
|
166
|
-
const stringReplaceAll = (string_, searchValue, replaceValue) => {
|
|
167
|
-
if (searchValue === "") {
|
|
168
|
-
return string_;
|
|
169
|
-
}
|
|
170
|
-
let pos = string_.indexOf(searchValue);
|
|
171
|
-
if (pos < 0) {
|
|
172
|
-
return string_;
|
|
173
|
-
}
|
|
174
|
-
const substringLength = searchValue.length;
|
|
175
|
-
let lastPos = 0;
|
|
176
|
-
let result = "";
|
|
177
|
-
while (~pos) {
|
|
178
|
-
result += string_.slice(lastPos, pos) + replaceValue;
|
|
179
|
-
lastPos = pos + substringLength;
|
|
180
|
-
pos = string_.indexOf(searchValue, lastPos);
|
|
181
|
-
}
|
|
182
|
-
return result + string_.slice(lastPos);
|
|
183
|
-
};
|
|
184
|
-
|
|
185
|
-
const styles = {};
|
|
186
|
-
let stylePrototype = null;
|
|
187
|
-
const wrapText = (strings, values, properties) => {
|
|
188
|
-
if (!strings) {
|
|
189
|
-
return "";
|
|
190
|
-
}
|
|
191
|
-
let string = strings.raw === void 0 ? String(strings) : String.raw(strings, ...values);
|
|
192
|
-
if (string.includes("\x1B")) {
|
|
193
|
-
for (let currentProperties = properties; currentProperties; currentProperties = currentProperties.props) {
|
|
194
|
-
string = stringReplaceAll(string, currentProperties.close, currentProperties.open);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
if (string.includes("\n")) {
|
|
198
|
-
string = string.replace(/(\r*\n)/g, `${properties.closeStack}$1${properties.openStack}`);
|
|
199
|
-
}
|
|
200
|
-
return properties.openStack + string + properties.closeStack;
|
|
201
|
-
};
|
|
202
|
-
const createStyle = ({ props }, { close, open }) => {
|
|
203
|
-
const openStack = (props?.openStack ?? "") + open;
|
|
204
|
-
const closeStack = close + (props?.closeStack ?? "");
|
|
205
|
-
const style = (strings, ...values) => wrapText(strings, values, style.props);
|
|
206
|
-
Object.setPrototypeOf(style, stylePrototype);
|
|
207
|
-
style.props = { close, closeStack, open, openStack, props };
|
|
208
|
-
style.open = openStack;
|
|
209
|
-
style.close = closeStack;
|
|
210
|
-
return style;
|
|
211
|
-
};
|
|
212
|
-
const Colorize = function() {
|
|
213
|
-
const self = (string_) => String(string_);
|
|
214
|
-
self.strip = (value) => value.replaceAll(ansiRegex(), "");
|
|
215
|
-
for (const name in baseColors) {
|
|
216
|
-
styles[name] = {
|
|
217
|
-
get() {
|
|
218
|
-
const style = createStyle(this, baseColors[name]);
|
|
219
|
-
Object.defineProperty(this, name, { value: style });
|
|
220
|
-
return style;
|
|
221
|
-
}
|
|
222
|
-
};
|
|
223
|
-
}
|
|
224
|
-
for (const name in baseStyles) {
|
|
225
|
-
styles[name] = {
|
|
226
|
-
get() {
|
|
227
|
-
const style = createStyle(this, baseStyles[name]);
|
|
228
|
-
Object.defineProperty(this, name, { value: style });
|
|
229
|
-
return style;
|
|
230
|
-
}
|
|
231
|
-
};
|
|
232
|
-
}
|
|
233
|
-
stylePrototype = Object.defineProperties({}, styles);
|
|
234
|
-
Object.setPrototypeOf(self, stylePrototype);
|
|
235
|
-
return self;
|
|
236
|
-
};
|
|
237
|
-
for (const name in styleMethods) {
|
|
238
|
-
styles[name] = {
|
|
239
|
-
get() {
|
|
240
|
-
return (...arguments_) => (
|
|
241
|
-
// @ts-expect-error: TODO: fix typing of `arguments_`
|
|
242
|
-
createStyle(this, styleMethods[name](...arguments_))
|
|
243
|
-
);
|
|
244
|
-
}
|
|
245
|
-
};
|
|
246
|
-
}
|
|
247
|
-
styles.ansi256 = styles.fg;
|
|
248
|
-
styles.bgAnsi256 = styles.bg;
|
|
249
|
-
|
|
250
|
-
export { Colorize as default };
|