@flyingrobots/bijou-tui 3.0.0 → 4.0.0

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 (122) hide show
  1. package/LICENSE +159 -21
  2. package/README.md +181 -32
  3. package/dist/app-frame-actions.d.ts +1 -5
  4. package/dist/app-frame-actions.d.ts.map +1 -1
  5. package/dist/app-frame-actions.js +23 -20
  6. package/dist/app-frame-actions.js.map +1 -1
  7. package/dist/app-frame-render.d.ts +17 -11
  8. package/dist/app-frame-render.d.ts.map +1 -1
  9. package/dist/app-frame-render.js +106 -100
  10. package/dist/app-frame-render.js.map +1 -1
  11. package/dist/app-frame-types.d.ts +10 -1
  12. package/dist/app-frame-types.d.ts.map +1 -1
  13. package/dist/app-frame-types.js.map +1 -1
  14. package/dist/app-frame.d.ts +39 -2
  15. package/dist/app-frame.d.ts.map +1 -1
  16. package/dist/app-frame.js +222 -78
  17. package/dist/app-frame.js.map +1 -1
  18. package/dist/browsable-list.d.ts +20 -1
  19. package/dist/browsable-list.d.ts.map +1 -1
  20. package/dist/browsable-list.js +38 -10
  21. package/dist/browsable-list.js.map +1 -1
  22. package/dist/command-palette.d.ts +17 -1
  23. package/dist/command-palette.d.ts.map +1 -1
  24. package/dist/command-palette.js +45 -20
  25. package/dist/command-palette.js.map +1 -1
  26. package/dist/commands.d.ts.map +1 -1
  27. package/dist/commands.js +11 -3
  28. package/dist/commands.js.map +1 -1
  29. package/dist/css/text-style.d.ts +2 -1
  30. package/dist/css/text-style.d.ts.map +1 -1
  31. package/dist/css/text-style.js +33 -0
  32. package/dist/css/text-style.js.map +1 -1
  33. package/dist/design-language.d.ts +49 -0
  34. package/dist/design-language.d.ts.map +1 -0
  35. package/dist/design-language.js +70 -0
  36. package/dist/design-language.js.map +1 -0
  37. package/dist/driver.d.ts +10 -6
  38. package/dist/driver.d.ts.map +1 -1
  39. package/dist/driver.js +18 -17
  40. package/dist/driver.js.map +1 -1
  41. package/dist/eventbus.d.ts +5 -0
  42. package/dist/eventbus.d.ts.map +1 -1
  43. package/dist/eventbus.js +44 -7
  44. package/dist/eventbus.js.map +1 -1
  45. package/dist/file-picker.d.ts +19 -1
  46. package/dist/file-picker.d.ts.map +1 -1
  47. package/dist/file-picker.js +47 -20
  48. package/dist/file-picker.js.map +1 -1
  49. package/dist/flex.d.ts +35 -1
  50. package/dist/flex.d.ts.map +1 -1
  51. package/dist/flex.js +127 -1
  52. package/dist/flex.js.map +1 -1
  53. package/dist/focus-area.d.ts +13 -1
  54. package/dist/focus-area.d.ts.map +1 -1
  55. package/dist/focus-area.js +89 -12
  56. package/dist/focus-area.js.map +1 -1
  57. package/dist/grid.d.ts +10 -0
  58. package/dist/grid.d.ts.map +1 -1
  59. package/dist/grid.js +25 -0
  60. package/dist/grid.js.map +1 -1
  61. package/dist/help.d.ts +41 -0
  62. package/dist/help.d.ts.map +1 -1
  63. package/dist/help.js +50 -0
  64. package/dist/help.js.map +1 -1
  65. package/dist/index.d.ts +19 -17
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +18 -14
  68. package/dist/index.js.map +1 -1
  69. package/dist/layout-node-surface.d.ts +9 -0
  70. package/dist/layout-node-surface.d.ts.map +1 -0
  71. package/dist/layout-node-surface.js +42 -0
  72. package/dist/layout-node-surface.js.map +1 -0
  73. package/dist/navigable-table.d.ts +16 -1
  74. package/dist/navigable-table.d.ts.map +1 -1
  75. package/dist/navigable-table.js +32 -1
  76. package/dist/navigable-table.js.map +1 -1
  77. package/dist/notification.d.ts +89 -0
  78. package/dist/notification.d.ts.map +1 -0
  79. package/dist/notification.js +821 -0
  80. package/dist/notification.js.map +1 -0
  81. package/dist/overlay.d.ts +24 -9
  82. package/dist/overlay.d.ts.map +1 -1
  83. package/dist/overlay.js +236 -138
  84. package/dist/overlay.js.map +1 -1
  85. package/dist/pager.d.ts +16 -0
  86. package/dist/pager.d.ts.map +1 -1
  87. package/dist/pager.js +61 -1
  88. package/dist/pager.js.map +1 -1
  89. package/dist/runtime.d.ts.map +1 -1
  90. package/dist/runtime.js +79 -68
  91. package/dist/runtime.js.map +1 -1
  92. package/dist/split-pane.d.ts +12 -1
  93. package/dist/split-pane.d.ts.map +1 -1
  94. package/dist/split-pane.js +31 -1
  95. package/dist/split-pane.js.map +1 -1
  96. package/dist/status-bar.d.ts +12 -0
  97. package/dist/status-bar.d.ts.map +1 -1
  98. package/dist/status-bar.js +45 -16
  99. package/dist/status-bar.js.map +1 -1
  100. package/dist/surface-layout.d.ts +19 -0
  101. package/dist/surface-layout.d.ts.map +1 -0
  102. package/dist/surface-layout.js +87 -0
  103. package/dist/surface-layout.js.map +1 -0
  104. package/dist/transition-shaders.d.ts +10 -8
  105. package/dist/transition-shaders.d.ts.map +1 -1
  106. package/dist/transition-shaders.js +65 -19
  107. package/dist/transition-shaders.js.map +1 -1
  108. package/dist/types.d.ts +32 -2
  109. package/dist/types.d.ts.map +1 -1
  110. package/dist/view-output.d.ts +4 -4
  111. package/dist/view-output.d.ts.map +1 -1
  112. package/dist/view-output.js +24 -26
  113. package/dist/view-output.js.map +1 -1
  114. package/dist/viewport.d.ts +30 -1
  115. package/dist/viewport.d.ts.map +1 -1
  116. package/dist/viewport.js +77 -1
  117. package/dist/viewport.js.map +1 -1
  118. package/package.json +4 -4
  119. package/dist/layout-v3.d.ts +0 -10
  120. package/dist/layout-v3.d.ts.map +0 -1
  121. package/dist/layout-v3.js +0 -35
  122. package/dist/layout-v3.js.map +0 -1
