@zakmandhro/bunti 0.1.5 → 0.2.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 (192) hide show
  1. package/AGENTS.md +65 -0
  2. package/README.md +81 -11
  3. package/dist/cli.d.ts +44 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +147 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/colors.d.ts +77 -7
  8. package/dist/colors.d.ts.map +1 -1
  9. package/dist/colors.js +238 -39
  10. package/dist/colors.js.map +1 -1
  11. package/dist/components/Box.d.ts +6 -0
  12. package/dist/components/Box.d.ts.map +1 -1
  13. package/dist/components/Box.js +5 -0
  14. package/dist/components/Box.js.map +1 -1
  15. package/dist/components/Button.d.ts +12 -2
  16. package/dist/components/Button.d.ts.map +1 -1
  17. package/dist/components/Button.js +35 -24
  18. package/dist/components/Button.js.map +1 -1
  19. package/dist/components/Card.d.ts +24 -2
  20. package/dist/components/Card.d.ts.map +1 -1
  21. package/dist/components/Card.js +56 -14
  22. package/dist/components/Card.js.map +1 -1
  23. package/dist/components/Header.d.ts +11 -1
  24. package/dist/components/Header.d.ts.map +1 -1
  25. package/dist/components/Header.js +12 -8
  26. package/dist/components/Header.js.map +1 -1
  27. package/dist/components/Input.d.ts +10 -1
  28. package/dist/components/Input.d.ts.map +1 -1
  29. package/dist/components/Input.js +172 -41
  30. package/dist/components/Input.js.map +1 -1
  31. package/dist/components/Link.d.ts +21 -0
  32. package/dist/components/Link.d.ts.map +1 -0
  33. package/dist/components/Link.js +29 -0
  34. package/dist/components/Link.js.map +1 -0
  35. package/dist/components/Modal.d.ts +25 -0
  36. package/dist/components/Modal.d.ts.map +1 -1
  37. package/dist/components/Modal.js +83 -24
  38. package/dist/components/Modal.js.map +1 -1
  39. package/dist/components/Progress.d.ts +27 -0
  40. package/dist/components/Progress.d.ts.map +1 -0
  41. package/dist/components/Progress.js +39 -0
  42. package/dist/components/Progress.js.map +1 -0
  43. package/dist/components/Spinner.d.ts +19 -0
  44. package/dist/components/Spinner.d.ts.map +1 -0
  45. package/dist/components/Spinner.js +27 -0
  46. package/dist/components/Spinner.js.map +1 -0
  47. package/dist/components/index.d.ts +3 -0
  48. package/dist/components/index.d.ts.map +1 -1
  49. package/dist/components/index.js +3 -0
  50. package/dist/components/index.js.map +1 -1
  51. package/dist/data/nf-glyphs.d.ts +11 -0
  52. package/dist/data/nf-glyphs.d.ts.map +1 -0
  53. package/dist/data/nf-glyphs.js +535 -0
  54. package/dist/data/nf-glyphs.js.map +1 -0
  55. package/dist/data/nf-names.d.ts +8 -0
  56. package/dist/data/nf-names.d.ts.map +1 -0
  57. package/dist/data/nf-names.js +2 -0
  58. package/dist/data/nf-names.js.map +1 -0
  59. package/dist/demo-registry.d.ts +27 -0
  60. package/dist/demo-registry.d.ts.map +1 -0
  61. package/dist/demo-registry.js +57 -0
  62. package/dist/demo-registry.js.map +1 -0
  63. package/dist/demos/2048.ts +743 -0
  64. package/dist/demos/animation.ts +246 -0
  65. package/dist/demos/demo-layout.ts +124 -0
  66. package/dist/demos/engine.ts +374 -0
  67. package/dist/demos/interaction.ts +91 -0
  68. package/dist/demos/login.ts +203 -0
  69. package/dist/demos/mission-control.ts +558 -0
  70. package/dist/demos/showcase.ts +224 -0
  71. package/dist/detect.d.ts +92 -3
  72. package/dist/detect.d.ts.map +1 -1
  73. package/dist/detect.js +218 -40
  74. package/dist/detect.js.map +1 -1
  75. package/dist/diagnostics.d.ts +73 -0
  76. package/dist/diagnostics.d.ts.map +1 -0
  77. package/dist/diagnostics.js +225 -0
  78. package/dist/diagnostics.js.map +1 -0
  79. package/dist/dsl/context.d.ts +11 -0
  80. package/dist/dsl/context.d.ts.map +1 -0
  81. package/dist/dsl/context.js +563 -0
  82. package/dist/dsl/context.js.map +1 -0
  83. package/dist/dsl/hooks.d.ts +12 -0
  84. package/dist/dsl/hooks.d.ts.map +1 -0
  85. package/dist/dsl/hooks.js +148 -0
  86. package/dist/dsl/hooks.js.map +1 -0
  87. package/dist/dsl/interaction.d.ts +16 -0
  88. package/dist/dsl/interaction.d.ts.map +1 -0
  89. package/dist/dsl/interaction.js +101 -0
  90. package/dist/dsl/interaction.js.map +1 -0
  91. package/dist/dsl/layers.d.ts +14 -0
  92. package/dist/dsl/layers.d.ts.map +1 -0
  93. package/dist/dsl/layers.js +87 -0
  94. package/dist/dsl/layers.js.map +1 -0
  95. package/dist/dsl/motion.d.ts +10 -0
  96. package/dist/dsl/motion.d.ts.map +1 -0
  97. package/dist/dsl/motion.js +150 -0
  98. package/dist/dsl/motion.js.map +1 -0
  99. package/dist/dsl/render.d.ts +22 -0
  100. package/dist/dsl/render.d.ts.map +1 -0
  101. package/dist/dsl/render.js +69 -0
  102. package/dist/dsl/render.js.map +1 -0
  103. package/dist/dsl/types.d.ts +510 -0
  104. package/dist/dsl/types.d.ts.map +1 -0
  105. package/dist/dsl/types.js +33 -0
  106. package/dist/dsl/types.js.map +1 -0
  107. package/dist/dsl.d.ts +13 -154
  108. package/dist/dsl.d.ts.map +1 -1
  109. package/dist/dsl.js +12 -658
  110. package/dist/dsl.js.map +1 -1
  111. package/dist/easing.d.ts +41 -1
  112. package/dist/easing.d.ts.map +1 -1
  113. package/dist/easing.js +105 -2
  114. package/dist/easing.js.map +1 -1
  115. package/dist/geometry.d.ts +39 -0
  116. package/dist/geometry.d.ts.map +1 -1
  117. package/dist/geometry.js +20 -0
  118. package/dist/geometry.js.map +1 -1
  119. package/dist/icons-full.d.ts +5 -0
  120. package/dist/icons-full.d.ts.map +1 -0
  121. package/dist/icons-full.js +31 -0
  122. package/dist/icons-full.js.map +1 -0
  123. package/dist/icons.d.ts +426 -5
  124. package/dist/icons.d.ts.map +1 -1
  125. package/dist/icons.js +144 -15
  126. package/dist/icons.js.map +1 -1
  127. package/dist/index.d.ts +93 -22
  128. package/dist/index.d.ts.map +1 -1
  129. package/dist/index.js +17 -7
  130. package/dist/index.js.map +1 -1
  131. package/dist/input.d.ts +177 -0
  132. package/dist/input.d.ts.map +1 -0
  133. package/dist/input.js +533 -0
  134. package/dist/input.js.map +1 -0
  135. package/dist/layout.d.ts +111 -6
  136. package/dist/layout.d.ts.map +1 -1
  137. package/dist/layout.js +163 -23
  138. package/dist/layout.js.map +1 -1
  139. package/dist/render.d.ts +33 -1
  140. package/dist/render.d.ts.map +1 -1
  141. package/dist/render.js +431 -116
  142. package/dist/render.js.map +1 -1
  143. package/dist/state.d.ts +137 -3
  144. package/dist/state.d.ts.map +1 -1
  145. package/dist/state.js +25 -0
  146. package/dist/state.js.map +1 -1
  147. package/dist/theme.d.ts +129 -0
  148. package/dist/theme.d.ts.map +1 -0
  149. package/dist/theme.js +167 -0
  150. package/dist/theme.js.map +1 -0
  151. package/dist/themes/catppuccin-mocha.d.ts +19 -0
  152. package/dist/themes/catppuccin-mocha.d.ts.map +1 -0
  153. package/dist/themes/catppuccin-mocha.js +36 -0
  154. package/dist/themes/catppuccin-mocha.js.map +1 -0
  155. package/dist/themes/dracula.d.ts +21 -0
  156. package/dist/themes/dracula.d.ts.map +1 -0
  157. package/dist/themes/dracula.js +37 -0
  158. package/dist/themes/dracula.js.map +1 -0
  159. package/dist/themes/github-light.d.ts +21 -0
  160. package/dist/themes/github-light.d.ts.map +1 -0
  161. package/dist/themes/github-light.js +36 -0
  162. package/dist/themes/github-light.js.map +1 -0
  163. package/dist/themes/index.d.ts +19 -0
  164. package/dist/themes/index.d.ts.map +1 -0
  165. package/dist/themes/index.js +17 -0
  166. package/dist/themes/index.js.map +1 -0
  167. package/dist/themes/nord.d.ts +23 -0
  168. package/dist/themes/nord.d.ts.map +1 -0
  169. package/dist/themes/nord.js +38 -0
  170. package/dist/themes/nord.js.map +1 -0
  171. package/dist/themes/one-dark-pro.d.ts +21 -0
  172. package/dist/themes/one-dark-pro.d.ts.map +1 -0
  173. package/dist/themes/one-dark-pro.js +36 -0
  174. package/dist/themes/one-dark-pro.js.map +1 -0
  175. package/dist/themes/tokyo-night.d.ts +20 -0
  176. package/dist/themes/tokyo-night.d.ts.map +1 -0
  177. package/dist/themes/tokyo-night.js +37 -0
  178. package/dist/themes/tokyo-night.js.map +1 -0
  179. package/dist/utils.d.ts +1 -0
  180. package/dist/utils.d.ts.map +1 -1
  181. package/dist/utils.js +1 -0
  182. package/dist/utils.js.map +1 -1
  183. package/dist/vendor/colors.d.ts +45 -0
  184. package/dist/vendor/colors.d.ts.map +1 -0
  185. package/dist/vendor/colors.js +72 -0
  186. package/dist/vendor/colors.js.map +1 -0
  187. package/llms.txt +79 -0
  188. package/package.json +23 -7
  189. package/dist/data/glyphs.d.ts +0 -5
  190. package/dist/data/glyphs.d.ts.map +0 -1
  191. package/dist/data/glyphs.js +0 -29
  192. package/dist/data/glyphs.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
