@flyingrobots/bijou-tui 3.1.0 → 4.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.
Files changed (112) hide show
  1. package/LICENSE +159 -21
  2. package/README.md +181 -32
  3. package/dist/app-frame-actions.d.ts.map +1 -1
  4. package/dist/app-frame-actions.js +4 -5
  5. package/dist/app-frame-actions.js.map +1 -1
  6. package/dist/app-frame-render.d.ts +17 -11
  7. package/dist/app-frame-render.d.ts.map +1 -1
  8. package/dist/app-frame-render.js +100 -99
  9. package/dist/app-frame-render.js.map +1 -1
  10. package/dist/app-frame-types.d.ts +1 -1
  11. package/dist/app-frame-types.d.ts.map +1 -1
  12. package/dist/app-frame.d.ts +3 -1
  13. package/dist/app-frame.d.ts.map +1 -1
  14. package/dist/app-frame.js +89 -61
  15. package/dist/app-frame.js.map +1 -1
  16. package/dist/browsable-list.d.ts +20 -1
  17. package/dist/browsable-list.d.ts.map +1 -1
  18. package/dist/browsable-list.js +38 -10
  19. package/dist/browsable-list.js.map +1 -1
  20. package/dist/command-palette.d.ts +17 -1
  21. package/dist/command-palette.d.ts.map +1 -1
  22. package/dist/command-palette.js +45 -20
  23. package/dist/command-palette.js.map +1 -1
  24. package/dist/css/text-style.d.ts +2 -1
  25. package/dist/css/text-style.d.ts.map +1 -1
  26. package/dist/css/text-style.js +33 -0
  27. package/dist/css/text-style.js.map +1 -1
  28. package/dist/design-language.d.ts +49 -0
  29. package/dist/design-language.d.ts.map +1 -0
  30. package/dist/design-language.js +70 -0
  31. package/dist/design-language.js.map +1 -0
  32. package/dist/driver.d.ts +6 -1
  33. package/dist/driver.d.ts.map +1 -1
  34. package/dist/driver.js +3 -0
  35. package/dist/driver.js.map +1 -1
  36. package/dist/file-picker.d.ts +19 -1
  37. package/dist/file-picker.d.ts.map +1 -1
  38. package/dist/file-picker.js +47 -20
  39. package/dist/file-picker.js.map +1 -1
  40. package/dist/flex.d.ts +35 -1
  41. package/dist/flex.d.ts.map +1 -1
  42. package/dist/flex.js +127 -1
  43. package/dist/flex.js.map +1 -1
  44. package/dist/focus-area.d.ts +13 -1
  45. package/dist/focus-area.d.ts.map +1 -1
  46. package/dist/focus-area.js +89 -12
  47. package/dist/focus-area.js.map +1 -1
  48. package/dist/grid.d.ts +10 -0
  49. package/dist/grid.d.ts.map +1 -1
  50. package/dist/grid.js +25 -0
  51. package/dist/grid.js.map +1 -1
  52. package/dist/help.d.ts +41 -0
  53. package/dist/help.d.ts.map +1 -1
  54. package/dist/help.js +50 -0
  55. package/dist/help.js.map +1 -1
  56. package/dist/index.d.ts +17 -16
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +17 -15
  59. package/dist/index.js.map +1 -1
  60. package/dist/layout-node-surface.d.ts +9 -0
  61. package/dist/layout-node-surface.d.ts.map +1 -0
  62. package/dist/layout-node-surface.js +42 -0
  63. package/dist/layout-node-surface.js.map +1 -0
  64. package/dist/navigable-table.d.ts +16 -1
  65. package/dist/navigable-table.d.ts.map +1 -1
  66. package/dist/navigable-table.js +32 -1
  67. package/dist/navigable-table.js.map +1 -1
  68. package/dist/notification.d.ts +16 -0
  69. package/dist/notification.d.ts.map +1 -1
  70. package/dist/notification.js +163 -35
  71. package/dist/notification.js.map +1 -1
  72. package/dist/overlay.d.ts +21 -8
  73. package/dist/overlay.d.ts.map +1 -1
  74. package/dist/overlay.js +236 -138
  75. package/dist/overlay.js.map +1 -1
  76. package/dist/pager.d.ts +16 -0
  77. package/dist/pager.d.ts.map +1 -1
  78. package/dist/pager.js +61 -1
  79. package/dist/pager.js.map +1 -1
  80. package/dist/runtime.d.ts.map +1 -1
  81. package/dist/runtime.js +6 -12
  82. package/dist/runtime.js.map +1 -1
  83. package/dist/split-pane.d.ts +12 -1
  84. package/dist/split-pane.d.ts.map +1 -1
  85. package/dist/split-pane.js +31 -1
  86. package/dist/split-pane.js.map +1 -1
  87. package/dist/status-bar.d.ts +12 -0
  88. package/dist/status-bar.d.ts.map +1 -1
  89. package/dist/status-bar.js +45 -16
  90. package/dist/status-bar.js.map +1 -1
  91. package/dist/surface-layout.d.ts +19 -0
  92. package/dist/surface-layout.d.ts.map +1 -0
  93. package/dist/surface-layout.js +87 -0
  94. package/dist/surface-layout.js.map +1 -0
  95. package/dist/transition-shaders.d.ts +10 -8
  96. package/dist/transition-shaders.d.ts.map +1 -1
  97. package/dist/transition-shaders.js +65 -19
  98. package/dist/transition-shaders.js.map +1 -1
  99. package/dist/types.d.ts +2 -2
  100. package/dist/view-output.d.ts +4 -4
  101. package/dist/view-output.d.ts.map +1 -1
  102. package/dist/view-output.js +24 -26
  103. package/dist/view-output.js.map +1 -1
  104. package/dist/viewport.d.ts +30 -1
  105. package/dist/viewport.d.ts.map +1 -1
  106. package/dist/viewport.js +77 -1
  107. package/dist/viewport.js.map +1 -1
  108. package/package.json +3 -3
  109. package/dist/layout-v3.d.ts +0 -10
  110. package/dist/layout-v3.d.ts.map +0 -1
  111. package/dist/layout-v3.js +0 -35
  112. package/dist/layout-v3.js.map +0 -1