@@ -4,6 +4,7 @@
4
4
  * Sections are laid out with priority: left > right > center.
5
5
  * On overlap, center is truncated first, then right.
6
6
  */
7
+ import { createSurface, parseAnsiToSurface } from '@flyingrobots/bijou';
7
8
  import { visibleLength, clipToWidth } from './viewport.js';
8
9
  // ---------------------------------------------------------------------------
9
10
  // statusBar()
@@ -18,9 +19,51 @@ import { visibleLength, clipToWidth } from './viewport.js';
18
19
  * @returns Rendered status bar string of exactly `width` visible characters.
19
20
  */
20
21
  export function statusBar(options) {
22
+ const layout = layoutStatusBar(options);
23
+ if (layout == null)
24
+ return '';
25
+ let result = '';
26
+ let pos = 0;
27
+ for (const seg of layout.segments) {
28
+ if (seg.start > pos) {
29
+ result += layout.fill.repeat(seg.start - pos);
30
+ }
31
+ result += seg.text;
32
+ pos = seg.start + seg.len;
33
+ }
34
+ if (pos < layout.width) {
35
+ result += layout.fill.repeat(layout.width - pos);
36
+ }
37
+ return result;
38
+ }
39
+ /**
40
+ * Render a single-line status bar directly into a `Surface`.
41
+ *
42
+ * Use this in shell chrome and other structured TUI composition paths where the
43
+ * bar should stay on the `Surface` path instead of being flattened to text
44
+ * first. Keep {@link statusBar} for explicit text output or pipe-mode lowering.
45
+ *
46
+ * @param options - Bar content, width, and fill character.
47
+ * @returns Surface sized exactly to the requested bar width and one row tall.
48
+ */
49
+ export function statusBarSurface(options) {
50
+ const layout = layoutStatusBar(options);
51
+ if (layout == null)
52
+ return createSurface(0, 0);
53
+ const surface = createSurface(layout.width, 1, {
54
+ char: layout.fill,
55
+ empty: false,
56
+ });
57
+ for (const seg of layout.segments) {
58
+ const segmentSurface = parseAnsiToSurface(seg.text, seg.len, 1);
59
+ surface.blit(segmentSurface, seg.start, 0, 0, 0, seg.len, 1);
60
+ }
61
+ return surface;
62
+ }
63
+ function layoutStatusBar(options) {
21
64
  const { left = '', center = '', right = '', width, fillChar: rawFillChar, } = options;
22
65
  if (width <= 0)
23
- return '';
66
+ return null;
24
67
  // Use first character of fillChar, default to space
25
68
  const fill = rawFillChar ? rawFillChar[0] : ' ';
26
69
  // Measure visible lengths
@@ -96,20 +139,6 @@ export function statusBar(options) {
96
139
  }
97
140
  // Sort segments by start position
98
141
  segments.sort((a, b) => a.start - b.start);
99
- // Build result by interleaving fill chars and segments
100
- let result = '';
101
- let pos = 0;
102
- for (const seg of segments) {
103
- if (seg.start > pos) {
104
- result += fill.repeat(seg.start - pos);
105
- }
106
- result += seg.text;
107
- pos = seg.start + seg.len;
108
- }
109
- // Fill remaining
110
- if (pos < width) {
111
- result += fill.repeat(width - pos);
112
- }
113
- return result;
142
+ return { width, fill, segments };
114
143
  }
