@opentui/core 0.1.14 → 0.1.16

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/Renderable.d.ts CHANGED
@@ -5,8 +5,10 @@ import { TrackedNode } from "./lib/TrackedNode";
5
5
  import type { ParsedKey } from "./lib/parse.keypress";
6
6
  import { type AlignString, type FlexDirectionString, type JustifyString, type OverflowString, type PositionTypeString, type WrapString } from "./lib/yoga.options";
7
7
  import type { MouseEvent } from "./renderer";
8
- import type { RenderContext, SelectionState } from "./types";
8
+ import type { RenderContext, ViewportBounds } from "./types";
9
9
  import { type VNode } from "./renderables/composition/vnode";
10
+ import type { Selection } from "./lib/selection";
11
+ declare const BrandedRenderable: unique symbol;
10
12
  export declare enum LayoutEvents {
11
13
  LAYOUT_CHANGED = "layout-changed",
12
14
  ADDED = "added",
@@ -75,6 +77,7 @@ export interface RenderableOptions<T extends Renderable = Renderable> extends Pa
75
77
  onMouseOut?: (this: T, event: MouseEvent) => void;
76
78
  onMouseScroll?: (this: T, event: MouseEvent) => void;
77
79
  onKeyDown?: (key: ParsedKey) => void;
80
+ onSizeChange?: (this: T) => void;
78
81
  }
79
82
  export declare function isValidPercentage(value: any): value is `${number}%`;
80
83
  export declare function isMarginType(value: any): value is number | "auto" | `${number}%`;
@@ -85,7 +88,9 @@ export declare function isOverflowType(value: any): value is OverflowString;
85
88
  export declare function isDimensionType(value: any): value is number | "auto" | `${number}%`;
86
89
  export declare function isFlexBasisType(value: any): value is number | "auto" | undefined;
87
90
  export declare function isSizeType(value: any): value is number | `${number}%` | undefined;
