@opentui/core 0.1.45 → 0.1.47

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/3d.js CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  __export,
6
6
  __require,
7
7
  __toESM
8
- } from "./index-bd7k864e.js";
8
+ } from "./index-f5t80vp1.js";
9
9
 
10
10
  // ../../node_modules/omggif/omggif.js
11
11
  var require_omggif = __commonJS((exports) => {
@@ -2200,8 +2200,18 @@ var parseKeypress = (s = "", options = {}) => {
2200
2200
  key.name = s;
2201
2201
  } else if (parts = metaKeyCodeRe.exec(s)) {
2202
2202
  key.meta = true;
2203
- key.shift = /^[A-Z]$/.test(parts[1]);
2204
- key.name = parts[1];
2203
+ const char = parts[1];
2204
+ const isUpperCase = /^[A-Z]$/.test(char);
2205
+ if (char === "F") {
2206
+ key.name = "right";
2207
+ } else if (char === "B") {
2208
+ key.name = "left";
2209
+ } else if (isUpperCase) {
2210
+ key.shift = true;
2211
+ key.name = char;
2212
+ } else {
2213
+ key.name = char;
2214
+ }
2205
2215
  } else if (s.length === 2 && s[0] === "\x1B" && s[1] <= "\x1A") {
2206
2216
  key.meta = true;
2207
2217
  key.ctrl = true;
@@ -2297,15 +2307,11 @@ class PasteEvent {
2297
2307
 
2298
2308
  class KeyHandler extends EventEmitter {
2299
2309
  useKittyKeyboard;
2300
- suspended = false;
2301
2310
  constructor(useKittyKeyboard = false) {
2302
2311
  super();
2303
2312
  this.useKittyKeyboard = useKittyKeyboard;
2304
2313
  }
2305
2314
  processInput(data) {
2306
- if (this.suspended) {
2307
- return false;
2308
- }
2309
2315
  const parsedKey = parseKeypress(data, { useKittyKeyboard: this.useKittyKeyboard });
2310
2316
  if (!parsedKey) {
2311
2317
  return false;
@@ -2327,18 +2333,9 @@ class KeyHandler extends EventEmitter {
2327
2333
  return true;
2328
2334
  }
2329
2335
  processPaste(data) {
2330
- if (this.suspended) {
2331
- return;
2332
- }
2333
2336
  const cleanedData = Bun.stripANSI(data);
2334
2337
  this.emit("paste", new PasteEvent(cleanedData));
2335
2338
  }
2336
- suspend() {
2337
- this.suspended = true;
2338
- }
2339
- resume() {
2340
- this.suspended = false;
2341
- }
2342
2339
  }
2343
2340
 
2344
2341
  class InternalKeyHandler extends KeyHandler {
@@ -6435,7 +6432,7 @@ class Selection {
6435
6432
  return aY - bY;
6436
6433
  }
6437
6434
  return a.x - b.x;
6438
- }).map((renderable) => renderable.getSelectedText()).filter((text) => text);
6435
+ }).filter((renderable) => !renderable.isDestroyed).map((renderable) => renderable.getSelectedText()).filter((text) => text);
6439
6436
  return selectedTexts.join(`
6440
6437
  `);
6441
6438
  }
@@ -6628,10 +6625,10 @@ No environment variables registered.
6628
6625
  `;
6629
6626
  if (config.default !== undefined) {
6630
6627
  const defaultValue = typeof config.default === "string" ? `"${config.default}"` : String(config.default);
6631
- markdown += `**Default:** \`${defaultValue}\`
6628
+ markdown += `**Default:** \`${defaultValue}\`
6632
6629
  `;
6633
6630
  } else {
6634
- markdown += `**Default:** *Required*
6631
+ markdown += `**Default:** *Required*
6635
6632
  `;
6636
6633
  }
6637
6634
  markdown += `
@@ -9935,6 +9932,18 @@ registerEnvVar({
9935
9932
  type: "boolean",
9936
9933
  default: false
9937
9934
  });
9935
+ registerEnvVar({
9936
+ name: "OPENTUI_FORCE_WCWIDTH",
9937
+ description: "Use wcwidth for character width calculations",
9938
+ type: "boolean",
9939
+ default: false
9940
+ });
9941
+ registerEnvVar({
9942
+ name: "OPENTUI_FORCE_UNICODE",
9943
+ description: "Force Mode 2026 Unicode support in terminal capabilities",
9944
+ type: "boolean",
9945
+ default: false
9946
+ });
9938
9947
  function getOpenTUILib(libPath) {
9939
9948
  const resolvedLibPath = libPath || targetLibPath;
9940
9949
  const rawSymbols = dlopen(resolvedLibPath, {
@@ -10170,6 +10179,14 @@ function getOpenTUILib(libPath) {
10170
10179
  args: ["ptr", "bool"],
10171
10180
  returns: "void"
10172
10181
  },
10182
+ suspendRenderer: {
10183
+ args: ["ptr"],
10184
+ returns: "void"
10185
+ },
10186
+ resumeRenderer: {
10187
+ args: ["ptr"],
10188
+ returns: "void"
10189
+ },
10173
10190
  createTextBuffer: {
10174
10191
  args: ["u8"],
10175
10192
  returns: "ptr"
@@ -11142,6 +11159,12 @@ class FFIRenderLib {
11142
11159
  setupTerminal(renderer, useAlternateScreen) {
11143
11160
  this.opentui.symbols.setupTerminal(renderer, useAlternateScreen);
11144
11161
  }
11162
+ suspendRenderer(renderer) {
11163
+ this.opentui.symbols.suspendRenderer(renderer);
11164
+ }
11165
+ resumeRenderer(renderer) {
11166
+ this.opentui.symbols.resumeRenderer(renderer);
11167
+ }
11145
11168
  queryPixelResolution(renderer) {
11146
11169
  this.opentui.symbols.queryPixelResolution(renderer);
11147
11170
  }
@@ -15212,25 +15235,28 @@ Captured output:
15212
15235
  this.internalPause();
15213
15236
  this._suspendedMouseEnabled = this._useMouse;
15214
15237
  this.disableMouse();
15215
- this._keyHandler.suspend();
15216
15238
  this._stdinBuffer.clear();
15239
+ this.stdin.removeListener("data", this.stdinListener);
15240
+ this.lib.suspendRenderer(this.rendererPtr);
15217
15241
  if (this.stdin.setRawMode) {
15218
15242
  this.stdin.setRawMode(false);
15219
15243
  }
15220
- this.stdin.pause();
15221
15244
  }
15222
15245
  resume() {
15223
15246
  if (this.stdin.setRawMode) {
15224
15247
  this.stdin.setRawMode(true);
15225
15248
  }
15226
- this.stdin.resume();
15227
- this._keyHandler.resume();
15249
+ this.stdin.on("data", this.stdinListener);
15250
+ this.lib.resumeRenderer(this.rendererPtr);
15228
15251
  if (this._suspendedMouseEnabled) {
15229
15252
  this.enableMouse();
15230
15253
  }
15254
+ this.currentRenderBuffer.clear(this.backgroundColor);
15231
15255
  this._controlState = this._previousControlState;
15232
15256
  if (this._previousControlState === "auto_started" /* AUTO_STARTED */ || this._previousControlState === "explicit_started" /* EXPLICIT_STARTED */) {
15233
15257
  this.internalStart();
15258
+ } else {
15259
+ this.requestRender();
15234
15260
  }
15235
15261
  }
15236
15262
  internalPause() {
@@ -15505,7 +15531,7 @@ Captured output:
15505
15531
  if (this.currentSelection) {
15506
15532
  this.walkSelectableRenderables(currentContainer, this.currentSelection.bounds, selectedRenderables, touchedRenderables);
15507
15533
  for (const renderable of this.currentSelection.touchedRenderables) {
15508
- if (!touchedRenderables.includes(renderable)) {
15534
+ if (!touchedRenderables.includes(renderable) && !renderable.isDestroyed) {
15509
15535
  renderable.onSelectionChanged(null);
15510
15536
  }
15511
15537
  }
@@ -15566,5 +15592,5 @@ Captured output:
15566
15592
 
15567
15593
  export { __toESM, __commonJS, __export, __require, Edge, Gutter, exports_src, BorderChars, getBorderFromSides, getBorderSides, borderCharsToArray, BorderCharArrays, nonAlphanumericKeys, parseKeypress, KeyEvent, PasteEvent, KeyHandler, InternalKeyHandler, RGBA, hexToRgb, rgbToHex, hsvToRgb, parseColor, fonts, measureText, getCharacterPositions, coordinateToCharacterIndex, renderFontToFrameBuffer, TextAttributes, DebugOverlayCorner, createTextAttributes, visualizeRenderableTree, isStyledText, StyledText, stringToStyledText, black, red, green, yellow, blue, magenta, cyan, white, brightBlack, brightRed, brightGreen, brightYellow, brightBlue, brightMagenta, brightCyan, brightWhite, bgBlack, bgRed, bgGreen, bgYellow, bgBlue, bgMagenta, bgCyan, bgWhite, bold, italic, underline, strikethrough, dim, reverse, blink, fg, bg, t, hastToStyledText, LinearScrollAccel, MacOSScrollAccel, StdinBuffer, parseAlign, parseBoxSizing, parseDimension, parseDirection, parseDisplay, parseEdge, parseFlexDirection, parseGutter, parseJustify, parseLogLevel, parseMeasureMode, parseOverflow, parsePositionType, parseUnit, parseWrap, MouseParser, Selection, convertGlobalToLocalSelection, ASCIIFontSelectionHelper, envRegistry, registerEnvVar, clearEnvCache, generateEnvMarkdown, generateEnvColored, env, treeSitterToTextChunks, treeSitterToStyledText, addDefaultParsers, TreeSitterClient, DataPathsManager, getDataPaths, extToFiletype, pathToFiletype, main, getTreeSitterClient, ExtmarksController, createExtmarksController, TerminalPalette, createTerminalPalette, TextBuffer, LogLevel2 as LogLevel, setRenderLibPath, resolveRenderLib, OptimizedBuffer, h, isVNode, maybeMakeRenderable, wrapWithDelegates, instantiate, delegate, isValidPercentage, LayoutEvents, RenderableEvents, isRenderable, BaseRenderable, Renderable, RootRenderable, ANSI, capture, ConsolePosition, TerminalConsole, getObjectsInViewport, MouseEvent, MouseButton, createCliRenderer, CliRenderEvents, RendererControlState, CliRenderer };
15568
15594
 
15569
- //# debugId=711734F333D5C51964756E2164756E21
15570
- //# sourceMappingURL=index-bd7k864e.js.map
15595
+ //# debugId=1D29369446F691A464756E2164756E21
15596
+ //# sourceMappingURL=index-f5t80vp1.js.map