dmux 1.2.0 → 1.3.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.
@@ -1,5 +1,5 @@
1
1
  import React, { useState, useEffect } from 'react';
2
- import { Box, Text, useInput } from 'ink';
2
+ import { Box, Text, useInput, useStdout } from 'ink';
3
3
  import { execSync } from 'child_process';
4
4
  import path from 'path';
5
5
  const SimpleEnhancedInput = ({ value, onChange, placeholder = '', onSubmit, onCancel, isActive = true, workingDirectory = process.cwd() }) => {
@@ -9,6 +9,10 @@ const SimpleEnhancedInput = ({ value, onChange, placeholder = '', onSubmit, onCa
9
9
  const [autocompleteStartPos, setAutocompleteStartPos] = useState(0);
10
10
  const [fileMatches, setFileMatches] = useState([]);
11
11
  const [selectedMatchIndex, setSelectedMatchIndex] = useState(0);
12
+ const [pastedContent, setPastedContent] = useState(new Map());
13
+ const [displayValue, setDisplayValue] = useState(value);
14
+ const { stdout } = useStdout();
15
+ const terminalWidth = stdout?.columns || 80; // Default to 80 if not available
12
16
  // Update cursor when value changes externally
13
17
  useEffect(() => {
14
18
  // Only update cursor to end if value actually changed and we're not already editing
@@ -19,6 +23,50 @@ const SimpleEnhancedInput = ({ value, onChange, placeholder = '', onSubmit, onCa
19
23
  setCursorPosition(0);
20
24
  }
21
25
  }, [value]);
26
+ // Helper function to check if text looks like a paste that should be formatted
27
+ const shouldFormatPaste = (text) => {
28
+ // Format if it contains multiple lines or is very long
29
+ const hasMultipleLines = text.includes('\n');
30
+ const isVeryLong = text.length > 100;
31
+ // Check for code-like patterns that might break display
32
+ const hasSpecialChars = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/.test(text);
33
+ const hasAnsiCodes = /\x1b\[[0-9;]*[a-zA-Z]/.test(text);
34
+ return hasMultipleLines || isVeryLong || hasSpecialChars || hasAnsiCodes;
35
+ };
36
+ // Helper function to process pasted text
37
+ const processPastedText = (text) => {
38
+ if (!shouldFormatPaste(text)) {
39
+ return text;
40
+ }
41
+ // Generate a unique ID for this paste
42
+ const pasteId = pastedContent.size + 1;
43
+ // Store the actual content
44
+ const newPastedContent = new Map(pastedContent);
45
+ newPastedContent.set(pasteId, text);
46
+ setPastedContent(newPastedContent);
47
+ // Count lines in the pasted content
48
+ const lineCount = (text.match(/\n/g) || []).length + 1;
49
+ // Return placeholder text
50
+ return `[#${pasteId} pasted ${lineCount} lines]`;
51
+ };
52
+ // Helper function to get the actual value with pasted content restored
53
+ const getActualValue = () => {
54
+ let actualValue = displayValue;
55
+ // Replace all placeholders with actual content
56
+ pastedContent.forEach((content, id) => {
57
+ const placeholder = `[#${id} pasted ${(content.match(/\n/g) || []).length + 1} lines]`;
58
+ actualValue = actualValue.replace(placeholder, content);
59
+ });
60
+ return actualValue;
61
+ };
62
+ // Update display value when value prop changes
63
+ useEffect(() => {
64
+ setDisplayValue(value);
65
+ // Clear pasted content when value is cleared
66
+ if (value === '') {
67
+ setPastedContent(new Map());
68
+ }
69
+ }, [value]);
22
70
  // Search for files when autocomplete query changes or when @ is typed
23
71
  useEffect(() => {
24
72
  if (showAutocomplete) {
@@ -58,11 +106,19 @@ const SimpleEnhancedInput = ({ value, onChange, placeholder = '', onSubmit, onCa
58
106
  // If query is empty, show root directory files
59
107
  let searchCmd;
60
108
  let dirSearchCmd;
109
+ // Check if query is a directory path (ends with /)
110
+ const isDirectoryPath = query.endsWith('/');
61
111
  if (query === '') {
62
112
  // Show files and directories in the root of the working directory (excluding common dirs)
63
113
  searchCmd = `find "${workingDirectory}" -maxdepth 1 \\( ${excludeArgs} -type f -print \\) 2>/dev/null | head -20`;
64
114
  dirSearchCmd = `find "${workingDirectory}" -maxdepth 1 \\( ${excludeArgs} -type d -print \\) 2>/dev/null | grep -v "^${workingDirectory}$" | head -10`;
65
115
  }
116
+ else if (isDirectoryPath) {
117
+ // Navigate into directory - show contents of the specified directory
118
+ const dirPath = path.join(workingDirectory, query.slice(0, -1)); // Remove trailing slash
119
+ searchCmd = `find "${dirPath}" -maxdepth 1 \\( ${excludeArgs} -type f -print \\) 2>/dev/null | head -20`;
120
+ dirSearchCmd = `find "${dirPath}" -maxdepth 1 \\( ${excludeArgs} -type d -print \\) 2>/dev/null | grep -v "^${dirPath}$" | head -10`;
121
+ }
66
122
  else {
67
123
  // Search for files matching the query (excluding common dirs)
68
124
  searchCmd = `find "${workingDirectory}" \\( ${excludeArgs} -type f -name "*${query}*" -print \\) 2>/dev/null | head -20`;
@@ -95,9 +151,15 @@ const SimpleEnhancedInput = ({ value, onChange, placeholder = '', onSubmit, onCa
95
151
  continue;
96
152
  const relativePath = path.relative(workingDirectory, dirPath);
97
153
  if (relativePath && !relativePath.startsWith('..')) {
154
+ // When browsing within a directory, adjust the display path
155
+ let displayPath = relativePath;
156
+ if (isDirectoryPath && query) {
157
+ // We're inside a subdirectory, show just the item name
158
+ displayPath = path.basename(dirPath);
159
+ }
98
160
  matches.push({
99
161
  path: dirPath,
100
- displayPath: relativePath + '/',
162
+ displayPath: displayPath + '/',
101
163
  type: 'directory'
102
164
  });
103
165
  }
@@ -108,9 +170,15 @@ const SimpleEnhancedInput = ({ value, onChange, placeholder = '', onSubmit, onCa
108
170
  continue;
109
171
  const relativePath = path.relative(workingDirectory, filePath);
110
172
  if (relativePath && !relativePath.startsWith('..')) {
173
+ // When browsing within a directory, adjust the display path
174
+ let displayPath = relativePath;
175
+ if (isDirectoryPath && query) {
176
+ // We're inside a subdirectory, show just the item name
177
+ displayPath = path.basename(filePath);
178
+ }
111
179
  matches.push({
112
180
  path: filePath,
113
- displayPath: relativePath,
181
+ displayPath: displayPath,
114
182
  type: 'file'
115
183
  });
116
184
  }
@@ -128,22 +196,31 @@ const SimpleEnhancedInput = ({ value, onChange, placeholder = '', onSubmit, onCa
128
196
  setFileMatches([]);
129
197
  }
130
198
  };
131
- const insertText = (text, position) => {
132
- const before = value.slice(0, position);
133
- const after = value.slice(position);
134
- const newValue = before + text + after;
199
+ const insertText = (text, position, isPaste = false) => {
200
+ // Process text if it's a paste
201
+ const processedText = isPaste ? processPastedText(text) : text;
202
+ const before = displayValue.slice(0, position);
203
+ const after = displayValue.slice(position);
204
+ const newDisplayValue = before + processedText + after;
205
+ setDisplayValue(newDisplayValue);
206
+ // Update the actual value with processed text (placeholder for pastes)
207
+ const newValue = before + processedText + after;
135
208
  onChange(newValue);
136
- setCursorPosition(position + text.length);
209
+ // When inserting newlines, ensure cursor position is correct
210
+ // This prevents the issue where wrapped lines cause incorrect cursor positioning
211
+ const newCursorPos = position + processedText.length;
212
+ setCursorPosition(newCursorPos);
137
213
  };
138
214
  const deleteText = (start, end) => {
139
- const before = value.slice(0, start);
140
- const after = value.slice(end);
141
- const newValue = before + after;
142
- onChange(newValue);
215
+ const before = displayValue.slice(0, start);
216
+ const after = displayValue.slice(end);
217
+ const newDisplayValue = before + after;
218
+ setDisplayValue(newDisplayValue);
219
+ onChange(newDisplayValue);
143
220
  setCursorPosition(start);
144
221
  };
145
222
  const moveCursor = (position) => {
146
- const clampedPosition = Math.max(0, Math.min(value.length, position));
223
+ const clampedPosition = Math.max(0, Math.min(displayValue.length, position));
147
224
  setCursorPosition(clampedPosition);
148
225
  };
149
226
  const findWordBoundary = (text, position, direction) => {
@@ -172,11 +249,22 @@ const SimpleEnhancedInput = ({ value, onChange, placeholder = '', onSubmit, onCa
172
249
  return pos;
173
250
  };
174
251
  const completeFileReference = (match) => {
175
- const before = value.slice(0, autocompleteStartPos);
176
- const after = value.slice(cursorPosition);
177
- const newValue = before + match.displayPath + after;
178
- onChange(newValue);
179
- setCursorPosition(autocompleteStartPos + match.displayPath.length);
252
+ const before = displayValue.slice(0, autocompleteStartPos);
253
+ const after = displayValue.slice(cursorPosition);
254
+ // Build the complete path to insert
255
+ let completePath;
256
+ if (autocompleteQuery.endsWith('/')) {
257
+ // We're in a subdirectory, need to build the full path
258
+ completePath = autocompleteQuery + match.displayPath.replace(/\/$/, ''); // Remove trailing slash from directories
259
+ }
260
+ else {
261
+ // Use the relative path from working directory
262
+ completePath = path.relative(workingDirectory, match.path);
263
+ }
264
+ const newDisplayValue = before + completePath + after;
265
+ setDisplayValue(newDisplayValue);
266
+ onChange(newDisplayValue);
267
+ setCursorPosition(autocompleteStartPos + completePath.length);
180
268
  setShowAutocomplete(false);
181
269
  setAutocompleteQuery('');
182
270
  };
@@ -199,6 +287,58 @@ const SimpleEnhancedInput = ({ value, onChange, placeholder = '', onSubmit, onCa
199
287
  setSelectedMatchIndex(Math.min(fileMatches.length - 1, selectedMatchIndex + 1));
200
288
  return;
201
289
  }
290
+ else if (key.rightArrow) {
291
+ // Navigate into directory with right arrow
292
+ if (fileMatches.length > 0) {
293
+ const selectedMatch = fileMatches[selectedMatchIndex];
294
+ if (selectedMatch.type === 'directory') {
295
+ // Build the full path for navigation
296
+ let newQuery;
297
+ if (autocompleteQuery.endsWith('/')) {
298
+ // We're already in a directory, append the selected subdirectory
299
+ newQuery = autocompleteQuery + selectedMatch.displayPath;
300
+ }
301
+ else if (autocompleteQuery) {
302
+ // We have a search query, replace it with the full path
303
+ const relativePath = path.relative(workingDirectory, selectedMatch.path);
304
+ newQuery = relativePath + '/';
305
+ }
306
+ else {
307
+ // We're at root, use the display path
308
+ newQuery = selectedMatch.displayPath;
309
+ }
310
+ setAutocompleteQuery(newQuery);
311
+ // Trigger a new search within this directory
312
+ searchFiles(newQuery);
313
+ }
314
+ }
315
+ return;
316
+ }
317
+ else if (key.leftArrow) {
318
+ // Navigate back/up one directory level with left arrow
319
+ if (autocompleteQuery.includes('/')) {
320
+ // Remove the last directory segment
321
+ const segments = autocompleteQuery.split('/');
322
+ segments.pop(); // Remove last segment
323
+ if (segments.length > 0) {
324
+ segments.pop(); // Remove the directory we're going back from
325
+ const newQuery = segments.length > 0 ? segments.join('/') + '/' : '';
326
+ setAutocompleteQuery(newQuery);
327
+ searchFiles(newQuery);
328
+ }
329
+ else {
330
+ // Go back to root
331
+ setAutocompleteQuery('');
332
+ searchFiles('');
333
+ }
334
+ }
335
+ else if (autocompleteQuery !== '') {
336
+ // Go back to root if we have a query but no slashes
337
+ setAutocompleteQuery('');
338
+ searchFiles('');
339
+ }
340
+ return;
341
+ }
202
342
  else if (key.return || key.tab) {
203
343
  if (fileMatches.length > 0) {
204
344
  completeFileReference(fileMatches[selectedMatchIndex]);
@@ -211,19 +351,23 @@ const SimpleEnhancedInput = ({ value, onChange, placeholder = '', onSubmit, onCa
211
351
  onCancel?.();
212
352
  return;
213
353
  }
214
- if (key.return && !key.shift) {
215
- onSubmit?.();
216
- return;
217
- }
218
- if (key.return && key.shift) {
354
+ if (key.shift && key.return) {
219
355
  // Insert newline for multiline input
356
+ // Make sure we're inserting at the correct position even with wrapped lines
220
357
  insertText('\n', cursorPosition);
221
358
  return;
222
359
  }
360
+ if (key.return && !key.shift) {
361
+ // Get the actual value with pasted content restored before submitting
362
+ const actualValue = getActualValue();
363
+ onChange(actualValue);
364
+ onSubmit?.();
365
+ return;
366
+ }
223
367
  // Line navigation with up/down arrows (when not in autocomplete)
224
368
  if (!showAutocomplete && key.upArrow) {
225
369
  // Move cursor up one line
226
- const lines = value.split('\n');
370
+ const lines = displayValue.split('\n');
227
371
  let currentPos = 0;
228
372
  let lineIndex = 0;
229
373
  let columnIndex = 0;
@@ -252,7 +396,7 @@ const SimpleEnhancedInput = ({ value, onChange, placeholder = '', onSubmit, onCa
252
396
  }
253
397
  if (!showAutocomplete && key.downArrow) {
254
398
  // Move cursor down one line
255
- const lines = value.split('\n');
399
+ const lines = displayValue.split('\n');
256
400
  let currentPos = 0;
257
401
  let lineIndex = 0;
258
402
  let columnIndex = 0;
@@ -287,7 +431,7 @@ const SimpleEnhancedInput = ({ value, onChange, placeholder = '', onSubmit, onCa
287
431
  if (key.leftArrow) {
288
432
  if (key.meta || key.alt || key.option) {
289
433
  // Move to previous word
290
- const newPos = findWordBoundary(value, cursorPosition, 'left');
434
+ const newPos = findWordBoundary(displayValue, cursorPosition, 'left');
291
435
  moveCursor(newPos);
292
436
  }
293
437
  else {
@@ -298,7 +442,7 @@ const SimpleEnhancedInput = ({ value, onChange, placeholder = '', onSubmit, onCa
298
442
  if (key.rightArrow) {
299
443
  if (key.meta || key.alt || key.option) {
300
444
  // Move to next word
301
- const newPos = findWordBoundary(value, cursorPosition, 'right');
445
+ const newPos = findWordBoundary(displayValue, cursorPosition, 'right');
302
446
  moveCursor(newPos);
303
447
  }
304
448
  else {
@@ -312,14 +456,14 @@ const SimpleEnhancedInput = ({ value, onChange, placeholder = '', onSubmit, onCa
312
456
  return;
313
457
  }
314
458
  if (key.ctrl && input === 'e') {
315
- moveCursor(value.length);
459
+ moveCursor(displayValue.length);
316
460
  return;
317
461
  }
318
462
  // Deletion
319
463
  if (key.backspace || key.delete) {
320
464
  if (key.meta || key.alt || key.option) {
321
465
  // Delete word
322
- const wordStart = findWordBoundary(value, cursorPosition, 'left');
466
+ const wordStart = findWordBoundary(displayValue, cursorPosition, 'left');
323
467
  deleteText(wordStart, cursorPosition);
324
468
  }
325
469
  else if (cursorPosition > 0) {
@@ -329,84 +473,155 @@ const SimpleEnhancedInput = ({ value, onChange, placeholder = '', onSubmit, onCa
329
473
  }
330
474
  // Text input
331
475
  if (input && !key.ctrl && !key.meta) {
476
+ // Detect paste by checking if input is unusually long or contains special characters
477
+ const isPaste = input.length > 1 && shouldFormatPaste(input);
478
+ // Don't filter input here - just use it as-is
479
+ // The terminal wrapping shouldn't introduce actual newlines
480
+ const filteredInput = input;
332
481
  // Check for @ symbol to trigger autocomplete
333
- if (input === '@') {
482
+ if (filteredInput === '@') {
334
483
  setShowAutocomplete(true);
335
484
  setAutocompleteStartPos(cursorPosition + 1);
336
485
  setAutocompleteQuery('');
337
- insertText(input, cursorPosition);
486
+ insertText(filteredInput, cursorPosition, false);
338
487
  }
339
488
  else if (showAutocomplete) {
340
489
  // Update autocomplete query
341
- insertText(input, cursorPosition);
342
- const newQuery = value.slice(autocompleteStartPos, cursorPosition + 1) + input;
490
+ insertText(filteredInput, cursorPosition, isPaste);
491
+ const newQuery = displayValue.slice(autocompleteStartPos, cursorPosition + 1) + filteredInput;
343
492
  setAutocompleteQuery(newQuery);
344
493
  }
345
494
  else {
346
- insertText(input, cursorPosition);
495
+ insertText(filteredInput, cursorPosition, isPaste);
347
496
  }
348
497
  }
349
498
  });
350
- // Build display with cursor (handles multiline)
499
+ // Build display with cursor (handles multiline and wrapping)
351
500
  const getDisplayWithCursor = () => {
352
- const before = value.slice(0, cursorPosition);
353
- const after = value.slice(cursorPosition);
501
+ const before = displayValue.slice(0, cursorPosition);
502
+ const after = displayValue.slice(cursorPosition);
354
503
  const cursorChar = after[0] || ' ';
355
504
  const remaining = after.slice(1);
356
- // For multiline, we need to handle newlines properly
357
- const beforeLines = before.split('\n');
358
- const cursorAndAfter = cursorChar + remaining;
359
- const afterLines = cursorAndAfter.split('\n');
360
- // If we have multiple lines, render them separately
361
- if (beforeLines.length > 1 || afterLines.length > 1) {
362
- return (React.createElement(Box, { flexDirection: "column" }, beforeLines.map((line, i) => {
363
- if (i < beforeLines.length - 1) {
364
- // Complete lines before cursor line
365
- return React.createElement(Text, { key: `before-${i}` }, line);
505
+ // Split text into visual lines accounting for terminal width
506
+ const splitIntoVisualLines = (text) => {
507
+ const visualLines = [];
508
+ const logicalLines = text.split('\n');
509
+ const wrapWidth = Math.max(1, terminalWidth - 2); // Leave room for cursor and border, ensure min width of 1
510
+ for (let lineIdx = 0; lineIdx < logicalLines.length; lineIdx++) {
511
+ const logicalLine = logicalLines[lineIdx];
512
+ if (logicalLine.length === 0) {
513
+ // Empty line
514
+ visualLines.push('');
366
515
  }
367
516
  else {
368
- // Last line before cursor + cursor + first line after cursor
369
- const firstAfterLine = afterLines[0];
370
- const cursorIsNewline = cursorChar === '\n';
371
- if (cursorIsNewline) {
372
- // Cursor is on a newline
373
- return (React.createElement(Box, { key: `cursor-line`, flexDirection: "column" },
374
- React.createElement(Box, null,
375
- React.createElement(Text, null, line),
376
- React.createElement(Text, { inverse: true }, " ")),
377
- afterLines.slice(1).map((afterLine, j) => (React.createElement(Text, { key: `after-${j}` }, afterLine)))));
517
+ // Split long lines into wrapped visual lines
518
+ for (let i = 0; i < logicalLine.length; i += wrapWidth) {
519
+ const chunk = logicalLine.slice(i, i + wrapWidth);
520
+ visualLines.push(chunk);
378
521
  }
379
- else {
380
- // Normal cursor in middle of text
381
- const cursorLineChar = firstAfterLine[0] || ' ';
382
- const restOfLine = firstAfterLine.slice(1);
383
- return (React.createElement(Box, { key: `cursor-line`, flexDirection: "column" },
384
- React.createElement(Box, null,
385
- React.createElement(Text, null, line),
386
- React.createElement(Text, { inverse: true }, cursorLineChar),
387
- React.createElement(Text, null, restOfLine)),
388
- afterLines.slice(1).map((afterLine, j) => (React.createElement(Text, { key: `after-${j}` }, afterLine)))));
522
+ }
523
+ }
524
+ return visualLines;
525
+ };
526
+ // Calculate visual cursor position
527
+ const calculateVisualCursorPosition = () => {
528
+ let totalCharsProcessed = 0;
529
+ let currentVisualLine = 0;
530
+ const logicalLines = displayValue.split('\n');
531
+ const wrapWidth = Math.max(1, terminalWidth - 2); // Ensure wrapWidth is at least 1
532
+ for (let logicalLineIdx = 0; logicalLineIdx < logicalLines.length; logicalLineIdx++) {
533
+ const logicalLine = logicalLines[logicalLineIdx];
534
+ const lineStartPos = totalCharsProcessed;
535
+ const lineEndPos = lineStartPos + logicalLine.length;
536
+ // Check if cursor is in this logical line
537
+ if (cursorPosition >= lineStartPos && cursorPosition <= lineEndPos) {
538
+ const positionInLogicalLine = cursorPosition - lineStartPos;
539
+ // Calculate visual position within this logical line
540
+ if (logicalLine.length === 0) {
541
+ // Empty line
542
+ return { visualLine: currentVisualLine, visualColumn: 0 };
389
543
  }
544
+ const visualLineWithinLogical = Math.floor(positionInLogicalLine / wrapWidth);
545
+ const visualColumn = positionInLogicalLine % wrapWidth;
546
+ return {
547
+ visualLine: currentVisualLine + visualLineWithinLogical,
548
+ visualColumn: visualColumn
549
+ };
550
+ }
551
+ // Move past this logical line
552
+ if (logicalLine.length === 0) {
553
+ currentVisualLine += 1;
554
+ }
555
+ else {
556
+ const visualLinesForThisLogicalLine = Math.ceil(Math.max(1, logicalLine.length) / wrapWidth);
557
+ currentVisualLine += visualLinesForThisLogicalLine;
558
+ }
559
+ totalCharsProcessed += logicalLine.length + 1; // +1 for the newline character
560
+ }
561
+ // Cursor at end of text - make sure we return valid line number
562
+ const maxVisualLine = Math.max(0, visualLines.length - 1);
563
+ return { visualLine: Math.min(currentVisualLine - 1, maxVisualLine), visualColumn: 0 };
564
+ };
565
+ // Get visual lines for the entire text
566
+ const visualLines = splitIntoVisualLines(displayValue);
567
+ const { visualLine: cursorVisualLine, visualColumn: cursorVisualColumn } = calculateVisualCursorPosition();
568
+ // Build the display with proper cursor positioning
569
+ if (visualLines.length > 1) {
570
+ return (React.createElement(Box, { flexDirection: "column" }, visualLines.map((line, lineIndex) => {
571
+ if (lineIndex === cursorVisualLine) {
572
+ // This is the line with the cursor
573
+ const beforeCursor = line.slice(0, cursorVisualColumn);
574
+ const atCursor = line[cursorVisualColumn] || ' ';
575
+ const afterCursor = line.slice(cursorVisualColumn + 1);
576
+ return (React.createElement(Box, { key: `line-${lineIndex}` },
577
+ React.createElement(Text, null, beforeCursor),
578
+ React.createElement(Text, { inverse: true }, atCursor),
579
+ React.createElement(Text, null, afterCursor)));
580
+ }
581
+ else {
582
+ // Regular line without cursor
583
+ return React.createElement(Text, { key: `line-${lineIndex}` }, line);
390
584
  }
391
585
  })));
392
586
  }
393
- // Single line display
394
- return (React.createElement(React.Fragment, null,
395
- React.createElement(Text, null, before),
396
- React.createElement(Text, { inverse: true }, cursorChar),
397
- React.createElement(Text, null, remaining)));
587
+ // Single line display (no wrapping needed)
588
+ if (displayValue.length < terminalWidth - 2) {
589
+ return (React.createElement(React.Fragment, null,
590
+ React.createElement(Text, null, before),
591
+ React.createElement(Text, { inverse: true }, cursorChar),
592
+ React.createElement(Text, null, remaining)));
593
+ }
594
+ // Single line but needs wrapping
595
+ return (React.createElement(Box, { flexDirection: "column" }, visualLines.map((line, lineIndex) => {
596
+ if (lineIndex === cursorVisualLine) {
597
+ const beforeCursor = line.slice(0, cursorVisualColumn);
598
+ const atCursor = line[cursorVisualColumn] || ' ';
599
+ const afterCursor = line.slice(cursorVisualColumn + 1);
600
+ return (React.createElement(Box, { key: `line-${lineIndex}` },
601
+ React.createElement(Text, null, beforeCursor),
602
+ React.createElement(Text, { inverse: true }, atCursor),
603
+ React.createElement(Text, null, afterCursor)));
604
+ }
605
+ else {
606
+ return React.createElement(Text, { key: `line-${lineIndex}` }, line);
607
+ }
608
+ })));
398
609
  };
399
610
  return (React.createElement(Box, { flexDirection: "column" },
400
- React.createElement(Box, null, value ? (getDisplayWithCursor()) : (React.createElement(React.Fragment, null,
611
+ React.createElement(Box, null, displayValue ? (getDisplayWithCursor()) : (React.createElement(React.Fragment, null,
401
612
  React.createElement(Text, { inverse: true }, " "),
402
613
  placeholder && React.createElement(Text, { dimColor: true }, placeholder)))),
403
614
  showAutocomplete && fileMatches.length > 0 && (React.createElement(Box, { flexDirection: "column", marginTop: 1, borderStyle: "single", borderColor: "cyan", paddingX: 1 },
404
- React.createElement(Text, { color: "cyan", dimColor: true }, autocompleteQuery ? `Files matching: @${autocompleteQuery}` : 'Files in current directory:'),
615
+ React.createElement(Text, { color: "cyan", dimColor: true }, autocompleteQuery.endsWith('/')
616
+ ? `Browsing: @${autocompleteQuery}`
617
+ : autocompleteQuery
618
+ ? `Files matching: @${autocompleteQuery}`
619
+ : 'Files in current directory:'),
405
620
  fileMatches.map((match, index) => (React.createElement(Box, { key: match.path },
406
621
  React.createElement(Text, { color: index === selectedMatchIndex ? 'cyan' : 'gray' },
407
622
  index === selectedMatchIndex ? '▶ ' : ' ',
408
623
  match.displayPath)))),
409
- React.createElement(Text, { dimColor: true, italic: true }, "\u2191\u2193 to select, Tab/Enter to complete, Esc to cancel")))));
624
+ React.createElement(Text, { dimColor: true, italic: true }, "\u2191\u2193 select \u2022 \u2192 enter directory \u2022 \u2190 go back \u2022 Tab/Enter complete \u2022 Esc cancel")))));
410
625
  };
411
626
  export default SimpleEnhancedInput;
412
627
  //# sourceMappingURL=SimpleEnhancedInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleEnhancedInput.js","sourceRoot":"","sources":["../src/SimpleEnhancedInput.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SimpleEnhancedInput.js","sourceRoot":"","sources":["../src/SimpleEnhancedInput.tsx"],"names":[],"mappings":"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"}