@visulima/colorize 1.4.26 → 1.4.28

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 (102) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/README.md +208 -12
  3. package/dist/ansi-codes.d.cts +18 -0
  4. package/dist/ansi-codes.d.mts +18 -0
  5. package/dist/ansi-codes.d.ts +18 -0
  6. package/dist/colorize.browser.d.mts +3 -0
  7. package/dist/colorize.server.d.cts +10 -0
  8. package/dist/colorize.server.d.mts +10 -0
  9. package/dist/colorize.server.d.ts +10 -0
  10. package/dist/css-code.d.mts +11 -0
  11. package/dist/gradient/gradient-builder.d.cts +10 -0
  12. package/dist/gradient/gradient-builder.d.mts +10 -0
  13. package/dist/gradient/gradient-builder.d.ts +10 -0
  14. package/dist/gradient/util/color-names.d.cts +2 -0
  15. package/dist/gradient/util/color-names.d.mts +2 -0
  16. package/dist/gradient/util/color-names.d.ts +2 -0
  17. package/dist/gradient/util/compute.d.cts +2 -0
  18. package/dist/gradient/util/compute.d.mts +2 -0
  19. package/dist/gradient/util/compute.d.ts +2 -0
  20. package/dist/gradient/util/hsv-to-rgb.d.cts +5 -0
  21. package/dist/gradient/util/hsv-to-rgb.d.mts +5 -0
  22. package/dist/gradient/util/hsv-to-rgb.d.ts +5 -0
  23. package/dist/gradient/util/interpolate.d.cts +3 -0
  24. package/dist/gradient/util/interpolate.d.mts +3 -0
  25. package/dist/gradient/util/interpolate.d.ts +3 -0
  26. package/dist/gradient/util/rgb-to-hsv.d.cts +9 -0
  27. package/dist/gradient/util/rgb-to-hsv.d.mts +9 -0
  28. package/dist/gradient/util/rgb-to-hsv.d.ts +9 -0
  29. package/dist/gradient.cjs +60 -3
  30. package/dist/gradient.d.cts +4 -16
  31. package/dist/gradient.d.mts +4 -16
  32. package/dist/gradient.d.ts +4 -16
  33. package/dist/gradient.mjs +54 -3
  34. package/dist/index.browser.d.mts +60 -64
  35. package/dist/index.browser.mjs +61 -1
  36. package/dist/index.server.cjs +246 -2
  37. package/dist/index.server.d.cts +7 -73
  38. package/dist/index.server.d.mts +60 -64
  39. package/dist/index.server.d.ts +8 -65
  40. package/dist/index.server.mjs +61 -1
  41. package/dist/packem_shared/Colorize-BenP3bFn.mjs +241 -0
  42. package/dist/packem_shared/Colorize-Ca9CXTcj.mjs +413 -0
  43. package/dist/packem_shared/GradientBuilder-Ba4Teq6P.mjs +487 -0
  44. package/dist/packem_shared/GradientBuilder-DjJK22kP.cjs +491 -0
  45. package/dist/packem_shared/colorize.server-BA3gZZXz.cjs +193 -0
  46. package/dist/packem_shared/colorize.server-ry9FZNfG.mjs +191 -0
  47. package/dist/packem_shared/convertHexToRgb-CWdAm2kE.mjs +13 -0
  48. package/dist/packem_shared/convertHexToRgb-DvkHBM3-.cjs +17 -0
  49. package/dist/packem_shared/rgbToAnsi256-BdS0fomP.mjs +41 -0
  50. package/dist/packem_shared/rgbToAnsi256-DL8eajTz.cjs +47 -0
  51. package/dist/template/make-colorize-template.d.cts +9 -0
  52. package/dist/template/make-colorize-template.d.mts +9 -0
  53. package/dist/template/make-colorize-template.d.ts +9 -0
  54. package/dist/template/make-template.d.cts +10 -0
  55. package/dist/template/make-template.d.mts +10 -0
  56. package/dist/template/make-template.d.ts +10 -0
  57. package/dist/template.cjs +144 -2
  58. package/dist/template.d.cts +5 -11
  59. package/dist/template.d.mts +5 -7
  60. package/dist/template.d.ts +5 -11
  61. package/dist/template.mjs +138 -2
  62. package/dist/types.d.cts +174 -0
  63. package/dist/types.d.mts +174 -0
  64. package/dist/types.d.ts +174 -0
  65. package/dist/util/ansi-code-hex-map.d.mts +8 -0
  66. package/dist/util/clamp.d.cts +12 -0
  67. package/dist/util/clamp.d.mts +12 -0
  68. package/dist/util/clamp.d.ts +12 -0
  69. package/dist/util/convert-hex-to-rgb.d.cts +22 -0
  70. package/dist/util/convert-hex-to-rgb.d.mts +22 -0
  71. package/dist/util/convert-hex-to-rgb.d.ts +22 -0
  72. package/dist/util/convert-rgb-to-ansi.d.cts +18 -0
  73. package/dist/util/convert-rgb-to-ansi.d.mts +18 -0
  74. package/dist/util/convert-rgb-to-ansi.d.ts +18 -0
  75. package/dist/util/string-replace-all.d.cts +12 -0
  76. package/dist/util/string-replace-all.d.mts +12 -0
  77. package/dist/util/string-replace-all.d.ts +12 -0
  78. package/dist/util/unescape.d.cts +9 -0
  79. package/dist/util/unescape.d.mts +9 -0
  80. package/dist/util/unescape.d.ts +9 -0
  81. package/dist/utils.cjs +13 -1
  82. package/dist/utils.d.cts +2 -9
  83. package/dist/utils.d.mts +2 -9
  84. package/dist/utils.d.ts +2 -9
  85. package/dist/utils.mjs +2 -1
  86. package/package.json +2 -2
  87. package/dist/index.browser.d.ts +0 -65
  88. package/dist/packem_shared/Colorize-BHcGWJJ0.mjs +0 -1
  89. package/dist/packem_shared/Colorize-CFUl2AHz.mjs +0 -2
  90. package/dist/packem_shared/GradientBuilder-D6w_X2D1.cjs +0 -1
  91. package/dist/packem_shared/GradientBuilder-DnPdd2Cf.mjs +0 -1
  92. package/dist/packem_shared/colorize.server-BX0i6nN6.cjs +0 -2
  93. package/dist/packem_shared/colorize.server-BkwhBIE0.mjs +0 -2
  94. package/dist/packem_shared/convertHexToRgb-BEnfEytq.cjs +0 -1
  95. package/dist/packem_shared/convertHexToRgb-DGcGUKnj.mjs +0 -1
  96. package/dist/packem_shared/rgbToAnsi256--f09kvlF.cjs +0 -1
  97. package/dist/packem_shared/rgbToAnsi256-YETEPW8R.mjs +0 -1
  98. package/dist/packem_shared/types-CuuGv4d0.d.cts +0 -81
  99. package/dist/packem_shared/types-CuuGv4d0.d.mts +0 -81
  100. package/dist/packem_shared/types-CuuGv4d0.d.ts +0 -81
  101. package/dist/packem_shared/types-M28Oe2t1.d.mts +0 -67
  102. package/dist/packem_shared/types-M28Oe2t1.d.ts +0 -67
