@flyingrobots/bijou-node 7.1.0 → 8.0.0-rc.1

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 (110) hide show
  1. package/dist/chalk-token-styler.d.ts +4 -0
  2. package/dist/chalk-token-styler.d.ts.map +1 -0
  3. package/dist/chalk-token-styler.js +79 -0
  4. package/dist/chalk-token-styler.js.map +1 -0
  5. package/dist/gifenc-runtime.d.ts +5 -0
  6. package/dist/gifenc-runtime.d.ts.map +1 -0
  7. package/dist/gifenc-runtime.js +30 -0
  8. package/dist/gifenc-runtime.js.map +1 -0
  9. package/dist/index.d.ts +7 -56
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +22 -117
  12. package/dist/index.js.map +1 -1
  13. package/dist/index.test-support.d.ts +11 -0
  14. package/dist/index.test-support.d.ts.map +1 -0
  15. package/dist/index.test-support.js +9 -0
  16. package/dist/index.test-support.js.map +1 -0
  17. package/dist/index.test-support.part01.d.ts +28 -0
  18. package/dist/index.test-support.part01.d.ts.map +1 -0
  19. package/dist/index.test-support.part01.js +89 -0
  20. package/dist/index.test-support.part01.js.map +1 -0
  21. package/dist/index.test-support.part02.d.ts +5 -0
  22. package/dist/index.test-support.part02.d.ts.map +1 -0
  23. package/dist/index.test-support.part02.js +63 -0
  24. package/dist/index.test-support.part02.js.map +1 -0
  25. package/dist/io-types.d.ts +26 -0
  26. package/dist/io-types.d.ts.map +1 -0
  27. package/dist/io-types.js +2 -0
  28. package/dist/io-types.js.map +1 -0
  29. package/dist/io.d.ts +3 -18
  30. package/dist/io.d.ts.map +1 -1
  31. package/dist/io.js +10 -17
  32. package/dist/io.js.map +1 -1
  33. package/dist/io.test-support.d.ts +5 -0
  34. package/dist/io.test-support.d.ts.map +1 -0
  35. package/dist/io.test-support.js +13 -0
  36. package/dist/io.test-support.js.map +1 -0
  37. package/dist/node-context-selection.d.ts +11 -0
  38. package/dist/node-context-selection.d.ts.map +1 -0
  39. package/dist/node-context-selection.js +77 -0
  40. package/dist/node-context-selection.js.map +1 -0
  41. package/dist/node-context.d.ts +14 -0
  42. package/dist/node-context.d.ts.map +1 -0
  43. package/dist/node-context.js +30 -0
  44. package/dist/node-context.js.map +1 -0
  45. package/dist/oled-font.d.ts +8 -0
  46. package/dist/oled-font.d.ts.map +1 -0
  47. package/dist/oled-font.js +28 -0
  48. package/dist/oled-font.js.map +1 -0
  49. package/dist/options.d.ts +48 -0
  50. package/dist/options.d.ts.map +1 -0
  51. package/dist/options.js +2 -0
  52. package/dist/options.js.map +1 -0
  53. package/dist/readline-output.d.ts +3 -0
  54. package/dist/readline-output.d.ts.map +1 -0
  55. package/dist/readline-output.js +20 -0
  56. package/dist/readline-output.js.map +1 -0
  57. package/dist/recorder.d.ts +2 -40
  58. package/dist/recorder.d.ts.map +1 -1
  59. package/dist/recorder.js +1 -240
  60. package/dist/recorder.js.map +1 -1
  61. package/dist/recorder.part01.d.ts +56 -0
  62. package/dist/recorder.part01.d.ts.map +1 -0
  63. package/dist/recorder.part01.js +76 -0
  64. package/dist/recorder.part01.js.map +1 -0
  65. package/dist/recorder.part02.d.ts +5 -0
  66. package/dist/recorder.part02.d.ts.map +1 -0
  67. package/dist/recorder.part02.js +54 -0
  68. package/dist/recorder.part02.js.map +1 -0
  69. package/dist/recorder.part03.d.ts +6 -0
  70. package/dist/recorder.part03.d.ts.map +1 -0
  71. package/dist/recorder.part03.js +118 -0
  72. package/dist/recorder.part03.js.map +1 -0
  73. package/dist/runtime.d.ts.map +1 -1
  74. package/dist/runtime.js +10 -4
  75. package/dist/runtime.js.map +1 -1
  76. package/dist/style.d.ts +1 -8
  77. package/dist/style.d.ts.map +1 -1
  78. package/dist/style.js +10 -98
  79. package/dist/style.js.map +1 -1
  80. package/dist/worker/fixtures/echo-worker.js +7 -6
  81. package/dist/worker/fixtures/echo-worker.js.map +1 -1
  82. package/dist/worker/worker-data.d.ts +25 -0
  83. package/dist/worker/worker-data.d.ts.map +1 -0
  84. package/dist/worker/worker-data.js +44 -0
  85. package/dist/worker/worker-data.js.map +1 -0
  86. package/dist/worker/worker-mouse-mode.d.ts +10 -0
  87. package/dist/worker/worker-mouse-mode.d.ts.map +1 -0
  88. package/dist/worker/worker-mouse-mode.js +14 -0
  89. package/dist/worker/worker-mouse-mode.js.map +1 -0
  90. package/dist/worker/worker-options.d.ts +33 -0
  91. package/dist/worker/worker-options.d.ts.map +1 -0
  92. package/dist/worker/worker-options.js +2 -0
  93. package/dist/worker/worker-options.js.map +1 -0
  94. package/dist/worker/worker.d.ts +5 -106
  95. package/dist/worker/worker.d.ts.map +1 -1
  96. package/dist/worker/worker.js +3 -228
  97. package/dist/worker/worker.js.map +1 -1
  98. package/dist/worker/worker.part01.d.ts +59 -0
  99. package/dist/worker/worker.part01.d.ts.map +1 -0
  100. package/dist/worker/worker.part01.js +40 -0
  101. package/dist/worker/worker.part01.js.map +1 -0
  102. package/dist/worker/worker.part02.d.ts +12 -0
  103. package/dist/worker/worker.part02.d.ts.map +1 -0
  104. package/dist/worker/worker.part02.js +121 -0
  105. package/dist/worker/worker.part02.js.map +1 -0
  106. package/dist/worker/worker.part03.d.ts +13 -0
  107. package/dist/worker/worker.part03.d.ts.map +1 -0
  108. package/dist/worker/worker.part03.js +106 -0
  109. package/dist/worker/worker.part03.js.map +1 -0
  110. package/package.json +3 -3
