@opentui/core 0.1.95 → 0.1.96

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/index.js CHANGED
@@ -15,8 +15,6 @@ import {
15
15
  DEUTERANOPIA_SIM_MATRIX,
16
16
  DiffRenderable,
17
17
  DistortionEffect,
18
- EditBuffer,
19
- EditorView,
20
18
  FlamesEffect,
21
19
  FrameBuffer,
22
20
  FrameBufferRenderable,
@@ -81,7 +79,7 @@ import {
81
79
  registerCorePlugin,
82
80
  resolveCoreSlot,
83
81
  vstyles
84
- } from "./index-t2rqapaa.js";
82
+ } from "./index-dg6qsc3m.js";
85
83
  import {
86
84
  ASCIIFontSelectionHelper,
87
85
  ATTRIBUTE_BASE_BITS,
@@ -94,6 +92,10 @@ import {
94
92
  ConsolePosition,
95
93
  DataPathsManager,
96
94
  DebugOverlayCorner,
95
+ EditBuffer,
96
+ EditBufferRenderable,
97
+ EditBufferRenderableEvents,
98
+ EditorView,
97
99
  ExtmarksController,
98
100
  InternalKeyHandler,
99
101
  KeyEvent,
@@ -184,6 +186,7 @@ import {
184
186
  hsvToRgb,
185
187
  infoStringToFiletype,
186
188
  instantiate,
189
+ isEditBufferRenderable,
187
190
  isRenderable,
188
191
  isStyledText,
189
192
  isVNode,
@@ -233,7 +236,7 @@ import {
233
236
  white,
234
237
  wrapWithDelegates,
235
238
  yellow
236
- } from "./index-wv534m5j.js";
239
+ } from "./index-vy1rm1x3.js";
237
240
  export {
238
241
  yellow,
239
242
  wrapWithDelegates,
@@ -288,6 +291,7 @@ export {
288
291
  isTextNodeRenderable,
289
292
  isStyledText,
290
293
  isRenderable,
294
+ isEditBufferRenderable,
291
295
  instantiate,
292
296
  infoStringToFiletype,
293
297
  hsvToRgb,
@@ -439,6 +443,8 @@ export {
439
443
  FlamesEffect,
440
444
  ExtmarksController,
441
445
  EditorView,
446
+ EditBufferRenderableEvents,
447
+ EditBufferRenderable,
442
448
  EditBuffer,
443
449
  DistortionEffect,
444
450
  DiffRenderable,
@@ -468,5 +474,5 @@ export {
468
474
  ACHROMATOPSIA_MATRIX
469
475
  };
470
476
 
471
- //# debugId=1F6303440EC65EA264756E2164756E21
477
+ //# debugId=FD2591B7A1AB109264756E2164756E21
472
478
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -4,6 +4,6 @@
4
4
  "sourcesContent": [
5
5
  ],
6
6
  "mappings": "",
7
- "debugId": "1F6303440EC65EA264756E2164756E21",
7
+ "debugId": "FD2591B7A1AB109264756E2164756E21",
8
8
  "names": []
9
9
  }
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.95",
7
+ "version": "0.1.96",
8
8
  "description": "OpenTUI is a TypeScript library on a native Zig core for building terminal user interfaces (TUIs)",
9
9
  "license": "MIT",
10
10
  "repository": {
@@ -67,11 +67,11 @@
67
67
  "bun-webgpu": "0.1.5",
68
68
  "planck": "^1.4.2",
69
69
  "three": "0.177.0",
70
- "@opentui/core-darwin-x64": "0.1.95",
71
- "@opentui/core-darwin-arm64": "0.1.95",
72
- "@opentui/core-linux-x64": "0.1.95",
73
- "@opentui/core-linux-arm64": "0.1.95",
74
- "@opentui/core-win32-x64": "0.1.95",
75
- "@opentui/core-win32-arm64": "0.1.95"
70
+ "@opentui/core-darwin-x64": "0.1.96",
71
+ "@opentui/core-darwin-arm64": "0.1.96",
72
+ "@opentui/core-linux-x64": "0.1.96",
73
+ "@opentui/core-linux-arm64": "0.1.96",
74
+ "@opentui/core-win32-x64": "0.1.96",
75
+ "@opentui/core-win32-arm64": "0.1.96"
76
76
  }
77
77
  }
@@ -6,6 +6,17 @@ import { RGBA } from "../lib/RGBA.js";
6
6
  import type { RenderContext, Highlight, CursorStyleOptions, LineInfoProvider, LineInfo } from "../types.js";
7
7
  import type { OptimizedBuffer } from "../buffer.js";
8
8
  import type { SyntaxStyle } from "../syntax-style.js";
9
+ declare const BrandedEditBufferRenderable: unique symbol;
10
+ export type EditorCapture = "escape" | "navigate" | "submit" | "tab";
11
+ export interface EditorTraits {
12
+ capture?: readonly EditorCapture[];
13
+ suspend?: boolean;
14
+ status?: string;
15
+ }
16
+ export declare enum EditBufferRenderableEvents {
17
+ TRAITS_CHANGED = "traits-changed"
18
+ }
19
+ export declare function isEditBufferRenderable(obj: unknown): obj is EditBufferRenderable;
9
20
  export interface CursorChangeEvent {
10
21
  line: number;
11
22
  visualColumn: number;
@@ -32,8 +43,10 @@ export interface EditBufferOptions extends RenderableOptions<EditBufferRenderabl
32
43
  onContentChange?: (event: ContentChangeEvent) => void;
33
44
  }
34
45
  export declare abstract class EditBufferRenderable extends Renderable implements LineInfoProvider {
46
+ [BrandedEditBufferRenderable]: boolean;
35
47
  protected _focusable: boolean;
36
48
  selectable: boolean;
49
+ private _traits;
37
50
  protected _textColor: RGBA;
38
51
  protected _backgroundColor: RGBA;
39
52
  protected _defaultAttributes: number;
@@ -85,9 +98,12 @@ export declare abstract class EditBufferRenderable extends Renderable implements
85
98
  get visualCursor(): VisualCursor;
86
99
  get cursorOffset(): number;
87
100
  set cursorOffset(offset: number);
101
+ get cursorCharacterOffset(): number | undefined;
88
102
  get textColor(): RGBA;
89
103
  set textColor(value: RGBA | string | undefined);
90
104
  get selectionBg(): RGBA | undefined;
105
+ get traits(): EditorTraits;
106
+ set traits(value: EditorTraits);
91
107
  set selectionBg(value: RGBA | string | undefined);
92
108
  get selectionFg(): RGBA | undefined;
93
109
  set selectionFg(value: RGBA | string | undefined);
@@ -123,6 +139,65 @@ export declare abstract class EditBufferRenderable extends Renderable implements
123
139
  start: number;
124
140
  end: number;
125
141
  } | null;
142
+ private refreshSelectionStyle;
143
+ private deleteSelectedText;
144
+ setSelection(start: number, end: number): void;
145
+ setSelectionInclusive(start: number, end: number): void;
146
+ clearSelection(): boolean;
147
+ deleteSelection(): boolean;
148
+ setCursor(row: number, col: number): void;
149
+ insertChar(char: string): void;
150
+ insertText(text: string): void;
151
+ deleteChar(): boolean;
152
+ deleteCharBackward(): boolean;
153
+ newLine(): boolean;
154
+ deleteLine(): boolean;
155
+ moveCursorLeft(options?: {
156
+ select?: boolean;
157
+ }): boolean;
158
+ moveCursorRight(options?: {
159
+ select?: boolean;
160
+ }): boolean;
161
+ moveCursorUp(options?: {
162
+ select?: boolean;
163
+ }): boolean;
164
+ moveCursorDown(options?: {
165
+ select?: boolean;
166
+ }): boolean;
167
+ gotoLine(line: number): void;
168
+ gotoLineStart(): void;
169
+ gotoLineTextEnd(): void;
170
+ gotoLineHome(options?: {
171
+ select?: boolean;
172
+ }): boolean;
173
+ gotoLineEnd(options?: {
174
+ select?: boolean;
175
+ }): boolean;
176
+ gotoVisualLineHome(options?: {
177
+ select?: boolean;
178
+ }): boolean;
179
+ gotoVisualLineEnd(options?: {
180
+ select?: boolean;
181
+ }): boolean;
182
+ gotoBufferHome(options?: {
183
+ select?: boolean;
184
+ }): boolean;
185
+ gotoBufferEnd(options?: {
186
+ select?: boolean;
187
+ }): boolean;
188
+ selectAll(): boolean;
189
+ deleteToLineEnd(): boolean;
190
+ deleteToLineStart(): boolean;
191
+ undo(): boolean;
192
+ redo(): boolean;
193
+ moveWordForward(options?: {
194
+ select?: boolean;
195
+ }): boolean;
196
+ moveWordBackward(options?: {
197
+ select?: boolean;
198
+ }): boolean;
199
+ deleteWordForward(): boolean;
200
+ deleteWordBackward(): boolean;
126
201
  private setupMeasureFunc;
127
202
  render(buffer: OptimizedBuffer, deltaTime: number): void;
128
203
  protected renderSelf(buffer: OptimizedBuffer): void;
@@ -155,8 +230,8 @@ export declare abstract class EditBufferRenderable extends Renderable implements
155
230
  replaceText(text: string): void;
156
231
  clear(): void;
157
232
  deleteRange(startLine: number, startCol: number, endLine: number, endCol: number): void;
158
- insertText(text: string): void;
159
233
  getTextRange(startOffset: number, endOffset: number): string;
160
234
  getTextRangeByCoords(startRow: number, startCol: number, endRow: number, endCol: number): string;
161
235
  protected updateSelectionForMovement(shiftPressed: boolean, isBeforeMovement: boolean): void;
162
236
  }
237
+ export {};
@@ -41,57 +41,6 @@ export declare class TextareaRenderable extends EditBufferRenderable {
41
41
  handlePaste(event: PasteEvent): void;
42
42
  handleKeyPress(key: KeyEvent): boolean;
43
43
  private updateColors;
44
- insertChar(char: string): void;
45
- insertText(text: string): void;
46
- deleteChar(): boolean;
47
- deleteCharBackward(): boolean;
48
- private deleteSelectedText;
49
- newLine(): boolean;
50
- deleteLine(): boolean;
51
- moveCursorLeft(options?: {
52
- select?: boolean;
53
- }): boolean;
54
- moveCursorRight(options?: {
55
- select?: boolean;
56
- }): boolean;
57
- moveCursorUp(options?: {
58
- select?: boolean;
59
- }): boolean;
60
- moveCursorDown(options?: {
61
- select?: boolean;
62
- }): boolean;
63
- gotoLine(line: number): void;
64
- gotoLineHome(options?: {
65
- select?: boolean;
66
- }): boolean;
67
- gotoLineEnd(options?: {
68
- select?: boolean;
69
- }): boolean;
70
- gotoVisualLineHome(options?: {
71
- select?: boolean;
72
- }): boolean;
73
- gotoVisualLineEnd(options?: {
74
- select?: boolean;
75
- }): boolean;
76
- gotoBufferHome(options?: {
77
- select?: boolean;
78
- }): boolean;
79
- gotoBufferEnd(options?: {
80
- select?: boolean;
81
- }): boolean;
82
- selectAll(): boolean;
83
- deleteToLineEnd(): boolean;
84
- deleteToLineStart(): boolean;
85
- undo(): boolean;
86
- redo(): boolean;
87
- moveWordForward(options?: {
88
- select?: boolean;
89
- }): boolean;
90
- moveWordBackward(options?: {
91
- select?: boolean;
92
- }): boolean;
93
- deleteWordForward(): boolean;
94
- deleteWordBackward(): boolean;
95
44
  focus(): void;
96
45
  blur(): void;
97
46
  get placeholder(): StyledText | string | null;
@@ -5,6 +5,7 @@ export * from "./composition/constructs.js";
5
5
  export * from "./composition/VRenderable.js";
6
6
  export * from "./composition/vnode.js";
7
7
  export * from "./Diff.js";
8
+ export * from "./EditBufferRenderable.js";
8
9
  export * from "./FrameBuffer.js";
9
10
  export * from "./Input.js";
10
11
  export * from "./LineNumberRenderable.js";
package/renderer.d.ts CHANGED
@@ -10,6 +10,7 @@ import { Selection } from "./lib/selection.js";
10
10
  import { type ClipboardTarget } from "./lib/clipboard.js";
11
11
  import { EventEmitter } from "events";
12
12
  import { KeyHandler, InternalKeyHandler } from "./lib/KeyHandler.js";
13
+ import { type EditBufferRenderable } from "./renderables/EditBufferRenderable.js";
13
14
  import { type TerminalColors, type GetPaletteOptions } from "./lib/terminal-palette.js";
14
15
  import { type Clock } from "./lib/clock.js";
15
16
  export interface CliRendererConfig {
@@ -111,6 +112,7 @@ export declare enum CliRenderEvents {
111
112
  RESIZE = "resize",
112
113
  FOCUS = "focus",
113
114
  BLUR = "blur",
115
+ FOCUSED_EDITOR = "focused_editor",
114
116
  THEME_MODE = "theme_mode",
115
117
  CAPABILITIES = "capabilities",
116
118
  SELECTION = "selection",
@@ -244,6 +246,7 @@ export declare class CliRenderer extends EventEmitter implements RenderContext {
244
246
  unregisterLifecyclePass(renderable: Renderable): void;
245
247
  getLifecyclePasses(): Set<Renderable>;
246
248
  get currentFocusedRenderable(): Renderable | null;
249
+ get currentFocusedEditor(): EditBufferRenderable | null;
247
250
  private normalizeClockTime;
248
251
  private getElapsedMs;
249
252
  focusRenderable(renderable: Renderable): void;
@@ -2,9 +2,9 @@
2
2
  import {
3
3
  createRuntimePlugin,
4
4
  runtimeModuleIdForSpecifier
5
- } from "./index-d991k25n.js";
6
- import"./index-t2rqapaa.js";
7
- import"./index-wv534m5j.js";
5
+ } from "./index-ahc2zd0v.js";
6
+ import"./index-dg6qsc3m.js";
7
+ import"./index-vy1rm1x3.js";
8
8
 
9
9
  // src/runtime-plugin-support.ts
10
10
  var {plugin: registerBunPlugin } = globalThis.Bun;
package/runtime-plugin.js CHANGED
@@ -3,9 +3,9 @@ import {
3
3
  createRuntimePlugin,
4
4
  isCoreRuntimeModuleSpecifier,
5
5
  runtimeModuleIdForSpecifier
6
- } from "./index-d991k25n.js";
7
- import"./index-t2rqapaa.js";
8
- import"./index-wv534m5j.js";
6
+ } from "./index-ahc2zd0v.js";
7
+ import"./index-dg6qsc3m.js";
8
+ import"./index-vy1rm1x3.js";
9
9
  export {
10
10
  runtimeModuleIdForSpecifier,
11
11
  isCoreRuntimeModuleSpecifier,
package/testing.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  CliRenderer,
5
5
  TreeSitterClient,
6
6
  resolveRenderLib
7
- } from "./index-wv534m5j.js";
7
+ } from "./index-vy1rm1x3.js";
8
8
 
9
9
  // src/testing/test-renderer.ts
10
10
  import { Readable, Writable } from "stream";
package/types.d.ts CHANGED
@@ -3,6 +3,7 @@ import type { EventEmitter } from "events";
3
3
  import type { Selection } from "./lib/selection.js";
4
4
  import type { Renderable } from "./Renderable.js";
5
5
  import type { InternalKeyHandler, KeyHandler } from "./lib/KeyHandler.js";
6
+ import type { EditBufferRenderable } from "./renderables/EditBufferRenderable.js";
6
7
  export declare const TextAttributes: {
7
8
  NONE: number;
8
9
  BOLD: number;
@@ -51,6 +52,7 @@ export interface RendererEvents {
51
52
  arrayBuffers: number;
52
53
  }) => void;
53
54
  selection: (selection: Selection) => void;
55
+ focused_editor: (current: EditBufferRenderable | null, previous: EditBufferRenderable | null) => void;
54
56
  "debugOverlay:toggle": (enabled: boolean) => void;
55
57
  theme_mode: (mode: ThemeMode) => void;
56
58
  }
@@ -74,6 +76,7 @@ export interface RenderContext extends EventEmitter {
74
76
  getSelection: () => Selection | null;
75
77
  requestSelectionUpdate: () => void;
76
78
  currentFocusedRenderable: Renderable | null;
79
+ currentFocusedEditor: EditBufferRenderable | null;
77
80
  focusRenderable: (renderable: Renderable) => void;
78
81
  registerLifecyclePass: (renderable: Renderable) => void;
79
82
  unregisterLifecyclePass: (renderable: Renderable) => void;