@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 +1 -1
- package/{index-bd7k864e.js → index-f5t80vp1.js} +51 -25
- package/{index-bd7k864e.js.map → index-f5t80vp1.js.map} +8 -8
- package/index.js +35 -6
- package/index.js.map +3 -3
- package/lib/KeyHandler.d.ts +0 -3
- package/package.json +7 -7
- package/renderables/ScrollBox.d.ts +3 -0
- package/testing.js +6 -3
- package/testing.js.map +4 -4
- package/zig.d.ts +2 -0
package/3d.js
CHANGED
|
@@ -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
|
-
|
|
2204
|
-
|
|
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.
|
|
15227
|
-
this.
|
|
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=
|
|
15570
|
-
//# sourceMappingURL=index-
|
|
15595
|
+
//# debugId=1D29369446F691A464756E2164756E21
|
|
15596
|
+
//# sourceMappingURL=index-f5t80vp1.js.map
|