@promptctl/rich-js 0.1.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 (318) hide show
  1. package/README.md +418 -0
  2. package/dist/core/box.d.ts +91 -0
  3. package/dist/core/box.d.ts.map +1 -0
  4. package/dist/core/box.js +534 -0
  5. package/dist/core/box.js.map +1 -0
  6. package/dist/core/cells.d.ts +24 -0
  7. package/dist/core/cells.d.ts.map +1 -0
  8. package/dist/core/cells.js +114 -0
  9. package/dist/core/cells.js.map +1 -0
  10. package/dist/core/color.d.ts +158 -0
  11. package/dist/core/color.d.ts.map +1 -0
  12. package/dist/core/color.js +825 -0
  13. package/dist/core/color.js.map +1 -0
  14. package/dist/core/console.d.ts +100 -0
  15. package/dist/core/console.d.ts.map +1 -0
  16. package/dist/core/console.js +353 -0
  17. package/dist/core/console.js.map +1 -0
  18. package/dist/core/emoji.d.ts +25 -0
  19. package/dist/core/emoji.d.ts.map +1 -0
  20. package/dist/core/emoji.js +392 -0
  21. package/dist/core/emoji.js.map +1 -0
  22. package/dist/core/highlighter.d.ts +33 -0
  23. package/dist/core/highlighter.d.ts.map +1 -0
  24. package/dist/core/highlighter.js +103 -0
  25. package/dist/core/highlighter.js.map +1 -0
  26. package/dist/core/markup.d.ts +69 -0
  27. package/dist/core/markup.d.ts.map +1 -0
  28. package/dist/core/markup.js +401 -0
  29. package/dist/core/markup.js.map +1 -0
  30. package/dist/core/measure.d.ts +17 -0
  31. package/dist/core/measure.d.ts.map +1 -0
  32. package/dist/core/measure.js +50 -0
  33. package/dist/core/measure.js.map +1 -0
  34. package/dist/core/protocol.d.ts +32 -0
  35. package/dist/core/protocol.d.ts.map +1 -0
  36. package/dist/core/protocol.js +17 -0
  37. package/dist/core/protocol.js.map +1 -0
  38. package/dist/core/render.d.ts +51 -0
  39. package/dist/core/render.d.ts.map +1 -0
  40. package/dist/core/render.js +69 -0
  41. package/dist/core/render.js.map +1 -0
  42. package/dist/core/segment.d.ts +104 -0
  43. package/dist/core/segment.d.ts.map +1 -0
  44. package/dist/core/segment.js +364 -0
  45. package/dist/core/segment.js.map +1 -0
  46. package/dist/core/spinnerData.d.ts +11 -0
  47. package/dist/core/spinnerData.d.ts.map +1 -0
  48. package/dist/core/spinnerData.js +116 -0
  49. package/dist/core/spinnerData.js.map +1 -0
  50. package/dist/core/strip.d.ts +159 -0
  51. package/dist/core/strip.d.ts.map +1 -0
  52. package/dist/core/strip.js +237 -0
  53. package/dist/core/strip.js.map +1 -0
  54. package/dist/core/style.d.ts +115 -0
  55. package/dist/core/style.d.ts.map +1 -0
  56. package/dist/core/style.js +662 -0
  57. package/dist/core/style.js.map +1 -0
  58. package/dist/core/text.d.ts +91 -0
  59. package/dist/core/text.d.ts.map +1 -0
  60. package/dist/core/text.js +610 -0
  61. package/dist/core/text.js.map +1 -0
  62. package/dist/index.d.ts +99 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +72 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/renderables/align.d.ts +17 -0
  67. package/dist/renderables/align.d.ts.map +1 -0
  68. package/dist/renderables/align.js +47 -0
  69. package/dist/renderables/align.js.map +1 -0
  70. package/dist/renderables/columns.d.ts +28 -0
  71. package/dist/renderables/columns.d.ts.map +1 -0
  72. package/dist/renderables/columns.js +92 -0
  73. package/dist/renderables/columns.js.map +1 -0
  74. package/dist/renderables/constrain.d.ts +16 -0
  75. package/dist/renderables/constrain.d.ts.map +1 -0
  76. package/dist/renderables/constrain.js +38 -0
  77. package/dist/renderables/constrain.js.map +1 -0
  78. package/dist/renderables/flexStrip.d.ts +42 -0
  79. package/dist/renderables/flexStrip.d.ts.map +1 -0
  80. package/dist/renderables/flexStrip.js +201 -0
  81. package/dist/renderables/flexStrip.js.map +1 -0
  82. package/dist/renderables/group.d.ts +12 -0
  83. package/dist/renderables/group.d.ts.map +1 -0
  84. package/dist/renderables/group.js +16 -0
  85. package/dist/renderables/group.js.map +1 -0
  86. package/dist/renderables/json.d.ts +23 -0
  87. package/dist/renderables/json.d.ts.map +1 -0
  88. package/dist/renderables/json.js +49 -0
  89. package/dist/renderables/json.js.map +1 -0
  90. package/dist/renderables/layout.d.ts +37 -0
  91. package/dist/renderables/layout.d.ts.map +1 -0
  92. package/dist/renderables/layout.js +151 -0
  93. package/dist/renderables/layout.js.map +1 -0
  94. package/dist/renderables/live.d.ts +48 -0
  95. package/dist/renderables/live.d.ts.map +1 -0
  96. package/dist/renderables/live.js +131 -0
  97. package/dist/renderables/live.js.map +1 -0
  98. package/dist/renderables/markdown.d.ts +25 -0
  99. package/dist/renderables/markdown.d.ts.map +1 -0
  100. package/dist/renderables/markdown.js +190 -0
  101. package/dist/renderables/markdown.js.map +1 -0
  102. package/dist/renderables/padding.d.ts +26 -0
  103. package/dist/renderables/padding.d.ts.map +1 -0
  104. package/dist/renderables/padding.js +92 -0
  105. package/dist/renderables/padding.js.map +1 -0
  106. package/dist/renderables/panel.d.ts +42 -0
  107. package/dist/renderables/panel.d.ts.map +1 -0
  108. package/dist/renderables/panel.js +202 -0
  109. package/dist/renderables/panel.js.map +1 -0
  110. package/dist/renderables/pretty.d.ts +29 -0
  111. package/dist/renderables/pretty.d.ts.map +1 -0
  112. package/dist/renderables/pretty.js +141 -0
  113. package/dist/renderables/pretty.js.map +1 -0
  114. package/dist/renderables/progress.d.ts +91 -0
  115. package/dist/renderables/progress.d.ts.map +1 -0
  116. package/dist/renderables/progress.js +234 -0
  117. package/dist/renderables/progress.js.map +1 -0
  118. package/dist/renderables/progressBar.d.ts +32 -0
  119. package/dist/renderables/progressBar.d.ts.map +1 -0
  120. package/dist/renderables/progressBar.js +59 -0
  121. package/dist/renderables/progressBar.js.map +1 -0
  122. package/dist/renderables/prompt.d.ts +25 -0
  123. package/dist/renderables/prompt.d.ts.map +1 -0
  124. package/dist/renderables/prompt.js +109 -0
  125. package/dist/renderables/prompt.js.map +1 -0
  126. package/dist/renderables/rule.d.ts +25 -0
  127. package/dist/renderables/rule.d.ts.map +1 -0
  128. package/dist/renderables/rule.js +96 -0
  129. package/dist/renderables/rule.js.map +1 -0
  130. package/dist/renderables/spinner.d.ts +30 -0
  131. package/dist/renderables/spinner.d.ts.map +1 -0
  132. package/dist/renderables/spinner.js +70 -0
  133. package/dist/renderables/spinner.js.map +1 -0
  134. package/dist/renderables/status.d.ts +24 -0
  135. package/dist/renderables/status.d.ts.map +1 -0
  136. package/dist/renderables/status.js +67 -0
  137. package/dist/renderables/status.js.map +1 -0
  138. package/dist/renderables/syntax.d.ts +36 -0
  139. package/dist/renderables/syntax.d.ts.map +1 -0
  140. package/dist/renderables/syntax.js +115 -0
  141. package/dist/renderables/syntax.js.map +1 -0
  142. package/dist/renderables/table.d.ts +109 -0
  143. package/dist/renderables/table.d.ts.map +1 -0
  144. package/dist/renderables/table.js +434 -0
  145. package/dist/renderables/table.js.map +1 -0
  146. package/dist/renderables/traceback.d.ts +26 -0
  147. package/dist/renderables/traceback.d.ts.map +1 -0
  148. package/dist/renderables/traceback.js +108 -0
  149. package/dist/renderables/traceback.js.map +1 -0
  150. package/dist/renderables/tree.d.ts +30 -0
  151. package/dist/renderables/tree.d.ts.map +1 -0
  152. package/dist/renderables/tree.js +107 -0
  153. package/dist/renderables/tree.js.map +1 -0
  154. package/dist/template-bindings/index.d.ts +61 -0
  155. package/dist/template-bindings/index.d.ts.map +1 -0
  156. package/dist/template-bindings/index.js +70 -0
  157. package/dist/template-bindings/index.js.map +1 -0
  158. package/dist/template-bindings/style-funcs.d.ts +30 -0
  159. package/dist/template-bindings/style-funcs.d.ts.map +1 -0
  160. package/dist/template-bindings/style-funcs.js +172 -0
  161. package/dist/template-bindings/style-funcs.js.map +1 -0
  162. package/dist/themes/buildPalette.d.ts +31 -0
  163. package/dist/themes/buildPalette.d.ts.map +1 -0
  164. package/dist/themes/buildPalette.js +43 -0
  165. package/dist/themes/buildPalette.js.map +1 -0
  166. package/dist/themes/colorMath.d.ts +23 -0
  167. package/dist/themes/colorMath.d.ts.map +1 -0
  168. package/dist/themes/colorMath.js +99 -0
  169. package/dist/themes/colorMath.js.map +1 -0
  170. package/dist/themes/data/atom-one-dark.d.ts +4 -0
  171. package/dist/themes/data/atom-one-dark.d.ts.map +1 -0
  172. package/dist/themes/data/atom-one-dark.js +159 -0
  173. package/dist/themes/data/atom-one-dark.js.map +1 -0
  174. package/dist/themes/data/atom-one-light.d.ts +4 -0
  175. package/dist/themes/data/atom-one-light.d.ts.map +1 -0
  176. package/dist/themes/data/atom-one-light.js +159 -0
  177. package/dist/themes/data/atom-one-light.js.map +1 -0
  178. package/dist/themes/data/catppuccin-latte.d.ts +4 -0
  179. package/dist/themes/data/catppuccin-latte.d.ts.map +1 -0
  180. package/dist/themes/data/catppuccin-latte.js +159 -0
  181. package/dist/themes/data/catppuccin-latte.js.map +1 -0
  182. package/dist/themes/data/catppuccin-mocha.d.ts +4 -0
  183. package/dist/themes/data/catppuccin-mocha.d.ts.map +1 -0
  184. package/dist/themes/data/catppuccin-mocha.js +159 -0
  185. package/dist/themes/data/catppuccin-mocha.js.map +1 -0
  186. package/dist/themes/data/dracula.d.ts +4 -0
  187. package/dist/themes/data/dracula.d.ts.map +1 -0
  188. package/dist/themes/data/dracula.js +159 -0
  189. package/dist/themes/data/dracula.js.map +1 -0
  190. package/dist/themes/data/flexoki.d.ts +4 -0
  191. package/dist/themes/data/flexoki.d.ts.map +1 -0
  192. package/dist/themes/data/flexoki.js +159 -0
  193. package/dist/themes/data/flexoki.js.map +1 -0
  194. package/dist/themes/data/gruvbox.d.ts +4 -0
  195. package/dist/themes/data/gruvbox.d.ts.map +1 -0
  196. package/dist/themes/data/gruvbox.js +159 -0
  197. package/dist/themes/data/gruvbox.js.map +1 -0
  198. package/dist/themes/data/index.d.ts +29 -0
  199. package/dist/themes/data/index.d.ts.map +1 -0
  200. package/dist/themes/data/index.js +48 -0
  201. package/dist/themes/data/index.js.map +1 -0
  202. package/dist/themes/data/monokai.d.ts +4 -0
  203. package/dist/themes/data/monokai.d.ts.map +1 -0
  204. package/dist/themes/data/monokai.js +159 -0
  205. package/dist/themes/data/monokai.js.map +1 -0
  206. package/dist/themes/data/nord.d.ts +4 -0
  207. package/dist/themes/data/nord.d.ts.map +1 -0
  208. package/dist/themes/data/nord.js +159 -0
  209. package/dist/themes/data/nord.js.map +1 -0
  210. package/dist/themes/data/rose-pine-dawn.d.ts +4 -0
  211. package/dist/themes/data/rose-pine-dawn.d.ts.map +1 -0
  212. package/dist/themes/data/rose-pine-dawn.js +159 -0
  213. package/dist/themes/data/rose-pine-dawn.js.map +1 -0
  214. package/dist/themes/data/rose-pine-moon.d.ts +4 -0
  215. package/dist/themes/data/rose-pine-moon.d.ts.map +1 -0
  216. package/dist/themes/data/rose-pine-moon.js +159 -0
  217. package/dist/themes/data/rose-pine-moon.js.map +1 -0
  218. package/dist/themes/data/rose-pine.d.ts +4 -0
  219. package/dist/themes/data/rose-pine.d.ts.map +1 -0
  220. package/dist/themes/data/rose-pine.js +159 -0
  221. package/dist/themes/data/rose-pine.js.map +1 -0
  222. package/dist/themes/data/solarized-dark.d.ts +4 -0
  223. package/dist/themes/data/solarized-dark.d.ts.map +1 -0
  224. package/dist/themes/data/solarized-dark.js +159 -0
  225. package/dist/themes/data/solarized-dark.js.map +1 -0
  226. package/dist/themes/data/solarized-light.d.ts +4 -0
  227. package/dist/themes/data/solarized-light.d.ts.map +1 -0
  228. package/dist/themes/data/solarized-light.js +159 -0
  229. package/dist/themes/data/solarized-light.js.map +1 -0
  230. package/dist/themes/data/textual-ansi.d.ts +4 -0
  231. package/dist/themes/data/textual-ansi.d.ts.map +1 -0
  232. package/dist/themes/data/textual-ansi.js +159 -0
  233. package/dist/themes/data/textual-ansi.js.map +1 -0
  234. package/dist/themes/data/textual-dark.d.ts +4 -0
  235. package/dist/themes/data/textual-dark.d.ts.map +1 -0
  236. package/dist/themes/data/textual-dark.js +159 -0
  237. package/dist/themes/data/textual-dark.js.map +1 -0
  238. package/dist/themes/data/textual-light.d.ts +4 -0
  239. package/dist/themes/data/textual-light.d.ts.map +1 -0
  240. package/dist/themes/data/textual-light.js +159 -0
  241. package/dist/themes/data/textual-light.js.map +1 -0
  242. package/dist/themes/data/tokyo-night.d.ts +4 -0
  243. package/dist/themes/data/tokyo-night.d.ts.map +1 -0
  244. package/dist/themes/data/tokyo-night.js +159 -0
  245. package/dist/themes/data/tokyo-night.js.map +1 -0
  246. package/dist/themes/data/types.d.ts +15 -0
  247. package/dist/themes/data/types.d.ts.map +1 -0
  248. package/dist/themes/data/types.js +2 -0
  249. package/dist/themes/data/types.js.map +1 -0
  250. package/dist/themes/palette.d.ts +20 -0
  251. package/dist/themes/palette.d.ts.map +1 -0
  252. package/dist/themes/palette.js +27 -0
  253. package/dist/themes/palette.js.map +1 -0
  254. package/dist/themes/paletteResolver.d.ts +35 -0
  255. package/dist/themes/paletteResolver.d.ts.map +1 -0
  256. package/dist/themes/paletteResolver.js +88 -0
  257. package/dist/themes/paletteResolver.js.map +1 -0
  258. package/dist/themes/registry.d.ts +17 -0
  259. package/dist/themes/registry.d.ts.map +1 -0
  260. package/dist/themes/registry.js +33 -0
  261. package/dist/themes/registry.js.map +1 -0
  262. package/dist/themes/terminalThemes.d.ts +46 -0
  263. package/dist/themes/terminalThemes.d.ts.map +1 -0
  264. package/dist/themes/terminalThemes.js +268 -0
  265. package/dist/themes/terminalThemes.js.map +1 -0
  266. package/dist/widgets/button.d.ts +47 -0
  267. package/dist/widgets/button.d.ts.map +1 -0
  268. package/dist/widgets/button.js +183 -0
  269. package/dist/widgets/button.js.map +1 -0
  270. package/dist/widgets/checkbox.d.ts +43 -0
  271. package/dist/widgets/checkbox.d.ts.map +1 -0
  272. package/dist/widgets/checkbox.js +144 -0
  273. package/dist/widgets/checkbox.js.map +1 -0
  274. package/dist/widgets/dropdown.d.ts +67 -0
  275. package/dist/widgets/dropdown.d.ts.map +1 -0
  276. package/dist/widgets/dropdown.js +373 -0
  277. package/dist/widgets/dropdown.js.map +1 -0
  278. package/dist/widgets/event-router.d.ts +73 -0
  279. package/dist/widgets/event-router.d.ts.map +1 -0
  280. package/dist/widgets/event-router.js +479 -0
  281. package/dist/widgets/event-router.js.map +1 -0
  282. package/dist/widgets/focus-manager.d.ts +26 -0
  283. package/dist/widgets/focus-manager.d.ts.map +1 -0
  284. package/dist/widgets/focus-manager.js +179 -0
  285. package/dist/widgets/focus-manager.js.map +1 -0
  286. package/dist/widgets/index.d.ts +23 -0
  287. package/dist/widgets/index.d.ts.map +1 -0
  288. package/dist/widgets/index.js +13 -0
  289. package/dist/widgets/index.js.map +1 -0
  290. package/dist/widgets/screen.d.ts +90 -0
  291. package/dist/widgets/screen.d.ts.map +1 -0
  292. package/dist/widgets/screen.js +440 -0
  293. package/dist/widgets/screen.js.map +1 -0
  294. package/dist/widgets/slider.d.ts +55 -0
  295. package/dist/widgets/slider.d.ts.map +1 -0
  296. package/dist/widgets/slider.js +248 -0
  297. package/dist/widgets/slider.js.map +1 -0
  298. package/dist/widgets/static-item.d.ts +41 -0
  299. package/dist/widgets/static-item.d.ts.map +1 -0
  300. package/dist/widgets/static-item.js +62 -0
  301. package/dist/widgets/static-item.js.map +1 -0
  302. package/dist/widgets/text-input.d.ts +50 -0
  303. package/dist/widgets/text-input.d.ts.map +1 -0
  304. package/dist/widgets/text-input.js +242 -0
  305. package/dist/widgets/text-input.js.map +1 -0
  306. package/dist/widgets/toggle.d.ts +46 -0
  307. package/dist/widgets/toggle.d.ts.map +1 -0
  308. package/dist/widgets/toggle.js +169 -0
  309. package/dist/widgets/toggle.js.map +1 -0
  310. package/dist/widgets/types.d.ts +92 -0
  311. package/dist/widgets/types.d.ts.map +1 -0
  312. package/dist/widgets/types.js +13 -0
  313. package/dist/widgets/types.js.map +1 -0
  314. package/dist/widgets/widget-base.d.ts +41 -0
  315. package/dist/widgets/widget-base.d.ts.map +1 -0
  316. package/dist/widgets/widget-base.js +159 -0
  317. package/dist/widgets/widget-base.js.map +1 -0
  318. package/package.json +76 -0
