@opentui/core 0.1.8 → 0.1.10

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.
@@ -4,6 +4,7 @@ interface NodeMetadata {
4
4
  [key: string]: any;
5
5
  }
6
6
  declare class TrackedNode<T extends NodeMetadata = NodeMetadata> extends EventEmitter {
7
+ private static idCounter;
7
8
  id: number;
8
9
  yogaNode: YogaNode;
9
10
  metadata: T;
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "type": "module",
7
- "version": "0.1.8",
7
+ "version": "0.1.10",
8
8
  "description": "OpenTUI is a TypeScript library for building terminal user interfaces (TUIs)",
9
9
  "license": "MIT",
10
10
  "repository": {
@@ -38,11 +38,11 @@
38
38
  "bun-webgpu": "0.1.3",
39
39
  "planck": "^1.4.2",
40
40
  "three": "0.177.0",
41
- "@opentui/core-darwin-x64": "0.1.8",
42
- "@opentui/core-darwin-arm64": "0.1.8",
43
- "@opentui/core-linux-x64": "0.1.8",
44
- "@opentui/core-linux-arm64": "0.1.8",
45
- "@opentui/core-win32-x64": "0.1.8",
46
- "@opentui/core-win32-arm64": "0.1.8"
41
+ "@opentui/core-darwin-x64": "0.1.10",
42
+ "@opentui/core-darwin-arm64": "0.1.10",
43
+ "@opentui/core-linux-x64": "0.1.10",
44
+ "@opentui/core-linux-arm64": "0.1.10",
45
+ "@opentui/core-win32-x64": "0.1.10",
46
+ "@opentui/core-win32-arm64": "0.1.10"
47
47
  }
48
48
  }
@@ -1,7 +1,7 @@
1
1
  import { type RenderableOptions, Renderable } from "../Renderable";
2
2
  import type { OptimizedBuffer } from "../buffer";
