@opentui/core 0.1.7 → 0.1.9

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
@@ -14,6 +14,10 @@ export declare enum RenderableEvents {
14
14
  FOCUSED = "focused",
15
15
  BLURRED = "blurred"
16
16
  }
17
+ export interface RootContext {
18
+ requestLive(): void;
19
+ dropLive(): void;
20
+ }
17
21
  export interface Position {
18
22
  top?: number | "auto" | `${number}%`;
19
23
  right?: number | "auto" | `${number}%`;
@@ -54,14 +58,27 @@ export interface RenderableOptions extends Partial<LayoutOptions> {
54
58
  zIndex?: number;
55
59
  visible?: boolean;
56
60
  buffered?: boolean;
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;
71
+ onKeyDown?: (key: ParsedKey) => void;
57
72
  }
58
73
  export declare function isMarginType(value: any): value is number | "auto" | `${number}%`;
59
74
  export declare function isPaddingType(value: any): value is number | `${number}%`;
60
75
  export declare function isPositionType(value: any): value is number | "auto" | `${number}%`;
76
+ export declare function isPostionTypeType(value: any): value is PositionTypeString;
61
77
  export declare function isDimensionType(value: any): value is number | "auto" | `${number}%`;
62
78
  export declare function isFlexBasisType(value: any): value is number | "auto" | undefined;
63
79
  export declare function isSizeType(value: any): value is number | `${number}%` | undefined;
64
80
  export declare abstract class Renderable extends EventEmitter {
81
+ private static renderableNumber;
65
82
  static renderablesByNumber: Map<number, Renderable>;
66
83
  readonly id: string;
67
84
  readonly num: number;
@@ -70,8 +87,8 @@ export declare abstract class Renderable extends EventEmitter {
70
87
  private _y;
71
88
  protected _width: number | "auto" | `${number}%`;
72
89
  protected _height: number | "auto" | `${number}%`;
73
- private _widthValue;
74
- private _heightValue;
90
+ protected _widthValue: number;
91
+ protected _heightValue: number;
75
92
  private _zIndex;
76
93
  protected _visible: boolean;
77
94
  selectable: boolean;
@@ -82,6 +99,10 @@ export declare abstract class Renderable extends EventEmitter {
82
99
  protected _focused: boolean;
83
100
  protected keyHandler: KeyHandler;
84
101
  protected keypressHandler: ((key: ParsedKey) => void) | null;
102
+ private _live;
103
+ protected _liveCount: number;
104
+ private _mouseListeners;
105
+ private _keyListeners;
85
106
  protected layoutNode: TrackedNode;
86
107
  protected _positionType: PositionTypeString;
87
108
  protected _position: Position;
@@ -89,7 +110,6 @@ export declare abstract class Renderable extends EventEmitter {
89
110
  private renderableArray;
90
111
  private needsZIndexSort;
91
112
  parent: Renderable | null;
92
- private _yogaPerformancePositionUpdated;
93
113
  constructor(id: string, options: RenderableOptions);
94
114
  get visible(): boolean;
95
115
  set visible(value: boolean);
@@ -100,6 +120,10 @@ export declare abstract class Renderable extends EventEmitter {
100
120
  focus(): void;
101
121
  blur(): void;
102
122
  get focused(): boolean;
123
+ get live(): boolean;
124
+ get liveCount(): number;
125
+ set live(value: boolean);
126
+ protected propagateLiveCount(delta: number): void;
103
127
  handleKeyPress?(key: ParsedKey | string): boolean;
104
128
  protected get isDirty(): boolean;
105
129
  private markClean;
@@ -155,7 +179,6 @@ export declare abstract class Renderable extends EventEmitter {
155
179
  protected handleFrameBufferResize(width: number, height: number): void;
156
180
  protected createFrameBuffer(): void;
157
181
  protected onResize(width: number, height: number): void;
158
- protected requestLayout(): void;
159
182
  private replaceParent;
160
183
  add(obj: Renderable, index?: number): number;
161
184
  insertBefore(obj: Renderable, anchor?: Renderable): number;
@@ -171,11 +194,24 @@ export declare abstract class Renderable extends EventEmitter {
171
194
  protected destroySelf(): void;
172
195
  processMouseEvent(event: MouseEvent): void;
173
196
  protected onMouseEvent(event: MouseEvent): void;
197
+ set onMouseDown(handler: ((event: MouseEvent) => void) | undefined);
198
+ set onMouseUp(handler: ((event: MouseEvent) => void) | undefined);
199
+ set onMouseMove(handler: ((event: MouseEvent) => void) | undefined);
200
+ set onMouseDrag(handler: ((event: MouseEvent) => void) | undefined);
201
+ set onMouseDragEnd(handler: ((event: MouseEvent) => void) | undefined);
202
+ set onMouseDrop(handler: ((event: MouseEvent) => void) | undefined);
203
+ set onMouseOver(handler: ((event: MouseEvent) => void) | undefined);
204
+ set onMouseOut(handler: ((event: MouseEvent) => void) | undefined);
205
+ set onMouseScroll(handler: ((event: MouseEvent) => void) | undefined);
206
+ set onKeyDown(handler: ((key: ParsedKey) => void) | undefined);
207
+ get onKeyDown(): ((key: ParsedKey) => void) | undefined;
208
+ private applyEventOptions;
174
209
  }
175
210
  export declare class RootRenderable extends Renderable {
176
211
  private yogaConfig;
177
- constructor(width: number, height: number, ctx: RenderContext);
178
- requestLayout(): void;
212
+ private rootContext;
213
+ constructor(width: number, height: number, ctx: RenderContext, rootContext: RootContext);
214
+ protected propagateLiveCount(delta: number): void;
179
215
  calculateLayout(): void;
180
216
  resize(width: number, height: number): void;
181
217
  protected beforeRender(): void;
package/buffer.d.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  import type { TextBuffer } from "./text-buffer";
2
- import { RGBA } from "./types";
2
+ 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
6
  export declare class OptimizedBuffer {
7
+ private static fbIdCounter;
7
8
  id: string;
8
9
  lib: RenderLib;
9
10
  private bufferPtr;
package/index.d.ts CHANGED
@@ -6,9 +6,6 @@ export * from "./text-buffer";
6
6
  export * from "./post/filters";
7
7
  export * from "./animation/Timeline";
8
8
  export * from "./lib";
9
- export * from "./lib/parse.keypress";
10
- export * from "./lib/styled-text";
11
- export * from "./lib/selection";
12
9
  export * from "./renderer";
13
10
  export * from "./renderables";
14
11
  export * from "./zig";