@opentui/core 0.1.21 → 0.1.23

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-8sac0sgm.js";
8
+ } from "./index-a6ydv6yb.js";
9
9
 
10
10
  // ../../node_modules/omggif/omggif.js
11
11
  var require_omggif = __commonJS((exports) => {
package/Renderable.d.ts CHANGED
@@ -125,7 +125,7 @@ export declare abstract class Renderable extends BaseRenderable {
125
125
  selectable: boolean;
126
126
  protected buffered: boolean;
127
127
  protected frameBuffer: OptimizedBuffer | null;
128
- protected focusable: boolean;
128
+ protected _focusable: boolean;
129
129
  protected _focused: boolean;
130
130
  protected keyHandler: KeyHandler;
131
131
  protected keypressHandler: ((key: ParsedKey) => void) | null;
@@ -149,6 +149,7 @@ export declare abstract class Renderable extends BaseRenderable {
149
149
  renderBefore?: (this: Renderable, buffer: OptimizedBuffer, deltaTime: number) => void;
150
150
  renderAfter?: (this: Renderable, buffer: OptimizedBuffer, deltaTime: number) => void;
151
151
  constructor(ctx: RenderContext, options: RenderableOptions<any>);
152
+ get focusable(): boolean;
152
153
  get ctx(): RenderContext;
153
154
  get visible(): boolean;
154
155
  get primaryAxis(): "row" | "column";
@@ -228,6 +229,7 @@ export declare abstract class Renderable extends BaseRenderable {
228
229
  protected createFrameBuffer(): void;
229
230
  protected onResize(width: number, height: number): void;
230
231
  private replaceParent;
232
+ private _forceLayoutUpdateFor;
231
233
  add(obj: Renderable | VNode<any, any[]> | unknown, index?: number): number;
232
234
  insertBefore(obj: Renderable | VNode<any, any[]> | unknown, anchor?: Renderable | unknown): number;
233
235
  getRenderable(id: string): Renderable | undefined;
@@ -5912,7 +5912,7 @@ class Renderable extends BaseRenderable {
5912
5912
  selectable = false;
5913
5913
  buffered;
5914
5914
  frameBuffer = null;
5915
- focusable = false;
5915
+ _focusable = false;
5916
5916
  _focused = false;
5917
5917
  keyHandler = getKeyHandler();
5918
5918
  keypressHandler = null;
@@ -5963,6 +5963,9 @@ class Renderable extends BaseRenderable {
5963
5963
  this.createFrameBuffer();
5964
5964
  }
5965
5965
  }
5966
+ get focusable() {
5967
+ return this._focusable;
5968
+ }
5966
5969
  get ctx() {
5967
5970
  return this._ctx;
5968
5971
  }
@@ -6004,8 +6007,9 @@ class Renderable extends BaseRenderable {
6004
6007
  return false;
6005
6008
  }
6006
6009
  focus() {
6007
- if (this._focused || !this.focusable)
6010
+ if (this._focused || !this._focusable)
6008
6011
  return;
6012
+ this._ctx.focusRenderable(this);
6009
6013
  this._focused = true;
6010
6014
  this.requestRender();
6011
6015
  this.keypressHandler = (key) => {
@@ -6018,7 +6022,7 @@ class Renderable extends BaseRenderable {
6018
6022
  this.emit("focused" /* FOCUSED */);
6019
6023
  }
6020
6024
  blur() {
6021
- if (!this._focused || !this.focusable)
6025
+ if (!this._focused || !this._focusable)
6022
6026
  return;
6023
6027
  this._focused = false;
6024
6028
  this.requestRender();
@@ -6545,6 +6549,7 @@ class Renderable extends BaseRenderable {
6545
6549
  }
6546
6550
  obj.parent = this;
6547
6551
  }
6552
+ _forceLayoutUpdateFor = null;
6548
6553
  add(obj, index) {
6549
6554
  if (!obj) {
6550
6555
  return -1;
@@ -6568,6 +6573,7 @@ class Renderable extends BaseRenderable {
6568
6573
  let insertedIndex;
6569
6574
  if (index !== undefined) {
6570
6575
  this.renderableArray.splice(index, 0, renderable);
6576
+ this._forceLayoutUpdateFor = this.renderableArray.slice(index);
6571
6577
  insertedIndex = this.layoutNode.insertChild(childLayoutNode, index);
6572
6578
  } else {
6573
6579
  this.renderableArray.push(renderable);
@@ -6652,6 +6658,12 @@ class Renderable extends BaseRenderable {
6652
6658
  }
6653
6659
  this._newChildren = [];
6654
6660
  }
6661
+ if (this._forceLayoutUpdateFor) {
6662
+ for (const child of this._forceLayoutUpdateFor) {
6663
+ child.updateFromLayout();
6664
+ }
6665
+ this._forceLayoutUpdateFor = null;
6666
+ }
6655
6667
  this.ensureZIndexSorted();
6656
6668
  const shouldPushScissor = this._overflow !== "visible" && this.width > 0 && this.height > 0;
6657
6669
  if (shouldPushScissor) {
@@ -7996,6 +8008,7 @@ class CliRenderer extends EventEmitter6 {
7996
8008
  sigwinchHandler = null;
7997
8009
  _capabilities = null;
7998
8010
  _latestPointer = { x: 0, y: 0 };
8011
+ _currentFocusedRenderable = null;
7999
8012
  constructor(lib, rendererPtr, stdin, stdout, width, height, config = {}) {
8000
8013
  super();
8001
8014
  this.stdin = stdin;
@@ -8107,6 +8120,17 @@ Error details:
8107
8120
  };
8108
8121
  }
8109
8122
  }
8123
+ get currentFocusedRenderable() {
8124
+ return this._currentFocusedRenderable;
8125
+ }
8126
+ focusRenderable(renderable) {
8127
+ if (this._currentFocusedRenderable === renderable)
8128
+ return;
8129
+ if (this._currentFocusedRenderable) {
8130
+ this._currentFocusedRenderable.blur();
8131
+ }
8132
+ this._currentFocusedRenderable = renderable;
8133
+ }
8110
8134
  addToHitGrid(x, y, width, height, id) {
8111
8135
  if (id !== this.capturedRenderable?.num) {
8112
8136
  this.lib.addToHitGrid(this.rendererPtr, x, y, width, height, id);
@@ -8889,5 +8913,5 @@ Error details:
8889
8913
 
8890
8914
  export { __toESM, __commonJS, __export, __require, Edge, Gutter, MeasureMode, BorderChars, getBorderFromSides, getBorderSides, borderCharsToArray, BorderCharArrays, TrackedNode, createTrackedNode, nonAlphanumericKeys, parseKeypress, KeyHandler, getKeyHandler, RGBA, hexToRgb, rgbToHex, hsvToRgb, parseColor, fonts, measureText, getCharacterPositions, coordinateToCharacterIndex, renderFontToFrameBuffer, TextAttributes, DebugOverlayCorner, createTextAttributes, 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, SyntaxStyle, hastToStyledText, parseAlign, parseBoxSizing, parseDimension, parseDirection, parseDisplay, parseEdge, parseFlexDirection, parseGutter, parseJustify, parseLogLevel, parseMeasureMode, parseOverflow, parsePositionType, parseUnit, parseWrap, MouseParser, Selection, convertGlobalToLocalSelection, ASCIIFontSelectionHelper, TextBuffer, LogLevel2 as LogLevel, setRenderLibPath, resolveRenderLib, OptimizedBuffer, h, isVNode, maybeMakeRenderable, wrapWithDelegates, instantiate, delegate, LayoutEvents, RenderableEvents, isValidPercentage, isMarginType, isPaddingType, isPositionType, isPositionTypeType, isOverflowType, isDimensionType, isFlexBasisType, isSizeType, isRenderable, BaseRenderable, Renderable, RootRenderable, capture, ConsolePosition, TerminalConsole, getObjectsInViewport, MouseEvent, MouseButton, createCliRenderer, CliRenderEvents, CliRenderer };
8891
8915
 
8892
- //# debugId=C46E0EF37C964E9E64756E2164756E21
8893
- //# sourceMappingURL=index-8sac0sgm.js.map
8916
+ //# debugId=22DC4532C30EE05864756E2164756E21
8917
+ //# sourceMappingURL=index-a6ydv6yb.js.map