3
- import { RGBA, type ColorInput } from "../lib/RGBA";
4
- import { type BorderStyle, type BorderSides, type BorderCharacters, type BorderSidesConfig } from "../lib";
3
+ import { type BorderCharacters, type BorderSides, type BorderSidesConfig, type BorderStyle } from "../lib";
4
+ import { type ColorInput, RGBA } from "../lib/RGBA";
5
5
  export interface BoxOptions extends RenderableOptions {
6
6
  backgroundColor?: string | RGBA;
7
7
  borderStyle?: BorderStyle;
@@ -19,12 +19,24 @@ export declare class BoxRenderable extends Renderable {
19
19
  protected _borderStyle: BorderStyle;
20
20
  protected _borderColor: RGBA;
21
21
  protected _focusedBorderColor: RGBA;
22
- protected customBorderChars?: Uint32Array;
22
+ private _customBorderCharsObj;
23
+ protected _customBorderChars?: Uint32Array;
23
24
  protected borderSides: BorderSidesConfig;
24
25
  shouldFill: boolean;
25
26
  protected _title?: string;
26
27
  protected _titleAlignment: "left" | "center" | "right";
28
+ protected _defaultOptions: {
29
+ backgroundColor: string;
30
+ borderStyle: "single";
31
+ border: false;
32
+ borderColor: string;
33
+ shouldFill: true;
34
+ titleAlignment: "left";
35
+ focusedBorderColor: string;
36
+ };
27
37
  constructor(id: string, options: BoxOptions);
38
+ get customBorderChars(): BorderCharacters | undefined;
39
+ set customBorderChars(value: BorderCharacters | undefined);
28
40
  get backgroundColor(): RGBA;
29
41
  set backgroundColor(value: RGBA | string | undefined);
30
42
  get border(): boolean | BorderSides[];
@@ -1,7 +1,7 @@
1
- import { Renderable, type RenderableOptions } from "../Renderable";
2
1
  import { OptimizedBuffer } from "../buffer";
3
2
  import type { ParsedKey } from "../lib/parse.keypress";
4
3
  import { type ColorInput } from "../lib/RGBA";
4
+ import { Renderable, type RenderableOptions } from "../Renderable";
5
5
  export interface InputRenderableOptions extends RenderableOptions {
6
6
  backgroundColor?: ColorInput;
7
7
  textColor?: ColorInput;
@@ -31,6 +31,17 @@ export declare class InputRenderable extends Renderable {
31
31
  private _cursorColor;
32
32
  private _maxLength;
33
33
  private _lastCommittedValue;
34
+ protected _defaultOptions: {
35
+ backgroundColor: string;
36
+ textColor: string;
37
+ focusedBackgroundColor: string;
38
+ focusedTextColor: string;
39
+ placeholder: string;
40
+ placeholderColor: string;
41
+ cursorColor: string;
42
+ maxLength: number;
43
+ value: string;
44
+ };
34
45
  constructor(id: string, options: InputRenderableOptions);
35
46
  private updateCursorPosition;
36
47
  focus(): void;
@@ -45,11 +56,13 @@ export declare class InputRenderable extends Renderable {
45
56
  private deleteCharacter;
46
57
  handleKeyPress(key: ParsedKey | string): boolean;
47
58
  set maxLength(maxLength: number);
48
- set backgroundColor(color: ColorInput);
49
- set textColor(color: ColorInput);
50
- set focusedBackgroundColor(color: ColorInput);
51
- set focusedTextColor(color: ColorInput);
52
- set placeholderColor(color: ColorInput);
53
- set cursorColor(color: ColorInput);
59
+ set backgroundColor(value: ColorInput);
60
+ set textColor(value: ColorInput);
61
+ set focusedBackgroundColor(value: ColorInput);
62
+ set focusedTextColor(value: ColorInput);
63
+ set placeholderColor(value: ColorInput);
64
+ set cursorColor(value: ColorInput);
65
+ updateFromLayout(): void;
66
+ protected onResize(width: number, height: number): void;
54
67
  protected destroySelf(): void;
55
68
  }
@@ -1,8 +1,8 @@
1
- import { Renderable, type RenderableOptions } from "../Renderable";
2
1
  import { OptimizedBuffer } from "../buffer";
3
2
  import { fonts } from "../lib/ascii.font";
4
3
  import type { ParsedKey } from "../lib/parse.keypress";
5
4
  import { type ColorInput } from "../lib/RGBA";
5
+ import { Renderable, type RenderableOptions } from "../Renderable";
6
6
  export interface SelectOption {
7
7
  name: string;
8
8
  description: string;
@@ -51,6 +51,21 @@ export declare class SelectRenderable extends Renderable {
51
51
  private linesPerItem;
52
52
  private fontHeight;
53
53
  private _fastScrollStep;
54
+ protected _defaultOptions: {
55
+ backgroundColor: string;
56
+ textColor: string;
57
+ focusedBackgroundColor: string;
58
+ focusedTextColor: string;
59
+ selectedBackgroundColor: string;
60
+ selectedTextColor: string;
61
+ descriptionColor: string;
62
+ selectedDescriptionColor: string;
63
+ showScrollIndicator: false;
64
+ wrapSelection: false;
65
+ showDescription: true;
66
+ itemSpacing: number;
67
+ fastScrollStep: number;
68
+ };
54
69
  constructor(id: string, options: SelectRenderableOptions);
55
70
  protected renderSelf(buffer: OptimizedBuffer, deltaTime: number): void;
56
71
  private refreshFrameBuffer;
@@ -72,14 +87,14 @@ export declare class SelectRenderable extends Renderable {
72
87
  set showDescription(show: boolean);
73
88
  get wrapSelection(): boolean;
74
89
  set wrapSelection(wrap: boolean);
75
- set backgroundColor(color: ColorInput);
76
- set textColor(color: ColorInput);
77
- set focusedBackgroundColor(color: ColorInput);
78
- set focusedTextColor(color: ColorInput);
79
- set selectedBackgroundColor(color: ColorInput);
80
- set selectedTextColor(color: ColorInput);
81
- set descriptionColor(color: ColorInput);
82
- set selectedDescriptionColor(color: ColorInput);
90
+ set backgroundColor(value: ColorInput);
91
+ set textColor(value: ColorInput);
92
+ set focusedBackgroundColor(value: ColorInput);
93
+ set focusedTextColor(value: ColorInput);
94
+ set selectedBackgroundColor(value: ColorInput);
95
+ set selectedTextColor(value: ColorInput);
96
+ set descriptionColor(value: ColorInput);
97
+ set selectedDescriptionColor(value: ColorInput);
83
98
  set font(font: keyof typeof fonts);
84
99
  set itemSpacing(spacing: number);
85
100
  set fastScrollStep(step: number);
@@ -29,22 +29,22 @@ export declare enum TabSelectRenderableEvents {
29
29
  }
30
30
  export declare class TabSelectRenderable extends Renderable {
31
31
  protected focusable: boolean;
32
- private options;
32
+ private _options;
33
33
  private selectedIndex;
34
34
  private scrollOffset;
35
- private tabWidth;
35
+ private _tabWidth;
36
36
  private maxVisibleTabs;
37
- private backgroundColor;
38
- private textColor;
39
- private focusedBackgroundColor;
40
- private focusedTextColor;
41
- private selectedBackgroundColor;
42
- private selectedTextColor;
43
- private selectedDescriptionColor;
44
- private showScrollArrows;
45
- private showDescription;
46
- private showUnderline;
47
- private wrapSelection;
37
+ private _backgroundColor;
38
+ private _textColor;
39
+ private _focusedBackgroundColor;
40
+ private _focusedTextColor;
41
+ private _selectedBackgroundColor;
42
+ private _selectedTextColor;
43
+ private _selectedDescriptionColor;
44
+ private _showScrollArrows;
45
+ private _showDescription;
46
+ private _showUnderline;
47
+ private _wrapSelection;
48
48
  constructor(id: string, options: TabSelectRenderableOptions);
49
49
  private calculateDynamicHeight;
50
50
  protected renderSelf(buffer: OptimizedBuffer, deltaTime: number): void;
@@ -63,12 +63,23 @@ export declare class TabSelectRenderable extends Renderable {
63
63
  setTabWidth(tabWidth: number): void;
64
64
  getTabWidth(): number;
65
65
  handleKeyPress(key: ParsedKey | string): boolean;
66
- setShowDescription(show: boolean): void;
67
- getShowDescription(): boolean;
68
- setShowUnderline(show: boolean): void;
69
- getShowUnderline(): boolean;
70
- setShowScrollArrows(show: boolean): void;
71
- getShowScrollArrows(): boolean;
72
- setWrapSelection(wrap: boolean): void;
73
- getWrapSelection(): boolean;
66
+ get options(): TabSelectOption[];
67
+ set options(options: TabSelectOption[]);
68
+ set backgroundColor(color: ColorInput);
69
+ set textColor(color: ColorInput);
70
+ set focusedBackgroundColor(color: ColorInput);
71
+ set focusedTextColor(color: ColorInput);
72
+ set selectedBackgroundColor(color: ColorInput);
73
+ set selectedTextColor(color: ColorInput);
74
+ set selectedDescriptionColor(color: ColorInput);
75
+ get showDescription(): boolean;
76
+ set showDescription(show: boolean);
77
+ get showUnderline(): boolean;
78
+ set showUnderline(show: boolean);
79
+ get showScrollArrows(): boolean;
80
+ set showScrollArrows(show: boolean);
81
+ get wrapSelection(): boolean;
82
+ set wrapSelection(wrap: boolean);
83
+ get tabWidth(): number;
84
+ set tabWidth(tabWidth: number);
74
85
  }
package/renderer.d.ts CHANGED
@@ -62,6 +62,7 @@ export declare enum CliRenderEvents {
62
62
  DEBUG_OVERLAY_TOGGLE = "debugOverlay:toggle"
63
63
  }
64
64
  export declare class CliRenderer extends EventEmitter {
65
+ private static animationFrameId;
65
66
  private lib;
66
67
  rendererPtr: Pointer;
67
68
  private stdin;
package/singleton.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Ensures a value is initialized once per process,
3
+ * persists across Bun hot reloads, and is type-safe.
4
+ */
5
+ export declare function singleton<T>(key: string, factory: () => T): T;