@@ -0,0 +1,4 @@
1
+ import type { ChalkInstance } from 'chalk';
2
+ import type { TokenValue } from '@flyingrobots/bijou';
3
+ export declare function createChalkTokenStyler(instance: ChalkInstance, ansiEnabled: boolean): (token: TokenValue, text: string) => string;
4
+ //# sourceMappingURL=chalk-token-styler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chalk-token-styler.d.ts","sourceRoot":"","sources":["../src/chalk-token-styler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAoFtD,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,OAAO,GACnB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAY7C"}
@@ -0,0 +1,79 @@
1
+ const UNDERLINE_VARIANT_SGR = {
2
+ 'curly-underline': '\x1b[4:3m',
3
+ 'dotted-underline': '\x1b[4:4m',
4
+ 'dashed-underline': '\x1b[4:5m',
5
+ };
6
+ const UNDERLINE_RESET = '\x1b[24m';
7
+ function applyModifiers(instance, modifiers) {
8
+ if (modifiers === undefined)
9
+ return instance;
10
+ let result = instance;
11
+ for (const modifier of modifiers) {
12
+ switch (modifier) {
13
+ case 'bold':
14
+ result = result.bold;
15
+ break;
16
+ case 'dim':
17
+ result = result.dim;
18
+ break;
19
+ case 'strikethrough':
20
+ result = result.strikethrough;
21
+ break;
22
+ case 'inverse':
23
+ result = result.inverse;
24
+ break;
25
+ case 'underline':
26
+ result = result.underline;
27
+ break;
28
+ case 'curly-underline':
29
+ case 'dotted-underline':
30
+ case 'dashed-underline':
31
+ break;
32
+ default: {
33
+ const exhaustive = modifier;
34
+ void exhaustive;
35
+ }
36
+ }
37
+ }
38
+ return result;
39
+ }
40
+ function applyUnderlineVariants(text, ansiEnabled, modifiers) {
41
+ if (!ansiEnabled || modifiers === undefined)
42
+ return text;
43
+ let result = text;
44
+ for (const modifier of modifiers) {
45
+ const sgr = UNDERLINE_VARIANT_SGR[modifier];
46
+ if (sgr !== undefined) {
47
+ result = sgr + result + UNDERLINE_RESET;
48
+ }
49
+ }
50
+ return result;
51
+ }
52
+ function styleCacheKey(token) {
53
+ return [token.hex, token.bg, token.modifiers?.join(',') ?? ''].join('|');
54
+ }
55
+ function compileStyled(instance, ansiEnabled, token) {
56
+ const base = applyModifiers(token.hex ? instance.hex(token.hex) : instance, token.modifiers);
57
+ const background = token.bg ? instance.bgHex(token.bg) : null;
58
+ const modifiers = token.modifiers;
59
+ return (text) => {
60
+ let result = base(text);
61
+ result = applyUnderlineVariants(result, ansiEnabled, modifiers);
62
+ return background === null ? result : background(result);
63
+ };
64
+ }
65
+ export function createChalkTokenStyler(instance, ansiEnabled) {
66
+ const styledCache = new Map();
67
+ return (token, text) => {
68
+ if (!ansiEnabled)
69
+ return text;
70
+ const key = styleCacheKey(token);
71
+ let styler = styledCache.get(key);
72
+ if (styler === undefined) {
73
+ styler = compileStyled(instance, ansiEnabled, token);
74
+ styledCache.set(key, styler);
75
+ }
76
+ return styler(text);
77
+ };
78
+ }
79
+ //# sourceMappingURL=chalk-token-styler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chalk-token-styler.js","sourceRoot":"","sources":["../src/chalk-token-styler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { GifEncoderOptions, GifEncoderStream, PaletteColor, PaletteFormat, QuantizeOptions } from 'gifenc';
2
+ export declare function createGifEncoder(options?: GifEncoderOptions): GifEncoderStream;
3
+ export declare function applyGifPalette(rgba: Uint8Array | Uint8ClampedArray, palette: PaletteColor[], format?: PaletteFormat): Uint8Array;
4
+ export declare function quantizeColors(rgba: Uint8Array | Uint8ClampedArray, maxColors: number, options?: QuantizeOptions): PaletteColor[];
5
+ //# sourceMappingURL=gifenc-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gifenc-runtime.d.ts","sourceRoot":"","sources":["../src/gifenc-runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,eAAe,EAChB,MAAM,QAAQ,CAAC;AAyChB,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,gBAAgB,CAE9E;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,GAAG,iBAAiB,EACpC,OAAO,EAAE,YAAY,EAAE,EACvB,MAAM,CAAC,EAAE,aAAa,GACrB,UAAU,CAEZ;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,UAAU,GAAG,iBAAiB,EACpC,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,eAAe,GACxB,YAAY,EAAE,CAEhB"}
@@ -0,0 +1,30 @@
1
+ import * as gifencModule from 'gifenc';
2
+ function isRecord(value) {
3
+ return typeof value === 'object' && value !== null;
4
+ }
5
+ function isGifencRuntime(value) {
6
+ return (isRecord(value)
7
+ && typeof value['GIFEncoder'] === 'function'
8
+ && typeof value['applyPalette'] === 'function'
9
+ && typeof value['quantize'] === 'function');
10
+ }
11
+ function resolveGifencRuntime(value) {
12
+ if (isGifencRuntime(value)) {
13
+ return value;
14
+ }
15
+ if (isRecord(value) && isGifencRuntime(value['default'])) {
16
+ return value['default'];
17
+ }
18
+ throw new Error('Invalid gifenc module shape');
19
+ }
20
+ const GIFENC = resolveGifencRuntime(gifencModule);
21
+ export function createGifEncoder(options) {
22
+ return GIFENC.GIFEncoder(options);
23
+ }
24
+ export function applyGifPalette(rgba, palette, format) {
25
+ return GIFENC.applyPalette(rgba, palette, format);
26
+ }
27
+ export function quantizeColors(rgba, maxColors, options) {
28
+ return GIFENC.quantize(rgba, maxColors, options);
29
+ }
30
+ //# sourceMappingURL=gifenc-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gifenc-runtime.js","sourceRoot":"","sources":["../src/gifenc-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,QAAQ,CAAC;AAuBvC,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC;WACZ,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,UAAU;WACzC,OAAO,KAAK,CAAC,cAAc,CAAC,KAAK,UAAU;WAC3C,OAAO,KAAK,CAAC,UAAU,CAAC,KAAK,UAAU,CAC3C,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QACzD,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,MAAM,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;AAElD,MAAM,UAAU,gBAAgB,CAAC,OAA2B;IAC1D,OAAO,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,IAAoC,EACpC,OAAuB,EACvB,MAAsB;IAEtB,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,IAAoC,EACpC,SAAiB,EACjB,OAAyB;IAEzB,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC"}
package/dist/index.d.ts CHANGED
@@ -8,14 +8,17 @@
8
8
  *
