@opentui/core 0.0.0-20251209-015faccd → 0.0.0-20251211-4403a69a

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-4s3xr47p.js";
8
+ } from "./index-yhfn13z6.js";
9
9
 
10
10
  // ../../node_modules/omggif/omggif.js
11
11
  var require_omggif = __commonJS((exports) => {
package/Renderable.d.ts CHANGED
@@ -65,6 +65,7 @@ export interface RenderableOptions<T extends BaseRenderable = BaseRenderable> ex
65
65
  visible?: boolean;
66
66
  buffered?: boolean;
67
67
  live?: boolean;
68
+ opacity?: number;
68
69
  renderBefore?: (this: T, buffer: OptimizedBuffer, deltaTime: number) => void;
69
70
  renderAfter?: (this: T, buffer: OptimizedBuffer, deltaTime: number) => void;
70
71
  onMouse?: (this: T, event: MouseEvent) => void;
@@ -140,6 +141,7 @@ export declare abstract class Renderable extends BaseRenderable {
140
141
  protected _positionType: PositionTypeString;
141
142
  protected _overflow: OverflowString;
142
143
  protected _position: Position;
144
+ protected _opacity: number;
143
145
  private _flexShrink;
144
146
  private renderableMapById;
145
147
  protected _childrenInLayoutOrder: Renderable[];
@@ -160,6 +162,8 @@ export declare abstract class Renderable extends BaseRenderable {
160
162
  get visible(): boolean;
161
163
  get primaryAxis(): "row" | "column";
162
164
  set visible(value: boolean);
165
+ get opacity(): number;
166
+ set opacity(value: number);
163
167
  hasSelection(): boolean;
164
168
  onSelectionChanged(selection: Selection | null): boolean;
165
169
  getSelectedText(): string;
@@ -171,7 +175,7 @@ export declare abstract class Renderable extends BaseRenderable {
171
175
  get liveCount(): number;
172
176
  set live(value: boolean);
173
177
  protected propagateLiveCount(delta: number): void;
174
- handleKeyPress?(key: KeyEvent | string): boolean;
178
+ handleKeyPress?(key: KeyEvent): boolean;
175
179
  handlePaste?(event: PasteEvent): void;
176
180
  findDescendantById(id: string): Renderable | undefined;
177
181
  requestRender(): void;
@@ -284,7 +288,7 @@ export declare abstract class Renderable extends BaseRenderable {
284
288
  private applyEventOptions;
285
289
  }
286
290
  interface RenderCommandBase {
287
- action: "render" | "pushScissorRect" | "popScissorRect";
291
+ action: "render" | "pushScissorRect" | "popScissorRect" | "pushOpacity" | "popOpacity";
288
292
  }
289
293
  interface RenderCommandPushScissorRect extends RenderCommandBase {
290
294
  action: "pushScissorRect";
@@ -300,7 +304,14 @@ interface RenderCommandRender extends RenderCommandBase {
300
304
  action: "render";
301
305
  renderable: Renderable;
302
306
  }
303
- export type RenderCommand = RenderCommandPushScissorRect | RenderCommandPopScissorRect | RenderCommandRender;
307
+ interface RenderCommandPushOpacity extends RenderCommandBase {
308
+ action: "pushOpacity";
309
+ opacity: number;
310
+ }
311
+ interface RenderCommandPopOpacity extends RenderCommandBase {
312
+ action: "popOpacity";
313
+ }
314
+ export type RenderCommand = RenderCommandPushScissorRect | RenderCommandPopScissorRect | RenderCommandRender | RenderCommandPushOpacity | RenderCommandPopOpacity;
304
315
  export declare class RootRenderable extends Renderable {
305
316
  private renderList;
306
317
  constructor(ctx: RenderContext);
package/buffer.d.ts CHANGED
@@ -73,6 +73,10 @@ export declare class OptimizedBuffer {
73
73
  pushScissorRect(x: number, y: number, width: number, height: number): void;
74
74
  popScissorRect(): void;
75
75
  clearScissorRects(): void;
76
+ pushOpacity(opacity: number): void;
77
+ popOpacity(): void;
78
+ getCurrentOpacity(): number;
79
+ clearOpacity(): void;
76
80
  encodeUnicode(text: string): {
77
81
  ptr: Pointer;
78
82
  data: Array<{
package/edit-buffer.d.ts CHANGED
@@ -26,12 +26,26 @@ export declare class EditBuffer extends EventEmitter {
26
26
  private static subscribeToNativeEvents;
27
27
  private guard;
28
28
  get ptr(): Pointer;
29
- setText(text: string, opts?: {
30
- history?: boolean;
31
- }): void;
32
- setTextOwned(text: string, opts?: {
33
- history?: boolean;
34
- }): void;
29
+ /**
30
+ * Set text and completely reset the buffer state (clears history, resets add_buffer).
31
+ * Use this for initial text setting or when you want a clean slate.
32
+ */
33
+ setText(text: string): void;
34
+ /**
35
+ * Set text using owned memory and completely reset the buffer state (clears history, resets add_buffer).
36
+ * The native code takes ownership of the memory.
37
+ */
38
+ setTextOwned(text: string): void;
39
+ /**
40
+ * Replace text while preserving undo history (creates an undo point).
41
+ * Use this when you want the setText operation to be undoable.
42
+ */
43
+ replaceText(text: string): void;
44
+ /**
45
+ * Replace text using owned memory while preserving undo history (creates an undo point).
46
+ * The native code takes ownership of the memory.
47
+ */
48
+ replaceTextOwned(text: string): void;
35
49
  getLineCount(): number;
36
50
  getText(): string;
37
51
  insertChar(char: string): void;
package/editor-view.d.ts CHANGED
@@ -49,6 +49,8 @@ export declare class EditorView {
49
49
  getNextWordBoundary(): VisualCursor;
50
50
  getPrevWordBoundary(): VisualCursor;
51
51
  getEOL(): VisualCursor;
52
+ getVisualSOL(): VisualCursor;
53
+ getVisualEOL(): VisualCursor;
52
54
  getLineInfo(): LineInfo;
53
55
  getLogicalLineInfo(): LineInfo;
54
56
  get extmarks(): any;
@@ -2319,6 +2319,7 @@ var parseKeypress = (s = "", options = {}) => {
2319
2319
  const segs = [...s];
2320
2320
  if (segs[0] === "\x1B" && segs[1] === "\x1B") {
2321
2321
  key.option = true;
2322
+ key.meta = true;
2322
2323
  }
2323
2324
  const code = [parts[1], parts[2], parts[4], parts[6]].filter(Boolean).join("");
2324
2325
  const modifier = parseInt(parts[3] || parts[5] || "1", 10) - 1;
@@ -8266,6 +8267,7 @@ class ExtmarksController {
8266
8267
  originalInsertChar;
8267
8268
  originalDeleteRange;
8268
8269
  originalSetText;
8270
+ originalReplaceText;
8269
8271
  originalClear;
8270
8272
  originalNewLine;
8271
8273
  originalDeleteLine;
@@ -8286,6 +8288,7 @@ class ExtmarksController {
8286
8288
  this.originalInsertChar = editBuffer.insertChar.bind(editBuffer);
8287
8289
  this.originalDeleteRange = editBuffer.deleteRange.bind(editBuffer);
8288
8290
  this.originalSetText = editBuffer.setText.bind(editBuffer);
8291
+ this.originalReplaceText = editBuffer.replaceText.bind(editBuffer);
8289
8292
  this.originalClear = editBuffer.clear.bind(editBuffer);
8290
8293
  this.originalNewLine = editBuffer.newLine.bind(editBuffer);
8291
8294
  this.originalDeleteLine = editBuffer.deleteLine.bind(editBuffer);
@@ -8551,16 +8554,22 @@ class ExtmarksController {
8551
8554
  this.originalInsertChar(char);
8552
8555
  this.adjustExtmarksAfterInsertion(currentOffset, 1);
8553
8556
  };
8554
- this.editBuffer.setText = (text, opts) => {
8557
+ this.editBuffer.setText = (text) => {
8555
8558
  if (this.destroyed) {
8556
- this.originalSetText(text, opts);
8559
+ this.originalSetText(text);
8557
8560
  return;
8558
8561
  }
8559
- if (opts?.history !== false) {
8560
- this.saveSnapshot();
8562
+ this.clear();
8563
+ this.originalSetText(text);
8564
+ };
8565
+ this.editBuffer.replaceText = (text) => {
8566
+ if (this.destroyed) {
8567
+ this.originalReplaceText(text);
8568
+ return;
8561
8569
  }
8570
+ this.saveSnapshot();
8562
8571
  this.clear();
8563
- this.originalSetText(text, opts);
8572
+ this.originalReplaceText(text);
8564
8573
  };
8565
8574
  this.editBuffer.clear = () => {
8566
8575
  if (this.destroyed) {
@@ -8879,6 +8888,7 @@ class ExtmarksController {
8879
8888
  this.editBuffer.insertChar = this.originalInsertChar;
8880
8889
  this.editBuffer.deleteRange = this.originalDeleteRange;
8881
8890
  this.editBuffer.setText = this.originalSetText;
8891
+ this.editBuffer.replaceText = this.originalReplaceText;
8882
8892
  this.editBuffer.clear = this.originalClear;
8883
8893
  this.editBuffer.newLine = this.originalNewLine;
8884
8894
  this.editBuffer.deleteLine = this.originalDeleteLine;
@@ -9381,6 +9391,22 @@ class OptimizedBuffer {
9381
9391
  this.guard();
9382
9392
  this.lib.bufferClearScissorRects(this.bufferPtr);
9383
9393
  }
9394
+ pushOpacity(opacity) {
9395
+ this.guard();
9396
+ this.lib.bufferPushOpacity(this.bufferPtr, Math.max(0, Math.min(1, opacity)));
9397
+ }
9398
+ popOpacity() {
9399
+ this.guard();
9400
+ this.lib.bufferPopOpacity(this.bufferPtr);
9401
+ }
9402
+ getCurrentOpacity() {
9403
+ this.guard();
9404
+ return this.lib.bufferGetCurrentOpacity(this.bufferPtr);
9405
+ }
9406
+ clearOpacity() {
9407
+ this.guard();
9408
+ this.lib.bufferClearOpacity(this.bufferPtr);
9409
+ }
9384
9410
  encodeUnicode(text) {
9385
9411
  this.guard();
9386
9412
  return this.lib.encodeUnicode(text, this._widthMethod);
@@ -10310,6 +10336,22 @@ function getOpenTUILib(libPath) {
10310
10336
  args: ["ptr"],
10311
10337
  returns: "void"
10312
10338
  },
10339
+ bufferPushOpacity: {
10340
+ args: ["ptr", "f32"],
10341
+ returns: "void"
10342
+ },
10343
+ bufferPopOpacity: {
10344
+ args: ["ptr"],
10345
+ returns: "void"
10346
+ },
10347
+ bufferGetCurrentOpacity: {
10348
+ args: ["ptr"],
10349
+ returns: "f32"
10350
+ },
10351
+ bufferClearOpacity: {
10352
+ args: ["ptr"],
10353
+ returns: "void"
10354
+ },
10313
10355
  addToHitGrid: {
10314
10356
  args: ["ptr", "i32", "i32", "u32", "u32", "u32"],
10315
10357
  returns: "void"
@@ -10635,11 +10677,19 @@ function getOpenTUILib(libPath) {
10635
10677
  returns: "void"
10636
10678
  },
10637
10679
  editBufferSetText: {
10638
- args: ["ptr", "ptr", "usize", "bool"],
10680
+ args: ["ptr", "ptr", "usize"],
10639
10681
  returns: "void"
10640
10682
  },
10641
10683
  editBufferSetTextFromMem: {
10642
- args: ["ptr", "u8", "bool"],
10684
+ args: ["ptr", "u8"],
10685
+ returns: "void"
10686
+ },
10687
+ editBufferReplaceText: {
10688
+ args: ["ptr", "ptr", "usize"],
10689
+ returns: "void"
10690
+ },
10691
+ editBufferReplaceTextFromMem: {
10692
+ args: ["ptr", "u8"],
10643
10693
  returns: "void"
10644
10694
  },
10645
10695
  editBufferGetText: {
@@ -10842,6 +10892,14 @@ function getOpenTUILib(libPath) {
10842
10892
  args: ["ptr", "ptr"],
10843
10893
  returns: "void"
10844
10894
  },
10895
+ editorViewGetVisualSOL: {
10896
+ args: ["ptr", "ptr"],
10897
+ returns: "void"
10898
+ },
10899
+ editorViewGetVisualEOL: {
10900
+ args: ["ptr", "ptr"],
10901
+ returns: "void"
10902
+ },
10845
10903
  editorViewSetPlaceholderStyledText: {
10846
10904
  args: ["ptr", "ptr", "usize"],
10847
10905
  returns: "void"
@@ -11729,11 +11787,17 @@ class FFIRenderLib {
11729
11787
  destroyEditBuffer(buffer) {
11730
11788
  this.opentui.symbols.destroyEditBuffer(buffer);
11731
11789
  }
11732
- editBufferSetText(buffer, textBytes, retainHistory = true) {
11733
- this.opentui.symbols.editBufferSetText(buffer, textBytes, textBytes.length, retainHistory);
11790
+ editBufferSetText(buffer, textBytes) {
11791
+ this.opentui.symbols.editBufferSetText(buffer, textBytes, textBytes.length);
11792
+ }
11793
+ editBufferSetTextFromMem(buffer, memId) {
11794
+ this.opentui.symbols.editBufferSetTextFromMem(buffer, memId);
11734
11795
  }
11735
- editBufferSetTextFromMem(buffer, memId, retainHistory = true) {
11736
- this.opentui.symbols.editBufferSetTextFromMem(buffer, memId, retainHistory);
11796
+ editBufferReplaceText(buffer, textBytes) {
11797
+ this.opentui.symbols.editBufferReplaceText(buffer, textBytes, textBytes.length);
11798
+ }
11799
+ editBufferReplaceTextFromMem(buffer, memId) {
11800
+ this.opentui.symbols.editBufferReplaceTextFromMem(buffer, memId);
11737
11801
  }
11738
11802
  editBufferGetText(buffer, maxLength) {
11739
11803
  const outBuffer = new Uint8Array(maxLength);
@@ -11959,6 +12023,16 @@ class FFIRenderLib {
11959
12023
  this.opentui.symbols.editorViewGetEOL(view, ptr3(cursorBuffer));
11960
12024
  return VisualCursorStruct.unpack(cursorBuffer);
11961
12025
  }
12026
+ editorViewGetVisualSOL(view) {
12027
+ const cursorBuffer = new ArrayBuffer(VisualCursorStruct.size);
12028
+ this.opentui.symbols.editorViewGetVisualSOL(view, ptr3(cursorBuffer));
12029
+ return VisualCursorStruct.unpack(cursorBuffer);
12030
+ }
12031
+ editorViewGetVisualEOL(view) {
12032
+ const cursorBuffer = new ArrayBuffer(VisualCursorStruct.size);
12033
+ this.opentui.symbols.editorViewGetVisualEOL(view, ptr3(cursorBuffer));
12034
+ return VisualCursorStruct.unpack(cursorBuffer);
12035
+ }
11962
12036
  bufferPushScissorRect(buffer, x, y, width, height) {
11963
12037
  this.opentui.symbols.bufferPushScissorRect(buffer, x, y, width, height);
11964
12038
  }
@@ -11968,6 +12042,18 @@ class FFIRenderLib {
11968
12042
  bufferClearScissorRects(buffer) {
11969
12043
  this.opentui.symbols.bufferClearScissorRects(buffer);
11970
12044
  }
12045
+ bufferPushOpacity(buffer, opacity) {
12046
+ this.opentui.symbols.bufferPushOpacity(buffer, opacity);
12047
+ }
12048
+ bufferPopOpacity(buffer) {
12049
+ this.opentui.symbols.bufferPopOpacity(buffer);
12050
+ }
12051
+ bufferGetCurrentOpacity(buffer) {
12052
+ return this.opentui.symbols.bufferGetCurrentOpacity(buffer);
12053
+ }
12054
+ bufferClearOpacity(buffer) {
12055
+ this.opentui.symbols.bufferClearOpacity(buffer);
12056
+ }
11971
12057
  getTerminalCapabilities(renderer) {
11972
12058
  const capsBuffer = new ArrayBuffer(TerminalCapabilitiesStruct.size);
11973
12059
  this.opentui.symbols.getTerminalCapabilities(renderer, ptr3(capsBuffer));
@@ -12460,6 +12546,7 @@ class Renderable extends BaseRenderable {
12460
12546
  _positionType = "relative";
12461
12547
  _overflow = "visible";
12462
12548
  _position = {};
12549
+ _opacity = 1;
12463
12550
  _flexShrink = 1;
12464
12551
  renderableMapById = new Map;
12465
12552
  _childrenInLayoutOrder = [];
@@ -12492,6 +12579,7 @@ class Renderable extends BaseRenderable {
12492
12579
  this.buffered = options.buffered ?? false;
12493
12580
  this._live = options.live ?? false;
12494
12581
  this._liveCount = this._live && this._visible ? 1 : 0;
12582
+ this._opacity = options.opacity !== undefined ? Math.max(0, Math.min(1, options.opacity)) : 1;
12495
12583
  this.yogaNode = src_default.Node.create(yogaConfig);
12496
12584
  this.yogaNode.setDisplay(this._visible ? Display.Flex : Display.None);
12497
12585
  this.setupYogaProperties(options);
@@ -12541,6 +12629,16 @@ class Renderable extends BaseRenderable {
12541
12629
  }
12542
12630
  this.requestRender();
12543
12631
  }
12632
+ get opacity() {
12633
+ return this._opacity;
12634
+ }
12635
+ set opacity(value) {
12636
+ const clamped = Math.max(0, Math.min(1, value));
12637
+ if (this._opacity !== clamped) {
12638
+ this._opacity = clamped;
12639
+ this.requestRender();
12640
+ }
12641
+ }
12544
12642
  hasSelection() {
12545
12643
  return false;
12546
12644
  }
@@ -13285,6 +13383,10 @@ class Renderable extends BaseRenderable {
13285
13383
  }
13286
13384
  if (this._isDestroyed)
13287
13385
  return;
13386
+ const shouldPushOpacity = this._opacity < 1;
13387
+ if (shouldPushOpacity) {
13388
+ renderList.push({ action: "pushOpacity", opacity: this._opacity });
13389
+ }
13288
13390
  renderList.push({ action: "render", renderable: this });
13289
13391
  this.ensureZIndexSorted();
13290
13392
  const shouldPushScissor = this._overflow !== "visible" && this.width > 0 && this.height > 0;
@@ -13309,6 +13411,9 @@ class Renderable extends BaseRenderable {
13309
13411
  if (shouldPushScissor) {
13310
13412
  renderList.push({ action: "popScissorRect" });
13311
13413
  }
13414
+ if (shouldPushOpacity) {
13415
+ renderList.push({ action: "popOpacity" });
13416
+ }
13312
13417
  }
13313
13418
  render(buffer, deltaTime) {
13314
13419
  let renderBuffer = buffer;
@@ -13522,6 +13627,12 @@ class RootRenderable extends Renderable {
13522
13627
  case "popScissorRect":
13523
13628
  buffer.popScissorRect();
13524
13629
  break;
13630
+ case "pushOpacity":
13631
+ buffer.pushOpacity(command.opacity);
13632
+ break;
13633
+ case "popOpacity":
13634
+ buffer.popOpacity();
13635
+ break;
13525
13636
  }
13526
13637
  }
13527
13638
  }
@@ -15961,5 +16072,5 @@ Captured output:
15961
16072
 
15962
16073
  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, buildKittyKeyboardFlags, MouseEvent, MouseButton, createCliRenderer, CliRenderEvents, RendererControlState, CliRenderer };
15963
16074
 
15964
- //# debugId=7AA8D2BCA864891464756E2164756E21
15965
- //# sourceMappingURL=index-4s3xr47p.js.map
16075
+ //# debugId=539C513F2BA4422564756E2164756E21
16076
+ //# sourceMappingURL=index-yhfn13z6.js.map