package/dist/overlay.js CHANGED
@@ -2,12 +2,14 @@
2
2
  * Overlay compositing primitives for TUI apps.
3
3
  *
4
4
  * - `composite()` — paint overlays onto a background string (ANSI-safe)
5
+ * - `compositeSurface()` — paint overlays onto a background surface
5
6
  * - `modal()` — centered dialog overlay with title, body, hint
6
7
  * - `toast()` — anchored notification overlay with variant icons
7
8
  * - `tooltip()` — positioned overlay relative to a target element
8
9
  */
9
- import { makeBgFill } from '@flyingrobots/bijou';
10
+ import { createSurface, graphemeClusterWidth, parseAnsiToSurface, segmentGraphemes, shouldApplyBg, stripAnsi, surfaceToString, } from '@flyingrobots/bijou';
10
11
  import { sliceAnsi, visibleLength, clipToWidth } from './viewport.js';
12
+ import { clampCenteredPosition, resolveOverlayMargin } from './design-language.js';
11
13
  // ---------------------------------------------------------------------------
12
14
  // Border characters (same as core box.ts)
13
15
  // ---------------------------------------------------------------------------
@@ -78,30 +80,157 @@ export function composite(background, overlays, options) {
78
80
  }
79
81
  return bgLines.join('\n');
80
82
  }
81
- // ---------------------------------------------------------------------------
82
- // renderBox (shared between modal and toast)
83
- // ---------------------------------------------------------------------------
84
83
  /**
85
- * Render lines inside a unicode box border.
84
+ * Paint one or more overlays onto a background surface.
86
85
  *
87
- * Compute inner width from the widest line, then wrap all lines
88
- * with vertical borders and pad to uniform width.
89
- *
90
- * @param lines - Content lines to place inside the box.
91
- * @param borderColor - Function to apply border styling (identity for unstyled).
92
- * @param bgFill - Optional function to wrap interior content with background color styling.
93
- * @returns Box string with top/bottom borders and bordered content lines.
86
+ * Overlays are applied in array order, with later overlays painting over
87
+ * earlier ones. String-only overlays are normalized through an explicit
88
+ * ANSI-to-surface bridge at the composition edge.
94
89
  */
