@effect-tui/core 0.9.3 → 0.10.0

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,4 +1,8 @@
1
1
  export type Wcwidth = (cp: number) => 0 | 1 | 2;
2
+ /**
3
+ * Default wcwidth implementation with emoji and CJK support.
4
+ * Returns 0 for control characters, 2 for wide characters (emoji, CJK), 1 otherwise.
5
+ */
2
6
  export declare const defaultWcwidth: Wcwidth;
3
7
  export declare class CellBuffer {
4
8
  readonly w: number;
@@ -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;AAG/C,eAAO,MAAM,cAAc,EAAE,OAAoE,CAAA;AAKjG,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,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,7 +1,67 @@
1
1
  /* buffer.ts — 2D cell buffer with drawing, clipping, and offsets */
2
2
  import { iterateGraphemeCells } from "./graphemes.js";
3
- // basic ASCII/Latin fallback; plug a real wcwidth for CJK/emoji later
4
- export const defaultWcwidth = (cp) => (cp === 0 ? 0 : cp < 32 ? 0 : cp === 0x7f ? 0 : 1);
3
+ /**
4
+ * Default wcwidth implementation with emoji and CJK support.
5
+ * Returns 0 for control characters, 2 for wide characters (emoji, CJK), 1 otherwise.
6
+ */
7
+ export const defaultWcwidth = (cp) => {
8
+ // Control characters: width 0
9
+ if (cp === 0 || cp < 32 || cp === 0x7f)
10
+ return 0;
11
+ // Soft hyphen: width 1 (not 0, for terminal compatibility)
12
+ if (cp === 0xad)
13
+ return 1;
14
+ // CJK characters: width 2
15
+ // CJK Unified Ideographs and extensions
16
+ if (cp >= 0x4e00 && cp <= 0x9fff)
17
+ return 2;
18
+ if (cp >= 0x3400 && cp <= 0x4dbf)
19
+ return 2; // CJK Extension A
20
+ if (cp >= 0x20000 && cp <= 0x2a6df)
21
+ return 2; // CJK Extension B
22
+ if (cp >= 0x2a700 && cp <= 0x2ebef)
23
+ return 2; // CJK Extensions C-F
24
+ if (cp >= 0x30000 && cp <= 0x323af)
25
+ return 2; // CJK Extension G-I
26
+ // CJK punctuation, symbols, and compatibility
27
+ if (cp >= 0x3000 && cp <= 0x303f)
28
+ return 2; // CJK Symbols and Punctuation
29
+ if (cp >= 0xff00 && cp <= 0xff60)
30
+ return 2; // Fullwidth ASCII variants
31
+ if (cp >= 0xffe0 && cp <= 0xffe6)
32
+ return 2; // Fullwidth symbol variants
33
+ // Japanese Hiragana and Katakana
34
+ if (cp >= 0x3040 && cp <= 0x309f)
35
+ return 2; // Hiragana
36
+ if (cp >= 0x30a0 && cp <= 0x30ff)
37
+ return 2; // Katakana
38
+ if (cp >= 0x31f0 && cp <= 0x31ff)
39
+ return 2; // Katakana Phonetic Extensions
40
+ // Korean Hangul
41
+ if (cp >= 0xac00 && cp <= 0xd7af)
42
+ return 2; // Hangul Syllables
43
+ if (cp >= 0x1100 && cp <= 0x11ff)
44
+ return 2; // Hangul Jamo
45
+ // Emoji: width 2
46
+ // Most emoji are in these ranges
47
+ if (cp >= 0x1f300 && cp <= 0x1f9ff)
48
+ return 2; // Misc Symbols, Emoticons, etc.
49
+ if (cp >= 0x1fa00 && cp <= 0x1faff)
50
+ return 2; // Chess, Extended-A
51
+ if (cp >= 0x2600 && cp <= 0x26ff)
52
+ return 2; // Misc Symbols
53
+ if (cp >= 0x2700 && cp <= 0x27bf)
54
+ return 2; // Dingbats
55
+ if (cp >= 0x231a && cp <= 0x23ff)
56
+ return 2; // Misc Technical (includes ⌚⌛)
57
+ if (cp >= 0x1f600 && cp <= 0x1f64f)
58
+ return 2; // Emoticons
59
+ // Regional indicators (flags)
60
+ if (cp >= 0x1f1e0 && cp <= 0x1f1ff)
61
+ return 2;
62
+ // Default: width 1
63
+ return 1;
64
+ };
5
65
  // Represents a single frame of cells (glyph + style + cell width)
6
66
  export class CellBuffer {
7
67
  w;
@@ -1 +1 @@
1
- {"version":3,"file":"buffer.js","sourceRoot":"","sources":["../../src/render/buffer.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAIrD,sEAAsE;AACtE,MAAM,CAAC,MAAM,cAAc,GAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAIjG,kEAAkE;AAClE,MAAM,OAAO,UAAU;IACb,CAAC,CAAQ;IACT,CAAC,CAAQ;IAElB,YAAY;IACH,CAAC,CAAa,CAAC,oBAAoB;IACnC,CAAC,CAAa,CAAC,YAAY;IAC3B,EAAE,CAAY,CAAC,qCAAqC;IAErD,OAAO,CAAS;IAChB,IAAI,CAAU;IACd,SAAS,GAAe,EAAE,CAAA;IAC1B,IAAI,GAAG,CAAC,CAAA;IACR,IAAI,GAAG,CAAC,CAAA;IACR,QAAQ,GAA+B,EAAE,CAAA;IAEjD,YAAY,KAAa,EAAE,MAAc,EAAE,UAAmB,cAAc;QAC3E,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;QAChC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;QACzB,IAAI,CAAC,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAA;QAC3B,IAAI,CAAC,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAA;QAC3B,IAAI,CAAC,EAAE,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAA;QAChD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACd,CAAC;IAED,qDAAqD;IACrD,KAAK,CAAC,OAAO,GAAG,CAAC;QAChB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACf,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACpB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC;IAED,2FAA2F;IAC3F,MAAM,CAAC,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,OAAO,GAAG,CAAC;QACnD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;QACpC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;QACpC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;YAAE,OAAM;QAC5D,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7G,OAAM;QACP,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,CAAA;QAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAC1B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;QAChB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAA;QACrB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,mCAAmC;QAElE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACb,6BAA6B;YAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,CAAA;gBACpB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAC,cAAc;gBAC/B,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAA;gBACtB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAC,oBAAoB;YACvC,CAAC;QACF,CAAC;IACF,CAAC;IAED,wFAAwF;IACxF,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,IAAY,EAAE,OAAO,GAAG,CAAC,EAAE,QAAiB;QAC1E,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAA;QACxB,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAA;QACxB,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;YAAE,OAAM;QAClC,gBAAgB;QAChB,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YAAE,OAAM;QAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;QACvF,IAAI,KAAK,IAAI,CAAC;YAAE,OAAM;QAEtB,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,KAAK,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACtE,IAAI,GAAG,GAAG,KAAK,GAAG,KAAK;gBAAE,MAAK;YAC9B,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;YACpC,GAAG,IAAI,KAAK,CAAA;QACb,CAAC;QAED,0FAA0F;QAC1F,OAAO,GAAG,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;QACrC,CAAC;IACF,CAAC;IAED,kDAAkD;IAClD,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,GAAG,CAAC;QACxE,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAA;QACxB,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAA;QACxB,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAC3B,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAA;QACzB,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAClD,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAClD,8BAA8B;QAC9B,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC9B,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC9B,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC5C,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC5C,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,CAAA;QACrB,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE;YAAE,OAAM;QAClC,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,CAAA;YAC7B,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,CAAA;YACnC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,CAAA;YACxC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,CAAA;QACpC,CAAC;IACF,CAAC;IAED,eAAe;IACf,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;QAClD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;QAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;QAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;QAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAA;QACrB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;QAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACxB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,CAAA;IACjF,CAAC;IAED,OAAO;QACN,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAc,CAAA;YAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QACjB,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAA;QACjD,CAAC;IACF,CAAC;IAED,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,EAAc;QAClE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACzB,IAAI,CAAC;YACJ,EAAE,EAAE,CAAA;QACL,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,OAAO,EAAE,CAAA;QACf,CAAC;IACF,CAAC;IAED,kBAAkB;IAClB,UAAU,CAAC,EAAU,EAAE,EAAU;QAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAClD,IAAI,CAAC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAA;QACnB,IAAI,CAAC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAA;IACpB,CAAC;IAED,SAAS;QACR,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAA8B,CAAA;YAC5D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAA;YAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAA;QACnB,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;YACb,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;QACd,CAAC;IACF,CAAC;IAED,UAAU,CAAC,EAAU,EAAE,EAAU,EAAE,EAAc;QAChD,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QACvB,IAAI,CAAC;YACJ,EAAE,EAAE,CAAA;QACL,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,SAAS,EAAE,CAAA;QACjB,CAAC;IACF,CAAC;CACD"}
1
+ {"version":3,"file":"buffer.js","sourceRoot":"","sources":["../../src/render/buffer.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAIrD;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAY,CAAC,EAAE,EAAE,EAAE;IAC7C,8BAA8B;IAC9B,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,IAAI;QAAE,OAAO,CAAC,CAAA;IAEhD,2DAA2D;IAC3D,IAAI,EAAE,KAAK,IAAI;QAAE,OAAO,CAAC,CAAA;IAEzB,0BAA0B;IAC1B,wCAAwC;IACxC,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,CAAC,CAAA;IAC1C,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,CAAC,CAAA,CAAC,kBAAkB;IAC7D,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO;QAAE,OAAO,CAAC,CAAA,CAAC,kBAAkB;IAC/D,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO;QAAE,OAAO,CAAC,CAAA,CAAC,qBAAqB;IAClE,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO;QAAE,OAAO,CAAC,CAAA,CAAC,oBAAoB;IAEjE,8CAA8C;IAC9C,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,CAAC,CAAA,CAAC,8BAA8B;IACzE,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,CAAC,CAAA,CAAC,2BAA2B;IACtE,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,CAAC,CAAA,CAAC,4BAA4B;IAEvE,iCAAiC;IACjC,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,CAAC,CAAA,CAAC,WAAW;IACtD,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,CAAC,CAAA,CAAC,WAAW;IACtD,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,CAAC,CAAA,CAAC,+BAA+B;IAE1E,gBAAgB;IAChB,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,CAAC,CAAA,CAAC,mBAAmB;IAC9D,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,CAAC,CAAA,CAAC,cAAc;IAEzD,iBAAiB;IACjB,iCAAiC;IACjC,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO;QAAE,OAAO,CAAC,CAAA,CAAC,gCAAgC;IAC7E,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO;QAAE,OAAO,CAAC,CAAA,CAAC,oBAAoB;IACjE,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,CAAC,CAAA,CAAC,eAAe;IAC1D,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,CAAC,CAAA,CAAC,WAAW;IACtD,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,CAAC,CAAA,CAAC,+BAA+B;IAC1E,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO;QAAE,OAAO,CAAC,CAAA,CAAC,YAAY;IAEzD,8BAA8B;IAC9B,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO;QAAE,OAAO,CAAC,CAAA;IAE5C,mBAAmB;IACnB,OAAO,CAAC,CAAA;AACT,CAAC,CAAA;AAID,kEAAkE;AAClE,MAAM,OAAO,UAAU;IACb,CAAC,CAAQ;IACT,CAAC,CAAQ;IAElB,YAAY;IACH,CAAC,CAAa,CAAC,oBAAoB;IACnC,CAAC,CAAa,CAAC,YAAY;IAC3B,EAAE,CAAY,CAAC,qCAAqC;IAErD,OAAO,CAAS;IAChB,IAAI,CAAU;IACd,SAAS,GAAe,EAAE,CAAA;IAC1B,IAAI,GAAG,CAAC,CAAA;IACR,IAAI,GAAG,CAAC,CAAA;IACR,QAAQ,GAA+B,EAAE,CAAA;IAEjD,YAAY,KAAa,EAAE,MAAc,EAAE,UAAmB,cAAc;QAC3E,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;QAChC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;QACzB,IAAI,CAAC,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAA;QAC3B,IAAI,CAAC,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAA;QAC3B,IAAI,CAAC,EAAE,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAA;QAChD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACd,CAAC;IAED,qDAAqD;IACrD,KAAK,CAAC,OAAO,GAAG,CAAC;QAChB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACf,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACpB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC;IAED,2FAA2F;IAC3F,MAAM,CAAC,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,OAAO,GAAG,CAAC;QACnD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;QACpC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;QACpC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;YAAE,OAAM;QAC5D,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7G,OAAM;QACP,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,CAAA;QAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAC1B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;QAChB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAA;QACrB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,mCAAmC;QAElE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACb,6BAA6B;YAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,CAAA;gBACpB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAC,cAAc;gBAC/B,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAA;gBACtB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAC,oBAAoB;YACvC,CAAC;QACF,CAAC;IACF,CAAC;IAED,wFAAwF;IACxF,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,IAAY,EAAE,OAAO,GAAG,CAAC,EAAE,QAAiB;QAC1E,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAA;QACxB,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAA;QACxB,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;YAAE,OAAM;QAClC,gBAAgB;QAChB,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YAAE,OAAM;QAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;QACvF,IAAI,KAAK,IAAI,CAAC;YAAE,OAAM;QAEtB,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,KAAK,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACtE,IAAI,GAAG,GAAG,KAAK,GAAG,KAAK;gBAAE,MAAK;YAC9B,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;YACpC,GAAG,IAAI,KAAK,CAAA;QACb,CAAC;QAED,0FAA0F;QAC1F,OAAO,GAAG,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;QACrC,CAAC;IACF,CAAC;IAED,kDAAkD;IAClD,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,GAAG,CAAC;QACxE,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAA;QACxB,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAA;QACxB,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAC3B,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAA;QACzB,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAClD,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAClD,8BAA8B;QAC9B,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC9B,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC9B,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC5C,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC5C,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,CAAA;QACrB,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE;YAAE,OAAM;QAClC,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,CAAA;YAC7B,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,CAAA;YACnC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,CAAA;YACxC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,CAAA;QACpC,CAAC;IACF,CAAC;IAED,eAAe;IACf,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;QAClD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;QAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;QAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;QAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAA;QACrB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;QAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACxB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,CAAA;IACjF,CAAC;IAED,OAAO;QACN,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAc,CAAA;YAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QACjB,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAA;QACjD,CAAC;IACF,CAAC;IAED,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,EAAc;QAClE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACzB,IAAI,CAAC;YACJ,EAAE,EAAE,CAAA;QACL,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,OAAO,EAAE,CAAA;QACf,CAAC;IACF,CAAC;IAED,kBAAkB;IAClB,UAAU,CAAC,EAAU,EAAE,EAAU;QAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAClD,IAAI,CAAC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAA;QACnB,IAAI,CAAC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAA;IACpB,CAAC;IAED,SAAS;QACR,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAA8B,CAAA;YAC5D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAA;YAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAA;QACnB,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;YACb,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;QACd,CAAC;IACF,CAAC;IAED,UAAU,CAAC,EAAU,EAAE,EAAU,EAAE,EAAc;QAChD,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QACvB,IAAI,CAAC;YACJ,EAAE,EAAE,CAAA;QACL,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,SAAS,EAAE,CAAA;QACjB,CAAC;IACF,CAAC;CACD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-tui/core",
3
- "version": "0.9.3",
3
+ "version": "0.10.0",
4
4
  "description": "Terminal UI library built with Effect",
5
5
  "type": "module",
6
6
  "files": [
@@ -4,8 +4,54 @@ import { iterateGraphemeCells } from "./graphemes.js"
4
4
 
5
5
  export type Wcwidth = (cp: number) => 0 | 1 | 2
6
6
 
7
- // basic ASCII/Latin fallback; plug a real wcwidth for CJK/emoji later
8
- export const defaultWcwidth: Wcwidth = (cp) => (cp === 0 ? 0 : cp < 32 ? 0 : cp === 0x7f ? 0 : 1)
7
+ /**
8
+ * Default wcwidth implementation with emoji and CJK support.
9
+ * Returns 0 for control characters, 2 for wide characters (emoji, CJK), 1 otherwise.
10
+ */
11
+ export const defaultWcwidth: Wcwidth = (cp) => {
12
+ // Control characters: width 0
13
+ if (cp === 0 || cp < 32 || cp === 0x7f) return 0
14
+
15
+ // Soft hyphen: width 1 (not 0, for terminal compatibility)
16
+ if (cp === 0xad) return 1
17
+
18
+ // CJK characters: width 2
19
+ // CJK Unified Ideographs and extensions
20
+ if (cp >= 0x4e00 && cp <= 0x9fff) return 2
21
+ if (cp >= 0x3400 && cp <= 0x4dbf) return 2 // CJK Extension A
22
+ if (cp >= 0x20000 && cp <= 0x2a6df) return 2 // CJK Extension B
23
+ if (cp >= 0x2a700 && cp <= 0x2ebef) return 2 // CJK Extensions C-F
24
+ if (cp >= 0x30000 && cp <= 0x323af) return 2 // CJK Extension G-I
25
+
26
+ // CJK punctuation, symbols, and compatibility
27
+ if (cp >= 0x3000 && cp <= 0x303f) return 2 // CJK Symbols and Punctuation
28
+ if (cp >= 0xff00 && cp <= 0xff60) return 2 // Fullwidth ASCII variants
29
+ if (cp >= 0xffe0 && cp <= 0xffe6) return 2 // Fullwidth symbol variants
30
+
31
+ // Japanese Hiragana and Katakana
32
+ if (cp >= 0x3040 && cp <= 0x309f) return 2 // Hiragana
33
+ if (cp >= 0x30a0 && cp <= 0x30ff) return 2 // Katakana
34
+ if (cp >= 0x31f0 && cp <= 0x31ff) return 2 // Katakana Phonetic Extensions
35
+
36
+ // Korean Hangul
37
+ if (cp >= 0xac00 && cp <= 0xd7af) return 2 // Hangul Syllables
38
+ if (cp >= 0x1100 && cp <= 0x11ff) return 2 // Hangul Jamo
39
+
40
+ // Emoji: width 2
41
+ // Most emoji are in these ranges
42
+ if (cp >= 0x1f300 && cp <= 0x1f9ff) return 2 // Misc Symbols, Emoticons, etc.
43
+ if (cp >= 0x1fa00 && cp <= 0x1faff) return 2 // Chess, Extended-A
44
+ if (cp >= 0x2600 && cp <= 0x26ff) return 2 // Misc Symbols
45
+ if (cp >= 0x2700 && cp <= 0x27bf) return 2 // Dingbats
46
+ if (cp >= 0x231a && cp <= 0x23ff) return 2 // Misc Technical (includes ⌚⌛)
47
+ if (cp >= 0x1f600 && cp <= 0x1f64f) return 2 // Emoticons
48
+
49
+ // Regional indicators (flags)
50
+ if (cp >= 0x1f1e0 && cp <= 0x1f1ff) return 2
51
+
52
+ // Default: width 1
53
+ return 1
54
+ }
9
55
 
10
56
  type ClipRect = { x: number; y: number; w: number; h: number }
11
57