@zakmandhro/bunti 0.2.1 → 0.4.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 (121) hide show
  1. package/README.md +6 -5
  2. package/dist/cli.d.ts +2 -2
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +33 -9
  5. package/dist/cli.js.map +1 -1
  6. package/dist/colors.d.ts +2 -2
  7. package/dist/colors.js +2 -2
  8. package/dist/components/Box.d.ts +1 -1
  9. package/dist/components/Button.d.ts +1 -1
  10. package/dist/components/Button.js +2 -2
  11. package/dist/components/Card.d.ts +1 -1
  12. package/dist/components/Card.js +3 -3
  13. package/dist/components/Header.d.ts +1 -1
  14. package/dist/components/Header.js +2 -2
  15. package/dist/components/Input.d.ts +2 -2
  16. package/dist/components/Input.js +1 -1
  17. package/dist/components/Link.d.ts +2 -2
  18. package/dist/components/Link.js +2 -2
  19. package/dist/components/Modal.d.ts +1 -1
  20. package/dist/components/Modal.js +2 -2
  21. package/dist/components/Progress.d.ts +2 -2
  22. package/dist/components/Progress.js +2 -2
  23. package/dist/components/Spinner.d.ts +2 -2
  24. package/dist/components/index.d.ts +9 -9
  25. package/dist/components/index.js +9 -9
  26. package/dist/data/nf-glyphs.d.ts +2 -2
  27. package/dist/demo-registry.d.ts.map +1 -1
  28. package/dist/demo-registry.js +6 -1
  29. package/dist/demo-registry.js.map +1 -1
  30. package/dist/demos/2048.js +559 -0
  31. package/dist/demos/2048.ts +1 -1
  32. package/dist/demos/animation.js +177 -0
  33. package/dist/demos/animation.ts +1 -1
  34. package/dist/demos/demo-layout.js +85 -0
  35. package/dist/demos/demo-layout.ts +6 -1
  36. package/dist/demos/engine.js +244 -0
  37. package/dist/demos/interaction.js +74 -0
  38. package/dist/demos/interaction.ts +1 -1
  39. package/dist/demos/login.js +175 -0
  40. package/dist/demos/login.ts +1 -1
  41. package/dist/demos/mission-control.js +427 -0
  42. package/dist/demos/platformer-physics.js +122 -0
  43. package/dist/demos/platformer-physics.ts +284 -0
  44. package/dist/demos/platformer.js +519 -0
  45. package/dist/demos/platformer.ts +761 -0
  46. package/dist/demos/showcase.js +181 -0
  47. package/dist/demos/showcase.ts +1 -1
  48. package/dist/detect.d.ts +24 -7
  49. package/dist/detect.d.ts.map +1 -1
  50. package/dist/detect.js +73 -12
  51. package/dist/detect.js.map +1 -1
  52. package/dist/diagnostics.d.ts +8 -2
  53. package/dist/diagnostics.d.ts.map +1 -1
  54. package/dist/diagnostics.js +11 -0
  55. package/dist/diagnostics.js.map +1 -1
  56. package/dist/dsl/context.d.ts +2 -2
  57. package/dist/dsl/context.d.ts.map +1 -1
  58. package/dist/dsl/context.js +14 -14
  59. package/dist/dsl/context.js.map +1 -1
  60. package/dist/dsl/hooks.d.ts +2 -2
  61. package/dist/dsl/hooks.js +1 -1
  62. package/dist/dsl/interaction.d.ts +3 -3
  63. package/dist/dsl/layers.d.ts +2 -2
  64. package/dist/dsl/motion.d.ts +2 -2
  65. package/dist/dsl/motion.js +2 -2
  66. package/dist/dsl/render.d.ts +2 -2
  67. package/dist/dsl/render.d.ts.map +1 -1
  68. package/dist/dsl/render.js +4 -8
  69. package/dist/dsl/render.js.map +1 -1
  70. package/dist/dsl/types.d.ts +11 -10
  71. package/dist/dsl/types.d.ts.map +1 -1
  72. package/dist/dsl/types.js.map +1 -1
  73. package/dist/dsl.d.ts +4 -4
  74. package/dist/dsl.js +3 -3
  75. package/dist/easing.d.ts +1 -1
  76. package/dist/geometry.d.ts +1 -1
  77. package/dist/geometry.js +1 -1
  78. package/dist/icons-full.d.ts +2 -2
  79. package/dist/icons-full.js +3 -3
  80. package/dist/icons.d.ts +4 -4
  81. package/dist/icons.js +3 -3
  82. package/dist/index.d.ts +45 -36
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +29 -24
  85. package/dist/index.js.map +1 -1
  86. package/dist/layout.d.ts +18 -6
  87. package/dist/layout.d.ts.map +1 -1
  88. package/dist/layout.js +15 -6
  89. package/dist/layout.js.map +1 -1
  90. package/dist/pixels.d.ts +51 -0
  91. package/dist/pixels.d.ts.map +1 -0
  92. package/dist/pixels.js +82 -0
  93. package/dist/pixels.js.map +1 -0
  94. package/dist/render.d.ts +1 -1
  95. package/dist/render.d.ts.map +1 -1
  96. package/dist/render.js +51 -11
  97. package/dist/render.js.map +1 -1
  98. package/dist/state.d.ts +4 -4
  99. package/dist/state.js +1 -1
  100. package/dist/theme.d.ts +2 -2
  101. package/dist/theme.js +1 -1
  102. package/dist/themes/catppuccin-mocha.d.ts +1 -1
  103. package/dist/themes/catppuccin-mocha.js +1 -1
  104. package/dist/themes/dracula.d.ts +1 -1
  105. package/dist/themes/dracula.js +1 -1
  106. package/dist/themes/github-light.d.ts +1 -1
  107. package/dist/themes/github-light.js +1 -1
  108. package/dist/themes/index.d.ts +7 -7
  109. package/dist/themes/index.js +6 -6
  110. package/dist/themes/nord.d.ts +1 -1
  111. package/dist/themes/nord.js +1 -1
  112. package/dist/themes/one-dark-pro.d.ts +1 -1
  113. package/dist/themes/one-dark-pro.js +1 -1
  114. package/dist/themes/tokyo-night.d.ts +1 -1
  115. package/dist/themes/tokyo-night.js +1 -1
  116. package/dist/utils.d.ts +6 -1
  117. package/dist/utils.d.ts.map +1 -1
  118. package/dist/utils.js +68 -3
  119. package/dist/utils.js.map +1 -1
  120. package/llms.txt +4 -2
  121. package/package.json +8 -4