@@ -0,0 +1,413 @@
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
+ // eslint-disable-next-line security/detect-object-injection
317
+ bg: (code) => `background-color: ${ansiCodeHexMap[code]};`,
318
+ bgHex: (hex) => `background-color: ${hex};`,
319
+ bgRgb: (r, g, b) => `background-color: rgb(${r},${g},${b});`,
320
+ // eslint-disable-next-line security/detect-object-injection
321
+ fg: (code) => `color: ${ansiCodeHexMap[code]};`,
322
+ hex: (hex) => `color:${hex};`,
323
+ rgb: (r, g, b) => `color: rgb(${r},${g},${b});`
324
+ };
325
+
326
+ const styles = {};
327
+ let stylePrototype = null;
328
+ const cssStringToObject = (css) => {
329
+ const cssObject = {};
330
+ css.replace(/(?<=^|;)\s*([^:]+)\s*:\s*([^;]+)\s*/g, (_, key, value) => {
331
+ cssObject[key] = value;
332
+ return value;
333
+ });
334
+ return cssObject;
335
+ };
336
+ const createStyle = ({ props }, css) => {
337
+ let cssStack = css;
338
+ if (props?.cssStack) {
339
+ const cssObject = cssStringToObject(css);
340
+ const propertiesCssObject = cssStringToObject(props.cssStack);
341
+ for (const key in propertiesCssObject) {
342
+ if (cssObject[key] === void 0) {
343
+ cssObject[key] = propertiesCssObject[key];
344
+ }
345
+ }
346
+ cssStack = `${JSON.stringify(cssObject).replace(/["{}]/g, "").replace(/,/g, ";")};`;
347
+ }
348
+ const style = (input, ...values) => {
349
+ if (!input) {
350
+ return [];
351
+ }
352
+ if (typeof input === "string" && input.includes("%c")) {
353
+ const collectedStyles = input.match(/(?<=,).*;/g);
354
+ const inputWithoutStyles = input.replace(/,.*;/g, "");
355
+ return [`%c${inputWithoutStyles}`, style.css, ...collectedStyles ?? []];
356
+ }
357
+ if (typeof input === "number" || typeof input === "string") {
358
+ return [`%c${input}`, style.css];
359
+ }
360
+ if (input.raw !== null && Array.isArray(values) && values.length > 0) {
361
+ const rawString = String.raw(input, ...values);
362
+ const collectedStyles = rawString.match(/(?<=,).*;/g);
363
+ const inputWithoutStyles = rawString.replace(/,.*;/g, "");
364
+ return [`%c${inputWithoutStyles}`, style.css, ...(collectedStyles ?? []).join("").split(",").filter(Boolean)];
365
+ }
366
+ const [first, ...rest] = input;
367
+ rest.unshift(style.css);
368
+ return [`${`${first}`.includes("%c") ? "" : "%c"}${first}`, rest.join("")];
369
+ };
370
+ Object.setPrototypeOf(style, stylePrototype);
371
+ style.props = { css, cssStack, props };
372
+ style.css = cssStack;
373
+ return style;
374
+ };
375
+ const WebColorize = function() {
376
+ const self = (string_) => `${string_}`;
377
+ self.strip = (value) => value;
378
+ for (const name in baseColors) {
379
+ styles[name] = {
380
+ get() {
381
+ const style = createStyle(this, baseColors[name]);
382
+ Object.defineProperty(this, name, { value: style });
383
+ return style;
384
+ }
385
+ };
386
+ }
387
+ for (const name in baseStyles) {
388
+ styles[name] = {
389
+ get() {
390
+ const style = createStyle(this, baseStyles[name]);
391
+ Object.defineProperty(this, name, { value: style });
392
+ return style;
393
+ }
394
+ };
395
+ }
396
+ stylePrototype = Object.defineProperties({}, styles);
397
+ Object.setPrototypeOf(self, stylePrototype);
398
+ return self;
399
+ };
400
+ for (const name in styleMethods) {
401
+ styles[name] = {
402
+ get() {
403
+ return (...arguments_) => (
404
+ // @ts-expect-error: TODO: fix typing of `arguments_`
405
+ createStyle(this, styleMethods[name](...arguments_))
406
+ );
407
+ }
408
+ };
409
+ }
410
+ styles.ansi256 = styles.fg;
411
+ styles.bgAnsi256 = styles.bg;
412
+
413
+ export { WebColorize as default };