@opentui/core 0.1.6 → 0.1.8

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/README.md CHANGED
@@ -3,6 +3,8 @@
3
3
  OpenTUI Core is a TypeScript library for building terminal user interfaces (TUIs). It is currently in
4
4
  development and is not ready for production use.
5
5
 
6
+ [Getting Started](docs/getting-started.md)
7
+
6
8
  ## Install
7
9
 
8
10
  ```bash
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,10 +58,22 @@ 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;
@@ -70,8 +86,8 @@ export declare abstract class Renderable extends EventEmitter {
70
86
  private _y;
71
87
  protected _width: number | "auto" | `${number}%`;
72
88
  protected _height: number | "auto" | `${number}%`;
73
- private _widthValue;
74
- private _heightValue;
89
+ protected _widthValue: number;
90
+ protected _heightValue: number;
75
91
  private _zIndex;
76
92
  protected _visible: boolean;
77
93
  selectable: boolean;
@@ -82,6 +98,10 @@ export declare abstract class Renderable extends EventEmitter {
82
98
  protected _focused: boolean;
83
99
  protected keyHandler: KeyHandler;
84
100
  protected keypressHandler: ((key: ParsedKey) => void) | null;
101
+ private _live;
102
+ protected _liveCount: number;
103
+ private _mouseListeners;
104
+ private _keyListeners;
85
105
  protected layoutNode: TrackedNode;
86
106
  protected _positionType: PositionTypeString;
87
107
  protected _position: Position;
@@ -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;
@@ -171,11 +195,25 @@ export declare abstract class Renderable extends EventEmitter {
171
195
  protected destroySelf(): void;
172
196
  processMouseEvent(event: MouseEvent): void;
173
197
  protected onMouseEvent(event: MouseEvent): void;
198
+ set onMouseDown(handler: ((event: MouseEvent) => void) | undefined);
199
+ set onMouseUp(handler: ((event: MouseEvent) => void) | undefined);
200
+ set onMouseMove(handler: ((event: MouseEvent) => void) | undefined);
201
+ set onMouseDrag(handler: ((event: MouseEvent) => void) | undefined);
202
+ set onMouseDragEnd(handler: ((event: MouseEvent) => void) | undefined);
203
+ set onMouseDrop(handler: ((event: MouseEvent) => void) | undefined);
204
+ set onMouseOver(handler: ((event: MouseEvent) => void) | undefined);
205
+ set onMouseOut(handler: ((event: MouseEvent) => void) | undefined);
206
+ set onMouseScroll(handler: ((event: MouseEvent) => void) | undefined);
207
+ set onKeyDown(handler: ((key: ParsedKey) => void) | undefined);
208
+ get onKeyDown(): ((key: ParsedKey) => void) | undefined;
209
+ private applyEventOptions;
174
210
  }
175
211
  export declare class RootRenderable extends Renderable {
176
212
  private yogaConfig;
177
- constructor(width: number, height: number, ctx: RenderContext);
213
+ private rootContext;
214
+ constructor(width: number, height: number, ctx: RenderContext, rootContext: RootContext);
178
215
  requestLayout(): void;
216
+ protected propagateLiveCount(delta: number): void;
179
217
  calculateLayout(): void;
180
218
  resize(width: number, height: number): void;
181
219
  protected beforeRender(): void;
package/ansi.d.ts CHANGED
@@ -23,4 +23,6 @@ export declare const ANSI: {
23
23
  disableAnyEventTracking: string;
24
24
  enableSGRMouseMode: string;
25
25
  disableSGRMouseMode: string;
26
+ makeRoomForRenderer: (height: number) => string;
27
+ clearRendererSpace: (height: number) => string;
26
28
  };
package/buffer.d.ts CHANGED
@@ -1,5 +1,5 @@
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";
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";