@promptctl/rich-js 0.18.0 → 0.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. package/dist/core/anchor.d.ts +45 -0
  2. package/dist/core/anchor.js +39 -0
  3. package/dist/core/ansi.d.ts +65 -0
  4. package/dist/core/ansi.js +231 -0
  5. package/dist/core/box.d.ts +143 -0
  6. package/dist/core/box.js +379 -0
  7. package/dist/core/cells.d.ts +159 -0
  8. package/dist/core/cells.js +287 -0
  9. package/dist/core/color.d.ts +246 -0
  10. package/dist/core/color.js +1038 -0
  11. package/dist/core/console.d.ts +165 -0
  12. package/dist/core/console.js +527 -0
  13. package/dist/core/emoji.d.ts +24 -0
  14. package/dist/core/emoji.js +391 -0
  15. package/dist/core/export-html.d.ts +59 -0
  16. package/dist/core/export-html.js +200 -0
  17. package/dist/core/export-lines.d.ts +121 -0
  18. package/dist/core/export-lines.js +141 -0
  19. package/dist/core/highlighter.d.ts +33 -0
  20. package/dist/core/highlighter.js +124 -0
  21. package/dist/core/json.d.ts +27 -0
  22. package/dist/core/json.js +53 -0
  23. package/dist/core/markup.d.ts +119 -0
  24. package/dist/core/markup.js +731 -0
  25. package/dist/core/measure.d.ts +27 -0
  26. package/dist/core/measure.js +62 -0
  27. package/dist/core/oklch.d.ts +161 -0
  28. package/dist/core/oklch.js +312 -0
  29. package/dist/core/osc8.d.ts +68 -0
  30. package/dist/core/osc8.js +90 -0
  31. package/dist/core/place.d.ts +30 -0
  32. package/dist/core/place.js +51 -0
  33. package/dist/core/pretty.d.ts +144 -0
  34. package/dist/core/pretty.js +476 -0
  35. package/dist/core/protocol.d.ts +267 -0
  36. package/dist/core/protocol.js +163 -0
  37. package/dist/core/render.d.ts +84 -0
  38. package/dist/core/render.js +145 -0
  39. package/dist/core/segment.d.ts +161 -0
  40. package/dist/core/segment.js +492 -0
  41. package/dist/core/spinnerData.d.ts +12 -0
  42. package/dist/core/spinnerData.js +117 -0
  43. package/dist/core/strip.d.ts +141 -0
  44. package/dist/core/strip.js +305 -0
  45. package/dist/core/style.d.ts +169 -0
  46. package/dist/core/style.js +695 -0
  47. package/dist/core/subscription.d.ts +12 -0
  48. package/dist/core/subscription.js +12 -0
  49. package/dist/core/text.d.ts +256 -0
  50. package/dist/core/text.js +976 -0
  51. package/dist/core/wrap.d.ts +41 -0
  52. package/dist/core/wrap.js +127 -0
  53. package/dist/host/app.d.ts +121 -0
  54. package/dist/host/app.js +255 -0
  55. package/dist/host/host-environment.d.ts +26 -0
  56. package/dist/host/host-environment.js +44 -0
  57. package/dist/host/index.d.ts +5 -0
  58. package/dist/host/index.js +3 -0
  59. package/dist/host/terminal-host.d.ts +179 -0
  60. package/dist/host/terminal-host.js +186 -0
  61. package/dist/index.d.ts +91 -0
  62. package/dist/index.js +107 -0
  63. package/dist/node/prompt.d.ts +21 -0
  64. package/dist/node/prompt.js +30 -0
  65. package/dist/node/save.d.ts +17 -0
  66. package/dist/node/save.js +21 -0
  67. package/dist/node/terminal-host.d.ts +113 -0
  68. package/dist/node/terminal-host.js +227 -0
  69. package/dist/node/traceback.d.ts +37 -0
  70. package/dist/node/traceback.js +134 -0
  71. package/dist/renderables/align.d.ts +16 -0
  72. package/dist/renderables/align.js +33 -0
  73. package/dist/renderables/columns.d.ts +61 -0
  74. package/dist/renderables/columns.js +152 -0
  75. package/dist/renderables/constrain.d.ts +15 -0
  76. package/dist/renderables/constrain.js +37 -0
  77. package/dist/renderables/embed.d.ts +50 -0
  78. package/dist/renderables/embed.js +71 -0
  79. package/dist/renderables/flexStrip.d.ts +41 -0
  80. package/dist/renderables/flexStrip.js +200 -0
  81. package/dist/renderables/group.d.ts +11 -0
  82. package/dist/renderables/group.js +17 -0
  83. package/dist/renderables/layout.d.ts +92 -0
  84. package/dist/renderables/layout.js +312 -0
  85. package/dist/renderables/live.d.ts +50 -0
  86. package/dist/renderables/live.js +175 -0
  87. package/dist/renderables/markdown.d.ts +24 -0
  88. package/dist/renderables/markdown.js +184 -0
  89. package/dist/renderables/padding.d.ts +38 -0
  90. package/dist/renderables/padding.js +141 -0
  91. package/dist/renderables/panel.d.ts +116 -0
  92. package/dist/renderables/panel.js +307 -0
  93. package/dist/renderables/progress.d.ts +90 -0
  94. package/dist/renderables/progress.js +238 -0
  95. package/dist/renderables/progressBar.d.ts +31 -0
  96. package/dist/renderables/progressBar.js +53 -0
  97. package/dist/renderables/prompt.d.ts +49 -0
  98. package/dist/renderables/prompt.js +125 -0
  99. package/dist/renderables/rule.d.ts +25 -0
  100. package/dist/renderables/rule.js +90 -0
  101. package/dist/renderables/spinner.d.ts +31 -0
  102. package/dist/renderables/spinner.js +70 -0
  103. package/dist/renderables/status.d.ts +23 -0
  104. package/dist/renderables/status.js +60 -0
  105. package/dist/renderables/syntax.d.ts +35 -0
  106. package/dist/renderables/syntax.js +115 -0
  107. package/dist/renderables/table.d.ts +194 -0
  108. package/dist/renderables/table.js +795 -0
  109. package/dist/renderables/traceback.d.ts +31 -0
  110. package/dist/renderables/traceback.js +108 -0
  111. package/dist/renderables/tree.d.ts +68 -0
  112. package/dist/renderables/tree.js +150 -0
  113. package/dist/renderables/viewport.d.ts +114 -0
  114. package/dist/renderables/viewport.js +198 -0
  115. package/dist/template-bindings/color-funcs.d.ts +87 -0
  116. package/dist/template-bindings/color-funcs.js +217 -0
  117. package/dist/template-bindings/helpers.d.ts +24 -0
  118. package/dist/template-bindings/helpers.js +48 -0
  119. package/dist/template-bindings/index.d.ts +107 -0
  120. package/dist/template-bindings/index.js +146 -0
  121. package/dist/template-bindings/palette-funcs.d.ts +94 -0
  122. package/dist/template-bindings/palette-funcs.js +141 -0
  123. package/dist/template-bindings/style-funcs.d.ts +28 -0
  124. package/dist/template-bindings/style-funcs.js +155 -0
  125. package/dist/themes/buildPalette.d.ts +36 -0
  126. package/dist/themes/buildPalette.js +56 -0
  127. package/dist/themes/colorMath.d.ts +82 -0
  128. package/dist/themes/colorMath.js +254 -0
  129. package/dist/themes/colorRef.d.ts +51 -0
  130. package/dist/themes/colorRef.js +96 -0
  131. package/dist/themes/data/ansi-tables.d.ts +14 -0
  132. package/dist/themes/data/ansi-tables.js +49 -0
  133. package/dist/themes/data/atom-one-dark.d.ts +3 -0
  134. package/dist/themes/data/atom-one-dark.js +177 -0
  135. package/dist/themes/data/atom-one-light.d.ts +3 -0
  136. package/dist/themes/data/atom-one-light.js +177 -0
  137. package/dist/themes/data/catppuccin-frappe.d.ts +3 -0
  138. package/dist/themes/data/catppuccin-frappe.js +177 -0
  139. package/dist/themes/data/catppuccin-latte.d.ts +3 -0
  140. package/dist/themes/data/catppuccin-latte.js +177 -0
  141. package/dist/themes/data/catppuccin-macchiato.d.ts +3 -0
  142. package/dist/themes/data/catppuccin-macchiato.js +177 -0
  143. package/dist/themes/data/catppuccin-mocha.d.ts +3 -0
  144. package/dist/themes/data/catppuccin-mocha.js +177 -0
  145. package/dist/themes/data/cyberpunk.d.ts +17 -0
  146. package/dist/themes/data/cyberpunk.js +193 -0
  147. package/dist/themes/data/default.d.ts +3 -0
  148. package/dist/themes/data/default.js +160 -0
  149. package/dist/themes/data/dracula.d.ts +3 -0
  150. package/dist/themes/data/dracula.js +177 -0
  151. package/dist/themes/data/flexoki.d.ts +3 -0
  152. package/dist/themes/data/flexoki.js +177 -0
  153. package/dist/themes/data/gruvbox.d.ts +3 -0
  154. package/dist/themes/data/gruvbox.js +177 -0
  155. package/dist/themes/data/index.d.ts +35 -0
  156. package/dist/themes/data/index.js +64 -0
  157. package/dist/themes/data/monokai.d.ts +3 -0
  158. package/dist/themes/data/monokai.js +177 -0
  159. package/dist/themes/data/nord.d.ts +3 -0
  160. package/dist/themes/data/nord.js +177 -0
  161. package/dist/themes/data/rose-pine-dawn.d.ts +3 -0
  162. package/dist/themes/data/rose-pine-dawn.js +177 -0
  163. package/dist/themes/data/rose-pine-moon.d.ts +3 -0
  164. package/dist/themes/data/rose-pine-moon.js +177 -0
  165. package/dist/themes/data/rose-pine.d.ts +3 -0
  166. package/dist/themes/data/rose-pine.js +177 -0
  167. package/dist/themes/data/solarized-dark.d.ts +3 -0
  168. package/dist/themes/data/solarized-dark.js +177 -0
  169. package/dist/themes/data/solarized-light.d.ts +3 -0
  170. package/dist/themes/data/solarized-light.js +177 -0
  171. package/dist/themes/data/svg-export.d.ts +3 -0
  172. package/dist/themes/data/svg-export.js +177 -0
  173. package/dist/themes/data/textual-ansi.d.ts +3 -0
  174. package/dist/themes/data/textual-ansi.js +160 -0
  175. package/dist/themes/data/textual-dark.d.ts +3 -0
  176. package/dist/themes/data/textual-dark.js +160 -0
  177. package/dist/themes/data/textual-light.d.ts +3 -0
  178. package/dist/themes/data/textual-light.js +160 -0
  179. package/dist/themes/data/tokyo-night.d.ts +3 -0
  180. package/dist/themes/data/tokyo-night.js +177 -0
  181. package/dist/themes/data/types.d.ts +31 -0
  182. package/dist/themes/data/types.js +10 -0
  183. package/dist/themes/palette.d.ts +21 -0
  184. package/dist/themes/palette.js +28 -0
  185. package/dist/themes/ramp.d.ts +83 -0
  186. package/dist/themes/ramp.js +122 -0
  187. package/dist/themes/registry.d.ts +44 -0
  188. package/dist/themes/registry.js +94 -0
  189. package/dist/themes/terminalThemes.d.ts +49 -0
  190. package/dist/themes/terminalThemes.js +63 -0
  191. package/dist/themes/transpose.d.ts +87 -0
  192. package/dist/themes/transpose.js +138 -0
  193. package/dist/widgets/button.d.ts +49 -0
  194. package/dist/widgets/button.js +208 -0
  195. package/dist/widgets/checkbox.d.ts +41 -0
  196. package/dist/widgets/checkbox.js +157 -0
  197. package/dist/widgets/dropdown.d.ts +67 -0
  198. package/dist/widgets/dropdown.js +450 -0
  199. package/dist/widgets/event-router.d.ts +71 -0
  200. package/dist/widgets/event-router.js +629 -0
  201. package/dist/widgets/focus-manager.d.ts +45 -0
  202. package/dist/widgets/focus-manager.js +191 -0
  203. package/dist/widgets/hit.d.ts +64 -0
  204. package/dist/widgets/hit.js +113 -0
  205. package/dist/widgets/index.d.ts +20 -0
  206. package/dist/widgets/index.js +14 -0
  207. package/dist/widgets/slider.d.ts +57 -0
  208. package/dist/widgets/slider.js +270 -0
  209. package/dist/widgets/static-item.d.ts +34 -0
  210. package/dist/widgets/static-item.js +54 -0
  211. package/dist/widgets/text-input.d.ts +274 -0
  212. package/dist/widgets/text-input.js +1165 -0
  213. package/dist/widgets/toggle.d.ts +44 -0
  214. package/dist/widgets/toggle.js +180 -0
  215. package/dist/widgets/types.d.ts +87 -0
  216. package/dist/widgets/types.js +30 -0
  217. package/dist/widgets/widget-app.d.ts +63 -0
  218. package/dist/widgets/widget-app.js +199 -0
  219. package/dist/widgets/widget-base.d.ts +40 -0
  220. package/dist/widgets/widget-base.js +165 -0
  221. package/package.json +6 -2