package/dist/state.d.ts CHANGED
@@ -1,21 +1,46 @@
1
1
  /**
2
2
  * Bunti Functional Screen State & Initialization
3
3
  */
4
+ import { type ColorTier, type TerminalProfile } from './detect';
5
+ import type { HeldKeyTracker, InputTokenizer, KeyEvent, TerminalResponse } from './input';
6
+ import type { Theme, ThemeColor } from './theme';
7
+ /** 24-bit color triplet; each channel is 0-255. */
4
8
  export interface RGB {
5
9
  r: number;
6
10
  g: number;
7
11
  b: number;
8
12
  }
13
+ /**
14
+ * One terminal cell in the screen buffers. Drawing calls (blit/rect/setCell)
15
+ * take Partial<Cell> as their style argument.
16
+ */
9
17
  export interface Cell {
18
+ /** The glyph in this cell ('' marks a wide-glyph tail). */
10
19
  char: string;
11
- fg?: string | number | RGB;
12
- bg?: string | number | RGB;
20
+ /** Foreground color: palette name, hex, ANSI-256 code, RGB, or theme token. */
21
+ fg?: string | number | RGB | ThemeColor;
22
+ /** Background color: palette name, hex, ANSI-256 code, RGB, or theme token. */
23
+ bg?: string | number | RGB | ThemeColor;
24
+ /** SGR bold. */
13
25
  bold?: boolean;
26
+ /** Resolved fg ANSI code (set by setCell; do not set directly). */
14
27
  fgCode?: string | number;
28
+ /** Resolved bg ANSI code (set by setCell; do not set directly). */
15
29
  bgCode?: string | number;
30
+ /** Cell is a wide-glyph tail or transparent; the differ skips it. */
16
31
  skip?: boolean;
32
+ /** Bypasses automatic emoji-to-Nerd-Font replacement. */
17
33
  raw?: boolean;
34
+ /** SGR italic. */
35
+ italic?: boolean;
36
+ /** SGR underline. */
37
+ underline?: boolean;
38
+ /** SGR dim (faint). */
39
+ dim?: boolean;
40
+ /** SGR strikethrough. */
41
+ strike?: boolean;
18
42
  }
