@zakmandhro/bunti 0.1.5 → 0.2.1
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/AGENTS.md +65 -0
- package/README.md +86 -11
- package/dist/cli.d.ts +44 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +147 -0
- package/dist/cli.js.map +1 -0
- package/dist/colors.d.ts +77 -7
- package/dist/colors.d.ts.map +1 -1
- package/dist/colors.js +238 -39
- package/dist/colors.js.map +1 -1
- package/dist/components/Box.d.ts +6 -0
- package/dist/components/Box.d.ts.map +1 -1
- package/dist/components/Box.js +5 -0
- package/dist/components/Box.js.map +1 -1
- package/dist/components/Button.d.ts +15 -2
- package/dist/components/Button.d.ts.map +1 -1
- package/dist/components/Button.js +45 -25
- package/dist/components/Button.js.map +1 -1
- package/dist/components/Card.d.ts +24 -2
- package/dist/components/Card.d.ts.map +1 -1
- package/dist/components/Card.js +56 -14
- package/dist/components/Card.js.map +1 -1
- package/dist/components/Header.d.ts +11 -1
- package/dist/components/Header.d.ts.map +1 -1
- package/dist/components/Header.js +12 -8
- package/dist/components/Header.js.map +1 -1
- package/dist/components/Input.d.ts +10 -1
- package/dist/components/Input.d.ts.map +1 -1
- package/dist/components/Input.js +176 -41
- package/dist/components/Input.js.map +1 -1
- package/dist/components/Link.d.ts +21 -0
- package/dist/components/Link.d.ts.map +1 -0
- package/dist/components/Link.js +38 -0
- package/dist/components/Link.js.map +1 -0
- package/dist/components/Modal.d.ts +25 -0
- package/dist/components/Modal.d.ts.map +1 -1
- package/dist/components/Modal.js +88 -24
- package/dist/components/Modal.js.map +1 -1
- package/dist/components/Progress.d.ts +27 -0
- package/dist/components/Progress.d.ts.map +1 -0
- package/dist/components/Progress.js +39 -0
- package/dist/components/Progress.js.map +1 -0
- package/dist/components/Spinner.d.ts +19 -0
- package/dist/components/Spinner.d.ts.map +1 -0
- package/dist/components/Spinner.js +27 -0
- package/dist/components/Spinner.js.map +1 -0
- package/dist/components/index.d.ts +3 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +3 -0
- package/dist/components/index.js.map +1 -1
- package/dist/data/nf-glyphs.d.ts +11 -0
- package/dist/data/nf-glyphs.d.ts.map +1 -0
- package/dist/data/nf-glyphs.js +535 -0
- package/dist/data/nf-glyphs.js.map +1 -0
- package/dist/data/nf-names.d.ts +8 -0
- package/dist/data/nf-names.d.ts.map +1 -0
- package/dist/data/nf-names.js +2 -0
- package/dist/data/nf-names.js.map +1 -0
- package/dist/demo-registry.d.ts +27 -0
- package/dist/demo-registry.d.ts.map +1 -0
- package/dist/demo-registry.js +57 -0
- package/dist/demo-registry.js.map +1 -0
- package/dist/demos/2048.ts +743 -0
- package/dist/demos/animation.ts +246 -0
- package/dist/demos/demo-layout.ts +124 -0
- package/dist/demos/engine.ts +374 -0
- package/dist/demos/interaction.ts +91 -0
- package/dist/demos/login.ts +203 -0
- package/dist/demos/mission-control.ts +558 -0
- package/dist/demos/showcase.ts +224 -0
- package/dist/detect.d.ts +92 -3
- package/dist/detect.d.ts.map +1 -1
- package/dist/detect.js +218 -40
- package/dist/detect.js.map +1 -1
- package/dist/diagnostics.d.ts +73 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +225 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/dsl/context.d.ts +11 -0
- package/dist/dsl/context.d.ts.map +1 -0
- package/dist/dsl/context.js +658 -0
- package/dist/dsl/context.js.map +1 -0
- package/dist/dsl/hooks.d.ts +12 -0
- package/dist/dsl/hooks.d.ts.map +1 -0
- package/dist/dsl/hooks.js +148 -0
- package/dist/dsl/hooks.js.map +1 -0
- package/dist/dsl/interaction.d.ts +31 -0
- package/dist/dsl/interaction.d.ts.map +1 -0
- package/dist/dsl/interaction.js +150 -0
- package/dist/dsl/interaction.js.map +1 -0
- package/dist/dsl/layers.d.ts +14 -0
- package/dist/dsl/layers.d.ts.map +1 -0
- package/dist/dsl/layers.js +87 -0
- package/dist/dsl/layers.js.map +1 -0
- package/dist/dsl/motion.d.ts +10 -0
- package/dist/dsl/motion.d.ts.map +1 -0
- package/dist/dsl/motion.js +150 -0
- package/dist/dsl/motion.js.map +1 -0
- package/dist/dsl/render.d.ts +22 -0
- package/dist/dsl/render.d.ts.map +1 -0
- package/dist/dsl/render.js +69 -0
- package/dist/dsl/render.js.map +1 -0
- package/dist/dsl/types.d.ts +555 -0
- package/dist/dsl/types.d.ts.map +1 -0
- package/dist/dsl/types.js +33 -0
- package/dist/dsl/types.js.map +1 -0
- package/dist/dsl.d.ts +13 -154
- package/dist/dsl.d.ts.map +1 -1
- package/dist/dsl.js +12 -658
- package/dist/dsl.js.map +1 -1
- package/dist/easing.d.ts +41 -1
- package/dist/easing.d.ts.map +1 -1
- package/dist/easing.js +105 -2
- package/dist/easing.js.map +1 -1
- package/dist/geometry.d.ts +39 -0
- package/dist/geometry.d.ts.map +1 -1
- package/dist/geometry.js +20 -0
- package/dist/geometry.js.map +1 -1
- package/dist/icons-full.d.ts +5 -0
- package/dist/icons-full.d.ts.map +1 -0
- package/dist/icons-full.js +31 -0
- package/dist/icons-full.js.map +1 -0
- package/dist/icons.d.ts +426 -5
- package/dist/icons.d.ts.map +1 -1
- package/dist/icons.js +144 -15
- package/dist/icons.js.map +1 -1
- package/dist/index.d.ts +95 -23
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -7
- package/dist/index.js.map +1 -1
- package/dist/input.d.ts +177 -0
- package/dist/input.d.ts.map +1 -0
- package/dist/input.js +533 -0
- package/dist/input.js.map +1 -0
- package/dist/layout.d.ts +153 -7
- package/dist/layout.d.ts.map +1 -1
- package/dist/layout.js +221 -34
- package/dist/layout.js.map +1 -1
- package/dist/render.d.ts +33 -1
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +431 -116
- package/dist/render.js.map +1 -1
- package/dist/state.d.ts +156 -3
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +25 -0
- package/dist/state.js.map +1 -1
- package/dist/theme.d.ts +129 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +167 -0
- package/dist/theme.js.map +1 -0
- package/dist/themes/catppuccin-mocha.d.ts +19 -0
- package/dist/themes/catppuccin-mocha.d.ts.map +1 -0
- package/dist/themes/catppuccin-mocha.js +36 -0
- package/dist/themes/catppuccin-mocha.js.map +1 -0
- package/dist/themes/dracula.d.ts +21 -0
- package/dist/themes/dracula.d.ts.map +1 -0
- package/dist/themes/dracula.js +37 -0
- package/dist/themes/dracula.js.map +1 -0
- package/dist/themes/github-light.d.ts +21 -0
- package/dist/themes/github-light.d.ts.map +1 -0
- package/dist/themes/github-light.js +36 -0
- package/dist/themes/github-light.js.map +1 -0
- package/dist/themes/index.d.ts +19 -0
- package/dist/themes/index.d.ts.map +1 -0
- package/dist/themes/index.js +17 -0
- package/dist/themes/index.js.map +1 -0
- package/dist/themes/nord.d.ts +23 -0
- package/dist/themes/nord.d.ts.map +1 -0
- package/dist/themes/nord.js +38 -0
- package/dist/themes/nord.js.map +1 -0
- package/dist/themes/one-dark-pro.d.ts +21 -0
- package/dist/themes/one-dark-pro.d.ts.map +1 -0
- package/dist/themes/one-dark-pro.js +36 -0
- package/dist/themes/one-dark-pro.js.map +1 -0
- package/dist/themes/tokyo-night.d.ts +20 -0
- package/dist/themes/tokyo-night.d.ts.map +1 -0
- package/dist/themes/tokyo-night.js +37 -0
- package/dist/themes/tokyo-night.js.map +1 -0
- package/dist/utils.d.ts +1 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +1 -0
- package/dist/utils.js.map +1 -1
- package/dist/vendor/colors.d.ts +45 -0
- package/dist/vendor/colors.d.ts.map +1 -0
- package/dist/vendor/colors.js +72 -0
- package/dist/vendor/colors.js.map +1 -0
- package/llms.txt +79 -0
- package/package.json +23 -7
- package/dist/data/glyphs.d.ts +0 -5
- package/dist/data/glyphs.d.ts.map +0 -1
- package/dist/data/glyphs.js +0 -29
- package/dist/data/glyphs.js.map +0 -1
package/dist/layout.js
CHANGED
|
@@ -2,10 +2,15 @@
|
|
|
2
2
|
* Bunti Functional Layout & Drawing
|
|
3
3
|
* Strictly functional primitives for buffer manipulation and layout generation.
|
|
4
4
|
*/
|
|
5
|
-
import { resolveColor } from './colors';
|
|
5
|
+
import { fg as fgColor, isThemeColor, resolveColor, resolveColorToRGB, } from './colors';
|
|
6
|
+
import { colorTier } from './detect';
|
|
6
7
|
import { replaceEmojis } from './icons';
|
|
7
8
|
import { charWidth, truncate, visibleWidth, wrapText } from './utils';
|
|
8
9
|
// --- Functional Primitives (Buffer Manipulation) ---
|
|
10
|
+
/**
|
|
11
|
+
* Writes one cell into the back buffer (bounds-checked). Wide glyphs mark
|
|
12
|
+
* their tail cells as skip so the differ keeps columns aligned.
|
|
13
|
+
*/
|
|
9
14
|
export function setCell(state, x, y, cell) {
|
|
10
15
|
if (x >= 0 && x < state.width && y >= 0 && y < state.height) {
|
|
11
16
|
const target = state.backBuffer[y * state.width + x];
|
|
@@ -20,6 +25,10 @@ export function setCell(state, x, y, cell) {
|
|
|
20
25
|
target.fg = undefined;
|
|
21
26
|
target.fgCode = undefined;
|
|
22
27
|
target.bold = false;
|
|
28
|
+
target.italic = false;
|
|
29
|
+
target.underline = false;
|
|
30
|
+
target.dim = false;
|
|
31
|
+
target.strike = false;
|
|
23
32
|
}
|
|
24
33
|
if (cell.fg !== undefined) {
|
|
25
34
|
target.fg = cell.fg;
|
|
@@ -31,6 +40,14 @@ export function setCell(state, x, y, cell) {
|
|
|
31
40
|
}
|
|
32
41
|
if (cell.bold !== undefined)
|
|
33
42
|
target.bold = cell.bold;
|
|
43
|
+
if (cell.italic !== undefined)
|
|
44
|
+
target.italic = cell.italic;
|
|
45
|
+
if (cell.underline !== undefined)
|
|
46
|
+
target.underline = cell.underline;
|
|
47
|
+
if (cell.dim !== undefined)
|
|
48
|
+
target.dim = cell.dim;
|
|
49
|
+
if (cell.strike !== undefined)
|
|
50
|
+
target.strike = cell.strike;
|
|
34
51
|
target.skip = cell.skip ?? false;
|
|
35
52
|
for (let dx = 1; dx < displayWidth; dx++) {
|
|
36
53
|
const skipX = x + dx;
|
|
@@ -43,10 +60,67 @@ export function setCell(state, x, y, cell) {
|
|
|
43
60
|
skip.fgCode = target.fgCode;
|
|
44
61
|
skip.bgCode = target.bgCode;
|
|
45
62
|
skip.bold = target.bold;
|
|
63
|
+
skip.italic = target.italic;
|
|
64
|
+
skip.underline = target.underline;
|
|
65
|
+
skip.dim = target.dim;
|
|
66
|
+
skip.strike = target.strike;
|
|
46
67
|
skip.skip = true;
|
|
47
68
|
}
|
|
48
69
|
}
|
|
49
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Repaints existing back-buffer cells inside `area` at reduced luminance.
|
|
73
|
+
* Each cell's current fg/bg is resolved to exact RGB (numeric ANSI-256 codes
|
|
74
|
+
* via the xterm table) and scaled toward black by `amount` (0 = unchanged,
|
|
75
|
+
* 1 = fully black). Cells with an undefined bg keep their transparent
|
|
76
|
+
* background (fg-only dim); undefined fg is left alone (there is no color to
|
|
77
|
+
* scale). Wide-glyph tail cells (skip) are dimmed too so they stay in sync
|
|
78
|
+
* with their head cell. No-op on the mono tier — there is no color to dim.
|
|
79
|
+
*/
|
|
80
|
+
export function dimRect(state, area, amount) {
|
|
81
|
+
if (colorTier() === 'mono')
|
|
82
|
+
return;
|
|
83
|
+
const t = Math.max(0, Math.min(1, amount));
|
|
84
|
+
if (t === 0)
|
|
85
|
+
return;
|
|
86
|
+
const keep = 1 - t;
|
|
87
|
+
const x0 = Math.max(0, area.x);
|
|
88
|
+
const y0 = Math.max(0, area.y);
|
|
89
|
+
const x1 = Math.min(state.width, area.x + area.width);
|
|
90
|
+
const y1 = Math.min(state.height, area.y + area.height);
|
|
91
|
+
for (let y = y0; y < y1; y++) {
|
|
92
|
+
const rowOffset = y * state.width;
|
|
93
|
+
for (let x = x0; x < x1; x++) {
|
|
94
|
+
const cell = state.backBuffer[rowOffset + x];
|
|
95
|
+
if (cell.fg !== undefined) {
|
|
96
|
+
const rgb = resolveColorToRGB(cell.fg);
|
|
97
|
+
const dimmed = {
|
|
98
|
+
r: Math.round(rgb.r * keep),
|
|
99
|
+
g: Math.round(rgb.g * keep),
|
|
100
|
+
b: Math.round(rgb.b * keep),
|
|
101
|
+
};
|
|
102
|
+
cell.fg = dimmed;
|
|
103
|
+
cell.fgCode = resolveColor(dimmed);
|
|
104
|
+
}
|
|
105
|
+
if (cell.bg !== undefined) {
|
|
106
|
+
const rgb = resolveColorToRGB(cell.bg);
|
|
107
|
+
const dimmed = {
|
|
108
|
+
r: Math.round(rgb.r * keep),
|
|
109
|
+
g: Math.round(rgb.g * keep),
|
|
110
|
+
b: Math.round(rgb.b * keep),
|
|
111
|
+
};
|
|
112
|
+
cell.bg = dimmed;
|
|
113
|
+
cell.bgCode = resolveColor(dimmed);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Fills a w×h cell rectangle at absolute coordinates — bars, panels,
|
|
120
|
+
* charts, backgrounds. Pure-background fills (no `char`) preserve the
|
|
121
|
+
* characters already painted underneath.
|
|
122
|
+
* @example rect(state, 0, 0, state.width, 3, { bg: 'midnight' });
|
|
123
|
+
*/
|
|
50
124
|
export function rect(state, x, y, w, h, style) {
|
|
51
125
|
const isGradient = style.bg && typeof style.bg === 'object' && 'colors' in style.bg;
|
|
52
126
|
for (let dy = 0; dy < h; dy++) {
|
|
@@ -88,6 +162,12 @@ export function rect(state, x, y, w, h, style) {
|
|
|
88
162
|
}
|
|
89
163
|
}
|
|
90
164
|
}
|
|
165
|
+
/**
|
|
166
|
+
* Paints a multi-line, ANSI-styled string into the back buffer at absolute
|
|
167
|
+
* cell coordinates, parsing SGR codes into per-cell attributes. Grapheme-
|
|
168
|
+
* aware: emoji and wide glyphs occupy their real column width.
|
|
169
|
+
* @example blit(state, 2, 1, fg('gold', 'FPS 60'));
|
|
170
|
+
*/
|
|
91
171
|
export function blit(state, startX, startY, content, style = {}) {
|
|
92
172
|
const lines = content.split('\n');
|
|
93
173
|
for (let row = 0; row < lines.length; row++) {
|
|
@@ -95,6 +175,10 @@ export function blit(state, startX, startY, content, style = {}) {
|
|
|
95
175
|
let x = startX;
|
|
96
176
|
let currentFg, currentBg;
|
|
97
177
|
let currentBold = false;
|
|
178
|
+
let currentItalic = false;
|
|
179
|
+
let currentUnderline = false;
|
|
180
|
+
let currentDim = false;
|
|
181
|
+
let currentStrike = false;
|
|
98
182
|
const regex = /\x1B\[([0-9;]*)m|([^\x1B]+)/g;
|
|
99
183
|
let match = null;
|
|
100
184
|
while ((match = regex.exec(line)) !== null) {
|
|
@@ -106,11 +190,32 @@ export function blit(state, startX, startY, content, style = {}) {
|
|
|
106
190
|
currentFg = undefined;
|
|
107
191
|
currentBg = undefined;
|
|
108
192
|
currentBold = false;
|
|
193
|
+
currentItalic = false;
|
|
194
|
+
currentUnderline = false;
|
|
195
|
+
currentDim = false;
|
|
196
|
+
currentStrike = false;
|
|
109
197
|
}
|
|
110
198
|
else if (code === 1)
|
|
111
199
|
currentBold = true;
|
|
112
|
-
else if (code ===
|
|
200
|
+
else if (code === 2)
|
|
201
|
+
currentDim = true;
|
|
202
|
+
else if (code === 3)
|
|
203
|
+
currentItalic = true;
|
|
204
|
+
else if (code === 4)
|
|
205
|
+
currentUnderline = true;
|
|
206
|
+
else if (code === 9)
|
|
207
|
+
currentStrike = true;
|
|
208
|
+
else if (code === 22) {
|
|
209
|
+
// SGR 22 resets intensity: clears BOTH bold and dim.
|
|
113
210
|
currentBold = false;
|
|
211
|
+
currentDim = false;
|
|
212
|
+
}
|
|
213
|
+
else if (code === 23)
|
|
214
|
+
currentItalic = false;
|
|
215
|
+
else if (code === 24)
|
|
216
|
+
currentUnderline = false;
|
|
217
|
+
else if (code === 29)
|
|
218
|
+
currentStrike = false;
|
|
114
219
|
else if (code >= 30 && code <= 37)
|
|
115
220
|
currentFg = (code - 30).toString();
|
|
116
221
|
else if (code >= 40 && code <= 47)
|
|
@@ -172,6 +277,14 @@ export function blit(state, startX, startY, content, style = {}) {
|
|
|
172
277
|
cell.bg = style.bg;
|
|
173
278
|
if (currentBold)
|
|
174
279
|
cell.bold = true;
|
|
280
|
+
if (currentItalic)
|
|
281
|
+
cell.italic = true;
|
|
282
|
+
if (currentUnderline)
|
|
283
|
+
cell.underline = true;
|
|
284
|
+
if (currentDim)
|
|
285
|
+
cell.dim = true;
|
|
286
|
+
if (currentStrike)
|
|
287
|
+
cell.strike = true;
|
|
175
288
|
setCell(state, x, startY + row, cell);
|
|
176
289
|
x += w;
|
|
177
290
|
}
|
|
@@ -218,15 +331,19 @@ export function resolveSize(unit, parentDim, contentDim) {
|
|
|
218
331
|
return contentDim;
|
|
219
332
|
}
|
|
220
333
|
/**
|
|
221
|
-
*
|
|
334
|
+
* Measures a box without rendering it: resolves outer/inner dimensions,
|
|
335
|
+
* wraps/truncates the content lines, and exposes the per-line placement
|
|
336
|
+
* (alignment + valign) the renderer will use. Pass the result back to
|
|
337
|
+
* box() to render without re-measuring.
|
|
222
338
|
*/
|
|
223
|
-
export function
|
|
339
|
+
export function measureBox(content, options = {}, parentW, parentH) {
|
|
224
340
|
// Ensure we operate on the swapped glyphs for all layout math
|
|
225
341
|
content = replaceEmojis(content);
|
|
226
342
|
const px = options.padding?.[1] ?? 0;
|
|
227
343
|
const py = options.padding?.[0] ?? 0;
|
|
228
344
|
const borderStyle = options.border || 'none';
|
|
229
345
|
const borderOffset = borderStyle === 'none' ? 0 : 2;
|
|
346
|
+
const borderInset = borderOffset / 2;
|
|
230
347
|
const rawLines = content.split('\n');
|
|
231
348
|
const maxRawW = Math.max(...rawLines.map((l) => visibleWidth(l)), 0);
|
|
232
349
|
const intrinsicW = maxRawW + px * 2 + borderOffset;
|
|
@@ -253,12 +370,73 @@ export function box(content, options = {}, parentW, parentH) {
|
|
|
253
370
|
finalInnerH = Math.max(finalInnerH, options.minHeight - borderOffset);
|
|
254
371
|
if (options.maxHeight)
|
|
255
372
|
finalInnerH = Math.min(finalInnerH, options.maxHeight - borderOffset);
|
|
373
|
+
const vSpace = Math.max(0, finalInnerH - lines.length - py * 2);
|
|
374
|
+
let topSpace = 0;
|
|
375
|
+
let bottomSpace = vSpace;
|
|
376
|
+
if (options.valign === 'middle') {
|
|
377
|
+
topSpace = Math.floor(vSpace / 2);
|
|
378
|
+
bottomSpace = Math.ceil(vSpace / 2);
|
|
379
|
+
}
|
|
380
|
+
else if (options.valign === 'bottom') {
|
|
381
|
+
topSpace = vSpace;
|
|
382
|
+
bottomSpace = 0;
|
|
383
|
+
}
|
|
384
|
+
const align = options.align || 'left';
|
|
385
|
+
return {
|
|
386
|
+
lines,
|
|
387
|
+
borderInset,
|
|
388
|
+
px,
|
|
389
|
+
py,
|
|
390
|
+
innerW: targetInnerW,
|
|
391
|
+
innerH: finalInnerH,
|
|
392
|
+
topSpace,
|
|
393
|
+
bottomSpace,
|
|
394
|
+
width: targetInnerW + borderOffset,
|
|
395
|
+
// Content lines are never clipped to a too-small fixed height, so the
|
|
396
|
+
// rendered string can exceed finalInnerH — mirror that here.
|
|
397
|
+
height: borderOffset + py * 2 + topSpace + bottomSpace + lines.length,
|
|
398
|
+
contentLeft(k) {
|
|
399
|
+
const line = (lines[k] ?? '').trimEnd();
|
|
400
|
+
const extra = Math.max(0, targetInnerW - visibleWidth(line) - px * 2);
|
|
401
|
+
const left = align === 'center'
|
|
402
|
+
? px + Math.floor(extra / 2)
|
|
403
|
+
: align === 'right'
|
|
404
|
+
? px + extra
|
|
405
|
+
: px;
|
|
406
|
+
return borderInset + left;
|
|
407
|
+
},
|
|
408
|
+
contentTop(k) {
|
|
409
|
+
return borderInset + py + topSpace + k;
|
|
410
|
+
},
|
|
411
|
+
};
|
|
412
|
+
}
|
|
413
|
+
/**
|
|
414
|
+
* Generates a styled box string with perfect alignment and optional
|
|
415
|
+
* wrapping. This is the pure string-building form; ctx.box() adds
|
|
416
|
+
* placement and painting on top of it. Pass a precomputed `measure`
|
|
417
|
+
* (from measureBox with the SAME content/options) to skip re-measuring.
|
|
418
|
+
* @example box('hello', { width: 20, border: 'rounded', padding: [0, 1] });
|
|
419
|
+
*/
|
|
420
|
+
export function box(content, options = {}, parentW, parentH, measure) {
|
|
421
|
+
const m = measure ?? measureBox(content, options, parentW, parentH);
|
|
422
|
+
const px = m.px;
|
|
423
|
+
const py = m.py;
|
|
424
|
+
const borderStyle = options.border || 'none';
|
|
425
|
+
const lines = m.lines;
|
|
426
|
+
const targetInnerW = m.innerW;
|
|
427
|
+
const topS = m.topSpace;
|
|
428
|
+
const bottomS = m.bottomSpace;
|
|
256
429
|
const b = borderStyle === 'none'
|
|
257
430
|
? null
|
|
258
431
|
: BORDERS[borderStyle] || BORDERS.default;
|
|
259
432
|
// Color Resolution
|
|
260
|
-
|
|
261
|
-
|
|
433
|
+
// ThemeColors are callable, so they must be detected BEFORE the
|
|
434
|
+
// function-style border-wrapper path (brand check via isThemeColor).
|
|
435
|
+
const resolveSide = (color) => isThemeColor(color)
|
|
436
|
+
? (s) => fgColor(color.rgb, s)
|
|
437
|
+
: typeof color === 'function'
|
|
438
|
+
? color
|
|
439
|
+
: (s) => fgColor(color, s);
|
|
262
440
|
const wrapBg = (s) => {
|
|
263
441
|
if (!options.bgColor)
|
|
264
442
|
return s;
|
|
@@ -267,12 +445,12 @@ export function box(content, options = {}, parentW, parentH) {
|
|
|
267
445
|
// In string-building mode, we must ignore gradients. They are handled in absolute rect mode.
|
|
268
446
|
return s;
|
|
269
447
|
}
|
|
270
|
-
const { resolveColor } = require('./colors');
|
|
271
448
|
const code = resolveColor(options.bgColor);
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
const
|
|
449
|
+
if (code === undefined)
|
|
450
|
+
return s; // mono tier: no color output
|
|
451
|
+
const codeStr = String(code);
|
|
452
|
+
const prefix = codeStr.startsWith('2;') ? '48' : '48;5';
|
|
453
|
+
const bgOn = `\x1b[${prefix};${codeStr}m`;
|
|
276
454
|
// Apply bg, and if the string contains resets, re-apply the bg right after the reset.
|
|
277
455
|
// We add a final reset at the very end to clean up.
|
|
278
456
|
return `${bgOn + s.replace(/\x1b\[0m/g, `\x1b[0m${bgOn}`)}\x1b[0m`;
|
|
@@ -299,16 +477,6 @@ export function box(content, options = {}, parentW, parentH) {
|
|
|
299
477
|
const hBottom = b?.bottom || b?.h || ' ';
|
|
300
478
|
const vLeft = b?.left || b?.v || ' ';
|
|
301
479
|
const vRight = b?.right || b?.v || ' ';
|
|
302
|
-
const vSpace = Math.max(0, finalInnerH - lines.length - py * 2);
|
|
303
|
-
let topS = 0, bottomS = vSpace;
|
|
304
|
-
if (options.valign === 'middle') {
|
|
305
|
-
topS = Math.floor(vSpace / 2);
|
|
306
|
-
bottomS = Math.ceil(vSpace / 2);
|
|
307
|
-
}
|
|
308
|
-
else if (options.valign === 'bottom') {
|
|
309
|
-
topS = vSpace;
|
|
310
|
-
bottomS = 0;
|
|
311
|
-
}
|
|
312
480
|
const out = [];
|
|
313
481
|
// Top Border
|
|
314
482
|
if (b) {
|
|
@@ -374,6 +542,7 @@ export function box(content, options = {}, parentW, parentH) {
|
|
|
374
542
|
}
|
|
375
543
|
return out.join('\n');
|
|
376
544
|
}
|
|
545
|
+
/** Joins rendered blocks side-by-side, padding each to its own width. */
|
|
377
546
|
export function joinHorizontal(...blocks) {
|
|
378
547
|
const parsed = blocks.map((b) => b.split('\n'));
|
|
379
548
|
const maxH = Math.max(...parsed.map((p) => p.length));
|
|
@@ -397,14 +566,17 @@ export function joinHorizontal(...blocks) {
|
|
|
397
566
|
}
|
|
398
567
|
return out.join('\n');
|
|
399
568
|
}
|
|
569
|
+
/** Stacks rendered blocks vertically (skips empty strings). */
|
|
400
570
|
export function joinVertical(...blocks) {
|
|
401
571
|
return blocks.filter(Boolean).join('\n');
|
|
402
572
|
}
|
|
573
|
+
/** Returns a box() partially applied with default StyleOptions. */
|
|
403
574
|
export function createStyle(defaults) {
|
|
404
575
|
return (content, overrides = {}) => {
|
|
405
576
|
return box(content, { ...defaults, ...overrides });
|
|
406
577
|
};
|
|
407
578
|
}
|
|
579
|
+
/** Uppercased ` TEXT ` chip, wrapped by the given styler. */
|
|
408
580
|
export function badge(text, colorFn = (s) => s) {
|
|
409
581
|
return colorFn(` ${text.toUpperCase()} `);
|
|
410
582
|
}
|
|
@@ -448,6 +620,10 @@ export function table(rows, options = {}, parentW) {
|
|
|
448
620
|
align: 'left',
|
|
449
621
|
});
|
|
450
622
|
}
|
|
623
|
+
/**
|
|
624
|
+
* Computes the scroll window that keeps `selectedIndex` visible in
|
|
625
|
+
* `maxVisible` rows (used by list windowing).
|
|
626
|
+
*/
|
|
451
627
|
export function getWindow(items, selectedIndex, maxVisible) {
|
|
452
628
|
const start = Math.max(0, Math.min(selectedIndex - Math.floor(maxVisible / 2), items.length - maxVisible));
|
|
453
629
|
const visible = items.slice(start, start + maxVisible);
|
|
@@ -458,22 +634,27 @@ export function getWindow(items, selectedIndex, maxVisible) {
|
|
|
458
634
|
hasMoreBelow: start + maxVisible < items.length,
|
|
459
635
|
};
|
|
460
636
|
}
|
|
637
|
+
/**
|
|
638
|
+
* Renders items as list rows with selection/hover washes and optional
|
|
639
|
+
* maxVisible windowing. Pure string form; ctx.list() adds the keyboard
|
|
640
|
+
* and mouse behavior on top.
|
|
641
|
+
*/
|
|
461
642
|
export function list(items, options = {}, parentW) {
|
|
462
643
|
const bullet = options.bullet || '';
|
|
463
644
|
const indent = ' '.repeat(options.indent || 0);
|
|
464
645
|
const resolvedW = resolveSize(options.width, parentW || 0, 0);
|
|
465
|
-
const
|
|
466
|
-
|
|
467
|
-
if (
|
|
468
|
-
return line;
|
|
469
|
-
const code = resolveColor(options.selectedBg);
|
|
646
|
+
const wrapLineBg = (line, bg) => {
|
|
647
|
+
const code = resolveColor(bg);
|
|
648
|
+
if (code === undefined)
|
|
649
|
+
return line; // mono tier: no color output
|
|
470
650
|
const codeStr = String(code);
|
|
471
|
-
const prefix =
|
|
472
|
-
? '48'
|
|
473
|
-
: '48;5';
|
|
651
|
+
const prefix = codeStr.startsWith('2;') ? '48' : '48;5';
|
|
474
652
|
const bgOn = `\x1b[${prefix};${codeStr}m`;
|
|
475
653
|
return `${bgOn + line.replace(/\x1b\[0m/g, `\x1b[0m${bgOn}`)}\x1b[0m`;
|
|
476
654
|
};
|
|
655
|
+
const padToWidth = (line) => resolvedW > 0
|
|
656
|
+
? line + ' '.repeat(Math.max(0, resolvedW - visibleWidth(line)))
|
|
657
|
+
: line;
|
|
477
658
|
let targetItems = items, offset = 0, hasMoreAbove = false, hasMoreBelow = false;
|
|
478
659
|
if (options.maxVisible && items.length > options.maxVisible) {
|
|
479
660
|
const win = getWindow(items, options.focusedIndex || 0, options.maxVisible);
|
|
@@ -490,11 +671,11 @@ export function list(items, options = {}, parentW) {
|
|
|
490
671
|
const styledLine = options.focusStyle ? options.focusStyle(line) : line;
|
|
491
672
|
if (!options.selectedBg)
|
|
492
673
|
return styledLine;
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
return
|
|
674
|
+
return wrapLineBg(padToWidth(styledLine), options.selectedBg);
|
|
675
|
+
}
|
|
676
|
+
// Hover wash (selection wins: checked above).
|
|
677
|
+
if (options.hoveredIndex === actualIdx && options.hoverBg) {
|
|
678
|
+
return wrapLineBg(padToWidth(line), options.hoverBg);
|
|
498
679
|
}
|
|
499
680
|
return line;
|
|
500
681
|
})
|
|
@@ -506,6 +687,10 @@ export function list(items, options = {}, parentW) {
|
|
|
506
687
|
out = `${out}\n${indent} ↓ more…`;
|
|
507
688
|
return out;
|
|
508
689
|
}
|
|
690
|
+
/**
|
|
691
|
+
* Crops a multi-line string to a width×height window starting at
|
|
692
|
+
* `scrollY` — the primitive for scrollable content.
|
|
693
|
+
*/
|
|
509
694
|
export function viewport(content, width, height, scrollY = 0) {
|
|
510
695
|
const lines = content.split('\n');
|
|
511
696
|
const visibleLines = lines.slice(scrollY, scrollY + height);
|
|
@@ -515,10 +700,12 @@ export function viewport(content, width, height, scrollY = 0) {
|
|
|
515
700
|
})
|
|
516
701
|
.join('\n');
|
|
517
702
|
}
|
|
703
|
+
/** Fills the whole screen background with a solid color. */
|
|
518
704
|
export function wallpaper(state, options) {
|
|
519
705
|
const { bg } = options;
|
|
520
706
|
rect(state, 0, 0, state.width, state.height, { char: ' ', bg });
|
|
521
707
|
}
|
|
708
|
+
/** Fills the whole screen background with a multi-stop gradient. */
|
|
522
709
|
export function gradient(state, colors, options = {}) {
|
|
523
710
|
const { direction = 'vertical' } = options;
|
|
524
711
|
rect(state, 0, 0, state.width, state.height, {
|
package/dist/layout.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"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"}
|
package/dist/render.d.ts
CHANGED
|
@@ -2,16 +2,48 @@
|
|
|
2
2
|
* Bunti Functional Rendering & Diffing
|
|
3
3
|
*/
|
|
4
4
|
import { type ScreenState } from './state';
|
|
5
|
+
/**
|
|
6
|
+
* Emits the restorative ANSI sequence for a screen (mouse/focus tracking off,
|
|
7
|
+
* reset, clear, back to main buffer, cursor visible) and disables raw mode.
|
|
8
|
+
* Idempotent: safe to call any number of times per loop session.
|
|
9
|
+
*/
|
|
10
|
+
export declare function restoreTerminal(state: ScreenState): void;
|
|
5
11
|
export declare function syncScreenSize(state: ScreenState): boolean;
|
|
6
12
|
export declare function isResizeSettled(state: ScreenState, now?: number): boolean;
|
|
7
13
|
export declare function clearTerminalForResize(state: ScreenState): void;
|
|
8
14
|
/**
|
|
9
|
-
*
|
|
15
|
+
* OSC 22 pointer cursor: emits the 'pointer' shape when any hitbox
|
|
16
|
+
* registered this frame is under the mouse, and resets to 'default' on the
|
|
17
|
+
* hover-off edge. Emission is edge-triggered (once per state change, never
|
|
18
|
+
* per frame). Gated off for Apple Terminal, which does not understand
|
|
19
|
+
* OSC 22; everywhere else an unsupported sequence is harmlessly ignored.
|
|
20
|
+
*/
|
|
21
|
+
export declare function updatePointerShape(state: ScreenState): void;
|
|
22
|
+
/**
|
|
23
|
+
* Diffs back and front buffers and assembles the ANSI update string.
|
|
24
|
+
* Mutates the front buffer and the state's SGR trackers exactly like a real
|
|
25
|
+
* flush, but performs no I/O — flush() writes the result, tests assert on it.
|
|
26
|
+
*/
|
|
27
|
+
export declare function renderFrame(state: ScreenState): string;
|
|
28
|
+
/**
|
|
29
|
+
* Diffs back and front buffers surgically and writes the update to stdout.
|
|
10
30
|
*/
|
|
11
31
|
export declare function flush(state: ScreenState): void;
|
|
12
32
|
/**
|
|
13
33
|
* Starts the render loop for a given screen state.
|
|
14
34
|
*/
|
|
15
35
|
export declare function loop(state: ScreenState, renderCallback: (s: ScreenState) => void): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Feeds a raw stdin chunk through the screen's stateful tokenizer and
|
|
38
|
+
* dispatches the resulting tokens. Partial escape sequences are carried
|
|
39
|
+
* across calls; a bare ESC flushes as 'escape' via the tokenizer timer.
|
|
40
|
+
*/
|
|
16
41
|
export declare function applyInputToState(state: ScreenState, data: unknown, stop?: () => void): void;
|
|
42
|
+
/**
|
|
43
|
+
* Moves queued KeyEvents into this frame's `state.keys`, appends synthetic
|
|
44
|
+
* held-key releases, and recomputes the legacy `state.lastKey` slot (first
|
|
45
|
+
* unmodified press/repeat of the frame). Runs once per render tick, before
|
|
46
|
+
* the render callback.
|
|
47
|
+
*/
|
|
48
|
+
export declare function drainFrameInput(state: ScreenState): void;
|
|
17
49
|
//# sourceMappingURL=render.d.ts.map
|
package/dist/render.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAS/D;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,QA+BjD;AAsDD,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,WAQhD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,SAAa,WAEnE;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,QASxD;AAwBD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,QAyBpD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAkJtD;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,WAAW,QAiBvC;AAED;;GAEG;AACH,wBAAgB,IAAI,CAClB,KAAK,EAAE,WAAW,EAClB,cAAc,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,GACvC,OAAO,CAAC,IAAI,CAAC,CAuKf;AA2HD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,OAAO,EACb,IAAI,CAAC,EAAE,MAAM,IAAI,QAUlB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,QAsBjD"}
|