@nuvin/ink 6.5.8 → 6.6.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/build/measure-text.js +11 -3
- package/build/measure-text.js.map +1 -1
- package/build/output.d.ts +1 -1
- package/build/output.js +15 -4
- package/build/output.js.map +1 -1
- package/build/render-border.d.ts +1 -1
- package/build/render-border.js +22 -22
- package/build/render-border.js.map +1 -1
- package/package.json +3 -3
package/build/measure-text.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import stringWidth from 'string-width';
|
|
2
2
|
const cache = new Map();
|
|
3
3
|
const measureText = (text) => {
|
|
4
4
|
if (text.length === 0) {
|
|
@@ -11,8 +11,16 @@ const measureText = (text) => {
|
|
|
11
11
|
if (cachedDimensions) {
|
|
12
12
|
return cachedDimensions;
|
|
13
13
|
}
|
|
14
|
-
const
|
|
15
|
-
|
|
14
|
+
const lines = text.split('\n');
|
|
15
|
+
let width = Math.max(0, ...lines.map(line => stringWidth(line)));
|
|
16
|
+
// If width is > 0, add a tiny epsilon to prevent Yoga from wrapping
|
|
17
|
+
// items with exact integer width (like 1) in some flexbox configurations.
|
|
18
|
+
// This fixes a layout regression where items would wrap unexpectedly.
|
|
19
|
+
if (width > 0) {
|
|
20
|
+
width += 0.01;
|
|
21
|
+
// Width += 0;
|
|
22
|
+
}
|
|
23
|
+
const height = lines.length;
|
|
16
24
|
const dimensions = { width, height };
|
|
17
25
|
cache.set(text, dimensions);
|
|
18
26
|
return dimensions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"measure-text.js","sourceRoot":"","sources":["../src/measure-text.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"measure-text.js","sourceRoot":"","sources":["../src/measure-text.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,cAAc,CAAC;AAEvC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;AAOxC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAU,EAAE;IAC5C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACN,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;SACT,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEzC,IAAI,gBAAgB,EAAE,CAAC;QACtB,OAAO,gBAAgB,CAAC;IACzB,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEjE,oEAAoE;IACpE,0EAA0E;IAC1E,sEAAsE;IACtE,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACf,KAAK,IAAI,IAAI,CAAC;QACd,cAAc;IACf,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,MAAM,UAAU,GAAG,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC;IACnC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAE5B,OAAO,UAAU,CAAC;AACnB,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
package/build/output.d.ts
CHANGED
package/build/output.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import sliceAnsi from 'slice-ansi';
|
|
2
2
|
import stringWidth from 'string-width';
|
|
3
|
-
import widestLine from 'widest-line';
|
|
4
3
|
import { styledCharsFromTokens, styledCharsToString, tokenize, } from '@alcalzone/ansi-tokenize';
|
|
5
4
|
const intersectClips = (clips) => {
|
|
6
5
|
if (clips.length === 0) {
|
|
@@ -93,7 +92,7 @@ export default class Output {
|
|
|
93
92
|
// If text is positioned outside of clipping area altogether,
|
|
94
93
|
// skip to the next operation to avoid unnecessary calculations
|
|
95
94
|
if (clipHorizontally) {
|
|
96
|
-
const width =
|
|
95
|
+
const width = Math.max(0, ...lines.map(line => stringWidth(line)));
|
|
97
96
|
if (x + width < clip.x1 || x > clip.x2) {
|
|
98
97
|
continue;
|
|
99
98
|
}
|
|
@@ -138,9 +137,21 @@ export default class Output {
|
|
|
138
137
|
const characters = styledCharsFromTokens(tokenize(line));
|
|
139
138
|
let offsetX = x;
|
|
140
139
|
for (const character of characters) {
|
|
140
|
+
// Check if this is a zero-width character (like U+FE0E text presentation selector)
|
|
141
|
+
const rawWidth = stringWidth(character.value);
|
|
142
|
+
if (rawWidth === 0) {
|
|
143
|
+
// Zero-width characters should be appended to the previous cell
|
|
144
|
+
// rather than taking up their own space
|
|
145
|
+
const previousCell = currentLine[offsetX - 1];
|
|
146
|
+
if (previousCell?.value) {
|
|
147
|
+
previousCell.value += character.value;
|
|
148
|
+
}
|
|
149
|
+
// Don't advance offsetX for zero-width characters
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
141
152
|
currentLine[offsetX] = character;
|
|
142
|
-
// Determine printed width using string-width
|
|
143
|
-
const characterWidth = Math.max(1,
|
|
153
|
+
// Determine printed width using string-width
|
|
154
|
+
const characterWidth = Math.max(1, rawWidth);
|
|
144
155
|
// For multi-column characters, clear following cells to avoid stray spaces/artifacts
|
|
145
156
|
if (characterWidth > 1) {
|
|
146
157
|
for (let index = 1; index < characterWidth; index++) {
|
package/build/output.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
|
package/build/render-border.d.ts
CHANGED
package/build/render-border.js
CHANGED
|
@@ -3,8 +3,8 @@ import chalk from 'chalk';
|
|
|
3
3
|
import colorize from './colorize.js';
|
|
4
4
|
const renderBorder = (x, y, node, output) => {
|
|
5
5
|
if (node.style.borderStyle) {
|
|
6
|
-
const width = node.yogaNode
|
|
7
|
-
const height = node.yogaNode
|
|
6
|
+
const width = node.yogaNode?.getComputedWidth() ?? 0;
|
|
7
|
+
const height = node.yogaNode?.getComputedHeight() ?? 0;
|
|
8
8
|
const box = typeof node.style.borderStyle === 'string'
|
|
9
9
|
? cliBoxes[node.style.borderStyle]
|
|
10
10
|
: node.style.borderStyle;
|
|
@@ -21,14 +21,23 @@ const renderBorder = (x, y, node, output) => {
|
|
|
21
21
|
const showLeftBorder = node.style.borderLeft !== false;
|
|
22
22
|
const showRightBorder = node.style.borderRight !== false;
|
|
23
23
|
const contentWidth = width - (showLeftBorder ? 1 : 0) - (showRightBorder ? 1 : 0);
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
const { backgroundColor } = node.style;
|
|
25
|
+
const renderBorderChar = (char, borderColor, dimColor) => {
|
|
26
|
+
let result = char;
|
|
27
|
+
if (backgroundColor) {
|
|
28
|
+
result = colorize(result, backgroundColor, 'background');
|
|
29
|
+
}
|
|
30
|
+
result = colorize(result, borderColor, 'foreground');
|
|
31
|
+
if (dimColor) {
|
|
32
|
+
result = chalk.dim(result);
|
|
33
|
+
}
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
36
|
+
const topBorder = showTopBorder
|
|
37
|
+
? renderBorderChar((showLeftBorder ? box.topLeft : '') +
|
|
26
38
|
box.top.repeat(contentWidth) +
|
|
27
|
-
(showRightBorder ? box.topRight : ''), topBorderColor,
|
|
39
|
+
(showRightBorder ? box.topRight : ''), topBorderColor, dimTopBorderColor)
|
|
28
40
|
: undefined;
|
|
29
|
-
if (showTopBorder && dimTopBorderColor) {
|
|
30
|
-
topBorder = chalk.dim(topBorder);
|
|
31
|
-
}
|
|
32
41
|
let verticalBorderHeight = height;
|
|
33
42
|
if (showTopBorder) {
|
|
34
43
|
verticalBorderHeight -= 1;
|
|
@@ -36,22 +45,13 @@ const renderBorder = (x, y, node, output) => {
|
|
|
36
45
|
if (showBottomBorder) {
|
|
37
46
|
verticalBorderHeight -= 1;
|
|
38
47
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
let rightBorder = (colorize(box.right, rightBorderColor, 'foreground') + '\n').repeat(verticalBorderHeight);
|
|
44
|
-
if (dimRightBorderColor) {
|
|
45
|
-
rightBorder = chalk.dim(rightBorder);
|
|
46
|
-
}
|
|
47
|
-
let bottomBorder = showBottomBorder
|
|
48
|
-
? colorize((showLeftBorder ? box.bottomLeft : '') +
|
|
48
|
+
const leftBorder = (renderBorderChar(box.left, leftBorderColor, dimLeftBorderColor) + '\n').repeat(verticalBorderHeight);
|
|
49
|
+
const rightBorder = (renderBorderChar(box.right, rightBorderColor, dimRightBorderColor) + '\n').repeat(verticalBorderHeight);
|
|
50
|
+
const bottomBorder = showBottomBorder
|
|
51
|
+
? renderBorderChar((showLeftBorder ? box.bottomLeft : '') +
|
|
49
52
|
box.bottom.repeat(contentWidth) +
|
|
50
|
-
(showRightBorder ? box.bottomRight : ''), bottomBorderColor,
|
|
53
|
+
(showRightBorder ? box.bottomRight : ''), bottomBorderColor, dimBottomBorderColor)
|
|
51
54
|
: undefined;
|
|
52
|
-
if (showBottomBorder && dimBottomBorderColor) {
|
|
53
|
-
bottomBorder = chalk.dim(bottomBorder);
|
|
54
|
-
}
|
|
55
55
|
const offsetY = showTopBorder ? 1 : 0;
|
|
56
56
|
if (topBorder) {
|
|
57
57
|
output.write(x, y, topBorder, { transformers: [] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-border.js","sourceRoot":"","sources":["../src/render-border.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,eAAe,CAAC;AAIrC,MAAM,YAAY,GAAG,CACpB,CAAS,EACT,CAAS,EACT,IAAa,EACb,MAAc,EACP,EAAE;IACT,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"render-border.js","sourceRoot":"","sources":["../src/render-border.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nuvin/ink",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.6.2",
|
|
4
4
|
"description": "React for CLI",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": "marschhuynh/ink",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"text"
|
|
44
44
|
],
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@alcalzone/ansi-tokenize": "^0.2.
|
|
46
|
+
"@alcalzone/ansi-tokenize": "^0.2.3",
|
|
47
47
|
"ansi-escapes": "^7.2.0",
|
|
48
48
|
"ansi-styles": "^6.2.1",
|
|
49
49
|
"auto-bind": "^5.0.1",
|
|
@@ -192,4 +192,4 @@
|
|
|
192
192
|
]
|
|
193
193
|
},
|
|
194
194
|
"prettier": "@vdemedes/prettier-config"
|
|
195
|
-
}
|
|
195
|
+
}
|