9
9
  * @packageDocumentation
10
10
  */
11
- import type { BijouContext, Theme, ColorScheme } from '@flyingrobots/bijou';
11
+ import type { BijouContext } from '@flyingrobots/bijou';
12
12
  import { type App, type RunOptions } from '@flyingrobots/bijou-tui';
13
+ import type { CreateNodeContextOptions, InitDefaultContextOptions } from './options.js';
13
14
  /** Re-export the Node.js {@link RuntimePort} factory. */
14
15
  export { nodeRuntime, detectRefreshRate } from './runtime.js';
15
16
  /** Re-export the Node.js {@link IOPort} factory. */
16
- export { nodeIO, scopedNodeIO, ScopedNodeIOError, type ScopedNodeIO, type ScopedNodeIOOptions, } from './io.js';
17
+ export { nodeIO, scopedNodeIO, ScopedNodeIOError, type ScopedNodeIO, type ScopedNodeIOOptions, type NodeIOOptions, type NodeWriteStream, } from './io.js';
17
18
  /** Re-export the Chalk-based {@link StylePort} factory and its options type. */
18
19
  export { chalkStyle, type ChalkStyleOptions } from './style.js';
20
+ export type { CreateNodeContextOptions, InitDefaultContextOptions, NodeThemeEntry, NodeThemeMode, NodeThemeOptions, } from './options.js';
21
+ export { createNodeContext } from './node-context.js';
19
22
  /** Re-export Worker utilities for multi-threaded applications. */
20
23
  export { isBijouWorker, runInWorker, sendToMain, startWorkerApp, type RunWorkerOptions } from './worker/worker.js';
21
24
  export { recordDemoGif, rasterizeSurface, writeSurfaceGif, type NativeDemoSpec, type RecorderResult, type SurfaceGifOptions, } from './recorder.js';
@@ -34,61 +37,10 @@ export declare class BijouBootstrapError extends Error {
34
37
  */
35
38
  constructor(reason: string, hint: string, cause?: unknown);
36
39
  }
