@rezi-ui/core 0.1.0-alpha.63 → 0.1.0-alpha.69

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 (69) hide show
  1. package/dist/pipeline.d.ts +2 -2
  2. package/dist/pipeline.js +2 -2
  3. package/dist/renderer/renderToDrawlist/widgets/navigation.d.ts.map +1 -1
  4. package/dist/renderer/renderToDrawlist/widgets/navigation.js +12 -4
  5. package/dist/renderer/renderToDrawlist/widgets/navigation.js.map +1 -1
  6. package/dist/renderer/renderToDrawlist/widgets/renderTextWidgets.d.ts.map +1 -1
  7. package/dist/renderer/renderToDrawlist/widgets/renderTextWidgets.js +90 -27
  8. package/dist/renderer/renderToDrawlist/widgets/renderTextWidgets.js.map +1 -1
  9. package/dist/repro/replay.d.ts +4 -0
  10. package/dist/repro/replay.d.ts.map +1 -1
  11. package/dist/repro/replay.js +17 -2
  12. package/dist/repro/replay.js.map +1 -1
  13. package/dist/runtime/router/zones.d.ts.map +1 -1
  14. package/dist/runtime/router/zones.js +28 -1
  15. package/dist/runtime/router/zones.js.map +1 -1
  16. package/dist/testing/assertions.d.ts +7 -0
  17. package/dist/testing/assertions.d.ts.map +1 -0
  18. package/dist/testing/assertions.js +187 -0
  19. package/dist/testing/assertions.js.map +1 -0
  20. package/dist/testing/index.d.ts +11 -0
  21. package/dist/testing/index.d.ts.map +1 -1
  22. package/dist/testing/index.js +11 -0
  23. package/dist/testing/index.js.map +1 -1
  24. package/dist/testing/referenceScenarios/inputIncompleteEscapeRecovery.d.ts +8 -0
  25. package/dist/testing/referenceScenarios/inputIncompleteEscapeRecovery.d.ts.map +1 -0
  26. package/dist/testing/referenceScenarios/inputIncompleteEscapeRecovery.js +79 -0
  27. package/dist/testing/referenceScenarios/inputIncompleteEscapeRecovery.js.map +1 -0
  28. package/dist/testing/referenceScenarios/inputIncompletePasteRecovery.d.ts +9 -0
  29. package/dist/testing/referenceScenarios/inputIncompletePasteRecovery.d.ts.map +1 -0
  30. package/dist/testing/referenceScenarios/inputIncompletePasteRecovery.js +96 -0
  31. package/dist/testing/referenceScenarios/inputIncompletePasteRecovery.js.map +1 -0
  32. package/dist/testing/referenceScenarios/inputModalBlocking.d.ts +9 -0
  33. package/dist/testing/referenceScenarios/inputModalBlocking.d.ts.map +1 -0
  34. package/dist/testing/referenceScenarios/inputModalBlocking.js +172 -0
  35. package/dist/testing/referenceScenarios/inputModalBlocking.js.map +1 -0
  36. package/dist/testing/referenceScenarios/inputMouseCapabilityFallback.d.ts +9 -0
  37. package/dist/testing/referenceScenarios/inputMouseCapabilityFallback.d.ts.map +1 -0
  38. package/dist/testing/referenceScenarios/inputMouseCapabilityFallback.js +102 -0
  39. package/dist/testing/referenceScenarios/inputMouseCapabilityFallback.js.map +1 -0
  40. package/dist/testing/referenceScenarios/selectKeyboardCycler.d.ts +8 -0
  41. package/dist/testing/referenceScenarios/selectKeyboardCycler.d.ts.map +1 -0
  42. package/dist/testing/referenceScenarios/selectKeyboardCycler.js +115 -0
  43. package/dist/testing/referenceScenarios/selectKeyboardCycler.js.map +1 -0
  44. package/dist/testing/referenceScenarios/textareaMultilineEditing.d.ts +8 -0
  45. package/dist/testing/referenceScenarios/textareaMultilineEditing.d.ts.map +1 -0
  46. package/dist/testing/referenceScenarios/textareaMultilineEditing.js +100 -0
  47. package/dist/testing/referenceScenarios/textareaMultilineEditing.js.map +1 -0
  48. package/dist/testing/referenceScenarios/virtualListResizeStorm.d.ts +8 -0
  49. package/dist/testing/referenceScenarios/virtualListResizeStorm.d.ts.map +1 -0
  50. package/dist/testing/referenceScenarios/virtualListResizeStorm.js +88 -0
  51. package/dist/testing/referenceScenarios/virtualListResizeStorm.js.map +1 -0
  52. package/dist/testing/replayScenario.d.ts +6 -0
  53. package/dist/testing/replayScenario.d.ts.map +1 -0
  54. package/dist/testing/replayScenario.js +399 -0
  55. package/dist/testing/replayScenario.js.map +1 -0
  56. package/dist/testing/scenario.d.ts +145 -0
  57. package/dist/testing/scenario.d.ts.map +1 -0
  58. package/dist/testing/scenario.js +57 -0
  59. package/dist/testing/scenario.js.map +1 -0
  60. package/dist/testing/semanticScenario.d.ts +6 -0
  61. package/dist/testing/semanticScenario.d.ts.map +1 -0
  62. package/dist/testing/semanticScenario.js +347 -0
  63. package/dist/testing/semanticScenario.js.map +1 -0
  64. package/dist/widgets/breadcrumb.d.ts.map +1 -1
  65. package/dist/widgets/breadcrumb.js +1 -12
  66. package/dist/widgets/breadcrumb.js.map +1 -1
  67. package/dist/widgets/types/base.d.ts +1 -3
  68. package/dist/widgets/types/base.d.ts.map +1 -1
  69. package/package.json +2 -2