@@ -0,0 +1,181 @@
1
+ import { Box } from "../components/index.js";
2
+ import {
3
+ ICON_MAP,
4
+ joinHorizontal,
5
+ box as renderBox,
6
+ splitRect,
7
+ truncate
8
+ } from "../index.js";
9
+ import { demo } from "./demo-layout.js";
10
+ const PALETTE = [
11
+ "bunti-blue",
12
+ "sky",
13
+ "plasma",
14
+ "rose",
15
+ "gold",
16
+ "mint",
17
+ "success",
18
+ "warning",
19
+ "error"
20
+ ];
21
+ const BORDERS = ["default", "rounded", "double", "dashed", "frame"];
22
+ demo("SHOWCASE", (ctx, bounds) => {
23
+ const { color, gradient, icon } = ctx;
24
+ const width = Math.min(bounds.w - 4, 104);
25
+ const shell = bounds.place({
26
+ y: 0,
27
+ width,
28
+ height: Math.min(bounds.h, 27)
29
+ });
30
+ const [left, right] = splitRect(shell, {
31
+ direction: "horizontal",
32
+ constraints: ["44%", "1fr"],
33
+ gap: 2
34
+ });
35
+ const [palette, layout] = splitRect(left, {
36
+ direction: "vertical",
37
+ constraints: [11, "1fr"],
38
+ gap: 1
39
+ });
40
+ const [frames, textLab, iconLab] = splitRect(right, {
41
+ direction: "vertical",
42
+ constraints: [8, 9, "1fr"],
43
+ gap: 1
44
+ });
45
+ Box(ctx, {
46
+ x: palette?.x,
47
+ y: palette?.y,
48
+ width: palette?.width,
49
+ height: palette?.height,
50
+ border: "rounded",
51
+ borderColor: "bunti-blue",
52
+ padding: [1, 2]
53
+ }, ({ text }) => {
54
+ text(color.fg("bunti-blue", color.bold(`COLOR SYSTEM
55
+ `)));
56
+ for (const [index, name] of PALETTE.entries()) {
57
+ if (index > 0 && index % 3 === 0)
58
+ text(`
59
+ `);
60
+ text(color.dim(name.padEnd(12)));
61
+ text(color.fg(name, "████"));
62
+ text(" ");
63
+ }
64
+ });
65
+ Box(ctx, {
66
+ x: layout?.x,
67
+ y: layout?.y,
68
+ width: layout?.width,
69
+ height: layout?.height,
70
+ border: "rounded",
71
+ borderColor: "mint",
72
+ padding: [1, 2]
73
+ }, ({ text }) => {
74
+ text(color.fg("mint", color.bold(`RECT LAYOUT
75
+
76
+ `)));
77
+ text(color.dim(`splitRect: fixed + percent + fill tracks
78
+
79
+ `));
80
+ const tracks = splitRect({ x: 0, y: 0, width: Math.max(1, (layout?.width ?? 8) - 6), height: 3 }, {
81
+ direction: "horizontal",
82
+ constraints: [8, "35%", "1fr"],
83
+ gap: 1
84
+ });
85
+ const blocks = tracks.map((track, index) => renderBox(color.fg("white", index === 0 ? "8 cols" : index === 1 ? "35%" : "fill"), {
86
+ width: track.width,
87
+ height: track.height,
88
+ border: "none",
89
+ bgColor: index === 0 ? "ocean" : index === 1 ? "nebula" : "plasma",
90
+ align: "center",
91
+ valign: "middle"
92
+ }));
93
+ text(joinHorizontal(...blocks));
94
+ text(`
95
+
96
+ `);
97
+ text(color.dim("Content stays inside the assigned Rect."));
98
+ });
99
+ Box(ctx, {
100
+ x: frames?.x,
101
+ y: frames?.y,
102
+ width: frames?.width,
103
+ height: frames?.height,
104
+ border: "rounded",
105
+ borderColor: "plasma",
106
+ padding: [1, 2]
107
+ }, ({ text }) => {
108
+ text(color.fg("plasma", color.bold(`BORDERS + DEPTH
109
+
110
+ `)));
111
+ const cells = splitRect({ x: 0, y: 3, width: Math.max(1, (frames?.width ?? 8) - 6), height: 3 }, {
112
+ direction: "horizontal",
113
+ constraints: BORDERS.map(() => "1fr"),
114
+ gap: 1
115
+ });
116
+ const blocks = BORDERS.map((border, index) => {
117
+ const cell = cells[index];
118
+ return renderBox(color.fg("silver", truncate(border, Math.max(1, cell.width - 2))), {
119
+ width: cell.width,
120
+ height: cell.height,
121
+ border,
122
+ borderColor: index % 2 === 0 ? "silver" : "gold",
123
+ align: "center",
124
+ valign: "middle"
125
+ });
126
+ });
127
+ text(joinHorizontal(...blocks));
128
+ });
129
+ Box(ctx, {
130
+ x: textLab?.x,
131
+ y: textLab?.y,
132
+ width: textLab?.width,
133
+ height: textLab?.height,
134
+ border: "rounded",
135
+ borderColor: "gold",
136
+ padding: [1, 2]
137
+ }, ({ text, box }) => {
138
+ text(color.fg("gold", color.bold(`TEXT + GRADIENTS
139
+
140
+ `)));
141
+ const bar = gradient({
142
+ colors: ["sky", "plasma", "rose", "gold", "mint"],
143
+ direction: "horizontal",
144
+ steps: Math.max(1, (textLab?.width ?? 8) - 6)
145
+ });
146
+ box({
147
+ width: "100%",
148
+ height: 1,
149
+ border: "none",
150
+ bgColor: bar
151
+ }, () => {});
152
+ text(`
153
+ `);
154
+ text(color.fg("silver", "Wrapped text respects ANSI colors and terminal width without escape damage."));
155
+ });
156
+ Box(ctx, {
157
+ x: iconLab?.x,
158
+ y: iconLab?.y,
159
+ width: iconLab?.width,
160
+ height: iconLab?.height,
161
+ border: "rounded",
162
+ borderColor: "silver",
163
+ padding: [1, 2]
164
+ }, ({ text, table }) => {
165
+ text(color.fg("silver", color.bold(`ICONS + TABLES
166
+
167
+ `)));
168
+ const rows = Object.keys(ICON_MAP).slice(0, 12).reduce((acc, name, index) => {
169
+ const row = Math.floor(index / 3);
170
+ acc[row] ??= [];
171
+ acc[row].push(`${icon(name)} ${color.dim(name)}`);
172
+ return acc;
173
+ }, []);
174
+ table(rows, {
175
+ width: Math.max(1, (iconLab?.width ?? 8) - 6),
176
+ border: "none",
177
+ padding: [0, 1],
178
+ columns: [{ align: "left" }, { align: "left" }, { align: "left" }]
179
+ });
180
+ });
181
+ });
@@ -6,7 +6,7 @@ import {
6
6
  splitRect,
7
7
  truncate,
8
8
  } from '../index.js';
