@opentui/core 0.0.0-20250908-4906ddad → 0.0.0-20250912-12c969f4

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-d6kwx5pm.js";
8
+ } from "./index-mh94hn7d.js";
9
9
 
10
10
  // ../../node_modules/omggif/omggif.js
11
11
  var require_omggif = __commonJS((exports) => {
package/Renderable.d.ts CHANGED
@@ -3,11 +3,11 @@ import { OptimizedBuffer } from "./buffer";
3
3
  import { type KeyHandler } from "./lib/KeyHandler";
4
4
  import { TrackedNode } from "./lib/TrackedNode";
5
5
  import type { ParsedKey } from "./lib/parse.keypress";
6
+ import type { Selection } from "./lib/selection";
6
7
  import { type AlignString, type FlexDirectionString, type JustifyString, type OverflowString, type PositionTypeString, type WrapString } from "./lib/yoga.options";
7
- import type { MouseEvent } from "./renderer";
8
- import type { RenderContext, ViewportBounds } from "./types";
9
8
  import { type VNode } from "./renderables/composition/vnode";
10
- import type { Selection } from "./lib/selection";
9
+ import type { MouseEvent } from "./renderer";
10
+ import type { RenderContext } from "./types";
11
11
  declare const BrandedRenderable: unique symbol;
12
12
  export declare enum LayoutEvents {
13
13
  LAYOUT_CHANGED = "layout-changed",
@@ -25,7 +25,10 @@ export interface Position {
25
25
  bottom?: number | "auto" | `${number}%`;
26
26
  left?: number | "auto" | `${number}%`;
27
27
  }
28
- export interface LayoutOptions {
28
+ export interface BaseRenderableOptions {
29
+ id?: string;
30
+ }
31
+ export interface LayoutOptions extends BaseRenderableOptions {
29
32
  flexGrow?: number;
30
33
  flexShrink?: number;
31
34
  flexDirection?: FlexDirectionString;
@@ -56,8 +59,7 @@ export interface LayoutOptions {
56
59
  paddingLeft?: number | `${number}%`;
57
60
  enableLayout?: boolean;
58
61
  }
59
- export interface RenderableOptions<T extends Renderable = Renderable> extends Partial<LayoutOptions> {
60
- id?: string;
62
+ export interface RenderableOptions<T extends BaseRenderable = BaseRenderable> extends Partial<LayoutOptions> {
61
63
  width?: number | "auto" | `${number}%`;
62
64
  height?: number | "auto" | `${number}%`;
63
65
  zIndex?: number;
@@ -89,12 +91,32 @@ export declare function isDimensionType(value: any): value is number | "auto" |
89
91
  export declare function isFlexBasisType(value: any): value is number | "auto" | undefined;
90
92
  export declare function isSizeType(value: any): value is number | `${number}%` | undefined;
91
93
  export declare function isRenderable(obj: any): obj is Renderable;
92
- export declare abstract class Renderable extends EventEmitter {
94
+ export declare abstract class BaseRenderable extends EventEmitter {
93
95
  [BrandedRenderable]: boolean;
94
96
  private static renderableNumber;
95
- static renderablesByNumber: Map<number, Renderable>;
96
97
  readonly id: string;
97
98
  readonly num: number;
99
+ protected _dirty: boolean;
100
+ parent: BaseRenderable | null;
101
+ protected _visible: boolean;
102
+ constructor(options: BaseRenderableOptions);
103
+ abstract add(obj: BaseRenderable | unknown, index?: number): number;
104
+ abstract remove(id: string): void;
105
+ abstract insertBefore(obj: BaseRenderable | unknown, anchor: BaseRenderable | unknown): void;
106
+ abstract getChildren(): BaseRenderable[];
107
+ abstract getChildrenCount(): number;
108
+ abstract getRenderable(id: string): BaseRenderable | undefined;
109
+ abstract requestRender(): void;
110
+ get isDirty(): boolean;
111
+ protected markClean(): void;
112
+ protected markDirty(): void;
113
+ destroy(): void;
114
+ destroyRecursively(): void;
115
+ get visible(): boolean;
116
+ set visible(value: boolean);
117
+ }
118
+ export declare abstract class Renderable extends BaseRenderable {
119
+ static renderablesByNumber: Map<number, Renderable>;
98
120
  private _isDestroyed;
99
121
  protected _ctx: RenderContext;
100
122
  protected _translateX: number;
@@ -106,12 +128,10 @@ export declare abstract class Renderable extends EventEmitter {
106
128
  protected _widthValue: number;
107
129
  protected _heightValue: number;
108
130
  private _zIndex;
109
- protected _visible: boolean;
110
131
  selectable: boolean;
111
132
  protected buffered: boolean;
112
133
  protected frameBuffer: OptimizedBuffer | null;
113
- private _dirty;
114
- protected focusable: boolean;
134
+ protected _focusable: boolean;
115
135
  protected _focused: boolean;
116
136
  protected keyHandler: KeyHandler;
117
137
  protected keypressHandler: ((key: ParsedKey) => void) | null;
@@ -131,11 +151,15 @@ export declare abstract class Renderable extends EventEmitter {
131
151
  parent: Renderable | null;
132
152
  private childrenPrimarySortDirty;
133
153
  private childrenSortedByPrimaryAxis;
154
+ private _newChildren;
155
+ onLifecyclePass: (() => void) | null;
134
156
  renderBefore?: (this: Renderable, buffer: OptimizedBuffer, deltaTime: number) => void;
135
157
  renderAfter?: (this: Renderable, buffer: OptimizedBuffer, deltaTime: number) => void;
136
158
  constructor(ctx: RenderContext, options: RenderableOptions<any>);
159
+ get focusable(): boolean;
137
160
  get ctx(): RenderContext;
138
161
  get visible(): boolean;
162
+ get primaryAxis(): "row" | "column";
139
163
  set visible(value: boolean);
140
164
  hasSelection(): boolean;
141
165
  onSelectionChanged(selection: Selection | null): boolean;
@@ -149,9 +173,7 @@ export declare abstract class Renderable extends EventEmitter {
149
173
  set live(value: boolean);
150
174
  protected propagateLiveCount(delta: number): void;
151
175
  handleKeyPress?(key: ParsedKey | string): boolean;
152
- protected get isDirty(): boolean;
153
176
  findDescendantById(id: string): Renderable | undefined;
154
- private markClean;
155
177
  requestRender(): void;
156
178
  get translateX(): number;
157
179
  set translateX(value: number);
@@ -177,8 +199,7 @@ export declare abstract class Renderable extends EventEmitter {
177
199
  set zIndex(value: number);
178
200
  private requestZIndexSort;
179
201
  private ensureZIndexSorted;
180
- getChildrenInViewport(viewport: ViewportBounds, padding?: number, minTriggerSize?: number): Renderable[];
181
- protected getChildrenSortedByPrimaryAxis(): Renderable[];
202
+ getChildrenSortedByPrimaryAxis(): Renderable[];
182
203
  private setupYogaProperties;
183
204
  private setupMarginAndPadding;
184
205
  set position(positionType: PositionTypeString);
@@ -215,13 +236,15 @@ export declare abstract class Renderable extends EventEmitter {
215
236
  protected createFrameBuffer(): void;
216
237
  protected onResize(width: number, height: number): void;
217
238
  private replaceParent;
218
- add(obj: Renderable | VNode<any, any[]>, index?: number): number;
219
- insertBefore(obj: Renderable | VNode<any, any[]>, anchor?: Renderable): number;
239
+ private _forceLayoutUpdateFor;
240
+ add(obj: Renderable | VNode<any, any[]> | unknown, index?: number): number;
241
+ insertBefore(obj: Renderable | VNode<any, any[]> | unknown, anchor?: Renderable | unknown): number;
220
242
  getRenderable(id: string): Renderable | undefined;
221
243
  remove(id: string): void;
222
244
  protected onRemove(): void;
223
245
  getChildren(): Renderable[];
224
246
  getChildrenCount(): number;
247
+ updateLayout(deltaTime: number, renderList?: RenderCommand[]): void;
225
248
  render(buffer: OptimizedBuffer, deltaTime: number): void;
226
249
  protected _getChildren(): Renderable[];
227
250
  protected onUpdate(deltaTime: number): void;
@@ -254,13 +277,32 @@ export declare abstract class Renderable extends EventEmitter {
254
277
  get onSizeChange(): (() => void) | undefined;
255
278
  private applyEventOptions;
256
279
  }
280
+ interface RenderCommandBase {
281
+ action: "render" | "pushScissorRect" | "popScissorRect";
282
+ }
283
+ interface RenderCommandPushScissorRect extends RenderCommandBase {
284
+ action: "pushScissorRect";
285
+ x: number;
286
+ y: number;
287
+ width: number;
288
+ height: number;
289
+ }
290
+ interface RenderCommandPopScissorRect extends RenderCommandBase {
291
+ action: "popScissorRect";
292
+ }
293
+ interface RenderCommandRender extends RenderCommandBase {
294
+ action: "render";
295
+ renderable: Renderable;
296
+ }
297
+ export type RenderCommand = RenderCommandPushScissorRect | RenderCommandPopScissorRect | RenderCommandRender;
257
298
  export declare class RootRenderable extends Renderable {
258
299
  private yogaConfig;
300
+ private renderList;
259
301
  constructor(ctx: RenderContext);
302
+ render(buffer: OptimizedBuffer, deltaTime: number): void;
260
303
  protected propagateLiveCount(delta: number): void;
261
304
  calculateLayout(): void;
262
305
  resize(width: number, height: number): void;
263
- protected onUpdate(): void;
264
306
  protected destroySelf(): void;
265
307
  }
266
308
  export {};
package/buffer.d.ts CHANGED
@@ -13,7 +13,9 @@ export declare class OptimizedBuffer {
13
13
  private _height;
14
14
  respectAlpha: boolean;
15
15
  private _rawBuffers;
16
+ private _destroyed;
16
17
  get ptr(): Pointer;
18
+ private guard;
17
19
  get buffers(): {
18
20
  char: Uint32Array;
19
21
  fg: Float32Array;
@@ -28,7 +30,6 @@ export declare class OptimizedBuffer {
28
30
  respectAlpha?: boolean;
29
31
  id?: string;
30
32
  }): OptimizedBuffer;
31
- private coordsToIndex;
32
33
  get width(): number;
33
34
  get height(): number;
34
35
  setRespectAlpha(respectAlpha: boolean): void;