@opentui/core 0.1.53 → 0.1.54

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-vhxgbbed.js";
8
+ } from "./index-aedd54rx.js";
9
9
 
10
10
  // ../../node_modules/omggif/omggif.js
11
11
  var require_omggif = __commonJS((exports) => {
package/Renderable.d.ts CHANGED
@@ -111,7 +111,7 @@ export declare abstract class BaseRenderable extends EventEmitter {
111
111
  }
112
112
  export declare abstract class Renderable extends BaseRenderable {
113
113
  static renderablesByNumber: Map<number, Renderable>;
114
- private _isDestroyed;
114
+ protected _isDestroyed: boolean;
115
115
  protected _ctx: RenderContext;
116
116
  protected _translateX: number;
117
117
  protected _translateY: number;
@@ -1889,15 +1889,45 @@ var functionalKeyMap = {
1889
1889
  R: "f3",
1890
1890
  S: "f4"
1891
1891
  };
1892
- function parseKittyFunctionalKey(sequence) {
1893
- const functionalRe = /^\x1b\[1;(\d+):(\d+)([A-Z])$/;
1894
- const match = functionalRe.exec(sequence);
1892
+ var tildeKeyMap = {
1893
+ "1": "home",
1894
+ "2": "insert",
1895
+ "3": "delete",
1896
+ "4": "end",
1897
+ "5": "pageup",
1898
+ "6": "pagedown",
1899
+ "7": "home",
1900
+ "8": "end",
1901
+ "11": "f1",
1902
+ "12": "f2",
1903
+ "13": "f3",
1904
+ "14": "f4",
1905
+ "15": "f5",
1906
+ "17": "f6",
1907
+ "18": "f7",
1908
+ "19": "f8",
1909
+ "20": "f9",
1910
+ "21": "f10",
1911
+ "23": "f11",
1912
+ "24": "f12"
1913
+ };
1914
+ function parseKittySpecialKey(sequence) {
1915
+ const specialKeyRe = /^\x1b\[(\d+);(\d+):(\d+)([A-Z~])$/;
1916
+ const match = specialKeyRe.exec(sequence);
1895
1917
  if (!match)
1896
1918
  return null;
1897
- const modifierStr = match[1];
1898
- const eventTypeStr = match[2];
1899
- const keyChar = match[3];
1900
- const keyName = functionalKeyMap[keyChar];
1919
+ const keyNumOrOne = match[1];
1920
+ const modifierStr = match[2];
1921
+ const eventTypeStr = match[3];
1922
+ const terminator = match[4];
1923
+ let keyName;
1924
+ if (terminator === "~") {
1925
+ keyName = tildeKeyMap[keyNumOrOne];
1926
+ } else {
1927
+ if (keyNumOrOne !== "1")
1928
+ return null;
1929
+ keyName = functionalKeyMap[terminator];
1930
+ }
1901
1931
  if (!keyName)
1902
1932
  return null;
1903
1933
  const key = {
@@ -1941,9 +1971,9 @@ function parseKittyFunctionalKey(sequence) {
1941
1971
  return key;
1942
1972
  }
1943
1973
  function parseKittyKeyboard(sequence) {
1944
- const functionalResult = parseKittyFunctionalKey(sequence);
1945
- if (functionalResult)
1946
- return functionalResult;
1974
+ const specialResult = parseKittySpecialKey(sequence);
1975
+ if (specialResult)
1976
+ return specialResult;
1947
1977
  const kittyRe = /^\x1b\[([^\x1b]+)u$/;
1948
1978
  const match = kittyRe.exec(sequence);
1949
1979
  if (!match)
@@ -11507,7 +11537,7 @@ class FFIRenderLib {
11507
11537
  lineWraps: struct.wraps
11508
11538
  };
11509
11539
  }
11510
- textBufferViewGetLineCount(view) {
11540
+ textBufferViewGetVirtualLineCount(view) {
11511
11541
  return this.opentui.symbols.textBufferViewGetVirtualLineCount(view);
11512
11542
  }
11513
11543
  textBufferViewGetLineInfoDirect(view, outPtr) {
@@ -12506,19 +12536,27 @@ class Renderable extends BaseRenderable {
12506
12536
  return false;
12507
12537
  }
12508
12538
  focus() {
12509
- if (this._focused || !this._focusable)
12539
+ if (this._isDestroyed || this._focused || !this._focusable)
12510
12540
  return;
12511
12541
  this._ctx.focusRenderable(this);
12512
12542
  this._focused = true;
12513
12543
  this.requestRender();
12514
12544
  this.keypressHandler = (key) => {
12545
+ if (this._isDestroyed)
12546
+ return;
12515
12547
  this._keyListeners["down"]?.(key);
12548
+ if (this._isDestroyed)
12549
+ return;
12516
12550
  if (!key.defaultPrevented && this.handleKeyPress) {
12517
12551
  this.handleKeyPress(key);
12518
12552
  }
12519
12553
  };
12520
12554
  this.pasteHandler = (event) => {
12555
+ if (this._isDestroyed)
12556
+ return;
12521
12557
  this._pasteListener?.call(this, event);
12558
+ if (this._isDestroyed)
12559
+ return;
12522
12560
  if (!event.defaultPrevented && this.handlePaste) {
12523
12561
  this.handlePaste(event);
12524
12562
  }
@@ -13214,7 +13252,11 @@ class Renderable extends BaseRenderable {
13214
13252
  if (!this.visible)
13215
13253
  return;
13216
13254
  this.onUpdate(deltaTime);
13255
+ if (this._isDestroyed)
13256
+ return;
13217
13257
  this.updateFromLayout();
13258
+ if (this._isDestroyed)
13259
+ return;
13218
13260
  renderList.push({ action: "render", renderable: this });
13219
13261
  this.ensureZIndexSorted();
13220
13262
  const shouldPushScissor = this._overflow !== "visible" && this.width > 0 && this.height > 0;
@@ -13442,7 +13484,9 @@ class RootRenderable extends Renderable {
13442
13484
  const command = this.renderList[i];
13443
13485
  switch (command.action) {
13444
13486
  case "render":
13445
- command.renderable.render(buffer, deltaTime);
13487
+ if (!command.renderable.isDestroyed) {
13488
+ command.renderable.render(buffer, deltaTime);
13489
+ }
13446
13490
  break;
13447
13491
  case "pushScissorRect":
13448
13492
  buffer.pushScissorRect(command.x, command.y, command.width, command.height);
@@ -15048,6 +15092,7 @@ Captured output:
15048
15092
  if (isCapabilityResponse(sequence)) {
15049
15093
  this.lib.processCapabilityResponse(this.rendererPtr, sequence);
15050
15094
  this._capabilities = this.lib.getTerminalCapabilities(this.rendererPtr);
15095
+ this.emit("capabilities", this._capabilities);
15051
15096
  return true;
15052
15097
  }
15053
15098
  return false;
@@ -15786,5 +15831,5 @@ Captured output:
15786
15831
 
15787
15832
  export { __toESM, __commonJS, __export, __require, Edge, Gutter, MeasureMode, 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 };
15788
15833
 
15789
- //# debugId=1108F3F0A4484C0264756E2164756E21
15790
- //# sourceMappingURL=index-vhxgbbed.js.map
15834
+ //# debugId=CC37CF80C128F71F64756E2164756E21
15835
+ //# sourceMappingURL=index-aedd54rx.js.map