linecraft 0.5.4 → 0.5.6

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 (66) hide show
  1. package/LICENSE +21 -59
  2. package/README.md +30 -0
  3. package/lib/components/code-debug.d.ts +2 -0
  4. package/lib/components/code-debug.d.ts.map +1 -1
  5. package/lib/components/code-debug.js +104 -198
  6. package/lib/components/code-debug.js.map +1 -1
  7. package/lib/components/code-debug.test.d.ts +2 -0
  8. package/lib/components/code-debug.test.d.ts.map +1 -0
  9. package/lib/components/code-debug.test.js +245 -0
  10. package/lib/components/code-debug.test.js.map +1 -0
  11. package/lib/components/fill.d.ts +2 -1
  12. package/lib/components/fill.d.ts.map +1 -1
  13. package/lib/components/fill.js.map +1 -1
  14. package/lib/components/progress-bar-grid.d.ts.map +1 -1
  15. package/lib/components/progress-bar-grid.js +5 -3
  16. package/lib/components/progress-bar-grid.js.map +1 -1
  17. package/lib/components/prompt.js +1 -1
  18. package/lib/components/prompt.js.map +1 -1
  19. package/lib/components/section.js +1 -1
  20. package/lib/components/section.js.map +1 -1
  21. package/lib/components/segments.js +4 -4
  22. package/lib/components/segments.js.map +1 -1
  23. package/lib/components/spinner.d.ts +2 -1
  24. package/lib/components/spinner.d.ts.map +1 -1
  25. package/lib/components/spinner.js +1 -1
  26. package/lib/components/spinner.js.map +1 -1
  27. package/lib/components/styled.d.ts +3 -2
  28. package/lib/components/styled.d.ts.map +1 -1
  29. package/lib/components/styled.js +1 -1
  30. package/lib/components/styled.js.map +1 -1
  31. package/lib/index.d.ts +2 -0
  32. package/lib/index.d.ts.map +1 -1
  33. package/lib/index.js +1 -0
  34. package/lib/index.js.map +1 -1
  35. package/lib/layout/grid.d.ts.map +1 -1
  36. package/lib/layout/grid.js +1 -2
  37. package/lib/layout/grid.js.map +1 -1
  38. package/lib/layout/grid.test.js +3 -3
  39. package/lib/layout/grid.test.js.map +1 -1
  40. package/lib/native/region.test.js +1 -1
  41. package/lib/native/region.test.js.map +1 -1
  42. package/lib/region-resize.test.js +3 -3
  43. package/lib/region-resize.test.js.map +1 -1
  44. package/lib/types.d.ts +6 -5
  45. package/lib/types.d.ts.map +1 -1
  46. package/lib/utils/colors.d.ts.map +1 -1
  47. package/lib/utils/colors.js +50 -8
  48. package/lib/utils/colors.js.map +1 -1
  49. package/lib/utils/colors.test.js.map +1 -1
  50. package/lib/utils/debug-log.js +1 -1
  51. package/lib/utils/debug-log.js.map +1 -1
  52. package/lib/utils/terminal-theme.d.ts +17 -28
  53. package/lib/utils/terminal-theme.d.ts.map +1 -1
  54. package/lib/utils/terminal-theme.js +66 -38
  55. package/lib/utils/terminal-theme.js.map +1 -1
  56. package/lib/utils/text.d.ts +62 -2
  57. package/lib/utils/text.d.ts.map +1 -1
  58. package/lib/utils/text.js +396 -37
  59. package/lib/utils/text.js.map +1 -1
  60. package/lib/utils/text.test.d.ts +2 -0
  61. package/lib/utils/text.test.d.ts.map +1 -0
  62. package/lib/utils/text.test.js +237 -0
  63. package/lib/utils/text.test.js.map +1 -0
  64. package/lib/utils/wait-for-spacebar.js +1 -1
  65. package/lib/utils/wait-for-spacebar.js.map +1 -1
  66. package/package.json +2 -8
