@effect-tui/core 0.11.0 → 0.12.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.
@@ -1 +1 @@
1
- {"version":3,"file":"buffer.d.ts","sourceRoot":"","sources":["../../src/render/buffer.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,OAAO,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAE/C;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,OA2C5B,CAAA;AAKD,qBAAa,UAAU;IACtB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;IAGlB,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAA;IACvB,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAA;IACvB,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAA;IAEvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,IAAI,CAAU;IACtB,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,IAAI,CAAI;IAChB,OAAO,CAAC,IAAI,CAAI;IAChB,OAAO,CAAC,QAAQ,CAAiC;gBAErC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,OAAwB;IAY5E,qDAAqD;IACrD,KAAK,CAAC,OAAO,SAAI,GAAG,IAAI;IAMxB,2FAA2F;IAC3F,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,SAAI,GAAG,IAAI;IAuB3D,wFAAwF;IACxF,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,SAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAsBlF,kDAAkD;IAClD,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAK,EAAE,OAAO,SAAI,GAAG,IAAI;IAuBhF,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAc1D,OAAO,IAAI,IAAI;IASf,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAU1E,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAMxC,SAAS,IAAI,IAAI;IAWjB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;CAQxD"}
1
+ {"version":3,"file":"buffer.d.ts","sourceRoot":"","sources":["../../src/render/buffer.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,OAAO,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAE/C;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,OA6C5B,CAAA;AAKD,qBAAa,UAAU;IACtB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;IAGlB,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAA;IACvB,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAA;IACvB,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAA;IAEvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,IAAI,CAAU;IACtB,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,IAAI,CAAI;IAChB,OAAO,CAAC,IAAI,CAAI;IAChB,OAAO,CAAC,QAAQ,CAAiC;gBAErC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,OAAwB;IAY5E,qDAAqD;IACrD,KAAK,CAAC,OAAO,SAAI,GAAG,IAAI;IAMxB,2FAA2F;IAC3F,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,SAAI,GAAG,IAAI;IAuB3D,wFAAwF;IACxF,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,SAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAsBlF,kDAAkD;IAClD,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAK,EAAE,OAAO,SAAI,GAAG,IAAI;IAuBhF,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAc1D,OAAO,IAAI,IAAI;IASf,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAU1E,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAMxC,SAAS,IAAI,IAAI;IAWjB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;CAQxD"}
@@ -11,6 +11,9 @@ export const defaultWcwidth = (cp) => {
11
11
  // Soft hyphen: width 1 (not 0, for terminal compatibility)
12
12
  if (cp === 0xad)
13
13
  return 1;
14
+ // Text-style check marks are typically single-width in terminals
15
+ if (cp === 0x2713 || cp === 0x2714)
16
+ return 1;
14
17
  // CJK characters: width 2
15
18
  // CJK Unified Ideographs and extensions
16
19
  if (cp >= 0x4e00 && cp <= 0x9fff)
@@ -1 +1 @@
1
- {"version":3,"file":"buffer.js","sourceRoot":"","sources":["../../src/render/buffer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buffer.js","sourceRoot":"","sources":["../../src/render/buffer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Determine emoji presentation width overrides for a grapheme segment.
3
+ * Returns 2 for emoji presentation, 1 for text presentation, undefined for no override.
4
+ */
5
+ export declare function emojiWidthOverride(segment: string): 1 | 2 | undefined;
6
+ //# sourceMappingURL=emoji.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emoji.d.ts","sourceRoot":"","sources":["../../src/render/emoji.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAiBrE"}
@@ -0,0 +1,36 @@
1
+ import EMOJI_REGEX from "emojibase-regex/emoji";
2
+ import TEXT_REGEX from "emojibase-regex/text";
3
+ const emojiRegex = new RegExp(EMOJI_REGEX.source, EMOJI_REGEX.flags.replace("g", "").replace("y", ""));
4
+ const textRegex = new RegExp(TEXT_REGEX.source, TEXT_REGEX.flags.replace("g", "").replace("y", ""));
5
+ const widthCache = new Map();
6
+ function testRegex(regex, segment) {
7
+ if (regex.global || regex.sticky) {
8
+ regex.lastIndex = 0;
9
+ }
10
+ return regex.test(segment);
11
+ }
12
+ /**
13
+ * Determine emoji presentation width overrides for a grapheme segment.
14
+ * Returns 2 for emoji presentation, 1 for text presentation, undefined for no override.
15
+ */
16
+ export function emojiWidthOverride(segment) {
17
+ const cached = widthCache.get(segment);
18
+ if (cached !== undefined)
19
+ return cached === 0 ? undefined : cached;
20
+ let width = 0;
21
+ if (segment.includes("\uFE0F")) {
22
+ width = 2;
23
+ }
24
+ else if (segment.includes("\uFE0E")) {
25
+ width = 1;
26
+ }
27
+ else if (testRegex(emojiRegex, segment)) {
28
+ width = 2;
29
+ }
30
+ else if (testRegex(textRegex, segment)) {
31
+ width = 1;
32
+ }
33
+ widthCache.set(segment, width);
34
+ return width === 0 ? undefined : width;
35
+ }
36
+ //# sourceMappingURL=emoji.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emoji.js","sourceRoot":"","sources":["../../src/render/emoji.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,uBAAuB,CAAA;AAC/C,OAAO,UAAU,MAAM,sBAAsB,CAAA;AAI7C,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;AACtG,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;AACnG,MAAM,UAAU,GAAG,IAAI,GAAG,EAAsB,CAAA;AAEhD,SAAS,SAAS,CAAC,KAAa,EAAE,OAAe;IAChD,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAClC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAA;IACpB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IACjD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACtC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAA;IAElE,IAAI,KAAK,GAAe,CAAC,CAAA;IACzB,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChC,KAAK,GAAG,CAAC,CAAA;IACV,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,KAAK,GAAG,CAAC,CAAA;IACV,CAAC;SAAM,IAAI,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;QAC3C,KAAK,GAAG,CAAC,CAAA;IACV,CAAC;SAAM,IAAI,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;QAC1C,KAAK,GAAG,CAAC,CAAA;IACV,CAAC;IAED,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAC9B,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAA;AACvC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"graphemes.d.ts","sourceRoot":"","sources":["../../src/render/graphemes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAG1C;;;GAGG;AACH,wBAAiB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAYxE;AAED;;GAEG;AACH,wBAAiB,oBAAoB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,GACd,gBAAgB,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAMlE"}
1
+ {"version":3,"file":"graphemes.d.ts","sourceRoot":"","sources":["../../src/render/graphemes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAI1C;;;GAGG;AACH,wBAAiB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAYxE;AAED;;GAEG;AACH,wBAAiB,oBAAoB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,GACd,gBAAgB,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAQlE"}
@@ -1,3 +1,4 @@
1
+ import { emojiWidthOverride } from "./emoji.js";
1
2
  import { getGraphemeSegmenter } from "./segmenter.js";
2
3
  /**
3
4
  * Iterate grapheme clusters using Intl.Segmenter when available.
@@ -21,7 +22,10 @@ export function* iterateGraphemes(text) {
21
22
  export function* iterateGraphemeCells(text, wcwidth) {
22
23
  for (const segment of iterateGraphemes(text)) {
23
24
  const cp = segment.codePointAt(0) ?? 32;
24
- const width = wcwidth(cp) || 1;
25
+ let width = wcwidth(cp) || 1;
26
+ const emojiWidth = emojiWidthOverride(segment);
27
+ if (emojiWidth !== undefined)
28
+ width = emojiWidth;
25
29
  yield { segment, cp, width };
26
30
  }
27
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"graphemes.js","sourceRoot":"","sources":["../../src/render/graphemes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAErD;;;GAGG;AACH,MAAM,SAAS,CAAC,CAAC,gBAAgB,CAAC,IAAY;IAC7C,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAA;IAClC,IAAI,GAAG,EAAE,CAAC;QACT,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,MAAM,OAAO,CAAA;QACd,CAAC;QACD,OAAM;IACP,CAAC;IAED,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,EAAE,CAAA;IACT,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,SAAS,CAAC,CAAC,oBAAoB,CACpC,IAAY,EACZ,OAAgB;IAEhB,KAAK,MAAM,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QACvC,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QAC9B,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAA;IAC7B,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"graphemes.js","sourceRoot":"","sources":["../../src/render/graphemes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAErD;;;GAGG;AACH,MAAM,SAAS,CAAC,CAAC,gBAAgB,CAAC,IAAY;IAC7C,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAA;IAClC,IAAI,GAAG,EAAE,CAAC;QACT,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,MAAM,OAAO,CAAA;QACd,CAAC;QACD,OAAM;IACP,CAAC;IAED,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,EAAE,CAAA;IACT,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,SAAS,CAAC,CAAC,oBAAoB,CACpC,IAAY,EACZ,OAAgB;IAEhB,KAAK,MAAM,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QACvC,IAAI,KAAK,GAAG,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QAC5B,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;QAC9C,IAAI,UAAU,KAAK,SAAS;YAAE,KAAK,GAAG,UAAU,CAAA;QAChD,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAA;IAC7B,CAAC;AACF,CAAC"}
@@ -7,8 +7,10 @@ export type StyleSpec = {
7
7
  fg?: ColorValue;
8
8
  bg?: ColorValue;
9
9
  bold?: boolean;
10
+ dimmed?: boolean;
10
11
  italic?: boolean;
11
12
  underline?: boolean;
13
+ strikethrough?: boolean;
12
14
  inverse?: boolean;
13
15
  };
14
16
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../../src/render/palette.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAGrE,MAAM,MAAM,SAAS,GAAG;IACvB,EAAE,CAAC,EAAE,UAAU,CAAA;IACf,EAAE,CAAC,EAAE,UAAU,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAsBD;;;GAGG;AACH,qBAAa,OAAO;IACnB,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,OAAO,CAA4B;IAE3C,+DAA+D;IAC/D,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM;IAY5B,4EAA4E;IAC5E,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAMvB;;;;OAIG;IACH,OAAO,CAAC,QAAQ;CAsBhB;AAED;;;GAGG;AACH,qBAAa,aAAc,SAAQ,OAAO;IAExC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;gBADV,IAAI,EAAE,OAAO,EACb,SAAS,CAAC,EAAE,SAAS,YAAA;IAK9B,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM;IAI5B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;CAGhC;AAED,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAgB9E"}
1
+ {"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../../src/render/palette.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAGrE,MAAM,MAAM,SAAS,GAAG;IACvB,EAAE,CAAC,EAAE,UAAU,CAAA;IACf,EAAE,CAAC,EAAE,UAAU,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAwBD;;;GAGG;AACH,qBAAa,OAAO;IACnB,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,OAAO,CAA4B;IAE3C,+DAA+D;IAC/D,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM;IAY5B,4EAA4E;IAC5E,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAMvB;;;;OAIG;IACH,OAAO,CAAC,QAAQ;CAwBhB;AAED;;;GAGG;AACH,qBAAa,aAAc,SAAQ,OAAO;IAExC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;gBADV,IAAI,EAAE,OAAO,EACb,SAAS,CAAC,EAAE,SAAS,YAAA;IAK9B,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM;IAI5B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;CAGhC;AAED,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAoB9E"}
@@ -15,10 +15,14 @@ function styleKey(spec) {
15
15
  }
16
16
  if (spec.bold)
17
17
  parts.push("B");
18
+ if (spec.dimmed)
19
+ parts.push("D");
18
20
  if (spec.italic)
19
21
  parts.push("I");
20
22
  if (spec.underline)
21
23
  parts.push("U");
24
+ if (spec.strikethrough)
25
+ parts.push("S");
22
26
  if (spec.inverse)
23
27
  parts.push("V");
24
28
  return parts.join("|");
@@ -63,10 +67,14 @@ export class Palette {
63
67
  parts.push("0"); // reset, then set exact attrs to avoid drift
64
68
  if (spec.bold)
65
69
  parts.push("1");
70
+ if (spec.dimmed)
71
+ parts.push("2");
66
72
  if (spec.italic)
67
73
  parts.push("3");
68
74
  if (spec.underline)
69
75
  parts.push("4");
76
+ if (spec.strikethrough)
77
+ parts.push("9");
70
78
  if (spec.inverse)
71
79
  parts.push("7");
72
80
  const colorToCodes = (c, isBg) => {
@@ -113,8 +121,10 @@ export function mergeStyle(a, b) {
113
121
  const fg = b?.fg ?? a?.fg;
114
122
  const bg = b?.bg ?? a?.bg;
115
123
  const bold = b?.bold ?? a?.bold;
124
+ const dimmed = b?.dimmed ?? a?.dimmed;
116
125
  const italic = b?.italic ?? a?.italic;
117
126
  const underline = b?.underline ?? a?.underline;
127
+ const strikethrough = b?.strikethrough ?? a?.strikethrough;
118
128
  const inverse = b?.inverse ?? a?.inverse;
119
129
  if (fg !== undefined)
120
130
  merged.fg = fg;
@@ -122,10 +132,14 @@ export function mergeStyle(a, b) {
122
132
  merged.bg = bg;
123
133
  if (bold !== undefined)
124
134
  merged.bold = bold;
135
+ if (dimmed !== undefined)
136
+ merged.dimmed = dimmed;
125
137
  if (italic !== undefined)
126
138
  merged.italic = italic;
127
139
  if (underline !== undefined)
128
140
  merged.underline = underline;
141
+ if (strikethrough !== undefined)
142
+ merged.strikethrough = strikethrough;
129
143
  if (inverse !== undefined)
130
144
  merged.inverse = inverse;
131
145
  return Object.keys(merged).length > 0 ? merged : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"palette.js","sourceRoot":"","sources":["../../src/render/palette.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"palette.js","sourceRoot":"","sources":["../../src/render/palette.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-tui/core",
3
- "version": "0.11.0",
3
+ "version": "0.12.2",
4
4
  "description": "Terminal UI library built with Effect",
5
5
  "type": "module",
6
6
  "files": [
@@ -44,6 +44,9 @@
44
44
  "format:check": "biome format .",
45
45
  "prepublishOnly": "bun run typecheck && bun run build"
46
46
  },
47
+ "dependencies": {
48
+ "emojibase-regex": "^16.0.0"
49
+ },
47
50
  "peerDependencies": {
48
51
  "effect": "^3.19.13"
49
52
  },
@@ -14,6 +14,8 @@ export const defaultWcwidth: Wcwidth = (cp) => {
14
14
 
15
15
  // Soft hyphen: width 1 (not 0, for terminal compatibility)
16
16
  if (cp === 0xad) return 1
17
+ // Text-style check marks are typically single-width in terminals
18
+ if (cp === 0x2713 || cp === 0x2714) return 1
17
19
 
18
20
  // CJK characters: width 2
19
21
  // CJK Unified Ideographs and extensions
@@ -0,0 +1,38 @@
1
+ import EMOJI_REGEX from "emojibase-regex/emoji"
2
+ import TEXT_REGEX from "emojibase-regex/text"
3
+
4
+ type EmojiWidth = 0 | 1 | 2
5
+
6
+ const emojiRegex = new RegExp(EMOJI_REGEX.source, EMOJI_REGEX.flags.replace("g", "").replace("y", ""))
7
+ const textRegex = new RegExp(TEXT_REGEX.source, TEXT_REGEX.flags.replace("g", "").replace("y", ""))
8
+ const widthCache = new Map<string, EmojiWidth>()
9
+
10
+ function testRegex(regex: RegExp, segment: string): boolean {
11
+ if (regex.global || regex.sticky) {
12
+ regex.lastIndex = 0
13
+ }
14
+ return regex.test(segment)
15
+ }
16
+
17
+ /**
18
+ * Determine emoji presentation width overrides for a grapheme segment.
19
+ * Returns 2 for emoji presentation, 1 for text presentation, undefined for no override.
20
+ */
21
+ export function emojiWidthOverride(segment: string): 1 | 2 | undefined {
22
+ const cached = widthCache.get(segment)
23
+ if (cached !== undefined) return cached === 0 ? undefined : cached
24
+
25
+ let width: EmojiWidth = 0
26
+ if (segment.includes("\uFE0F")) {
27
+ width = 2
28
+ } else if (segment.includes("\uFE0E")) {
29
+ width = 1
30
+ } else if (testRegex(emojiRegex, segment)) {
31
+ width = 2
32
+ } else if (testRegex(textRegex, segment)) {
33
+ width = 1
34
+ }
35
+
36
+ widthCache.set(segment, width)
37
+ return width === 0 ? undefined : width
38
+ }
@@ -1,4 +1,5 @@
1
1
  import type { Wcwidth } from "./buffer.js"
2
+ import { emojiWidthOverride } from "./emoji.js"
2
3
  import { getGraphemeSegmenter } from "./segmenter.js"
3
4
 
4
5
  /**
@@ -28,7 +29,9 @@ export function* iterateGraphemeCells(
28
29
  ): IterableIterator<{ segment: string; cp: number; width: number }> {
29
30
  for (const segment of iterateGraphemes(text)) {
30
31
  const cp = segment.codePointAt(0) ?? 32
31
- const width = wcwidth(cp) || 1
32
+ let width = wcwidth(cp) || 1
33
+ const emojiWidth = emojiWidthOverride(segment)
34
+ if (emojiWidth !== undefined) width = emojiWidth
32
35
  yield { segment, cp, width }
33
36
  }
34
37
  }
@@ -10,8 +10,10 @@ export type StyleSpec = {
10
10
  fg?: ColorValue // foreground: 256 index or RGB
11
11
  bg?: ColorValue // background: 256 index or RGB
12
12
  bold?: boolean
13
+ dimmed?: boolean
13
14
  italic?: boolean
14
15
  underline?: boolean
16
+ strikethrough?: boolean
15
17
  inverse?: boolean
16
18
  }
17
19
 
@@ -29,8 +31,10 @@ function styleKey(spec: StyleSpec): string {
29
31
  parts.push(typeof spec.bg === "number" ? `b${spec.bg}` : `b${spec.bg.r},${spec.bg.g},${spec.bg.b}`)
30
32
  }
31
33
  if (spec.bold) parts.push("B")
34
+ if (spec.dimmed) parts.push("D")
32
35
  if (spec.italic) parts.push("I")
33
36
  if (spec.underline) parts.push("U")
37
+ if (spec.strikethrough) parts.push("S")
34
38
  if (spec.inverse) parts.push("V")
35
39
  return parts.join("|")
36
40
  }
@@ -73,8 +77,10 @@ export class Palette {
73
77
  const parts: string[] = []
74
78
  parts.push("0") // reset, then set exact attrs to avoid drift
75
79
  if (spec.bold) parts.push("1")
80
+ if (spec.dimmed) parts.push("2")
76
81
  if (spec.italic) parts.push("3")
77
82
  if (spec.underline) parts.push("4")
83
+ if (spec.strikethrough) parts.push("9")
78
84
  if (spec.inverse) parts.push("7")
79
85
 
80
86
  const colorToCodes = (c: ColorValue | undefined, isBg: boolean): string | undefined => {
@@ -121,14 +127,18 @@ export function mergeStyle(a?: StyleSpec, b?: StyleSpec): StyleSpec | undefined
121
127
  const fg = b?.fg ?? a?.fg
122
128
  const bg = b?.bg ?? a?.bg
123
129
  const bold = b?.bold ?? a?.bold
130
+ const dimmed = b?.dimmed ?? a?.dimmed
124
131
  const italic = b?.italic ?? a?.italic
125
132
  const underline = b?.underline ?? a?.underline
133
+ const strikethrough = b?.strikethrough ?? a?.strikethrough
126
134
  const inverse = b?.inverse ?? a?.inverse
127
135
  if (fg !== undefined) merged.fg = fg
128
136
  if (bg !== undefined) merged.bg = bg
129
137
  if (bold !== undefined) merged.bold = bold
138
+ if (dimmed !== undefined) merged.dimmed = dimmed
130
139
  if (italic !== undefined) merged.italic = italic
131
140
  if (underline !== undefined) merged.underline = underline
141
+ if (strikethrough !== undefined) merged.strikethrough = strikethrough
132
142
  if (inverse !== undefined) merged.inverse = inverse
133
143
  return Object.keys(merged).length > 0 ? merged : undefined
134
144
  }
@@ -0,0 +1,9 @@
1
+ declare module "emojibase-regex/emoji" {
2
+ const regex: RegExp
3
+ export default regex
4
+ }
5
+
6
+ declare module "emojibase-regex/text" {
7
+ const regex: RegExp
8
+ export default regex
9
+ }