95
- function renderBox(lines, borderColor, bgFill) {
96
- const innerWidth = lines.reduce((max, l) => Math.max(max, visibleLength(l)), 0);
97
- const top = borderColor(BORDER.tl + BORDER.h.repeat(innerWidth + 2) + BORDER.tr);
98
- const bottom = borderColor(BORDER.bl + BORDER.h.repeat(innerWidth + 2) + BORDER.br);
99
- const fill = bgFill ?? ((s) => s);
100
- const body = lines.map((l) => {
101
- const pad = innerWidth - visibleLength(l);
102
- return borderColor(BORDER.v) + fill(' ' + l + ' '.repeat(pad) + ' ') + borderColor(BORDER.v);
103
- });
104
- return [top, ...body, bottom].join('\n');
90
+ export function compositeSurface(background, overlays, options) {
91
+ const result = background.clone();
92
+ if (options?.dim) {
93
+ for (let y = 0; y < result.height; y++) {
94
+ for (let x = 0; x < result.width; x++) {
95
+ const cell = result.get(x, y);
96
+ if (cell.empty || cell.char === ' ')
97
+ continue;
98
+ const modifiers = new Set(cell.modifiers ?? []);
99
+ modifiers.add('dim');
100
+ result.set(x, y, { ...cell, modifiers: Array.from(modifiers), empty: false });
101
+ }
102
+ }
103
+ }
104
+ for (const overlay of overlays) {
105
+ result.blit(overlay.surface ?? surfaceFromContent(overlay.content), overlay.col, overlay.row);
106
+ }
107
+ return result;
108
+ }
109
+ function styleFromToken(token, ctx) {
110
+ if (!ctx || token == null)
111
+ return {};
112
+ return {
113
+ fg: token.hex,
114
+ bg: token.bg,
115
+ modifiers: token.modifiers ? [...token.modifiers] : undefined,
116
+ };
117
+ }
118
+ function backgroundStyleFromToken(token, ctx) {
119
+ if (!ctx || !shouldApplyBg(ctx) || !token?.bg)
120
+ return {};
121
+ return { bg: token.bg };
122
+ }
123
+ function mergeStyles(base, extra) {
124
+ const modifiers = [...(base.modifiers ?? []), ...(extra.modifiers ?? [])];
125
+ return {
126
+ fg: extra.fg ?? base.fg,
127
+ bg: extra.bg ?? base.bg,
128
+ modifiers: modifiers.length > 0 ? Array.from(new Set(modifiers)) : undefined,
129
+ };
130
+ }
131
+ function plainSurfaceToString(surface) {
132
+ const lines = [];
133
+ for (let y = 0; y < surface.height; y++) {
134
+ let line = '';
135
+ for (let x = 0; x < surface.width; x++) {
136
+ line += surface.get(x, y).char;
137
+ }
138
+ lines.push(line);
139
+ }
140
+ return lines.join('\n');
141
+ }
142
+ function overlayContentFromSurface(surface, ctx) {
143
+ return ctx ? surfaceToString(surface, ctx.style) : plainSurfaceToString(surface);
144
+ }
145
+ function setStyledCell(surface, x, y, char, style) {
146
+ surface.set(x, y, { char, ...style, empty: false });
147
+ }
148
+ function setStyledGrapheme(surface, x, y, char, style) {
149
+ if (x >= surface.width)
150
+ return 0;
151
+ const width = Math.max(1, graphemeClusterWidth(char));
152
+ setStyledCell(surface, x, y, char, style);
153
+ for (let offset = 1; offset < width && x + offset < surface.width; offset++) {
154
+ setStyledCell(surface, x + offset, y, '', style);
155
+ }
156
+ return width;
157
+ }
158
+ function lineSurface(text, style = {}) {
159
+ if (text.length === 0)
160
+ return createSurface(0, 1);
161
+ const plain = stripAnsi(text);
162
+ const width = Math.max(0, visibleLength(text));
163
+ if (width === 0)
164
+ return createSurface(0, 1);
165
+ if (plain !== text && style.fg == null && style.bg == null && style.modifiers == null) {
166
+ return parseAnsiToSurface(text, width, 1);
167
+ }
168
+ const graphemes = segmentGraphemes(plain);
169
+ const surface = createSurface(width, 1);
170
+ let x = 0;
171
+ for (const grapheme of graphemes) {
172
+ if (x >= width)
173
+ break;
174
+ x += setStyledGrapheme(surface, x, 0, grapheme, style);
175
+ }
176
+ return surface;
177
+ }
178
+ function lineWithInheritedBackground(line, bg) {
179
+ if (bg == null || line.width === 0)
180
+ return line;
181
+ const result = line.clone();
182
+ for (let x = 0; x < result.width; x++) {
183
+ const cell = result.get(x, 0);
184
+ if (cell.empty)
185
+ continue;
186
+ result.set(x, 0, { ...cell, bg: cell.bg ?? bg, empty: false });
187
+ }
188
+ return result;
189
+ }
190
+ function surfaceRows(surface, maxWidth) {
191
+ const width = maxWidth != null ? Math.max(0, Math.min(surface.width, maxWidth)) : surface.width;
192
+ if (surface.height <= 0)
193
+ return [createSurface(width, 1)];
194
+ const rows = [];
195
+ for (let y = 0; y < surface.height; y++) {
196
+ const row = createSurface(width, 1);
197
+ if (width > 0)
198
+ row.blit(surface, 0, 0, 0, y, width, 1);
199
+ rows.push(row);
200
+ }
201
+ return rows;
202
+ }
203
+ function contentLines(content, maxWidth) {
204
+ if (typeof content === 'string') {
205
+ return content.split('\n').map((line) => lineSurface(maxWidth != null ? clipToWidth(line, maxWidth) : line));
206
+ }
207
+ return surfaceRows(content, maxWidth);
208
+ }
209
+ function renderBoxSurface(lines, borderStyle, fillStyle, innerWidthOverride) {
210
+ const innerWidth = innerWidthOverride ?? lines.reduce((max, line) => Math.max(max, line.width), 0);
211
+ const width = innerWidth + 4;
212
+ const height = lines.length + 2;
213
+ const surface = createSurface(width, height);
214
+ setStyledCell(surface, 0, 0, BORDER.tl, borderStyle);
215
+ for (let x = 1; x < width - 1; x++)
216
+ setStyledCell(surface, x, 0, BORDER.h, borderStyle);
217
+ setStyledCell(surface, width - 1, 0, BORDER.tr, borderStyle);
218
+ setStyledCell(surface, 0, height - 1, BORDER.bl, borderStyle);
219
+ for (let x = 1; x < width - 1; x++)
220
+ setStyledCell(surface, x, height - 1, BORDER.h, borderStyle);
221
+ setStyledCell(surface, width - 1, height - 1, BORDER.br, borderStyle);
222
+ for (let i = 0; i < lines.length; i++) {
223
+ const y = i + 1;
224
+ setStyledCell(surface, 0, y, BORDER.v, borderStyle);
225
+ for (let x = 1; x < width - 1; x++)
226
+ setStyledCell(surface, x, y, ' ', fillStyle);
227
+ setStyledCell(surface, width - 1, y, BORDER.v, borderStyle);
228
+ const line = lineWithInheritedBackground(lines[i], fillStyle.bg);
229
+ if (line.width > 0 && innerWidth > 0) {
230
+ surface.blit(line, 2, y, 0, 0, Math.min(line.width, innerWidth), 1);
231
+ }
232
+ }
233
+ return surface;
105
234
  }
106
235
  // ---------------------------------------------------------------------------
107
236
  // modal()
@@ -117,41 +246,25 @@ function renderBox(lines, borderColor, bgFill) {
117
246
  */
118
247
  export function modal(options) {
119
248
  const { title, body, hint, screenWidth, screenHeight, ctx } = options;
120
- const contentLines = [];
249
+ const lines = [];
121
250
  if (title != null) {
122
- const titleText = ctx ? ctx.style.bold(title) : title;
123
- contentLines.push(titleText, '');
251
+ lines.push(lineSurface(title, ctx ? { modifiers: ['bold'] } : {}), createSurface(0, 1));
124
252
  }
125
- contentLines.push(...body.split('\n'));
253
+ lines.push(...contentLines(body));
126
254
  if (hint != null) {
127
- contentLines.push('');
128
- const hintText = ctx
129
- ? ctx.style.styled(ctx.semantic('muted'), hint)
130
- : hint;
131
- contentLines.push(hintText);
132
- }
133
- // If width override, constrain inner width
134
- if (options.width != null) {
135
- const targetInner = options.width - 4; // border + padding
136
- // Pad short lines, but don't truncate (user controls width)
137
- for (let i = 0; i < contentLines.length; i++) {
138
- const vis = visibleLength(contentLines[i]);
139
- if (vis < targetInner) {
140
- contentLines[i] = contentLines[i] + ' '.repeat(targetInner - vis);
141
- }
255
+ lines.push(createSurface(0, 1));
256
+ if (typeof hint === 'string') {
257
+ lines.push(lineSurface(hint, styleFromToken(ctx?.semantic('muted'), ctx)));
258
+ }
259
+ else {
260
+ lines.push(...surfaceRows(hint));
142
261
  }
143
262
  }
144
- const borderColor = ctx && options.borderToken
145
- ? (s) => ctx.style.styled(options.borderToken, s)
146
- : (s) => s;
147
- const bgFill = makeBgFill(options.bgToken, ctx);
148
- const boxStr = renderBox(contentLines, borderColor, bgFill);
149
- const boxLines = boxStr.split('\n');
150
- const boxHeight = boxLines.length;
151
- const boxWidth = visibleLength(boxLines[0]);
152
- const row = Math.max(0, Math.floor((screenHeight - boxHeight) / 2));
153
- const col = Math.max(0, Math.floor((screenWidth - boxWidth) / 2));
154
- return { content: boxStr, row, col };
263
+ const surface = renderBoxSurface(lines, styleFromToken(options.borderToken, ctx), backgroundStyleFromToken(options.bgToken, ctx), options.width != null ? Math.max(0, options.width - 4) : undefined);
264
+ const margin = resolveOverlayMargin(screenWidth, screenHeight, options.margin);
265
+ const row = clampCenteredPosition(screenHeight, surface.height, margin);
266
+ const col = clampCenteredPosition(screenWidth, surface.width, margin);
267
+ return { content: overlayContentFromSurface(surface, ctx), surface, row, col };
155
268
  }
156
269
  // ---------------------------------------------------------------------------
157
270
  // toast()
@@ -178,44 +291,34 @@ const TOAST_BORDER = {
178
291
  * @returns Overlay positioned at the specified screen corner.
179
292
  */
180
293
  export function toast(options) {
181
- const { message, variant = 'info', anchor = 'bottom-right', screenWidth, screenHeight, margin = 1, ctx, } = options;
294
+ const { message, variant = 'info', anchor = 'bottom-right', screenWidth, screenHeight, margin, ctx, } = options;
295
+ const resolvedMargin = resolveOverlayMargin(screenWidth, screenHeight, margin);
182
296
  const icon = TOAST_ICONS[variant];
183
- let line = icon + ' ' + message;
184
- if (ctx) {
185
- line = ctx.style.styled(ctx.semantic(variant), line);
186
- }
187
- const borderKey = TOAST_BORDER[variant];
188
- const borderColor = ctx
189
- ? (s) => ctx.style.styled(ctx.border(borderKey), s)
190
- : (s) => s;
191
- const bgFill = makeBgFill(options.bgToken, ctx);
192
- const boxStr = renderBox([line], borderColor, bgFill);
193
- const boxLines = boxStr.split('\n');
194
- const boxHeight = boxLines.length;
195
- const boxWidth = visibleLength(boxLines[0]);
297
+ const line = lineSurface(`${icon} ${message}`, styleFromToken(ctx?.semantic(variant), ctx));
298
+ const surface = renderBoxSurface([line], styleFromToken(ctx?.border(TOAST_BORDER[variant]), ctx), backgroundStyleFromToken(options.bgToken, ctx));
196
299
  let row;
197
300
  let col;
198
301
  switch (anchor) {
199
302
  case 'top-right':
200
- row = margin;
201
- col = screenWidth - boxWidth - margin;
303
+ row = resolvedMargin;
304
+ col = screenWidth - surface.width - resolvedMargin;
202
305
  break;
203
306
  case 'bottom-right':
204
- row = screenHeight - boxHeight - margin;
205
- col = screenWidth - boxWidth - margin;
307
+ row = screenHeight - surface.height - resolvedMargin;
308
+ col = screenWidth - surface.width - resolvedMargin;
206
309
  break;
207
310
  case 'bottom-left':
208
- row = screenHeight - boxHeight - margin;
209
- col = margin;
311
+ row = screenHeight - surface.height - resolvedMargin;
312
+ col = resolvedMargin;
210
313
  break;
211
314
  case 'top-left':
212
- row = margin;
213
- col = margin;
315
+ row = resolvedMargin;
316
+ col = resolvedMargin;
214
317
  break;
215
318
  }
216
319
  row = Math.max(0, row);
217
320
  col = Math.max(0, col);
218
- return { content: boxStr, row, col };
321
+ return { content: overlayContentFromSurface(surface, ctx), surface, row, col };
219
322
  }
220
323
  // ---------------------------------------------------------------------------
221
324
  // drawer()
@@ -240,51 +343,54 @@ export function drawer(options) {
240
343
  const dims = resolveDrawerDimensions(options, region);
241
344
  const { width, height, row, col } = dims;
242
345
  const innerWidth = Math.max(0, width - 4); // border + padding on each side
243
- const borderColor = ctx && options.borderToken
244
- ? (s) => ctx.style.styled(options.borderToken, s)
245
- : (s) => s;
246
- const bgFill = makeBgFill(options.bgToken, ctx);
247
- const fill = bgFill ?? ((s) => s);
248
- // Build top border
249
- let topInner;
250
- if (title) {
251
- const titleText = ctx ? ctx.style.bold(title) : title;
252
- const titleVis = visibleLength(titleText);
253
- const remaining = Math.max(0, innerWidth + 2 - titleVis - 2); // +2 for padding around border, -2 for spaces around title
254
- const leftDash = Math.floor(remaining / 2);
255
- const rightDash = remaining - leftDash;
256
- topInner = BORDER.h.repeat(leftDash) + ' ' + titleText + ' ' + BORDER.h.repeat(rightDash);
346
+ const borderStyle = styleFromToken(options.borderToken, ctx);
347
+ const fillStyle = backgroundStyleFromToken(options.bgToken, ctx);
348
+ const titleStyle = ctx ? { modifiers: ['bold'] } : {};
349
+ const surface = createSurface(width, height);
350
+ if (width === 0 || height === 0) {
351
+ return { content: overlayContentFromSurface(surface, ctx), surface, row, col };
257
352
  }
258
- else {
259
- topInner = BORDER.h.repeat(innerWidth + 2);
353
+ for (let x = 0; x < width; x++) {
354
+ const topChar = x === 0 ? BORDER.tl : x === width - 1 ? BORDER.tr : BORDER.h;
355
+ setStyledCell(surface, x, 0, topChar, borderStyle);
356
+ if (height > 1) {
357
+ const bottomChar = x === 0 ? BORDER.bl : x === width - 1 ? BORDER.br : BORDER.h;
358
+ setStyledCell(surface, x, height - 1, bottomChar, borderStyle);
359
+ }
260
360
  }
261
- const topLine = fitLineExact(borderColor(BORDER.tl + topInner + BORDER.tr), width);
262
- const bottomLine = fitLineExact(borderColor(BORDER.bl + BORDER.h.repeat(innerWidth + 2) + BORDER.br), width);
263
- // Build content lines
264
- const contentLines = content.split('\n');
265
- const availableHeight = Math.max(0, height - 2); // minus top + bottom border
266
- const bodyLines = [];
267
- for (let i = 0; i < availableHeight; i++) {
268
- const raw = contentLines[i] ?? '';
269
- const vis = visibleLength(raw);
270
- let clipped;
271
- if (vis > innerWidth) {
272
- clipped = clipToWidth(raw, innerWidth);
361
+ if (title != null && width > 2) {
362
+ const titleLine = lineSurface(title, titleStyle);
363
+ const spanWidth = Math.min(width - 2, titleLine.width + 2);
364
+ const startX = 1 + Math.max(0, Math.floor(((width - 2) - spanWidth) / 2));
365
+ setStyledCell(surface, startX, 0, ' ', borderStyle);
366
+ const mergedTitleStyle = mergeStyles(borderStyle, titleStyle);
367
+ for (let x = 0; x < Math.min(titleLine.width, Math.max(0, spanWidth - 2)); x++) {
368
+ setStyledCell(surface, startX + 1 + x, 0, titleLine.get(x, 0).char, mergedTitleStyle);
273
369
  }
274
- else {
275
- clipped = raw + ' '.repeat(innerWidth - vis);
370
+ if (spanWidth >= 2) {
371
+ setStyledCell(surface, startX + spanWidth - 1, 0, ' ', borderStyle);
276
372
  }
277
- bodyLines.push(fitLineExact(borderColor(BORDER.v) + fill(' ' + clipped + ' ') + borderColor(BORDER.v), width));
278
373
  }
279
- const allLines = [];
280
- if (height === 1) {
281
- allLines.push(topLine);
282
- }
283
- else if (height >= 2) {
284
- allLines.push(topLine, ...bodyLines, bottomLine);
374
+ const rows = contentLines(content, innerWidth);
375
+ const availableHeight = Math.max(0, height - 2);
376
+ for (let i = 0; i < availableHeight; i++) {
377
+ const y = i + 1;
378
+ if (width >= 1)
379
+ setStyledCell(surface, 0, y, BORDER.v, borderStyle);
380
+ for (let x = 1; x < Math.max(1, width - 1); x++) {
381
+ if (x < width - 1)
382
+ setStyledCell(surface, x, y, ' ', fillStyle);
383
+ }
384
+ if (width >= 2)
385
+ setStyledCell(surface, width - 1, y, BORDER.v, borderStyle);
386
+ const line = lineWithInheritedBackground(rows[i] ?? createSurface(0, 1), fillStyle.bg);
387
+ if (line.width > 0 && innerWidth > 0 && width >= 4) {
388
+ surface.blit(line, 2, y, 0, 0, Math.min(line.width, innerWidth), 1);
389
+ }
285
390
  }
286
391
  return {
287
- content: allLines.join('\n'),
392
+ content: overlayContentFromSurface(surface, ctx),
393
+ surface,
288
394
  row,
289
395
  col,
290
396
  };
@@ -348,13 +454,6 @@ function clampRegion(region, screenWidth, screenHeight) {
348
454
  height: Math.floor(clamp(region.height, 0, maxHeight)),
349
455
  };
350
456
  }
351
- /** Clip or pad a single line to exactly `width` visible columns. */
352
- function fitLineExact(line, width) {
353
- const target = Math.max(0, width);
354
- const clipped = clipToWidth(line, target);
355
- const vis = visibleLength(clipped);
356
- return clipped + ' '.repeat(Math.max(0, target - vis));
357
- }
358
457
  /** Clamp a number between min and max. */
359
458
  function clamp(value, min, max) {
360
459
  return Math.max(min, Math.min(max, value));
@@ -374,38 +473,37 @@ function clamp(value, min, max) {
374
473
  export function tooltip(options) {
375
474
  const { content, row: targetRow, col: targetCol, direction = 'top', screenWidth, screenHeight, borderToken, bgToken, ctx, } = options;
376
475
  const maxContentWidth = Math.max(0, screenWidth - 4);
377
- const contentLines = content.split('\n').map((l) => clipToWidth(l, maxContentWidth));
378
- const borderColor = ctx && borderToken
379
- ? (s) => ctx.style.styled(borderToken, s)
380
- : (s) => s;
381
- const bgFill = makeBgFill(bgToken, ctx);
382
- const boxStr = renderBox(contentLines, borderColor, bgFill);
383
- const boxLines = boxStr.split('\n');
384
- const boxHeight = boxLines.length;
385
- const boxWidth = visibleLength(boxLines[0]);
476
+ const lines = contentLines(content, maxContentWidth);
477
+ const surface = renderBoxSurface(lines, styleFromToken(borderToken, ctx), backgroundStyleFromToken(bgToken, ctx));
386
478
  let tipRow;
387
479
  let tipCol;
388
480
  switch (direction) {
389
481
  case 'top':
390
- tipRow = targetRow - boxHeight;
391
- tipCol = targetCol - Math.floor(boxWidth / 2);
482
+ tipRow = targetRow - surface.height;
483
+ tipCol = targetCol - Math.floor(surface.width / 2);
392
484
  break;
393
485
  case 'bottom':
394
486
  tipRow = targetRow + 1;
395
- tipCol = targetCol - Math.floor(boxWidth / 2);
487
+ tipCol = targetCol - Math.floor(surface.width / 2);
396
488
  break;
397
489
  case 'left':
398
- tipRow = targetRow - Math.floor(boxHeight / 2);
399
- tipCol = targetCol - boxWidth;
490
+ tipRow = targetRow - Math.floor(surface.height / 2);
491
+ tipCol = targetCol - surface.width;
400
492
  break;
401
493
  case 'right':
402
- tipRow = targetRow - Math.floor(boxHeight / 2);
494
+ tipRow = targetRow - Math.floor(surface.height / 2);
403
495
  tipCol = targetCol + 1;
404
496
  break;
405
497
  }
406
498
  // Clamp to screen bounds
407
- tipRow = Math.max(0, Math.min(tipRow, screenHeight - boxHeight));
408
- tipCol = Math.max(0, Math.min(tipCol, screenWidth - boxWidth));
409
- return { content: boxStr, row: tipRow, col: tipCol };
499
+ tipRow = Math.max(0, Math.min(tipRow, screenHeight - surface.height));
500
+ tipCol = Math.max(0, Math.min(tipCol, screenWidth - surface.width));
501
+ return { content: overlayContentFromSurface(surface, ctx), surface, row: tipRow, col: tipCol };
502
+ }
503
+ function surfaceFromContent(content) {
504
+ const lines = content.split('\n');
505
+ const width = Math.max(1, ...lines.map((line) => visibleLength(line)));
506
+ const height = Math.max(1, lines.length);
507
+ return parseAnsiToSurface(content, width, height);
410
508
  }
411
509
  //# sourceMappingURL=overlay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"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"}
package/dist/pager.d.ts CHANGED
@@ -16,6 +16,7 @@
16
16
  * return [{ ...model, pagerState: pagerScrollBy(model.pagerState, 1) }, []];
17
17
  * ```
18
18
  */
19
+ import { type Surface } from '@flyingrobots/bijou';
19
20
  import { type ScrollState } from './viewport.js';
20
21
  import { type KeyMap } from './keybindings.js';
21
22
  /** Immutable state for the pager widget. */
@@ -55,6 +56,13 @@ export interface PagerRenderOptions {
55
56
  * @returns Fresh pager state with scroll at the top.
56
57
  */
57
58
  export declare function createPagerState(options: PagerOptions): PagerState;
59
+ /**
60
+ * Create pager state for already-rendered surface content.
61
+ *
62
+ * Uses the surface height directly for scroll bounds so callers can keep
63
+ * pager composition on the `Surface` path without flattening content first.
64
+ */
65
+ export declare function createPagerStateForSurface(content: Surface, options: Omit<PagerOptions, 'content'>): PagerState;
58
66
  /**
59
67
  * Scroll by a relative number of lines.
60
68
  *
@@ -115,6 +123,14 @@ export declare function pagerSetContent(state: PagerState, content: string): Pag
115
123
  * @returns Rendered pager string with viewport and optional status.
116
124
  */
117
125
  export declare function pager(state: PagerState, options?: PagerRenderOptions): string;
126
+ /**
127
+ * Render the pager directly into a surface.
128
+ *
129
+ * Pairs with {@link createPagerStateForSurface} so already-rendered pane
130
+ * content can stay on the structured surface path instead of dropping back
131
+ * through the string viewport helper.
132
+ */
133
+ export declare function pagerSurface(content: Surface, state: PagerState, options?: PagerRenderOptions): Surface;
118
134
  /**
119
135
  * Create a preconfigured KeyMap for pager navigation.
120
136
  *
@@ -1 +1 @@
1
- {"version":3,"file":"pager.d.ts","sourceRoot":"","sources":["../src/pager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACL,KAAK,WAAW,EASjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAM7D,4CAA4C;AAC5C,MAAM,WAAW,UAAU;IACzB,wCAAwC;IACxC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,gDAAgD;IAChD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kCAAkC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,8CAA8C;AAC9C,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kCAAkC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,oEAAoE;IACpE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,4CAA4C;AAC5C,MAAM,WAAW,kBAAkB;IACjC,+DAA+D;IAC/D,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,uEAAuE;IACvE,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B;AAMD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,UAAU,CASlE;AAMD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,CAEvE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAEtE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAE9D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAEjE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAEzD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CAS9E;AAMD;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM,CA4B7E;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE;IACxC,QAAQ,EAAE,GAAG,CAAC;IACd,UAAU,EAAE,GAAG,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC;IACZ,QAAQ,EAAE,GAAG,CAAC;IACd,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,GAAG,CAAC;IACZ,IAAI,EAAE,GAAG,CAAC;CACX,GAAG,MAAM,CAAC,GAAG,CAAC,CAgBd"}
1
+ {"version":3,"file":"pager.d.ts","sourceRoot":"","sources":["../src/pager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAkC,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnF,OAAO,EACL,KAAK,WAAW,EAUjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAM7D,4CAA4C;AAC5C,MAAM,WAAW,UAAU;IACzB,wCAAwC;IACxC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,gDAAgD;IAChD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kCAAkC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,8CAA8C;AAC9C,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kCAAkC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,oEAAoE;IACpE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,4CAA4C;AAC5C,MAAM,WAAW,kBAAkB;IACjC,+DAA+D;IAC/D,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,uEAAuE;IACvE,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B;AAMD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,UAAU,CASlE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,GACrC,UAAU,CAgBZ;AAMD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,CAEvE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAEtE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAE9D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAEjE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAEzD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CAS9E;AAMD;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM,CA4B7E;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,EACjB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CA+BT;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE;IACxC,QAAQ,EAAE,GAAG,CAAC;IACd,UAAU,EAAE,GAAG,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC;IACZ,QAAQ,EAAE,GAAG,CAAC;IACd,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,GAAG,CAAC;IACZ,IAAI,EAAE,GAAG,CAAC;CACX,GAAG,MAAM,CAAC,GAAG,CAAC,CAgBd"}