"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.TextPrompt = exports.SelectPrompt = exports.SelectKeyPrompt = exports.Prompt = exports.PasswordPrompt = exports.MultiSelectPrompt = exports.GroupMultiSelectPrompt = exports.ConfirmPrompt = exports.AutocompletePrompt = void 0;exports.block = xt;exports.getRows = exports.getColumns = void 0;exports.isCancel = Ct;exports.settings = void 0;exports.updateSettings = It;exports.wrapTextWithPrefix = Bt;var _nodeUtil = require("node:util");var _nodeProcess = require("node:process");var _nodeReadline = _interopRequireWildcard(require("node:readline"));var k = _nodeReadline;var _sisteransi = require("sisteransi");var _nodeTty = require("node:tty");function _interopRequireWildcard(e, t) {if ("function" == typeof WeakMap) var r = new WeakMap(),n = new WeakMap();return (_interopRequireWildcard = function (e, t) {if (!t && e && e.__esModule) return e;var o,i,f = { __proto__: null, default: e };if (null === e || "object" != typeof e && "function" != typeof e) return f;if (o = t ? n : r) {if (o.has(e)) return o.get(e);o.set(e, f);}for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]);return f;})(e, t);}function x(t, e, s) {if (!s.some((u) => !u.disabled)) return t;const i = t + e,r = Math.max(s.length - 1, 0),n = i < 0 ? r : i > r ? 0 : i;return s[n].disabled ? x(n, e < 0 ? -1 : 1, s) : n;}const at = (t) => t === 161 || t === 164 || t === 167 || t === 168 || t === 170 || t === 173 || t === 174 || t >= 176 && t <= 180 || t >= 182 && t <= 186 || t >= 188 && t <= 191 || t === 198 || t === 208 || t === 215 || t === 216 || t >= 222 && t <= 225 || t === 230 || t >= 232 && t <= 234 || t === 236 || t === 237 || t === 240 || t === 242 || t === 243 || t >= 247 && t <= 250 || t === 252 || t === 254 || t === 257 || t === 273 || t === 275 || t === 283 || t === 294 || t === 295 || t === 299 || t >= 305 && t <= 307 || t === 312 || t >= 319 && t <= 322 || t === 324 || t >= 328 && t <= 331 || t === 333 || t === 338 || t === 339 || t === 358 || t === 359 || t === 363 || t === 462 || t === 464 || t === 466 || t === 468 || t === 470 || t === 472 || t === 474 || t === 476 || t === 593 || t === 609 || t === 708 || t === 711 || t >= 713 && t <= 715 || t === 717 || t === 720 || t >= 728 && t <= 731 || t === 733 || t === 735 || t >= 768 && t <= 879 || t >= 913 && t <= 929 || t >= 931 && t <= 937 || t >= 945 && t <= 961 || t >= 963 && t <= 969 || t === 1025 || t >= 1040 && t <= 1103 || t === 1105 || t === 8208 || t >= 8211 && t <= 8214 || t === 8216 || t === 8217 || t === 8220 || t === 8221 || t >= 8224 && t <= 8226 || t >= 8228 && t <= 8231 || t === 8240 || t === 8242 || t === 8243 || t === 8245 || t === 8251 || t === 8254 || t === 8308 || t === 8319 || t >= 8321 && t <= 8324 || t === 8364 || t === 8451 || t === 8453 || t === 8457 || t === 8467 || t === 8470 || t === 8481 || t === 8482 || t === 8486 || t === 8491 || t === 8531 || t === 8532 || t >= 8539 && t <= 8542 || t >= 8544 && t <= 8555 || t >= 8560 && t <= 8569 || t === 8585 || t >= 8592 && t <= 8601 || t === 8632 || t === 8633 || t === 8658 || t === 8660 || t === 8679 || t === 8704 || t === 8706 || t === 8707 || t === 8711 || t === 8712 || t === 8715 || t === 8719 || t === 8721 || t === 8725 || t === 8730 || t >= 8733 && t <= 8736 || t === 8739 || t === 8741 || t >= 8743 && t <= 8748 || t === 8750 || t >= 8756 && t <= 8759 || t === 8764 || t === 8765 || t === 8776 || t === 8780 || t === 8786 || t === 8800 || t === 8801 || t >= 8804 && t <= 8807 || t === 8810 || t === 8811 || t === 8814 || t === 8815 || t === 8834 || t === 8835 || t === 8838 || t === 8839 || t === 8853 || t === 8857 || t === 8869 || t === 8895 || t === 8978 || t >= 9312 && t <= 9449 || t >= 9451 && t <= 9547 || t >= 9552 && t <= 9587 || t >= 9600 && t <= 9615 || t >= 9618 && t <= 9621 || t === 9632 || t === 9633 || t >= 9635 && t <= 9641 || t === 9650 || t === 9651 || t === 9654 || t === 9655 || t === 9660 || t === 9661 || t === 9664 || t === 9665 || t >= 9670 && t <= 9672 || t === 9675 || t >= 9678 && t <= 9681 || t >= 9698 && t <= 9701 || t === 9711 || t === 9733 || t === 9734 || t === 9737 || t === 9742 || t === 9743 || t === 9756 || t === 9758 || t === 9792 || t === 9794 || t === 9824 || t === 9825 || t >= 9827 && t <= 9829 || t >= 9831 && t <= 9834 || t === 9836 || t === 9837 || t === 9839 || t === 9886 || t === 9887 || t === 9919 || t >= 9926 && t <= 9933 || t >= 9935 && t <= 9939 || t >= 9941 && t <= 9953 || t === 9955 || t === 9960 || t === 9961 || t >= 9963 && t <= 9969 || t === 9972 || t >= 9974 && t <= 9977 || t === 9979 || t === 9980 || t === 9982 || t === 9983 || t === 10045 || t >= 10102 && t <= 10111 || t >= 11094 && t <= 11097 || t >= 12872 && t <= 12879 || t >= 57344 && t <= 63743 || t >= 65024 && t <= 65039 || t === 65533 || t >= 127232 && t <= 127242 || t >= 127248 && t <= 127277 || t >= 127280 && t <= 127337 || t >= 127344 && t <= 127373 || t === 127375 || t === 127376 || t >= 127387 && t <= 127404 || t >= 917760 && t <= 917999 || t >= 983040 && t <= 1048573 || t >= 1048576 && t <= 1114109,lt = (t) => t === 12288 || t >= 65281 && t <= 65376 || t >= 65504 && t <= 65510,ht = (t) => t >= 4352 && t <= 4447 || t === 8986 || t === 8987 || t === 9001 || t === 9002 || t >= 9193 && t <= 9196 || t === 9200 || t === 9203 || t === 9725 || t === 9726 || t === 9748 || t === 9749 || t >= 9800 && t <= 9811 || t === 9855 || t === 9875 || t === 9889 || t === 9898 || t === 9899 || t === 9917 || t === 9918 || t === 9924 || t === 9925 || t === 9934 || t === 9940 || t === 9962 || t === 9970 || t === 9971 || t === 9973 || t === 9978 || t === 9981 || t === 9989 || t === 9994 || t === 9995 || t === 10024 || t === 10060 || t === 10062 || t >= 10067 && t <= 10069 || t === 10071 || t >= 10133 && t <= 10135 || t === 10160 || t === 10175 || t === 11035 || t === 11036 || t === 11088 || t === 11093 || t >= 11904 && t <= 11929 || t >= 11931 && t <= 12019 || t >= 12032 && t <= 12245 || t >= 12272 && t <= 12287 || t >= 12289 && t <= 12350 || t >= 12353 && t <= 12438 || t >= 12441 && t <= 12543 || t >= 12549 && t <= 12591 || t >= 12593 && t <= 12686 || t >= 12688 && t <= 12771 || t >= 12783 && t <= 12830 || t >= 12832 && t <= 12871 || t >= 12880 && t <= 19903 || t >= 19968 && t <= 42124 || t >= 42128 && t <= 42182 || t >= 43360 && t <= 43388 || t >= 44032 && t <= 55203 || t >= 63744 && t <= 64255 || t >= 65040 && t <= 65049 || t >= 65072 && t <= 65106 || t >= 65108 && t <= 65126 || t >= 65128 && t <= 65131 || t >= 94176 && t <= 94180 || t === 94192 || t === 94193 || t >= 94208 && t <= 100343 || t >= 100352 && t <= 101589 || t >= 101632 && t <= 101640 || t >= 110576 && t <= 110579 || t >= 110581 && t <= 110587 || t === 110589 || t === 110590 || t >= 110592 && t <= 110882 || t === 110898 || t >= 110928 && t <= 110930 || t === 110933 || t >= 110948 && t <= 110951 || t >= 110960 && t <= 111355 || t === 126980 || t === 127183 || t === 127374 || t >= 127377 && t <= 127386 || t >= 127488 && t <= 127490 || t >= 127504 && t <= 127547 || t >= 127552 && t <= 127560 || t === 127568 || t === 127569 || t >= 127584 && t <= 127589 || t >= 127744 && t <= 127776 || t >= 127789 && t <= 127797 || t >= 127799 && t <= 127868 || t >= 127870 && t <= 127891 || t >= 127904 && t <= 127946 || t >= 127951 && t <= 127955 || t >= 127968 && t <= 127984 || t === 127988 || t >= 127992 && t <= 128062 || t === 128064 || t >= 128066 && t <= 128252 || t >= 128255 && t <= 128317 || t >= 128331 && t <= 128334 || t >= 128336 && t <= 128359 || t === 128378 || t === 128405 || t === 128406 || t === 128420 || t >= 128507 && t <= 128591 || t >= 128640 && t <= 128709 || t === 128716 || t >= 128720 && t <= 128722 || t >= 128725 && t <= 128727 || t >= 128732 && t <= 128735 || t === 128747 || t === 128748 || t >= 128756 && t <= 128764 || t >= 128992 && t <= 129003 || t === 129008 || t >= 129292 && t <= 129338 || t >= 129340 && t <= 129349 || t >= 129351 && t <= 129535 || t >= 129648 && t <= 129660 || t >= 129664 && t <= 129672 || t >= 129680 && t <= 129725 || t >= 129727 && t <= 129733 || t >= 129742 && t <= 129755 || t >= 129760 && t <= 129768 || t >= 129776 && t <= 129784 || t >= 131072 && t <= 196605 || t >= 196608 && t <= 262141,O = /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/y,y = /[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,L = /\t{1,1000}/y,P = /[\u{1F1E6}-\u{1F1FF}]{2}|\u{1F3F4}[\u{E0061}-\u{E007A}]{2}[\u{E0030}-\u{E0039}\u{E0061}-\u{E007A}]{1,3}\u{E007F}|(?:\p{Emoji}\uFE0F\u20E3?|\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation})(?:\u200D(?:\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F\u20E3?))*/yu,M = /(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,ct = /\p{M}+/gu,ft = { limit: 1 / 0, ellipsis: "" },X = (t, e = {}, s = {}) => {const i = e.limit ?? 1 / 0,r = e.ellipsis ?? "",n = e?.ellipsisWidth ?? (r ? X(r, ft, s).width : 0),u = s.ansiWidth ?? 0,a = s.controlWidth ?? 0,l = s.tabWidth ?? 8,E = s.ambiguousWidth ?? 1,g = s.emojiWidth ?? 2,m = s.fullWidthWidth ?? 2,A = s.regularWidth ?? 1,V = s.wideWidth ?? 2;let h = 0,o = 0,p = t.length,v = 0,F = !1,d = p,b = Math.max(0, i - n),C = 0,w = 0,c = 0,f = 0;t: for (;;) {if (w > C || o >= p && o > h) {const ut = t.slice(C, w) || t.slice(h, o);v = 0;for (const Y of ut.replaceAll(ct, "")) {const $ = Y.codePointAt(0) || 0;if (lt($) ? f = m : ht($) ? f = V : E !== A && at($) ? f = E : f = A, c + f > b && (d = Math.min(d, Math.max(C, h) + v)), c + f > i) {F = !0;break t;}v += Y.length, c += f;}C = w = 0;}if (o >= p) break;if (M.lastIndex = o, M.test(t)) {if (v = M.lastIndex - o, f = v * A, c + f > b && (d = Math.min(d, o + Math.floor((b - c) / A))), c + f > i) {F = !0;break;}c += f, C = h, w = o, o = h = M.lastIndex;continue;}if (O.lastIndex = o, O.test(t)) {if (c + u > b && (d = Math.min(d, o)), c + u > i) {F = !0;break;}c += u, C = h, w = o, o = h = O.lastIndex;continue;}if (y.lastIndex = o, y.test(t)) {if (v = y.lastIndex - o, f = v * a, c + f > b && (d = Math.min(d, o + Math.floor((b - c) / a))), c + f > i) {F = !0;break;}c += f, C = h, w = o, o = h = y.lastIndex;continue;}if (L.lastIndex = o, L.test(t)) {if (v = L.lastIndex - o, f = v * l, c + f > b && (d = Math.min(d, o + Math.floor((b - c) / l))), c + f > i) {F = !0;break;}c += f, C = h, w = o, o = h = L.lastIndex;continue;}if (P.lastIndex = o, P.test(t)) {if (c + g > b && (d = Math.min(d, o)), c + g > i) {F = !0;break;}c += g, C = h, w = o, o = h = P.lastIndex;continue;}o += 1;}return { width: F ? b : c, index: F ? d : p, truncated: F, ellipsed: F && i >= n };},pt = { limit: 1 / 0, ellipsis: "", ellipsisWidth: 0 },S = (t, e = {}) => X(t, pt, e).width,T = "\x1B",Z = "\x9B",Ft = 39,j = "\x07",Q = "[",dt = "]",tt = "m",U = `${dt}8;;`,et = new RegExp(`(?:\\${Q}(?\\d+)m|\\${U}(?.*)${j})`, "y"),mt = (t) => {if (t >= 30 && t <= 37 || t >= 90 && t <= 97) return 39;if (t >= 40 && t <= 47 || t >= 100 && t <= 107) return 49;if (t === 1 || t === 2) return 22;if (t === 3) return 23;if (t === 4) return 24;if (t === 7) return 27;if (t === 8) return 28;if (t === 9) return 29;if (t === 0) return 0;},st = (t) => `${T}${Q}${t}${tt}`,it = (t) => `${T}${U}${t}${j}`,gt = (t) => t.map((e) => S(e)),G = (t, e, s) => {const i = e[Symbol.iterator]();let r = !1,n = !1,u = t.at(-1),a = u === void 0 ? 0 : S(u),l = i.next(),E = i.next(),g = 0;for (; !l.done;) {const m = l.value,A = S(m);a + A <= s ? t[t.length - 1] += m : (t.push(m), a = 0), (m === T || m === Z) && (r = !0, n = e.startsWith(U, g + 1)), r ? n ? m === j && (r = !1, n = !1) : m === tt && (r = !1) : (a += A, a === s && !E.done && (t.push(""), a = 0)), l = E, E = i.next(), g += m.length;}u = t.at(-1), !a && u !== void 0 && u.length > 0 && t.length > 1 && (t[t.length - 2] += t.pop());},vt = (t) => {const e = t.split(" ");let s = e.length;for (; s > 0 && !(S(e[s - 1]) > 0);) s--;return s === e.length ? t : e.slice(0, s).join(" ") + e.slice(s).join("");},Et = (t, e, s = {}) => {if (s.trim !== !1 && t.trim() === "") return "";let i = "",r,n;const u = t.split(" "),a = gt(u);let l = [""];for (const [h, o] of u.entries()) {s.trim !== !1 && (l[l.length - 1] = (l.at(-1) ?? "").trimStart());let p = S(l.at(-1) ?? "");if (h !== 0 && (p >= e && (s.wordWrap === !1 || s.trim === !1) && (l.push(""), p = 0), (p > 0 || s.trim === !1) && (l[l.length - 1] += " ", p++)), s.hard && a[h] > e) {const v = e - p,F = 1 + Math.floor((a[h] - v - 1) / e);Math.floor((a[h] - 1) / e) < F && l.push(""), G(l, o, e);continue;}if (p + a[h] > e && p > 0 && a[h] > 0) {if (s.wordWrap === !1 && p < e) {G(l, o, e);continue;}l.push("");}if (p + a[h] > e && s.wordWrap === !1) {G(l, o, e);continue;}l[l.length - 1] += o;}s.trim !== !1 && (l = l.map((h) => vt(h)));const E = l.join(` `),g = E[Symbol.iterator]();let m = g.next(),A = g.next(),V = 0;for (; !m.done;) {const h = m.value,o = A.value;if (i += h, h === T || h === Z) {et.lastIndex = V + 1;const F = et.exec(E)?.groups;if (F?.code !== void 0) {const d = Number.parseFloat(F.code);r = d === Ft ? void 0 : d;} else F?.uri !== void 0 && (n = F.uri.length === 0 ? void 0 : F.uri);}const p = r ? mt(r) : void 0;o === ` ` ? (n && (i += it("")), r && p && (i += st(p))) : h === ` ` && (r && p && (i += st(r)), n && (i += it(n))), V += h.length, m = A, A = g.next();}return i;};function K(t, e, s) {return String(t).normalize().replaceAll(`\r `, ` `).split(` `).map((i) => Et(i, e, s)).join(` `);}const At = ["up", "down", "left", "right", "space", "enter", "cancel"],_ = exports.settings = { actions: new Set(At), aliases: new Map([["k", "up"], ["j", "down"], ["h", "left"], ["l", "right"], ["", "cancel"], ["escape", "cancel"]]), messages: { cancel: "Canceled", error: "Something went wrong" }, withGuide: !0 };function It(t) {if (t.aliases !== void 0) {const e = t.aliases;for (const s in e) {if (!Object.hasOwn(e, s)) continue;const i = e[s];_.actions.has(i) && (_.aliases.has(s) || _.aliases.set(s, i));}}if (t.messages !== void 0) {const e = t.messages;e.cancel !== void 0 && (_.messages.cancel = e.cancel), e.error !== void 0 && (_.messages.error = e.error);}t.withGuide !== void 0 && (_.withGuide = t.withGuide !== !1);}function H(t, e) {if (typeof t == "string") return _.aliases.get(t) === e;for (const s of t) if (s !== void 0 && H(s, e)) return !0;return !1;}function _t(t, e) {if (t === e) return;const s = t.split(` `),i = e.split(` `),r = Math.max(s.length, i.length),n = [];for (let u = 0; u < r; u++) s[u] !== i[u] && n.push(u);return { lines: n, numLinesBefore: s.length, numLinesAfter: i.length, numLines: r };}const bt = globalThis.process.platform.startsWith("win"),z = Symbol("clack:cancel");function Ct(t) {return t === z;}function W(t, e) {const s = t;s.isTTY && s.setRawMode(e);}function xt({ input: t = _nodeProcess.stdin, output: e = _nodeProcess.stdout, overwrite: s = !0, hideCursor: i = !0 } = {}) {const r = k.createInterface({ input: t, output: e, prompt: "", tabSize: 1 });k.emitKeypressEvents(t, r), t instanceof _nodeTty.ReadStream && t.isTTY && t.setRawMode(!0);const n = (u, { name: a, sequence: l }) => {const E = String(u);if (H([E, a, l], "cancel")) {i && e.write(_sisteransi.cursor.show), process.exit(0);return;}if (!s) return;const g = a === "return" ? 0 : -1,m = a === "return" ? -1 : 0;k.moveCursor(e, g, m, () => {k.clearLine(e, 1, () => {t.once("keypress", n);});});};return i && e.write(_sisteransi.cursor.hide), t.once("keypress", n), () => {t.off("keypress", n), i && e.write(_sisteransi.cursor.show), t instanceof _nodeTty.ReadStream && t.isTTY && !bt && t.setRawMode(!1), r.terminal = !1, r.close();};}const rt = (t) => "columns" in t && typeof t.columns == "number" ? t.columns : 80,nt = (t) => "rows" in t && typeof t.rows == "number" ? t.rows : 20;exports.getRows = nt;exports.getColumns = rt;function Bt(t, e, s, i = s) {const r = rt(t ?? _nodeProcess.stdout);return K(e, r - s.length, { hard: !0, trim: !1 }).split(` `).map((n, u) => `${u === 0 ? i : s}${n}`).join(` `);}class B {input;output;_abortSignal;rl;opts;_render;_track = !1;_prevFrame = "";_subscribers = new Map();_cursor = 0;state = "initial";error = "";value;userInput = "";constructor(e, s = !0) {const { input: i = _nodeProcess.stdin, output: r = _nodeProcess.stdout, render: n, signal: u, ...a } = e;this.opts = a, this.onKeypress = this.onKeypress.bind(this), this.close = this.close.bind(this), this.render = this.render.bind(this), this._render = n.bind(this), this._track = s, this._abortSignal = u, this.input = i, this.output = r;}unsubscribe() {this._subscribers.clear();}setSubscriber(e, s) {const i = this._subscribers.get(e) ?? [];i.push(s), this._subscribers.set(e, i);}on(e, s) {this.setSubscriber(e, { cb: s });}once(e, s) {this.setSubscriber(e, { cb: s, once: !0 });}emit(e, ...s) {const i = this._subscribers.get(e) ?? [],r = [];for (const n of i) n.cb(...s), n.once && r.push(() => i.splice(i.indexOf(n), 1));for (const n of r) n();}prompt() {return new Promise((e) => {if (this._abortSignal) {if (this._abortSignal.aborted) return this.state = "cancel", this.close(), e(z);this._abortSignal.addEventListener("abort", () => {this.state = "cancel", this.close();}, { once: !0 });}this.rl = _nodeReadline.default.createInterface({ input: this.input, tabSize: 2, prompt: "", escapeCodeTimeout: 50, terminal: !0 }), this.rl.prompt(), this.opts.initialUserInput !== void 0 && this._setUserInput(this.opts.initialUserInput, !0), this.input.on("keypress", this.onKeypress), W(this.input, !0), this.output.on("resize", this.render), this.render(), this.once("submit", () => {this.output.write(_sisteransi.cursor.show), this.output.off("resize", this.render), W(this.input, !1), e(this.value);}), this.once("cancel", () => {this.output.write(_sisteransi.cursor.show), this.output.off("resize", this.render), W(this.input, !1), e(z);});});}_isActionKey(e, s) {return e === " ";}_setValue(e) {this.value = e, this.emit("value", this.value);}_setUserInput(e, s) {this.userInput = e ?? "", this.emit("userInput", this.userInput), s && this._track && this.rl && (this.rl.write(this.userInput), this._cursor = this.rl.cursor);}_clearUserInput() {this.rl?.write(null, { ctrl: !0, name: "u" }), this._setUserInput("");}onKeypress(e, s) {if (this._track && s.name !== "return" && (s.name && this._isActionKey(e, s) && this.rl?.write(null, { ctrl: !0, name: "h" }), this._cursor = this.rl?.cursor ?? 0, this._setUserInput(this.rl?.line)), this.state === "error" && (this.state = "active"), s?.name && (!this._track && _.aliases.has(s.name) && this.emit("cursor", _.aliases.get(s.name)), _.actions.has(s.name) && this.emit("cursor", s.name)), e && (e.toLowerCase() === "y" || e.toLowerCase() === "n") && this.emit("confirm", e.toLowerCase() === "y"), this.emit("key", e?.toLowerCase(), s), s?.name === "return") {if (this.opts.validate) {const i = this.opts.validate(this.value);i && (this.error = i instanceof Error ? i.message : i, this.state = "error", this.rl?.write(this.userInput));}this.state !== "error" && (this.state = "submit");}H([e, s?.name, s?.sequence], "cancel") && (this.state = "cancel"), (this.state === "submit" || this.state === "cancel") && this.emit("finalize"), this.render(), (this.state === "submit" || this.state === "cancel") && this.close();}close() {this.input.unpipe(), this.input.removeListener("keypress", this.onKeypress), this.output.write(` `), W(this.input, !1), this.rl?.close(), this.rl = void 0, this.emit(`${this.state}`, this.value), this.unsubscribe();}restoreCursor() {const e = K(this._prevFrame, process.stdout.columns, { hard: !0, trim: !1 }).split(` `).length - 1;this.output.write(_sisteransi.cursor.move(-999, e * -1));}render() {const e = K(this._render(this) ?? "", process.stdout.columns, { hard: !0, trim: !1 });if (e !== this._prevFrame) {if (this.state === "initial") this.output.write(_sisteransi.cursor.hide);else {const s = _t(this._prevFrame, e),i = nt(this.output);if (this.restoreCursor(), s) {const r = Math.max(0, s.numLinesAfter - i),n = Math.max(0, s.numLinesBefore - i);let u = s.lines.find((a) => a >= r);if (u === void 0) {this._prevFrame = e;return;}if (s.lines.length === 1) {this.output.write(_sisteransi.cursor.move(0, u - n)), this.output.write(_sisteransi.erase.lines(1));const a = e.split(` `);this.output.write(a[u]), this._prevFrame = e, this.output.write(_sisteransi.cursor.move(0, a.length - u - 1));return;} else if (s.lines.length > 1) {if (r < n) u = r;else {const l = u - n;l > 0 && this.output.write(_sisteransi.cursor.move(0, l));}this.output.write(_sisteransi.erase.down());const a = e.split(` `).slice(u);this.output.write(a.join(` `)), this._prevFrame = e;return;}}this.output.write(_sisteransi.erase.down());}this.output.write(e), this.state === "initial" && (this.state = "active"), this._prevFrame = e;}}}exports.Prompt = B;function wt(t, e) {if (t === void 0 || e.length === 0) return 0;const s = e.findIndex((i) => i.value === t);return s !== -1 ? s : 0;}function Dt(t, e) {return (e.label ?? String(e.value)).toLowerCase().includes(t.toLowerCase());}function St(t, e) {if (e) return t ? e : e[0];}class Vt extends B {filteredOptions;multiple;isNavigating = !1;selectedValues = [];focusedValue;#t = 0;#s = "";#i;#e;get cursor() {return this.#t;}get userInputWithCursor() {if (!this.userInput) return (0, _nodeUtil.styleText)(["inverse", "hidden"], "_");if (this._cursor >= this.userInput.length) return `${this.userInput}\u2588`;const e = this.userInput.slice(0, this._cursor),[s, ...i] = this.userInput.slice(this._cursor);return `${e}${(0, _nodeUtil.styleText)("inverse", s)}${i.join("")}`;}get options() {return typeof this.#e == "function" ? this.#e() : this.#e;}constructor(e) {super(e), this.#e = e.options;const s = this.options;this.filteredOptions = [...s], this.multiple = e.multiple === !0, this.#i = e.filter ?? Dt;let i;if (e.initialValue && Array.isArray(e.initialValue) ? this.multiple ? i = e.initialValue : i = e.initialValue.slice(0, 1) : !this.multiple && this.options.length > 0 && (i = [this.options[0].value]), i) for (const r of i) {const n = s.findIndex((u) => u.value === r);n !== -1 && (this.toggleSelected(r), this.#t = n);}this.focusedValue = this.options[this.#t]?.value, this.on("key", (r, n) => this.#r(r, n)), this.on("userInput", (r) => this.#n(r));}_isActionKey(e, s) {return e === " " || this.multiple && this.isNavigating && s.name === "space" && e !== void 0 && e !== "";}#r(e, s) {const i = s.name === "up",r = s.name === "down",n = s.name === "return";i || r ? (this.#t = x(this.#t, i ? -1 : 1, this.filteredOptions), this.focusedValue = this.filteredOptions[this.#t]?.value, this.multiple || (this.selectedValues = [this.focusedValue]), this.isNavigating = !0) : n ? this.value = St(this.multiple, this.selectedValues) : this.multiple ? this.focusedValue !== void 0 && (s.name === "tab" || this.isNavigating && s.name === "space") ? this.toggleSelected(this.focusedValue) : this.isNavigating = !1 : (this.focusedValue && (this.selectedValues = [this.focusedValue]), this.isNavigating = !1);}deselectAll() {this.selectedValues = [];}toggleSelected(e) {this.filteredOptions.length !== 0 && (this.multiple ? this.selectedValues.includes(e) ? this.selectedValues = this.selectedValues.filter((s) => s !== e) : this.selectedValues = [...this.selectedValues, e] : this.selectedValues = [e]);}#n(e) {if (e !== this.#s) {this.#s = e;const s = this.options;e ? this.filteredOptions = s.filter((n) => this.#i(e, n)) : this.filteredOptions = [...s];const i = wt(this.focusedValue, this.filteredOptions);this.#t = x(i, 0, this.filteredOptions);const r = this.filteredOptions[this.#t];r && !r.disabled ? this.focusedValue = r.value : this.focusedValue = void 0, this.multiple || (this.focusedValue !== void 0 ? this.toggleSelected(this.focusedValue) : this.deselectAll());}}}exports.AutocompletePrompt = Vt;class kt extends B {get cursor() {return this.value ? 0 : 1;}get _value() {return this.cursor === 0;}constructor(e) {super(e, !1), this.value = !!e.initialValue, this.on("userInput", () => {this.value = this._value;}), this.on("confirm", (s) => {this.output.write(_sisteransi.cursor.move(0, -1)), this.value = s, this.state = "submit", this.close();}), this.on("cursor", () => {this.value = !this.value;});}}exports.ConfirmPrompt = kt;class yt extends B {options;cursor = 0;#t;getGroupItems(e) {return this.options.filter((s) => s.group === e);}isGroupSelected(e) {const s = this.getGroupItems(e),i = this.value;return i === void 0 ? !1 : s.every((r) => i.includes(r.value));}toggleValue() {const e = this.options[this.cursor];if (this.value === void 0 && (this.value = []), e.group === !0) {const s = e.value,i = this.getGroupItems(s);this.isGroupSelected(s) ? this.value = this.value.filter((r) => i.findIndex((n) => n.value === r) === -1) : this.value = [...this.value, ...i.map((r) => r.value)], this.value = Array.from(new Set(this.value));} else {const s = this.value.includes(e.value);this.value = s ? this.value.filter((i) => i !== e.value) : [...this.value, e.value];}}constructor(e) {super(e, !1);const { options: s } = e;this.#t = e.selectableGroups !== !1, this.options = Object.entries(s).flatMap(([i, r]) => [{ value: i, group: !0, label: i }, ...r.map((n) => ({ ...n, group: i }))]), this.value = [...(e.initialValues ?? [])], this.cursor = Math.max(this.options.findIndex(({ value: i }) => i === e.cursorAt), this.#t ? 0 : 1), this.on("cursor", (i) => {switch (i) {case "left":case "up":{this.cursor = this.cursor === 0 ? this.options.length - 1 : this.cursor - 1;const r = this.options[this.cursor]?.group === !0;!this.#t && r && (this.cursor = this.cursor === 0 ? this.options.length - 1 : this.cursor - 1);break;}case "down":case "right":{this.cursor = this.cursor === this.options.length - 1 ? 0 : this.cursor + 1;const r = this.options[this.cursor]?.group === !0;!this.#t && r && (this.cursor = this.cursor === this.options.length - 1 ? 0 : this.cursor + 1);break;}case "space":this.toggleValue();break;}});}}exports.GroupMultiSelectPrompt = yt;let Lt = class extends B {options;cursor = 0;get _value() {return this.options[this.cursor].value;}get _enabledOptions() {return this.options.filter((e) => e.disabled !== !0);}toggleAll() {const e = this._enabledOptions,s = this.value !== void 0 && this.value.length === e.length;this.value = s ? [] : e.map((i) => i.value);}toggleInvert() {const e = this.value;if (!e) return;const s = this._enabledOptions.filter((i) => !e.includes(i.value));this.value = s.map((i) => i.value);}toggleValue() {this.value === void 0 && (this.value = []);const e = this.value.includes(this._value);this.value = e ? this.value.filter((s) => s !== this._value) : [...this.value, this._value];}constructor(e) {super(e, !1), this.options = e.options, this.value = [...(e.initialValues ?? [])];const s = Math.max(this.options.findIndex(({ value: i }) => i === e.cursorAt), 0);this.cursor = this.options[s].disabled ? x(s, 1, this.options) : s, this.on("key", (i) => {i === "a" && this.toggleAll(), i === "i" && this.toggleInvert();}), this.on("cursor", (i) => {switch (i) {case "left":case "up":this.cursor = x(this.cursor, -1, this.options);break;case "down":case "right":this.cursor = x(this.cursor, 1, this.options);break;case "space":this.toggleValue();break;}});}};exports.MultiSelectPrompt = Lt;class Mt extends B {_mask = "\u2022";get cursor() {return this._cursor;}get masked() {return this.userInput.replaceAll(/./g, this._mask);}get userInputWithCursor() {if (this.state === "submit" || this.state === "cancel") return this.masked;const e = this.userInput;if (this.cursor >= e.length) return `${this.masked}${(0, _nodeUtil.styleText)(["inverse", "hidden"], "_")}`;const s = this.masked,i = s.slice(0, this.cursor),r = s.slice(this.cursor);return `${i}${(0, _nodeUtil.styleText)("inverse", r[0])}${r.slice(1)}`;}clear() {this._clearUserInput();}constructor({ mask: e, ...s }) {super(s), this._mask = e ?? "\u2022", this.on("userInput", (i) => {this._setValue(i);});}}exports.PasswordPrompt = Mt;class Tt extends B {options;cursor = 0;get _selectedValue() {return this.options[this.cursor];}changeValue() {this.value = this._selectedValue.value;}constructor(e) {super(e, !1), this.options = e.options;const s = this.options.findIndex(({ value: r }) => r === e.initialValue),i = s === -1 ? 0 : s;this.cursor = this.options[i].disabled ? x(i, 1, this.options) : i, this.changeValue(), this.on("cursor", (r) => {switch (r) {case "left":case "up":this.cursor = x(this.cursor, -1, this.options);break;case "down":case "right":this.cursor = x(this.cursor, 1, this.options);break;}this.changeValue();});}}exports.SelectPrompt = Tt;class Wt extends B {options;cursor = 0;constructor(e) {super(e, !1), this.options = e.options;const s = e.caseSensitive === !0,i = this.options.map(({ value: [r] }) => s ? r : r?.toLowerCase());this.cursor = Math.max(i.indexOf(e.initialValue), 0), this.on("key", (r, n) => {if (!r) return;const u = s && n.shift ? r.toUpperCase() : r;if (!i.includes(u)) return;const a = this.options.find(({ value: [l] }) => s ? l === u : l?.toLowerCase() === r);a && (this.value = a.value, this.state = "submit", this.emit("submit"));});}}exports.SelectKeyPrompt = Wt;class $t extends B {get userInputWithCursor() {if (this.state === "submit") return this.userInput;const e = this.userInput;if (this.cursor >= e.length) return `${this.userInput}\u2588`;const s = e.slice(0, this.cursor),[i, ...r] = e.slice(this.cursor);return `${s}${(0, _nodeUtil.styleText)("inverse", i)}${r.join("")}`;}get cursor() {return this._cursor;}constructor(e) {super({ ...e, initialUserInput: e.initialUserInput ?? e.initialValue }), this.on("userInput", (s) => {this._setValue(s);}), this.on("finalize", () => {this.value || (this.value = e.defaultValue), this.value === void 0 && (this.value = "");});}}exports.TextPrompt = $t; /* v9-46c4c332b168a456 */