@fairyhunter13/opentui-core 0.1.119 → 0.1.120

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
@@ -6,7 +6,7 @@ import {
6
6
  __export,
7
7
  __require,
8
8
  __toESM
9
- } from "./index-p0v1qbn9.js";
9
+ } from "./index-g2c8aqza.js";
10
10
 
11
11
  // ../../node_modules/.bun/omggif@1.0.10/node_modules/omggif/omggif.js
12
12
  var require_omggif = __commonJS((exports) => {
package/Renderable.d.ts CHANGED
@@ -132,6 +132,7 @@ export declare abstract class Renderable extends BaseRenderable {
132
132
  protected frameBuffer: OptimizedBuffer | null;
133
133
  protected _focusable: boolean;
134
134
  protected _focused: boolean;
135
+ protected _hasFocusedDescendant: boolean;
135
136
  protected keypressHandler: ((key: KeyEvent) => void) | null;
136
137
  protected pasteHandler: ((event: PasteEvent) => void) | null;
137
138
  private _live;
@@ -174,8 +175,10 @@ export declare abstract class Renderable extends BaseRenderable {
174
175
  getSelectedText(): string;
175
176
  shouldStartSelection(x: number, y: number): boolean;
176
177
  focus(): void;
178
+ protected propagateFocusChange(hasFocus: boolean): void;
177
179
  blur(): void;
178
180
  get focused(): boolean;
181
+ get hasFocusedDescendant(): boolean;
179
182
  get live(): boolean;
180
183
  get liveCount(): number;
181
184
  set live(value: boolean);
@@ -167,7 +167,7 @@ import {
167
167
  white,
168
168
  wrapWithDelegates,
169
169
  yellow
170
- } from "./index-p0v1qbn9.js";
170
+ } from "./index-g2c8aqza.js";
171
171
 
172
172
  // src/index.ts
173
173
  var exports_src2 = {};
@@ -12296,4 +12296,4 @@ class TimeToFirstDrawRenderable extends Renderable {
12296
12296
  export { TextBufferView, convertThemeToStyles, SyntaxStyle, DistortionEffect, VignetteEffect, CloudsEffect, FlamesEffect, CRTRollingBarEffect, RainbowTextEffect, applyScanlines, applyInvert, applyNoise, applyChromaticAberration, applyAsciiArt, applyBrightness, applyGain, applySaturation, BloomEffect, SEPIA_MATRIX, PROTANOPIA_SIM_MATRIX, DEUTERANOPIA_SIM_MATRIX, TRITANOPIA_SIM_MATRIX, ACHROMATOPSIA_MATRIX, PROTANOPIA_COMP_MATRIX, DEUTERANOPIA_COMP_MATRIX, TRITANOPIA_COMP_MATRIX, TECHNICOLOR_MATRIX, SOLARIZATION_MATRIX, SYNTHWAVE_MATRIX, GREENSCALE_MATRIX, GRAYSCALE_MATRIX, INVERT_MATRIX, Timeline, engine, createTimeline, SlotRegistry, createSlotRegistry, createCoreSlotRegistry, registerCorePlugin, resolveCoreSlot, SlotRenderable, NativeSpanFeed, FrameBufferRenderable, ASCIIFontRenderable, BoxRenderable, TextBufferRenderable, CodeRenderable, isTextNodeRenderable, TextNodeRenderable, RootTextNodeRenderable, Generic, Box, Text, ASCIIFont, Input, Select, TabSelect, FrameBuffer, Code, ScrollBox, vstyles, VRenderable, LineNumberRenderable, TextRenderable, DiffRenderable, TextareaRenderable, InputRenderableEvents, InputRenderable, TextTableRenderable, MarkdownRenderable, SliderRenderable, ScrollBarRenderable, ArrowRenderable, ScrollBoxRenderable, SelectRenderableEvents, SelectRenderable, TabSelectRenderableEvents, TabSelectRenderable, TimeToFirstDrawRenderable, exports_src2 as exports_src };
12297
12297
 
12298
12298
  //# debugId=2DA8089E55F2756B64756E2164756E21
12299
- //# sourceMappingURL=index-tbp3y8vv.js.map
12299
+ //# sourceMappingURL=index-9bd06khd.js.map
@@ -14620,6 +14620,7 @@ class Renderable extends BaseRenderable {
14620
14620
  frameBuffer = null;
14621
14621
  _focusable = false;
14622
14622
  _focused = false;
14623
+ _hasFocusedDescendant = false;
14623
14624
  keypressHandler = null;
14624
14625
  pasteHandler = null;
14625
14626
  _live = false;
@@ -14769,11 +14770,24 @@ class Renderable extends BaseRenderable {
14769
14770
  };
14770
14771
  this.ctx._internalKeyInput.onInternal("keypress", this.keypressHandler);
14771
14772
  this.ctx._internalKeyInput.onInternal("paste", this.pasteHandler);
14773
+ this.propagateFocusChange(true);
14772
14774
  this.emit("focused" /* FOCUSED */);
14773
14775
  }
14776
+ propagateFocusChange(hasFocus) {
14777
+ let parent = this.parent;
14778
+ while (parent) {
14779
+ if (parent._hasFocusedDescendant !== hasFocus) {
14780
+ parent._hasFocusedDescendant = hasFocus;
14781
+ parent.markDirty();
14782
+ }
14783
+ parent = parent.parent;
14784
+ }
14785
+ this.requestRender();
14786
+ }
14774
14787
  blur() {
14775
14788
  if (!this._focused || !this._focusable)
14776
14789
  return;
14790
+ this._ctx.blurRenderable(this);
14777
14791
  this._focused = false;
14778
14792
  this.requestRender();
14779
14793
  if (this.keypressHandler) {
@@ -14784,11 +14798,15 @@ class Renderable extends BaseRenderable {
14784
14798
  this.ctx._internalKeyInput.offInternal("paste", this.pasteHandler);
14785
14799
  this.pasteHandler = null;
14786
14800
  }
14801
+ this.propagateFocusChange(false);
14787
14802
  this.emit("blurred" /* BLURRED */);
14788
14803
  }
14789
14804
  get focused() {
14790
14805
  return this._focused;
14791
14806
  }
14807
+ get hasFocusedDescendant() {
14808
+ return this._hasFocusedDescendant;
14809
+ }
14792
14810
  get live() {
14793
14811
  return this._live;
14794
14812
  }
@@ -15324,7 +15342,10 @@ class Renderable extends BaseRenderable {
15324
15342
  }
15325
15343
  try {
15326
15344
  const widthMethod = this._ctx.widthMethod;
15327
- this.frameBuffer = OptimizedBuffer.create(w, h, widthMethod, { respectAlpha: true, id: `framebuffer-${this.id}` });
15345
+ this.frameBuffer = OptimizedBuffer.create(w, h, widthMethod, {
15346
+ respectAlpha: true,
15347
+ id: `framebuffer-${this.id}`
15348
+ });
15328
15349
  } catch (error) {
15329
15350
  console.error(`Failed to create frame buffer for ${this.id}:`, error);
15330
15351
  this.frameBuffer = null;
@@ -15720,7 +15741,14 @@ class Renderable extends BaseRenderable {
15720
15741
  class RootRenderable extends Renderable {
15721
15742
  renderList = [];
15722
15743
  constructor(ctx) {
15723
- super(ctx, { id: "__root__", zIndex: 0, visible: true, width: ctx.width, height: ctx.height, enableLayout: true });
15744
+ super(ctx, {
15745
+ id: "__root__",
15746
+ zIndex: 0,
15747
+ visible: true,
15748
+ width: ctx.width,
15749
+ height: ctx.height,
15750
+ enableLayout: true
15751
+ });
15724
15752
  if (this.yogaNode) {
15725
15753
  this.yogaNode.free();
15726
15754
  }
@@ -18984,7 +19012,11 @@ class CliRenderer extends EventEmitter9 {
18984
19012
  _capabilities = null;
18985
19013
  _latestPointer = { x: 0, y: 0 };
18986
19014
  _hasPointer = false;
18987
- _lastPointerModifiers = { shift: false, alt: false, ctrl: false };
19015
+ _lastPointerModifiers = {
19016
+ shift: false,
19017
+ alt: false,
19018
+ ctrl: false
19019
+ };
18988
19020
  _currentMousePointerStyle = undefined;
18989
19021
  _currentFocusedRenderable = null;
18990
19022
  lifecyclePasses = new Set;
@@ -19215,15 +19247,18 @@ Captured output:
19215
19247
  if (this._currentFocusedRenderable === renderable)
19216
19248
  return;
19217
19249
  const prev = this.currentFocusedEditor;
19218
- if (this._currentFocusedRenderable) {
19219
- this._currentFocusedRenderable.blur();
19220
- }
19250
+ this._currentFocusedRenderable?.blur();
19221
19251
  this._currentFocusedRenderable = renderable;
19222
19252
  const next = this.currentFocusedEditor;
19223
19253
  if (prev !== next) {
19224
19254
  this.emit("focused_editor" /* FOCUSED_EDITOR */, next, prev);
19225
19255
  }
19226
19256
  }
19257
+ blurRenderable(renderable) {
19258
+ if (this._currentFocusedRenderable === renderable) {
19259
+ this._currentFocusedRenderable = null;
19260
+ }
19261
+ }
19227
19262
  setCapturedRenderable(renderable) {
19228
19263
  if (this.capturedRenderable === renderable) {
19229
19264
  return;
@@ -19803,14 +19838,20 @@ Captured output:
19803
19838
  if (mouseEvent.type === "drag" && this.currentSelection?.isDragging) {
19804
19839
  this.updateSelection(maybeRenderable, mouseEvent.x, mouseEvent.y);
19805
19840
  if (maybeRenderable) {
19806
- const event2 = new MouseEvent(maybeRenderable, { ...mouseEvent, isDragging: true });
19841
+ const event2 = new MouseEvent(maybeRenderable, {
19842
+ ...mouseEvent,
19843
+ isDragging: true
19844
+ });
19807
19845
  maybeRenderable.processMouseEvent(event2);
19808
19846
  }
19809
19847
  return true;
19810
19848
  }
19811
19849
  if (mouseEvent.type === "up" && this.currentSelection?.isDragging) {
19812
19850
  if (maybeRenderable) {
19813
- const event2 = new MouseEvent(maybeRenderable, { ...mouseEvent, isDragging: true });
19851
+ const event2 = new MouseEvent(maybeRenderable, {
19852
+ ...mouseEvent,
19853
+ isDragging: true
19854
+ });
19814
19855
  maybeRenderable.processMouseEvent(event2);
19815
19856
  }
19816
19857
  this.finishSelection();
@@ -19825,7 +19866,10 @@ Captured output:
19825
19866
  }
19826
19867
  if (!sameElement && (mouseEvent.type === "drag" || mouseEvent.type === "move")) {
19827
19868
  if (this.lastOverRenderable && this.lastOverRenderable !== this.capturedRenderable && !this.lastOverRenderable.isDestroyed) {
19828
- const event2 = new MouseEvent(this.lastOverRenderable, { ...mouseEvent, type: "out" });
19869
+ const event2 = new MouseEvent(this.lastOverRenderable, {
19870
+ ...mouseEvent,
19871
+ type: "out"
19872
+ });
19829
19873
  this.lastOverRenderable.processMouseEvent(event2);
19830
19874
  }
19831
19875
  this.lastOverRenderable = maybeRenderable;
@@ -19844,7 +19888,10 @@ Captured output:
19844
19888
  return true;
19845
19889
  }
19846
19890
  if (this.capturedRenderable && mouseEvent.type === "up") {
19847
- const event2 = new MouseEvent(this.capturedRenderable, { ...mouseEvent, type: "drag-end" });
19891
+ const event2 = new MouseEvent(this.capturedRenderable, {
19892
+ ...mouseEvent,
19893
+ type: "drag-end"
19894
+ });
19848
19895
  this.capturedRenderable.processMouseEvent(event2);
19849
19896
  this.capturedRenderable.processMouseEvent(new MouseEvent(this.capturedRenderable, mouseEvent));
19850
19897
  if (maybeRenderable) {
@@ -20585,5 +20632,5 @@ Captured output:
20585
20632
 
20586
20633
  export { __toESM, __commonJS, __export, __require, Edge, Gutter, MeasureMode, exports_src, isValidBorderStyle, parseBorderStyle, BorderChars, getBorderFromSides, getBorderSides, borderCharsToArray, BorderCharArrays, KeyEvent, PasteEvent, KeyHandler, InternalKeyHandler, RGBA, hexToRgb, rgbToHex, hsvToRgb, parseColor, fonts, measureText, getCharacterPositions, coordinateToCharacterIndex, renderFontToFrameBuffer, TextAttributes, ATTRIBUTE_BASE_BITS, ATTRIBUTE_BASE_MASK, getBaseAttributes, DebugOverlayCorner, TargetChannel, 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, SystemClock, nonAlphanumericKeys, parseKeypress, LinearScrollAccel, MacOSScrollAccel, 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, StdinParser, treeSitterToTextChunks, treeSitterToStyledText, addDefaultParsers, TreeSitterClient, DataPathsManager, getDataPaths, extensionToFiletype, basenameToFiletype, extToFiletype, pathToFiletype, infoStringToFiletype, main, getTreeSitterClient, ExtmarksController, createExtmarksController, TerminalPalette, createTerminalPalette, decodePasteBytes, stripAnsiSequences, detectLinks, TextBuffer, SpanInfoStruct, LogLevel2 as LogLevel, setRenderLibPath, resolveRenderLib, OptimizedBuffer, h, isVNode, maybeMakeRenderable, wrapWithDelegates, instantiate, delegate, isValidPercentage, LayoutEvents, RenderableEvents, isRenderable, BaseRenderable, Renderable, RootRenderable, EditBuffer, EditorView, ANSI, defaultKeyAliases, mergeKeyAliases, mergeKeyBindings, getKeyBindingKey, buildKeyBindingsMap, capture, ConsolePosition, TerminalConsole, getObjectsInViewport, EditBufferRenderableEvents, isEditBufferRenderable, EditBufferRenderable, buildKittyKeyboardFlags, MouseEvent, MouseButton, createCliRenderer, CliRenderEvents, RendererControlState, CliRenderer };
20587
20634
 
20588
- //# debugId=67F59C2409FF014364756E2164756E21
20589
- //# sourceMappingURL=index-p0v1qbn9.js.map
20635
+ //# debugId=B248918F8F174E3E64756E2164756E21
20636
+ //# sourceMappingURL=index-g2c8aqza.js.map