@@ -0,0 +1,179 @@
1
+ /**
2
+ * FocusManager — flat focus cycling over registered widgets.
3
+ * [LAW:one-source-of-truth] single authority for which widget has focus.
4
+ * [LAW:dataflow-not-control-flow] focus transitions are observable state;
5
+ * widgets react to focus/blur events, the manager never skips dispatch.
6
+ */
7
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
8
+ var useValue = arguments.length > 2;
9
+ for (var i = 0; i < initializers.length; i++) {
10
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
11
+ }
12
+ return useValue ? value : void 0;
13
+ };
14
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
15
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
16
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
17
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
18
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
19
+ var _, done = false;
20
+ for (var i = decorators.length - 1; i >= 0; i--) {
21
+ var context = {};
22
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
23
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
24
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
25
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
26
+ if (kind === "accessor") {
27
+ if (result === void 0) continue;
28
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
29
+ if (_ = accept(result.get)) descriptor.get = _;
30
+ if (_ = accept(result.set)) descriptor.set = _;
31
+ if (_ = accept(result.init)) initializers.unshift(_);
32
+ }
33
+ else if (_ = accept(result)) {
34
+ if (kind === "field") initializers.unshift(_);
35
+ else descriptor[key] = _;
36
+ }
37
+ }
38
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
39
+ done = true;
40
+ };
41
+ import { makeObservable, observable, action } from "mobx";
42
+ let DefaultFocusManager = (() => {
43
+ var _a, _b;
44
+ let _instanceExtraInitializers = [];
45
+ let _widgetList_decorators;
46
+ let _widgetList_initializers = [];
47
+ let _widgetList_extraInitializers = [];
48
+ let _currentWidget_decorators;
49
+ let _currentWidget_initializers = [];
50
+ let _currentWidget_extraInitializers = [];
51
+ let _register_decorators;
52
+ let _unregister_decorators;
53
+ let _next_decorators;
54
+ let _prev_decorators;
55
+ let _focus_decorators;
56
+ let _blur_decorators;
57
+ let _setFocus_decorators;
58
+ return class DefaultFocusManager {
59
+ static {
60
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
61
+ _widgetList_decorators = [(_a = observable).shallow.bind(_a)];
62
+ _currentWidget_decorators = [(_b = observable).ref.bind(_b)];
63
+ _register_decorators = [action];
64
+ _unregister_decorators = [action];
65
+ _next_decorators = [action];
66
+ _prev_decorators = [action];
67
+ _focus_decorators = [action];
68
+ _blur_decorators = [action];
69
+ _setFocus_decorators = [action];
70
+ __esDecorate(this, null, _widgetList_decorators, { kind: "accessor", name: "widgetList", static: false, private: false, access: { has: obj => "widgetList" in obj, get: obj => obj.widgetList, set: (obj, value) => { obj.widgetList = value; } }, metadata: _metadata }, _widgetList_initializers, _widgetList_extraInitializers);
71
+ __esDecorate(this, null, _currentWidget_decorators, { kind: "accessor", name: "currentWidget", static: false, private: false, access: { has: obj => "currentWidget" in obj, get: obj => obj.currentWidget, set: (obj, value) => { obj.currentWidget = value; } }, metadata: _metadata }, _currentWidget_initializers, _currentWidget_extraInitializers);
72
+ __esDecorate(this, null, _register_decorators, { kind: "method", name: "register", static: false, private: false, access: { has: obj => "register" in obj, get: obj => obj.register }, metadata: _metadata }, null, _instanceExtraInitializers);
73
+ __esDecorate(this, null, _unregister_decorators, { kind: "method", name: "unregister", static: false, private: false, access: { has: obj => "unregister" in obj, get: obj => obj.unregister }, metadata: _metadata }, null, _instanceExtraInitializers);
74
+ __esDecorate(this, null, _next_decorators, { kind: "method", name: "next", static: false, private: false, access: { has: obj => "next" in obj, get: obj => obj.next }, metadata: _metadata }, null, _instanceExtraInitializers);
75
+ __esDecorate(this, null, _prev_decorators, { kind: "method", name: "prev", static: false, private: false, access: { has: obj => "prev" in obj, get: obj => obj.prev }, metadata: _metadata }, null, _instanceExtraInitializers);
76
+ __esDecorate(this, null, _focus_decorators, { kind: "method", name: "focus", static: false, private: false, access: { has: obj => "focus" in obj, get: obj => obj.focus }, metadata: _metadata }, null, _instanceExtraInitializers);
77
+ __esDecorate(this, null, _blur_decorators, { kind: "method", name: "blur", static: false, private: false, access: { has: obj => "blur" in obj, get: obj => obj.blur }, metadata: _metadata }, null, _instanceExtraInitializers);
78
+ __esDecorate(this, null, _setFocus_decorators, { kind: "method", name: "setFocus", static: false, private: false, access: { has: obj => "setFocus" in obj, get: obj => obj.setFocus }, metadata: _metadata }, null, _instanceExtraInitializers);
79
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
80
+ }
81
+ #widgetList_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _widgetList_initializers, []));
82
+ get widgetList() { return this.#widgetList_accessor_storage; }
83
+ set widgetList(value) { this.#widgetList_accessor_storage = value; }
84
+ #currentWidget_accessor_storage = (__runInitializers(this, _widgetList_extraInitializers), __runInitializers(this, _currentWidget_initializers, null));
85
+ get currentWidget() { return this.#currentWidget_accessor_storage; }
86
+ set currentWidget(value) { this.#currentWidget_accessor_storage = value; }
87
+ changeHandlers = (__runInitializers(this, _currentWidget_extraInitializers), new Set());
88
+ constructor() {
89
+ makeObservable(this);
90
+ }
91
+ get current() {
92
+ return this.currentWidget;
93
+ }
94
+ get widgets() {
95
+ return this.widgetList;
96
+ }
97
+ register(widget) {
98
+ this.widgetList = [...this.widgetList, widget];
99
+ if (!this.currentWidget && widget.focusable && !widget.disabled) {
100
+ this.setFocus(widget);
101
+ }
102
+ }
103
+ unregister(widget) {
104
+ const idx = this.widgetList.indexOf(widget);
105
+ if (idx === -1)
106
+ return;
107
+ this.widgetList = this.widgetList.filter((w) => w !== widget);
108
+ if (this.currentWidget === widget) {
109
+ widget.blur();
110
+ widget.handleFocus({ type: "blur" });
111
+ const next = this.widgetList.find((w) => w.focusable && !w.disabled) ?? null;
112
+ if (next) {
113
+ next.focus();
114
+ next.handleFocus({ type: "focus" });
115
+ }
116
+ this.currentWidget = next;
117
+ this.emitChange();
118
+ }
119
+ }
120
+ next() {
121
+ const focusable = this.focusableWidgets();
122
+ if (focusable.length === 0)
123
+ return;
124
+ const currentIdx = this.currentWidget ? focusable.indexOf(this.currentWidget) : -1;
125
+ const nextIdx = (currentIdx + 1) % focusable.length;
126
+ this.setFocus(focusable[nextIdx]);
127
+ }
128
+ prev() {
129
+ const focusable = this.focusableWidgets();
130
+ if (focusable.length === 0)
131
+ return;
132
+ const currentIdx = this.currentWidget ? focusable.indexOf(this.currentWidget) : -1;
133
+ const prevIdx = currentIdx <= 0 ? focusable.length - 1 : currentIdx - 1;
134
+ this.setFocus(focusable[prevIdx]);
135
+ }
136
+ focus(widget) {
137
+ if (!widget.focusable || widget.disabled)
138
+ return;
139
+ if (!this.widgetList.includes(widget))
140
+ return;
141
+ this.setFocus(widget);
142
+ }
143
+ blur() {
144
+ if (!this.currentWidget)
145
+ return;
146
+ this.currentWidget.blur();
147
+ this.currentWidget.handleFocus({ type: "blur" });
148
+ this.currentWidget = null;
149
+ this.emitChange();
150
+ }
151
+ onChange(handler) {
152
+ this.changeHandlers.add(handler);
153
+ return () => this.changeHandlers.delete(handler);
154
+ }
155
+ // --- Private ---
156
+ focusableWidgets() {
157
+ return this.widgetList.filter((w) => w.focusable && !w.disabled);
158
+ }
159
+ setFocus(widget) {
160
+ if (this.currentWidget === widget)
161
+ return;
162
+ if (this.currentWidget) {
163
+ this.currentWidget.blur();
164
+ this.currentWidget.handleFocus({ type: "blur" });
165
+ }
166
+ this.currentWidget = widget;
167
+ widget.focus();
168
+ widget.handleFocus({ type: "focus" });
169
+ this.emitChange();
170
+ }
171
+ emitChange() {
172
+ for (const handler of this.changeHandlers) {
173
+ handler(this.currentWidget);
174
+ }
175
+ }
176
+ };
177
+ })();
178
+ export { DefaultFocusManager };
179
+ //# sourceMappingURL=focus-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus-manager.js","sourceRoot":"","sources":["../../src/widgets/focus-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export type { KeyEvent, WidgetMouseEvent, WidgetFocusEvent, WidgetBounds, InteractiveWidget, OverlayRenderable, FocusManager, Screen, MountEntry, Placement, Unsubscribe, } from "./types.js";
2
+ export { FLOW, hasOverlay } from "./types.js";
3
+ export { StaticItem } from "./static-item.js";
4
+ export type { StaticItemOptions } from "./static-item.js";
5
+ export { WidgetBase } from "./widget-base.js";
6
+ export { DefaultFocusManager } from "./focus-manager.js";
7
+ export { DefaultScreen } from "./screen.js";
8
+ export type { ScreenOptions, ColorSystemSpec } from "./screen.js";
9
+ export { Button } from "./button.js";
10
+ export type { ButtonVariant, ButtonOptions } from "./button.js";
11
+ export { Checkbox } from "./checkbox.js";
12
+ export type { CheckboxOptions } from "./checkbox.js";
13
+ export { Toggle } from "./toggle.js";
14
+ export type { ToggleVariant, ToggleOptions } from "./toggle.js";
15
+ export { TextInput } from "./text-input.js";
16
+ export type { TextInputOptions } from "./text-input.js";
17
+ export { Dropdown } from "./dropdown.js";
18
+ export type { DropdownOptions } from "./dropdown.js";
19
+ export { Slider } from "./slider.js";
20
+ export type { SliderOptions } from "./slider.js";
21
+ export { EventRouter } from "./event-router.js";
22
+ export type { EventRouterOptions } from "./event-router.js";
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/widgets/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,MAAM,EACN,UAAU,EACV,SAAS,EACT,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,13 @@
1
+ export { FLOW, hasOverlay } from "./types.js";
2
+ export { StaticItem } from "./static-item.js";
3
+ export { WidgetBase } from "./widget-base.js";
4
+ export { DefaultFocusManager } from "./focus-manager.js";
5
+ export { DefaultScreen } from "./screen.js";
6
+ export { Button } from "./button.js";
7
+ export { Checkbox } from "./checkbox.js";
8
+ export { Toggle } from "./toggle.js";
9
+ export { TextInput } from "./text-input.js";
10
+ export { Dropdown } from "./dropdown.js";
11
+ export { Slider } from "./slider.js";
12
+ export { EventRouter } from "./event-router.js";
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/widgets/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Screen — owns the render loop and ANSI output for interactive widgets.
3
+ *
4
+ * [LAW:dataflow-not-control-flow] Same pipeline runs every frame: render
5
+ * widgets to Segment[], split into lines, encode to ANSI, write to stdout
6
+ * with cursor-up + overwrite. Variability lives in the values (which widgets
7
+ * are visible, what they render), never in whether the pipeline runs.
8
+ *
9
+ * [LAW:one-source-of-truth] Layout (widget bounds) is computed here and
10
+ * written to widget.bounds. Mouse hit-testing reads the same bounds — the
11
+ * Screen is the single authority on where each widget is drawn.
12
+ *
13
+ * [LAW:single-enforcer] Cursor management lives in one place: `draw()`
14
+ * tracks `lastLineCount` and emits a single `\x1b[<n>A` to reposition.
15
+ * Per-line `\x1b[K` (erase to end of line) overwrites old content without
16
+ * flicker — no clear-and-redraw cycle.
17
+ *
18
+ * Reactivity: `mobx.autorun` re-fires on any observable read during render
19
+ * (label, focused, hovered, active, disabled, visible, the widget list
20
+ * itself). Renders are debounced to a microtask so a burst of state changes
21
+ * within one tick produces one frame.
22
+ *
23
+ * Layout (per-widget Placement):
24
+ *
25
+ * flow — vertical stack at x=0; advances the layout cursor by the
26
+ * widget's measured height. Default placement; preserves the
27
+ * historical single-column behavior so existing consumers
28
+ * (and the screen tests) need no migration.
29
+ * inline — same row as the preceding flow/inline neighbor; x packs
30
+ * after that neighbor's right edge plus a one-cell gap. The
31
+ * row's height is the max of its members; the cursor advances
32
+ * past the tallest member when the next non-inline item is
33
+ * placed (or at end of frame).
34
+ * fixed — absolute (x, y); independent of the cursor. Used for
35
+ * anchored content like status/log rows that the host wants
36
+ * placed at a known coordinate regardless of flow growth.
37
+ *
38
+ * The overlay pass (single enforcer) runs after base layout: any widget
39
+ * implementing OverlayRenderable contributes overlay segments anchored
40
+ * directly below its inline footprint, and Screen unions the overlay
41
+ * area into the widget's bounds for hit-testing.
42
+ *
43
+ * Design alternatives considered:
44
+ * 1. Per-widget Placement (chosen) — smallest type that covers the legal
45
+ * variability; one total switch in computeFrame; back-compat default.
46
+ * 2. Named regions (header/body/status as flow containers) — adds a
47
+ * two-step API surface (declare regions, then mount into them) and
48
+ * another concept; rejected as larger than the problem requires.
49
+ * 3. Host-supplied layout function — pushes layout out of Screen,
50
+ * defeating single-enforcer; rejected.
51
+ */
52
+ import { ColorDepth } from "../core/color.js";
53
+ import type { Screen, InteractiveWidget, FocusManager, MountEntry } from "./types.js";
54
+ export type ColorSystemSpec = ColorDepth | "auto" | "truecolor" | "256" | "ansi" | "none" | null;
55
+ export interface ScreenOptions {
56
+ out?: NodeJS.WritableStream;
57
+ width?: number;
58
+ colorSystem?: ColorSystemSpec;
59
+ focusManager?: FocusManager;
60
+ /**
61
+ * When true (default when stdout is a TTY), hide the cursor on start and
62
+ * restore it on stop. Disable for non-TTY output and tests.
63
+ */
64
+ manageCursor?: boolean;
65
+ }
66
+ export declare class DefaultScreen implements Screen {
67
+ readonly focusManager: FocusManager;
68
+ accessor widgetList: InteractiveWidget[];
69
+ private readonly placements;
70
+ private _running;
71
+ private autorunDispose;
72
+ private renderScheduled;
73
+ private lastLineCount;
74
+ private readonly out;
75
+ private readonly widthOverride;
76
+ private readonly colorSystem;
77
+ private readonly manageCursor;
78
+ constructor(options?: ScreenOptions);
79
+ get running(): boolean;
80
+ get widgets(): readonly InteractiveWidget[];
81
+ mount(...entries: MountEntry[]): void;
82
+ unmount(widget: InteractiveWidget): void;
83
+ start(): void;
84
+ stop(): void;
85
+ private get width();
86
+ private computeFrame;
87
+ private scheduleRender;
88
+ private draw;
89
+ }
90
+ //# sourceMappingURL=screen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screen.d.ts","sourceRoot":"","sources":["../../src/widgets/screen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAKH,OAAO,EAAE,UAAU,EAAsB,MAAM,kBAAkB,CAAC;AAIlE,OAAO,KAAK,EACV,MAAM,EACN,iBAAiB,EACjB,YAAY,EACZ,UAAU,EAGX,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,eAAe,GACvB,UAAU,GACV,MAAM,GACN,WAAW,GACX,KAAK,GACL,MAAM,GACN,MAAM,GACN,IAAI,CAAC;AAET,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AASD,qBAAa,aAAc,YAAW,MAAM;IAC1C,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAKpC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,EAAE,CAAM;IAM9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2C;IAEtE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,cAAc,CAAgC;IACtD,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,aAAa,CAAK;IAE1B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAwB;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;gBAE3B,OAAO,GAAE,aAAkB;IAYvC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,IAAI,SAAS,iBAAiB,EAAE,CAE1C;IAID,KAAK,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI;IAcrC,OAAO,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAUxC,KAAK,IAAI,IAAI;IAgBb,IAAI,IAAI,IAAI;IAeZ,OAAO,KAAK,KAAK,GAIhB;IAED,OAAO,CAAC,YAAY;IA+GpB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,IAAI;CAsCb"}