@opentui/core 0.0.0-20251008-63d6b70d → 0.0.0-20251026-8b7fde6b

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.
Files changed (43) hide show
  1. package/3d.js +140 -140
  2. package/3d.js.map +3 -3
  3. package/README.md +10 -0
  4. package/Renderable.d.ts +25 -24
  5. package/buffer.d.ts +4 -7
  6. package/edit-buffer.d.ts +77 -0
  7. package/editor-view.d.ts +55 -0
  8. package/{index-pxa2sv92.js → index-hgxcxzxa.js} +2606 -462
  9. package/index-hgxcxzxa.js.map +55 -0
  10. package/index.d.ts +4 -0
  11. package/index.js +3529 -2025
  12. package/index.js.map +19 -12
  13. package/lib/KeyHandler.d.ts +3 -0
  14. package/lib/extmarks-history.d.ts +17 -0
  15. package/lib/extmarks.d.ts +80 -0
  16. package/lib/hast-styled-text.d.ts +2 -3
  17. package/lib/index.d.ts +1 -1
  18. package/lib/keymapping.d.ts +10 -0
  19. package/lib/objects-in-viewport.d.ts +14 -0
  20. package/lib/parse.keypress.d.ts +1 -1
  21. package/lib/tree-sitter/index.d.ts +0 -2
  22. package/lib/tree-sitter-styled-text.d.ts +1 -1
  23. package/lib/yoga.options.d.ts +6 -6
  24. package/package.json +9 -7
  25. package/renderables/Code.d.ts +1 -1
  26. package/renderables/EditBufferRenderable.d.ts +119 -0
  27. package/renderables/Text.d.ts +0 -3
  28. package/renderables/TextBufferRenderable.d.ts +8 -14
  29. package/renderables/TextNode.d.ts +2 -1
  30. package/renderables/Textarea.d.ts +95 -0
  31. package/renderables/index.d.ts +11 -9
  32. package/renderer.d.ts +20 -3
  33. package/{lib/syntax-style.d.ts → syntax-style.d.ts} +21 -5
  34. package/testing/mock-keys.d.ts +39 -2
  35. package/testing.js +54 -6
  36. package/testing.js.map +3 -3
  37. package/text-buffer-view.d.ts +31 -0
  38. package/text-buffer.d.ts +28 -21
  39. package/types.d.ts +10 -0
  40. package/zig-structs.d.ts +22 -0
  41. package/zig.d.ts +147 -23
  42. package/index-pxa2sv92.js.map +0 -52
  43. package/lib/word-jumps.d.ts +0 -2
package/zig.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { type Pointer } from "bun:ffi";
2
- import { type CursorStyle, type DebugOverlayCorner, type WidthMethod } from "./types";
2
+ import { type CursorStyle, type DebugOverlayCorner, type WidthMethod, type Highlight } from "./types";
3
3
  import { RGBA } from "./lib/RGBA";
4
4
  import { OptimizedBuffer } from "./buffer";
5
5
  import { TextBuffer } from "./text-buffer";
@@ -14,6 +14,24 @@ export interface LineInfo {
14
14
  lineWidths: number[];
15
15
  maxLineWidth: number;
16
16
  }
