@effect-tui/core 1.0.0 → 2.0.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.
package/dist/index.d.ts CHANGED
@@ -4,7 +4,7 @@ export * from "./keys.js";
4
4
  export * from "./layout/axis-helpers.js";
5
5
  export * from "./output.js";
6
6
  export * from "./render/buffer.js";
7
- export { clearEmojiWidthOverrides, getEmojiWidth, setEmojiWidth, setEmojiWidthOverride, setEmojiWidthOverrides, } from "./render/emoji.js";
7
+ export { getEmojiWidth, setEmojiWidth } from "./render/emoji.js";
8
8
  export * from "./render/measure.js";
9
9
  export * from "./render/palette.js";
10
10
  export * from "./render/surface.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,WAAW,CAAA;AAEzB,OAAO,EACN,KAAK,UAAU,EACf,MAAM,EACN,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,KAAK,IAAI,GACT,MAAM,aAAa,CAAA;AAEpB,cAAc,WAAW,CAAA;AAEzB,cAAc,0BAA0B,CAAA;AAExC,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,OAAO,EACN,wBAAwB,EACxB,aAAa,EACb,aAAa,EACb,qBAAqB,EACrB,sBAAsB,GACtB,MAAM,mBAAmB,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AAEnC,cAAc,qBAAqB,CAAA;AAEnC,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAChE,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,WAAW,CAAA;AAEzB,OAAO,EACN,KAAK,UAAU,EACf,MAAM,EACN,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,KAAK,IAAI,GACT,MAAM,aAAa,CAAA;AAEpB,cAAc,WAAW,CAAA;AAEzB,cAAc,0BAA0B,CAAA;AAExC,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAChE,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AAEnC,cAAc,qBAAqB,CAAA;AAEnC,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAChE,cAAc,YAAY,CAAA"}
package/dist/index.js CHANGED
@@ -10,7 +10,7 @@ export * from "./layout/axis-helpers.js";
10
10
  // Output helpers (buffer diffing and emission)
11
11
  export * from "./output.js";
12
12
  export * from "./render/buffer.js";
13
- export { clearEmojiWidthOverrides, getEmojiWidth, setEmojiWidth, setEmojiWidthOverride, setEmojiWidthOverrides, } from "./render/emoji.js";
13
+ export { getEmojiWidth, setEmojiWidth } from "./render/emoji.js";
14
14
  export * from "./render/measure.js";
15
15
  export * from "./render/palette.js";
16
16
  // Rendering primitives
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AAEb,wBAAwB;AACxB,cAAc,WAAW,CAAA;AACzB,mFAAmF;AACnF,OAAO,EAEN,MAAM,EACN,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,cAAc,GAEd,MAAM,aAAa,CAAA;AACpB,iBAAiB;AACjB,cAAc,WAAW,CAAA;AACzB,mBAAmB;AACnB,cAAc,0BAA0B,CAAA;AACxC,+CAA+C;AAC/C,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,OAAO,EACN,wBAAwB,EACxB,aAAa,EACb,aAAa,EACb,qBAAqB,EACrB,sBAAsB,GACtB,MAAM,mBAAmB,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,uBAAuB;AACvB,cAAc,qBAAqB,CAAA;AAGnC,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AAEb,wBAAwB;AACxB,cAAc,WAAW,CAAA;AACzB,mFAAmF;AACnF,OAAO,EAEN,MAAM,EACN,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,cAAc,GAEd,MAAM,aAAa,CAAA;AACpB,iBAAiB;AACjB,cAAc,WAAW,CAAA;AACzB,mBAAmB;AACnB,cAAc,0BAA0B,CAAA;AACxC,+CAA+C;AAC/C,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAChE,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,uBAAuB;AACvB,cAAc,qBAAqB,CAAA;AAGnC,cAAc,YAAY,CAAA"}
@@ -1,8 +1,5 @@
1
1
  export declare function getEmojiWidth(): 1 | 2;
2
2
  export declare function setEmojiWidth(width: 1 | 2): void;