37
- /** Theme-selection options for Node-hosted context creation. */
38
- export interface NodeThemeEntry {
39
- /** Stable selection id for env/config or app-owned override state. */
40
- readonly id: string;
41
- /** Theme value associated with this entry. */
42
- readonly theme: Theme;
43
- /**
44
- * Optional light/dark hint used by automatic selection.
45
- *
46
- * When omitted, `id === "light"` and `id === "dark"` are treated as the
47
- * corresponding scheme.
48
- */
49
- readonly scheme?: ColorScheme;
50
- }
51
- /** Host-level theme mode for automatic selection. */
52
- export type NodeThemeMode = 'auto' | ColorScheme;
53
- /** Theme-selection options for Node-hosted context creation. */
54
- export interface NodeThemeOptions {
55
- /**
56
- * Explicit fallback theme object to use for this host context.
57
- *
58
- * This wins whenever the selected env var does not point at a known preset or
59
- * a valid DTCG JSON file.
60
- */
61
- theme?: Theme;
62
- /** Named preset themes available to env-var selection. */
63
- presets?: Record<string, Theme>;
64
- /** Environment variable name that selects a preset or JSON theme path. */
65
- envVar?: string;
66
- /** Named theme entries available for auto-selection or app-owned overrides. */
67
- themes?: readonly NodeThemeEntry[];
68
- /** Automatic or forced light/dark selection mode for `themes`. */
69
- themeMode?: NodeThemeMode;
70
- /** Explicit theme-entry id override that wins over env-driven selection. */
71
- themeOverride?: string;
72
- }
73
- /** Options for {@link createNodeContext}. */
74
- export type CreateNodeContextOptions = NodeThemeOptions;
75
- /** Options for {@link initDefaultContext}. */
76
- export type InitDefaultContextOptions = NodeThemeOptions;
77
40
  /** Options for {@link startApp}. */
78
- export type StartAppOptions<M = unknown> = RunOptions<M> & NodeThemeOptions;
41
+ export type StartAppOptions<M = unknown> = RunOptions<M> & CreateNodeContextOptions;
79
42
  /** Test-only helper that restores the Node ambient-context initializer after resets. */
80
43
  export declare function _registerDefaultContextInitializerForTesting(): void;
81
- /**
82
- * Create a {@link BijouContext} wired to Node.js adapters.
83
- *
84
- * Assembles {@link nodeRuntime}, {@link nodeIO}, and {@link chalkStyle}
85
- * into a single context via `createBijou`. Automatically respects the
86
- * `NO_COLOR` environment variable by passing it through to the style
87
- * adapter.
88
- *
89
- * @returns A fresh {@link BijouContext} backed by the current Node.js process.
90
- */
91
- export declare function createNodeContext(options?: CreateNodeContextOptions): BijouContext;
92
44
  /**
93
45
  * Reset the initialization guard.
94
46
  *
@@ -100,8 +52,7 @@ export declare function _resetInitializedForTesting(): void;
100
52
  * Initialize and register the global default {@link BijouContext}.
101
53
  *
102
54
  * On the first call, creates a Node.js context via {@link createNodeContext}
103
- * and registers it with `setDefaultContext` so that bijou components
104
- * omitting the optional `ctx` parameter automatically use it.
55
+ * and registers it with `setDefaultContext` for ambient `ctx` use.
105
56
  *
106
57
  * Subsequent calls return a fresh (unregistered) context without
107
58
  * overwriting the global default.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAMxD,OAAO,EAAO,KAAK,GAAG,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAEzE,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,cAAc,CAAC;AAEtB,yDAAyD;AACzD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC9D,oDAAoD;AACpD,OAAO,EACL,MAAM,EACN,YAAY,EACZ,iBAAiB,EACjB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,eAAe,GACrB,MAAM,SAAS,CAAC;AACjB,gFAAgF;AAChF,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAChE,YAAY,EACV,wBAAwB,EACxB,yBAAyB,EACzB,cAAc,EACd,aAAa,EACb,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,kEAAkE;AAClE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACnH,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAC;AAEvB,iEAAiE;AACjE,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1D,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhC;;;;OAIG;gBACS,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAS1D;AAED,oCAAoC;AACpC,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,wBAAwB,CAAC;AAUpF,wFAAwF;AACxF,wBAAgB,4CAA4C,IAAI,IAAI,CAEnE;AAUD;;;;;GAKG;AACH,wBAAgB,2BAA2B,IAAI,IAAI,CAElD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,yBAA8B,GAAG,YAAY,CA8CxF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,CAAC,EACrC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAClB,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAC3B,OAAO,CAAC,IAAI,CAAC,CA8Cf"}
package/dist/index.js CHANGED
@@ -8,21 +8,19 @@
8
8
  *
9
9
  * @packageDocumentation
10
10
  */
11
- import { createBijou, detectColorScheme, resolveSafeCtx, setDefaultContext, setDefaultContextInitializer, } from '@flyingrobots/bijou';
11
+ import { resolveSafeCtx, setDefaultContext, setDefaultContextInitializer, } from '@flyingrobots/bijou';
12
12
  import { run } from '@flyingrobots/bijou-tui';
13
- import { nodeRuntime } from './runtime.js';
14
- import { nodeIO } from './io.js';
15
- import { chalkStyle } from './style.js';
13
+ import { createNodeContext } from './node-context.js';
16
14
  /** Re-export the Node.js {@link RuntimePort} factory. */
17
15
  export { nodeRuntime, detectRefreshRate } from './runtime.js';
18
16
  /** Re-export the Node.js {@link IOPort} factory. */