@@ -0,0 +1,157 @@
1
+ /**
2
+ * Checkbox widget — boolean toggle with label.
3
+ * [LAW:dataflow-not-control-flow] one Segment of fixed width every render;
4
+ * the indicator character and style come from observable state.
5
+ * [LAW:one-type-per-behavior] shared widget infrastructure lives on WidgetBase.
6
+ *
7
+ * Visual states:
8
+ * unchecked — "[ ] label"
9
+ * checked — "[✓] label" (ASCII fallback "[x] label" when options.asciiOnly)
10
+ * focused — underline on the rendered segment (no width change)
11
+ * disabled — dimmed
12
+ */
13
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
14
+ var useValue = arguments.length > 2;
15
+ for (var i = 0; i < initializers.length; i++) {
16
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
17
+ }
18
+ return useValue ? value : void 0;
19
+ };
20
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
21
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
22
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
23
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
24
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
25
+ var _, done = false;
26
+ for (var i = decorators.length - 1; i >= 0; i--) {
27
+ var context = {};
28
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
29
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
30
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
31
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
32
+ if (kind === "accessor") {
33
+ if (result === void 0) continue;
34
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
35
+ if (_ = accept(result.get)) descriptor.get = _;
36
+ if (_ = accept(result.set)) descriptor.set = _;
37
+ if (_ = accept(result.init)) initializers.unshift(_);
38
+ }
39
+ else if (_ = accept(result)) {
40
+ if (kind === "field") initializers.unshift(_);
41
+ else descriptor[key] = _;
42
+ }
43
+ }
44
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
45
+ done = true;
46
+ };
47
+ import { observable, action, observableRef } from "mobx";
48
+ import { Segment } from "../core/segment.js";
49
+ import { Style } from "../core/style.js";
50
+ import { ColorSpec } from "../core/color.js";
51
+ import { cellLen } from "../core/cells.js";
52
+ import { DEFAULT_TERMINAL_THEME } from "../themes/terminalThemes.js";
53
+ import { drawable } from "../core/protocol.js";
54
+ import { WidgetBase } from "./widget-base.js";
55
+ let Checkbox = (() => {
56
+ let _classSuper = WidgetBase;
57
+ let _instanceExtraInitializers = [];
58
+ let _label_decorators;
59
+ let _label_initializers = [];
60
+ let _label_extraInitializers = [];
61
+ let _checked_decorators;
62
+ let _checked_initializers = [];
63
+ let _checked_extraInitializers = [];
64
+ let __theme_decorators;
65
+ let __theme_initializers = [];
66
+ let __theme_extraInitializers = [];
67
+ let _setTheme_decorators;
68
+ let _handleKey_decorators;
69
+ let _handleMouse_decorators;
70
+ return class Checkbox extends _classSuper {
71
+ static {
72
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
73
+ _label_decorators = [observable];
74
+ _checked_decorators = [observable];
75
+ __theme_decorators = [observableRef];
76
+ _setTheme_decorators = [action];
77
+ _handleKey_decorators = [action];
78
+ _handleMouse_decorators = [action];
79
+ __esDecorate(this, null, _label_decorators, { kind: "accessor", name: "label", static: false, private: false, access: { has: obj => "label" in obj, get: obj => obj.label, set: (obj, value) => { obj.label = value; } }, metadata: _metadata }, _label_initializers, _label_extraInitializers);
80
+ __esDecorate(this, null, _checked_decorators, { kind: "accessor", name: "checked", static: false, private: false, access: { has: obj => "checked" in obj, get: obj => obj.checked, set: (obj, value) => { obj.checked = value; } }, metadata: _metadata }, _checked_initializers, _checked_extraInitializers);
81
+ __esDecorate(this, null, __theme_decorators, { kind: "accessor", name: "_theme", static: false, private: false, access: { has: obj => "_theme" in obj, get: obj => obj._theme, set: (obj, value) => { obj._theme = value; } }, metadata: _metadata }, __theme_initializers, __theme_extraInitializers);
82
+ __esDecorate(this, null, _setTheme_decorators, { kind: "method", name: "setTheme", static: false, private: false, access: { has: obj => "setTheme" in obj, get: obj => obj.setTheme }, metadata: _metadata }, null, _instanceExtraInitializers);
83
+ __esDecorate(this, null, _handleKey_decorators, { kind: "method", name: "handleKey", static: false, private: false, access: { has: obj => "handleKey" in obj, get: obj => obj.handleKey }, metadata: _metadata }, null, _instanceExtraInitializers);
84
+ __esDecorate(this, null, _handleMouse_decorators, { kind: "method", name: "handleMouse", static: false, private: false, access: { has: obj => "handleMouse" in obj, get: obj => obj.handleMouse }, metadata: _metadata }, null, _instanceExtraInitializers);
85
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
86
+ }
87
+ id = __runInitializers(this, _instanceExtraInitializers);
88
+ focusable = true;
89
+ #label_accessor_storage = __runInitializers(this, _label_initializers, void 0);
90
+ get label() { return this.#label_accessor_storage; }
91
+ set label(value) { this.#label_accessor_storage = value; }
92
+ #checked_accessor_storage = (__runInitializers(this, _label_extraInitializers), __runInitializers(this, _checked_initializers, void 0));
93
+ get checked() { return this.#checked_accessor_storage; }
94
+ set checked(value) { this.#checked_accessor_storage = value; }
95
+ #_theme_accessor_storage = (__runInitializers(this, _checked_extraInitializers), __runInitializers(this, __theme_initializers, void 0));
96
+ // [LAW:types-are-the-program] @observableRef so setTheme() triggers a
97
+ // re-render — see slider.ts.
98
+ get _theme() { return this.#_theme_accessor_storage; }
99
+ set _theme(value) { this.#_theme_accessor_storage = value; }
100
+ constructor(options) {
101
+ super();
102
+ __runInitializers(this, __theme_extraInitializers);
103
+ this.id = options.id ?? `checkbox-${options.label.toLowerCase().replace(/\s+/g, "-")}`;
104
+ this.label = options.label;
105
+ this.checked = options.checked ?? false;
106
+ this.disabled = options.disabled ?? false;
107
+ this._theme = options.theme ?? DEFAULT_TERMINAL_THEME;
108
+ }
109
+ setTheme(theme) { this._theme = theme; }
110
+ // --- Event handlers ---
111
+ handleKey(event) {
112
+ if (this.disabled)
113
+ return;
114
+ if (event.key === "space") {
115
+ this.checked = !this.checked;
116
+ this.emitChange();
117
+ event.stop();
118
+ return;
119
+ }
120
+ if (event.key === "enter") {
121
+ this.emitSubmit();
122
+ event.stop();
123
+ }
124
+ }
125
+ handleMouse(event) {
126
+ if (this.disabled)
127
+ return;
128
+ // A release that dragged off the checkbox cancels the press.
129
+ if (event.type === "mouse_up" && event.over) {
130
+ this.checked = !this.checked;
131
+ this.emitChange();
132
+ }
133
+ }
134
+ // --- Rendering ---
135
+ draw(options) {
136
+ const indicator = this.checked ? drawable(options, "✓", "x") : " ";
137
+ const text = `[${indicator}] ${this.label}`;
138
+ if (this.disabled) {
139
+ return [new Segment(text, new Style({ color: "#666666", bgcolor: "#333333", dim: true }))];
140
+ }
141
+ const fg = this.checked ? this.resolvePalette("primary") : this.resolvePalette("foreground");
142
+ return [new Segment(text, new Style({ color: fg, underline: this.focused }))];
143
+ }
144
+ measure(_options) {
145
+ // [LAW:one-source-of-truth] cellLen — see button.ts.
146
+ const width = cellLen(this.label) + 4;
147
+ return { minimum: width, maximum: width };
148
+ }
149
+ // --- Palette resolution ---
150
+ resolvePalette(key) {
151
+ const rgba = this._theme.palette.get(key);
152
+ // [LAW:no-defensive-null-guards] palette must contain all keys; missing is a construction bug.
153
+ return ColorSpec.fromRgba(rgba);
154
+ }
155
+ };
156
+ })();
157
+ export { Checkbox };
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Dropdown widget — single-select from option list, with built-in filter.
3
+ *
4
+ * [LAW:one-source-of-truth] Inline footprint (always 1 row, the header)
5
+ * is independent of rendered shape (1 row collapsed, 1 + M rows expanded
6
+ * where M = filteredOptions.length, or 1 when no matches). render() emits
7
+ * the header row only; renderOverlay() emits option rows or a
8
+ * "(no matches)" placeholder.
9
+ *
10
+ * [LAW:dataflow-not-control-flow] `expanded` and `filter` are data;
11
+ * layout never reserves space for the option list; the overlay pass
12
+ * paints over whatever is below.
13
+ *
14
+ * [LAW:one-source-of-truth] `options` and `selectedIndex` are canonical.
15
+ * `filter` is internal view state. `filteredOptions` is the derived
16
+ * subsequence (case-insensitive substring match). `highlightedIndex`
17
+ * indexes into `filteredOptions`. Commit maps the filtered position
18
+ * back to canonical idx by reference, so selection survives any filter
19
+ * mutation.
20
+ *
21
+ * Width invariant: measure() always returns maxLabelLen(options) + 4
22
+ * regardless of filter state — the query is right-clipped, never wider
23
+ * than the header. See docs/widgets.md → Dropdown.
24
+ */
25
+ import { Segment } from "../core/segment.js";
26
+ import { type RenderOptions } from "../core/protocol.js";
27
+ import type { TerminalTheme } from "../core/color.js";
28
+ import { WidgetBase } from "./widget-base.js";
29
+ import type { KeyEvent, WidgetMouseEvent, WidgetFocusEvent, OverlayRenderable } from "./types.js";
30
+ export interface DropdownOptions {
31
+ options: string[];
32
+ selectedIndex?: number;
33
+ id?: string;
34
+ disabled?: boolean;
35
+ theme?: TerminalTheme;
36
+ }
37
+ export declare class Dropdown extends WidgetBase implements OverlayRenderable {
38
+ readonly id: string;
39
+ readonly focusable = true;
40
+ accessor options: string[];
41
+ accessor selectedIndex: number;
42
+ accessor expanded: boolean;
43
+ accessor highlightedIndex: number;
44
+ accessor filter: string;
45
+ get filteredOptions(): {
46
+ label: string;
47
+ idx: number;
48
+ }[];
49
+ private accessor _theme;
50
+ constructor(options: DropdownOptions);
51
+ private clampIndex;
52
+ setTheme(theme: TerminalTheme): void;
53
+ handleKey(event: KeyEvent): void;
54
+ handleMouse(event: WidgetMouseEvent): void;
55
+ handleFocus(event: WidgetFocusEvent): void;
56
+ protected draw(options: RenderOptions): Iterable<Segment>;
57
+ private headerText;
58
+ renderOverlay(_options: RenderOptions): Iterable<Segment> | null;
59
+ private renderNoMatchRow;
60
+ private renderOptionRow;
61
+ private maxLabelLen;
62
+ measure(_options: RenderOptions): {
63
+ minimum: number;
64
+ maximum: number;
65
+ };
66
+ private resolvePalette;
67
+ }