115
144
  //# sourceMappingURL=status-bar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"status-bar.js","sourceRoot":"","sources":["../src/status-bar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status-bar.js","sourceRoot":"","sources":["../src/status-bar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { type Surface } from '@flyingrobots/bijou';
2
+ import type { PlaceOptions } from './layout.js';
3
+ /**
4
+ * Vertical stack for surfaces.
5
+ */
6
+ export declare function vstackSurface(...surfaces: Surface[]): Surface;
7
+ /**
8
+ * Horizontal stack for surfaces with an optional gap.
9
+ */
10
+ export declare function hstackSurface(gap: number, ...surfaces: Surface[]): Surface;
11
+ /**
12
+ * Place a surface within a fixed-size rectangle using horizontal and vertical alignment.
13
+ *
14
+ * Content that exceeds the available width or height is clipped to the top-left visible
15
+ * region, mirroring the string-based `place()` behavior. When the content is smaller than
16
+ * the target rectangle, it is aligned within the blank result surface.
17
+ */
18
+ export declare function placeSurface(content: Surface, options: PlaceOptions): Surface;
19
+ //# sourceMappingURL=surface-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-layout.d.ts","sourceRoot":"","sources":["../src/surface-layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAe7D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAgB1E;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAiD7E"}
@@ -0,0 +1,87 @@
1
+ import { createSurface } from '@flyingrobots/bijou';
2
+ /**
3
+ * Vertical stack for surfaces.
4
+ */
5
+ export function vstackSurface(...surfaces) {
6
+ if (surfaces.length === 0)
7
+ return createSurface(0, 0);
8
+ const width = Math.max(...surfaces.map(s => s.width));
9
+ const height = surfaces.reduce((acc, s) => acc + s.height, 0);
10
+ const result = createSurface(width, height);
11
+ let yOffset = 0;
12
+ for (const s of surfaces) {
13
+ result.blit(s, 0, yOffset);
14
+ yOffset += s.height;
15
+ }
16
+ return result;
17
+ }
18
+ /**
19
+ * Horizontal stack for surfaces with an optional gap.
20
+ */
21
+ export function hstackSurface(gap, ...surfaces) {
22
+ if (surfaces.length === 0)
23
+ return createSurface(0, 0);
24
+ const width = surfaces.reduce((acc, s) => acc + s.width, 0) + (surfaces.length - 1) * gap;
25
+ const height = Math.max(...surfaces.map(s => s.height));
26
+ const result = createSurface(width, height);
27
+ let xOffset = 0;
28
+ for (let i = 0; i < surfaces.length; i++) {
29
+ const s = surfaces[i];
30
+ result.blit(s, xOffset, 0);
31
+ xOffset += s.width + gap;
32
+ }
33
+ return result;
34
+ }
35
+ /**
36
+ * Place a surface within a fixed-size rectangle using horizontal and vertical alignment.
37
+ *
38
+ * Content that exceeds the available width or height is clipped to the top-left visible
39
+ * region, mirroring the string-based `place()` behavior. When the content is smaller than
40
+ * the target rectangle, it is aligned within the blank result surface.
41
+ */
42
+ export function placeSurface(content, options) {
43
+ const width = Math.max(0, Math.floor(options.width));
44
+ const height = Math.max(0, Math.floor(options.height));
45
+ const hAlign = options.hAlign ?? 'left';
46
+ const vAlign = options.vAlign ?? 'top';
47
+ if (width === 0 || height === 0)
48
+ return createSurface(0, 0);
49
+ const result = createSurface(width, height);
50
+ const clipWidth = Math.min(width, content.width);
51
+ const clipHeight = Math.min(height, content.height);
52
+ let col = 0;
53
+ if (content.width < width) {
54
+ switch (hAlign) {
55
+ case 'right':
56
+ col = width - content.width;
57
+ break;
58
+ case 'center':
59
+ col = Math.floor((width - content.width) / 2);
60
+ break;
61
+ case 'left':
62
+ default:
63
+ col = 0;
64
+ break;
65
+ }
66
+ }
67
+ let row = 0;
68
+ if (content.height < height) {
69
+ switch (vAlign) {
70
+ case 'bottom':
71
+ row = height - content.height;
72
+ break;
73
+ case 'middle':
74
+ row = Math.floor((height - content.height) / 2);
75
+ break;
76
+ case 'top':
77
+ default:
78
+ row = 0;
79
+ break;
80
+ }
81
+ }
82
+ if (clipWidth > 0 && clipHeight > 0) {
83
+ result.blit(content, Math.max(0, col), Math.max(0, row), 0, 0, clipWidth, clipHeight);
84
+ }
85
+ return result;
86
+ }
87
+ //# sourceMappingURL=surface-layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-layout.js","sourceRoot":"","sources":["../src/surface-layout.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Each shader receives cell metadata (position, dimensions, progress, random,
5
5
  * frame counter) and returns whether to show the next page or optionally
