@opentui/core 0.1.10 → 0.1.12

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.js";
8
+ } from "./index-bpwzbxgn.js";
9
9
 
10
10
  // ../../node_modules/omggif/omggif.js
11
11
  var require_omggif = __commonJS((exports) => {
package/Renderable.d.ts CHANGED
@@ -1,9 +1,12 @@
1
- import { OptimizedBuffer, type RenderContext, type MouseEvent, type SelectionState } from ".";
2
1
  import { EventEmitter } from "events";
2
+ import { OptimizedBuffer } from "./buffer";
3
+ import { type KeyHandler } from "./lib/KeyHandler";
3
4
  import { TrackedNode } from "./lib/TrackedNode";
4
5
  import type { ParsedKey } from "./lib/parse.keypress";
5
- import { type KeyHandler } from "./lib/KeyHandler";
6
6
  import { type AlignString, type FlexDirectionString, type JustifyString, type PositionTypeString } from "./lib/yoga.options";
7
+ import type { MouseEvent } from "./renderer";
8
+ import type { RenderContext, SelectionState } from "./types";
9
+ import { type VNode } from "./renderables/composition/vnode";
7
10
  export declare enum LayoutEvents {
8
11
  LAYOUT_CHANGED = "layout-changed",
9
12
  ADDED = "added",
@@ -14,10 +17,6 @@ export declare enum RenderableEvents {
14
17
  FOCUSED = "focused",
15
18
  BLURRED = "blurred"
16
19
  }
17
- export interface RootContext {
18
- requestLive(): void;
19
- dropLive(): void;
20
- }
21
20
  export interface Position {
22
21
  top?: number | "auto" | `${number}%`;
23
22
  right?: number | "auto" | `${number}%`;
@@ -52,24 +51,29 @@ export interface LayoutOptions {
52
51
  paddingLeft?: number | `${number}%`;
53
52
  enableLayout?: boolean;
54
53
  }
55
- export interface RenderableOptions extends Partial<LayoutOptions> {
54
+ export interface RenderableOptions<T extends Renderable = Renderable> extends Partial<LayoutOptions> {
55
+ id?: string;
56
56
  width?: number | "auto" | `${number}%`;
57
57
  height?: number | "auto" | `${number}%`;
58
58
  zIndex?: number;
59
59
  visible?: boolean;
60
60
  buffered?: boolean;
61
61
  live?: boolean;
62
- onMouseDown?: (event: MouseEvent) => void;
63
- onMouseUp?: (event: MouseEvent) => void;
64
- onMouseMove?: (event: MouseEvent) => void;
65
- onMouseDrag?: (event: MouseEvent) => void;
66
- onMouseDragEnd?: (event: MouseEvent) => void;
67
- onMouseDrop?: (event: MouseEvent) => void;
68
- onMouseOver?: (event: MouseEvent) => void;
69
- onMouseOut?: (event: MouseEvent) => void;
70
- onMouseScroll?: (event: MouseEvent) => void;
62
+ renderBefore?: (this: T, buffer: OptimizedBuffer, deltaTime: number) => void;
63
+ renderAfter?: (this: T, buffer: OptimizedBuffer, deltaTime: number) => void;
64
+ onMouse?: (this: T, event: MouseEvent) => void;
65
+ onMouseDown?: (this: T, event: MouseEvent) => void;
66
+ onMouseUp?: (this: T, event: MouseEvent) => void;
67
+ onMouseMove?: (this: T, event: MouseEvent) => void;
68
+ onMouseDrag?: (this: T, event: MouseEvent) => void;
69
+ onMouseDragEnd?: (this: T, event: MouseEvent) => void;
70
+ onMouseDrop?: (this: T, event: MouseEvent) => void;
71
+ onMouseOver?: (this: T, event: MouseEvent) => void;
72
+ onMouseOut?: (this: T, event: MouseEvent) => void;
73
+ onMouseScroll?: (this: T, event: MouseEvent) => void;
71
74
  onKeyDown?: (key: ParsedKey) => void;
72
75
  }
76
+ export declare function isValidPercentage(value: any): value is `${number}%`;
73
77
  export declare function isMarginType(value: any): value is number | "auto" | `${number}%`;
74
78
  export declare function isPaddingType(value: any): value is number | `${number}%`;
75
79
  export declare function isPositionType(value: any): value is number | "auto" | `${number}%`;
@@ -82,7 +86,7 @@ export declare abstract class Renderable extends EventEmitter {
82
86
  static renderablesByNumber: Map<number, Renderable>;
83
87
  readonly id: string;
84
88
  readonly num: number;
85
- protected ctx: RenderContext | null;
89
+ protected _ctx: RenderContext;
86
90
  private _x;
87
91
  private _y;
88
92
  protected _width: number | "auto" | `${number}%`;
@@ -101,16 +105,21 @@ export declare abstract class Renderable extends EventEmitter {
101
105
  protected keypressHandler: ((key: ParsedKey) => void) | null;
102
106
  private _live;
103
107
  protected _liveCount: number;
108
+ private _mouseListener;
104
109
  private _mouseListeners;
105
110
  private _keyListeners;
106
111
  protected layoutNode: TrackedNode;
107
112
  protected _positionType: PositionTypeString;
108
113
  protected _position: Position;
114
+ private _childHostOverride;
109
115
  private renderableMap;
110
116
  private renderableArray;
111
117
  private needsZIndexSort;
112
118
  parent: Renderable | null;
113
- constructor(id: string, options: RenderableOptions);
119
+ renderBefore?: (this: Renderable, buffer: OptimizedBuffer, deltaTime: number) => void;
120
+ renderAfter?: (this: Renderable, buffer: OptimizedBuffer, deltaTime: number) => void;
121
+ constructor(ctx: RenderContext, options: RenderableOptions<any>);
122
+ get ctx(): RenderContext;
114
123
  get visible(): boolean;
115
124
  set visible(value: boolean);
116
125
  hasSelection(): boolean;
@@ -126,6 +135,10 @@ export declare abstract class Renderable extends EventEmitter {
126
135
  protected propagateLiveCount(delta: number): void;
127
136
  handleKeyPress?(key: ParsedKey | string): boolean;
128
137
  protected get isDirty(): boolean;
138
+ get childHost(): Renderable;
139
+ set childHost(host: Renderable | null);
140
+ findDescendantById(id: string): Renderable | undefined;
141
+ setChildHostById(id: string): boolean;
129
142
  private markClean;
130
143
  needsUpdate(): void;
131
144
  get x(): number;
@@ -146,7 +159,7 @@ export declare abstract class Renderable extends EventEmitter {
146
159
  set height(value: number | "auto" | `${number}%`);
147
160
  get zIndex(): number;
148
161
  set zIndex(value: number);
149
- requestZIndexSort(): void;
162
+ private requestZIndexSort;
150
163
  private ensureZIndexSorted;
151
164
  private setupYogaProperties;
152
165
  private setupMarginAndPadding;
@@ -180,11 +193,11 @@ export declare abstract class Renderable extends EventEmitter {
180
193
  protected createFrameBuffer(): void;
181
194
  protected onResize(width: number, height: number): void;
182
195
  private replaceParent;
183
- add(obj: Renderable, index?: number): number;
184
- insertBefore(obj: Renderable, anchor?: Renderable): number;
185
- propagateContext(ctx: RenderContext | null): void;
196
+ add(obj: Renderable | VNode<any, any[]>, index?: number): number;
197
+ insertBefore(obj: Renderable | VNode<any, any[]>, anchor?: Renderable): number;
186
198
  getRenderable(id: string): Renderable | undefined;
187
199
  remove(id: string): void;
200
+ protected onRemove(): void;
188
201
  getChildren(): Renderable[];
189
202
  render(buffer: OptimizedBuffer, deltaTime: number): void;
190
203
  protected beforeRender(): void;
@@ -194,6 +207,7 @@ export declare abstract class Renderable extends EventEmitter {
194
207
  protected destroySelf(): void;
195
208
  processMouseEvent(event: MouseEvent): void;
196
209
  protected onMouseEvent(event: MouseEvent): void;
210
+ set onMouse(handler: ((event: MouseEvent) => void) | undefined);
197
211
  set onMouseDown(handler: ((event: MouseEvent) => void) | undefined);
198
212
  set onMouseUp(handler: ((event: MouseEvent) => void) | undefined);
199
213
  set onMouseMove(handler: ((event: MouseEvent) => void) | undefined);
@@ -209,8 +223,7 @@ export declare abstract class Renderable extends EventEmitter {
209
223
  }
210
224
  export declare class RootRenderable extends Renderable {
211
225
  private yogaConfig;
212
- private rootContext;
213
- constructor(width: number, height: number, ctx: RenderContext, rootContext: RootContext);
226
+ constructor(ctx: RenderContext);
214
227
  protected propagateLiveCount(delta: number): void;
215
228
  calculateLayout(): void;
216
229
  resize(width: number, height: number): void;
package/buffer.d.ts CHANGED
@@ -3,14 +3,15 @@ import { RGBA } from "./lib";
3
3
  import { type RenderLib } from "./zig";
4
4
  import { type Pointer } from "bun:ffi";
5
5
  import { type BorderStyle, type BorderSides } from "./lib";
6
+ import { type WidthMethod } from "./types";
6
7
  export declare class OptimizedBuffer {
7
8
  private static fbIdCounter;
8
9
  id: string;
9
10
  lib: RenderLib;
10
11
  private bufferPtr;
11
12
  private buffer;
12
- private width;
13
- private height;
13
+ private _width;
14
+ private _height;
14
15
  respectAlpha: boolean;
15
16
  private useFFI;
16
17
  get ptr(): Pointer;
@@ -22,7 +23,7 @@ export declare class OptimizedBuffer {
22
23
  }, width: number, height: number, options: {
23
24
  respectAlpha?: boolean;
24
25
  });
25
- static create(width: number, height: number, options?: {
26
+ static create(width: number, height: number, widthMethod: WidthMethod, options?: {
26
27
  respectAlpha?: boolean;
27
28
  }): OptimizedBuffer;
28
29
  get buffers(): {
@@ -32,8 +33,8 @@ export declare class OptimizedBuffer {
32
33
  attributes: Uint8Array;
33
34
  };
34
35
  private coordsToIndex;
35
- getWidth(): number;
36
- getHeight(): number;
36
+ get width(): number;
37
+ get height(): number;
37
38
  setRespectAlpha(respectAlpha: boolean): void;
38
39
  clear(bg?: RGBA, clearChar?: string): void;
39
40
  clearLocal(bg?: RGBA, clearChar?: string): void;