9
- import { demo } from './demo-layout';
9
+ import { demo } from './demo-layout.js';
10
10
 
11
11
  const PALETTE = [
12
12
  'bunti-blue',
package/dist/detect.d.ts CHANGED
@@ -14,7 +14,7 @@ export interface TerminalCapabilities {
14
14
  color: boolean;
15
15
  }
16
16
  /** Terminal emulators Bunti identifies from environment variables. */
17
- export type TerminalApp = 'ghostty' | 'kitty' | 'wezterm' | 'iterm2' | 'alacritty' | 'vscode' | 'apple-terminal' | 'warp' | 'unknown';
17
+ export type TerminalApp = 'ghostty' | 'kitty' | 'wezterm' | 'iterm2' | 'alacritty' | 'vscode' | 'apple-terminal' | 'warp' | 'windows-terminal' | 'conhost' | 'mintty' | 'conemu' | 'jetbrains' | 'unknown';
18
18
  /**
19
19
  * Nerd Font availability policy:
20
20
  * - 'yes': the terminal embeds Nerd Font symbols (Ghostty >= 1.2).
@@ -47,6 +47,16 @@ export interface TerminalProfile {
47
47
  source: 'override' | 'env';
48
48
  }
49
49
  type Env = Record<string, string | undefined>;
50
+ /**
51
+ * The non-env facts detection depends on. Defaults to the running process;
52
+ * tests pass a fixed host so results don't vary with the machine.
53
+ */
54
+ export interface HostInfo {
55
+ /** `process.platform` value, e.g. 'win32', 'darwin', 'linux'. */
56
+ platform: string;
57
+ /** `os.release()` value; on Windows '10.0.<build>'. */
58
+ release: string;
59
+ }
50
60
  /**
51
61
  * Color capability tiers, from full 24-bit RGB down to no color at all.
52
62
  * `resolveColor()` quantizes RGB values to the active tier automatically.
@@ -65,9 +75,13 @@ export type ColorTier = 'truecolor' | '256' | '16' | 'mono';
65
75
  * TERM_PROGRAM=ghostty, TERM=xterm-ghostty), kitty (KITTY_WINDOW_ID,
66
76
  * TERM=xterm-kitty), WezTerm (WEZTERM_PANE, TERM_PROGRAM), iTerm2
67
77
  * (TERM_PROGRAM=iTerm.app, LC_TERMINAL=iTerm2), Alacritty
68
- * (ALACRITTY_WINDOW_ID, TERM=alacritty), VS Code, Apple Terminal, Warp.
78
+ * (ALACRITTY_WINDOW_ID, TERM=alacritty), VS Code, Apple Terminal, Warp,
79
+ * JetBrains (TERMINAL_EMULATOR), mintty (TERM_PROGRAM), ConEmu
80
+ * (ConEmuANSI/ConEmuPID), Windows Terminal (WT_SESSION).
81
+ * 4. On Windows with no signal and no TERM: Windows Terminal on Windows 11
82
+ * (default-terminal handoff sets no env), conhost on older builds.
69
83
  */
70
- export declare function identifyTerminal(env?: Env): TerminalProfile;
84
+ export declare function identifyTerminal(env?: Env, host?: HostInfo): TerminalProfile;
71
85
  /**
72
86
  * Pure tier detection from an environment map (defaults to process.env).
73
87
  *
@@ -76,14 +90,17 @@ export declare function identifyTerminal(env?: Env): TerminalProfile;
76
90
  * 2. TERM=dumb -> 'mono'.
77
91
  * 3. COLORTERM=truecolor|24bit -> 'truecolor'.
78
92
  * 4. An identified truecolor-capable app (ghostty, kitty, wezterm, iterm2,
79
- * alacritty, vscode, warp) -> 'truecolor'. This also catches TERM values
93
+ * alacritty, vscode, warp, windows-terminal, mintty, jetbrains) ->
94
+ * 'truecolor'. This also catches TERM values
80
95
  * like xterm-kitty that the legacy TERM families would misclassify.
81
96
  * 5. Known truecolor TERM_PROGRAM, or a truecolor/direct TERM -> 'truecolor'.
82
97
  * 6. TERM containing "256color" -> '256'.
83
98
  * 7. Legacy TERM families (xterm, screen, vt100, linux, ...) -> '16'.
84
- * 8. Otherwise -> 'truecolor' (optimistic: modern terminals rarely set hints).
99
+ * 8. Windows console with no TERM -> by build, matching Node's
100
+ * getColorDepth(): >= 14931 'truecolor', >= 10586 '256', else '16'.
101
+ * 9. Otherwise -> 'truecolor' (optimistic: modern terminals rarely set hints).
85
102
  */
86
- export declare function detectColorTier(env?: Env): ColorTier;
103
+ export declare function detectColorTier(env?: Env, host?: HostInfo): ColorTier;
87
104
  /**
88
105
  * Returns the active color tier. Detection runs lazily on first call and is
89
106
  * cached; `setColorTier()` overrides it (used by ScreenOptions.colorTier and
@@ -99,6 +116,6 @@ export declare function setColorTier(tier?: ColorTier): void;
99
116
  * Back-compat wrapper over `identifyTerminal()` returning the legacy
100
117
  * TerminalCapabilities shape. Prefer `identifyTerminal()` / `ctx.terminal`.
101
118
  */
102
- export declare function detectCapabilities(env?: Env): Promise<TerminalCapabilities>;
119
+ export declare function detectCapabilities(env?: Env, host?: HostInfo): Promise<TerminalCapabilities>;
103
120
  export {};
104
121
  //# sourceMappingURL=detect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../src/detect.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,2EAA2E;AAC3E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,sEAAsE;AACtE,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,OAAO,GACP,SAAS,GACT,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,gBAAgB,GAChB,MAAM,GACN,SAAS,CAAC;AAEd;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,IAAI,GAAG,aAAa,GAAG,YAAY,CAAC;AAEzE;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,uEAAuE;IACvE,GAAG,EAAE,WAAW,CAAC;IACjB,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAChC,wEAAwE;IACxE,SAAS,EAAE,OAAO,CAAC;IACnB,qEAAqE;IACrE,UAAU,EAAE,OAAO,CAAC;IACpB,kDAAkD;IAClD,QAAQ,EAAE,cAAc,CAAC;IACzB,qEAAqE;IACrE,MAAM,EAAE,UAAU,GAAG,KAAK,CAAC;CAC5B;AAED,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAE9C;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC;AAwH5D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,GAAE,GAAwB,GAC5B,eAAe,CAcjB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,GAAG,GAAE,GAAwB,GAAG,SAAS,CAwBxE;AAKD;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,SAAS,CAIrC;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,SAAS,QAG5C;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,GAAE,GAAwB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAQ/B"}
1
+ {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../src/detect.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,2EAA2E;AAC3E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,sEAAsE;AACtE,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,OAAO,GACP,SAAS,GACT,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,gBAAgB,GAChB,MAAM,GACN,kBAAkB,GAClB,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,SAAS,CAAC;AAEd;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,IAAI,GAAG,aAAa,GAAG,YAAY,CAAC;AAEzE;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,uEAAuE;IACvE,GAAG,EAAE,WAAW,CAAC;IACjB,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAChC,wEAAwE;IACxE,SAAS,EAAE,OAAO,CAAC;IACnB,qEAAqE;IACrE,UAAU,EAAE,OAAO,CAAC;IACpB,kDAAkD;IAClD,QAAQ,EAAE,cAAc,CAAC;IACzB,qEAAqE;IACrE,MAAM,EAAE,UAAU,GAAG,KAAK,CAAC;CAC5B;AAED,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAE9C;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;CACjB;AAiBD;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC;AAkJ5D;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,GAAE,GAAwB,EAC7B,IAAI,GAAE,QAAwB,GAC7B,eAAe,CAcjB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAC7B,GAAG,GAAE,GAAwB,EAC7B,IAAI,GAAE,QAAwB,GAC7B,SAAS,CA8BX;AAKD;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,SAAS,CAIrC;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,SAAS,QAG5C;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,GAAE,GAAwB,EAC7B,IAAI,GAAE,QAAwB,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CAQ/B"}
package/dist/detect.js CHANGED
@@ -6,6 +6,20 @@
6
6
  * truecolor, sync-output support, Nerd Font policy). No escape-sequence
7
7
  * probes are sent; async handshakes are deliberately deferred.
8
8
  */
9
+ import { release } from 'node:os';
10
+ const currentHost = () => ({
11
+ platform: process.platform,
12
+ release: release(),
13
+ });
14
+ /** Windows build number from `os.release()` ('10.0.26100' -> 26100), else 0. */
15
+ function windowsBuild(host) {
16
+ if (host.platform !== 'win32')
17
+ return 0;
18
+ const [major = 0, , build = 0] = host.release.split('.').map(Number);
19
+ return major >= 10 ? build : 0;
20
+ }
21
+ /** First Windows 11 build; Windows Terminal is the default console from 22H2. */
22
+ const WIN11_BUILD = 22000;
9
23
  /**
10
24
  * TERM_PROGRAM values known to render 24-bit color but NOT part of the
11
25
  * TerminalApp union (those are covered by app identification).
@@ -20,6 +34,9 @@ const TRUECOLOR_APPS = [
20
34
  'alacritty',
21
35
  'vscode',
22
36
  'warp',
37
+ 'windows-terminal',
38
+ 'mintty',
39
+ 'jetbrains',
23
40
  ];
24
41
  /** Apps with known synchronized-output (mode 2026) support. */
25
42
  const SYNC_OUTPUT_APPS = [
@@ -40,6 +57,11 @@ const NERD_FONT_POLICY = {
40
57
  alacritty: 'assumed-yes',
41
58
  vscode: 'assumed-no',
42
59
  'apple-terminal': 'assumed-no',
60
+ 'windows-terminal': 'assumed-no', // builtin glyphs cover box/powerline only
61
+ conhost: 'assumed-no',
62
+ mintty: 'assumed-no',
63
+ conemu: 'assumed-no',
64
+ jetbrains: 'assumed-no',
43
65
  unknown: 'assumed-no',
44
66
  };
45
67
  /** The TERM_PROGRAM value each app announces (when it sets one at all). */
@@ -50,6 +72,7 @@ const TERM_PROGRAM_BY_APP = {
50
72
  vscode: 'vscode',
51
73
  'apple-terminal': 'Apple_Terminal',
52
74
  warp: 'WarpTerminal',
75
+ mintty: 'mintty',
53
76
  };
54
77
  /**
55
78
  * Identifies the terminal app, version, and multiplexer from env vars.
@@ -57,7 +80,7 @@ const TERM_PROGRAM_BY_APP = {
57
80
  * checked alongside TERM_PROGRAM because they survive tmux/screen, whose
58
81
  * inner TERM rewrites would otherwise mask the outer emulator.
59
82
  */
60
- function detectApp(env) {
83
+ function detectApp(env, host) {
61
84
  const term = env.TERM || '';
62
85
  const termProgram = env.TERM_PROGRAM || '';
63
86
  const multiplexer = env.TMUX
@@ -94,6 +117,26 @@ function detectApp(env) {
94
117
  else if (termProgram === 'WarpTerminal') {
95
118
  app = 'warp';
96
119
  }
120
+ else if (env.TERMINAL_EMULATOR === 'JetBrains-JediTerm') {
121
+ app = 'jetbrains';
122
+ }
123
+ else if (termProgram === 'mintty') {
124
+ app = 'mintty';
125
+ }
126
+ else if (env.ConEmuANSI === 'ON' || env.ConEmuPID) {
127
+ app = 'conemu';
128
+ }
129
+ else if (env.WT_SESSION) {
130
+ // Checked after TERM_PROGRAM apps: WT_SESSION leaks into terminals
131
+ // launched from a Windows Terminal tab (e.g. VS Code).
132
+ app = 'windows-terminal';
133
+ }
134
+ else if (host.platform === 'win32' && !term) {
135
+ // No env signal at all. Windows Terminal sets no WT_SESSION when it
136
+ // takes over as the default console (microsoft/terminal#13006), which
137
+ // is the stock setup on Windows 11 22H2+; older builds open conhost.
138
+ app = windowsBuild(host) >= WIN11_BUILD ? 'windows-terminal' : 'conhost';
139
+ }
97
140
  let version;
98
141
  if (termProgram !== '' && termProgram === TERM_PROGRAM_BY_APP[app]) {
99
142
  version = env.TERM_PROGRAM_VERSION || undefined;
@@ -101,6 +144,9 @@ function detectApp(env) {
101
144
  else if (app === 'iterm2' && env.LC_TERMINAL === 'iTerm2') {
102
145
  version = env.LC_TERMINAL_VERSION || undefined;
103
146
  }
147
+ else if (app === 'conemu') {
148
+ version = env.ConEmuBuild || undefined;
149
+ }
104
150
  return { app, version, multiplexer };
105
151
  }
106
152
  /**
@@ -128,14 +174,18 @@ function nerdFontOverride(env) {
128
174
  * TERM_PROGRAM=ghostty, TERM=xterm-ghostty), kitty (KITTY_WINDOW_ID,
129
175
  * TERM=xterm-kitty), WezTerm (WEZTERM_PANE, TERM_PROGRAM), iTerm2
130
176
  * (TERM_PROGRAM=iTerm.app, LC_TERMINAL=iTerm2), Alacritty
131
- * (ALACRITTY_WINDOW_ID, TERM=alacritty), VS Code, Apple Terminal, Warp.
177
+ * (ALACRITTY_WINDOW_ID, TERM=alacritty), VS Code, Apple Terminal, Warp,
178
+ * JetBrains (TERMINAL_EMULATOR), mintty (TERM_PROGRAM), ConEmu
179
+ * (ConEmuANSI/ConEmuPID), Windows Terminal (WT_SESSION).
180
+ * 4. On Windows with no signal and no TERM: Windows Terminal on Windows 11
181
+ * (default-terminal handoff sets no env), conhost on older builds.
132
182
  */
133
- export function identifyTerminal(env = process.env) {
134
- const { app, version, multiplexer } = detectApp(env);
183
+ export function identifyTerminal(env = process.env, host = currentHost()) {
184
+ const { app, version, multiplexer } = detectApp(env, host);
135
185
  const override = nerdFontOverride(env);
136
186
  const profile = {
137
187
  app,
138
- truecolor: detectColorTier(env) === 'truecolor',
188
+ truecolor: detectColorTier(env, host) === 'truecolor',
139
189
  syncOutput: SYNC_OUTPUT_APPS.includes(app),
140
190
  nerdFont: override ?? NERD_FONT_POLICY[app],
141
191
  source: override !== undefined ? 'override' : 'env',
@@ -154,14 +204,17 @@ export function identifyTerminal(env = process.env) {
154
204
  * 2. TERM=dumb -> 'mono'.
155
205
  * 3. COLORTERM=truecolor|24bit -> 'truecolor'.
156
206
  * 4. An identified truecolor-capable app (ghostty, kitty, wezterm, iterm2,
157
- * alacritty, vscode, warp) -> 'truecolor'. This also catches TERM values
207
+ * alacritty, vscode, warp, windows-terminal, mintty, jetbrains) ->
208
+ * 'truecolor'. This also catches TERM values
158
209
  * like xterm-kitty that the legacy TERM families would misclassify.
159
210
  * 5. Known truecolor TERM_PROGRAM, or a truecolor/direct TERM -> 'truecolor'.
160
211
  * 6. TERM containing "256color" -> '256'.
161
212
  * 7. Legacy TERM families (xterm, screen, vt100, linux, ...) -> '16'.
162
- * 8. Otherwise -> 'truecolor' (optimistic: modern terminals rarely set hints).
213
+ * 8. Windows console with no TERM -> by build, matching Node's
214
+ * getColorDepth(): >= 14931 'truecolor', >= 10586 '256', else '16'.
215
+ * 9. Otherwise -> 'truecolor' (optimistic: modern terminals rarely set hints).
163
216
  */
164
- export function detectColorTier(env = process.env) {
217
+ export function detectColorTier(env = process.env, host = currentHost()) {
165
218
  if (env.NO_COLOR !== undefined && env.NO_COLOR !== '')
166
219
  return 'mono';
167
220
  const term = env.TERM || '';
@@ -170,7 +223,7 @@ export function detectColorTier(env = process.env) {
170
223
  const colorterm = (env.COLORTERM || '').toLowerCase();
171
224
  if (colorterm === 'truecolor' || colorterm === '24bit')
172
225
  return 'truecolor';
173
- const { app } = detectApp(env);
226
+ const { app } = detectApp(env, host);
174
227
  if (TRUECOLOR_APPS.includes(app))
175
228
  return 'truecolor';
176
229
  if (EXTRA_TRUECOLOR_PROGRAMS.includes(env.TERM_PROGRAM || '')) {
@@ -186,6 +239,14 @@ export function detectColorTier(env = process.env) {
186
239
  if (/^(xterm|screen|tmux|vt(1|2)\d\d|rxvt|linux|ansi|cygwin)/.test(term)) {
187
240
  return '16';
188
241
  }
242
+ if (host.platform === 'win32' && !term) {
243
+ const build = windowsBuild(host);
244
+ if (build >= 14931)
245
+ return 'truecolor';
246
+ if (build >= 10586)
247
+ return '256';
248
+ return '16';
249
+ }
189
250
  return 'truecolor';
190
251
  }
191
252
  let tierOverride;
@@ -215,13 +276,13 @@ export function setColorTier(tier) {
215
276
  * Back-compat wrapper over `identifyTerminal()` returning the legacy
216
277
  * TerminalCapabilities shape. Prefer `identifyTerminal()` / `ctx.terminal`.
217
278
  */
218
- export async function detectCapabilities(env = process.env) {
219
- const profile = identifyTerminal(env);
279
+ export async function detectCapabilities(env = process.env, host = currentHost()) {
280
+ const profile = identifyTerminal(env, host);
220
281
  return {
221
282
  nerdFont: profile.nerdFont === 'yes' || profile.nerdFont === 'assumed-yes',
222
283
  glyphProtocol: profile.app === 'ghostty',
223
284
  unicode: true,
224
- color: detectColorTier(env) !== 'mono',
285
+ color: detectColorTier(env, host) !== 'mono',
225
286
  };
226
287
  }
227
288
  //# sourceMappingURL=detect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"detect.js","sourceRoot":"","sources":["../src/detect.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA+DH;;;GAGG;AACH,MAAM,wBAAwB,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAE3D,qFAAqF;AACrF,MAAM,cAAc,GAA2B;IAC7C,SAAS;IACT,OAAO;IACP,SAAS;IACT,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,MAAM;CACP,CAAC;AAEF,+DAA+D;AAC/D,MAAM,gBAAgB,GAA2B;IAC/C,SAAS;IACT,OAAO;IACP,SAAS;IACT,QAAQ;IACR,WAAW;IACX,MAAM;CACP,CAAC;AAEF,gEAAgE;AAChE,MAAM,gBAAgB,GAAwC;IAC5D,OAAO,EAAE,KAAK,EAAE,qCAAqC;IACrD,KAAK,EAAE,aAAa;IACpB,OAAO,EAAE,aAAa;IACtB,MAAM,EAAE,aAAa;IACrB,IAAI,EAAE,aAAa;IACnB,SAAS,EAAE,aAAa;IACxB,MAAM,EAAE,YAAY;IACpB,gBAAgB,EAAE,YAAY;IAC9B,OAAO,EAAE,YAAY;CACtB,CAAC;AAEF,2EAA2E;AAC3E,MAAM,mBAAmB,GAAyC;IAChE,OAAO,EAAE,SAAS,EAAE,2CAA2C;IAC/D,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,QAAQ;IAChB,gBAAgB,EAAE,gBAAgB;IAClC,IAAI,EAAE,cAAc;CACrB,CAAC;AAQF;;;;;GAKG;AACH,SAAS,SAAS,CAAC,GAAQ;IACzB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IAC5B,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;IAE3C,MAAM,WAAW,GAA6B,GAAG,CAAC,IAAI;QACpD,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YACvB,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;gBACpC,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,SAAS,CAAC;IAElB,IAAI,GAAG,GAAgB,SAAS,CAAC;IACjC,IACE,GAAG,CAAC,qBAAqB;QACzB,WAAW,KAAK,SAAS;QACzB,IAAI,KAAK,eAAe,EACxB,CAAC;QACD,GAAG,GAAG,SAAS,CAAC;IAClB,CAAC;SAAM,IAAI,GAAG,CAAC,eAAe,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QACzD,GAAG,GAAG,OAAO,CAAC;IAChB,CAAC;SAAM,IAAI,GAAG,CAAC,YAAY,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QACzD,GAAG,GAAG,SAAS,CAAC;IAClB,CAAC;SAAM,IAAI,WAAW,KAAK,WAAW,IAAI,GAAG,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QACvE,GAAG,GAAG,QAAQ,CAAC;IACjB,CAAC;SAAM,IAAI,GAAG,CAAC,mBAAmB,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QAC3D,GAAG,GAAG,WAAW,CAAC;IACpB,CAAC;SAAM,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;QACpC,GAAG,GAAG,QAAQ,CAAC;IACjB,CAAC;SAAM,IAAI,WAAW,KAAK,gBAAgB,EAAE,CAAC;QAC5C,GAAG,GAAG,gBAAgB,CAAC;IACzB,CAAC;SAAM,IAAI,WAAW,KAAK,cAAc,EAAE,CAAC;QAC1C,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IAED,IAAI,OAA2B,CAAC;IAChC,IAAI,WAAW,KAAK,EAAE,IAAI,WAAW,KAAK,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;QACnE,OAAO,GAAG,GAAG,CAAC,oBAAoB,IAAI,SAAS,CAAC;IAClD,CAAC;SAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC5D,OAAO,GAAG,GAAG,CAAC,mBAAmB,IAAI,SAAS,CAAC;IACjD,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,GAAQ;IAChC,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ,CAAC;IAC9D,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACvE,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACtE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAW,OAAO,CAAC,GAAU;IAE7B,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAEvC,MAAM,OAAO,GAAoB;QAC/B,GAAG;QACH,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC,KAAK,WAAW;QAC/C,UAAU,EAAE,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC1C,QAAQ,EAAE,QAAQ,IAAI,gBAAgB,CAAC,GAAG,CAAC;QAC3C,MAAM,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK;KACpD,CAAC;IACF,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;IACrD,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;IACjE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,eAAe,CAAC,MAAW,OAAO,CAAC,GAAU;IAC3D,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC;IACrE,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IAC5B,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IAEnC,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACtD,IAAI,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,OAAO;QAAE,OAAO,WAAW,CAAC;IAC3E,MAAM,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,WAAW,CAAC;IACrD,IAAI,wBAAwB,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9D,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IACE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EACvB,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,yDAAyD,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACzE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,IAAI,YAAmC,CAAC;AACxC,IAAI,YAAmC,CAAC;AAExC;;;;GAIG;AACH,MAAM,UAAU,SAAS;IACvB,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC;IACpD,IAAI,YAAY,KAAK,SAAS;QAAE,YAAY,GAAG,eAAe,EAAE,CAAC;IACjE,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,IAAgB;IAC3C,YAAY,GAAG,IAAI,CAAC;IACpB,IAAI,IAAI,KAAK,SAAS;QAAE,YAAY,GAAG,SAAS,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAW,OAAO,CAAC,GAAU;IAE7B,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACtC,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,KAAK,IAAI,OAAO,CAAC,QAAQ,KAAK,aAAa;QAC1E,aAAa,EAAE,OAAO,CAAC,GAAG,KAAK,SAAS;QACxC,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,KAAK,MAAM;KACvC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"detect.js","sourceRoot":"","sources":["../src/detect.ts"],"names":[],"mappings":"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"}
@@ -10,8 +10,8 @@
10
10
  * The icon engine's unknown-name warnings flow through the same buffer via
11
11
  * registerHintFlusher(), so a session produces at most one hint block.
12
12
  */
13
- import type { Rect } from './geometry';
14
- import type { ScreenOptions } from './state';
13
+ import type { Rect } from './geometry.js';
14
+ import type { ScreenOptions } from './state.js';
15
15
  /** Lazily produces extra hint lines at flush time (used by the icon engine). */
16
16
  type HintFlusher = () => string[];
17
17
  /** True when dev hints are disabled (NODE_ENV=production or BUNTI_NO_HINTS=1). */
@@ -49,6 +49,12 @@ export declare function hintInputReadWithoutKeyboard(options: ScreenOptions): vo
49
49
  * piped stdin (CI, `echo | bun app.ts`, agent harnesses) is ignored.
50
50
  */
51
51
  export declare function hintKeyboardStdinNotTTY(keyboardRequested: boolean, stdinIsTTY: boolean): void;
52
+ /**
53
+ * Hint: mouse requested in the classic Windows console. conhost reports
54
+ * clicks as MOUSE_EVENT input records, which Node/Bun stdin never sees;
55
+ * SGR mouse sequences only arrive through ConPTY (Windows Terminal, VS Code).
56
+ */
57
+ export declare function hintMouseInConhost(mouseRequested: boolean, app: string | undefined): void;
52
58
  /**
53
59
  * Marks a frame boundary for keyless-hook tracking: compares the two most
54
60
  * recent completed frames and hints once when the positional hook count
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,gFAAgF;AAChF,KAAK,WAAW,GAAG,MAAM,MAAM,EAAE,CAAC;AAMlC,kFAAkF;AAClF,wBAAgB,eAAe,IAAI,OAAO,CAIzC;AASD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAIhD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAG9D;AAED,sEAAsE;AACtE,wBAAgB,UAAU,IAAI,MAAM,CAOnC;AAED,mEAAmE;AACnE,wBAAgB,UAAU,IAAI,IAAI,CAIjC;AAID,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAiBtE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,GAC3B,MAAM,GAAG,SAAS,CAqBpB;AAID;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAKzE;AAID;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,iBAAiB,EAAE,OAAO,EAC1B,UAAU,EAAE,OAAO,GAClB,IAAI,CAMN;AAgBD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAsBlD;AAED,oEAAoE;AACpE,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,UAAU,GAAG,UAAU,GAC5B,IAAI,CAKN;AAQD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,SAAS,GAAG,IAAI,CAwBpE;AAID,6DAA6D;AAC7D,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;AAED,uEAAuE;AACvE,wBAAgB,YAAY,IAAI,IAAI,CAGnC"}
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,gFAAgF;AAChF,KAAK,WAAW,GAAG,MAAM,MAAM,EAAE,CAAC;AAMlC,kFAAkF;AAClF,wBAAgB,eAAe,IAAI,OAAO,CAIzC;AASD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAIhD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAG9D;AAED,sEAAsE;AACtE,wBAAgB,UAAU,IAAI,MAAM,CAOnC;AAED,mEAAmE;AACnE,wBAAgB,UAAU,IAAI,IAAI,CAIjC;AAID,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAiBtE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,GAC3B,MAAM,GAAG,SAAS,CAqBpB;AAID;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAKzE;AAID;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,iBAAiB,EAAE,OAAO,EAC1B,UAAU,EAAE,OAAO,GAClB,IAAI,CAMN;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,cAAc,EAAE,OAAO,EACvB,GAAG,EAAE,MAAM,GAAG,SAAS,GACtB,IAAI,CAMN;AAgBD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAsBlD;AAED,oEAAoE;AACpE,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,UAAU,GAAG,UAAU,GAC5B,IAAI,CAKN;AAQD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,SAAS,GAAG,IAAI,CAwBpE;AAID,6DAA6D;AAC7D,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;AAED,uEAAuE;AACvE,wBAAgB,YAAY,IAAI,IAAI,CAGnC"}
@@ -136,6 +136,17 @@ export function hintKeyboardStdinNotTTY(keyboardRequested, stdinIsTTY) {
136
136
  recordHint('keyboard requested but stdin is not a TTY (piped input is ignored); ' +
137
137
  'run in a real terminal or PTY');
138
138
  }
139
+ /**
140
+ * Hint: mouse requested in the classic Windows console. conhost reports
141
+ * clicks as MOUSE_EVENT input records, which Node/Bun stdin never sees;
142
+ * SGR mouse sequences only arrive through ConPTY (Windows Terminal, VS Code).
143
+ */
144
+ export function hintMouseInConhost(mouseRequested, app) {
145
+ if (!mouseRequested || app !== 'conhost')
146
+ return;
147
+ recordHint('mouse requested in the classic Windows console, which does not deliver ' +
148
+ 'mouse input to Node/Bun; run in Windows Terminal or VS Code');
149
+ }
139
150
  const hookLogs = new WeakMap();
140
151
  const HOOK_DRIFT_HINT = 'conditional keyless useState detected — pass a stable string key';
141
152
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,8 @@
2
2
  * Bunti DSL context factories: the common per-closure context, the direct
3
3
  * (screen-buffer) box renderer, and the top-level screen context.
4
4
  */
5
- import type { ScreenState } from '../state';
6
- import { type BuntiContext } from './types';
5
+ import type { ScreenState } from '../state.js';
6
+ import { type BuntiContext } from './types.js';
7
7
  /**
8
8
  * Top-level Screen Context
9
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/dsl/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiDH,OAAO,KAAK,EAAa,WAAW,EAAE,MAAM,UAAU,CAAC;AAkBvD,OAAO,EACL,KAAK,YAAY,EAMlB,MAAM,SAAS,CAAC;AAsxBjB;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY,CAgHpE"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/dsl/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkDH,OAAO,KAAK,EAAa,WAAW,EAAE,MAAM,UAAU,CAAC;AAkBvD,OAAO,EACL,KAAK,YAAY,EAMlB,MAAM,SAAS,CAAC;AAsxBjB;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY,CAgHpE"}
@@ -2,20 +2,20 @@
2
2
  * Bunti DSL context factories: the common per-closure context, the direct
3
3
  * (screen-buffer) box renderer, and the top-level screen context.
4
4
  */
5
- import { bg, contrastText, createGradient, darken, fade, fg, lighten, rgb, } from '../colors';
6
- import { identifyTerminal } from '../detect';
7
- import { beginHookFrame, hintInputReadWithoutKeyboard, hintOverlappingBoxes, } from '../diagnostics';
8
- import { resolveRect as resolveGeometryRect, resolvePlacedRect, splitRect as splitGeometryRect, } from '../geometry';
9
- import { icon, replaceEmojis } from '../icons';
10
- import { dimRect, getWindow, joinHorizontal, joinVertical, blit as layoutBlit, box as layoutBox, gradient as layoutGradient, list as layoutList, table as layoutTable, viewport as layoutViewport, wallpaper as layoutWallpaper, measureBox, rect, resolveSize, } from '../layout';
11
- import { darkTheme, resolveTheme, } from '../theme';
12
- import { visibleWidth } from '../utils';
13
- import { colors } from '../vendor/colors';
14
- import { createHooks } from './hooks';
15
- import { createInteraction } from './interaction';
16
- import { compositeLayer, createLayerScreenState, layerContentBounds, } from './layers';
17
- import { createMotion } from './motion';
18
- import { KEYS, } from './types';
5
+ import { bg, contrastText, createGradient, darken, fade, fg, lighten, rgb, } from '../colors.js';
6
+ import { identifyTerminal } from '../detect.js';
7
+ import { beginHookFrame, hintInputReadWithoutKeyboard, hintOverlappingBoxes, } from '../diagnostics.js';
8
+ import { resolveRect as resolveGeometryRect, resolvePlacedRect, splitRect as splitGeometryRect, } from '../geometry.js';
9
+ import { icon, replaceEmojis } from '../icons.js';
10
+ import { dimRect, getWindow, joinHorizontal, joinVertical, blit as layoutBlit, box as layoutBox, gradient as layoutGradient, list as layoutList, table as layoutTable, viewport as layoutViewport, wallpaper as layoutWallpaper, measureBox, rect, resolveSize, } from '../layout.js';
11
+ import { darkTheme, resolveTheme, } from '../theme.js';
12
+ import { visibleWidth } from '../utils.js';
13
+ import { colors } from '../vendor/colors.js';
14
+ import { createHooks } from './hooks.js';
15
+ import { createInteraction } from './interaction.js';
16
+ import { compositeLayer, createLayerScreenState, layerContentBounds, } from './layers.js';
17
+ import { createMotion } from './motion.js';
18
+ import { KEYS, } from './types.js';
19
19
  /** Luminance scale applied by layer drop shadows at composite time. */
20
20
  const LAYER_SHADOW_DIM = 0.45;
21
21
  function pushHitboxFrame(dslState) {