6
- * override the character.
6
+ * override the rendered cell.
7
7
  *
8
8
  * ## Shader types
9
9
  *
@@ -11,7 +11,7 @@
11
11
  * - **Factories** (`wipe()`, `radial()`, `blinds()`, …) — parameterized, return a shader.
12
12
  * - **Combinators** (`reverse()`, `chain()`, `overlay()`) — transform or compose shaders.
13
13
  */
14
- import type { BijouContext } from '@flyingrobots/bijou';
14
+ import type { BijouContext, Cell } from '@flyingrobots/bijou';
15
15
  /** Input provided to a transition shader for each cell. */
16
16
  export interface TransitionCell {
17
17
  readonly x: number;
@@ -26,7 +26,7 @@ export interface TransitionCell {
26
26
  readonly ctx: BijouContext;
27
27
  }
28
28
  /**
29
- * Semantic role of a character override.
29
+ * Semantic role of a transition override.
30
30
  *
31
31
  * - `'decoration'` — ambient visual noise (glitch blocks, static, scramble).
32
32
  * Survives progress remapping in combinators like `reverse()` and `chain()`.
@@ -34,13 +34,15 @@ export interface TransitionCell {
34
34
  * (e.g., typewriter cursor). Dropped by combinators that remap progress,
35
35
  * since the marker's position becomes meaningless in the new space.
36
36
  */
37
- export type CharRole = 'decoration' | 'marker';
37
+ export type TransitionOverrideRole = 'decoration' | 'marker';
38
38
  /** Output from a transition shader for a single cell. */
39
39
  export interface TransitionResult {
40
40
  readonly showNext: boolean;
41
- readonly char?: string;
42
- /** Semantic role of the char override. Defaults to `'decoration'` if omitted. */
43
- readonly charRole?: CharRole;
41
+ readonly overrideChar?: string;
42
+ /** Surface-native override cell. Merged on top of the selected base cell. */
43
+ readonly overrideCell?: Cell;
44
+ /** Semantic role of the override. Defaults to `'decoration'` if omitted. */
45
+ readonly overrideRole?: TransitionOverrideRole;
44
46
  }
45
47
  /** A pure function that determines how each cell transitions between pages. */
46
48
  export type TransitionShaderFn = (cell: TransitionCell) => TransitionResult;
@@ -128,7 +130,7 @@ export declare function reverse(shader: TransitionShaderFn): TransitionShaderFn;
128
130
  */
129
131
  export declare function chain(a: TransitionShaderFn, b: TransitionShaderFn): TransitionShaderFn;
130
132
  /**
131
- * Overlay two shaders: `top` shader's char override wins when present,
133
+ * Overlay two shaders: `top` shader's override wins when present,
132
134
  * otherwise falls through to `base` shader's result.
133
135
  *
134
136
  * `showNext` uses OR semantics — the composite reveals a cell if *either*
@@ -1 +1 @@
1
- {"version":3,"file":"transition-shaders.d.ts","sourceRoot":"","sources":["../src/transition-shaders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transition-shaders.d.ts","sourceRoot":"","sources":["../src/transition-shaders.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Each shader receives cell metadata (position, dimensions, progress, random,
5
5
  * frame counter) and returns whether to show the next page or optionally
6
- * override the character.
6
+ * override the rendered cell.
7
7
  *
8
8
  * ## Shader types
9
9
  *
@@ -11,6 +11,15 @@
11
11
  * - **Factories** (`wipe()`, `radial()`, `blinds()`, …) — parameterized, return a shader.
12
12
  * - **Combinators** (`reverse()`, `chain()`, `overlay()`) — transform or compose shaders.
13
13
  */
14
+ function tokenCell(char, token) {
15
+ return {
16
+ char,
17
+ fg: token.hex,
18
+ bg: token.bg,
19
+ modifiers: token.modifiers ? [...token.modifiers] : [],
20
+ empty: false,
21
+ };
22
+ }
14
23
  // ---------------------------------------------------------------------------
15
24
  // Pseudo-random helpers
16
25
  // ---------------------------------------------------------------------------
@@ -34,7 +43,7 @@ function computeOriginMetrics(x, y, width, height, originX, originY) {
34
43
  return { nx, ny, aspect, dx, dy, dist, maxDist, normDist };
35
44
  }
36
45
  // ---------------------------------------------------------------------------
37
- // Original shaders (backward-compatible instances)
46
+ // Core built-in instances
38
47
  // ---------------------------------------------------------------------------
39
48
  /** Left-to-right wipe. */
40
49
  export const wipeShader = ({ x, width, progress }) => ({
@@ -70,7 +79,12 @@ export const matrixShader = ({ rand, progress, ctx }) => {
70
79
  if (rand < threshold + edge) {
71
80
  const chars = '01$#@%&*';
72
81
  const char = chars[Math.min(Math.floor(rand * 100) % chars.length, chars.length - 1)];
73
- return { showNext: false, char: ctx.style.styled(ctx.status('success'), char), charRole: 'decoration' };
82
+ return {
83
+ showNext: false,
84
+ overrideChar: char,
85
+ overrideCell: tokenCell(char, ctx.status('success')),
86
+ overrideRole: 'decoration',
87
+ };
74
88
  }
75
89
  return { showNext: false };
76
90
  };
@@ -80,7 +94,12 @@ export const scrambleShader = ({ rand, progress, ctx }) => {
80
94
  if (rand < scrambleAmount * 0.8) {
81
95
  const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()';
82
96
  const char = chars[Math.min(Math.floor(rand * 1000) % chars.length, chars.length - 1)];
83
- return { showNext: false, char: ctx.style.styled(ctx.semantic('muted'), char), charRole: 'decoration' };
97
+ return {
98
+ showNext: false,
99
+ overrideChar: char,
100
+ overrideCell: tokenCell(char, ctx.semantic('muted')),
101
+ overrideRole: 'decoration',
102
+ };
84
103
  }
85
104
  return { showNext: progress > 0.5 };
86
105
  };
@@ -161,7 +180,7 @@ export function pixelate(maxBlockSize = 16) {
161
180
  if (scramble) {
162
181
  const chars = '░▒▓█';
163
182
  const char = chars[Math.min(Math.floor(rand * chars.length), chars.length - 1)];
164
- return { showNext: false, char, charRole: 'decoration' };
183
+ return { showNext: false, overrideChar: char, overrideRole: 'decoration' };
165
184
  }
166
185
  return { showNext };
167
186
  };
@@ -178,7 +197,12 @@ export function typewriter(cursor = '▌') {
178
197
  if (cellIndex < revealed)
179
198
  return { showNext: true };
180
199
  if (cellIndex === revealed) {
181
- return { showNext: false, char: ctx.style.styled(ctx.status('info'), cursor), charRole: 'marker' };
200
+ return {
201
+ showNext: false,
202
+ overrideChar: cursor,
203
+ overrideCell: tokenCell(cursor, ctx.status('info')),
204
+ overrideRole: 'marker',
205
+ };
182
206
  }
183
207
  return { showNext: false };
184
208
  };
@@ -197,14 +221,24 @@ export function glitch(intensity = 0.5) {
197
221
  const glitchChars = '▓░▒█▄▀';
198
222
  const n = noise(x, y, frame);
199
223
  const char = glitchChars[Math.min(Math.floor(n * glitchChars.length), glitchChars.length - 1)];
200
- return { showNext: false, char: ctx.style.styled(ctx.status('error'), char), charRole: 'decoration' };
224
+ return {
225
+ showNext: false,
226
+ overrideChar: char,
227
+ overrideCell: tokenCell(char, ctx.status('error')),
228
+ overrideRole: 'decoration',
229
+ };
201
230
  }
202
231
  // Scattered cells get individual scramble
203
232
  const cellNoise = noise(x, y, frame * 0.5);
204
233
  if (cellNoise < glitchAmount * 0.3) {
205
234
  const glitchChars = '▓░▒█▄▀╪╫╬';
206
235
  const char = glitchChars[Math.min(Math.floor(cellNoise * 100) % glitchChars.length, glitchChars.length - 1)];
207
- return { showNext: false, char: ctx.style.styled(ctx.status('warning'), char), charRole: 'decoration' };
236
+ return {
237
+ showNext: false,
238
+ overrideChar: char,
239
+ overrideCell: tokenCell(char, ctx.status('warning')),
240
+ overrideRole: 'decoration',
241
+ };
208
242
  }
209
243
  return { showNext: progress > 0.5 };
210
244
  };
@@ -229,13 +263,18 @@ export function tvStatic(density = 0.7) {
229
263
  const intensity = noise(x + 1, y + 1, frame);
230
264
  const chars = ' ░▒▓█';
231
265
  const char = chars[Math.min(Math.floor(intensity * chars.length), chars.length - 1)];
232
- return { showNext: false, char: ctx.style.styled(ctx.semantic('muted'), char), charRole: 'decoration' };
266
+ return {
267
+ showNext: false,
268
+ overrideChar: char,
269
+ overrideCell: tokenCell(char, ctx.semantic('muted')),
270
+ overrideRole: 'decoration',
271
+ };
233
272
  }
234
273
  return { showNext: progress > 0.5 };
235
274
  };
236
275
  }