3
- export declare function setEmojiWidthOverride(segment: string, width: 1 | 2): void;
4
- export declare function setEmojiWidthOverrides(entries: Iterable<[string, 1 | 2]>): void;
5
- export declare function clearEmojiWidthOverrides(): void;
6
3
  /**
7
4
  * Determine emoji presentation width overrides for a grapheme segment.
8
5
  * Returns 2 for emoji presentation, 1 for text presentation, undefined for no override.
@@ -1 +1 @@
1
- {"version":3,"file":"emoji.d.ts","sourceRoot":"","sources":["../../src/render/emoji.ts"],"names":[],"mappings":"AA4BA,wBAAgB,aAAa,IAAI,CAAC,GAAG,CAAC,CAErC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAGhD;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAGzE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAM/E;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAG/C;AASD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAyBrE"}
1
+ {"version":3,"file":"emoji.d.ts","sourceRoot":"","sources":["../../src/render/emoji.ts"],"names":[],"mappings":"AAyBA,wBAAgB,aAAa,IAAI,CAAC,GAAG,CAAC,CAErC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAGhD;AASD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAiBrE"}
@@ -3,9 +3,6 @@ import TEXT_REGEX from "emojibase-regex/text";
3
3
  const emojiRegex = new RegExp(EMOJI_REGEX.source, EMOJI_REGEX.flags.replace("g", "").replace("y", ""));
4
4
  const textRegex = new RegExp(TEXT_REGEX.source, TEXT_REGEX.flags.replace("g", "").replace("y", ""));
5
5
  const widthCache = new Map();
6
- // Prefer text-width for ambiguous symbols that are commonly narrow in terminals.
7
- const forceTextWidth = new Map([["⚙", 1]]);
8
- const runtimeOverrides = new Map();
9
6
  let emojiPresentationWidth = 2;
10
7
  const envEmojiWidth = (() => {
11
8
  if (typeof process === "undefined")
@@ -29,21 +26,6 @@ export function setEmojiWidth(width) {
29
26
  emojiPresentationWidth = width;
30
27
  widthCache.clear();
31
28
  }
32
- export function setEmojiWidthOverride(segment, width) {
33
- runtimeOverrides.set(segment, width);
34
- widthCache.clear();
35
- }
36
- export function setEmojiWidthOverrides(entries) {
37
- runtimeOverrides.clear();
38
- for (const [segment, width] of entries) {
39
- runtimeOverrides.set(segment, width);
40
- }
41
- widthCache.clear();
42
- }
43
- export function clearEmojiWidthOverrides() {
44
- runtimeOverrides.clear();
45
- widthCache.clear();
46
- }
47
29
  function testRegex(regex, segment) {
48
30
  if (regex.global || regex.sticky) {
49
31
  regex.lastIndex = 0;
@@ -59,27 +41,17 @@ export function emojiWidthOverride(segment) {
59
41
  if (cached !== undefined)
60
42
  return cached === 0 ? undefined : cached;
61
43
  let width = 0;
62
- const override = runtimeOverrides.get(segment);
63
- if (override !== undefined) {
64
- width = override;
44
+ if (segment.includes("\uFE0F")) {
45
+ width = emojiPresentationWidth;
46
+ }
47
+ else if (segment.includes("\uFE0E")) {
48
+ width = 1;
49
+ }
50
+ else if (testRegex(emojiRegex, segment)) {
51
+ width = emojiPresentationWidth;
65
52
  }
66
- else {
67
- const forced = forceTextWidth.get(segment);
68
- if (forced !== undefined) {
69
- width = forced;
70
- }
71
- else if (segment.includes("\uFE0F")) {
72
- width = emojiPresentationWidth;
73
- }
74
- else if (segment.includes("\uFE0E")) {
75
- width = 1;
76
- }
77
- else if (testRegex(emojiRegex, segment)) {
78
- width = emojiPresentationWidth;
79
- }
80
- else if (testRegex(textRegex, segment)) {
81
- width = 1;
82
- }
53
+ else if (testRegex(textRegex, segment)) {
54
+ width = 1;
83
55
  }
84
56
  widthCache.set(segment, width);
85
57
  return width === 0 ? undefined : width;
@@ -1 +1 @@
1
- {"version":3,"file":"emoji.js","sourceRoot":"","sources":["../../src/render/emoji.ts"],"names":[],"mappings":"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"}
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;AAChD,IAAI,sBAAsB,GAA2B,CAAC,CAAA;AAEtD,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE;IAC3B,IAAI,OAAO,OAAO,KAAK,WAAW;QAAE,OAAO,SAAS,CAAA;IACpD,MAAM,GAAG,GACR,OAAO,CAAC,GAAG,EAAE,eAAe;QAC5B,OAAO,CAAC,GAAG,EAAE,sBAAsB;QACnC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAA;IACzB,IAAI,GAAG,KAAK,GAAG;QAAE,OAAO,CAAC,CAAA;IACzB,IAAI,GAAG,KAAK,GAAG;QAAE,OAAO,CAAC,CAAA;IACzB,OAAO,SAAS,CAAA;AACjB,CAAC,CAAC,EAAE,CAAA;AAEJ,IAAI,aAAa,EAAE,CAAC;IACnB,sBAAsB,GAAG,aAAa,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,aAAa;IAC5B,OAAO,sBAAsB,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAY;IACzC,sBAAsB,GAAG,KAAK,CAAA;IAC9B,UAAU,CAAC,KAAK,EAAE,CAAA;AACnB,CAAC;AAED,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,sBAAsB,CAAA;IAC/B,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,sBAAsB,CAAA;IAC/B,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-tui/core",
3
- "version": "1.0.0",
3
+ "version": "2.0.0",
4
4
  "description": "Terminal UI library built with Effect",
5
5
  "type": "module",
6
6
  "files": [
package/src/index.ts CHANGED
@@ -20,13 +20,7 @@ export * from "./layout/axis-helpers.js"
20
20
  // Output helpers (buffer diffing and emission)
21
21
  export * from "./output.js"
22
22
  export * from "./render/buffer.js"
23
- export {
24
- clearEmojiWidthOverrides,
25
- getEmojiWidth,
26
- setEmojiWidth,
27
- setEmojiWidthOverride,
28
- setEmojiWidthOverrides,
29
- } from "./render/emoji.js"
23
+ export { getEmojiWidth, setEmojiWidth } from "./render/emoji.js"
30
24
  export * from "./render/measure.js"
31
25
  export * from "./render/palette.js"
32
26
  // Rendering primitives
@@ -6,9 +6,6 @@ type EmojiWidth = 0 | 1 | 2
6
6
  const emojiRegex = new RegExp(EMOJI_REGEX.source, EMOJI_REGEX.flags.replace("g", "").replace("y", ""))
7
7
  const textRegex = new RegExp(TEXT_REGEX.source, TEXT_REGEX.flags.replace("g", "").replace("y", ""))
8
8
  const widthCache = new Map<string, EmojiWidth>()
9
- // Prefer text-width for ambiguous symbols that are commonly narrow in terminals.
10
- const forceTextWidth = new Map<string, EmojiWidth>([["⚙", 1]])
11
- const runtimeOverrides = new Map<string, EmojiWidth>()
12
9
  let emojiPresentationWidth: Exclude<EmojiWidth, 0> = 2
13
10
 
14
11
  const envEmojiWidth = (() => {
@@ -35,24 +32,6 @@ export function setEmojiWidth(width: 1 | 2): void {
35
32
  widthCache.clear()
36
33
  }
37
34
 
38
- export function setEmojiWidthOverride(segment: string, width: 1 | 2): void {
39
- runtimeOverrides.set(segment, width)
40
- widthCache.clear()
41
- }
42
-
43
- export function setEmojiWidthOverrides(entries: Iterable<[string, 1 | 2]>): void {
44
- runtimeOverrides.clear()
45
- for (const [segment, width] of entries) {
46
- runtimeOverrides.set(segment, width)
47
- }
48
- widthCache.clear()
49
- }
50
-
51
- export function clearEmojiWidthOverrides(): void {
52
- runtimeOverrides.clear()
53
- widthCache.clear()
54
- }
55
-
56
35
  function testRegex(regex: RegExp, segment: string): boolean {
57
36
  if (regex.global || regex.sticky) {
58
37
  regex.lastIndex = 0
@@ -69,22 +48,14 @@ export function emojiWidthOverride(segment: string): 1 | 2 | undefined {
69
48
  if (cached !== undefined) return cached === 0 ? undefined : cached
70
49
 
71
50
  let width: EmojiWidth = 0
72
- const override = runtimeOverrides.get(segment)
73
- if (override !== undefined) {
74
- width = override
75
- } else {
76
- const forced = forceTextWidth.get(segment)
77
- if (forced !== undefined) {
78
- width = forced
79
- } else if (segment.includes("\uFE0F")) {
80
- width = emojiPresentationWidth
81
- } else if (segment.includes("\uFE0E")) {
82
- width = 1
83
- } else if (testRegex(emojiRegex, segment)) {
84
- width = emojiPresentationWidth
85
- } else if (testRegex(textRegex, segment)) {
86
- width = 1
87
- }
51
+ if (segment.includes("\uFE0F")) {
52
+ width = emojiPresentationWidth
53
+ } else if (segment.includes("\uFE0E")) {
54
+ width = 1
55
+ } else if (testRegex(emojiRegex, segment)) {
56
+ width = emojiPresentationWidth
57
+ } else if (testRegex(textRegex, segment)) {
58
+ width = 1
88
59
  }
89
60
 
90
61
  widthCache.set(segment, width)