@effect-tui/core 0.1.0 → 0.1.4
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/README.md +31 -11
- package/dist/ansi.d.ts +127 -32
- package/dist/ansi.d.ts.map +1 -1
- package/dist/ansi.js +159 -37
- package/dist/ansi.js.map +1 -1
- package/dist/colors.d.ts +139 -0
- package/dist/colors.d.ts.map +1 -0
- package/dist/colors.js +339 -0
- package/dist/colors.js.map +1 -0
- package/dist/index.d.ts +6 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -11
- package/dist/index.js.map +1 -1
- package/dist/keys.d.ts +21 -0
- package/dist/keys.d.ts.map +1 -1
- package/dist/keys.js +199 -58
- package/dist/keys.js.map +1 -1
- package/dist/layout/axis-helpers.d.ts +19 -0
- package/dist/layout/axis-helpers.d.ts.map +1 -0
- package/dist/layout/axis-helpers.js +19 -0
- package/dist/layout/axis-helpers.js.map +1 -0
- package/dist/output.d.ts +59 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +142 -0
- package/dist/output.js.map +1 -0
- package/dist/render/buffer.d.ts.map +1 -1
- package/dist/render/buffer.js +6 -25
- package/dist/render/buffer.js.map +1 -1
- package/dist/render/graphemes.d.ts +15 -0
- package/dist/render/graphemes.d.ts.map +1 -0
- package/dist/render/graphemes.js +28 -0
- package/dist/render/graphemes.js.map +1 -0
- package/dist/render/measure.d.ts +1 -0
- package/dist/render/measure.d.ts.map +1 -1
- package/dist/render/measure.js +14 -36
- package/dist/render/measure.js.map +1 -1
- package/dist/render/palette.d.ts.map +1 -1
- package/dist/render/palette.js +26 -1
- package/dist/render/palette.js.map +1 -1
- package/dist/render/segmenter.d.ts +8 -0
- package/dist/render/segmenter.d.ts.map +1 -0
- package/dist/render/segmenter.js +23 -0
- package/dist/render/segmenter.js.map +1 -0
- package/dist/render/surface.d.ts +6 -32
- package/dist/render/surface.d.ts.map +1 -1
- package/dist/render/surface.js +11 -80
- package/dist/render/surface.js.map +1 -1
- package/dist/runtime/backend_node.d.ts.map +1 -1
- package/dist/runtime/backend_node.js.map +1 -1
- package/dist/tailwind-colors.d.ts +291 -0
- package/dist/tailwind-colors.d.ts.map +1 -0
- package/dist/tailwind-colors.js +291 -0
- package/dist/tailwind-colors.js.map +1 -0
- package/dist/types.d.ts +15 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +55 -55
- package/src/ansi.ts +201 -73
- package/src/colors.ts +468 -0
- package/src/index.ts +28 -14
- package/src/keys.ts +467 -287
- package/src/layout/axis-helpers.ts +33 -0
- package/src/output.ts +175 -0
- package/src/render/buffer.ts +161 -184
- package/src/render/graphemes.ts +34 -0
- package/src/render/measure.ts +15 -38
- package/src/render/palette.ts +98 -77
- package/src/render/segmenter.ts +27 -0
- package/src/render/surface.ts +139 -225
- package/src/runtime/backend_node.ts +71 -71
- package/src/tailwind-colors.ts +295 -0
- package/src/types.ts +18 -0
- package/dist/anim.d.ts +0 -4
- package/dist/anim.d.ts.map +0 -1
- package/dist/anim.js +0 -5
- package/dist/anim.js.map +0 -1
- package/dist/layout/linearStack.d.ts +0 -17
- package/dist/layout/linearStack.d.ts.map +0 -1
- package/dist/layout/linearStack.js +0 -86
- package/dist/layout/linearStack.js.map +0 -1
- package/dist/motion-value.d.ts +0 -58
- package/dist/motion-value.d.ts.map +0 -1
- package/dist/motion-value.js +0 -250
- package/dist/motion-value.js.map +0 -1
- package/dist/present/display.d.ts +0 -58
- package/dist/present/display.d.ts.map +0 -1
- package/dist/present/display.js +0 -168
- package/dist/present/display.js.map +0 -1
- package/dist/present/writers/fullscreen.d.ts +0 -19
- package/dist/present/writers/fullscreen.d.ts.map +0 -1
- package/dist/present/writers/fullscreen.js +0 -55
- package/dist/present/writers/fullscreen.js.map +0 -1
- package/dist/present/writers/inline.d.ts +0 -20
- package/dist/present/writers/inline.d.ts.map +0 -1
- package/dist/present/writers/inline.js +0 -92
- package/dist/present/writers/inline.js.map +0 -1
- package/dist/render/color-utils.d.ts +0 -18
- package/dist/render/color-utils.d.ts.map +0 -1
- package/dist/render/color-utils.js +0 -58
- package/dist/render/color-utils.js.map +0 -1
- package/dist/render/diff.d.ts +0 -30
- package/dist/render/diff.d.ts.map +0 -1
- package/dist/render/diff.js +0 -83
- package/dist/render/diff.js.map +0 -1
- package/dist/spring-physics.d.ts +0 -36
- package/dist/spring-physics.d.ts.map +0 -1
- package/dist/spring-physics.js +0 -113
- package/dist/spring-physics.js.map +0 -1
- package/dist/spring.d.ts +0 -73
- package/dist/spring.d.ts.map +0 -1
- package/dist/spring.js +0 -136
- package/dist/spring.js.map +0 -1
- package/dist/ui/containers/canvas.d.ts +0 -13
- package/dist/ui/containers/canvas.d.ts.map +0 -1
- package/dist/ui/containers/canvas.js +0 -16
- package/dist/ui/containers/canvas.js.map +0 -1
- package/dist/ui/containers/geometry-reader.d.ts +0 -17
- package/dist/ui/containers/geometry-reader.d.ts.map +0 -1
- package/dist/ui/containers/geometry-reader.js +0 -24
- package/dist/ui/containers/geometry-reader.js.map +0 -1
- package/dist/ui/containers/hstack.d.ts +0 -12
- package/dist/ui/containers/hstack.d.ts.map +0 -1
- package/dist/ui/containers/hstack.js +0 -28
- package/dist/ui/containers/hstack.js.map +0 -1
- package/dist/ui/containers/scroll.d.ts +0 -28
- package/dist/ui/containers/scroll.d.ts.map +0 -1
- package/dist/ui/containers/scroll.js +0 -97
- package/dist/ui/containers/scroll.js.map +0 -1
- package/dist/ui/containers/shared.d.ts +0 -12
- package/dist/ui/containers/shared.d.ts.map +0 -1
- package/dist/ui/containers/shared.js +0 -19
- package/dist/ui/containers/shared.js.map +0 -1
- package/dist/ui/containers/vstack.d.ts +0 -12
- package/dist/ui/containers/vstack.d.ts.map +0 -1
- package/dist/ui/containers/vstack.js +0 -28
- package/dist/ui/containers/vstack.js.map +0 -1
- package/dist/ui/containers/zstack.d.ts +0 -14
- package/dist/ui/containers/zstack.d.ts.map +0 -1
- package/dist/ui/containers/zstack.js +0 -36
- package/dist/ui/containers/zstack.js.map +0 -1
- package/dist/ui/core/geometry-store.d.ts +0 -22
- package/dist/ui/core/geometry-store.d.ts.map +0 -1
- package/dist/ui/core/geometry-store.js +0 -29
- package/dist/ui/core/geometry-store.js.map +0 -1
- package/dist/ui/core/geometry.d.ts +0 -34
- package/dist/ui/core/geometry.d.ts.map +0 -1
- package/dist/ui/core/geometry.js +0 -14
- package/dist/ui/core/geometry.js.map +0 -1
- package/dist/ui/core/view.d.ts +0 -25
- package/dist/ui/core/view.d.ts.map +0 -1
- package/dist/ui/core/view.js +0 -34
- package/dist/ui/core/view.js.map +0 -1
- package/dist/ui/index.d.ts +0 -44
- package/dist/ui/index.d.ts.map +0 -1
- package/dist/ui/index.js +0 -39
- package/dist/ui/index.js.map +0 -1
- package/dist/ui/inlinetext.d.ts +0 -24
- package/dist/ui/inlinetext.d.ts.map +0 -1
- package/dist/ui/inlinetext.js +0 -131
- package/dist/ui/inlinetext.js.map +0 -1
- package/dist/ui/install.d.ts +0 -22
- package/dist/ui/install.d.ts.map +0 -1
- package/dist/ui/install.js +0 -66
- package/dist/ui/install.js.map +0 -1
- package/dist/ui/markdown.d.ts +0 -40
- package/dist/ui/markdown.d.ts.map +0 -1
- package/dist/ui/markdown.js +0 -351
- package/dist/ui/markdown.js.map +0 -1
- package/dist/ui/modifiers/border.d.ts +0 -33
- package/dist/ui/modifiers/border.d.ts.map +0 -1
- package/dist/ui/modifiers/border.js +0 -82
- package/dist/ui/modifiers/border.js.map +0 -1
- package/dist/ui/modifiers/fill.d.ts +0 -14
- package/dist/ui/modifiers/fill.d.ts.map +0 -1
- package/dist/ui/modifiers/fill.js +0 -25
- package/dist/ui/modifiers/fill.js.map +0 -1
- package/dist/ui/modifiers/frame.d.ts +0 -23
- package/dist/ui/modifiers/frame.d.ts.map +0 -1
- package/dist/ui/modifiers/frame.js +0 -54
- package/dist/ui/modifiers/frame.js.map +0 -1
- package/dist/ui/modifiers/offset.d.ts +0 -15
- package/dist/ui/modifiers/offset.d.ts.map +0 -1
- package/dist/ui/modifiers/offset.js +0 -21
- package/dist/ui/modifiers/offset.js.map +0 -1
- package/dist/ui/modifiers/opacity.d.ts +0 -15
- package/dist/ui/modifiers/opacity.d.ts.map +0 -1
- package/dist/ui/modifiers/opacity.js +0 -95
- package/dist/ui/modifiers/opacity.js.map +0 -1
- package/dist/ui/modifiers/padding.d.ts +0 -20
- package/dist/ui/modifiers/padding.d.ts.map +0 -1
- package/dist/ui/modifiers/padding.js +0 -36
- package/dist/ui/modifiers/padding.js.map +0 -1
- package/dist/ui/modifiers/styled.d.ts +0 -14
- package/dist/ui/modifiers/styled.d.ts.map +0 -1
- package/dist/ui/modifiers/styled.js +0 -26
- package/dist/ui/modifiers/styled.js.map +0 -1
- package/dist/ui/primitives/rectangle.d.ts +0 -15
- package/dist/ui/primitives/rectangle.d.ts.map +0 -1
- package/dist/ui/primitives/rectangle.js +0 -23
- package/dist/ui/primitives/rectangle.js.map +0 -1
- package/dist/ui/primitives/spacer.d.ts +0 -13
- package/dist/ui/primitives/spacer.d.ts.map +0 -1
- package/dist/ui/primitives/spacer.js +0 -16
- package/dist/ui/primitives/spacer.js.map +0 -1
- package/dist/ui/primitives/text.d.ts +0 -15
- package/dist/ui/primitives/text.d.ts.map +0 -1
- package/dist/ui/primitives/text.js +0 -79
- package/dist/ui/primitives/text.js.map +0 -1
- package/dist/ui/primitives/wrapped-text.d.ts +0 -30
- package/dist/ui/primitives/wrapped-text.d.ts.map +0 -1
- package/dist/ui/primitives/wrapped-text.js +0 -117
- package/dist/ui/primitives/wrapped-text.js.map +0 -1
- package/dist/ui/shinytext.d.ts +0 -66
- package/dist/ui/shinytext.d.ts.map +0 -1
- package/dist/ui/shinytext.js +0 -99
- package/dist/ui/shinytext.js.map +0 -1
- package/dist/ui/text/layout.d.ts +0 -35
- package/dist/ui/text/layout.d.ts.map +0 -1
- package/dist/ui/text/layout.js +0 -102
- package/dist/ui/text/layout.js.map +0 -1
- package/dist/ui/textinput.d.ts +0 -140
- package/dist/ui/textinput.d.ts.map +0 -1
- package/dist/ui/textinput.js +0 -402
- package/dist/ui/textinput.js.map +0 -1
- package/dist/ui/view-constructors.d.ts +0 -72
- package/dist/ui/view-constructors.d.ts.map +0 -1
- package/dist/ui/view-constructors.js +0 -74
- package/dist/ui/view-constructors.js.map +0 -1
- package/src/anim.ts +0 -5
- package/src/layout/linearStack.ts +0 -115
- package/src/motion-value.ts +0 -335
- package/src/present/display.ts +0 -206
- package/src/present/writers/fullscreen.ts +0 -58
- package/src/present/writers/inline.ts +0 -101
- package/src/render/color-utils.ts +0 -60
- package/src/render/diff.ts +0 -95
- package/src/spring-physics.ts +0 -151
- package/src/spring.ts +0 -234
- package/src/ui/__snapshots__/wrappedtext.test.ts.snap +0 -57
- package/src/ui/containers/canvas.ts +0 -18
- package/src/ui/containers/geometry-reader.ts +0 -32
- package/src/ui/containers/hstack.ts +0 -33
- package/src/ui/containers/scroll.ts +0 -106
- package/src/ui/containers/shared.ts +0 -27
- package/src/ui/containers/vstack.ts +0 -34
- package/src/ui/containers/zstack.ts +0 -37
- package/src/ui/core/geometry-store.ts +0 -42
- package/src/ui/core/geometry.ts +0 -30
- package/src/ui/core/view.ts +0 -49
- package/src/ui/index.ts +0 -84
- package/src/ui/inlinetext.ts +0 -135
- package/src/ui/install.ts +0 -110
- package/src/ui/markdown.test.ts +0 -74
- package/src/ui/markdown.ts +0 -388
- package/src/ui/modifiers/border.ts +0 -100
- package/src/ui/modifiers/fill.ts +0 -28
- package/src/ui/modifiers/frame.ts +0 -74
- package/src/ui/modifiers/offset.ts +0 -23
- package/src/ui/modifiers/opacity.ts +0 -93
- package/src/ui/modifiers/padding.ts +0 -53
- package/src/ui/modifiers/styled.ts +0 -31
- package/src/ui/primitives/rectangle.ts +0 -25
- package/src/ui/primitives/spacer.ts +0 -18
- package/src/ui/primitives/text.ts +0 -85
- package/src/ui/primitives/wrapped-text.ts +0 -131
- package/src/ui/shinytext.ts +0 -159
- package/src/ui/text/layout.ts +0 -119
- package/src/ui/textinput.ts +0 -496
- package/src/ui/view-constructors.ts +0 -96
- package/src/ui/wrappedtext.test.ts +0 -138
package/dist/colors.js
ADDED
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
// colors.ts — Comprehensive color parsing and utilities
|
|
2
|
+
// Supports indexed colors (0-255), RGB, hex, named colors, HSL, and alpha
|
|
3
|
+
import { tailwindColors } from "./tailwind-colors.js";
|
|
4
|
+
/** Standard ANSI color names mapped to 256-color indices */
|
|
5
|
+
export const BASE_NAMES = {
|
|
6
|
+
black: 0,
|
|
7
|
+
red: 1,
|
|
8
|
+
green: 2,
|
|
9
|
+
yellow: 3,
|
|
10
|
+
blue: 4,
|
|
11
|
+
magenta: 5,
|
|
12
|
+
cyan: 6,
|
|
13
|
+
white: 7,
|
|
14
|
+
brightBlack: 8,
|
|
15
|
+
brightRed: 9,
|
|
16
|
+
brightGreen: 10,
|
|
17
|
+
brightYellow: 11,
|
|
18
|
+
brightBlue: 12,
|
|
19
|
+
brightMagenta: 13,
|
|
20
|
+
brightCyan: 14,
|
|
21
|
+
brightWhite: 15,
|
|
22
|
+
};
|
|
23
|
+
// ============================================================================
|
|
24
|
+
// Utility functions
|
|
25
|
+
// ============================================================================
|
|
26
|
+
/** Clamp a number to 0-255 range */
|
|
27
|
+
export function clamp255(n) {
|
|
28
|
+
return n < 0 ? 0 : n > 255 ? 255 : n | 0;
|
|
29
|
+
}
|
|
30
|
+
/** Clamp a number to 0-1 range */
|
|
31
|
+
export function clamp1(n) {
|
|
32
|
+
return n < 0 ? 0 : n > 1 ? 1 : n;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Parse flexible color inputs into a resolved color value.
|
|
36
|
+
* Supports: number (0-255), {r,g,b}, "#rgb", "#rrggbb", base names, gray0-23.
|
|
37
|
+
* Used by Palette and style systems.
|
|
38
|
+
*/
|
|
39
|
+
export function parseColor(c) {
|
|
40
|
+
if (typeof c === "number")
|
|
41
|
+
return c;
|
|
42
|
+
if (typeof c === "object")
|
|
43
|
+
return { r: c.r | 0, g: c.g | 0, b: c.b | 0 };
|
|
44
|
+
const s = String(c).trim();
|
|
45
|
+
// Hex color
|
|
46
|
+
if (s.startsWith("#")) {
|
|
47
|
+
const hex = s.slice(1);
|
|
48
|
+
if (hex.length === 3) {
|
|
49
|
+
// #rgb -> #rrggbb
|
|
50
|
+
return {
|
|
51
|
+
r: parseInt(hex[0] + hex[0], 16),
|
|
52
|
+
g: parseInt(hex[1] + hex[1], 16),
|
|
53
|
+
b: parseInt(hex[2] + hex[2], 16),
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
if (hex.length === 6) {
|
|
57
|
+
return {
|
|
58
|
+
r: parseInt(hex.slice(0, 2), 16),
|
|
59
|
+
g: parseInt(hex.slice(2, 4), 16),
|
|
60
|
+
b: parseInt(hex.slice(4, 6), 16),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// Named color
|
|
65
|
+
if (s in BASE_NAMES)
|
|
66
|
+
return BASE_NAMES[s];
|
|
67
|
+
// gray0-gray23
|
|
68
|
+
const m = /^(?:gray|grey)(\d{1,2})$/.exec(s);
|
|
69
|
+
if (m?.[1]) {
|
|
70
|
+
const n = Math.max(0, Math.min(23, parseInt(m[1], 10)));
|
|
71
|
+
return 232 + n;
|
|
72
|
+
}
|
|
73
|
+
return 7; // default to white if unrecognized
|
|
74
|
+
}
|
|
75
|
+
// ============================================================================
|
|
76
|
+
// parseColorRGBA - For color springs (returns RGBA with alpha)
|
|
77
|
+
// ============================================================================
|
|
78
|
+
/**
|
|
79
|
+
* Parse any supported color format to RGBA (with alpha).
|
|
80
|
+
* Supports: hex (#rgb, #rrggbb, #rgba, #rrggbbaa), rgb(), rgba(), hsl(), hsla(), {r,g,b,a}.
|
|
81
|
+
* Used by color springs for interpolation.
|
|
82
|
+
*/
|
|
83
|
+
export function parseColorRGBA(input) {
|
|
84
|
+
if (typeof input === "object") {
|
|
85
|
+
return {
|
|
86
|
+
r: input.r,
|
|
87
|
+
g: input.g,
|
|
88
|
+
b: input.b,
|
|
89
|
+
a: "a" in input ? input.a : 1,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
const str = input.trim().toLowerCase();
|
|
93
|
+
// Hex: #rgb, #rrggbb, #rgba, #rrggbbaa
|
|
94
|
+
if (str.startsWith("#")) {
|
|
95
|
+
return parseHex(str);
|
|
96
|
+
}
|
|
97
|
+
// rgb(r, g, b) or rgba(r, g, b, a)
|
|
98
|
+
if (str.startsWith("rgb")) {
|
|
99
|
+
return parseRgb(str);
|
|
100
|
+
}
|
|
101
|
+
// hsl(h, s%, l%) or hsla(h, s%, l%, a)
|
|
102
|
+
if (str.startsWith("hsl")) {
|
|
103
|
+
return parseHsl(str);
|
|
104
|
+
}
|
|
105
|
+
// Unknown format, return black
|
|
106
|
+
return { r: 0, g: 0, b: 0, a: 1 };
|
|
107
|
+
}
|
|
108
|
+
function parseHex(hex) {
|
|
109
|
+
const h = hex.slice(1);
|
|
110
|
+
if (h.length === 3) {
|
|
111
|
+
return {
|
|
112
|
+
r: parseInt(h[0] + h[0], 16),
|
|
113
|
+
g: parseInt(h[1] + h[1], 16),
|
|
114
|
+
b: parseInt(h[2] + h[2], 16),
|
|
115
|
+
a: 1,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
if (h.length === 4) {
|
|
119
|
+
return {
|
|
120
|
+
r: parseInt(h[0] + h[0], 16),
|
|
121
|
+
g: parseInt(h[1] + h[1], 16),
|
|
122
|
+
b: parseInt(h[2] + h[2], 16),
|
|
123
|
+
a: parseInt(h[3] + h[3], 16) / 255,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
if (h.length === 6) {
|
|
127
|
+
return {
|
|
128
|
+
r: parseInt(h.slice(0, 2), 16),
|
|
129
|
+
g: parseInt(h.slice(2, 4), 16),
|
|
130
|
+
b: parseInt(h.slice(4, 6), 16),
|
|
131
|
+
a: 1,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
if (h.length === 8) {
|
|
135
|
+
return {
|
|
136
|
+
r: parseInt(h.slice(0, 2), 16),
|
|
137
|
+
g: parseInt(h.slice(2, 4), 16),
|
|
138
|
+
b: parseInt(h.slice(4, 6), 16),
|
|
139
|
+
a: parseInt(h.slice(6, 8), 16) / 255,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
return { r: 0, g: 0, b: 0, a: 1 };
|
|
143
|
+
}
|
|
144
|
+
function parseRgb(str) {
|
|
145
|
+
const match = str.match(/rgba?\(\s*(\d+)\s*[,\s]\s*(\d+)\s*[,\s]\s*(\d+)\s*(?:[,/]\s*([\d.]+))?\s*\)/);
|
|
146
|
+
if (match) {
|
|
147
|
+
return {
|
|
148
|
+
r: clamp255(parseInt(match[1], 10)),
|
|
149
|
+
g: clamp255(parseInt(match[2], 10)),
|
|
150
|
+
b: clamp255(parseInt(match[3], 10)),
|
|
151
|
+
a: match[4] ? clamp1(parseFloat(match[4])) : 1,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
return { r: 0, g: 0, b: 0, a: 1 };
|
|
155
|
+
}
|
|
156
|
+
function parseHsl(str) {
|
|
157
|
+
const match = str.match(/hsla?\(\s*(\d+)\s*[,\s]\s*([\d.]+)%?\s*[,\s]\s*([\d.]+)%?\s*(?:[,/]\s*([\d.]+))?\s*\)/);
|
|
158
|
+
if (match) {
|
|
159
|
+
const h = parseFloat(match[1]);
|
|
160
|
+
const s = parseFloat(match[2]);
|
|
161
|
+
const l = parseFloat(match[3]);
|
|
162
|
+
const a = match[4] ? clamp1(parseFloat(match[4])) : 1;
|
|
163
|
+
return hslToRgba(h, s, l, a);
|
|
164
|
+
}
|
|
165
|
+
return { r: 0, g: 0, b: 0, a: 1 };
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Convert HSL to RGBA.
|
|
169
|
+
* h: 0-360, s: 0-100, l: 0-100, a: 0-1
|
|
170
|
+
*/
|
|
171
|
+
export function hslToRgba(h, s, l, a) {
|
|
172
|
+
// Normalize
|
|
173
|
+
h = ((h % 360) + 360) % 360;
|
|
174
|
+
s = clamp1(s / 100);
|
|
175
|
+
l = clamp1(l / 100);
|
|
176
|
+
const c = (1 - Math.abs(2 * l - 1)) * s;
|
|
177
|
+
const x = c * (1 - Math.abs(((h / 60) % 2) - 1));
|
|
178
|
+
const m = l - c / 2;
|
|
179
|
+
let r = 0;
|
|
180
|
+
let g = 0;
|
|
181
|
+
let b = 0;
|
|
182
|
+
if (h < 60) {
|
|
183
|
+
r = c;
|
|
184
|
+
g = x;
|
|
185
|
+
b = 0;
|
|
186
|
+
}
|
|
187
|
+
else if (h < 120) {
|
|
188
|
+
r = x;
|
|
189
|
+
g = c;
|
|
190
|
+
b = 0;
|
|
191
|
+
}
|
|
192
|
+
else if (h < 180) {
|
|
193
|
+
r = 0;
|
|
194
|
+
g = c;
|
|
195
|
+
b = x;
|
|
196
|
+
}
|
|
197
|
+
else if (h < 240) {
|
|
198
|
+
r = 0;
|
|
199
|
+
g = x;
|
|
200
|
+
b = c;
|
|
201
|
+
}
|
|
202
|
+
else if (h < 300) {
|
|
203
|
+
r = x;
|
|
204
|
+
g = 0;
|
|
205
|
+
b = c;
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
r = c;
|
|
209
|
+
g = 0;
|
|
210
|
+
b = x;
|
|
211
|
+
}
|
|
212
|
+
return {
|
|
213
|
+
r: Math.round((r + m) * 255),
|
|
214
|
+
g: Math.round((g + m) * 255),
|
|
215
|
+
b: Math.round((b + m) * 255),
|
|
216
|
+
a,
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Convert a 256-color index to RGB values (approximate xterm palette).
|
|
221
|
+
* 0-15: Standard ANSI, 16-231: 6x6x6 RGB cube, 232-255: Grayscale ramp
|
|
222
|
+
*/
|
|
223
|
+
export function idxToRGB(idx) {
|
|
224
|
+
if (idx < 0)
|
|
225
|
+
idx = 0;
|
|
226
|
+
if (idx > 255)
|
|
227
|
+
idx = 255;
|
|
228
|
+
// Standard ANSI colors (0-15)
|
|
229
|
+
if (idx < 16) {
|
|
230
|
+
const base = [
|
|
231
|
+
[0x00, 0x00, 0x00], // 0: black
|
|
232
|
+
[0x80, 0x00, 0x00], // 1: red
|
|
233
|
+
[0x00, 0x80, 0x00], // 2: green
|
|
234
|
+
[0x80, 0x80, 0x00], // 3: yellow
|
|
235
|
+
[0x00, 0x00, 0x80], // 4: blue
|
|
236
|
+
[0x80, 0x00, 0x80], // 5: magenta
|
|
237
|
+
[0x00, 0x80, 0x80], // 6: cyan
|
|
238
|
+
[0xc0, 0xc0, 0xc0], // 7: white
|
|
239
|
+
[0x80, 0x80, 0x80], // 8: bright black (gray)
|
|
240
|
+
[0xff, 0x00, 0x00], // 9: bright red
|
|
241
|
+
[0x00, 0xff, 0x00], // 10: bright green
|
|
242
|
+
[0xff, 0xff, 0x00], // 11: bright yellow
|
|
243
|
+
[0x00, 0x00, 0xff], // 12: bright blue
|
|
244
|
+
[0xff, 0x00, 0xff], // 13: bright magenta
|
|
245
|
+
[0x00, 0xff, 0xff], // 14: bright cyan
|
|
246
|
+
[0xff, 0xff, 0xff], // 15: bright white
|
|
247
|
+
];
|
|
248
|
+
const [r, g, b] = base[idx] ?? [0, 0, 0];
|
|
249
|
+
return { r, g, b };
|
|
250
|
+
}
|
|
251
|
+
// Grayscale ramp (232-255)
|
|
252
|
+
if (idx >= 232) {
|
|
253
|
+
const n = idx - 232; // 0..23
|
|
254
|
+
const v = 8 + n * 10;
|
|
255
|
+
return { r: v, g: v, b: v };
|
|
256
|
+
}
|
|
257
|
+
// 6x6x6 RGB cube (16-231)
|
|
258
|
+
const n = idx - 16; // 0..215
|
|
259
|
+
const r = Math.floor(n / 36) % 6;
|
|
260
|
+
const g = Math.floor(n / 6) % 6;
|
|
261
|
+
const b = n % 6;
|
|
262
|
+
const steps = [0, 95, 135, 175, 215, 255];
|
|
263
|
+
return { r: steps[r] ?? 0, g: steps[g] ?? 0, b: steps[b] ?? 0 };
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Check if a value looks like a color input.
|
|
267
|
+
*/
|
|
268
|
+
export function isColorInput(value) {
|
|
269
|
+
if (typeof value === "string") {
|
|
270
|
+
const s = value.trim().toLowerCase();
|
|
271
|
+
return s.startsWith("#") || s.startsWith("rgb") || s.startsWith("hsl");
|
|
272
|
+
}
|
|
273
|
+
if (typeof value === "object" && value !== null) {
|
|
274
|
+
const obj = value;
|
|
275
|
+
return typeof obj.r === "number" && typeof obj.g === "number" && typeof obj.b === "number";
|
|
276
|
+
}
|
|
277
|
+
return false;
|
|
278
|
+
}
|
|
279
|
+
/** Parse hex string to RGB */
|
|
280
|
+
function hexToRgb(hex) {
|
|
281
|
+
const h = hex.startsWith("#") ? hex.slice(1) : hex;
|
|
282
|
+
return {
|
|
283
|
+
r: parseInt(h.slice(0, 2), 16),
|
|
284
|
+
g: parseInt(h.slice(2, 4), 16),
|
|
285
|
+
b: parseInt(h.slice(4, 6), 16),
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
/** Create a Tailwind color function for a given family */
|
|
289
|
+
function makeTailwindColor(family) {
|
|
290
|
+
const palette = tailwindColors[family];
|
|
291
|
+
return (shade) => {
|
|
292
|
+
const hex = palette[shade];
|
|
293
|
+
return hexToRgb(hex);
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
/** Tailwind color palette under Colors.tw namespace */
|
|
297
|
+
const tw = {
|
|
298
|
+
slate: makeTailwindColor("slate"),
|
|
299
|
+
gray: makeTailwindColor("gray"),
|
|
300
|
+
zinc: makeTailwindColor("zinc"),
|
|
301
|
+
neutral: makeTailwindColor("neutral"),
|
|
302
|
+
stone: makeTailwindColor("stone"),
|
|
303
|
+
red: makeTailwindColor("red"),
|
|
304
|
+
orange: makeTailwindColor("orange"),
|
|
305
|
+
amber: makeTailwindColor("amber"),
|
|
306
|
+
yellow: makeTailwindColor("yellow"),
|
|
307
|
+
lime: makeTailwindColor("lime"),
|
|
308
|
+
green: makeTailwindColor("green"),
|
|
309
|
+
emerald: makeTailwindColor("emerald"),
|
|
310
|
+
teal: makeTailwindColor("teal"),
|
|
311
|
+
cyan: makeTailwindColor("cyan"),
|
|
312
|
+
sky: makeTailwindColor("sky"),
|
|
313
|
+
blue: makeTailwindColor("blue"),
|
|
314
|
+
indigo: makeTailwindColor("indigo"),
|
|
315
|
+
violet: makeTailwindColor("violet"),
|
|
316
|
+
purple: makeTailwindColor("purple"),
|
|
317
|
+
fuchsia: makeTailwindColor("fuchsia"),
|
|
318
|
+
pink: makeTailwindColor("pink"),
|
|
319
|
+
rose: makeTailwindColor("rose"),
|
|
320
|
+
};
|
|
321
|
+
/** Convenience API for creating color values */
|
|
322
|
+
export const Colors = Object.assign({
|
|
323
|
+
rgb(r, g, b) {
|
|
324
|
+
return { r, g, b };
|
|
325
|
+
},
|
|
326
|
+
hex(hex) {
|
|
327
|
+
const result = parseColor(hex);
|
|
328
|
+
// parseColor returns number for named colors, but hex always returns RGB
|
|
329
|
+
return typeof result === "number" ? { r: 0, g: 0, b: 0 } : result;
|
|
330
|
+
},
|
|
331
|
+
/** Gray - 24-level grayscale palette (0-23) */
|
|
332
|
+
gray(level) {
|
|
333
|
+
const n = Math.max(0, Math.min(23, level | 0));
|
|
334
|
+
return 232 + n;
|
|
335
|
+
},
|
|
336
|
+
/** Tailwind color palette */
|
|
337
|
+
tw,
|
|
338
|
+
}, BASE_NAMES);
|
|
339
|
+
//# sourceMappingURL=colors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colors.js","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,16 +1,12 @@
|
|
|
1
|
+
export * from "./types.js";
|
|
1
2
|
export * from "./render/surface.js";
|
|
2
3
|
export * from "./render/buffer.js";
|
|
4
|
+
export * from "./render/palette.js";
|
|
3
5
|
export * from "./render/measure.js";
|
|
4
|
-
export
|
|
6
|
+
export { parseColorRGBA, hslToRgba, idxToRGB, isColorInput, clamp255, clamp1, type RGBA, type ColorInput, } from "./colors.js";
|
|
5
7
|
export * from "./keys.js";
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export { Markdown } from "./ui/index.js";
|
|
10
|
-
export type { TextInputStateLike, TextInputStatePlain, TextInputGeom, TextInputOptions } from "./ui/index.js";
|
|
11
|
-
export type { MarkdownOptions } from "./ui/index.js";
|
|
12
|
-
export { geometryStore } from "./ui/core/geometry-store.js";
|
|
13
|
-
export type { ViewId, Rect as GeometryRect, InputGeom } from "./ui/core/geometry-store.js";
|
|
14
|
-
export * from "./present/display.js";
|
|
8
|
+
export * from "./ansi.js";
|
|
9
|
+
export * from "./output.js";
|
|
10
|
+
export * from "./layout/axis-helpers.js";
|
|
15
11
|
export type { TerminalBackend } from "./runtime/backend_node.js";
|
|
16
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAA;AAG1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AAGnC,OAAO,EACN,cAAc,EACd,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,KAAK,IAAI,EACT,KAAK,UAAU,GACf,MAAM,aAAa,CAAA;AAGpB,cAAc,WAAW,CAAA;AAGzB,cAAc,WAAW,CAAA;AAGzB,cAAc,aAAa,CAAA;AAG3B,cAAc,0BAA0B,CAAA;AAGxC,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
//
|
|
1
|
+
// Core types
|
|
2
|
+
export * from "./types.js";
|
|
3
|
+
// Rendering primitives
|
|
2
4
|
export * from "./render/surface.js";
|
|
3
5
|
export * from "./render/buffer.js";
|
|
6
|
+
export * from "./render/palette.js";
|
|
4
7
|
export * from "./render/measure.js";
|
|
5
|
-
|
|
8
|
+
// Colors - additional exports not in surface.js (RGBA, parseColorRGBA for springs)
|
|
9
|
+
export { parseColorRGBA, hslToRgba, idxToRGB, isColorInput, clamp255, clamp1, } from "./colors.js";
|
|
10
|
+
// Input handling
|
|
6
11
|
export * from "./keys.js";
|
|
7
|
-
//
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
export
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
export { geometryStore } from "./ui/core/geometry-store.js";
|
|
14
|
-
// Renderers (optional public API)
|
|
15
|
-
export * from "./present/display.js";
|
|
12
|
+
// ANSI escape sequences
|
|
13
|
+
export * from "./ansi.js";
|
|
14
|
+
// Output helpers (buffer diffing and emission)
|
|
15
|
+
export * from "./output.js";
|
|
16
|
+
// Layout utilities
|
|
17
|
+
export * from "./layout/axis-helpers.js";
|
|
16
18
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,cAAc,YAAY,CAAA;AAE1B,uBAAuB;AACvB,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AAEnC,mFAAmF;AACnF,OAAO,EACN,cAAc,EACd,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,MAAM,GAGN,MAAM,aAAa,CAAA;AAEpB,iBAAiB;AACjB,cAAc,WAAW,CAAA;AAEzB,wBAAwB;AACxB,cAAc,WAAW,CAAA;AAEzB,+CAA+C;AAC/C,cAAc,aAAa,CAAA;AAE3B,mBAAmB;AACnB,cAAc,0BAA0B,CAAA"}
|
package/dist/keys.d.ts
CHANGED
|
@@ -14,5 +14,26 @@ export type KeyMsg = {
|
|
|
14
14
|
/** Source protocol (raw|csiu|modifyOther|kitty). */
|
|
15
15
|
source?: "raw" | "csiu" | "modify-other" | "kitty";
|
|
16
16
|
};
|
|
17
|
+
export type MouseButton = "left" | "middle" | "right" | "scroll-up" | "scroll-down" | "none";
|
|
18
|
+
export type MouseMsg = {
|
|
19
|
+
type: "mouse";
|
|
20
|
+
button: MouseButton;
|
|
21
|
+
/** Column (0-based) */
|
|
22
|
+
x: number;
|
|
23
|
+
/** Row (0-based) */
|
|
24
|
+
y: number;
|
|
25
|
+
/** Press or release */
|
|
26
|
+
action: "press" | "release" | "drag" | "move";
|
|
27
|
+
ctrl?: boolean;
|
|
28
|
+
meta?: boolean;
|
|
29
|
+
shift?: boolean;
|
|
30
|
+
};
|
|
31
|
+
/** Union of keyboard and mouse input events */
|
|
32
|
+
export type InputMsg = KeyMsg | MouseMsg;
|
|
33
|
+
/**
|
|
34
|
+
* Decode input buffer into keyboard and mouse events.
|
|
35
|
+
* Use this instead of decodeKeys if you want mouse support.
|
|
36
|
+
*/
|
|
37
|
+
export declare function decodeInput(buf: Buffer): Iterable<InputMsg>;
|
|
17
38
|
export declare function decodeKeys(buf: Buffer): Iterable<KeyMsg>;
|
|
18
39
|
//# sourceMappingURL=keys.d.ts.map
|
package/dist/keys.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"AAsBA,MAAM,MAAM,OAAO,GAChB,IAAI,GACJ,MAAM,GACN,MAAM,GACN,OAAO,GACP,OAAO,GACP,QAAQ,GACR,KAAK,GACL,WAAW,GACX,WAAW,GACX,QAAQ,GACR,MAAM,GACN,KAAK,GACL,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,MAAM,CAAA;AAET,MAAM,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,KAAK,CAAA;IACX,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,oEAAoE;IACpE,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAA;IACtC,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IAC3B,oDAAoD;IACpD,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,cAAc,GAAG,OAAO,CAAA;CAClD,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,WAAW,GAAG,aAAa,GAAG,MAAM,CAAA;AAE5F,MAAM,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,WAAW,CAAA;IACnB,uBAAuB;IACvB,CAAC,EAAE,MAAM,CAAA;IACT,oBAAoB;IACpB,CAAC,EAAE,MAAM,CAAA;IACT,uBAAuB;IACvB,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAA;IAC7C,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;CACf,CAAA;AAED,+CAA+C;AAC/C,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAA;AA+IxC;;;GAGG;AACH,wBAAiB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,CA4B5D;AAED,wBAAiB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CA+LzD"}
|