@opentui/core 0.1.75 → 0.1.76
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/ThreeRenderable.d.ts +40 -0
- package/3d/index.d.ts +1 -0
- package/3d.js +165 -2
- package/3d.js.map +4 -3
- package/Renderable.d.ts +1 -0
- package/console.d.ts +1 -1
- package/{index-s0q9547t.js → index-phtsmwj4.js} +132 -36
- package/index-phtsmwj4.js.map +61 -0
- package/index.js +65 -33
- package/index.js.map +7 -7
- package/lib/clipboard.d.ts +17 -0
- package/lib/selection.d.ts +3 -3
- package/package.json +7 -7
- package/parser.worker.js +1 -17
- package/parser.worker.js.map +2 -2
- package/renderables/Box.d.ts +1 -0
- package/renderables/Textarea.d.ts +2 -1
- package/renderer.d.ts +12 -3
- package/testing.js +6 -3
- package/testing.js.map +3 -3
- package/types.d.ts +3 -1
- package/zig-structs.d.ts +1 -1
- package/zig.d.ts +4 -1
- package/index-s0q9547t.js.map +0 -60
package/Renderable.d.ts
CHANGED
|
@@ -158,6 +158,7 @@ export declare abstract class Renderable extends BaseRenderable {
|
|
|
158
158
|
get id(): string;
|
|
159
159
|
set id(value: string);
|
|
160
160
|
get focusable(): boolean;
|
|
161
|
+
set focusable(value: boolean);
|
|
161
162
|
get ctx(): RenderContext;
|
|
162
163
|
get visible(): boolean;
|
|
163
164
|
get primaryAxis(): "row" | "column";
|
package/console.d.ts
CHANGED
|
@@ -56,7 +56,7 @@ export declare class TerminalConsole extends EventEmitter {
|
|
|
56
56
|
private _entryListener;
|
|
57
57
|
private _selectionStart;
|
|
58
58
|
private _selectionEnd;
|
|
59
|
-
private
|
|
59
|
+
private _isDragging;
|
|
60
60
|
private _copyButtonBounds;
|
|
61
61
|
private _autoScrollInterval;
|
|
62
62
|
private _keyBindingsMap;
|
|
@@ -2273,7 +2273,12 @@ var parseKeypress = (s = "", options = {}) => {
|
|
|
2273
2273
|
} else if (charCode === 127 || charCode === 8) {
|
|
2274
2274
|
key.name = "backspace";
|
|
2275
2275
|
} else {
|
|
2276
|
-
|
|
2276
|
+
const char = String.fromCharCode(charCode);
|
|
2277
|
+
key.name = char;
|
|
2278
|
+
key.sequence = char;
|
|
2279
|
+
if (charCode >= 48 && charCode <= 57) {
|
|
2280
|
+
key.number = true;
|
|
2281
|
+
}
|
|
2277
2282
|
}
|
|
2278
2283
|
return key;
|
|
2279
2284
|
}
|
|
@@ -6592,7 +6597,7 @@ class Selection {
|
|
|
6592
6597
|
_selectedRenderables = [];
|
|
6593
6598
|
_touchedRenderables = [];
|
|
6594
6599
|
_isActive = true;
|
|
6595
|
-
|
|
6600
|
+
_isDragging = true;
|
|
6596
6601
|
_isStart = false;
|
|
6597
6602
|
constructor(anchorRenderable, anchor, focus) {
|
|
6598
6603
|
this._anchor = new SelectionAnchor(anchorRenderable, anchor.x, anchor.y);
|
|
@@ -6619,11 +6624,11 @@ class Selection {
|
|
|
6619
6624
|
set isActive(value) {
|
|
6620
6625
|
this._isActive = value;
|
|
6621
6626
|
}
|
|
6622
|
-
get
|
|
6623
|
-
return this.
|
|
6627
|
+
get isDragging() {
|
|
6628
|
+
return this._isDragging;
|
|
6624
6629
|
}
|
|
6625
|
-
set
|
|
6626
|
-
this.
|
|
6630
|
+
set isDragging(value) {
|
|
6631
|
+
this._isDragging = value;
|
|
6627
6632
|
}
|
|
6628
6633
|
get bounds() {
|
|
6629
6634
|
const minX = Math.min(this._anchor.x, this._focus.x);
|
|
@@ -8492,6 +8497,7 @@ class ExtmarksController {
|
|
|
8492
8497
|
this.originalMoveDownVisual();
|
|
8493
8498
|
return;
|
|
8494
8499
|
}
|
|
8500
|
+
const currentOffset = this.editorView.getVisualCursor().offset;
|
|
8495
8501
|
this.originalMoveDownVisual();
|
|
8496
8502
|
const newOffset = this.editorView.getVisualCursor().offset;
|
|
8497
8503
|
const virtualExtmark = this.findVirtualExtmarkContaining(newOffset);
|
|
@@ -8499,7 +8505,9 @@ class ExtmarksController {
|
|
|
8499
8505
|
const distanceToStart = newOffset - virtualExtmark.start;
|
|
8500
8506
|
const distanceToEnd = virtualExtmark.end - newOffset;
|
|
8501
8507
|
if (distanceToStart < distanceToEnd) {
|
|
8502
|
-
|
|
8508
|
+
const adjustedOffset = virtualExtmark.start - 1;
|
|
8509
|
+
const targetOffset = adjustedOffset <= currentOffset ? virtualExtmark.end : adjustedOffset;
|
|
8510
|
+
this.editorView.setCursorByOffset(targetOffset);
|
|
8503
8511
|
} else {
|
|
8504
8512
|
this.editorView.setCursorByOffset(virtualExtmark.end);
|
|
8505
8513
|
}
|
|
@@ -9404,16 +9412,24 @@ class OptimizedBuffer {
|
|
|
9404
9412
|
this.guard();
|
|
9405
9413
|
const { char, fg: fg2, bg: bg2, attributes } = this.buffers;
|
|
9406
9414
|
const lines = [];
|
|
9415
|
+
const CHAR_FLAG_CONTINUATION = 3221225472 | 0;
|
|
9416
|
+
const CHAR_FLAG_MASK = 3221225472 | 0;
|
|
9417
|
+
const realTextBytes = this.getRealCharBytes(true);
|
|
9418
|
+
const realTextLines = new TextDecoder().decode(realTextBytes).split(`
|
|
9419
|
+
`);
|
|
9407
9420
|
for (let y = 0;y < this._height; y++) {
|
|
9408
9421
|
const spans = [];
|
|
9409
9422
|
let currentSpan = null;
|
|
9423
|
+
const lineChars = [...realTextLines[y] || ""];
|
|
9424
|
+
let charIdx = 0;
|
|
9410
9425
|
for (let x = 0;x < this._width; x++) {
|
|
9411
9426
|
const i = y * this._width + x;
|
|
9412
9427
|
const cp = char[i];
|
|
9413
9428
|
const cellFg = RGBA.fromValues(fg2[i * 4], fg2[i * 4 + 1], fg2[i * 4 + 2], fg2[i * 4 + 3]);
|
|
9414
9429
|
const cellBg = RGBA.fromValues(bg2[i * 4], bg2[i * 4 + 1], bg2[i * 4 + 2], bg2[i * 4 + 3]);
|
|
9415
9430
|
const cellAttrs = attributes[i] & 255;
|
|
9416
|
-
const
|
|
9431
|
+
const isContinuation = (cp & CHAR_FLAG_MASK) === CHAR_FLAG_CONTINUATION;
|
|
9432
|
+
const cellChar = isContinuation ? "" : lineChars[charIdx++] ?? " ";
|
|
9417
9433
|
if (currentSpan && currentSpan.fg.equals(cellFg) && currentSpan.bg.equals(cellBg) && currentSpan.attributes === cellAttrs) {
|
|
9418
9434
|
currentSpan.text += cellChar;
|
|
9419
9435
|
currentSpan.width += 1;
|
|
@@ -10243,6 +10259,7 @@ var TerminalCapabilitiesStruct = defineStruct([
|
|
|
10243
10259
|
["sync", "bool_u8"],
|
|
10244
10260
|
["bracketed_paste", "bool_u8"],
|
|
10245
10261
|
["hyperlinks", "bool_u8"],
|
|
10262
|
+
["osc52", "bool_u8"],
|
|
10246
10263
|
["explicit_cursor_positioning", "bool_u8"],
|
|
10247
10264
|
["term_name", "char*"],
|
|
10248
10265
|
["term_name_len", "u64", { lengthOf: "term_name" }],
|
|
@@ -10341,7 +10358,7 @@ function getOpenTUILib(libPath) {
|
|
|
10341
10358
|
returns: "void"
|
|
10342
10359
|
},
|
|
10343
10360
|
createRenderer: {
|
|
10344
|
-
args: ["u32", "u32", "bool"],
|
|
10361
|
+
args: ["u32", "u32", "bool", "bool"],
|
|
10345
10362
|
returns: "ptr"
|
|
10346
10363
|
},
|
|
10347
10364
|
destroyRenderer: {
|
|
@@ -10512,6 +10529,14 @@ function getOpenTUILib(libPath) {
|
|
|
10512
10529
|
args: ["ptr", "ptr", "usize"],
|
|
10513
10530
|
returns: "void"
|
|
10514
10531
|
},
|
|
10532
|
+
copyToClipboardOSC52: {
|
|
10533
|
+
args: ["ptr", "u8", "ptr", "usize"],
|
|
10534
|
+
returns: "bool"
|
|
10535
|
+
},
|
|
10536
|
+
clearClipboardOSC52: {
|
|
10537
|
+
args: ["ptr", "u8"],
|
|
10538
|
+
returns: "bool"
|
|
10539
|
+
},
|
|
10515
10540
|
bufferDrawSuperSampleBuffer: {
|
|
10516
10541
|
args: ["ptr", "u32", "u32", "ptr", "usize", "u8", "u32"],
|
|
10517
10542
|
returns: "void"
|
|
@@ -11472,8 +11497,10 @@ class FFIRenderLib {
|
|
|
11472
11497
|
setEventCallback(callbackPtr) {
|
|
11473
11498
|
this.opentui.symbols.setEventCallback(callbackPtr);
|
|
11474
11499
|
}
|
|
11475
|
-
createRenderer(width, height, options = {
|
|
11476
|
-
|
|
11500
|
+
createRenderer(width, height, options = {}) {
|
|
11501
|
+
const testing = options.testing ?? false;
|
|
11502
|
+
const remote = options.remote ?? false;
|
|
11503
|
+
return this.opentui.symbols.createRenderer(width, height, testing, remote);
|
|
11477
11504
|
}
|
|
11478
11505
|
destroyRenderer(renderer) {
|
|
11479
11506
|
this.opentui.symbols.destroyRenderer(renderer);
|
|
@@ -11695,6 +11722,12 @@ class FFIRenderLib {
|
|
|
11695
11722
|
const titleBytes = this.encoder.encode(title);
|
|
11696
11723
|
this.opentui.symbols.setTerminalTitle(renderer, titleBytes, titleBytes.length);
|
|
11697
11724
|
}
|
|
11725
|
+
copyToClipboardOSC52(renderer, target, payload) {
|
|
11726
|
+
return this.opentui.symbols.copyToClipboardOSC52(renderer, target, payload, payload.length);
|
|
11727
|
+
}
|
|
11728
|
+
clearClipboardOSC52(renderer, target) {
|
|
11729
|
+
return this.opentui.symbols.clearClipboardOSC52(renderer, target);
|
|
11730
|
+
}
|
|
11698
11731
|
addToHitGrid(renderer, x, y, width, height, id) {
|
|
11699
11732
|
this.opentui.symbols.addToHitGrid(renderer, x, y, width, height, id);
|
|
11700
11733
|
}
|
|
@@ -12449,6 +12482,7 @@ class FFIRenderLib {
|
|
|
12449
12482
|
sync: caps.sync,
|
|
12450
12483
|
bracketed_paste: caps.bracketed_paste,
|
|
12451
12484
|
hyperlinks: caps.hyperlinks,
|
|
12485
|
+
osc52: caps.osc52,
|
|
12452
12486
|
explicit_cursor_positioning: caps.explicit_cursor_positioning,
|
|
12453
12487
|
terminal: {
|
|
12454
12488
|
name: caps.term_name ?? "",
|
|
@@ -12980,6 +13014,9 @@ class Renderable extends BaseRenderable {
|
|
|
12980
13014
|
get focusable() {
|
|
12981
13015
|
return this._focusable;
|
|
12982
13016
|
}
|
|
13017
|
+
set focusable(value) {
|
|
13018
|
+
this._focusable = value;
|
|
13019
|
+
}
|
|
12983
13020
|
get ctx() {
|
|
12984
13021
|
return this._ctx;
|
|
12985
13022
|
}
|
|
@@ -14514,7 +14551,7 @@ class TerminalConsole extends EventEmitter8 {
|
|
|
14514
14551
|
_entryListener;
|
|
14515
14552
|
_selectionStart = null;
|
|
14516
14553
|
_selectionEnd = null;
|
|
14517
|
-
|
|
14554
|
+
_isDragging = false;
|
|
14518
14555
|
_copyButtonBounds = {
|
|
14519
14556
|
x: 0,
|
|
14520
14557
|
y: 0,
|
|
@@ -15111,7 +15148,7 @@ class TerminalConsole extends EventEmitter8 {
|
|
|
15111
15148
|
clearSelection() {
|
|
15112
15149
|
this._selectionStart = null;
|
|
15113
15150
|
this._selectionEnd = null;
|
|
15114
|
-
this.
|
|
15151
|
+
this._isDragging = false;
|
|
15115
15152
|
this.stopAutoScroll();
|
|
15116
15153
|
}
|
|
15117
15154
|
stopAutoScroll() {
|
|
@@ -15224,11 +15261,11 @@ class TerminalConsole extends EventEmitter8 {
|
|
|
15224
15261
|
this.clearSelection();
|
|
15225
15262
|
this._selectionStart = { line: lineIndex, col: colIndex };
|
|
15226
15263
|
this._selectionEnd = { line: lineIndex, col: colIndex };
|
|
15227
|
-
this.
|
|
15264
|
+
this._isDragging = true;
|
|
15228
15265
|
this.markNeedsRerender();
|
|
15229
15266
|
return true;
|
|
15230
15267
|
}
|
|
15231
|
-
if (event.type === "drag" && this.
|
|
15268
|
+
if (event.type === "drag" && this._isDragging) {
|
|
15232
15269
|
this._selectionEnd = { line: lineIndex, col: colIndex };
|
|
15233
15270
|
const logAreaHeight = Math.max(1, this.consoleHeight - 1);
|
|
15234
15271
|
const relativeY = localY - 1;
|
|
@@ -15243,9 +15280,9 @@ class TerminalConsole extends EventEmitter8 {
|
|
|
15243
15280
|
return true;
|
|
15244
15281
|
}
|
|
15245
15282
|
if (event.type === "up") {
|
|
15246
|
-
if (this.
|
|
15283
|
+
if (this._isDragging) {
|
|
15247
15284
|
this._selectionEnd = { line: lineIndex, col: colIndex };
|
|
15248
|
-
this.
|
|
15285
|
+
this._isDragging = false;
|
|
15249
15286
|
this.stopAutoScroll();
|
|
15250
15287
|
this.markNeedsRerender();
|
|
15251
15288
|
}
|
|
@@ -15303,6 +15340,38 @@ var ANSI = {
|
|
|
15303
15340
|
bracketedPasteEnd: "\x1B[201~"
|
|
15304
15341
|
};
|
|
15305
15342
|
|
|
15343
|
+
// src/lib/clipboard.ts
|
|
15344
|
+
function encodeOsc52Payload(text, encoder2 = new TextEncoder) {
|
|
15345
|
+
const base64 = Buffer.from(text).toString("base64");
|
|
15346
|
+
return encoder2.encode(base64);
|
|
15347
|
+
}
|
|
15348
|
+
|
|
15349
|
+
class Clipboard {
|
|
15350
|
+
lib;
|
|
15351
|
+
rendererPtr;
|
|
15352
|
+
constructor(lib, rendererPtr) {
|
|
15353
|
+
this.lib = lib;
|
|
15354
|
+
this.rendererPtr = rendererPtr;
|
|
15355
|
+
}
|
|
15356
|
+
copyToClipboardOSC52(text, target = 0 /* Clipboard */) {
|
|
15357
|
+
if (!this.isOsc52Supported()) {
|
|
15358
|
+
return false;
|
|
15359
|
+
}
|
|
15360
|
+
const payload = encodeOsc52Payload(text, this.lib.encoder);
|
|
15361
|
+
return this.lib.copyToClipboardOSC52(this.rendererPtr, target, payload);
|
|
15362
|
+
}
|
|
15363
|
+
clearClipboardOSC52(target = 0 /* Clipboard */) {
|
|
15364
|
+
if (!this.isOsc52Supported()) {
|
|
15365
|
+
return false;
|
|
15366
|
+
}
|
|
15367
|
+
return this.lib.clearClipboardOSC52(this.rendererPtr, target);
|
|
15368
|
+
}
|
|
15369
|
+
isOsc52Supported() {
|
|
15370
|
+
const caps = this.lib.getTerminalCapabilities(this.rendererPtr);
|
|
15371
|
+
return Boolean(caps?.osc52);
|
|
15372
|
+
}
|
|
15373
|
+
}
|
|
15374
|
+
|
|
15306
15375
|
// src/renderer.ts
|
|
15307
15376
|
import { EventEmitter as EventEmitter9 } from "events";
|
|
15308
15377
|
|
|
@@ -15513,7 +15582,7 @@ class MouseEvent {
|
|
|
15513
15582
|
modifiers;
|
|
15514
15583
|
scroll;
|
|
15515
15584
|
target;
|
|
15516
|
-
|
|
15585
|
+
isDragging;
|
|
15517
15586
|
_propagationStopped = false;
|
|
15518
15587
|
_defaultPrevented = false;
|
|
15519
15588
|
get propagationStopped() {
|
|
@@ -15531,7 +15600,7 @@ class MouseEvent {
|
|
|
15531
15600
|
this.modifiers = attributes.modifiers;
|
|
15532
15601
|
this.scroll = attributes.scroll;
|
|
15533
15602
|
this.source = attributes.source;
|
|
15534
|
-
this.
|
|
15603
|
+
this.isDragging = attributes.isDragging;
|
|
15535
15604
|
}
|
|
15536
15605
|
stopPropagation() {
|
|
15537
15606
|
this._propagationStopped = true;
|
|
@@ -15576,7 +15645,7 @@ async function createCliRenderer(config = {}) {
|
|
|
15576
15645
|
const height = stdout.rows || 24;
|
|
15577
15646
|
const renderHeight = config.experimental_splitHeight && config.experimental_splitHeight > 0 ? config.experimental_splitHeight : height;
|
|
15578
15647
|
const ziglib = resolveRenderLib();
|
|
15579
|
-
const rendererPtr = ziglib.createRenderer(width, renderHeight);
|
|
15648
|
+
const rendererPtr = ziglib.createRenderer(width, renderHeight, { remote: config.remote ?? false });
|
|
15580
15649
|
if (!rendererPtr) {
|
|
15581
15650
|
throw new Error("Failed to create renderer");
|
|
15582
15651
|
}
|
|
@@ -15686,6 +15755,7 @@ class CliRenderer extends EventEmitter9 {
|
|
|
15686
15755
|
lastOverRenderable;
|
|
15687
15756
|
currentSelection = null;
|
|
15688
15757
|
selectionContainers = [];
|
|
15758
|
+
clipboard;
|
|
15689
15759
|
_splitHeight = 0;
|
|
15690
15760
|
renderOffset = 0;
|
|
15691
15761
|
_terminalWidth = 0;
|
|
@@ -15793,6 +15863,7 @@ Captured output:
|
|
|
15793
15863
|
"SIGBUS",
|
|
15794
15864
|
"SIGFPE"
|
|
15795
15865
|
];
|
|
15866
|
+
this.clipboard = new Clipboard(this.lib, this.rendererPtr);
|
|
15796
15867
|
this.resizeDebounceDelay = config.debounceDelay || 100;
|
|
15797
15868
|
this.targetFps = config.targetFps || 30;
|
|
15798
15869
|
this.maxFps = config.maxFps || 60;
|
|
@@ -16251,6 +16322,21 @@ Captured output:
|
|
|
16251
16322
|
this._keyHandler.processPaste(data);
|
|
16252
16323
|
});
|
|
16253
16324
|
}
|
|
16325
|
+
dispatchMouseEvent(target, attributes) {
|
|
16326
|
+
const event = new MouseEvent(target, attributes);
|
|
16327
|
+
target.processMouseEvent(event);
|
|
16328
|
+
if (event.type === "down" && event.button === 0 /* LEFT */ && !event.defaultPrevented) {
|
|
16329
|
+
let current = target;
|
|
16330
|
+
while (current) {
|
|
16331
|
+
if (current.focusable) {
|
|
16332
|
+
current.focus();
|
|
16333
|
+
break;
|
|
16334
|
+
}
|
|
16335
|
+
current = current.parent;
|
|
16336
|
+
}
|
|
16337
|
+
}
|
|
16338
|
+
return event;
|
|
16339
|
+
}
|
|
16254
16340
|
handleMouseData(data) {
|
|
16255
16341
|
const mouseEvent = this.mouseParser.parseMouseEvent(data);
|
|
16256
16342
|
if (mouseEvent) {
|
|
@@ -16286,25 +16372,24 @@ Captured output:
|
|
|
16286
16372
|
const sameElement = maybeRenderableId === this.lastOverRenderableNum;
|
|
16287
16373
|
this.lastOverRenderableNum = maybeRenderableId;
|
|
16288
16374
|
const maybeRenderable = Renderable.renderablesByNumber.get(maybeRenderableId);
|
|
16289
|
-
if (mouseEvent.type === "down" && mouseEvent.button === 0 /* LEFT */ && !this.currentSelection?.
|
|
16375
|
+
if (mouseEvent.type === "down" && mouseEvent.button === 0 /* LEFT */ && !this.currentSelection?.isDragging && !mouseEvent.modifiers.ctrl) {
|
|
16290
16376
|
if (maybeRenderable && maybeRenderable.selectable && !maybeRenderable.isDestroyed && maybeRenderable.shouldStartSelection(mouseEvent.x, mouseEvent.y)) {
|
|
16291
16377
|
this.startSelection(maybeRenderable, mouseEvent.x, mouseEvent.y);
|
|
16292
|
-
|
|
16293
|
-
maybeRenderable.processMouseEvent(event2);
|
|
16378
|
+
this.dispatchMouseEvent(maybeRenderable, mouseEvent);
|
|
16294
16379
|
return true;
|
|
16295
16380
|
}
|
|
16296
16381
|
}
|
|
16297
|
-
if (mouseEvent.type === "drag" && this.currentSelection?.
|
|
16382
|
+
if (mouseEvent.type === "drag" && this.currentSelection?.isDragging) {
|
|
16298
16383
|
this.updateSelection(maybeRenderable, mouseEvent.x, mouseEvent.y);
|
|
16299
16384
|
if (maybeRenderable) {
|
|
16300
|
-
const event2 = new MouseEvent(maybeRenderable, { ...mouseEvent,
|
|
16385
|
+
const event2 = new MouseEvent(maybeRenderable, { ...mouseEvent, isDragging: true });
|
|
16301
16386
|
maybeRenderable.processMouseEvent(event2);
|
|
16302
16387
|
}
|
|
16303
16388
|
return true;
|
|
16304
16389
|
}
|
|
16305
|
-
if (mouseEvent.type === "up" && this.currentSelection?.
|
|
16390
|
+
if (mouseEvent.type === "up" && this.currentSelection?.isDragging) {
|
|
16306
16391
|
if (maybeRenderable) {
|
|
16307
|
-
const event2 = new MouseEvent(maybeRenderable, { ...mouseEvent,
|
|
16392
|
+
const event2 = new MouseEvent(maybeRenderable, { ...mouseEvent, isDragging: true });
|
|
16308
16393
|
maybeRenderable.processMouseEvent(event2);
|
|
16309
16394
|
}
|
|
16310
16395
|
this.finishSelection();
|
|
@@ -16312,7 +16397,7 @@ Captured output:
|
|
|
16312
16397
|
}
|
|
16313
16398
|
if (mouseEvent.type === "down" && mouseEvent.button === 0 /* LEFT */ && this.currentSelection) {
|
|
16314
16399
|
if (mouseEvent.modifiers.ctrl) {
|
|
16315
|
-
this.currentSelection.
|
|
16400
|
+
this.currentSelection.isDragging = true;
|
|
16316
16401
|
this.updateSelection(maybeRenderable, mouseEvent.x, mouseEvent.y);
|
|
16317
16402
|
return true;
|
|
16318
16403
|
}
|
|
@@ -16354,15 +16439,14 @@ Captured output:
|
|
|
16354
16439
|
this.setCapturedRenderable(undefined);
|
|
16355
16440
|
this.requestRender();
|
|
16356
16441
|
}
|
|
16357
|
-
let event
|
|
16442
|
+
let event;
|
|
16358
16443
|
if (maybeRenderable) {
|
|
16359
16444
|
if (mouseEvent.type === "drag" && mouseEvent.button === 0 /* LEFT */) {
|
|
16360
16445
|
this.setCapturedRenderable(maybeRenderable);
|
|
16361
16446
|
} else {
|
|
16362
16447
|
this.setCapturedRenderable(undefined);
|
|
16363
16448
|
}
|
|
16364
|
-
event =
|
|
16365
|
-
maybeRenderable.processMouseEvent(event);
|
|
16449
|
+
event = this.dispatchMouseEvent(maybeRenderable, mouseEvent);
|
|
16366
16450
|
} else {
|
|
16367
16451
|
this.setCapturedRenderable(undefined);
|
|
16368
16452
|
this.lastOverRenderable = undefined;
|
|
@@ -16527,6 +16611,15 @@ Captured output:
|
|
|
16527
16611
|
setTerminalTitle(title) {
|
|
16528
16612
|
this.lib.setTerminalTitle(this.rendererPtr, title);
|
|
16529
16613
|
}
|
|
16614
|
+
copyToClipboardOSC52(text, target) {
|
|
16615
|
+
return this.clipboard.copyToClipboardOSC52(text, target);
|
|
16616
|
+
}
|
|
16617
|
+
clearClipboardOSC52(target) {
|
|
16618
|
+
return this.clipboard.clearClipboardOSC52(target);
|
|
16619
|
+
}
|
|
16620
|
+
isOsc52Supported() {
|
|
16621
|
+
return this._capabilities?.osc52 ?? this.clipboard.isOsc52Supported();
|
|
16622
|
+
}
|
|
16530
16623
|
dumpHitGrid() {
|
|
16531
16624
|
this.lib.dumpHitGrid(this.rendererPtr);
|
|
16532
16625
|
}
|
|
@@ -16915,10 +17008,13 @@ Captured output:
|
|
|
16915
17008
|
this.currentSelection.isStart = true;
|
|
16916
17009
|
this.notifySelectablesOfSelectionChange();
|
|
16917
17010
|
}
|
|
16918
|
-
updateSelection(currentRenderable, x, y) {
|
|
17011
|
+
updateSelection(currentRenderable, x, y, options) {
|
|
16919
17012
|
if (this.currentSelection) {
|
|
16920
17013
|
this.currentSelection.isStart = false;
|
|
16921
17014
|
this.currentSelection.focus = { x, y };
|
|
17015
|
+
if (options?.finishDragging) {
|
|
17016
|
+
this.currentSelection.isDragging = false;
|
|
17017
|
+
}
|
|
16922
17018
|
if (this.selectionContainers.length > 0) {
|
|
16923
17019
|
const currentContainer = this.selectionContainers[this.selectionContainers.length - 1];
|
|
16924
17020
|
if (!currentRenderable || !this.isWithinContainer(currentRenderable, currentContainer)) {
|
|
@@ -16939,7 +17035,7 @@ Captured output:
|
|
|
16939
17035
|
}
|
|
16940
17036
|
}
|
|
16941
17037
|
requestSelectionUpdate() {
|
|
16942
|
-
if (this.currentSelection?.
|
|
17038
|
+
if (this.currentSelection?.isDragging) {
|
|
16943
17039
|
const pointer = this._latestPointer;
|
|
16944
17040
|
const maybeRenderableId = this.hitTest(pointer.x, pointer.y);
|
|
16945
17041
|
const maybeRenderable = Renderable.renderablesByNumber.get(maybeRenderableId);
|
|
@@ -16957,7 +17053,7 @@ Captured output:
|
|
|
16957
17053
|
}
|
|
16958
17054
|
finishSelection() {
|
|
16959
17055
|
if (this.currentSelection) {
|
|
16960
|
-
this.currentSelection.
|
|
17056
|
+
this.currentSelection.isDragging = false;
|
|
16961
17057
|
this.emit("selection", this.currentSelection);
|
|
16962
17058
|
this.notifySelectablesOfSelectionChange();
|
|
16963
17059
|
}
|
|
@@ -17031,5 +17127,5 @@ Captured output:
|
|
|
17031
17127
|
|
|
17032
17128
|
export { __toESM, __commonJS, __export, __require, Edge, Gutter, MeasureMode, exports_src, isValidBorderStyle, parseBorderStyle, BorderChars, getBorderFromSides, getBorderSides, borderCharsToArray, BorderCharArrays, nonAlphanumericKeys, parseKeypress, KeyEvent, PasteEvent, KeyHandler, InternalKeyHandler, RGBA, hexToRgb, rgbToHex, hsvToRgb, parseColor, fonts, measureText, getCharacterPositions, coordinateToCharacterIndex, renderFontToFrameBuffer, TextAttributes, ATTRIBUTE_BASE_BITS, ATTRIBUTE_BASE_MASK, getBaseAttributes, DebugOverlayCorner, createTextAttributes, attributesWithLink, getLinkId, 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, link, t, hastToStyledText, LinearScrollAccel, MacOSScrollAccel, StdinBuffer, parseAlign, parseAlignItems, 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, defaultKeyAliases, mergeKeyAliases, mergeKeyBindings, getKeyBindingKey, buildKeyBindingsMap, capture, ConsolePosition, TerminalConsole, getObjectsInViewport, buildKittyKeyboardFlags, MouseEvent, MouseButton, createCliRenderer, CliRenderEvents, RendererControlState, CliRenderer };
|
|
17033
17129
|
|
|
17034
|
-
//# debugId=
|
|
17035
|
-
//# sourceMappingURL=index-
|
|
17130
|
+
//# debugId=B39292D59871DD3764756E2164756E21
|
|
17131
|
+
//# sourceMappingURL=index-phtsmwj4.js.map
|