convoai 1.3.0 → 1.3.2
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/dist/src/ui/gradient.js +81 -48
- package/dist/src/ui/gradient.js.map +1 -1
- package/package.json +1 -1
package/dist/src/ui/gradient.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
// Use a dedicated truecolor chalk instance so gradient hex codes are always
|
|
3
|
-
// rendered as full RGB escapes, without mutating the global chalk level.
|
|
4
|
-
const chalk = new Chalk({ level: 3 });
|
|
1
|
+
import chalk from 'chalk';
|
|
5
2
|
// ─── Helpers ───────────────────────────────────────────────────────────────
|
|
6
3
|
function lerp(a, b, t) {
|
|
7
4
|
return Math.round(a + (b - a) * t);
|
|
@@ -10,47 +7,89 @@ function gradientColor(t) {
|
|
|
10
7
|
// blue(80,150,255) → pink(220,72,195)
|
|
11
8
|
return `#${lerp(80, 220, t).toString(16).padStart(2, '0')}${lerp(150, 72, t).toString(16).padStart(2, '0')}${lerp(255, 195, t).toString(16).padStart(2, '0')}`;
|
|
12
9
|
}
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Calculate the display width of a string in terminal columns.
|
|
12
|
+
* CJK characters and emoji take 2 columns, ASCII takes 1.
|
|
13
|
+
*/
|
|
14
|
+
function displayWidth(str) {
|
|
15
|
+
let w = 0;
|
|
16
|
+
for (const ch of str) {
|
|
17
|
+
const code = ch.codePointAt(0) ?? 0;
|
|
18
|
+
if ((code >= 0x1100 && code <= 0x115f) || // Hangul Jamo
|
|
19
|
+
(code >= 0x2e80 && code <= 0x303e) || // CJK Radicals
|
|
20
|
+
(code >= 0x3040 && code <= 0x33bf) || // Japanese + CJK
|
|
21
|
+
(code >= 0x4e00 && code <= 0x9fff) || // CJK Unified
|
|
22
|
+
(code >= 0xac00 && code <= 0xd7af) || // Hangul Syllables
|
|
23
|
+
(code >= 0xf900 && code <= 0xfaff) || // CJK Compat
|
|
24
|
+
(code >= 0xfe30 && code <= 0xfe4f) || // CJK Compat Forms
|
|
25
|
+
(code >= 0xff01 && code <= 0xff60) || // Fullwidth Forms
|
|
26
|
+
(code >= 0x1f000 && code <= 0x1ffff) || // Emoji & symbols
|
|
27
|
+
(code >= 0x20000 && code <= 0x2ffff) || // CJK Extension B+
|
|
28
|
+
(code >= 0x2600 && code <= 0x27bf) || // Misc symbols
|
|
29
|
+
(code >= 0xfe00 && code <= 0xfe0f) || // Variation selectors
|
|
30
|
+
(code >= 0x200d && code <= 0x200d) // ZWJ
|
|
31
|
+
) {
|
|
32
|
+
w += 2;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
w += 1;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return w;
|
|
39
|
+
}
|
|
40
|
+
const GREEN = '#10b981';
|
|
41
|
+
const BOX_WIDTH = 56; // wider to fit CJK content
|
|
42
|
+
// ─── Padding helper ───────────────────────────────────────────────────────
|
|
43
|
+
function padToWidth(content, plainText, targetWidth) {
|
|
44
|
+
const visWidth = displayWidth(plainText);
|
|
45
|
+
const pad = Math.max(0, targetWidth - visWidth);
|
|
46
|
+
return content + ' '.repeat(pad);
|
|
47
|
+
}
|
|
15
48
|
// ─── gradientBox ───────────────────────────────────────────────────────────
|
|
16
49
|
export function gradientBox(opts) {
|
|
17
50
|
const { emoji, title, subtitle, body } = opts;
|
|
18
|
-
const inner = BOX_WIDTH - 2;
|
|
19
|
-
// Top border
|
|
51
|
+
const inner = BOX_WIDTH - 2;
|
|
52
|
+
// Top border
|
|
20
53
|
const topChars = ['╭', ...Array(inner).fill('─'), '╮'];
|
|
21
|
-
const top = topChars
|
|
54
|
+
const top = ' ' + topChars
|
|
22
55
|
.map((ch, i) => chalk.hex(gradientColor(i / (topChars.length - 1)))(ch))
|
|
23
56
|
.join('');
|
|
24
|
-
// Bottom border
|
|
57
|
+
// Bottom border
|
|
25
58
|
const bottomChars = ['╰', ...Array(inner).fill('─'), '╯'];
|
|
26
|
-
const bottom = bottomChars
|
|
59
|
+
const bottom = ' ' + bottomChars
|
|
27
60
|
.map((ch, i) => chalk.hex(gradientColor(i / (bottomChars.length - 1)))(ch))
|
|
28
61
|
.join('');
|
|
29
62
|
const leftBorder = chalk.hex(gradientColor(0))('│');
|
|
30
63
|
const rightBorder = chalk.hex(gradientColor(1))('│');
|
|
31
|
-
const blankLine =
|
|
32
|
-
// Title
|
|
64
|
+
const blankLine = ` ${leftBorder}${' '.repeat(inner)}${rightBorder}`;
|
|
65
|
+
// Title: emoji + gradient text
|
|
33
66
|
const titleGrad = [...title]
|
|
34
67
|
.map((ch, i) => chalk.hex(gradientColor(i / Math.max(title.length - 1, 1))).bold(ch))
|
|
35
68
|
.join('');
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
69
|
+
const titlePlain = ` ${emoji} ${title}`;
|
|
70
|
+
const titleContent = ` ${emoji} ${titleGrad}`;
|
|
71
|
+
const titlePadded = padToWidth(titleContent, titlePlain, inner);
|
|
72
|
+
const titleLine = ` ${leftBorder}${titlePadded}${rightBorder}`;
|
|
73
|
+
// Subtitle
|
|
74
|
+
const lines = [top, blankLine, titleLine];
|
|
75
|
+
if (subtitle) {
|
|
76
|
+
const subPlain = ` ${subtitle}`;
|
|
77
|
+
const subContent = ` ${chalk.dim(subtitle)}`;
|
|
78
|
+
const subPadded = padToWidth(subContent, subPlain, inner);
|
|
79
|
+
lines.push(` ${leftBorder}${subPadded}${rightBorder}`);
|
|
80
|
+
}
|
|
81
|
+
// Body lines
|
|
48
82
|
if (body && body.length > 0) {
|
|
49
83
|
for (const line of body) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
84
|
+
if (line === '') {
|
|
85
|
+
lines.push(blankLine);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
const bodyPlain = ` ${line}`;
|
|
89
|
+
const bodyContent = ` ${chalk.dim(line)}`;
|
|
90
|
+
const bodyPadded = padToWidth(bodyContent, bodyPlain, inner);
|
|
91
|
+
lines.push(` ${leftBorder}${bodyPadded}${rightBorder}`);
|
|
92
|
+
}
|
|
54
93
|
}
|
|
55
94
|
}
|
|
56
95
|
lines.push(blankLine, bottom);
|
|
@@ -61,20 +100,20 @@ export function gradientBoxGreen(opts) {
|
|
|
61
100
|
const { emoji, title, subtitle } = opts;
|
|
62
101
|
const inner = BOX_WIDTH - 2;
|
|
63
102
|
const gc = chalk.hex(GREEN);
|
|
64
|
-
const top = gc('╭' + '─'.repeat(inner) + '╮');
|
|
65
|
-
const bottom = gc('╰' + '─'.repeat(inner) + '╯');
|
|
103
|
+
const top = ' ' + gc('╭' + '─'.repeat(inner) + '╮');
|
|
104
|
+
const bottom = ' ' + gc('╰' + '─'.repeat(inner) + '╯');
|
|
66
105
|
const leftBorder = gc('│');
|
|
67
106
|
const rightBorder = gc('│');
|
|
68
|
-
const blankLine =
|
|
69
|
-
// Title: each char in green, bold
|
|
107
|
+
const blankLine = ` ${leftBorder}${' '.repeat(inner)}${rightBorder}`;
|
|
70
108
|
const titleStyled = [...title].map((ch) => gc(chalk.bold(ch))).join('');
|
|
71
|
-
const
|
|
72
|
-
const
|
|
73
|
-
const
|
|
74
|
-
const
|
|
75
|
-
const
|
|
76
|
-
const
|
|
77
|
-
const
|
|
109
|
+
const titlePlain = ` ${emoji} ${title}`;
|
|
110
|
+
const titleContent = ` ${emoji} ${titleStyled}`;
|
|
111
|
+
const titlePadded = padToWidth(titleContent, titlePlain, inner);
|
|
112
|
+
const titleLine = ` ${leftBorder}${titlePadded}${rightBorder}`;
|
|
113
|
+
const subPlain = ` ${subtitle}`;
|
|
114
|
+
const subContent = ` ${chalk.dim(subtitle)}`;
|
|
115
|
+
const subPadded = padToWidth(subContent, subPlain, inner);
|
|
116
|
+
const subLine = ` ${leftBorder}${subPadded}${rightBorder}`;
|
|
78
117
|
return [top, blankLine, titleLine, subLine, blankLine, bottom];
|
|
79
118
|
}
|
|
80
119
|
// ─── gradientTitle ─────────────────────────────────────────────────────────
|
|
@@ -92,15 +131,11 @@ export function gradientProgress(current, total) {
|
|
|
92
131
|
for (let i = 0; i < filled; i++) {
|
|
93
132
|
let color;
|
|
94
133
|
if (isComplete) {
|
|
95
|
-
// blue → pink → green celebration gradient
|
|
96
134
|
const t = i / Math.max(filled - 1, 1);
|
|
97
135
|
if (t <= 0.5) {
|
|
98
|
-
|
|
99
|
-
const seg = t * 2;
|
|
100
|
-
color = gradientColor(seg);
|
|
136
|
+
color = gradientColor(t * 2);
|
|
101
137
|
}
|
|
102
138
|
else {
|
|
103
|
-
// pink → green
|
|
104
139
|
const seg = (t - 0.5) * 2;
|
|
105
140
|
const r = lerp(220, 16, seg);
|
|
106
141
|
const g = lerp(72, 185, seg);
|
|
@@ -114,8 +149,6 @@ export function gradientProgress(current, total) {
|
|
|
114
149
|
}
|
|
115
150
|
blocks.push(chalk.bgHex(color)(' '));
|
|
116
151
|
}
|
|
117
|
-
|
|
118
|
-
const suffix = chalk.dim(` ${current}/${total}`);
|
|
119
|
-
return `${bar}${suffix}`;
|
|
152
|
+
return ` ${blocks.join('')} ${chalk.dim(`${current}/${total}`)}`;
|
|
120
153
|
}
|
|
121
154
|
//# sourceMappingURL=gradient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gradient.js","sourceRoot":"","sources":["../../../src/ui/gradient.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"gradient.js","sourceRoot":"","sources":["../../../src/ui/gradient.ts"],"names":[],"mappings":"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"}
|