43
+ /** A named clickable region registered via ctx.hitbox() (absolute cells). */
19
44
  export interface Hitbox {
20
45
  id: string;
21
46
  x: number;
@@ -23,44 +48,152 @@ export interface Hitbox {
23
48
  width: number;
24
49
  height: number;
25
50
  }
51
+ /**
52
+ * The mutable per-screen state behind a render() session: double buffers,
53
+ * input queues, focus/hover bookkeeping, and component state. Exposed as
54
+ * `ctx.state` for advanced use; most apps only need the BuntiContext API.
55
+ */
26
56
  export interface ScreenState {
57
+ /** Terminal width in cells. */
27
58
  width: number;
59
+ /** Terminal height in rows. */
28
60
  height: number;
61
+ /** What is currently on the terminal (updated by flush). */
29
62
  frontBuffer: Cell[];
63
+ /** The frame being drawn; diffed against frontBuffer on flush. */
30
64
  backBuffer: Cell[];
65
+ /** Mouse column (0-based). */
31
66
  mouseX: number;
67
+ /** Mouse row (0-based). */
32
68
  mouseY: number;
69
+ /** Raw SGR button code of the most recent mouse event. */
33
70
  mouseButton: number;
71
+ /** True while the left mouse button is held down. */
34
72
  isMouseDown: boolean;
73
+ /** Terminal focus (drives the 5fps unfocused throttle). */
35
74
  hasFocus: boolean;
75
+ /** First non-modified key name of the current frame (back-compat). */
36
76
  lastKey?: string;
77
+ /** KeyEvents accumulated between frames; drained each tick into keys. */
78
+ keyQueue: KeyEvent[];
79
+ /** This frame's KeyEvents (drained from keyQueue by the render loop). */
80
+ keys: KeyEvent[];
81
+ /** Terminal probe replies (cursor position, DA1/DA2, DECRQM, DCS).
82
+ * Consumers drain this array; it never feeds the key queue. */
83
+ terminalResponses: TerminalResponse[];
84
+ /** Press-origin of the click emitted this frame (undefined otherwise). */
85
+ clickX?: number;
86
+ clickY?: number;
87
+ /** Press-origin of an in-flight left-button press (click emits here). */
88
+ mouseDownX?: number;
89
+ mouseDownY?: number;
90
+ /** Hover state per hitbox id as of its last evaluation. */
91
+ hoverStates: Map<string, boolean>;
92
+ /** Hitbox ids whose hover turned on this frame. */
93
+ hoverEntered: Set<string>;
94
+ /** Hitbox ids whose hover turned off this frame. */
95
+ hoverLeft: Set<string>;
96
+ /** Lazily created by applyInputToState. */
97
+ inputTokenizer?: InputTokenizer;
98
+ /** Lazily created by the input dispatch; injectable for tests. */
99
+ heldKeys?: HeldKeyTracker;
100
+ /** Id of the currently focused focusable, if any. */
37
101
  focusedId?: string;
102
+ /** Tab-cycle registration order (rebuilt each frame). */
38
103
  focusableIds: string[];
104
+ /** Clickable regions registered this frame via ctx.hitbox(). */
39
105
  hitboxes: Map<string, Hitbox>;
106
+ /** Backing store for useState/useAsync and motion/animation clocks. */
40
107
  componentState: Map<string, any>;
108
+ /** Positional counter for keyless hooks (reset each frame). */
41
109
  hookCounter?: number;
110
+ /** Epoch ms when render() started (ctx.elapsedTime = now - startTime). */
42
111
  startTime: number;
112
+ /** Timestamp of the previous render tick (loop() owns this). */
113
+ lastFrameAt?: number;
114
+ /** Render tick counter (loop() owns this; exposed as ctx.frame). */
115
+ frameCount?: number;
116
+ /** Ms since the previous tick, clamped to 100 (exposed as ctx.dt). */
117
+ dt?: number;
118
+ /** SGR run-tracking across flushes (differ internals). */
43
119
  lastFg?: any;
44
120
  lastBg?: any;
45
121
  lastBold?: boolean;
122
+ lastItalic?: boolean;
123
+ lastUnderline?: boolean;
124
+ lastDim?: boolean;
125
+ lastStrike?: boolean;
126
+ /** Last OSC 22 mouse-cursor shape emitted ('pointer' over hitboxes). */
127
+ pointerShape?: 'default' | 'pointer';
128
+ /** Forces the next flush to clear and repaint everything. */
46
129
  needsFullRedraw?: boolean;
130
+ /** Optional screen identifier. */
47
131
  id?: string;
132
+ /** The options render() was called with. */
48
133
  options: ScreenOptions;
134
+ /** Stops the active render loop (what ctx.requestStop() calls). */
49
135
  requestStop?: () => void;
136
+ /** True once the loop has been stopped. */
50
137
  isStopped?: boolean;
138
+ /** True once the terminal has been restored (teardown ran). */
139
+ isRestored?: boolean;
140
+ /** True while a resize is settling (frames are skipped). */
51
141
  isResizing?: boolean;
142
+ /** Epoch ms when the current resize debounce window ends. */
52
143
  resizeSettlesAt?: number;
144
+ /** Active semantic theme (swapped live via ctx.setTheme). */
145
+ theme?: Theme;
146
+ /** Env-detected terminal profile (detected once per createScreenState). */
147
+ terminal?: TerminalProfile;
148
+ /**
149
+ * Effective synchronized-output flag for this screen. False only when the
150
+ * terminal was positively identified as lacking mode 2026 support;
151
+ * unknown terminals keep the sync wrap (harmlessly ignored when
152
+ * unsupported) to preserve pre-detection behavior.
153
+ */
154
+ syncOutput?: boolean;
53
155
  }
156
+ /**
157
+ * Options for render(). Interactive apps typically want
158
+ * `{ keyboard: true, mouse: true, alternateBuffer: true, hideCursor: true }`.
159
+ */
54
160
  export interface ScreenOptions {
161
+ /** Target frames per second (default 60; throttles to 5 when unfocused). */
55
162
  fps?: number;
163
+ /** Enables SGR mouse tracking (hover/click/wheel, ctx.hitbox). */
56
164
  mouse?: boolean;
165
+ /** Enables terminal focus-in/out tracking (drives the fps throttle). */
57
166
  focus?: boolean;
167
+ /**
168
+ * Enables keyboard input (raw-mode stdin -> ctx.lastKey / ctx.keys).
169
+ * Requires a real TTY: piped stdin is ignored.
170
+ */
58
171
  keyboard?: boolean;
172
+ /** Renders on the alternate screen buffer and restores the shell on exit. */
59
173
  alternateBuffer?: boolean;
174
+ /** Hides the terminal cursor while rendering (restored on exit). */
60
175
  hideCursor?: boolean;
176
+ /** Forces the icon tier: true = Nerd Font glyphs, false = ASCII fallbacks. */
61
177
  nerdFont?: boolean;
178
+ /** How long a resize must settle before repainting (default 1ms). */
62
179
  resizeDebounceMs?: number;
63
- defaultFg?: string | number | RGB;
180
+ /** Bare-ESC disambiguation window for the input tokenizer (default 30ms). */
181
+ escTimeoutMs?: number;
182
+ /** Held-key expiry window for ctx.isKeyHeld (default 150ms). */
183
+ holdWindowMs?: number;
184
+ /** Default text color for cells without an explicit fg. */
185
+ defaultFg?: string | number | RGB | ThemeColor;
186
+ /** Semantic theme exposed as ctx.theme (defaults to darkTheme). */
187
+ theme?: Theme;
188
+ /** Forces the color capability tier (otherwise detected from env). */
189
+ colorTier?: ColorTier;
190
+ /**
191
+ * Called when the render callback throws during a frame.
192
+ * Return `'continue'` to keep the loop alive (app-level error boundary);
193
+ * any other return tears the screen down, restores the terminal, and
194
+ * rejects the promise returned by render()/loop() with the error.
195
+ */
196
+ onError?: (err: unknown) => void | 'continue';
64
197
  }
65
198
  /**
66
199
  * Creates a fresh ScreenState based on the terminal dimensions and options.
@@ -74,6 +207,7 @@ export declare function resizeScreen(state: ScreenState): void;
74
207
  * Clears the back buffer to the base wallpaper or a given cell style.
75
208
  */
76
209
  export declare function clearBackBuffer(state: ScreenState): void;
210
+ /** Raw ANSI escape sequences used by the renderer (advanced use). */
77
211
  export declare const ANSI: {
78
212
  reset: string;
79
213
  clear: string;
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,GAAG;IAClB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;IAC3B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,IAAI,EAAE,CAAC;IACpB,UAAU,EAAE,IAAI,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;CACnC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,aAAkB,GAAG,WAAW,CAqC1E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,QA6B9C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,QAWjD;AAED,eAAO,MAAM,IAAI;;;;;;;;;;;;;;CAchB,CAAC"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
package/dist/state.js CHANGED
@@ -1,10 +1,14 @@
1
1
  /**
2
2
  * Bunti Functional Screen State & Initialization
3
3
  */
4
+ import { identifyTerminal, setColorTier, } from './detect';
4
5
  /**
5
6
  * Creates a fresh ScreenState based on the terminal dimensions and options.
6
7
  */
7
8
  export function createScreenState(options = {}) {
9
+ if (options.colorTier !== undefined)
10
+ setColorTier(options.colorTier);
11
+ const terminal = identifyTerminal();
8
12
  const width = process.stdout.columns || 80;
9
13
  const height = process.stdout.rows || 24;
10
14
  const size = width * height;
@@ -32,11 +36,23 @@ export function createScreenState(options = {}) {
32
36
  mouseButton: 0,
33
37
  isMouseDown: false,
34
38
  hasFocus: true,
39
+ keyQueue: [],
40
+ keys: [],
41
+ terminalResponses: [],
42
+ hoverStates: new Map(),
43
+ hoverEntered: new Set(),
44
+ hoverLeft: new Set(),
35
45
  focusableIds: [],
36
46
  hitboxes: new Map(),
37
47
  componentState: new Map(),
38
48
  startTime: Date.now(),
39
49
  options,
50
+ theme: options.theme,
51
+ terminal,
52
+ // Judgment call: unknown terminals keep today's always-sync behavior
53
+ // (mode 2026 is ignored when unsupported); only positively identified
54
+ // non-supporting terminals skip the wrap.
55
+ syncOutput: terminal.app === 'unknown' ? true : terminal.syncOutput,
40
56
  };
41
57
  return state;
42
58
  }
@@ -68,6 +84,10 @@ export function resizeScreen(state) {
68
84
  state.lastFg = undefined;
69
85
  state.lastBg = undefined;
70
86
  state.lastBold = false;
87
+ state.lastItalic = false;
88
+ state.lastUnderline = false;
89
+ state.lastDim = false;
90
+ state.lastStrike = false;
71
91
  state.needsFullRedraw = true;
72
92
  state.isResizing = true;
73
93
  state.resizeSettlesAt = Date.now() + (state.options.resizeDebounceMs ?? 1);
@@ -84,9 +104,14 @@ export function clearBackBuffer(state) {
84
104
  cell.fgCode = undefined;
85
105
  cell.bgCode = undefined;
86
106
  cell.bold = false;
107
+ cell.italic = false;
108
+ cell.underline = false;
109
+ cell.dim = false;
110
+ cell.strike = false;
87
111
  cell.skip = false;
88
112
  }
89
113
  }
114
+ /** Raw ANSI escape sequences used by the renderer (advanced use). */
90
115
  export const ANSI = {
91
116
  reset: '\x1b[0m',
92
117
  clear: '\x1b[2J',
package/dist/state.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * Bunti Semantic Theme System
3
+ *
4
+ * Themes are sets of semantic color tokens (background, primary, danger, ...)
5
+ * rather than hardcoded colors. Every token is a ThemeColor: callable as an
6
+ * fg-styler (`theme.primary('text')` returns an ANSI-colored string) AND
7
+ * usable as plain color data anywhere a color is accepted (bgColor,
8
+ * borderColor, wallpaper, gradient stops) via its `.rgb` / `.hex` payload.
9
+ *
10
+ * `createTheme(partial)` fills missing tokens by derivation so sparse inputs
11
+ * (e.g. a converted VS Code theme with only a handful of colors) still
12
+ * produce a coherent theme.
13
+ */
14
+ import { type ColorValue } from './colors';
15
+ import type { RGB } from './state';
16
+ export type ThemeMode = 'dark' | 'light';
17
+ /** Any value accepted as a theme token: name, hex, ANSI code, RGB, ThemeColor. */
18
+ export type ThemeColorInput = ColorValue;
19
+ /**
20
+ * A semantic theme color. Callable as a foreground styler —
21
+ * `theme.primary('Mission Control')` returns an fg-styled ANSI string — and
22
+ * carries `.rgb` / `.hex` so it is accepted anywhere a color value goes.
23
+ */
24
+ export type ThemeColor = ((text: string | number) => string) & {
25
+ /** Resolved 24-bit color value. */
26
+ readonly rgb: RGB;
27
+ /** Resolved #rrggbb hex string. */
28
+ readonly hex: string;
29
+ };
30
+ /** The semantic token names every Theme carries. */
31
+ export declare const THEME_TOKENS: readonly ["background", "surface", "surfaceRaised", "foreground", "muted", "primary", "onPrimary", "accent", "border", "focus", "selection", "success", "warning", "danger", "info"];
32
+ export type ThemeToken = (typeof THEME_TOKENS)[number];
33
+ /**
34
+ * A complete semantic theme. Build one with `createTheme()`, or import a
35
+ * preset from '@zakmandhro/bunti/themes' (dracula, tokyoNight, nord, ...).
36
+ */
37
+ export interface Theme {
38
+ /** Display name (e.g. 'dracula'). */
39
+ name: string;
40
+ /** 'dark' or 'light' — components use it for mode-aware hover shifts. */
41
+ mode: ThemeMode;
42
+ /** App/screen background (wallpaper). */
43
+ background: ThemeColor;
44
+ /** Panel/card background, one step above `background`. */
45
+ surface: ThemeColor;
46
+ /** Elevated surface (modals, popovers), one step above `surface`. */
47
+ surfaceRaised: ThemeColor;
48
+ /** Default body text color. */
49
+ foreground: ThemeColor;
50
+ /** De-emphasized text (labels, hints, disabled). */
51
+ muted: ThemeColor;
52
+ /** Brand/action color (primary buttons, highlights). */
53
+ primary: ThemeColor;
54
+ /** Text rendered on top of `primary` fills. */
55
+ onPrimary: ThemeColor;
56
+ /** Secondary flourish color (links, icons, titles). */
57
+ accent: ThemeColor;
58
+ /** Default box/card border color. */
59
+ border: ThemeColor;
60
+ /** Focus ring / active-element color. */
61
+ focus: ThemeColor;
62
+ /** Selected-row/selection background wash. */
63
+ selection: ThemeColor;
64
+ /** Positive status. */
65
+ success: ThemeColor;
66
+ /** Cautionary status. */
67
+ warning: ThemeColor;
68
+ /** Destructive/error status. */
69
+ danger: ThemeColor;
70
+ /** Neutral-informational status. */
71
+ info: ThemeColor;
72
+ /** Optional named gradient stop lists (e.g. for wallpapers). */
73
+ gradients?: Record<string, (string | RGB)[]>;
74
+ }
75
+ /**
76
+ * Sparse theme spec: any subset of tokens; the rest are derived by
77
+ * `createTheme()`.
78
+ */
79
+ export type ThemeInput = Partial<Record<ThemeToken, ThemeColorInput>> & {
80
+ name?: string;
81
+ mode?: ThemeMode;
82
+ gradients?: Record<string, (string | RGB)[]>;
83
+ };
84
+ /**
85
+ * Creates a ThemeColor from any color value: a function that fg-styles text,
86
+ * branded and carrying `.rgb` + `.hex`. ThemeColor inputs pass through
87
+ * unchanged.
88
+ */
89
+ export declare function themeColor(input: ThemeColorInput): ThemeColor;
90
+ /**
91
+ * Returns true when the value is a complete Theme (all tokens are branded
92
+ * ThemeColors), as opposed to a sparse ThemeInput.
93
+ */
94
+ export declare function isTheme(value: unknown): value is Theme;
95
+ /**
96
+ * Builds a complete Theme from a sparse spec. Missing tokens are derived:
97
+ *
98
+ * - mode: from background luminance when a background is given, else 'dark'.
99
+ * - background: #0f0f23 (dark) / #f4f5f9 (light).
100
+ * - surface / surfaceRaised: background shifted 8% / 16% toward white in
101
+ * dark mode, toward black in light mode.
102
+ * - foreground: WCAG auto-contrast vs background, softened 8% toward it.
103
+ * - muted: foreground mixed 45% toward background.
104
+ * - primary: bunti-blue #3bbce1 (dark) / #0d7ea6 (light).
105
+ * - onPrimary: WCAG auto-contrast (pure black/white) vs primary.
106
+ * - accent: primary shifted 25% toward white (dark) / black (light).
107
+ * - border: foreground mixed 70% toward background.
108
+ * - focus: primary.
109
+ * - selection: primary mixed 70% toward background.
110
+ * - success/warning/danger/info: PALETTE-derived defaults per mode.
111
+ */
112
+ export declare function createTheme(input?: ThemeInput): Theme;
113
+ /**
114
+ * Normalizes a Theme | ThemeInput. Full Themes pass through. Sparse inputs
115
+ * overlay `base` when given (used by `ctx.themed`), otherwise they are
116
+ * completed by `createTheme` derivation (used by `ctx.setTheme`).
117
+ */
118
+ export declare function resolveTheme(input: Theme | ThemeInput, base?: Theme): Theme;
119
+ /**
120
+ * Built-in dark theme, derived from Bunti's PALETTE aesthetic
121
+ * (midnight / silver / bunti-blue / plasma).
122
+ */
123
+ export declare const darkTheme: Theme;
124
+ /**
125
+ * Built-in light theme: the PALETTE aesthetic re-balanced for light
126
+ * backgrounds (deepened primary/semantic colors for WCAG contrast).
127
+ */
128
+ export declare const lightTheme: Theme;
129
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,KAAK,UAAU,EAShB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAEnC,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAEzC,kFAAkF;AAClF,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC;AAEzC;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC,GAAG;IAC7D,mCAAmC;IACnC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,mCAAmC;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,YAAY,sLAgBf,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,KAAK;IACpB,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,IAAI,EAAE,SAAS,CAAC;IAChB,yCAAyC;IACzC,UAAU,EAAE,UAAU,CAAC;IACvB,0DAA0D;IAC1D,OAAO,EAAE,UAAU,CAAC;IACpB,qEAAqE;IACrE,aAAa,EAAE,UAAU,CAAC;IAC1B,+BAA+B;IAC/B,UAAU,EAAE,UAAU,CAAC;IACvB,oDAAoD;IACpD,KAAK,EAAE,UAAU,CAAC;IAClB,wDAAwD;IACxD,OAAO,EAAE,UAAU,CAAC;IACpB,+CAA+C;IAC/C,SAAS,EAAE,UAAU,CAAC;IACtB,uDAAuD;IACvD,MAAM,EAAE,UAAU,CAAC;IACnB,qCAAqC;IACrC,MAAM,EAAE,UAAU,CAAC;IACnB,yCAAyC;IACzC,KAAK,EAAE,UAAU,CAAC;IAClB,8CAA8C;IAC9C,SAAS,EAAE,UAAU,CAAC;IACtB,uBAAuB;IACvB,OAAO,EAAE,UAAU,CAAC;IACpB,yBAAyB;IACzB,OAAO,EAAE,UAAU,CAAC;IACpB,gCAAgC;IAChC,MAAM,EAAE,UAAU,CAAC;IACnB,oCAAoC;IACpC,IAAI,EAAE,UAAU,CAAC;IACjB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;CAC9C;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,GAAG;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;CAC9C,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,UAAU,CAW7D;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,KAAK,CAOtD;AAKD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,KAAK,GAAE,UAAe,GAAG,KAAK,CAkEzD;AASD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,UAAU,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK,CAK3E;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,KAOtB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,KAOvB,CAAC"}