237
276
  // ---------------------------------------------------------------------------
238
- // Default instances for the new shaders (zero-config)
277
+ // Additional built-in instances (zero-config)
239
278
  // ---------------------------------------------------------------------------
240
279
  /** Circle expanding from center. */
241
280
  export const radialShader = radial();
@@ -267,12 +306,18 @@ export const staticShader = tvStatic();
267
306
  export function reverse(shader) {
268
307
  return (cell) => {
269
308
  const result = shader({ ...cell, progress: 1 - cell.progress });
270
- // Marker chars (e.g., typewriter cursor) are positional — they become
271
- // stale when progress is remapped. Decoration chars (glitch noise,
309
+ // Marker overrides (e.g., typewriter cursor) are positional — they become
310
+ // stale when progress is remapped. Decoration overrides (glitch noise,
272
311
  // static blocks) are ambient and survive the reversal.
273
- const keepChar = result.char !== undefined && result.charRole !== 'marker';
274
- return keepChar
275
- ? { showNext: !result.showNext, char: result.char, charRole: result.charRole }
312
+ const keepOverride = (result.overrideChar !== undefined || result.overrideCell !== undefined)
313
+ && result.overrideRole !== 'marker';
314
+ return keepOverride
315
+ ? {
316
+ showNext: !result.showNext,
317
+ overrideChar: result.overrideChar,
318
+ overrideCell: result.overrideCell,
319
+ overrideRole: result.overrideRole,
320
+ }
276
321
  : { showNext: !result.showNext };
277
322
  };
278
323
  }