19
17
  export { nodeIO, scopedNodeIO, ScopedNodeIOError, } from './io.js';
20
18
  /** Re-export the Chalk-based {@link StylePort} factory and its options type. */
21
19
  export { chalkStyle } from './style.js';
20
+ export { createNodeContext } from './node-context.js';
22
21
  /** Re-export Worker utilities for multi-threaded applications. */
23
22
  export { isBijouWorker, runInWorker, sendToMain, startWorkerApp } from './worker/worker.js';
24
23
  export { recordDemoGif, rasterizeSurface, writeSurfaceGif, } from './recorder.js';
25
- const DISABLED_THEME_ENV_VAR = '__BIJOU_THEME_DISABLED__';
26
24
  /** Structured bootstrap failure for Node host initialization. */
27
25
  export class BijouBootstrapError extends Error {
28
26
  /** Human-readable reason for the failure. */
@@ -47,115 +45,12 @@ export class BijouBootstrapError extends Error {
47
45
  }
48
46
  }
49
47
  function isSelfRunningApp(app) {
50
- return typeof app.run === 'function';
51
- }
52
- function inferThemeEntryScheme(entry) {
53
- if (entry.scheme !== undefined)
54
- return entry.scheme;
55
- if (entry.id === 'light' || entry.id === 'dark')
56
- return entry.id;
57
- return undefined;
58
- }
59
- function mergeNodeThemePresets(options) {
60
- if (options.themes === undefined || options.themes.length === 0) {
61
- return options.presets;
62
- }
63
- const merged = { ...(options.presets ?? {}) };
64
- for (const entry of options.themes) {
65
- merged[entry.id] = entry.theme;
66
- }
67
- return merged;
68
- }
69
- function resolveRequestedColorScheme(runtime, options) {
70
- const mode = options.themeMode ?? 'auto';
71
- return mode === 'auto' ? detectColorScheme(runtime) : mode;
72
- }
73
- function resolveAutomaticThemeEntry(options, targetScheme) {
74
- if (options.themes === undefined || options.themes.length === 0) {
75
- return undefined;
76
- }
77
- const byScheme = options.themes.find((entry) => inferThemeEntryScheme(entry) === targetScheme);
78
- if (byScheme !== undefined)
79
- return byScheme;
80
- const byId = options.themes.find((entry) => entry.id === targetScheme);
81
- if (byId !== undefined)
82
- return byId;
83
- return options.themes[0];
84
- }
85
- function resolveNodeThemeSelection(runtime, options) {
86
- const colorScheme = resolveRequestedColorScheme(runtime, options);
87
- const presets = mergeNodeThemePresets(options);
88
- const envVar = options.envVar;
89
- if (options.themeOverride !== undefined) {
90
- const match = options.themes?.find((entry) => entry.id === options.themeOverride);
91
- if (match !== undefined) {
92
- return {
93
- fallbackTheme: match.theme,
94
- colorScheme: inferThemeEntryScheme(match) ?? colorScheme,
95
- envVar: DISABLED_THEME_ENV_VAR,
96
- presets,
97
- };
98
- }
99
- }
100
- const selectionEnvVar = envVar ?? 'BIJOU_THEME';
101
- const envSelection = runtime.env(selectionEnvVar);
102
- if (envSelection !== undefined) {
103
- const envThemeEntry = options.themes?.find((entry) => entry.id === envSelection);
104
- if (envThemeEntry !== undefined) {
105
- return {
106
- fallbackTheme: envThemeEntry.theme,
107
- colorScheme: inferThemeEntryScheme(envThemeEntry) ?? colorScheme,
108
- envVar: DISABLED_THEME_ENV_VAR,
109
- presets,
110
- };
111
- }
112
- return {
113
- fallbackTheme: options.theme ?? resolveAutomaticThemeEntry(options, colorScheme)?.theme,
114
- colorScheme,
115
- envVar,
116
- presets,
117
- };
118
- }
119
- const automaticThemeEntry = resolveAutomaticThemeEntry(options, colorScheme);
120
- return {
121
- fallbackTheme: automaticThemeEntry?.theme ?? options.theme,
122
- colorScheme: automaticThemeEntry != null
123
- ? (inferThemeEntryScheme(automaticThemeEntry) ?? colorScheme)
124
- : colorScheme,
125
- envVar,
126
- presets,
127
- };
48
+ return 'run' in app && typeof app.run === 'function';
128
49
  }
129
50
  /** Test-only helper that restores the Node ambient-context initializer after resets. */
130
51
  export function _registerDefaultContextInitializerForTesting() {
131
52
  setDefaultContextInitializer(() => createNodeContext());
132
53
  }
133
- /**
134
- * Create a {@link BijouContext} wired to Node.js adapters.
135
- *
136
- * Assembles {@link nodeRuntime}, {@link nodeIO}, and {@link chalkStyle}
137
- * into a single context via `createBijou`. Automatically respects the
138
- * `NO_COLOR` environment variable by passing it through to the style
139
- * adapter.
140
- *
141
- * @returns A fresh {@link BijouContext} backed by the current Node.js process.
142
- */
143
- export function createNodeContext(options = {}) {
144
- const runtime = nodeRuntime();
145
- const noColor = runtime.env('NO_COLOR') !== undefined;
146
- const selection = resolveNodeThemeSelection(runtime, options);
147
- // Force level 3 (truecolor) if NO_COLOR is not set,
148
- // as the user is explicitly requesting a rich dashboard experience.
149
- return createBijou({
150
- runtime,
151
- io: nodeIO(),
152
- style: chalkStyle({ noColor, level: noColor ? 0 : 3 }),
153
- theme: selection.fallbackTheme,
154
- presets: selection.presets,
155
- envVar: selection.envVar,
156
- colorScheme: selection.colorScheme,
157
- });
158
- }
159
54
  _registerDefaultContextInitializerForTesting();
