@opentui/core 0.1.88 → 0.1.89

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/renderer.d.ts CHANGED
@@ -104,8 +104,15 @@ export declare enum MouseButton {
104
104
  }
105
105
  export declare function createCliRenderer(config?: CliRendererConfig): Promise<CliRenderer>;
106
106
  export declare enum CliRenderEvents {
107
+ RESIZE = "resize",
108
+ FOCUS = "focus",
109
+ BLUR = "blur",
110
+ THEME_MODE = "theme_mode",
111
+ CAPABILITIES = "capabilities",
112
+ SELECTION = "selection",
107
113
  DEBUG_OVERLAY_TOGGLE = "debugOverlay:toggle",
108
- DESTROY = "destroy"
114
+ DESTROY = "destroy",
115
+ MEMORY_SNAPSHOT = "memory:snapshot"
109
116
  }
110
117
  export declare enum RendererControlState {
111
118
  IDLE = "idle",
@@ -210,6 +217,7 @@ export declare class CliRenderer extends EventEmitter implements RenderContext {
210
217
  private _paletteDetectionPromise;
211
218
  private _onDestroy?;
212
219
  private _themeMode;
220
+ private _terminalFocusState;
213
221
  private sequenceHandlers;
214
222
  private prependedInputHandlers;
215
223
  private shouldRestoreModesOnNextFocus;
@@ -229,6 +237,8 @@ export declare class CliRenderer extends EventEmitter implements RenderContext {
229
237
  unregisterLifecyclePass(renderable: Renderable): void;
230
238
  getLifecyclePasses(): Set<Renderable>;
231
239
  get currentFocusedRenderable(): Renderable | null;
240
+ private normalizeClockTime;
241
+ private getElapsedMs;
232
242
  focusRenderable(renderable: Renderable): void;
233
243
  private setCapturedRenderable;
234
244
  addToHitGrid(x: number, y: number, width: number, height: number, id: number): void;
@@ -279,6 +289,7 @@ export declare class CliRenderer extends EventEmitter implements RenderContext {
279
289
  addInputHandler(handler: (sequence: string) => boolean): void;
280
290
  prependInputHandler(handler: (sequence: string) => boolean): void;
281
291
  removeInputHandler(handler: (sequence: string) => boolean): void;
292
+ private updateStdinParserProtocolContext;
282
293
  subscribeOsc(handler: (sequence: string) => void): () => void;
283
294
  private capabilityHandler;
284
295
  private focusHandler;
@@ -2,9 +2,9 @@
2
2
  import {
3
3
  createRuntimePlugin,
4
4
  runtimeModuleIdForSpecifier
5
- } from "./index-e4hzc2j2.js";
6
- import"./index-nyw5p3ep.js";
7
- import"./index-nkrr8a4c.js";
5
+ } from "./index-tae5jwnc.js";
6
+ import"./index-rs5zwr4j.js";
7
+ import"./index-e89anq5x.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-e4hzc2j2.js";
7
- import"./index-nyw5p3ep.js";
8
- import"./index-nkrr8a4c.js";
6
+ } from "./index-tae5jwnc.js";
7
+ import"./index-rs5zwr4j.js";
8
+ import"./index-e89anq5x.js";
9
9
  export {
10
10
  runtimeModuleIdForSpecifier,
11
11
  isCoreRuntimeModuleSpecifier,
@@ -5,6 +5,7 @@ export declare class ManualClock implements Clock {
5
5
  private nextOrder;
6
6
  private readonly timers;
7
7
  now(): number;
8
+ setTime(time: number): void;
8
9
  setTimeout(fn: () => void, delayMs: number): TimerHandle;
9
10
  clearTimeout(handle: TimerHandle): void;
10
11
  setInterval(fn: () => void, delayMs: number): TimerHandle;
package/testing.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  CliRenderer,
5
5
  TreeSitterClient,
6
6
  resolveRenderLib
7
- } from "./index-nkrr8a4c.js";
7
+ } from "./index-e89anq5x.js";
8
8
 
9
9
  // src/testing/test-renderer.ts
10
10
  import { Readable } from "stream";
package/types.d.ts CHANGED
@@ -36,6 +36,11 @@ export declare enum DebugOverlayCorner {
36
36
  bottomLeft = 2,
37
37
  bottomRight = 3
38
38
  }
39
+ export declare enum TargetChannel {
40
+ FG = 1,
41
+ BG = 2,
42
+ Both = 3
43
+ }
39
44
  export type WidthMethod = "wcwidth" | "unicode";
40
45
  export interface RendererEvents {
41
46
  resize: (width: number, height: number) => void;
package/zig.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { type Pointer } from "bun:ffi";
2
- import { type CursorStyle, type CursorStyleOptions, type DebugOverlayCorner, type WidthMethod, type Highlight, type LineInfo } from "./types.js";
2
+ import { type CursorStyle, type CursorStyleOptions, type TargetChannel, type DebugOverlayCorner, type WidthMethod, type Highlight, type LineInfo } from "./types.js";
3
3
  export type { LineInfo, AllocatorStats, BuildOptions };
4
4
  import { RGBA } from "./lib/RGBA.js";
5
5
  import { OptimizedBuffer } from "./buffer.js";
@@ -72,6 +72,8 @@ export interface RenderLib {
72
72
  bufferSetCellWithAlphaBlending: (buffer: Pointer, x: number, y: number, char: string, color: RGBA, bgColor: RGBA, attributes?: number) => void;
73
73
  bufferSetCell: (buffer: Pointer, x: number, y: number, char: string, color: RGBA, bgColor: RGBA, attributes?: number) => void;
74
74
  bufferFillRect: (buffer: Pointer, x: number, y: number, width: number, height: number, color: RGBA) => void;
75
+ bufferColorMatrix: (buffer: Pointer, matrixPtr: Pointer, cellMaskPtr: Pointer, cellMaskCount: number, strength: number, target: TargetChannel) => void;
76
+ bufferColorMatrixUniform: (buffer: Pointer, matrixPtr: Pointer, strength: number, target: TargetChannel) => void;
75
77
  bufferDrawSuperSampleBuffer: (buffer: Pointer, x: number, y: number, pixelDataPtr: Pointer, pixelDataLength: number, format: "bgra8unorm" | "rgba8unorm", alignedBytesPerRow: number) => void;
76
78
  bufferDrawPackedBuffer: (buffer: Pointer, dataPtr: Pointer, dataLen: number, posX: number, posY: number, terminalWidthCells: number, terminalHeightCells: number) => void;
77
79
  bufferDrawGrayscaleBuffer: (buffer: Pointer, posX: number, posY: number, intensitiesPtr: Pointer, srcWidth: number, srcHeight: number, fg: RGBA | null, bg: RGBA | null) => void;
package/index-e4hzc2j2.js DELETED
@@ -1,113 +0,0 @@
1
- // @bun
2
- import {
3
- exports_src
4
- } from "./index-nyw5p3ep.js";
5
- import {
6
- __require
7
- } from "./index-nkrr8a4c.js";
8
-
9
- // src/runtime-plugin.ts
10
- var CORE_RUNTIME_SPECIFIER = "@opentui/core";
11
- var CORE_3D_RUNTIME_SPECIFIER = "@opentui/core/3d";
12
- var CORE_TESTING_RUNTIME_SPECIFIER = "@opentui/core/testing";
13
- var RUNTIME_MODULE_PREFIX = "opentui:runtime-module:";
14
- var DEFAULT_CORE_RUNTIME_MODULE_SPECIFIERS = [
15
- CORE_RUNTIME_SPECIFIER,
16
- CORE_3D_RUNTIME_SPECIFIER,
17
- CORE_TESTING_RUNTIME_SPECIFIER
18
- ];
19
- var DEFAULT_CORE_RUNTIME_MODULE_SPECIFIER_SET = new Set(DEFAULT_CORE_RUNTIME_MODULE_SPECIFIERS);
20
- var isCoreRuntimeModuleSpecifier = (specifier) => {
21
- return DEFAULT_CORE_RUNTIME_MODULE_SPECIFIER_SET.has(specifier);
22
- };
23
- var loadCore3dRuntimeModule = async () => {
24
- return await import("./3d.js");
25
- };
26
- var loadCoreTestingRuntimeModule = async () => {
27
- return await import("./testing.js");
28
- };
29
- var escapeRegExp = (value) => {
30
- return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
31
- };
32
- var exactSpecifierFilter = (specifier) => {
33
- return new RegExp(`^${escapeRegExp(specifier)}$`);
34
- };
35
- var runtimeModuleIdForSpecifier = (specifier) => {
36
- return `${RUNTIME_MODULE_PREFIX}${encodeURIComponent(specifier)}`;
37
- };
38
- var resolveRuntimeModuleExports = async (moduleEntry) => {
39
- if (typeof moduleEntry === "function") {
40
- return await moduleEntry();
41
- }
42
- return moduleEntry;
43
- };
44
- var runtimeLoaderForPath = (path) => {
45
- if (path.endsWith(".tsx")) {
46
- return "tsx";
47
- }
48
- if (path.endsWith(".jsx")) {
49
- return "jsx";
50
- }
51
- if (path.endsWith(".ts") || path.endsWith(".mts") || path.endsWith(".cts")) {
52
- return "ts";
53
- }
54
- if (path.endsWith(".js") || path.endsWith(".mjs") || path.endsWith(".cjs")) {
55
- return "js";
56
- }
57
- return null;
58
- };
59
- var rewriteRuntimeSpecifiers = (code, runtimeModuleIdsBySpecifier) => {
60
- let transformedCode = code;
61
- for (const [specifier, moduleId] of runtimeModuleIdsBySpecifier.entries()) {
62
- const escapedSpecifier = escapeRegExp(specifier);
63
- transformedCode = transformedCode.replace(new RegExp(`(from\\s+["'])${escapedSpecifier}(["'])`, "g"), `$1${moduleId}$2`).replace(new RegExp(`(import\\s+["'])${escapedSpecifier}(["'])`, "g"), `$1${moduleId}$2`).replace(new RegExp(`(import\\s*\\(\\s*["'])${escapedSpecifier}(["']\\s*\\))`, "g"), `$1${moduleId}$2`).replace(new RegExp(`(require\\s*\\(\\s*["'])${escapedSpecifier}(["']\\s*\\))`, "g"), `$1${moduleId}$2`);
64
- }
65
- return transformedCode;
66
- };
67
- function createRuntimePlugin(input = {}) {
68
- const runtimeModules = new Map;
69
- runtimeModules.set(CORE_RUNTIME_SPECIFIER, input.core ?? exports_src);
70
- runtimeModules.set(CORE_3D_RUNTIME_SPECIFIER, loadCore3dRuntimeModule);
71
- runtimeModules.set(CORE_TESTING_RUNTIME_SPECIFIER, loadCoreTestingRuntimeModule);
72
- for (const [specifier, moduleEntry] of Object.entries(input.additional ?? {})) {
73
- runtimeModules.set(specifier, moduleEntry);
74
- }
75
- const runtimeModuleIdsBySpecifier = new Map;
76
- for (const specifier of runtimeModules.keys()) {
77
- runtimeModuleIdsBySpecifier.set(specifier, runtimeModuleIdForSpecifier(specifier));
78
- }
79
- return {
80
- name: "bun-plugin-opentui-runtime-modules",
81
- setup: (build) => {
82
- for (const [specifier, moduleEntry] of runtimeModules.entries()) {
83
- const moduleId = runtimeModuleIdsBySpecifier.get(specifier);
84
- if (!moduleId) {
85
- continue;
86
- }
87
- build.module(moduleId, async () => ({
88
- exports: await resolveRuntimeModuleExports(moduleEntry),
89
- loader: "object"
90
- }));
91
- build.onResolve({ filter: exactSpecifierFilter(specifier) }, () => ({ path: moduleId }));
92
- }
93
- build.onLoad({ filter: /\.(?:[cm]?js|[cm]?ts|jsx|tsx)$/ }, async (args) => {
94
- const loader = runtimeLoaderForPath(args.path);
95
- if (!loader) {
96
- return;
97
- }
98
- const file = Bun.file(args.path);
99
- const contents = await file.text();
100
- const transformedContents = rewriteRuntimeSpecifiers(contents, runtimeModuleIdsBySpecifier);
101
- return {
102
- contents: transformedContents,
103
- loader
104
- };
105
- });
106
- }
107
- };
108
- }
109
-
110
- export { isCoreRuntimeModuleSpecifier, runtimeModuleIdForSpecifier, createRuntimePlugin };
111
-
112
- //# debugId=D871D36BF4DDA4A464756E2164756E21
113
- //# sourceMappingURL=index-e4hzc2j2.js.map
@@ -1,10 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/runtime-plugin.ts"],
4
- "sourcesContent": [
5
- "import { type BunPlugin } from \"bun\"\nimport * as coreRuntime from \"./index\"\n\nexport type RuntimeModuleExports = Record<string, unknown>\nexport type RuntimeModuleLoader = () => RuntimeModuleExports | Promise<RuntimeModuleExports>\nexport type RuntimeModuleEntry = RuntimeModuleExports | RuntimeModuleLoader\n\nexport interface CreateRuntimePluginOptions {\n core?: RuntimeModuleEntry\n additional?: Record<string, RuntimeModuleEntry>\n}\n\nconst CORE_RUNTIME_SPECIFIER = \"@opentui/core\"\nconst CORE_3D_RUNTIME_SPECIFIER = \"@opentui/core/3d\"\nconst CORE_TESTING_RUNTIME_SPECIFIER = \"@opentui/core/testing\"\nconst RUNTIME_MODULE_PREFIX = \"opentui:runtime-module:\"\n\nconst DEFAULT_CORE_RUNTIME_MODULE_SPECIFIERS = [\n CORE_RUNTIME_SPECIFIER,\n CORE_3D_RUNTIME_SPECIFIER,\n CORE_TESTING_RUNTIME_SPECIFIER,\n] as const\n\nconst DEFAULT_CORE_RUNTIME_MODULE_SPECIFIER_SET = new Set<string>(DEFAULT_CORE_RUNTIME_MODULE_SPECIFIERS)\n\nexport const isCoreRuntimeModuleSpecifier = (specifier: string): boolean => {\n return DEFAULT_CORE_RUNTIME_MODULE_SPECIFIER_SET.has(specifier)\n}\n\nconst loadCore3dRuntimeModule = async (): Promise<RuntimeModuleExports> => {\n return (await import(\"./3d\")) as RuntimeModuleExports\n}\n\nconst loadCoreTestingRuntimeModule = async (): Promise<RuntimeModuleExports> => {\n return (await import(\"./testing\")) as RuntimeModuleExports\n}\n\nconst escapeRegExp = (value: string): string => {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")\n}\n\nconst exactSpecifierFilter = (specifier: string): RegExp => {\n return new RegExp(`^${escapeRegExp(specifier)}$`)\n}\n\nexport const runtimeModuleIdForSpecifier = (specifier: string): string => {\n return `${RUNTIME_MODULE_PREFIX}${encodeURIComponent(specifier)}`\n}\n\nconst resolveRuntimeModuleExports = async (moduleEntry: RuntimeModuleEntry): Promise<RuntimeModuleExports> => {\n if (typeof moduleEntry === \"function\") {\n return await moduleEntry()\n }\n\n return moduleEntry\n}\n\nconst runtimeLoaderForPath = (path: string): \"js\" | \"ts\" | \"jsx\" | \"tsx\" | null => {\n if (path.endsWith(\".tsx\")) {\n return \"tsx\"\n }\n\n if (path.endsWith(\".jsx\")) {\n return \"jsx\"\n }\n\n if (path.endsWith(\".ts\") || path.endsWith(\".mts\") || path.endsWith(\".cts\")) {\n return \"ts\"\n }\n\n if (path.endsWith(\".js\") || path.endsWith(\".mjs\") || path.endsWith(\".cjs\")) {\n return \"js\"\n }\n\n return null\n}\n\nconst rewriteRuntimeSpecifiers = (code: string, runtimeModuleIdsBySpecifier: Map<string, string>): string => {\n let transformedCode = code\n\n for (const [specifier, moduleId] of runtimeModuleIdsBySpecifier.entries()) {\n const escapedSpecifier = escapeRegExp(specifier)\n\n transformedCode = transformedCode\n .replace(new RegExp(`(from\\\\s+[\"'])${escapedSpecifier}([\"'])`, \"g\"), `$1${moduleId}$2`)\n .replace(new RegExp(`(import\\\\s+[\"'])${escapedSpecifier}([\"'])`, \"g\"), `$1${moduleId}$2`)\n .replace(new RegExp(`(import\\\\s*\\\\(\\\\s*[\"'])${escapedSpecifier}([\"']\\\\s*\\\\))`, \"g\"), `$1${moduleId}$2`)\n .replace(new RegExp(`(require\\\\s*\\\\(\\\\s*[\"'])${escapedSpecifier}([\"']\\\\s*\\\\))`, \"g\"), `$1${moduleId}$2`)\n }\n\n return transformedCode\n}\n\nexport function createRuntimePlugin(input: CreateRuntimePluginOptions = {}): BunPlugin {\n const runtimeModules = new Map<string, RuntimeModuleEntry>()\n runtimeModules.set(CORE_RUNTIME_SPECIFIER, input.core ?? (coreRuntime as RuntimeModuleExports))\n runtimeModules.set(CORE_3D_RUNTIME_SPECIFIER, loadCore3dRuntimeModule)\n runtimeModules.set(CORE_TESTING_RUNTIME_SPECIFIER, loadCoreTestingRuntimeModule)\n\n for (const [specifier, moduleEntry] of Object.entries(input.additional ?? {})) {\n runtimeModules.set(specifier, moduleEntry)\n }\n\n const runtimeModuleIdsBySpecifier = new Map<string, string>()\n for (const specifier of runtimeModules.keys()) {\n runtimeModuleIdsBySpecifier.set(specifier, runtimeModuleIdForSpecifier(specifier))\n }\n\n return {\n name: \"bun-plugin-opentui-runtime-modules\",\n setup: (build) => {\n for (const [specifier, moduleEntry] of runtimeModules.entries()) {\n const moduleId = runtimeModuleIdsBySpecifier.get(specifier)\n\n if (!moduleId) {\n continue\n }\n\n build.module(moduleId, async () => ({\n exports: await resolveRuntimeModuleExports(moduleEntry),\n loader: \"object\",\n }))\n\n build.onResolve({ filter: exactSpecifierFilter(specifier) }, () => ({ path: moduleId }))\n }\n\n build.onLoad({ filter: /\\.(?:[cm]?js|[cm]?ts|jsx|tsx)$/ }, async (args) => {\n const loader = runtimeLoaderForPath(args.path)\n if (!loader) {\n return undefined\n }\n\n const file = Bun.file(args.path)\n const contents = await file.text()\n const transformedContents = rewriteRuntimeSpecifiers(contents, runtimeModuleIdsBySpecifier)\n\n return {\n contents: transformedContents,\n loader,\n }\n })\n },\n }\n}\n"
6
- ],
7
- "mappings": "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",
8
- "debugId": "D871D36BF4DDA4A464756E2164756E21",
9
- "names": []
10
- }