@teaui/core 1.10.8 → 1.11.9
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/.dist/Buffer.d.ts +5 -0
- package/.dist/Buffer.js +150 -7
- package/.dist/Buffer.js.map +1 -1
- package/.dist/HeadlessProgram.d.ts +24 -0
- package/.dist/HeadlessProgram.js +41 -0
- package/.dist/HeadlessProgram.js.map +1 -0
- package/.dist/{Theme.d.ts → Palette.d.ts} +16 -15
- package/.dist/{Theme.js → Palette.js} +43 -28
- package/.dist/Palette.js.map +1 -0
- package/.dist/Screen.d.ts +43 -24
- package/.dist/Screen.js +102 -90
- package/.dist/Screen.js.map +1 -1
- package/.dist/Style.js +11 -10
- package/.dist/Style.js.map +1 -1
- package/.dist/TestProgram.d.ts +28 -0
- package/.dist/TestProgram.js +52 -0
- package/.dist/TestProgram.js.map +1 -0
- package/.dist/{testing.d.ts → TestScreen.d.ts} +4 -6
- package/.dist/TestScreen.js +99 -0
- package/.dist/TestScreen.js.map +1 -0
- package/.dist/TestTerminal.js +5 -23
- package/.dist/TestTerminal.js.map +1 -1
- package/.dist/UI.d.ts +2 -2
- package/.dist/UI.js +20 -20
- package/.dist/UI.js.map +1 -1
- package/.dist/View.d.ts +12 -7
- package/.dist/View.js +17 -10
- package/.dist/View.js.map +1 -1
- package/.dist/Viewport.d.ts +26 -0
- package/.dist/Viewport.js +57 -7
- package/.dist/Viewport.js.map +1 -1
- package/.dist/components/AbstractLegend.d.ts +30 -0
- package/.dist/components/AbstractLegend.js +195 -0
- package/.dist/components/AbstractLegend.js.map +1 -0
- package/.dist/components/Accordion.js +1 -1
- package/.dist/components/Accordion.js.map +1 -1
- package/.dist/components/Alert.d.ts +1 -1
- package/.dist/components/Alert.js +1 -1
- package/.dist/components/At.d.ts +57 -0
- package/.dist/components/At.js +182 -0
- package/.dist/components/At.js.map +1 -0
- package/.dist/components/AutoLegend.d.ts +21 -0
- package/.dist/components/AutoLegend.js +68 -0
- package/.dist/components/AutoLegend.js.map +1 -0
- package/.dist/components/Badge.d.ts +16 -0
- package/.dist/components/Badge.js +54 -0
- package/.dist/components/Badge.js.map +1 -0
- package/.dist/components/Box.d.ts +1 -1
- package/.dist/components/Box.js +4 -5
- package/.dist/components/Box.js.map +1 -1
- package/.dist/components/Breadcrumb.js +1 -1
- package/.dist/components/Breadcrumb.js.map +1 -1
- package/.dist/components/Button.d.ts +3 -2
- package/.dist/components/Button.js +13 -7
- package/.dist/components/Button.js.map +1 -1
- package/.dist/components/Calendar.d.ts +3 -1
- package/.dist/components/Calendar.js +34 -24
- package/.dist/components/Calendar.js.map +1 -1
- package/.dist/components/Callout.js +16 -16
- package/.dist/components/Callout.js.map +1 -1
- package/.dist/components/Canvas.js +1 -1
- package/.dist/components/Canvas.js.map +1 -1
- package/.dist/components/Checkbox.d.ts +3 -1
- package/.dist/components/Checkbox.js +11 -5
- package/.dist/components/Checkbox.js.map +1 -1
- package/.dist/components/Collapsible.js +1 -1
- package/.dist/components/Collapsible.js.map +1 -1
- package/.dist/components/CollapsibleText.js +1 -1
- package/.dist/components/CollapsibleText.js.map +1 -1
- package/.dist/components/Digits.d.ts +1 -1
- package/.dist/components/Digits.js +1 -1
- package/.dist/components/Digits.js.map +1 -1
- package/.dist/components/Drawer.d.ts +5 -3
- package/.dist/components/Drawer.js +20 -14
- package/.dist/components/Drawer.js.map +1 -1
- package/.dist/components/Dropdown.d.ts +1 -1
- package/.dist/components/Dropdown.js +25 -15
- package/.dist/components/Dropdown.js.map +1 -1
- package/.dist/components/HotKey.d.ts +7 -4
- package/.dist/components/HotKey.js +12 -4
- package/.dist/components/HotKey.js.map +1 -1
- package/.dist/components/Input.d.ts +3 -1
- package/.dist/components/Input.js +369 -45
- package/.dist/components/Input.js.map +1 -1
- package/.dist/components/Legend.d.ts +7 -13
- package/.dist/components/Legend.js +15 -163
- package/.dist/components/Legend.js.map +1 -1
- package/.dist/components/Log.d.ts +1 -0
- package/.dist/components/Log.js +5 -2
- package/.dist/components/Log.js.map +1 -1
- package/.dist/components/Modal.d.ts +2 -1
- package/.dist/components/Modal.js +2 -2
- package/.dist/components/Modal.js.map +1 -1
- package/.dist/components/Notification.d.ts +1 -1
- package/.dist/components/Notification.js +3 -3
- package/.dist/components/Notification.js.map +1 -1
- package/.dist/components/Page.js +5 -14
- package/.dist/components/Page.js.map +1 -1
- package/.dist/components/Pane.js +13 -10
- package/.dist/components/Pane.js.map +1 -1
- package/.dist/components/Plot.js +1 -1
- package/.dist/components/Plot.js.map +1 -1
- package/.dist/components/Progress.js +2 -2
- package/.dist/components/Progress.js.map +1 -1
- package/.dist/components/Scrollable.js +4 -4
- package/.dist/components/Scrollable.js.map +1 -1
- package/.dist/components/ScrollableList.js +4 -4
- package/.dist/components/ScrollableList.js.map +1 -1
- package/.dist/components/Separator.js +1 -1
- package/.dist/components/Separator.js.map +1 -1
- package/.dist/components/Slider.d.ts +3 -2
- package/.dist/components/Slider.js +14 -4
- package/.dist/components/Slider.js.map +1 -1
- package/.dist/components/Space.d.ts +1 -1
- package/.dist/components/Space.js +1 -1
- package/.dist/components/Space.js.map +1 -1
- package/.dist/components/Spinner.d.ts +3 -1
- package/.dist/components/Spinner.js +11 -1
- package/.dist/components/Spinner.js.map +1 -1
- package/.dist/components/Table.d.ts +1 -2
- package/.dist/components/Table.js +5 -5
- package/.dist/components/Table.js.map +1 -1
- package/.dist/components/Tabs.d.ts +3 -2
- package/.dist/components/Tabs.js +42 -3
- package/.dist/components/Tabs.js.map +1 -1
- package/.dist/components/Text.d.ts +1 -1
- package/.dist/components/Text.js +8 -1
- package/.dist/components/Text.js.map +1 -1
- package/.dist/components/Toggle.d.ts +26 -0
- package/.dist/components/Toggle.js +151 -0
- package/.dist/components/Toggle.js.map +1 -0
- package/.dist/components/ToggleGroup.d.ts +1 -1
- package/.dist/components/ToggleGroup.js +22 -4
- package/.dist/components/ToggleGroup.js.map +1 -1
- package/.dist/components/ZStack.js +3 -1
- package/.dist/components/ZStack.js.map +1 -1
- package/.dist/components/charts/BarChart.js +2 -2
- package/.dist/components/charts/BarChart.js.map +1 -1
- package/.dist/components/index.d.ts +6 -2
- package/.dist/components/index.js +6 -2
- package/.dist/components/index.js.map +1 -1
- package/.dist/components/utility/TrackMouse.d.ts +3 -5
- package/.dist/components/utility/TrackMouse.js +1 -2
- package/.dist/components/utility/TrackMouse.js.map +1 -1
- package/.dist/events/key.d.ts +10 -6
- package/.dist/events/key.js +29 -6
- package/.dist/events/key.js.map +1 -1
- package/.dist/events/mouse.d.ts +1 -1
- package/.dist/events/translate.js +6 -6
- package/.dist/events/translate.js.map +1 -1
- package/.dist/iTerm2.d.ts +1 -1
- package/.dist/iTerm2.js +1 -1
- package/.dist/iTerm2.js.map +1 -1
- package/.dist/index.d.ts +6 -5
- package/.dist/index.js +6 -5
- package/.dist/index.js.map +1 -1
- package/.dist/log.d.ts +7 -2
- package/.dist/log.js +10 -3
- package/.dist/log.js.map +1 -1
- package/.dist/managers/FocusManager.d.ts +5 -2
- package/.dist/managers/FocusManager.js +58 -46
- package/.dist/managers/FocusManager.js.map +1 -1
- package/.dist/managers/MouseManager.js +1 -1
- package/.dist/managers/MouseManager.js.map +1 -1
- package/.dist/managers/TickManager.d.ts +1 -1
- package/.dist/managers/TickManager.js +4 -4
- package/.dist/managers/TickManager.js.map +1 -1
- package/.dist/renderToAnsi.d.ts +0 -7
- package/.dist/renderToAnsi.js +7 -36
- package/.dist/renderToAnsi.js.map +1 -1
- package/.dist/terminal.d.ts +1 -0
- package/.dist/types.d.ts +32 -0
- package/.dist/types.js.map +1 -1
- package/package.json +8 -4
- package/.dist/Theme.js.map +0 -1
- package/.dist/inspect.d.ts +0 -14
- package/.dist/inspect.js +0 -172
- package/.dist/inspect.js.map +0 -1
- package/.dist/testing.js +0 -190
- package/.dist/testing.js.map +0 -1
package/.dist/renderToAnsi.js
CHANGED
|
@@ -1,29 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { Size } from './geometry.js';
|
|
4
|
-
import { StringTerminal } from './StringTerminal.js';
|
|
5
|
-
/**
|
|
6
|
-
* A minimal Screen-like object for headless rendering.
|
|
7
|
-
* Viewport calls various registration methods on Screen during render —
|
|
8
|
-
* these are all no-ops for screenshot/offscreen purposes.
|
|
9
|
-
*/
|
|
10
|
-
export function createHeadlessScreen() {
|
|
11
|
-
return {
|
|
12
|
-
render() { },
|
|
13
|
-
needsRender() { },
|
|
14
|
-
requestModal() {
|
|
15
|
-
return false;
|
|
16
|
-
},
|
|
17
|
-
registerHotKey(_view, _key) { },
|
|
18
|
-
registerKeyboard(_view) { },
|
|
19
|
-
registerFocus(_view, _isDefault) {
|
|
20
|
-
return false;
|
|
21
|
-
},
|
|
22
|
-
registerMouse(_view, _offset, _point, _events) { },
|
|
23
|
-
registerTick(_view) { },
|
|
24
|
-
checkMouse(_view, _x, _y) { },
|
|
25
|
-
};
|
|
26
|
-
}
|
|
1
|
+
import { Screen } from './Screen.js';
|
|
2
|
+
import { HeadlessProgram } from './HeadlessProgram.js';
|
|
27
3
|
/**
|
|
28
4
|
* Render a View to an ANSI string at the given size, without needing a real terminal.
|
|
29
5
|
*
|
|
@@ -32,15 +8,10 @@ export function createHeadlessScreen() {
|
|
|
32
8
|
* @returns A string containing ANSI escape codes representing the rendered output
|
|
33
9
|
*/
|
|
34
10
|
export function renderToAnsi(view, size) {
|
|
35
|
-
const
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const viewport = new Viewport(screen, buffer, renderSize);
|
|
41
|
-
view.render(viewport);
|
|
42
|
-
const terminal = new StringTerminal({ cols: size.width, rows: size.height });
|
|
43
|
-
buffer.flush(terminal);
|
|
44
|
-
return terminal.output;
|
|
11
|
+
const program = new HeadlessProgram({ cols: size.width, rows: size.height });
|
|
12
|
+
const screen = new Screen(program, view);
|
|
13
|
+
screen.start();
|
|
14
|
+
screen.stop();
|
|
15
|
+
return program.terminal.output;
|
|
45
16
|
}
|
|
46
17
|
//# sourceMappingURL=renderToAnsi.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderToAnsi.js","sourceRoot":"","sources":["../lib/renderToAnsi.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"renderToAnsi.js","sourceRoot":"","sources":["../lib/renderToAnsi.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAA;AAEpD;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAU,EACV,IAAqC;IAErC,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC,CAAA;IAC1E,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IACxC,MAAM,CAAC,KAAK,EAAE,CAAA;IACd,MAAM,CAAC,IAAI,EAAE,CAAA;IAEb,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAA;AAChC,CAAC"}
|
package/.dist/terminal.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export interface Terminal {
|
|
|
3
3
|
writeChar(char: string, x: number, y: number, style: Style): void;
|
|
4
4
|
restyleChar(x: number, y: number, style: Style): void;
|
|
5
5
|
writeMeta(str: string): void;
|
|
6
|
+
paintRect(style: Style, minX: number, minY: number, maxX: number, maxY: number): void;
|
|
6
7
|
}
|
|
7
8
|
export interface SGRTerminal {
|
|
8
9
|
cols: number;
|
package/.dist/types.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { SGRTerminal } from './terminal.js';
|
|
2
|
+
import type { SystemEvent } from './events/index.js';
|
|
1
3
|
export type Alignment = 'left' | 'right' | 'center';
|
|
2
4
|
export declare const FontFamilies: readonly ["default", "serif-bold", "serif-italic", "serif-italic-bold", "sans", "sans-bold", "sans-italic", "sans-italic-bold", "monospace", "double-struck", "fraktur", "fraktur-bold", "script", "script-bold"];
|
|
3
5
|
export type FontFamily = (typeof FontFamilies)[number];
|
|
@@ -10,3 +12,33 @@ export interface Edges {
|
|
|
10
12
|
bottom: number;
|
|
11
13
|
left: number;
|
|
12
14
|
}
|
|
15
|
+
export interface LegendItem {
|
|
16
|
+
key: string | string[];
|
|
17
|
+
label: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* The abstract interface that Screen depends on. Any terminal backend
|
|
21
|
+
* (real terminal, test harness, web adapter, etc.) can implement this.
|
|
22
|
+
*/
|
|
23
|
+
export interface Program extends SGRTerminal {
|
|
24
|
+
/**
|
|
25
|
+
* Prepare the terminal for fullscreen app mode (e.g. enter alt buffer,
|
|
26
|
+
* enable mouse, hide cursor). Called once before the first render.
|
|
27
|
+
*/
|
|
28
|
+
setup(): void;
|
|
29
|
+
/**
|
|
30
|
+
* Restore the terminal to its original state (e.g. exit alt buffer,
|
|
31
|
+
* show cursor). Called when the screen stops.
|
|
32
|
+
*/
|
|
33
|
+
teardown(): void;
|
|
34
|
+
/**
|
|
35
|
+
* Subscribe to system events (key, mouse, paste, focus/blur).
|
|
36
|
+
* Returns an unsubscribe function.
|
|
37
|
+
*/
|
|
38
|
+
onEvents(listener: (event: SystemEvent) => void): () => void;
|
|
39
|
+
/**
|
|
40
|
+
* Subscribe to terminal resize events.
|
|
41
|
+
* Returns an unsubscribe function.
|
|
42
|
+
*/
|
|
43
|
+
onResize(listener: () => void): () => void;
|
|
44
|
+
}
|
package/.dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../lib/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../lib/types.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,SAAS;IACT,YAAY;IACZ,cAAc;IACd,mBAAmB;IACnB,MAAM;IACN,WAAW;IACX,aAAa;IACb,kBAAkB;IAClB,WAAW;IACX,eAAe;IACf,SAAS;IACT,cAAc;IACd,QAAQ;IACR,aAAa;CACL,CAAA"}
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"contributors": [
|
|
6
6
|
"Shawn Chen <meishangchen@gmail.com>"
|
|
7
7
|
],
|
|
8
|
-
"version": "1.
|
|
8
|
+
"version": "1.11.9",
|
|
9
9
|
"license": "MIT",
|
|
10
10
|
"type": "module",
|
|
11
11
|
"preferGlobal": false,
|
|
@@ -38,16 +38,20 @@
|
|
|
38
38
|
"node": ">= 18.12.0"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@teaui/
|
|
41
|
+
"@teaui/inspect": "1.11.9",
|
|
42
|
+
"@teaui/term": "1.11.9"
|
|
42
43
|
},
|
|
43
44
|
"devDependencies": {
|
|
44
|
-
"@teaui/shared": "1.
|
|
45
|
+
"@teaui/shared": "1.11.9"
|
|
46
|
+
},
|
|
47
|
+
"publishConfig": {
|
|
48
|
+
"access": "public"
|
|
45
49
|
},
|
|
46
50
|
"scripts": {
|
|
47
|
-
"gittag": "git tag $(node -e 'process.stdout.write(require(\"./package\").version)')",
|
|
48
51
|
"clean": "rm -rf .dist/",
|
|
49
52
|
"_build": "pnpm clean && pnpm tsc",
|
|
50
53
|
"build": "node ../../shared/check.js",
|
|
54
|
+
"typecheck": "tsc -p tsconfig.check.json --noEmit",
|
|
51
55
|
"test": "vitest run",
|
|
52
56
|
"test:watch": "vitest"
|
|
53
57
|
}
|
package/.dist/Theme.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Theme.js","sourceRoot":"","sources":["../lib/Theme.ts"],"names":[],"mappings":"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"}
|
package/.dist/inspect.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export declare function isDebugging(enabled?: boolean): boolean;
|
|
2
|
-
export declare function inspect(value: any, wrap?: boolean, recursionDepth?: number, visited?: Set<unknown>): string;
|
|
3
|
-
interface Colorize {
|
|
4
|
-
format(input: any): string;
|
|
5
|
-
number(input: number): string;
|
|
6
|
-
symbol(input: symbol): string;
|
|
7
|
-
string(input: string, doQuote?: boolean): string;
|
|
8
|
-
key(input: string | symbol | number): string;
|
|
9
|
-
boolean(input: boolean): string;
|
|
10
|
-
undefined(): string;
|
|
11
|
-
null(): string;
|
|
12
|
-
}
|
|
13
|
-
export declare const colorize: Colorize;
|
|
14
|
-
export {};
|
package/.dist/inspect.js
DELETED
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
import { bold, cyan, gray, green, red, yellow } from './ansi.js';
|
|
2
|
-
let _debug = false;
|
|
3
|
-
export function isDebugging(enabled) {
|
|
4
|
-
if (enabled !== undefined) {
|
|
5
|
-
_debug = enabled;
|
|
6
|
-
}
|
|
7
|
-
return _debug;
|
|
8
|
-
}
|
|
9
|
-
function isEmpty(object) {
|
|
10
|
-
for (const key in object) {
|
|
11
|
-
return false;
|
|
12
|
-
}
|
|
13
|
-
return true;
|
|
14
|
-
}
|
|
15
|
-
const MAX = 200;
|
|
16
|
-
export function inspect(value, wrap = true, recursionDepth = 0, visited = new Set()) {
|
|
17
|
-
if (value && (typeof value === 'object' || typeof value === 'function')) {
|
|
18
|
-
if (visited.has(value)) {
|
|
19
|
-
return red('[Circular]');
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
visited = new Set(visited);
|
|
23
|
-
visited.add(value);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
if (recursionDepth >= 10) {
|
|
27
|
-
return red('...');
|
|
28
|
-
}
|
|
29
|
-
if (value instanceof Set) {
|
|
30
|
-
return `new Set(${inspect(Array.from(value.values()), wrap, recursionDepth, visited)})`;
|
|
31
|
-
}
|
|
32
|
-
if (value instanceof Map) {
|
|
33
|
-
return `new Map(${inspect(Array.from(value.entries()), wrap, recursionDepth, visited)})`;
|
|
34
|
-
}
|
|
35
|
-
const tab = ' '.repeat(recursionDepth);
|
|
36
|
-
const innerTab = tab + ' ';
|
|
37
|
-
if (Array.isArray(value)) {
|
|
38
|
-
if (value.length === 0) {
|
|
39
|
-
return '[]';
|
|
40
|
-
}
|
|
41
|
-
const values = value.map(val => inspect(val, wrap, recursionDepth + 1, visited));
|
|
42
|
-
const count = values.reduce((len, val) => len + val.length, 0);
|
|
43
|
-
const newline = wrap && count > MAX;
|
|
44
|
-
let inner;
|
|
45
|
-
if (newline) {
|
|
46
|
-
const [prev, line] = values.reduce(([prev, line], value) => {
|
|
47
|
-
if (line.length + value.length > MAX) {
|
|
48
|
-
return [(prev ? prev + `,\n${innerTab}` : '') + line, value];
|
|
49
|
-
}
|
|
50
|
-
return [prev, line ? line + ', ' + value : value];
|
|
51
|
-
}, ['', '']);
|
|
52
|
-
inner = (prev ? prev + `,\n${innerTab}` : '') + line;
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
inner = values.join(', ');
|
|
56
|
-
}
|
|
57
|
-
return newline ? `[\n${innerTab}${inner}\n${tab}]` : `[ ${inner} ]`;
|
|
58
|
-
}
|
|
59
|
-
else if (typeof value === 'string') {
|
|
60
|
-
return colorize.string(value, recursionDepth > 0);
|
|
61
|
-
}
|
|
62
|
-
else if (typeof value === 'symbol') {
|
|
63
|
-
return colorize.symbol(value);
|
|
64
|
-
}
|
|
65
|
-
else if (typeof value === 'number' ||
|
|
66
|
-
typeof value === 'boolean' ||
|
|
67
|
-
value === undefined ||
|
|
68
|
-
value === null) {
|
|
69
|
-
return colorize.format(value);
|
|
70
|
-
}
|
|
71
|
-
else if (typeof value === 'function') {
|
|
72
|
-
return `function${value.name ? ` ${value.name}` : ''}() {${value}}`;
|
|
73
|
-
}
|
|
74
|
-
else if (value instanceof Date) {
|
|
75
|
-
return `Date(${colorize.string(value.toISOString())})`;
|
|
76
|
-
}
|
|
77
|
-
else if (value instanceof Object &&
|
|
78
|
-
value.constructor !== Object &&
|
|
79
|
-
isEmpty(value)) {
|
|
80
|
-
return `${value.constructor.name}({})`;
|
|
81
|
-
}
|
|
82
|
-
const name = value.constructor === undefined
|
|
83
|
-
? ''
|
|
84
|
-
: value.constructor.name === 'Object'
|
|
85
|
-
? ''
|
|
86
|
-
: value.constructor.name.concat(' ');
|
|
87
|
-
const keys = Object.keys(value);
|
|
88
|
-
if (keys.length === 0) {
|
|
89
|
-
return '{}';
|
|
90
|
-
}
|
|
91
|
-
// weird ReactFiberNode one-off
|
|
92
|
-
if ('$$typeof' in value && '_owner' in value) {
|
|
93
|
-
const { _owner: _, ...remainder } = value;
|
|
94
|
-
return inspect(remainder, wrap, recursionDepth, visited);
|
|
95
|
-
}
|
|
96
|
-
const values = keys.map(key => `${colorize.key(key)}: ${inspect(value[key], wrap, recursionDepth + 1, visited)}`);
|
|
97
|
-
const count = values.reduce((len, val) => len + val.length, 0);
|
|
98
|
-
const newline = wrap && count > MAX;
|
|
99
|
-
let inner;
|
|
100
|
-
if (newline) {
|
|
101
|
-
const [prev, line] = values.reduce(([prev, line], value) => {
|
|
102
|
-
if (line.length + value.length > MAX) {
|
|
103
|
-
return [(prev ? prev + `,\n${innerTab}` : '') + line, value];
|
|
104
|
-
}
|
|
105
|
-
return [prev, line ? line + ', ' + value : line];
|
|
106
|
-
}, ['', '']);
|
|
107
|
-
inner = (prev ? prev + `,\n${innerTab}` : '') + line;
|
|
108
|
-
inner = values.join(`,\n${innerTab}`);
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
inner = values.join(', ');
|
|
112
|
-
}
|
|
113
|
-
return newline
|
|
114
|
-
? `${name}{\n${innerTab}${inner}\n${tab}}`
|
|
115
|
-
: `${name}{ ${inner} }`;
|
|
116
|
-
}
|
|
117
|
-
export const colorize = {
|
|
118
|
-
format: function (input) {
|
|
119
|
-
switch (typeof input) {
|
|
120
|
-
case 'string':
|
|
121
|
-
return colorize.string(input);
|
|
122
|
-
case 'symbol':
|
|
123
|
-
return colorize.symbol(input);
|
|
124
|
-
case 'number':
|
|
125
|
-
return colorize.number(input);
|
|
126
|
-
case 'undefined':
|
|
127
|
-
return colorize.undefined();
|
|
128
|
-
case 'object':
|
|
129
|
-
return colorize['null']();
|
|
130
|
-
default:
|
|
131
|
-
return String(input);
|
|
132
|
-
}
|
|
133
|
-
},
|
|
134
|
-
number: function (input) {
|
|
135
|
-
return yellow(''.concat(String(input)));
|
|
136
|
-
},
|
|
137
|
-
symbol: function (input) {
|
|
138
|
-
return red(''.concat(String(input)));
|
|
139
|
-
},
|
|
140
|
-
string: function (input, doQuote = true) {
|
|
141
|
-
let quote;
|
|
142
|
-
if (doQuote) {
|
|
143
|
-
if (input.includes("'")) {
|
|
144
|
-
quote = '"';
|
|
145
|
-
input = input.replaceAll('"', '\\"');
|
|
146
|
-
}
|
|
147
|
-
else {
|
|
148
|
-
quote = "'";
|
|
149
|
-
input = input.replaceAll("'", "\\'");
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
else {
|
|
153
|
-
quote = '';
|
|
154
|
-
}
|
|
155
|
-
input = input.replaceAll(/\n/g, '⤦');
|
|
156
|
-
input = input.replaceAll(/\x1b/g, '␛');
|
|
157
|
-
return green(quote.concat(input, quote));
|
|
158
|
-
},
|
|
159
|
-
key: function (input) {
|
|
160
|
-
return cyan(String(input));
|
|
161
|
-
},
|
|
162
|
-
boolean: function (input) {
|
|
163
|
-
return yellow(''.concat(String(input)));
|
|
164
|
-
},
|
|
165
|
-
undefined: function () {
|
|
166
|
-
return gray('undefined');
|
|
167
|
-
},
|
|
168
|
-
null: function () {
|
|
169
|
-
return bold('null');
|
|
170
|
-
},
|
|
171
|
-
};
|
|
172
|
-
//# sourceMappingURL=inspect.js.map
|
package/.dist/inspect.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inspect.js","sourceRoot":"","sources":["../lib/inspect.ts"],"names":[],"mappings":"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"}
|
package/.dist/testing.js
DELETED
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
import { Buffer } from './Buffer.js';
|
|
2
|
-
import { Viewport } from './Viewport.js';
|
|
3
|
-
import { Size } from './geometry.js';
|
|
4
|
-
import { TestTerminal } from './TestTerminal.js';
|
|
5
|
-
import { FocusManager } from './managers/FocusManager.js';
|
|
6
|
-
import { MouseManager } from './managers/MouseManager.js';
|
|
7
|
-
import { ModalManager } from './managers/ModalManager.js';
|
|
8
|
-
import { TickManager } from './managers/TickManager.js';
|
|
9
|
-
import { UnboundSystem } from './System.js';
|
|
10
|
-
import { Space } from './components/Space.js';
|
|
11
|
-
class TestScreen {
|
|
12
|
-
options;
|
|
13
|
-
#view;
|
|
14
|
-
#buffer;
|
|
15
|
-
#terminal;
|
|
16
|
-
#size;
|
|
17
|
-
#focus;
|
|
18
|
-
#focusManager;
|
|
19
|
-
#mouseManager;
|
|
20
|
-
#modalManager;
|
|
21
|
-
#tickManager;
|
|
22
|
-
#screenProxy = null;
|
|
23
|
-
constructor(view, options) {
|
|
24
|
-
this.options = options;
|
|
25
|
-
this.#view = view;
|
|
26
|
-
this.#focus = options.isFocused !== false;
|
|
27
|
-
this.#size = new Size(options.width, options.height);
|
|
28
|
-
this.#buffer = new Buffer();
|
|
29
|
-
this.#terminal = new TestTerminal({
|
|
30
|
-
cols: options.width,
|
|
31
|
-
rows: options.height,
|
|
32
|
-
});
|
|
33
|
-
this.#focusManager = new FocusManager();
|
|
34
|
-
this.#mouseManager = new MouseManager();
|
|
35
|
-
this.#modalManager = new ModalManager();
|
|
36
|
-
this.#tickManager = new TickManager(() => this.render());
|
|
37
|
-
// Wire the view to this screen
|
|
38
|
-
view.moveToScreen(this.asScreen());
|
|
39
|
-
this.render();
|
|
40
|
-
}
|
|
41
|
-
get terminal() {
|
|
42
|
-
return this.#terminal;
|
|
43
|
-
}
|
|
44
|
-
get view() {
|
|
45
|
-
return this.#view;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Advance time by `dt` milliseconds, triggering any registered tick
|
|
49
|
-
* animations and re-rendering.
|
|
50
|
-
*/
|
|
51
|
-
tick(dt) {
|
|
52
|
-
this.#tickManager.triggerTick(dt);
|
|
53
|
-
this.render();
|
|
54
|
-
}
|
|
55
|
-
asScreen() {
|
|
56
|
-
// Cache the screen proxy so moveToScreen identity checks work
|
|
57
|
-
if (!this.#screenProxy) {
|
|
58
|
-
this.#screenProxy = {
|
|
59
|
-
rootView: this.#view,
|
|
60
|
-
preRender: (view) => {
|
|
61
|
-
this.#modalManager.reset();
|
|
62
|
-
this.#mouseManager.reset();
|
|
63
|
-
this.#focusManager.reset(view === this.#view);
|
|
64
|
-
},
|
|
65
|
-
requestModal: (modal, rect) => {
|
|
66
|
-
return this.#modalManager.requestModal(modal, rect);
|
|
67
|
-
},
|
|
68
|
-
registerHotKey: (view, key) => {
|
|
69
|
-
this.#focusManager.registerHotKey(view, key);
|
|
70
|
-
},
|
|
71
|
-
registerKeyboard: (view) => {
|
|
72
|
-
this.#focusManager.registerKeyboard(view);
|
|
73
|
-
},
|
|
74
|
-
registerFocus: (view, isDefault) => {
|
|
75
|
-
return this.#focusManager.registerFocus(view, isDefault);
|
|
76
|
-
},
|
|
77
|
-
registerMouse: (view, offset, point, events) => {
|
|
78
|
-
this.#mouseManager.registerMouse(view, offset, point, events);
|
|
79
|
-
},
|
|
80
|
-
registerTick: (view) => {
|
|
81
|
-
this.#tickManager.registerTick(view);
|
|
82
|
-
},
|
|
83
|
-
checkMouse: (view, x, y) => {
|
|
84
|
-
this.#mouseManager.checkMouse(view, x, y);
|
|
85
|
-
},
|
|
86
|
-
needsRender: () => {
|
|
87
|
-
// In test mode, renders are explicit — ignore async render requests
|
|
88
|
-
},
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
return this.#screenProxy;
|
|
92
|
-
}
|
|
93
|
-
render() {
|
|
94
|
-
this.#buffer.resize(this.#size);
|
|
95
|
-
this.#modalManager.reset();
|
|
96
|
-
this.#focusManager.reset(true);
|
|
97
|
-
this.#mouseManager.reset();
|
|
98
|
-
if (!this.#focus) {
|
|
99
|
-
this.#focusManager.unfocus();
|
|
100
|
-
this.#focusManager.requestFocus(new Space());
|
|
101
|
-
}
|
|
102
|
-
const renderSize = this.#view.naturalSize(this.#size).min(this.#size);
|
|
103
|
-
const viewport = new Viewport(this.asScreen(), this.#buffer, renderSize);
|
|
104
|
-
this.#view.render(viewport);
|
|
105
|
-
// Modals need the full screen size to position overlays (e.g. dropdowns),
|
|
106
|
-
// matching Screen.render() which uses naturalSize.max(screenSize).
|
|
107
|
-
const modalViewport = new Viewport(this.asScreen(), this.#buffer, this.#size);
|
|
108
|
-
const rerenderView = this.#modalManager.renderModals(this.asScreen(), modalViewport);
|
|
109
|
-
const focusNeedsRender = this.#focusManager.commit();
|
|
110
|
-
if (focusNeedsRender) {
|
|
111
|
-
// Match Screen.render(): re-render with the same viewport, no
|
|
112
|
-
// mouse manager reset (so modal button registrations are preserved).
|
|
113
|
-
rerenderView.render(modalViewport);
|
|
114
|
-
this.#focusManager.commit();
|
|
115
|
-
}
|
|
116
|
-
this.#tickManager.endRender();
|
|
117
|
-
this.#terminal.reset();
|
|
118
|
-
this.#buffer.invalidate();
|
|
119
|
-
this.#buffer.flush(this.#terminal);
|
|
120
|
-
}
|
|
121
|
-
sendKey(key, mods = {}) {
|
|
122
|
-
const ctrl = mods.ctrl ?? false;
|
|
123
|
-
const alt = mods.alt ?? false;
|
|
124
|
-
const meta = mods.meta ?? false;
|
|
125
|
-
const shift = mods.shift ?? false;
|
|
126
|
-
let full = '';
|
|
127
|
-
if (ctrl)
|
|
128
|
-
full += 'C-';
|
|
129
|
-
if (alt)
|
|
130
|
-
full += 'A-';
|
|
131
|
-
if (meta)
|
|
132
|
-
full += 'M-';
|
|
133
|
-
if (shift)
|
|
134
|
-
full += 'S-';
|
|
135
|
-
full += key;
|
|
136
|
-
const char = key === 'space' ? ' ' : key.length === 1 ? key : '';
|
|
137
|
-
const event = {
|
|
138
|
-
type: 'key',
|
|
139
|
-
name: key,
|
|
140
|
-
char,
|
|
141
|
-
full: full,
|
|
142
|
-
ctrl,
|
|
143
|
-
alt,
|
|
144
|
-
meta,
|
|
145
|
-
shift,
|
|
146
|
-
};
|
|
147
|
-
this.#focusManager.trigger(event);
|
|
148
|
-
this.render();
|
|
149
|
-
}
|
|
150
|
-
sendMouse(name, pos, mods = {}) {
|
|
151
|
-
const button = name.startsWith('mouse.wheel')
|
|
152
|
-
? 'wheel'
|
|
153
|
-
: name === 'mouse.move.in'
|
|
154
|
-
? 'unknown'
|
|
155
|
-
: 'left';
|
|
156
|
-
const event = {
|
|
157
|
-
type: 'mouse',
|
|
158
|
-
name,
|
|
159
|
-
x: pos.x,
|
|
160
|
-
y: pos.y,
|
|
161
|
-
ctrl: mods.ctrl ?? false,
|
|
162
|
-
alt: mods.alt ?? false,
|
|
163
|
-
meta: mods.meta ?? false,
|
|
164
|
-
shift: mods.shift ?? false,
|
|
165
|
-
button,
|
|
166
|
-
};
|
|
167
|
-
const system = new UnboundSystem(this.#focusManager);
|
|
168
|
-
this.#mouseManager.trigger(event, system);
|
|
169
|
-
this.render();
|
|
170
|
-
}
|
|
171
|
-
sendPaste(text) {
|
|
172
|
-
this.#focusManager.triggerPaste(text);
|
|
173
|
-
this.render();
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* Render a component headlessly and return a test harness for interaction testing.
|
|
178
|
-
*
|
|
179
|
-
* @example
|
|
180
|
-
* ```ts
|
|
181
|
-
* const t = testRender(new Input({value: 'hello'}), {width: 20, height: 1})
|
|
182
|
-
* expect(t.terminal.textContent()).toContain('hello')
|
|
183
|
-
* t.sendKey('!') // type a character
|
|
184
|
-
* expect(t.terminal.textContent()).toContain('hello!')
|
|
185
|
-
* ```
|
|
186
|
-
*/
|
|
187
|
-
export function testRender(view, size) {
|
|
188
|
-
return new TestScreen(view, size);
|
|
189
|
-
}
|
|
190
|
-
//# sourceMappingURL=testing.js.map
|
package/.dist/testing.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../lib/testing.ts"],"names":[],"mappings":"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"}
|