17
+ /**
18
+ * VisualCursor represents a cursor position with both visual and logical coordinates.
19
+ * Visual coordinates (visualRow, visualCol) are VIEWPORT-RELATIVE.
20
+ * This means visualRow=0 is the first visible line in the viewport, not the first line in the document.
21
+ * Logical coordinates (logicalRow, logicalCol) are document-absolute.
22
+ */
23
+ export interface VisualCursor {
24
+ visualRow: number;
25
+ visualCol: number;
26
+ logicalRow: number;
27
+ logicalCol: number;
28
+ offset: number;
29
+ }
30
+ export interface LogicalCursor {
31
+ row: number;
32
+ col: number;
33
+ offset: number;
34
+ }
17
35
  export interface RenderLib {
18
36
  createRenderer: (width: number, height: number, options?: {
19
37
  testing: boolean;
@@ -71,46 +89,152 @@ export interface RenderLib {
71
89
  createTextBuffer: (widthMethod: WidthMethod) => TextBuffer;
72
90
  destroyTextBuffer: (buffer: Pointer) => void;
73
91
  textBufferGetLength: (buffer: Pointer) => number;
92
+ textBufferGetByteSize: (buffer: Pointer) => number;
74
93
  textBufferReset: (buffer: Pointer) => void;
75
- textBufferSetSelection: (buffer: Pointer, start: number, end: number, bgColor: RGBA | null, fgColor: RGBA | null) => void;
76
- textBufferResetSelection: (buffer: Pointer) => void;
77
- textBufferSetLocalSelection: (buffer: Pointer, anchorX: number, anchorY: number, focusX: number, focusY: number, bgColor: RGBA | null, fgColor: RGBA | null) => boolean;
78
- textBufferResetLocalSelection: (buffer: Pointer) => void;
94
+ textBufferClear: (buffer: Pointer) => void;
95
+ textBufferRegisterMemBuffer: (buffer: Pointer, bytes: Uint8Array, owned?: boolean) => number;
96
+ textBufferReplaceMemBuffer: (buffer: Pointer, memId: number, bytes: Uint8Array, owned?: boolean) => boolean;
97
+ textBufferClearMemRegistry: (buffer: Pointer) => void;
98
+ textBufferSetTextFromMem: (buffer: Pointer, memId: number) => void;
99
+ textBufferLoadFile: (buffer: Pointer, path: string) => boolean;
100
+ textBufferSetStyledText: (buffer: Pointer, chunks: Array<{
101
+ text: string;
102
+ fg?: RGBA | null;
103
+ bg?: RGBA | null;
104
+ attributes?: number;
105
+ }>) => void;
79
106
  textBufferSetDefaultFg: (buffer: Pointer, fg: RGBA | null) => void;
80
107
  textBufferSetDefaultBg: (buffer: Pointer, bg: RGBA | null) => void;
81
108
  textBufferSetDefaultAttributes: (buffer: Pointer, attributes: number | null) => void;
82
109
  textBufferResetDefaults: (buffer: Pointer) => void;
83
- textBufferWriteChunk: (buffer: Pointer, textBytes: Uint8Array, fg: RGBA | null, bg: RGBA | null, attributes: number | null) => number;
84
- textBufferFinalizeLineInfo: (buffer: Pointer) => void;
85
110
  textBufferGetLineCount: (buffer: Pointer) => number;
86
- textBufferGetLineInfoDirect: (buffer: Pointer, lineStartsPtr: Pointer, lineWidthsPtr: Pointer) => void;
87
- textBufferGetLineInfo: (buffer: Pointer) => LineInfo;
88
- textBufferGetSelection: (buffer: Pointer) => {
111
+ getPlainTextBytes: (buffer: Pointer, maxLength: number) => Uint8Array | null;
112
+ createTextBufferView: (textBuffer: Pointer) => Pointer;
113
+ destroyTextBufferView: (view: Pointer) => void;
114
+ textBufferViewSetSelection: (view: Pointer, start: number, end: number, bgColor: RGBA | null, fgColor: RGBA | null) => void;
115
+ textBufferViewResetSelection: (view: Pointer) => void;
116
+ textBufferViewGetSelection: (view: Pointer) => {
89
117
  start: number;
90
118
  end: number;
91
119
  } | null;
92
- getSelectedTextBytes: (buffer: Pointer, maxLength: number) => Uint8Array | null;
93
- getPlainTextBytes: (buffer: Pointer, maxLength: number) => Uint8Array | null;
120
+ textBufferViewSetLocalSelection: (view: Pointer, anchorX: number, anchorY: number, focusX: number, focusY: number, bgColor: RGBA | null, fgColor: RGBA | null) => boolean;
121
+ textBufferViewResetLocalSelection: (view: Pointer) => void;
122
+ textBufferViewSetWrapWidth: (view: Pointer, width: number) => void;
123
+ textBufferViewSetWrapMode: (view: Pointer, mode: "none" | "char" | "word") => void;
124
+ textBufferViewSetViewportSize: (view: Pointer, width: number, height: number) => void;
125
+ textBufferViewGetLineInfo: (view: Pointer) => LineInfo;
126
+ textBufferViewGetLogicalLineInfo: (view: Pointer) => LineInfo;
127
+ textBufferViewGetSelectedTextBytes: (view: Pointer, maxLength: number) => Uint8Array | null;
128
+ textBufferViewGetPlainTextBytes: (view: Pointer, maxLength: number) => Uint8Array | null;
94
129
  readonly encoder: TextEncoder;
95
130
  readonly decoder: TextDecoder;
96
- bufferDrawTextBuffer: (buffer: Pointer, textBuffer: Pointer, x: number, y: number, clipRect?: {
97
- x: number;
98
- y: number;
99
- width: number;
131
+ bufferDrawTextBufferView: (buffer: Pointer, view: Pointer, x: number, y: number) => void;
132
+ bufferDrawEditorView: (buffer: Pointer, view: Pointer, x: number, y: number) => void;
133
+ createEditBuffer: (widthMethod: WidthMethod) => Pointer;
134
+ destroyEditBuffer: (buffer: Pointer) => void;
135
+ editBufferSetText: (buffer: Pointer, textBytes: Uint8Array, retainHistory?: boolean) => void;
136
+ editBufferSetTextFromMem: (buffer: Pointer, memId: number, retainHistory?: boolean) => void;
137
+ editBufferGetText: (buffer: Pointer, maxLength: number) => Uint8Array | null;
138
+ editBufferInsertChar: (buffer: Pointer, char: string) => void;
139
+ editBufferInsertText: (buffer: Pointer, text: string) => void;
140
+ editBufferDeleteChar: (buffer: Pointer) => void;
141
+ editBufferDeleteCharBackward: (buffer: Pointer) => void;
142
+ editBufferDeleteRange: (buffer: Pointer, startLine: number, startCol: number, endLine: number, endCol: number) => void;
143
+ editBufferNewLine: (buffer: Pointer) => void;
144
+ editBufferDeleteLine: (buffer: Pointer) => void;
145
+ editBufferMoveCursorLeft: (buffer: Pointer) => void;
146
+ editBufferMoveCursorRight: (buffer: Pointer) => void;
147
+ editBufferMoveCursorUp: (buffer: Pointer) => void;
148
+ editBufferMoveCursorDown: (buffer: Pointer) => void;
149
+ editBufferGotoLine: (buffer: Pointer, line: number) => void;
150
+ editBufferSetCursor: (buffer: Pointer, line: number, col: number) => void;
151
+ editBufferSetCursorToLineCol: (buffer: Pointer, line: number, col: number) => void;
152
+ editBufferSetCursorByOffset: (buffer: Pointer, offset: number) => void;
153
+ editBufferGetCursorPosition: (buffer: Pointer) => LogicalCursor;
154
+ editBufferGetId: (buffer: Pointer) => number;
155
+ editBufferGetTextBuffer: (buffer: Pointer) => Pointer;
156
+ editBufferDebugLogRope: (buffer: Pointer) => void;
157
+ editBufferUndo: (buffer: Pointer, maxLength: number) => Uint8Array | null;
158
+ editBufferRedo: (buffer: Pointer, maxLength: number) => Uint8Array | null;
159
+ editBufferCanUndo: (buffer: Pointer) => boolean;
160
+ editBufferCanRedo: (buffer: Pointer) => boolean;
161
+ editBufferClearHistory: (buffer: Pointer) => void;
162
+ editBufferSetPlaceholder: (buffer: Pointer, text: string | null) => void;
163
+ editBufferSetPlaceholderColor: (buffer: Pointer, color: RGBA) => void;
164
+ editBufferClear: (buffer: Pointer) => void;
165
+ editBufferGetNextWordBoundary: (buffer: Pointer) => {
166
+ row: number;
167
+ col: number;
168
+ offset: number;
169
+ };
170
+ editBufferGetPrevWordBoundary: (buffer: Pointer) => {
171
+ row: number;
172
+ col: number;
173
+ offset: number;
174
+ };
175
+ editBufferGetEOL: (buffer: Pointer) => {
176
+ row: number;
177
+ col: number;
178
+ offset: number;
179
+ };
180
+ createEditorView: (editBufferPtr: Pointer, viewportWidth: number, viewportHeight: number) => Pointer;
181
+ destroyEditorView: (view: Pointer) => void;
182
+ editorViewSetViewportSize: (view: Pointer, width: number, height: number) => void;
183
+ editorViewGetViewport: (view: Pointer) => {
184
+ offsetY: number;
185
+ offsetX: number;
100
186
  height: number;
101
- }) => void;
187
+ width: number;
188
+ };
189
+ editorViewSetScrollMargin: (view: Pointer, margin: number) => void;
190
+ editorViewSetWrapMode: (view: Pointer, mode: "none" | "char" | "word") => void;
191
+ editorViewGetVirtualLineCount: (view: Pointer) => number;
192
+ editorViewGetTotalVirtualLineCount: (view: Pointer) => number;
193
+ editorViewGetTextBufferView: (view: Pointer) => Pointer;
194
+ editorViewSetSelection: (view: Pointer, start: number, end: number, bgColor: RGBA | null, fgColor: RGBA | null) => void;
195
+ editorViewResetSelection: (view: Pointer) => void;
196
+ editorViewGetSelection: (view: Pointer) => {
197
+ start: number;
198
+ end: number;
199
+ } | null;
200
+ editorViewSetLocalSelection: (view: Pointer, anchorX: number, anchorY: number, focusX: number, focusY: number, bgColor: RGBA | null, fgColor: RGBA | null) => boolean;
201
+ editorViewResetLocalSelection: (view: Pointer) => void;
202
+ editorViewGetSelectedTextBytes: (view: Pointer, maxLength: number) => Uint8Array | null;
203
+ editorViewGetCursor: (view: Pointer) => {
204
+ row: number;
205
+ col: number;
206
+ };
207
+ editorViewGetText: (view: Pointer, maxLength: number) => Uint8Array | null;
208
+ editorViewGetVisualCursor: (view: Pointer) => VisualCursor;
209
+ editorViewMoveUpVisual: (view: Pointer) => void;
210
+ editorViewMoveDownVisual: (view: Pointer) => void;
211
+ editorViewDeleteSelectedText: (view: Pointer) => void;
212
+ editorViewSetCursorByOffset: (view: Pointer, offset: number) => void;
213
+ editorViewGetNextWordBoundary: (view: Pointer) => VisualCursor;
214
+ editorViewGetPrevWordBoundary: (view: Pointer) => VisualCursor;
215
+ editorViewGetEOL: (view: Pointer) => VisualCursor;
102
216
  bufferPushScissorRect: (buffer: Pointer, x: number, y: number, width: number, height: number) => void;
103
217
  bufferPopScissorRect: (buffer: Pointer) => void;
104
218
  bufferClearScissorRects: (buffer: Pointer) => void;
105
- textBufferInsertChunkGroup: (buffer: Pointer, index: number, textBytes: Uint8Array, fg: RGBA | null, bg: RGBA | null, attributes: number | null) => number;
106
- textBufferRemoveChunkGroup: (buffer: Pointer, index: number) => number;
107
- textBufferReplaceChunkGroup: (buffer: Pointer, index: number, textBytes: Uint8Array, fg: RGBA | null, bg: RGBA | null, attributes: number | null) => number;
108
- textBufferGetChunkGroupCount: (buffer: Pointer) => number;
109
- textBufferSetWrapWidth: (buffer: Pointer, width: number) => void;
110
- textBufferSetWrapMode: (buffer: Pointer, mode: "char" | "word") => void;
219
+ textBufferAddHighlightByCharRange: (buffer: Pointer, highlight: Highlight) => void;
220
+ textBufferAddHighlight: (buffer: Pointer, lineIdx: number, highlight: Highlight) => void;
221
+ textBufferRemoveHighlightsByRef: (buffer: Pointer, hlRef: number) => void;
222
+ textBufferClearLineHighlights: (buffer: Pointer, lineIdx: number) => void;
223
+ textBufferClearAllHighlights: (buffer: Pointer) => void;
224
+ textBufferSetSyntaxStyle: (buffer: Pointer, style: Pointer | null) => void;
225
+ textBufferGetLineHighlights: (buffer: Pointer, lineIdx: number) => Array<Highlight>;
111
226
  getArenaAllocatedBytes: () => number;
227
+ createSyntaxStyle: () => Pointer;
228
+ destroySyntaxStyle: (style: Pointer) => void;
229
+ syntaxStyleRegister: (style: Pointer, name: string, fg: RGBA | null, bg: RGBA | null, attributes: number) => number;
230
+ syntaxStyleResolveByName: (style: Pointer, name: string) => number | null;
231
+ syntaxStyleGetStyleCount: (style: Pointer) => number;
112
232
  getTerminalCapabilities: (renderer: Pointer) => any;
113
233
  processCapabilityResponse: (renderer: Pointer, response: string) => void;
234
+ onNativeEvent: (name: string, handler: (data: ArrayBuffer) => void) => void;
235
+ onceNativeEvent: (name: string, handler: (data: ArrayBuffer) => void) => void;
236
+ offNativeEvent: (name: string, handler: (data: ArrayBuffer) => void) => void;
237
+ onAnyNativeEvent: (handler: (name: string, data: ArrayBuffer) => void) => void;
114
238
  }
115
239
  export declare function setRenderLibPath(libPath: string): void;
116
240
  export declare function resolveRenderLib(): RenderLib;