160
55
  /**
161
56
  * Guard flag ensuring {@link initDefaultContext} only registers the global
@@ -175,8 +70,7 @@ export function _resetInitializedForTesting() {
175
70
  * Initialize and register the global default {@link BijouContext}.
176
71
  *
177
72
  * On the first call, creates a Node.js context via {@link createNodeContext}
178
- * and registers it with `setDefaultContext` so that bijou components
179
- * omitting the optional `ctx` parameter automatically use it.
73
+ * and registers it with `setDefaultContext` for ambient `ctx` use.
180
74
  *
181
75
  * Subsequent calls return a fresh (unregistered) context without
182
76
  * overwriting the global default.
@@ -191,13 +85,13 @@ export function initDefaultContext(options = {}) {
191
85
  throw new BijouBootstrapError('stdout reported zero columns/rows', 'stdout is not a TTY — use pipe mode or redirect to a file, or run in a real terminal.');
192
86
  }
193
87
  try {
194
- const hasExplicitThemeSelection = options.theme !== undefined
88
+ const hasExplicitOptions = options.theme !== undefined
195
89
  || options.presets !== undefined
196
90
  || options.envVar !== undefined
197
91
  || options.themes !== undefined
198
92
  || options.themeMode !== undefined
199
- || options.themeOverride !== undefined;
200
- if (!initialized && !hasExplicitThemeSelection) {
93
+ || options.themeOverride !== undefined || options.io !== undefined || options.nodeIO !== undefined;
94
+ if (!initialized && !hasExplicitOptions) {
201
95
  const existing = resolveSafeCtx();
202
96
  if (existing != null) {
203
97
  initialized = true;
@@ -238,7 +132,7 @@ export function initDefaultContext(options = {}) {
238
132
  * @param options - Runtime options forwarded to {@link run}.
239
133
  */
