@code-yeongyu/senpi-tui 2026.10.21-2 → 2026.10.23-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.
@@ -39,7 +39,7 @@ function commandDescription(command) {
39
39
  const hint = "argumentHint" in command && command.argumentHint ? command.argumentHint : undefined;
40
40
  const description = command.description ?? "";
41
41
  if (hint)
42
- return description ? `${hint} — ${description}` : hint;
42
+ return description ? `${hint} - ${description}` : hint;
43
43
  return description || undefined;
44
44
  }
45
45
  /**
@@ -41,7 +41,7 @@ export function getSlashCommandSuggestions(commands, prefix) {
41
41
  // A hint without an explicit `requiresArguments` means the command expects input.
42
42
  const requiresArguments = ("requiresArguments" in cmd ? cmd.requiresArguments : undefined) ?? hint !== undefined;
43
43
  const desc = cmd.description ?? "";
44
- const fullDesc = hint ? (desc ? `${hint} — ${desc}` : hint) : desc;
44
+ const fullDesc = hint ? (desc ? `${hint} - ${desc}` : hint) : desc;
45
45
  return [
46
46
  {
47
47
  name,
@@ -1,3 +1,4 @@
1
+ import { isKeyRelease } from "./keys.js";
1
2
  import { isMouseSequence, MOUSE_TRACKING, MouseClickSynthesizer, parseSgrMouseEvent, toTuiMouseEvent, } from "./mouse-input.js";
2
3
  import { isImageLine } from "./terminal-image.js";
3
4
  import { Container, dispatchMouseEvent, isTerminalReport, retargetMouseEvent, TuiBase, } from "./tui.js";
@@ -96,7 +97,7 @@ export class TuiMainScreen extends TuiBase {
96
97
  }
97
98
  handleMouseInput(data) {
98
99
  if (!isMouseSequence(data)) {
99
- if (this.yielded && !isTerminalReport(data))
100
+ if (this.yielded && !isTerminalReport(data) && !isKeyRelease(data))
100
101
  this.rearmAfterYield();
101
102
  return { consume: false };
102
103
  }
package/dist/utils.js CHANGED
@@ -68,7 +68,9 @@ export function __widthCacheStats() {
68
68
  }
69
69
  export const cjkBreakRegex = /[\p{Script_Extensions=Han}\p{Script_Extensions=Hiragana}\p{Script_Extensions=Katakana}\p{Script_Extensions=Hangul}\p{Script_Extensions=Bopomofo}]/u;
70
70
  // CJK letters remain part of words and paths; only punctuation can separate prose from completions.
71
- export const cjkPunctuationRegex = new RegExp(`(?:(?=\\p{Punctuation})${cjkBreakRegex.source}|[,.:;!?()[]{}“”‘’…—])`, "u");
71
+ export const cjkPunctuationRegex = new RegExp(
72
+ // oxlint-disable-next-line senpi-copy/no-em-dash-copy -- This character class recognizes punctuation; it is not displayed copy.
73
+ `(?:(?=\\p{Punctuation})${cjkBreakRegex.source}|[,.:;!?()[]{}“”‘’…—])`, "u");
72
74
  export const autocompleteSeparatorRegex = new RegExp(`(?:\\s|${cjkPunctuationRegex.source})`, "u");
73
75
  export const autocompleteBoundaryRegex = new RegExp(`(?:^|${autocompleteSeparatorRegex.source})`, "u");
74
76
  function isPrintableAscii(str) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/senpi-tui",
3
- "version": "2026.10.21-2",
3
+ "version": "2026.10.23-1",
4
4
  "description": "Terminal User Interface library with differential rendering for efficient text-based applications",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",