@@ -0,0 +1,145 @@
1
+ import type { CursorShape } from "../abi.js";
2
+ import type { App } from "../app/types.js";
3
+ import type { RoutedAction } from "../runtime/router/types.js";
4
+ import type { ThemeDefinition } from "../theme/tokens.js";
5
+ import type { VNode } from "../widgets/types.js";
6
+ export type ScenarioWidgetFamily = "input-textarea" | "select-dropdown" | "modal-overlay-dialog" | "table-tree-virtual-list";
7
+ export type ScenarioColorMode = "none" | "16" | "256" | "truecolor";
8
+ export type ScenarioTheme = Readonly<{
9
+ mode: "named";
10
+ value: "default";
11
+ }>;
12
+ export type ScenarioKeyMod = "shift" | "ctrl" | "alt" | "meta";
13
+ export type ScenarioCapabilityProfile = Readonly<{
14
+ supportsMouse: boolean;
15
+ supportsBracketedPaste: boolean;
16
+ supportsFocusEvents: boolean;
17
+ supportsOsc52: boolean;
18
+ colorMode: ScenarioColorMode;
19
+ }>;
20
+ export type ScenarioScriptedInputEvent = Readonly<{
21
+ kind: "text";
22
+ text: string;
23
+ }> | Readonly<{
24
+ kind: "paste";
25
+ text: string;
26
+ }> | Readonly<{
27
+ kind: "resize";
28
+ cols: number;
29
+ rows: number;
30
+ }> | Readonly<{
31
+ kind: "terminalBytes";
32
+ bytes: string;
33
+ }> | Readonly<{
34
+ kind: "key";
35
+ key: string | number;
36
+ mods?: readonly ScenarioKeyMod[];
37
+ }>;
38
+ export type ScenarioScriptedInputStep = Readonly<{
39
+ atMs: number;
40
+ event: ScenarioScriptedInputEvent;
41
+ }>;
42
+ export type ScenarioExpectedAction = RoutedAction;
43
+ export type ScenarioScreenRegionAssertion = Readonly<{
44
+ x: number;
45
+ y: number;
46
+ width: number;
47
+ height: number;
48
+ match?: "exact" | "includes";
49
+ text: string | readonly string[];
50
+ }>;
51
+ export type ScenarioCursorAssertion = Readonly<{
52
+ visible: false;
53
+ shape: CursorShape;
54
+ blink: boolean;
55
+ }> | Readonly<{
56
+ visible: true;
57
+ x: number;
58
+ y: number;
59
+ shape: CursorShape;
60
+ blink: boolean;
61
+ }>;
62
+ export type ScenarioInvariantAssertion = Readonly<{
63
+ kind: "action_absence";
64
+ action: Readonly<{
65
+ id?: string;
66
+ action?: RoutedAction["action"];
67
+ payloadSubset?: Readonly<Record<string, unknown>>;
68
+ }>;
69
+ }>;
70
+ export type ScenarioScreenCheckpoint = Readonly<{
71
+ id: string;
72
+ afterStep: number;
73
+ assertionRef: "screen_region_assertion";
74
+ args: ScenarioScreenRegionAssertion;
75
+ }>;
76
+ export type ScenarioInvariant = Readonly<{
77
+ id: string;
78
+ assertionRef: "invariant_assertion";
79
+ args: ScenarioInvariantAssertion;
80
+ }>;
81
+ export type ScenarioDefinition = Readonly<{
82
+ schemaVersion: 1;
83
+ id: string;
84
+ title: string;
85
+ widgetFamily: ScenarioWidgetFamily;
86
+ behaviorStatement: string;
87
+ evidenceRefs: readonly string[];
88
+ viewport: Readonly<{
89
+ cols: number;
90
+ rows: number;
91
+ }>;
92
+ theme: ScenarioTheme;
93
+ capabilityProfile: ScenarioCapabilityProfile;
94
+ scriptedInput: readonly ScenarioScriptedInputStep[];
95
+ expectedActions?: readonly ScenarioExpectedAction[];
96
+ expectedScreenCheckpoints: readonly ScenarioScreenCheckpoint[];
97
+ expectedCursorState?: ScenarioCursorAssertion;
98
+ invariants: readonly ScenarioInvariant[];
99
+ fidelityRequirement: "semantic-only" | "terminal-real";
100
+ notes?: string;
101
+ unresolvedAssumptions?: readonly string[];
102
+ }>;
103
+ export type ScenarioScreenSnapshot = Readonly<{
104
+ cols: number;
105
+ rows: number;
106
+ lines: readonly string[];
107
+ }>;
108
+ export type ScenarioCursorSnapshot = ScenarioCursorAssertion;
109
+ export type ScenarioStepObservation = Readonly<{
110
+ step: number;
111
+ screen: ScenarioScreenSnapshot;
112
+ cursor: ScenarioCursorSnapshot | null;
113
+ actions: readonly ScenarioExpectedAction[];
114
+ }>;
115
+ export type ScenarioMismatchCode = "ZR_SCENARIO_INVALID" | "ZR_SCENARIO_UNSUPPORTED" | "ZR_SCENARIO_ACTION_COUNT_MISMATCH" | "ZR_SCENARIO_ACTION_MISMATCH" | "ZR_SCENARIO_SCREEN_MISMATCH" | "ZR_SCENARIO_CURSOR_MISMATCH" | "ZR_SCENARIO_INVARIANT_MISMATCH" | "ZR_SCENARIO_RUNTIME_FATAL";
116
+ export type ScenarioMismatch = Readonly<{
117
+ code: ScenarioMismatchCode;
118
+ path: string;
119
+ detail: string;
120
+ expected?: unknown;
121
+ actual?: unknown;
122
+ }>;
123
+ export type ScenarioRunResult = Readonly<{
124
+ mode: "semantic" | "replay" | "pty";
125
+ status: "PASS" | "FAIL";
126
+ pass: boolean;
127
+ actions: readonly ScenarioExpectedAction[];
128
+ steps: readonly ScenarioStepObservation[];
129
+ finalScreen: ScenarioScreenSnapshot;
130
+ finalCursor: ScenarioCursorSnapshot | null;
131
+ mismatches: readonly ScenarioMismatch[];
132
+ }>;
133
+ export type ScenarioFixture<S> = Readonly<{
134
+ initialState: S;
135
+ theme?: ThemeDefinition;
136
+ setup?: (app: App<S>) => void;
137
+ view: (state: S) => VNode;
138
+ }>;
139
+ export type ScenarioFixtureFactory<S> = () => ScenarioFixture<S>;
140
+ export declare function createScenarioScreenSnapshot(viewport: Readonly<{
141
+ cols: number;
142
+ rows: number;
143
+ }>, text: string): ScenarioScreenSnapshot;
144
+ export declare function validateScenarioDefinition(scenario: ScenarioDefinition): readonly ScenarioMismatch[];
145
+ //# sourceMappingURL=scenario.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scenario.d.ts","sourceRoot":"","sources":["../../src/testing/scenario.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ export function createScenarioScreenSnapshot(viewport, text) {
2
+ const rawLines = text.split("\n");
3
+ const lines = [];
4
+ for (let row = 0; row < viewport.rows; row++) {
5
+ const raw = rawLines[row] ?? "";
6
+ lines.push(raw.padEnd(viewport.cols, " ").slice(0, viewport.cols));
7
+ }
8
+ return Object.freeze({
9
+ cols: viewport.cols,
10
+ rows: viewport.rows,
11
+ lines: Object.freeze(lines),
12
+ });
13
+ }
14
+ export function validateScenarioDefinition(scenario) {
15
+ const mismatches = [];
16
+ if (scenario.schemaVersion !== 1) {
17
+ mismatches.push({
18
+ code: "ZR_SCENARIO_INVALID",
19
+ path: "schemaVersion",
20
+ detail: `Expected schemaVersion=1 (got ${String(scenario.schemaVersion)})`,
21
+ expected: 1,
22
+ actual: scenario.schemaVersion,
23
+ });
24
+ }
25
+ if (scenario.evidenceRefs.length === 0) {
26
+ mismatches.push({
27
+ code: "ZR_SCENARIO_INVALID",
28
+ path: "evidenceRefs",
29
+ detail: "Scenario must include at least one evidenceRef",
30
+ });
31
+ }
32
+ if (scenario.expectedScreenCheckpoints.length === 0) {
33
+ mismatches.push({
34
+ code: "ZR_SCENARIO_INVALID",
35
+ path: "expectedScreenCheckpoints",
36
+ detail: "Scenario must include at least one screen checkpoint",
37
+ });
38
+ }
39
+ if (scenario.invariants.length === 0) {
40
+ mismatches.push({
41
+ code: "ZR_SCENARIO_INVALID",
42
+ path: "invariants",
43
+ detail: "Scenario must include at least one invariant",
44
+ });
45
+ }
46
+ if (scenario.theme.mode !== "named" || scenario.theme.value !== "default") {
47
+ mismatches.push({
48
+ code: "ZR_SCENARIO_UNSUPPORTED",
49
+ path: "theme",
50
+ detail: `Only theme { mode: \"named\", value: \"default\" } is supported in this scenario harness`,
51
+ expected: { mode: "named", value: "default" },
52
+ actual: scenario.theme,
53
+ });
54
+ }
55
+ return Object.freeze(mismatches);
56
+ }
57
+ //# sourceMappingURL=scenario.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scenario.js","sourceRoot":"","sources":["../../src/testing/scenario.ts"],"names":[],"mappings":"AA4JA,MAAM,UAAU,4BAA4B,CAC1C,QAAkD,EAClD,IAAY;IAEZ,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;KAC5B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,QAA4B;IAE5B,MAAM,UAAU,GAAuB,EAAE,CAAC;IAC1C,IAAI,QAAQ,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;QACjC,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,iCAAiC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG;YAC1E,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,QAAQ,CAAC,aAAa;SAC/B,CAAC,CAAC;IACL,CAAC;IACD,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,gDAAgD;SACzD,CAAC,CAAC;IACL,CAAC;IACD,IAAI,QAAQ,CAAC,yBAAyB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE,2BAA2B;YACjC,MAAM,EAAE,sDAAsD;SAC/D,CAAC,CAAC;IACL,CAAC;IACD,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,8CAA8C;SACvD,CAAC,CAAC;IACL,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1E,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,yBAAyB;YAC/B,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,0FAA0F;YAClG,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE;YAC7C,MAAM,EAAE,QAAQ,CAAC,KAAK;SACvB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type ScenarioDefinition, type ScenarioFixtureFactory, type ScenarioRunResult } from "./scenario.js";
2
+ export declare function runSemanticScenario<S>(opts: Readonly<{
3
+ scenario: ScenarioDefinition;
4
+ createFixture: ScenarioFixtureFactory<S>;
5
+ }>): Promise<ScenarioRunResult>;
6
+ //# sourceMappingURL=semanticScenario.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semanticScenario.d.ts","sourceRoot":"","sources":["../../src/testing/semanticScenario.ts"],"names":[],"mappings":"AA2CA,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EAIvB,MAAM,eAAe,CAAC;AA+NvB,wBAAsB,mBAAmB,CAAC,CAAC,EACzC,IAAI,EAAE,QAAQ,CAAC;IACb,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,aAAa,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;CAC1C,CAAC,GACD,OAAO,CAAC,iBAAiB,CAAC,CA0I5B"}
@@ -0,0 +1,347 @@
1
+ import { createApp } from "../app/createApp.js";
2
+ import { ZR_KEY_BACKSPACE, ZR_KEY_DELETE, ZR_KEY_DOWN, ZR_KEY_END, ZR_KEY_ENTER, ZR_KEY_ESCAPE, ZR_KEY_F1, ZR_KEY_F2, ZR_KEY_F3, ZR_KEY_F4, ZR_KEY_F5, ZR_KEY_F6, ZR_KEY_F7, ZR_KEY_F8, ZR_KEY_F9, ZR_KEY_F10, ZR_KEY_F11, ZR_KEY_F12, ZR_KEY_HOME, ZR_KEY_LEFT, ZR_KEY_PAGE_DOWN, ZR_KEY_PAGE_UP, ZR_KEY_RIGHT, ZR_KEY_SPACE, ZR_KEY_TAB, ZR_KEY_UP, ZR_MOD_ALT, ZR_MOD_CTRL, ZR_MOD_META, ZR_MOD_SHIFT, charToKeyCode, } from "../keybindings/keyCodes.js";
3
+ import { DEFAULT_TERMINAL_CAPS } from "../terminalCaps.js";
4
+ import { defaultTheme } from "../theme/defaultTheme.js";
5
+ import { evaluateScenarioResult } from "./assertions.js";
6
+ import { encodeZrevBatchV1 } from "./events.js";
7
+ import { createTestRenderer } from "./renderer.js";
8
+ import { createScenarioScreenSnapshot, } from "./scenario.js";
9
+ // The harness batches a bounded number of microtask turns after each injected
10
+ // event so async widget state settles deterministically without open-ended spins.
11
+ function flushMicrotasks(count = 20) {
12
+ let promise = Promise.resolve();
13
+ for (let i = 0; i < count; i++) {
14
+ promise = promise.then(() => Promise.resolve());
15
+ }
16
+ return promise;
17
+ }
18
+ function colorModeToCapsColor(mode) {
19
+ if (mode === "16")
20
+ return 1;
21
+ if (mode === "256")
22
+ return 2;
23
+ if (mode === "truecolor")
24
+ return 3;
25
+ return 0;
26
+ }
27
+ function toTerminalCaps(profile) {
28
+ return Object.freeze({
29
+ ...DEFAULT_TERMINAL_CAPS,
30
+ colorMode: colorModeToCapsColor(profile.colorMode),
31
+ supportsMouse: profile.supportsMouse,
32
+ supportsBracketedPaste: profile.supportsBracketedPaste,
33
+ supportsFocusEvents: profile.supportsFocusEvents,
34
+ supportsOsc52: profile.supportsOsc52,
35
+ supportsCursorShape: true,
36
+ });
37
+ }
38
+ class SemanticHarnessBackend {
39
+ #caps;
40
+ #waiters = [];
41
+ #buffered = [];
42
+ constructor(caps) {
43
+ this.#caps = caps;
44
+ }
45
+ start() {
46
+ return Promise.resolve();
47
+ }
48
+ stop() {
49
+ return Promise.resolve();
50
+ }
51
+ dispose() { }
52
+ requestFrame(_drawlist) {
53
+ return Promise.resolve();
54
+ }
55
+ pollEvents() {
56
+ const next = this.#buffered.shift();
57
+ if (next)
58
+ return Promise.resolve(next);
59
+ return new Promise((resolve) => {
60
+ this.#waiters.push(resolve);
61
+ });
62
+ }
63
+ postUserEvent(_tag, _payload) { }
64
+ getCaps() {
65
+ return Promise.resolve(this.#caps);
66
+ }
67
+ pushBytes(bytes) {
68
+ const batch = {
69
+ bytes,
70
+ droppedBatches: 0,
71
+ release: () => { },
72
+ };
73
+ const waiter = this.#waiters.shift();
74
+ if (waiter) {
75
+ waiter(batch);
76
+ return;
77
+ }
78
+ this.#buffered.push(batch);
79
+ }
80
+ }
81
+ function keyNameToCode(key) {
82
+ if (typeof key === "number")
83
+ return key;
84
+ const normalized = key.trim().toLowerCase();
85
+ if (normalized.length === 1)
86
+ return charToKeyCode(normalized) ?? 0;
87
+ const functionKey = /^f(\d{1,2})$/u.exec(normalized);
88
+ if (functionKey) {
89
+ const functionKeyCodes = [
90
+ ZR_KEY_F1,
91
+ ZR_KEY_F2,
92
+ ZR_KEY_F3,
93
+ ZR_KEY_F4,
94
+ ZR_KEY_F5,
95
+ ZR_KEY_F6,
96
+ ZR_KEY_F7,
97
+ ZR_KEY_F8,
98
+ ZR_KEY_F9,
99
+ ZR_KEY_F10,
100
+ ZR_KEY_F11,
101
+ ZR_KEY_F12,
102
+ ];
103
+ const index = Number(functionKey[1]) - 1;
104
+ const code = functionKeyCodes[index];
105
+ if (code !== undefined)
106
+ return code;
107
+ }
108
+ switch (normalized) {
109
+ case "enter":
110
+ case "return":
111
+ return ZR_KEY_ENTER;
112
+ case "escape":
113
+ case "esc":
114
+ return ZR_KEY_ESCAPE;
115
+ case "tab":
116
+ return ZR_KEY_TAB;
117
+ case "space":
118
+ return ZR_KEY_SPACE;
119
+ case "backspace":
120
+ return ZR_KEY_BACKSPACE;
121
+ case "delete":
122
+ case "del":
123
+ return ZR_KEY_DELETE;
124
+ case "home":
125
+ return ZR_KEY_HOME;
126
+ case "end":
127
+ return ZR_KEY_END;
128
+ case "pageup":
129
+ return ZR_KEY_PAGE_UP;
130
+ case "pagedown":
131
+ return ZR_KEY_PAGE_DOWN;
132
+ case "left":
133
+ return ZR_KEY_LEFT;
134
+ case "right":
135
+ return ZR_KEY_RIGHT;
136
+ case "up":
137
+ return ZR_KEY_UP;
138
+ case "down":
139
+ return ZR_KEY_DOWN;
140
+ default:
141
+ throw new Error(`Unsupported semantic scenario key ${JSON.stringify(key)}`);
142
+ }
143
+ }
144
+ function keyModsToMask(mods) {
145
+ let mask = 0;
146
+ for (const mod of mods ?? []) {
147
+ if (mod === "shift")
148
+ mask |= ZR_MOD_SHIFT;
149
+ else if (mod === "ctrl")
150
+ mask |= ZR_MOD_CTRL;
151
+ else if (mod === "alt")
152
+ mask |= ZR_MOD_ALT;
153
+ else if (mod === "meta")
154
+ mask |= ZR_MOD_META;
155
+ }
156
+ return mask;
157
+ }
158
+ function eventToZrevEvents(event) {
159
+ switch (event.kind) {
160
+ case "text":
161
+ return Object.freeze(Array.from(event.text).map((glyph) => ({
162
+ kind: "text",
163
+ timeMs: 1,
164
+ codepoint: glyph.codePointAt(0) ?? 0,
165
+ })));
166
+ case "paste":
167
+ return Object.freeze([
168
+ {
169
+ kind: "paste",
170
+ timeMs: 1,
171
+ bytes: new TextEncoder().encode(event.text),
172
+ },
173
+ ]);
174
+ case "resize":
175
+ return Object.freeze([
176
+ {
177
+ kind: "resize",
178
+ timeMs: 1,
179
+ cols: event.cols,
180
+ rows: event.rows,
181
+ },
182
+ ]);
183
+ case "terminalBytes":
184
+ throw new Error("Semantic scenarios do not support terminalBytes input");
185
+ case "key":
186
+ return Object.freeze([
187
+ {
188
+ kind: "key",
189
+ timeMs: 1,
190
+ key: keyNameToCode(event.key),
191
+ mods: keyModsToMask(event.mods),
192
+ action: "down",
193
+ },
194
+ ]);
195
+ }
196
+ }
197
+ function focusIdFromBreadcrumbs(snapshot) {
198
+ return snapshot === null ? null : snapshot.focus.focusedId;
199
+ }
200
+ function asCursorSnapshot(snapshot) {
201
+ if (snapshot === null || snapshot.cursor === null)
202
+ return null;
203
+ if (snapshot.cursor.visible) {
204
+ return Object.freeze({
205
+ visible: true,
206
+ x: snapshot.cursor.x,
207
+ y: snapshot.cursor.y,
208
+ shape: snapshot.cursor.shape,
209
+ blink: snapshot.cursor.blink,
210
+ });
211
+ }
212
+ return Object.freeze({
213
+ visible: false,
214
+ shape: snapshot.cursor.shape,
215
+ blink: snapshot.cursor.blink,
216
+ });
217
+ }
218
+ export async function runSemanticScenario(opts) {
219
+ if (opts.scenario.scriptedInput.some((step) => step.event.kind === "terminalBytes")) {
220
+ return Object.freeze({
221
+ mode: "semantic",
222
+ status: "FAIL",
223
+ pass: false,
224
+ actions: Object.freeze([]),
225
+ steps: Object.freeze([]),
226
+ finalScreen: createScenarioScreenSnapshot(opts.scenario.viewport, ""),
227
+ finalCursor: null,
228
+ mismatches: Object.freeze([
229
+ Object.freeze({
230
+ code: "ZR_SCENARIO_UNSUPPORTED",
231
+ path: "scriptedInput",
232
+ detail: "Semantic scenarios do not support terminalBytes input; use PTY mode",
233
+ }),
234
+ ]),
235
+ });
236
+ }
237
+ const fixture = opts.createFixture();
238
+ const backend = new SemanticHarnessBackend(toTerminalCaps(opts.scenario.capabilityProfile));
239
+ let latestState = fixture.initialState;
240
+ let latestBreadcrumbs = null;
241
+ const actions = [];
242
+ const fatal = [];
243
+ const runtimeApp = createApp({
244
+ backend,
245
+ initialState: fixture.initialState,
246
+ config: {
247
+ internal_onRender: (metrics) => {
248
+ const breadcrumbs = metrics.runtimeBreadcrumbs;
249
+ if (breadcrumbs)
250
+ latestBreadcrumbs = breadcrumbs;
251
+ },
252
+ },
253
+ });
254
+ fixture.setup?.(runtimeApp);
255
+ runtimeApp.onEvent((event) => {
256
+ if (event.kind === "action")
257
+ actions.push(event);
258
+ if (event.kind === "fatal")
259
+ fatal.push({ code: event.code, detail: event.detail });
260
+ });
261
+ runtimeApp.view((state) => {
262
+ latestState = state;
263
+ return fixture.view(state);
264
+ });
265
+ const renderer = createTestRenderer({
266
+ viewport: opts.scenario.viewport,
267
+ theme: fixture.theme ?? defaultTheme.definition,
268
+ });
269
+ let currentViewport = { ...opts.scenario.viewport };
270
+ const steps = [];
271
+ try {
272
+ await runtimeApp.start();
273
+ backend.pushBytes(encodeZrevBatchV1({
274
+ events: [
275
+ {
276
+ kind: "resize",
277
+ timeMs: 0,
278
+ cols: currentViewport.cols,
279
+ rows: currentViewport.rows,
280
+ },
281
+ ],
282
+ }));
283
+ await flushMicrotasks();
284
+ for (let index = 0; index < opts.scenario.scriptedInput.length; index++) {
285
+ const step = opts.scenario.scriptedInput[index];
286
+ if (step === undefined)
287
+ continue;
288
+ const events = eventToZrevEvents(step.event);
289
+ if (step.event.kind === "resize") {
290
+ currentViewport = { cols: step.event.cols, rows: step.event.rows };
291
+ }
292
+ backend.pushBytes(encodeZrevBatchV1({ events }));
293
+ await flushMicrotasks();
294
+ const focusedId = focusIdFromBreadcrumbs(latestBreadcrumbs);
295
+ const screenRender = renderer.render(fixture.view(latestState), {
296
+ viewport: currentViewport,
297
+ theme: fixture.theme ?? defaultTheme.definition,
298
+ focusedId,
299
+ });
300
+ steps.push(Object.freeze({
301
+ step: index + 1,
302
+ screen: createScenarioScreenSnapshot(currentViewport, screenRender.toText()),
303
+ cursor: asCursorSnapshot(latestBreadcrumbs),
304
+ actions: Object.freeze(actions.slice()),
305
+ }));
306
+ }
307
+ }
308
+ finally {
309
+ try {
310
+ await runtimeApp.stop();
311
+ }
312
+ catch {
313
+ // ignore harness teardown failures
314
+ }
315
+ runtimeApp.dispose();
316
+ }
317
+ const lastStep = steps[steps.length - 1] ??
318
+ Object.freeze({
319
+ step: 0,
320
+ screen: createScenarioScreenSnapshot(currentViewport, ""),
321
+ cursor: asCursorSnapshot(latestBreadcrumbs),
322
+ actions: Object.freeze(actions.slice()),
323
+ });
324
+ const result = evaluateScenarioResult(opts.scenario, {
325
+ mode: "semantic",
326
+ actions: Object.freeze(actions.slice()),
327
+ steps: Object.freeze(steps),
328
+ finalScreen: lastStep.screen,
329
+ finalCursor: lastStep.cursor,
330
+ });
331
+ if (fatal.length === 0)
332
+ return result;
333
+ return Object.freeze({
334
+ ...result,
335
+ status: "FAIL",
336
+ pass: false,
337
+ mismatches: Object.freeze([
338
+ ...result.mismatches,
339
+ ...fatal.map((item, index) => Object.freeze({
340
+ code: "ZR_SCENARIO_RUNTIME_FATAL",
341
+ path: `fatal[${String(index)}]`,
342
+ detail: `${item.code}: ${item.detail}`,
343
+ })),
344
+ ]),
345
+ });
346
+ }
347
+ //# sourceMappingURL=semanticScenario.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semanticScenario.js","sourceRoot":"","sources":["../../src/testing/semanticScenario.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumb.d.ts","sourceRoot":"","sources":["../../src/widgets/breadcrumb.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEzD,eAAO,MAAM,4BAA4B,QAAQ,CAAC;AAClD,eAAO,MAAM,sBAAsB,6BAA6B,CAAC;AACjE,eAAO,MAAM,sBAAsB,6BAA6B,CAAC;AAEjE,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAAC;AAEH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAEhF;AAED,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/E;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI,CAS/E;AAED,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,GAC9B,SAAS,MAAM,EAAE,CASnB;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,eAAe,GAAG,QAAQ,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,GAChD,SAAS,KAAK,EAAE,CAsDlB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,GAAG,QAAQ,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,KAAK,CAM9F;AAsBD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,eAAe,GAAG,KAAK,CAEzE"}
1
+ {"version":3,"file":"breadcrumb.d.ts","sourceRoot":"","sources":["../../src/widgets/breadcrumb.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEzD,eAAO,MAAM,4BAA4B,QAAQ,CAAC;AAClD,eAAO,MAAM,sBAAsB,6BAA6B,CAAC;AACjE,eAAO,MAAM,sBAAsB,6BAA6B,CAAC;AAEjE,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAAC;AAEH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAEhF;AAED,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/E;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI,CAS/E;AAED,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,GAC9B,SAAS,MAAM,EAAE,CASnB;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,eAAe,GAAG,QAAQ,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,GAChD,SAAS,KAAK,EAAE,CA0ClB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,GAAG,QAAQ,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,KAAK,CAM9F;AAsBD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,eAAe,GAAG,KAAK,CAEzE"}
@@ -81,18 +81,7 @@ export function buildBreadcrumbChildren(props) {
81
81
  props: { gap: 0 },
82
82
  children: Object.freeze(rowChildren),
83
83
  };
84
- const zone = {
85
- kind: "focusZone",
86
- props: {
87
- id: getBreadcrumbZoneId(props.id),
88
- tabIndex: 0,
89
- navigation: "linear",
90
- columns: 1,
91
- wrapAround: false,
92
- },
93
- children: Object.freeze([row]),
94
- };
95
- return Object.freeze([zone]);
84
+ return Object.freeze([row]);
96
85
  }
97
86
  export function createBreadcrumbVNode(props) {
98
87
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumb.js","sourceRoot":"","sources":["../../src/widgets/breadcrumb.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"breadcrumb.js","sourceRoot":"","sources":["../../src/widgets/breadcrumb.ts"],"names":[],"mappings":"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"}
@@ -96,8 +96,6 @@ export type TextProps = Readonly<{
96
96
  maxWidth?: SizeConstraint;
97
97
  /** When true, text wraps to multiple lines instead of single-line truncation. */
98
98
  wrap?: boolean;
99
- /** Internal callback used by ink-compat to transform rendered lines. */
100
- __inkTransform?: (line: string, index: number) => string;
101
99
  }> & DisplayableProps;
102
100
  /**
103
101
  * Shadow configuration for box widgets.
@@ -134,7 +132,7 @@ export type BoxProps = Readonly<{
134
132
  border?: "none" | "single" | "double" | "rounded" | "heavy" | "dashed" | "heavy-dashed";
135
133
  /**
136
134
  * Render individual border sides. Defaults to true when `border` is not "none".
137
- * Mirrors Ink-style per-side border toggles.
135
+ * Matches per-side border toggles used by terminal UI libraries.
138
136
  */
139
137
  borderTop?: boolean;
140
138
  borderRight?: boolean;