240
134
  export async function startApp(app, options) {
241
- const { ctx: explicitCtx, theme, presets, envVar, themes, themeMode, themeOverride, ...runOptions } = options ?? {};
135
+ const { ctx: explicitCtx, theme, presets, envVar, themes, themeMode, themeOverride, io: ioOverride, nodeIO: nodeIOOptions, ...runOptions } = options ?? {};
242
136
  let ctx = explicitCtx;
243
137
  if (!ctx) {
244
138
  if (theme !== undefined
@@ -246,8 +140,19 @@ export async function startApp(app, options) {
246
140
  || envVar !== undefined
247
141
  || themes !== undefined
248
142
  || themeMode !== undefined
249
- || themeOverride !== undefined) {
250
- ctx = createNodeContext({ theme, presets, envVar, themes, themeMode, themeOverride });
143
+ || themeOverride !== undefined
144
+ || ioOverride !== undefined
145
+ || nodeIOOptions !== undefined) {
146
+ ctx = createNodeContext({
147
+ theme,
148
+ presets,
149
+ envVar,
150
+ themes,
151
+ themeMode,
152
+ themeOverride,
153
+ io: ioOverride,
154
+ nodeIO: nodeIOOptions,
155
+ });
251
156
  setDefaultContext(ctx);
252
157
  initialized = true;
253
158
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { describe, it, expect, expectTypeOf, afterEach, beforeEach, vi } from 'vitest';
2
+ import { BijouBootstrapError, createNodeContext, initDefaultContext, startApp, type StartAppOptions, _resetInitializedForTesting, _registerDefaultContextInitializerForTesting } from './index.js';
3
+ import { getDefaultContext, setDefaultContext, stringToSurface, type Surface, type Theme } from '@flyingrobots/bijou';
4
+ import { _resetDefaultContextForTesting, createTestContext } from '@flyingrobots/bijou/adapters/test';
5
+ import { run, type App, type RunOptions } from '@flyingrobots/bijou-tui';
6
+ export { _registerDefaultContextInitializerForTesting, _resetDefaultContextForTesting, _resetInitializedForTesting, afterEach, beforeEach, BijouBootstrapError, createNodeContext, createTestContext, describe, expect, expectTypeOf, getDefaultContext, initDefaultContext, it, run, setDefaultContext, startApp, stringToSurface, vi, };
7
+ export type { App, RunOptions, StartAppOptions, Surface, Theme };
8
+ export { CUSTOM_ID_THEME_SET, DARK_THEME, LIGHT_THEME, TEST_THEME, TEST_THEME_SET, makeTheme, textSurface, withStdoutSize, } from './index.test-support.part01.js';
9
+ export type { Opts } from './index.test-support.part01.js';
10
+ export { LEGACY_TEST_THEME, UNUSED_THEME } from './index.test-support.part02.js';
11
+ //# sourceMappingURL=index.test-support.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test-support.d.ts","sourceRoot":"","sources":["../src/index.test-support.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEvF,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,EACR,KAAK,eAAe,EACpB,2BAA2B,EAC3B,4CAA4C,EAC7C,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEtH,OAAO,EAAE,8BAA8B,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtG,OAAO,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAEzE,OAAO,EACL,4CAA4C,EAC5C,8BAA8B,EAC9B,2BAA2B,EAC3B,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,EAAE,EACF,GAAG,EACH,iBAAiB,EACjB,QAAQ,EACR,eAAe,EACf,EAAE,GACH,CAAC;AAEF,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjE,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,SAAS,EACT,WAAW,EACX,cAAc,GACf,MAAM,gCAAgC,CAAC;AAExC,YAAY,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { describe, it, expect, expectTypeOf, afterEach, beforeEach, vi } from 'vitest';
2
+ import { BijouBootstrapError, createNodeContext, initDefaultContext, startApp, _resetInitializedForTesting, _registerDefaultContextInitializerForTesting, } from './index.js';
3
+ import { getDefaultContext, setDefaultContext, stringToSurface } from '@flyingrobots/bijou';
4
+ import { _resetDefaultContextForTesting, createTestContext } from '@flyingrobots/bijou/adapters/test';
5
+ import { run } from '@flyingrobots/bijou-tui';
6
+ export { _registerDefaultContextInitializerForTesting, _resetDefaultContextForTesting, _resetInitializedForTesting, afterEach, beforeEach, BijouBootstrapError, createNodeContext, createTestContext, describe, expect, expectTypeOf, getDefaultContext, initDefaultContext, it, run, setDefaultContext, startApp, stringToSurface, vi, };
7
+ export { CUSTOM_ID_THEME_SET, DARK_THEME, LIGHT_THEME, TEST_THEME, TEST_THEME_SET, makeTheme, textSurface, withStdoutSize, } from './index.test-support.part01.js';
8
+ export { LEGACY_TEST_THEME, UNUSED_THEME } from './index.test-support.part02.js';
9
+ //# sourceMappingURL=index.test-support.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test-support.js","sourceRoot":"","sources":["../src/index.test-support.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEvF,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,EAER,2BAA2B,EAC3B,4CAA4C,GAC7C,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAA4B,MAAM,qBAAqB,CAAC;AAEtH,OAAO,EAAE,8BAA8B,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtG,OAAO,EAAE,GAAG,EAA6B,MAAM,yBAAyB,CAAC;AAEzE,OAAO,EACL,4CAA4C,EAC5C,8BAA8B,EAC9B,2BAA2B,EAC3B,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,EAAE,EACF,GAAG,EACH,iBAAiB,EACjB,QAAQ,EACR,eAAe,EACf,EAAE,GACH,CAAC;AAIF,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,SAAS,EACT,WAAW,EACX,cAAc,GACf,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { StartAppOptions } from './index.js';
2
+ import type { Surface, Theme } from '@flyingrobots/bijou';
3
+ type Opts<M> = StartAppOptions<M>;
4
+ declare function textSurface(text: string): Surface;
5
+ declare function makeTheme(name: string, primaryHex: string, primaryBg: string, accentHex?: string): Theme;
6
+ declare const TEST_THEME: Theme;
7
+ declare const LIGHT_THEME: Theme;
8
+ declare const DARK_THEME: Theme;
9
+ declare const TEST_THEME_SET: readonly [{
10
+ readonly id: "light";
11
+ readonly theme: Theme<import("@flyingrobots/bijou").BaseStatusKey, import("@flyingrobots/bijou").BaseUiKey, import("@flyingrobots/bijou").BaseGradientKey>;
12
+ }, {
13
+ readonly id: "dark";
14
+ readonly theme: Theme<import("@flyingrobots/bijou").BaseStatusKey, import("@flyingrobots/bijou").BaseUiKey, import("@flyingrobots/bijou").BaseGradientKey>;
15
+ }];
16
+ declare const CUSTOM_ID_THEME_SET: readonly [{
17
+ readonly id: "sunrise";
18
+ readonly scheme: "light";
19
+ readonly theme: Theme<import("@flyingrobots/bijou").BaseStatusKey, import("@flyingrobots/bijou").BaseUiKey, import("@flyingrobots/bijou").BaseGradientKey>;
20
+ }, {
21
+ readonly id: "midnight";
22
+ readonly scheme: "dark";
23
+ readonly theme: Theme<import("@flyingrobots/bijou").BaseStatusKey, import("@flyingrobots/bijou").BaseUiKey, import("@flyingrobots/bijou").BaseGradientKey>;
24
+ }];
25
+ declare function withStdoutSize<T>(columns: number | undefined, rows: number | undefined, runTest: () => T): T;
26
+ export { CUSTOM_ID_THEME_SET, DARK_THEME, LIGHT_THEME, makeTheme, TEST_THEME, TEST_THEME_SET, textSurface, withStdoutSize, };
27
+ export type { Opts };
28
+ //# sourceMappingURL=index.test-support.part01.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test-support.part01.d.ts","sourceRoot":"","sources":["../src/index.test-support.part01.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE1D,KAAK,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;AAElC,iBAAS,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG1C;AAED,iBAAS,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,SAAY,GAAG,KAAK,CAyDpG;AAED,QAAA,MAAM,UAAU,EAAE,KAAqD,CAAC;AAExE,QAAA,MAAM,WAAW,EAAE,KAAiE,CAAC;AAErF,QAAA,MAAM,UAAU,EAAE,KAAgE,CAAC;AAEnF,QAAA,MAAM,cAAc;;;;;;EAGV,CAAC;AAEX,QAAA,MAAM,mBAAmB;;;;;;;;EAGf,CAAC;AAEX,iBAAS,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAWrG;AAED,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,WAAW,EACX,SAAS,EACT,UAAU,EACV,cAAc,EACd,WAAW,EACX,cAAc,GACf,CAAC;AAEF,YAAY,EAAE,IAAI,EAAE,CAAC"}
@@ -0,0 +1,89 @@
1
+ import { stringToSurface } from '@flyingrobots/bijou';
2
+ function textSurface(text) {
3
+ const lines = text.split('\n');
4
+ return stringToSurface(text, Math.max(1, ...lines.map((line) => line.length)), Math.max(1, lines.length));
5
+ }
6
+ function makeTheme(name, primaryHex, primaryBg, accentHex = '#c084fc') {
7
+ return {
8
+ name,
9
+ status: {
10
+ success: { hex: '#22c55e' },
11
+ error: { hex: '#ef4444' },
12
+ warning: { hex: '#f59e0b' },
13
+ info: { hex: '#38bdf8' },
14
+ pending: { hex: '#64748b', modifiers: ['dim'] },
15
+ active: { hex: '#38bdf8' },
16
+ muted: { hex: '#64748b', modifiers: ['dim', 'strikethrough'] },
17
+ },
18
+ semantic: {
19
+ success: { hex: '#22c55e' },
20
+ error: { hex: '#ef4444' },
21
+ warning: { hex: '#f59e0b' },
22
+ info: { hex: '#38bdf8' },
23
+ accent: { hex: accentHex },
24
+ muted: { hex: '#94a3b8', modifiers: ['dim'] },
25
+ primary: { hex: primaryHex, modifiers: ['bold'] },
26
+ },
27
+ gradient: {
28
+ brand: [
29
+ { pos: 0, color: [56, 189, 248] },
30
+ { pos: 1, color: [192, 132, 252] },
31
+ ],
32
+ progress: [
33
+ { pos: 0, color: [34, 197, 94] },
34
+ { pos: 1, color: [56, 189, 248] },
35
+ ],
36
+ },
37
+ border: {
38
+ primary: { hex: '#38bdf8' },
39
+ secondary: { hex: accentHex },
40
+ success: { hex: '#22c55e' },
41
+ warning: { hex: '#f59e0b' },
42
+ error: { hex: '#ef4444' },
43
+ muted: { hex: '#64748b' },
44
+ },
45
+ ui: {
46
+ cursor: { hex: '#38bdf8' },
47
+ focusGutter: { hex: accentHex },
48
+ scrollThumb: { hex: '#38bdf8' },
49
+ scrollTrack: { hex: '#334155' },
50
+ sectionHeader: { hex: primaryHex, modifiers: ['bold'] },
51
+ logo: { hex: '#38bdf8' },
52
+ tableHeader: { hex: primaryHex },
53
+ trackEmpty: { hex: '#1e293b' },
54
+ },
55
+ surface: {
56
+ primary: { hex: primaryHex, bg: primaryBg },
57
+ secondary: { hex: '#e2e8f0', bg: '#1e293b' },
58
+ elevated: { hex: primaryHex, bg: '#334155' },
59
+ overlay: { hex: primaryHex, bg: primaryBg },
60
+ muted: { hex: '#94a3b8', bg: '#020617' },
61
+ },
62
+ };
63
+ }
64
+ const TEST_THEME = makeTheme('test-theme', '#f8fafc', '#0f172a');
65
+ const LIGHT_THEME = makeTheme('light-theme', '#0f172a', '#f8fafc', '#2563eb');
66
+ const DARK_THEME = makeTheme('dark-theme', '#f8fafc', '#020617', '#c084fc');
67
+ const TEST_THEME_SET = [
68
+ { id: 'light', theme: LIGHT_THEME },
69
+ { id: 'dark', theme: DARK_THEME },
70
+ ];
71
+ const CUSTOM_ID_THEME_SET = [
72
+ { id: 'sunrise', scheme: 'light', theme: LIGHT_THEME },
73
+ { id: 'midnight', scheme: 'dark', theme: DARK_THEME },
74
+ ];
75
+ function withStdoutSize(columns, rows, runTest) {
76
+ const originalColumns = process.stdout.columns;
77
+ const originalRows = process.stdout.rows;
78
+ Object.defineProperty(process.stdout, 'columns', { configurable: true, value: columns });
79
+ Object.defineProperty(process.stdout, 'rows', { configurable: true, value: rows });
80
+ try {
81
+ return runTest();
82
+ }
83
+ finally {
84
+ Object.defineProperty(process.stdout, 'columns', { configurable: true, value: originalColumns });
85
+ Object.defineProperty(process.stdout, 'rows', { configurable: true, value: originalRows });
86
+ }
87
+ }
88
+ export { CUSTOM_ID_THEME_SET, DARK_THEME, LIGHT_THEME, makeTheme, TEST_THEME, TEST_THEME_SET, textSurface, withStdoutSize, };
89
+ //# sourceMappingURL=index.test-support.part01.js.map