package/lib/utils/text.js CHANGED
@@ -89,8 +89,8 @@ function skipEscapeSequence(text, idx) {
89
89
  * Truncate text to a maximum visual width while preserving ANSI escape codes
90
90
  *
91
91
  * This function truncates text based on its visual width (ignoring ANSI codes),
92
- * but preserves all ANSI escape sequences in the output. This is the base function
93
- * used by all other truncate functions.
92
+ * but preserves all ANSI escape sequences in the output. Active ANSI codes are
93
+ * preserved in the truncated result.
94
94
  *
95
95
  * @param text - Text that may contain ANSI escape codes
96
96
  * @param maxWidth - Maximum visual width (number of visible characters)
@@ -124,12 +124,17 @@ export function truncateToWidth(text, maxWidth) {
124
124
  visual++;
125
125
  }
126
126
  }
127
- // Return substring up to the truncation point
128
- return text.substring(0, idx);
127
+ // Return substring up to the truncation point (preserves all ANSI codes up to that point)
128
+ const truncated = text.substring(0, idx);
129
+ // Close any open OSC 8 hyperlink
130
+ return truncated + closeOsc8IfOpen(truncated);
129
131
  }
130
132
  /**
131
133
  * Truncate text with ellipsis at the end, preserving ANSI escape codes
132
134
  *
135
+ * Active ANSI codes from the truncated portion are preserved, and the ellipsis
136
+ * is added after the truncated text (without ANSI codes).
137
+ *
133
138
  * @param text - Text that may contain ANSI escape codes
134
139
  * @param maxWidth - Maximum visual width (number of visible characters)
135
140
  * @returns Truncated text with '...' at the end, ANSI codes preserved
@@ -145,13 +150,31 @@ export function truncateEnd(text, maxWidth) {
145
150
  if (maxWidth <= 3) {
146
151
  return '.'.repeat(maxWidth);
147
152
  }
148
- // Truncate to make room for ellipsis, then add ellipsis
149
- const truncated = truncateToWidth(text, maxWidth - 3);
150
- return truncated + '...';
153
+ // 1. Extract raw portion before truncation
154
+ let visual = 0;
155
+ let idx = 0;
156
+ while (idx < text.length && visual < maxWidth - 3) {
157
+ const nextIdx = skipEscapeSequence(text, idx);
158
+ if (nextIdx > idx)
159
+ idx = nextIdx;
160
+ else {
161
+ idx++;
162
+ visual++;
163
+ }
164
+ }
165
+ const rawTruncated = text.substring(0, idx);
166
+ const activeCodes = extractActiveAnsiCodes(rawTruncated);
167
+ // 2. Add ellipsis with the same active codes, then close everything
168
+ const ellipsis = activeCodes ? activeCodes + '...' : '...';
169
+ return rawTruncated + ellipsis + closeOsc8IfOpen(activeCodes) + '\x1b[0m';
151
170
  }
152
171
  /**
153
172
  * Truncate text with ellipsis at the beginning, preserving ANSI escape codes
154
173
  *
174
+ * When truncating from the start, we preserve ANSI codes that are active in the
175
+ * remaining portion. The ellipsis is added at the beginning (without ANSI codes),
176
+ * and active codes from the original text are re-applied to the remaining portion.
177
+ *
155
178
  * @param text - Text that may contain ANSI escape codes
156
179
  * @param maxWidth - Maximum visual width (number of visible characters)
157
180
  * @returns Truncated text with '...' at the beginning, ANSI codes preserved
@@ -160,7 +183,6 @@ export function truncateEnd(text, maxWidth) {
160
183
  * truncateStart('\x1b[31mHello World\x1b[0m', 8) // '...\x1b[31mWorld\x1b[0m'
161
184
  */