91
+ export declare function isRenderable(obj: any): obj is Renderable;
88
92
  export declare abstract class Renderable extends EventEmitter {
93
+ [BrandedRenderable]: boolean;
89
94
  private static renderableNumber;
90
95
  static renderablesByNumber: Map<number, Renderable>;
91
96
  readonly id: string;
@@ -111,6 +116,7 @@ export declare abstract class Renderable extends EventEmitter {
111
116
  protected keypressHandler: ((key: ParsedKey) => void) | null;
112
117
  private _live;
113
118
  protected _liveCount: number;
119
+ private _sizeChangeListener;
114
120
  private _mouseListener;
115
121
  private _mouseListeners;
116
122
  private _keyListeners;
@@ -118,11 +124,12 @@ export declare abstract class Renderable extends EventEmitter {
118
124
  protected _positionType: PositionTypeString;
119
125
  protected _overflow: OverflowString;
120
126
  protected _position: Position;
121
- private _childHostOverride;
122
127
  private renderableMap;
123
- private renderableArray;
128
+ protected renderableArray: Renderable[];
124
129
  private needsZIndexSort;
125
130
  parent: Renderable | null;
131
+ private childrenPrimarySortDirty;
132
+ private childrenSortedByPrimaryAxis;
126
133
  renderBefore?: (this: Renderable, buffer: OptimizedBuffer, deltaTime: number) => void;
127
134
  renderAfter?: (this: Renderable, buffer: OptimizedBuffer, deltaTime: number) => void;
128
135
  constructor(ctx: RenderContext, options: RenderableOptions<any>);
@@ -130,7 +137,7 @@ export declare abstract class Renderable extends EventEmitter {
130
137
  get visible(): boolean;
131
138
  set visible(value: boolean);
132
139
  hasSelection(): boolean;
133
- onSelectionChanged(selection: SelectionState | null): boolean;
140
+ onSelectionChanged(selection: Selection | null): boolean;
134
141
  getSelectedText(): string;
135
142
  shouldStartSelection(x: number, y: number): boolean;
136
143
  focus(): void;
@@ -142,10 +149,7 @@ export declare abstract class Renderable extends EventEmitter {
142
149
  protected propagateLiveCount(delta: number): void;
143
150
  handleKeyPress?(key: ParsedKey | string): boolean;
144
151
  protected get isDirty(): boolean;
145
- get childHost(): Renderable;
146
- set childHost(host: Renderable | null);
147
152
  findDescendantById(id: string): Renderable | undefined;
148
- setChildHostById(id: string): boolean;
149
153
  private markClean;
150
154
  requestRender(): void;
151
155
  get translateX(): number;
@@ -172,6 +176,8 @@ export declare abstract class Renderable extends EventEmitter {
172
176
  set zIndex(value: number);
173
177
  private requestZIndexSort;
174
178
  private ensureZIndexSorted;
179
+ getChildrenInViewport(viewport: ViewportBounds, padding?: number, minTriggerSize?: number): Renderable[];
180
+ protected getChildrenSortedByPrimaryAxis(): Renderable[];
175
181
  private setupYogaProperties;
176
182
  private setupMarginAndPadding;
177
183
  set position(positionType: PositionTypeString);
@@ -214,8 +220,10 @@ export declare abstract class Renderable extends EventEmitter {
214
220
  remove(id: string): void;
215
221
  protected onRemove(): void;
216
222
  getChildren(): Renderable[];
223
+ getChildrenCount(): number;
217
224
  render(buffer: OptimizedBuffer, deltaTime: number): void;
218
- protected beforeRender(): void;
225
+ protected _getChildren(): Renderable[];
226
+ protected onUpdate(deltaTime: number): void;
219
227
  protected getScissorRect(): {
220
228
  x: number;
221
229
  y: number;
@@ -240,6 +248,8 @@ export declare abstract class Renderable extends EventEmitter {
240
248
  set onMouseScroll(handler: ((event: MouseEvent) => void) | undefined);
241
249
  set onKeyDown(handler: ((key: ParsedKey) => void) | undefined);
242
250
  get onKeyDown(): ((key: ParsedKey) => void) | undefined;
251
+ set onSizeChange(handler: (() => void) | undefined);
252
+ get onSizeChange(): (() => void) | undefined;
243
253
  private applyEventOptions;
244
254
  }
245
255
  export declare class RootRenderable extends Renderable {
@@ -248,6 +258,7 @@ export declare class RootRenderable extends Renderable {
248
258
  protected propagateLiveCount(delta: number): void;
249
259
  calculateLayout(): void;
250
260
  resize(width: number, height: number): void;
251
- protected beforeRender(): void;
261
+ protected onUpdate(): void;
252
262
  protected destroySelf(): void;
253
263
  }
264
+ export {};
package/buffer.d.ts CHANGED
@@ -9,18 +9,18 @@ export declare class OptimizedBuffer {
9
9
  id: string;
10
10
  lib: RenderLib;
11
11
  private bufferPtr;
12
- private buffer;
13
12
  private _width;
14
13
  private _height;
15
14
  respectAlpha: boolean;
16
- private useFFI;
15
+ private _rawBuffers;
17
16
  get ptr(): Pointer;
18
- constructor(lib: RenderLib, ptr: Pointer, buffer: {
17
+ get buffers(): {
19
18
  char: Uint32Array;
20
19
  fg: Float32Array;
21
20
  bg: Float32Array;
22
21
  attributes: Uint8Array;
23
- }, width: number, height: number, options: {
22
+ };
23
+ constructor(lib: RenderLib, ptr: Pointer, width: number, height: number, options: {
24
24
  respectAlpha?: boolean;
25
25
  id?: string;
26
26
  });
@@ -28,28 +28,14 @@ export declare class OptimizedBuffer {
28
28
  respectAlpha?: boolean;
29
29
  id?: string;
30
30
  }): OptimizedBuffer;
31
- get buffers(): {
32
- char: Uint32Array;
33
- fg: Float32Array;
34
- bg: Float32Array;
35
- attributes: Uint8Array;
36
- };
37
31
  private coordsToIndex;
38
32
  get width(): number;
39
33
  get height(): number;
40
34
  setRespectAlpha(respectAlpha: boolean): void;
41
35
  getNativeId(): string;
42
- clear(bg?: RGBA, clearChar?: string): void;
43
- clearLocal(bg?: RGBA, clearChar?: string): void;
36
+ clear(bg?: RGBA): void;
44
37
  setCell(x: number, y: number, char: string, fg: RGBA, bg: RGBA, attributes?: number): void;
45
- get(x: number, y: number): {
46
- char: number;
47
- fg: RGBA;
48
- bg: RGBA;
49
- attributes: number;
50
- } | null;
51
38
  setCellWithAlphaBlending(x: number, y: number, char: string, fg: RGBA, bg: RGBA, attributes?: number): void;
52
- setCellWithAlphaBlendingLocal(x: number, y: number, char: string, fg: RGBA, bg: RGBA, attributes?: number): void;
53
39
  drawText(text: string, x: number, y: number, fg: RGBA, bg?: RGBA, attributes?: number, selection?: {
54
40
  start: number;
55
41
  end: number;
@@ -57,9 +43,7 @@ export declare class OptimizedBuffer {
57
43
  fgColor?: RGBA;
58
44
  } | null): void;
59
45
  fillRect(x: number, y: number, width: number, height: number, bg: RGBA): void;
60
- fillRectLocal(x: number, y: number, width: number, height: number, bg: RGBA): void;
61
46
  drawFrameBuffer(destX: number, destY: number, frameBuffer: OptimizedBuffer, sourceX?: number, sourceY?: number, sourceWidth?: number, sourceHeight?: number): void;
62
- drawFrameBufferLocal(destX: number, destY: number, frameBuffer: OptimizedBuffer, sourceX?: number, sourceY?: number, sourceWidth?: number, sourceHeight?: number): void;
63
47
  destroy(): void;
64
48
  drawTextBuffer(textBuffer: TextBuffer, x: number, y: number, clipRect?: {
65
49
  x: number;
@@ -68,14 +52,8 @@ export declare class OptimizedBuffer {
68
52
  height: number;
69
53
  }): void;
70
54
  drawSuperSampleBuffer(x: number, y: number, pixelDataPtr: Pointer, pixelDataLength: number, format: "bgra8unorm" | "rgba8unorm", alignedBytesPerRow: number): void;
71
- drawSuperSampleBufferFFI(x: number, y: number, pixelDataPtr: Pointer, pixelDataLength: number, format: "bgra8unorm" | "rgba8unorm", alignedBytesPerRow: number): void;
72
55
  drawPackedBuffer(dataPtr: Pointer, dataLen: number, posX: number, posY: number, terminalWidthCells: number, terminalHeightCells: number): void;
73
- setCellWithAlphaBlendingFFI(x: number, y: number, char: string, fg: RGBA, bg: RGBA, attributes?: number): void;
74
- fillRectFFI(x: number, y: number, width: number, height: number, bg: RGBA): void;
75
56
  resize(width: number, height: number): void;
76
- clearFFI(bg?: RGBA): void;
77
- drawTextFFI(text: string, x: number, y: number, fg?: RGBA, bg?: RGBA, attributes?: number): void;
78
- drawFrameBufferFFI(destX: number, destY: number, frameBuffer: OptimizedBuffer, sourceX?: number, sourceY?: number, sourceWidth?: number, sourceHeight?: number): void;
79
57
  drawBox(options: {
80
58
  x: number;
81
59
  y: number;
package/console.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import type { CliRenderer, ColorInput } from ".";
2
1
  import { EventEmitter } from "events";
2
+ import type { CliRenderer, ColorInput } from ".";
3
3
  import { OptimizedBuffer } from "./buffer";
4
4
  import { Capture } from "./lib/output.capture";
5
5
  export declare const capture: Capture;