@@ -295,7 +340,7 @@ export function chain(a, b) {
295
340
  };
296
341
  }
297
342
  /**
298
- * Overlay two shaders: `top` shader's char override wins when present,
343
+ * Overlay two shaders: `top` shader's override wins when present,
299
344
  * otherwise falls through to `base` shader's result.
300
345
  *
301
346
  * `showNext` uses OR semantics — the composite reveals a cell if *either*
@@ -305,13 +350,14 @@ export function chain(a, b) {
305
350
  export function overlay(base, top) {
306
351
  return (cell) => {
307
352
  const topResult = top(cell);
308
- if (topResult.char !== undefined)
353
+ if (topResult.overrideChar !== undefined || topResult.overrideCell !== undefined)
309
354
  return topResult;
310
355
  const baseResult = base(cell);
311
356
  return {
312
357
  showNext: topResult.showNext || baseResult.showNext,
313
- char: baseResult.char,
314
- charRole: baseResult.charRole,
358
+ overrideChar: baseResult.overrideChar,
359
+ overrideCell: baseResult.overrideCell,
360
+ overrideRole: baseResult.overrideRole,
315
361
  };
316
362
  };
317
363
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transition-shaders.js","sourceRoot":"","sources":["../src/transition-shaders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transition-shaders.js","sourceRoot":"","sources":["../src/transition-shaders.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -112,6 +112,29 @@ export interface CmdCapabilities {
112
112
  onPulse(handler: (dt: number) => void): {
113
113
  dispose(): void;
114
114
  };
115
+ /** Sleep for a bounded amount of time using the runtime clock. */
116
+ sleep?(ms: number): Promise<void>;
117
+ /** Yield to the next microtask using the runtime clock. */
118
+ defer?(): Promise<void>;
119
+ /** Read the current wall-clock time from the runtime clock. */
120
+ now?(): number;
121
+ }
122
+ /** Severity of a runtime issue surfaced by the framework itself. */
123
+ export type RuntimeIssueLevel = 'warning' | 'error';
124
+ /** Origin of a runtime issue surfaced by the framework itself. */
125
+ export type RuntimeIssueSource = 'command' | 'eventbus' | 'runtime';
126
+ /** Framework-level issue routed alongside normal app messages when supported. */
127
+ export interface RuntimeIssue {
128
+ /** Warning or error severity. */
129
+ readonly level: RuntimeIssueLevel;
130
+ /** Subsystem that surfaced the issue. */
131
+ readonly source: RuntimeIssueSource;
132
+ /** Human-readable issue text. */
133
+ readonly message: string;
134
+ /** Runtime clock timestamp for deterministic routing. */
135
+ readonly atMs: number;
136
+ /** Original thrown value when available. */
137
+ readonly error?: unknown;
115
138
  }