162
185
  export function truncateStart(text, maxWidth) {
163
- // Use countVisibleChars instead of stripAnsi().length to correctly handle OSC 8 codes
164
186
  const visibleWidth = countVisibleChars(text);
165
187
  if (visibleWidth <= maxWidth) {
166
188
  return text;
@@ -168,30 +190,35 @@ export function truncateStart(text, maxWidth) {
168
190
  if (maxWidth <= 3) {
169
191
  return '.'.repeat(maxWidth);
170
192
  }
171
- // We need to truncate from the start, preserving ANSI codes
172
- // This is trickier - we need to work backwards
173
193
  const availableWidth = maxWidth - 3;
174
194
  const startVisibleIdx = visibleWidth - availableWidth;
175
- // Find the actual start position in the original string (accounting for escape sequences)
176
195
  let visual = 0;
177
196
  let idx = 0;
178
197
  while (idx < text.length && visual < startVisibleIdx) {
179
198
  const nextIdx = skipEscapeSequence(text, idx);
180
- if (nextIdx > idx) {
181
- // We skipped an escape sequence
199
+ if (nextIdx > idx)
182
200
  idx = nextIdx;
183
- }
184
201
  else {
185
- // Regular character
186
202
  idx++;
187
203
  visual++;
188
204
  }
189
205
  }
190
- return '...' + text.substring(idx);
206
+ const remaining = text.substring(idx);
207
+ const beforeCut = text.substring(0, idx);
208
+ const activeCodes = extractActiveAnsiCodes(beforeCut);
209
+ // To ensure the hyperlink is preserved:
210
+ // 1. ellipsis starts with activeCodes
211
+ // 2. remaining is appended
212
+ // (remaining already has its own closing codes if it was originally linked)
213
+ const ellipsis = activeCodes ? activeCodes + '...' : '...';
214
+ return ellipsis + remaining;
191
215
  }
192
216
  /**
193
217
  * Truncate text with ellipsis in the middle, preserving ANSI escape codes
194
218
  *
219
+ * When truncating in the middle, we preserve ANSI codes from the start portion
220
+ * and re-apply them to the end portion to maintain consistent styling.
221
+ *
195
222
  * @param text - Text that may contain ANSI escape codes
196
223
  * @param maxWidth - Maximum visual width (number of visible characters)
197
224
  * @returns Truncated text with '...' in the middle, ANSI codes preserved
@@ -207,32 +234,297 @@ export function truncateMiddle(text, maxWidth) {
207
234
  if (maxWidth <= 3) {
208
235
  return '.'.repeat(maxWidth);
209
236
  }
210
- // Calculate how many characters we can show on each side
211
- // Total: start + 3 (ellipsis) + end = maxWidth
212
- const availableChars = maxWidth - 3; // Characters available for text (excluding ellipsis)
237
+ const availableChars = maxWidth - 3;
213
238
  const startChars = Math.floor(availableChars / 2);
214
239
  const endChars = availableChars - startChars;
215
240
  // Get start portion
216
- const startPortion = truncateToWidth(text, startChars);
217
- // Get end portion - work backwards from the end
218
- const endStartIdx = plain.length - endChars;
219
- // Find the actual start position in the original string (accounting for escape sequences)
220
241
  let visual = 0;
221
242
  let idx = 0;
222
- while (idx < text.length && visual < endStartIdx) {
243
+ while (idx < text.length && visual < startChars) {
223
244
  const nextIdx = skipEscapeSequence(text, idx);
224
- if (nextIdx > idx) {
225
- // We skipped an escape sequence
245
+ if (nextIdx > idx)
226
246
  idx = nextIdx;
247
+ else {
248
+ idx++;
249
+ visual++;
227
250
  }
251
+ }
252
+ const startPortion = text.substring(0, idx);
253
+ const activeCodes = extractActiveAnsiCodes(startPortion);
254
+ // Get end portion
255
+ const endStartIdx = plain.length - endChars;
256
+ visual = 0;
257
+ idx = 0;
258
+ while (idx < text.length && visual < endStartIdx) {
259
+ const nextIdx = skipEscapeSequence(text, idx);
260
+ if (nextIdx > idx)
261
+ idx = nextIdx;
228
262
  else {
229
- // Regular character
230
263
  idx++;
231
264
  visual++;
232
265
  }
233
266
  }
234
267
  const endPortion = text.substring(idx);
235
- return startPortion + '...' + endPortion;
268
+ // ellipsis and endPortion both need activeCodes
269
+ const ellipsis = activeCodes ? activeCodes + '...' : '...';
270
+ return startPortion + ellipsis + endPortion;
271
+ }
272
+ /**
273
+ * Extract a visible character range from text, preserving ANSI codes
274
+ *
275
+ * @param text - Text that may contain ANSI escape codes
276
+ * @param startCol - Start column (1-based)
277
+ * @param endCol - End column (1-based)
278
+ * @returns Object with { before: string, range: string, after: string }
279
+ */
280
+ function extractVisibleRange(text, startCol, endCol) {
281
+ const { before, after: remainingAfterStart } = splitAtVisiblePos(text, startCol - 1);
282
+ const rangeLength = endCol - startCol + 1;
283
+ const { before: range, after } = splitAtVisiblePos(remainingAfterStart, rangeLength);
284
+ return { before, range, after };
285
+ }
286
+ /**
287
+ * Map an original column position to its display position in truncated text
288
+ *
289
+ * This function takes the original text, the truncated result, and the visible range
290
+ * that was shown, and maps an original column to where it appears in the truncated text.
291
+ *
292
+ * @param originalText - The original text (plain, no ANSI)
293
+ * @param truncatedText - The truncated text result (may have ellipsis)
294
+ * @param visibleStartCol - The first column that was shown (1-based, includes truncated before)
295
+ * @param visibleEndCol - The last column that was shown (1-based, includes truncated after)
296
+ * @param originalCol - The original column to map (1-based)
297
+ * @param rangeStartCol - The start column of the main range (1-based, optional, for better accuracy)
298
+ * @param rangeEndCol - The end column of the main range (1-based, optional, for better accuracy)
299
+ * @returns The display position in the truncated text (1-based, visible characters)
300
+ */
301
+ export function mapColumnToDisplay(originalText, truncatedText, visibleStartCol, visibleEndCol, originalCol, rangeStartCol, rangeEndCol) {
302
+ const truncatedPlain = stripAnsi(truncatedText);
303
+ const hasEllipsisStart = truncatedPlain.startsWith('...');
304
+ const ellipsisStartOffset = hasEllipsisStart ? 3 : 0;
305
+ // If we have range boundaries, use them for more accurate mapping
306
+ if (rangeStartCol !== undefined && rangeEndCol !== undefined) {
307
+ // Calculate how much of 'before' is shown (if truncated)
308
+ let shownBeforeChars = 0;
309
+ if (hasEllipsisStart && rangeStartCol > visibleStartCol) {
310
+ // The visible before portion is from visibleStartCol to (rangeStartCol - 1)
311
+ shownBeforeChars = (rangeStartCol - 1) - visibleStartCol + 1;
312
+ }
313
+ else if (!hasEllipsisStart && rangeStartCol > 1) {
314
+ // All of before is shown
315
+ shownBeforeChars = rangeStartCol - 1;
316
+ }
317
+ // If column is before the range, it's in the truncated before portion
318
+ if (originalCol < rangeStartCol) {
319
+ if (originalCol < visibleStartCol) {
320
+ return ellipsisStartOffset || 1;
321
+ }
322
+ // Column is in the visible before portion
323
+ const offsetInBefore = originalCol - visibleStartCol + 1;
324
+ return ellipsisStartOffset + offsetInBefore;
325
+ }
326
+ // If column is in the range, calculate position relative to range start
327
+ if (originalCol >= rangeStartCol && originalCol <= rangeEndCol) {
328
+ const offsetInRange = originalCol - rangeStartCol + 1;
329
+ // We need to count how many visible characters are in 'truncatedBefore'
330
+ const truncatedBeforeWidth = hasEllipsisStart ? (shownBeforeChars + 3) : shownBeforeChars;
331
+ return truncatedBeforeWidth + offsetInRange;
332
+ }
333
+ // If column is after the range, it's in the truncated after portion
334
+ if (originalCol > rangeEndCol) {
335
+ if (originalCol > visibleEndCol) {
336
+ return countVisibleChars(truncatedPlain);
337
+ }
338
+ // Column is in the visible after portion
339
+ const rangeWidth = rangeEndCol - rangeStartCol + 1;
340
+ const offsetInAfter = originalCol - rangeEndCol;
341
+ const truncatedBeforeWidth = hasEllipsisStart ? (shownBeforeChars + 3) : shownBeforeChars;
342
+ return truncatedBeforeWidth + rangeWidth + offsetInAfter;
343
+ }
344
+ }
345
+ // Fallback to simple calculation if range boundaries not provided
346
+ // If column is before visible range, point to start ellipsis or first character
347
+ if (originalCol < visibleStartCol) {
348
+ return ellipsisStartOffset || 1;
349
+ }
350
+ // If column is after visible range, point to end
351
+ if (originalCol > visibleEndCol) {
352
+ return countVisibleChars(truncatedPlain);
353
+ }
354
+ // Column is in visible range - calculate its position
355
+ // Position = ellipsis offset + (originalCol - visibleStartCol + 1)
356
+ return ellipsisStartOffset + (originalCol - visibleStartCol + 1);
357
+ }
358
+ /**
359
+ * Truncate text to show a specific column range, with ellipsis as needed
360
+ *
361
+ * This function ensures a target range (startCol to endCol) is visible in the output,
362
+ * adding ellipsis at the start, end, or both as needed to fit within maxWidth.
363
+ * All ANSI codes and OSC 8 hyperlinks are preserved.
364
+ *
365
+ * @param text - Text that may contain ANSI escape codes
366
+ * @param maxWidth - Maximum visual width (number of visible characters)
367
+ * @param targetStartCol - Start column of target range (1-based)
368
+ * @param targetEndCol - End column of target range (1-based, optional)
369
+ * @param maxColumn - Maximum column to show (optional, for limiting display)
370
+ * @returns Truncated text with target range visible, ANSI codes preserved, and visible range info
371
+ *
372
+ * @example
373
+ * truncateFocusRange('console.log("hello world");', 20, 1, 11)
374
+ * // Returns text showing columns 1-11 with ellipsis if needed
375
+ */
376
+ export function truncateFocusRange(text, maxWidth, targetStartCol, targetEndCol, maxColumn) {
377
+ const codeLength = countVisibleChars(text);
378
+ const targetEnd = targetEndCol ?? targetStartCol;
379
+ // If code fits, show everything
380
+ if (codeLength <= maxWidth) {
381
+ return {
382
+ text: truncateToWidth(text, maxWidth),
383
+ visibleStartCol: 1,
384
+ visibleEndCol: codeLength,
385
+ rangeStartCol: targetStartCol,
386
+ rangeEndCol: targetEnd,
387
+ };
388
+ }
389
+ const effectiveMaxCol = maxColumn ? Math.min(maxColumn, codeLength) : codeLength;
390
+ const targetWidth = targetEnd - targetStartCol + 1;
391
+ // If target doesn't fit, just show middle with ellipsis
392
+ if (targetWidth > maxWidth - 6) {
393
+ const midPoint = Math.floor((maxWidth - 6) / 2);
394
+ const startCol = Math.max(1, targetStartCol - midPoint);
395
+ const endCol = Math.min(effectiveMaxCol, startCol + maxWidth - 6);
396
+ const { range } = extractVisibleRange(text, startCol, endCol);
397
+ return {
398
+ text: '...' + truncateToWidth(range, maxWidth - 3) + '...',
399
+ visibleStartCol: startCol,
400
+ visibleEndCol: endCol,
401
+ rangeStartCol: startCol,
402
+ rangeEndCol: endCol,
403
+ };
404
+ }
405
+ // Calculate visible range to center target
406
+ const willNeedEllipsisStart = targetStartCol > 1 || (targetStartCol === 1 && codeLength > maxWidth);
407
+ const willNeedEllipsisEnd = targetEnd < codeLength || codeLength > maxWidth;
408
+ const ellipsisWidth = (willNeedEllipsisStart ? 3 : 0) + (willNeedEllipsisEnd ? 3 : 0);
409
+ const effectiveAvailableWidth = maxWidth - ellipsisWidth;
410
+ const padding = Math.floor((effectiveAvailableWidth - targetWidth) / 2);
411
+ let startCol = Math.max(1, targetStartCol - padding);
412
+ let endCol = Math.min(effectiveMaxCol, startCol + effectiveAvailableWidth - 1);
413
+ // Adjust if we hit boundaries
414
+ if (endCol - startCol + 1 > effectiveAvailableWidth) {
415
+ endCol = startCol + effectiveAvailableWidth - 1;
416
+ }
417
+ if (endCol > effectiveMaxCol) {
418
+ endCol = effectiveMaxCol;
419
+ startCol = Math.max(1, endCol - effectiveAvailableWidth + 1);
420
+ }
421
+ if (startCol < 1) {
422
+ startCol = 1;
423
+ endCol = Math.min(effectiveMaxCol, effectiveAvailableWidth);
424
+ }
425
+ // Extract the visible range using the helper
426
+ const { before, range, after } = extractVisibleRange(text, startCol, endCol);
427
+ // Use existing truncation utilities to add ellipsis
428
+ const hasEllipsisStart = startCol > 1;
429
+ const hasEllipsisEnd = endCol < codeLength;
430
+ const rangeWidth = countVisibleChars(range);
431
+ let truncatedText;
432
+ let actualVisibleStartCol = startCol;
433
+ let actualVisibleEndCol = endCol;
434
+ if (hasEllipsisStart && hasEllipsisEnd) {
435
+ const beforeWidth = maxWidth - rangeWidth - 3; // -3 for end ellipsis
436
+ const truncatedBefore = before ? truncateStart(before, Math.max(3, beforeWidth)) : '';
437
+ const afterWidth = maxWidth - countVisibleChars(truncatedBefore) - rangeWidth - 3; // -3 for start ellipsis
438
+ const truncatedAfter = after ? truncateEnd(after, Math.max(3, afterWidth)) : '';
439
+ truncatedText = truncatedBefore + range + truncatedAfter;
440
+ // Adjust visible range: if before was truncated, calculate actual start
441
+ // 'before' contains columns 1 to (startCol - 1)
442
+ // truncateStart shows the END of 'before', so if we show the last N chars of 'before',
443
+ // the first visible column from 'before' is: (startCol - 1) - N + 1 = startCol - N
444
+ if (truncatedBefore && before) {
445
+ const truncatedBeforePlain = stripAnsi(truncatedBefore);
446
+ if (truncatedBeforePlain.startsWith('...')) {
447
+ const shownBeforeChars = countVisibleChars(truncatedBeforePlain) - 3; // minus ellipsis
448
+ // 'before' contains columns 1 to (startCol - 1), so it has (startCol - 1) characters
449
+ // If we show the last N chars of 'before', the first visible column is: startCol - N
450
+ actualVisibleStartCol = Math.max(1, startCol - shownBeforeChars);
451
+ }
452
+ else {
453
+ // No ellipsis means we showed all of before, so visible start is 1
454
+ actualVisibleStartCol = 1;
455
+ }
456
+ }
457
+ else if (before && before.length > 0) {
458
+ // Before exists but wasn't truncated, so all of before is visible
459
+ actualVisibleStartCol = 1;
460
+ }
461
+ // Adjust visible range: if after was truncated, calculate actual end
462
+ // truncateEnd shows the START of 'after', so if we show N chars from the start of 'after',
463
+ // the actual visible end is: endCol + N
464
+ if (truncatedAfter && after) {
465
+ const truncatedAfterPlain = stripAnsi(truncatedAfter);
466
+ if (truncatedAfterPlain.endsWith('...')) {
467
+ const shownAfterChars = countVisibleChars(truncatedAfterPlain) - 3; // minus ellipsis
468
+ // 'after' starts at endCol + 1, so if we show the first N chars, visible end is endCol + N
469
+ actualVisibleEndCol = endCol + shownAfterChars;
470
+ }
471
+ else {
472
+ // No ellipsis means we showed all of after
473
+ actualVisibleEndCol = codeLength;
474
+ }
475
+ }
476
+ else if (after && after.length > 0) {
477
+ // After exists but wasn't truncated, so all of after is visible
478
+ actualVisibleEndCol = codeLength;
479
+ }
480
+ }
481
+ else if (hasEllipsisStart) {
482
+ const beforeWidth = maxWidth - rangeWidth;
483
+ const truncatedBefore = before ? truncateStart(before, beforeWidth) : '';
484
+ truncatedText = truncatedBefore + range + after;
485
+ // Adjust visible range: if before was truncated, calculate actual start
486
+ const truncatedBeforePlain = stripAnsi(truncatedBefore);
487
+ if (truncatedBefore && before && truncatedBeforePlain.startsWith('...')) {
488
+ const shownBeforeChars = countVisibleChars(truncatedBeforePlain) - 3;
489
+ actualVisibleStartCol = Math.max(1, startCol - shownBeforeChars);
490
+ }
491
+ else if (truncatedBefore && before) {
492
+ // No ellipsis means we showed all of before
493
+ actualVisibleStartCol = 1;
494
+ }
495
+ // After is fully shown
496
+ actualVisibleEndCol = codeLength;
497
+ }
498
+ else if (hasEllipsisEnd) {
499
+ const afterWidth = maxWidth - rangeWidth;
500
+ const truncatedAfter = after ? truncateEnd(after, afterWidth) : '';
501
+ truncatedText = before + range + truncatedAfter;
502
+ // Before is fully shown
503
+ actualVisibleStartCol = 1;
504
+ // Adjust visible range: if after was truncated, calculate actual end
505
+ const truncatedAfterPlain = stripAnsi(truncatedAfter);
506
+ if (truncatedAfter && after && truncatedAfterPlain.endsWith('...')) {
507
+ const shownAfterChars = countVisibleChars(truncatedAfterPlain) - 3;
508
+ actualVisibleEndCol = endCol + shownAfterChars;
509
+ }
510
+ else {
511
+ // No ellipsis means we showed all of after
512
+ actualVisibleEndCol = codeLength;
513
+ }
514
+ }
515
+ else {
516
+ // No ellipsis needed
517
+ truncatedText = truncateToWidth(text, maxWidth);
518
+ actualVisibleStartCol = 1;
519
+ actualVisibleEndCol = codeLength;
520
+ }
521
+ return {
522
+ text: truncatedText,
523
+ visibleStartCol: actualVisibleStartCol,
524
+ visibleEndCol: actualVisibleEndCol,
525
+ rangeStartCol: startCol,
526
+ rangeEndCol: endCol,
527
+ };
236
528
  }
237
529
  /**
238
530
  * Wrap text to fit within a width, breaking on spaces
@@ -433,15 +725,16 @@ export function countVisibleChars(text) {
433
725
  return count;
434
726
  }
435
727
  /**
436
- * Extract active ANSI codes from text (all codes that are active at the end)
728
+ * Extract active ANSI codes and OSC 8 hyperlinks from text (all codes that are active at the end)
437
729
  * Returns the ANSI escape sequences that should be applied to continue the styling
438
730
  */
439
731
  function extractActiveAnsiCodes(text) {
440
732
  const codes = [];
441
733
  let idx = 0;
734
+ let osc8Start = null; // Track OSC 8 hyperlink start sequence
442
735
  while (idx < text.length) {
443
736
  if (text[idx] === '\x1b' && idx + 1 < text.length && text[idx + 1] === '[') {
444
- // Found ANSI escape sequence
737
+ // Found ANSI SGR escape sequence
445
738
  let end = idx + 2;
446
739
  while (end < text.length && text[end] !== 'm') {
447
740
  end++;
@@ -450,7 +743,7 @@ function extractActiveAnsiCodes(text) {
450
743
  const code = text.substring(idx, end + 1);
451
744
  // Check if it's a reset (0m) or a style code
452
745
  if (code === '\x1b[0m') {
453
- // Reset - clear all previous codes
746
+ // Reset - clear all previous codes (but keep OSC 8)
454
747
  codes.length = 0;
455
748
  }
456
749
  else {
@@ -463,12 +756,76 @@ function extractActiveAnsiCodes(text) {
463
756
  idx++;
464
757
  }
465
758
  }
759
+ else if (text[idx] === '\x1b' && idx + 4 < text.length && text.substring(idx, idx + 4) === '\x1b]8;') {
760
+ // Found OSC 8 hyperlink sequence
761
+ let end = idx + 4;
762
+ // Check if this is a start sequence (has URL) or end sequence
763
+ let foundClose = false;
764
+ while (end < text.length - 1) {
765
+ if (text[end] === '\x1b' && text[end + 1] === '\\') {
766
+ // Found closing sequence
767
+ const sequence = text.substring(idx, end + 2);
768
+ if (end === idx + 4) {
769
+ // This is an end sequence (\x1b]8;;\x1b\\)
770
+ osc8Start = null; // Close the hyperlink
771
+ }
772
+ else {
773
+ // This is a start sequence (\x1b]8;;<url>\x1b\\)
774
+ osc8Start = sequence; // Store the start sequence
775
+ }
776
+ idx = end + 2;
777
+ foundClose = true;
778
+ break;
779
+ }
780
+ end++;
781
+ }
782
+ if (!foundClose) {
783
+ idx++;
784
+ }
785
+ }
466
786
  else {
467
787
  idx++;
468
788
  }
469
789
  }
470
- // Return all active codes combined
471
- return codes.join('');
790
+ // Combine ANSI codes and OSC 8 start (if hyperlink is still open)
791
+ const result = codes.join('');
792
+ return osc8Start ? result + osc8Start : result;
793
+ }
794
+ /**
795
+ * Close any open OSC 8 hyperlink at the end of text
796
+ * Returns the closing sequence if a hyperlink is open, empty string otherwise
797
+ */
798
+ function closeOsc8IfOpen(text) {
799
+ let idx = 0;
800
+ let osc8Start = null;
801
+ while (idx < text.length) {
802
+ if (text[idx] === '\x1b' && idx + 4 < text.length && text.substring(idx, idx + 4) === '\x1b]8;') {
803
+ // Found OSC 8 hyperlink sequence
804
+ let end = idx + 4;
805
+ while (end < text.length - 1) {
806
+ if (text[end] === '\x1b' && text[end + 1] === '\\') {
807
+ const sequence = text.substring(idx, end + 2);
808
+ if (end === idx + 4) {
809
+ // End sequence - close hyperlink
810
+ osc8Start = null;
811
+ }
812
+ else {
813
+ // Start sequence - open hyperlink
814
+ osc8Start = sequence;
815
+ }
816
+ idx = end + 2;
817
+ break;
818
+ }
819
+ end++;
820
+ }
821
+ if (idx === end + 2) {
822
+ continue;
823
+ }
824
+ }
825
+ idx++;
826
+ }
827
+ // If hyperlink is still open, return closing sequence
828
+ return osc8Start ? '\x1b]8;;\x1b\\' : '';
472
829
  }
473
830
  /**
474
831
  * Split text at a specific visible character position, preserving ANSI codes
@@ -506,17 +863,19 @@ export function splitAtVisiblePos(text, visiblePos) {
506
863
  }
507
864
  const before = text.substring(0, idx);
508
865
  const after = text.substring(idx);
509
- // Extract active ANSI codes from the "before" part
866
+ // Extract active ANSI codes and OSC 8 hyperlinks from the "before" part
510
867
  const activeCodes = extractActiveAnsiCodes(before);
868
+ // Close any open OSC 8 hyperlink in the "before" part
869
+ const beforeWithClosedOsc8 = before + closeOsc8IfOpen(before);
511
870
  // If there are active codes, we need to:
512
871
  // 1. Close them in the "before" part (unless it already ends with a reset)
513
872
  // 2. Re-apply them at the start of the "after" part
514
- if (activeCodes && !before.endsWith('\x1b[0m')) {
873
+ if (activeCodes && !beforeWithClosedOsc8.endsWith('\x1b[0m')) {
515
874
  return {
516
- before: before + '\x1b[0m',
875
+ before: beforeWithClosedOsc8 + '\x1b[0m',
517
876
  after: activeCodes + after
518
877
  };
519
878
  }
520
- return { before, after };
879
+ return { before: beforeWithClosedOsc8, after };
521
880
  }
522
881
  //# sourceMappingURL=text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/utils/text.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/utils/text.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=text.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.test.d.ts","sourceRoot":"","sources":["../../src/utils/text.test.ts"],"names":[],"mappings":""}