116
139
  /**
117
140
  * TEA (The Elm Architecture) application interface.
@@ -138,12 +161,19 @@ export interface App<Model, M = never> {
138
161
  */
139
162
  update(msg: KeyMsg | ResizeMsg | MouseMsg | PulseMsg | M, model: Model): [Model, Cmd<M>[]];
140
163
  /**
141
- * Render the current model as a Surface, LayoutNode, or legacy string view.
164
+ * Render the current model as a Surface or LayoutNode.
142
165
  *
143
166
  * @param model - Current application state.
144
- * @returns Rendered Surface, Layout tree, or legacy string output.
167
+ * @returns Rendered Surface or Layout tree.
145
168
  */
146
169
  view(model: Model): ViewOutput;
170
+ /**
171
+ * Optionally translate framework warnings/errors into application messages.
172
+ *
173
+ * This lets higher-level shells surface runtime issues through their own UI
174
+ * while the framework still writes them to stderr as usual.
175
+ */
176
+ routeRuntimeIssue?(issue: RuntimeIssue): M | undefined;
147
177
  }
148
178
  /**
149
179
  * Configuration options for the TEA runtime.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,15 @@
1
1
  import { type LayoutNode, type Surface } from '@flyingrobots/bijou';
2
- export type ViewOutput = Surface | LayoutNode | string;
2
+ export type ViewOutput = Surface | LayoutNode;
3
3
  export interface ViewportSize {
4
4
  width: number;
5
5
  height: number;
6
6
  }
7
7
  export interface NormalizedViewOutput {
8
- kind: 'surface' | 'layout' | 'string';
9
- legacyString: boolean;
8
+ kind: 'surface' | 'layout';
10
9
  surface: Surface;
11
10
  }
12
11
  export declare function isSurfaceView(value: unknown): value is Surface;
12
+ export declare function isLayoutNodeView(value: unknown): value is LayoutNode;
13
13
  export declare function normalizeViewOutput(output: ViewOutput, size: ViewportSize): NormalizedViewOutput;
14
- export declare function wrapViewOutputAsLayoutRoot(output: ViewOutput, size: ViewportSize): LayoutNode;
14
+ export declare function wrapViewOutputAsLayoutRoot(output: ViewOutput, _size: ViewportSize): LayoutNode;
15
15
  //# sourceMappingURL=view-output.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"view-output.d.ts","sourceRoot":"","sources":["../src/view-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,OAAO,EACb,MAAM,qBAAqB,CAAC;AAE7B,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;AAEvD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACtC,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAE9D;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,YAAY,GACjB,oBAAoB,CAsBtB;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,YAAY,GACjB,UAAU,CAqBZ"}
1
+ {"version":3,"file":"view-output.d.ts","sourceRoot":"","sources":["../src/view-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,UAAU,EACf,KAAK,OAAO,EACb,MAAM,qBAAqB,CAAC;AAG7B,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAE9D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAEpE;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,YAAY,GACjB,oBAAoB,CAqBtB;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,YAAY,GAClB,UAAU,CAiBZ"}