ccstatusline 2.1.2 → 2.1.3
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.
- package/README.md +11 -1
- package/dist/ccstatusline.js +961 -638
- package/package.json +1 -1
package/dist/ccstatusline.js
CHANGED
|
@@ -39273,7 +39273,7 @@ Gradient.propTypes = {
|
|
|
39273
39273
|
var dist_default4 = Gradient;
|
|
39274
39274
|
|
|
39275
39275
|
// src/tui/App.tsx
|
|
39276
|
-
var
|
|
39276
|
+
var import_react46 = __toESM(require_react(), 1);
|
|
39277
39277
|
|
|
39278
39278
|
// src/utils/claude-settings.ts
|
|
39279
39279
|
import { execSync } from "child_process";
|
|
@@ -51469,7 +51469,7 @@ import { execSync as execSync3 } from "child_process";
|
|
|
51469
51469
|
import * as fs5 from "fs";
|
|
51470
51470
|
import * as path4 from "path";
|
|
51471
51471
|
var __dirname = "/Users/sirmalloc/Projects/Personal/ccstatusline/src/utils";
|
|
51472
|
-
var PACKAGE_VERSION = "2.1.
|
|
51472
|
+
var PACKAGE_VERSION = "2.1.3";
|
|
51473
51473
|
function getPackageVersion() {
|
|
51474
51474
|
if (/^\d+\.\d+\.\d+/.test(PACKAGE_VERSION)) {
|
|
51475
51475
|
return PACKAGE_VERSION;
|
|
@@ -51957,7 +51957,7 @@ function SelectInput({ items = [], isFocused = true, initialIndex = 0, indicator
|
|
|
51957
51957
|
}
|
|
51958
51958
|
var SelectInput_default = SelectInput;
|
|
51959
51959
|
// src/tui/components/ColorMenu.tsx
|
|
51960
|
-
var
|
|
51960
|
+
var import_react34 = __toESM(require_react(), 1);
|
|
51961
51961
|
|
|
51962
51962
|
// src/utils/colors.ts
|
|
51963
51963
|
function createColorMap() {
|
|
@@ -52790,6 +52790,206 @@ function getContextWindowContextLengthTokens(data) {
|
|
|
52790
52790
|
return getContextWindowMetrics(data).contextLengthTokens;
|
|
52791
52791
|
}
|
|
52792
52792
|
|
|
52793
|
+
// src/utils/ansi.ts
|
|
52794
|
+
var ESC2 = "\x1B";
|
|
52795
|
+
var BEL2 = "\x07";
|
|
52796
|
+
var C1_CSI = "";
|
|
52797
|
+
var C1_OSC = "";
|
|
52798
|
+
var ST = "";
|
|
52799
|
+
var SGR_REGEX = /\x1b\[[0-9;]*m/g;
|
|
52800
|
+
function isCsiFinalByte(codePoint) {
|
|
52801
|
+
return codePoint >= 64 && codePoint <= 126;
|
|
52802
|
+
}
|
|
52803
|
+
function parseCsi(input, start, bodyStart) {
|
|
52804
|
+
let index = bodyStart;
|
|
52805
|
+
while (index < input.length) {
|
|
52806
|
+
const codePoint = input.charCodeAt(index);
|
|
52807
|
+
if (isCsiFinalByte(codePoint)) {
|
|
52808
|
+
const end = index + 1;
|
|
52809
|
+
return {
|
|
52810
|
+
nextIndex: end,
|
|
52811
|
+
sequence: input.slice(start, end)
|
|
52812
|
+
};
|
|
52813
|
+
}
|
|
52814
|
+
index++;
|
|
52815
|
+
}
|
|
52816
|
+
return {
|
|
52817
|
+
nextIndex: input.length,
|
|
52818
|
+
sequence: input.slice(start)
|
|
52819
|
+
};
|
|
52820
|
+
}
|
|
52821
|
+
function getOsc8Action(body) {
|
|
52822
|
+
if (!body.startsWith("8;")) {
|
|
52823
|
+
return;
|
|
52824
|
+
}
|
|
52825
|
+
const urlStart = body.indexOf(";", 2);
|
|
52826
|
+
if (urlStart === -1) {
|
|
52827
|
+
return;
|
|
52828
|
+
}
|
|
52829
|
+
const url2 = body.slice(urlStart + 1);
|
|
52830
|
+
return url2.length > 0 ? "open" : "close";
|
|
52831
|
+
}
|
|
52832
|
+
function parseOsc(input, start, bodyStart) {
|
|
52833
|
+
let index = bodyStart;
|
|
52834
|
+
while (index < input.length) {
|
|
52835
|
+
const current = input[index];
|
|
52836
|
+
if (!current) {
|
|
52837
|
+
break;
|
|
52838
|
+
}
|
|
52839
|
+
if (current === BEL2) {
|
|
52840
|
+
const end = index + 1;
|
|
52841
|
+
const body = input.slice(bodyStart, index);
|
|
52842
|
+
return {
|
|
52843
|
+
nextIndex: end,
|
|
52844
|
+
sequence: input.slice(start, end),
|
|
52845
|
+
osc8Action: getOsc8Action(body),
|
|
52846
|
+
osc8Terminator: "bel"
|
|
52847
|
+
};
|
|
52848
|
+
}
|
|
52849
|
+
if (current === ST) {
|
|
52850
|
+
const end = index + 1;
|
|
52851
|
+
const body = input.slice(bodyStart, index);
|
|
52852
|
+
return {
|
|
52853
|
+
nextIndex: end,
|
|
52854
|
+
sequence: input.slice(start, end),
|
|
52855
|
+
osc8Action: getOsc8Action(body),
|
|
52856
|
+
osc8Terminator: "st"
|
|
52857
|
+
};
|
|
52858
|
+
}
|
|
52859
|
+
if (current === ESC2 && input[index + 1] === "\\") {
|
|
52860
|
+
const end = index + 2;
|
|
52861
|
+
const body = input.slice(bodyStart, index);
|
|
52862
|
+
return {
|
|
52863
|
+
nextIndex: end,
|
|
52864
|
+
sequence: input.slice(start, end),
|
|
52865
|
+
osc8Action: getOsc8Action(body),
|
|
52866
|
+
osc8Terminator: "st"
|
|
52867
|
+
};
|
|
52868
|
+
}
|
|
52869
|
+
index++;
|
|
52870
|
+
}
|
|
52871
|
+
return {
|
|
52872
|
+
nextIndex: input.length,
|
|
52873
|
+
sequence: input.slice(start)
|
|
52874
|
+
};
|
|
52875
|
+
}
|
|
52876
|
+
function parseEscapeSequence(input, index) {
|
|
52877
|
+
const current = input[index];
|
|
52878
|
+
if (!current) {
|
|
52879
|
+
return null;
|
|
52880
|
+
}
|
|
52881
|
+
if (current === ESC2) {
|
|
52882
|
+
const next = input[index + 1];
|
|
52883
|
+
if (next === "[") {
|
|
52884
|
+
return parseCsi(input, index, index + 2);
|
|
52885
|
+
}
|
|
52886
|
+
if (next === "]") {
|
|
52887
|
+
return parseOsc(input, index, index + 2);
|
|
52888
|
+
}
|
|
52889
|
+
if (next) {
|
|
52890
|
+
return {
|
|
52891
|
+
nextIndex: index + 2,
|
|
52892
|
+
sequence: input.slice(index, index + 2)
|
|
52893
|
+
};
|
|
52894
|
+
}
|
|
52895
|
+
return {
|
|
52896
|
+
nextIndex: input.length,
|
|
52897
|
+
sequence: current
|
|
52898
|
+
};
|
|
52899
|
+
}
|
|
52900
|
+
if (current === C1_CSI) {
|
|
52901
|
+
return parseCsi(input, index, index + 1);
|
|
52902
|
+
}
|
|
52903
|
+
if (current === C1_OSC) {
|
|
52904
|
+
return parseOsc(input, index, index + 1);
|
|
52905
|
+
}
|
|
52906
|
+
return null;
|
|
52907
|
+
}
|
|
52908
|
+
function getOsc8CloseSequence(terminator) {
|
|
52909
|
+
if (terminator === "bel") {
|
|
52910
|
+
return `${ESC2}]8;;${BEL2}`;
|
|
52911
|
+
}
|
|
52912
|
+
return `${ESC2}]8;;${ESC2}\\`;
|
|
52913
|
+
}
|
|
52914
|
+
function stripSgrCodes(text) {
|
|
52915
|
+
return text.replace(SGR_REGEX, "");
|
|
52916
|
+
}
|
|
52917
|
+
function getVisibleText(text) {
|
|
52918
|
+
let result = "";
|
|
52919
|
+
let index = 0;
|
|
52920
|
+
while (index < text.length) {
|
|
52921
|
+
const escape2 = parseEscapeSequence(text, index);
|
|
52922
|
+
if (escape2) {
|
|
52923
|
+
index = escape2.nextIndex;
|
|
52924
|
+
continue;
|
|
52925
|
+
}
|
|
52926
|
+
const codePoint = text.codePointAt(index);
|
|
52927
|
+
if (codePoint === undefined) {
|
|
52928
|
+
break;
|
|
52929
|
+
}
|
|
52930
|
+
const character = String.fromCodePoint(codePoint);
|
|
52931
|
+
result += character;
|
|
52932
|
+
index += character.length;
|
|
52933
|
+
}
|
|
52934
|
+
return result;
|
|
52935
|
+
}
|
|
52936
|
+
function getVisibleWidth(text) {
|
|
52937
|
+
return stringWidth(getVisibleText(text));
|
|
52938
|
+
}
|
|
52939
|
+
function truncateStyledText(text, maxWidth, options = {}) {
|
|
52940
|
+
if (maxWidth <= 0) {
|
|
52941
|
+
return "";
|
|
52942
|
+
}
|
|
52943
|
+
if (getVisibleWidth(text) <= maxWidth) {
|
|
52944
|
+
return text;
|
|
52945
|
+
}
|
|
52946
|
+
const addEllipsis = options.ellipsis ?? true;
|
|
52947
|
+
const ellipsis = addEllipsis ? "..." : "";
|
|
52948
|
+
const ellipsisWidth = addEllipsis ? stringWidth(ellipsis) : 0;
|
|
52949
|
+
if (addEllipsis && maxWidth <= ellipsisWidth) {
|
|
52950
|
+
return ".".repeat(maxWidth);
|
|
52951
|
+
}
|
|
52952
|
+
const targetWidth = Math.max(0, maxWidth - ellipsisWidth);
|
|
52953
|
+
let output = "";
|
|
52954
|
+
let currentWidth = 0;
|
|
52955
|
+
let index = 0;
|
|
52956
|
+
let didTruncate = false;
|
|
52957
|
+
let openOsc8Terminator = null;
|
|
52958
|
+
while (index < text.length) {
|
|
52959
|
+
const escape2 = parseEscapeSequence(text, index);
|
|
52960
|
+
if (escape2) {
|
|
52961
|
+
output += escape2.sequence;
|
|
52962
|
+
index = escape2.nextIndex;
|
|
52963
|
+
if (escape2.osc8Action === "open") {
|
|
52964
|
+
openOsc8Terminator = escape2.osc8Terminator ?? "st";
|
|
52965
|
+
} else if (escape2.osc8Action === "close") {
|
|
52966
|
+
openOsc8Terminator = null;
|
|
52967
|
+
}
|
|
52968
|
+
continue;
|
|
52969
|
+
}
|
|
52970
|
+
const codePoint = text.codePointAt(index);
|
|
52971
|
+
if (codePoint === undefined) {
|
|
52972
|
+
break;
|
|
52973
|
+
}
|
|
52974
|
+
const character = String.fromCodePoint(codePoint);
|
|
52975
|
+
const charWidth = stringWidth(character);
|
|
52976
|
+
if (currentWidth + charWidth > targetWidth) {
|
|
52977
|
+
didTruncate = true;
|
|
52978
|
+
break;
|
|
52979
|
+
}
|
|
52980
|
+
output += character;
|
|
52981
|
+
currentWidth += charWidth;
|
|
52982
|
+
index += character.length;
|
|
52983
|
+
}
|
|
52984
|
+
if (!didTruncate) {
|
|
52985
|
+
return text;
|
|
52986
|
+
}
|
|
52987
|
+
if (openOsc8Terminator) {
|
|
52988
|
+
output += getOsc8CloseSequence(openOsc8Terminator);
|
|
52989
|
+
}
|
|
52990
|
+
return output + ellipsis;
|
|
52991
|
+
}
|
|
52992
|
+
|
|
52793
52993
|
// src/utils/model-context.ts
|
|
52794
52994
|
function toValidWindowSize(value) {
|
|
52795
52995
|
if (typeof value !== "number" || !Number.isFinite(value) || value <= 0) {
|
|
@@ -52836,7 +53036,6 @@ function calculateContextPercentage(context) {
|
|
|
52836
53036
|
}
|
|
52837
53037
|
|
|
52838
53038
|
// src/utils/renderer.ts
|
|
52839
|
-
var ANSI_REGEX = new RegExp(`\\x1b\\[[0-9;]*m`, "g");
|
|
52840
53039
|
function formatTokens(count) {
|
|
52841
53040
|
if (count >= 1e6)
|
|
52842
53041
|
return `${(count / 1e6).toFixed(1)}M`;
|
|
@@ -52926,7 +53125,7 @@ function renderPowerlineStatusLine(widgets, settings, context, lineIndex = 0, gl
|
|
|
52926
53125
|
if (widgetText) {
|
|
52927
53126
|
const padding = settings.defaultPadding ?? "";
|
|
52928
53127
|
if (settings.overrideForegroundColor && settings.overrideForegroundColor !== "none" && widget.type === "custom-command" && widget.preserveColors) {
|
|
52929
|
-
widgetText = widgetText
|
|
53128
|
+
widgetText = stripSgrCodes(widgetText);
|
|
52930
53129
|
}
|
|
52931
53130
|
const prevItem = i > 0 ? filteredWidgets[i - 1] : null;
|
|
52932
53131
|
const nextItem = i < filteredWidgets.length - 1 ? filteredWidgets[i + 1] : null;
|
|
@@ -52972,13 +53171,13 @@ function renderPowerlineStatusLine(widgets, settings, context, lineIndex = 0, gl
|
|
|
52972
53171
|
if (!isPreviousMerged) {
|
|
52973
53172
|
const maxWidth = preCalculatedMaxWidths[alignmentPos];
|
|
52974
53173
|
if (maxWidth !== undefined) {
|
|
52975
|
-
let combinedLength =
|
|
53174
|
+
let combinedLength = getVisibleWidth(element.content);
|
|
52976
53175
|
let j = i;
|
|
52977
53176
|
while (j < widgetElements.length - 1 && widgetElements[j]?.widget.merge) {
|
|
52978
53177
|
j++;
|
|
52979
53178
|
const nextElement = widgetElements[j];
|
|
52980
53179
|
if (nextElement) {
|
|
52981
|
-
combinedLength +=
|
|
53180
|
+
combinedLength += getVisibleWidth(nextElement.content);
|
|
52982
53181
|
}
|
|
52983
53182
|
}
|
|
52984
53183
|
const paddingNeeded = maxWidth - combinedLength;
|
|
@@ -53113,31 +53312,9 @@ function renderPowerlineStatusLine(widgets, settings, context, lineIndex = 0, gl
|
|
|
53113
53312
|
}
|
|
53114
53313
|
result += source_default.reset("");
|
|
53115
53314
|
if (terminalWidth && terminalWidth > 0) {
|
|
53116
|
-
const plainLength = result
|
|
53315
|
+
const plainLength = getVisibleWidth(result);
|
|
53117
53316
|
if (plainLength > terminalWidth) {
|
|
53118
|
-
|
|
53119
|
-
let currentLength = 0;
|
|
53120
|
-
let inAnsiCode = false;
|
|
53121
|
-
for (const char of result) {
|
|
53122
|
-
if (char === "\x1B") {
|
|
53123
|
-
inAnsiCode = true;
|
|
53124
|
-
truncated += char;
|
|
53125
|
-
} else if (inAnsiCode) {
|
|
53126
|
-
truncated += char;
|
|
53127
|
-
if (char === "m") {
|
|
53128
|
-
inAnsiCode = false;
|
|
53129
|
-
}
|
|
53130
|
-
} else {
|
|
53131
|
-
if (currentLength < terminalWidth - 3) {
|
|
53132
|
-
truncated += char;
|
|
53133
|
-
currentLength++;
|
|
53134
|
-
} else {
|
|
53135
|
-
truncated += "...";
|
|
53136
|
-
break;
|
|
53137
|
-
}
|
|
53138
|
-
}
|
|
53139
|
-
}
|
|
53140
|
-
result = truncated;
|
|
53317
|
+
result = truncateStyledText(result, terminalWidth, { ellipsis: true });
|
|
53141
53318
|
}
|
|
53142
53319
|
}
|
|
53143
53320
|
return result;
|
|
@@ -53172,7 +53349,7 @@ function preRenderAllWidgets(allLinesWidgets, settings, context) {
|
|
|
53172
53349
|
continue;
|
|
53173
53350
|
}
|
|
53174
53351
|
const widgetText = widgetImpl.render(widget, context, settings) ?? "";
|
|
53175
|
-
const plainLength =
|
|
53352
|
+
const plainLength = getVisibleWidth(widgetText);
|
|
53176
53353
|
preRenderedLine.push({
|
|
53177
53354
|
content: widgetText,
|
|
53178
53355
|
plainLength,
|
|
@@ -53330,33 +53507,9 @@ function renderStatusLine(widgets, settings, context, preRenderedWidgets, preCal
|
|
|
53330
53507
|
if (widget.type === "custom-command" && widget.preserveColors) {
|
|
53331
53508
|
let finalOutput = widgetText;
|
|
53332
53509
|
if (widget.maxWidth && widget.maxWidth > 0) {
|
|
53333
|
-
const plainLength = widgetText
|
|
53510
|
+
const plainLength = getVisibleWidth(widgetText);
|
|
53334
53511
|
if (plainLength > widget.maxWidth) {
|
|
53335
|
-
|
|
53336
|
-
let currentLength = 0;
|
|
53337
|
-
let inAnsiCode = false;
|
|
53338
|
-
let ansiBuffer = "";
|
|
53339
|
-
for (const char of widgetText) {
|
|
53340
|
-
if (char === "\x1B") {
|
|
53341
|
-
inAnsiCode = true;
|
|
53342
|
-
ansiBuffer = char;
|
|
53343
|
-
} else if (inAnsiCode) {
|
|
53344
|
-
ansiBuffer += char;
|
|
53345
|
-
if (char === "m") {
|
|
53346
|
-
truncated += ansiBuffer;
|
|
53347
|
-
inAnsiCode = false;
|
|
53348
|
-
ansiBuffer = "";
|
|
53349
|
-
}
|
|
53350
|
-
} else {
|
|
53351
|
-
if (currentLength < widget.maxWidth) {
|
|
53352
|
-
truncated += char;
|
|
53353
|
-
currentLength++;
|
|
53354
|
-
} else {
|
|
53355
|
-
break;
|
|
53356
|
-
}
|
|
53357
|
-
}
|
|
53358
|
-
}
|
|
53359
|
-
finalOutput = truncated;
|
|
53512
|
+
finalOutput = truncateStyledText(widgetText, widget.maxWidth, { ellipsis: false });
|
|
53360
53513
|
}
|
|
53361
53514
|
}
|
|
53362
53515
|
elements.push({ content: finalOutput, type: widget.type, widget });
|
|
@@ -53440,7 +53593,7 @@ function renderStatusLine(widgets, settings, context, preRenderedWidgets, preCal
|
|
|
53440
53593
|
}
|
|
53441
53594
|
const partLengths = parts.map((part) => {
|
|
53442
53595
|
const joined = part.join("");
|
|
53443
|
-
return joined
|
|
53596
|
+
return getVisibleWidth(joined);
|
|
53444
53597
|
});
|
|
53445
53598
|
const totalContentLength = partLengths.reduce((sum, len) => sum + len, 0);
|
|
53446
53599
|
const flexCount = parts.length - 1;
|
|
@@ -53467,34 +53620,9 @@ function renderStatusLine(widgets, settings, context, preRenderedWidgets, preCal
|
|
|
53467
53620
|
}
|
|
53468
53621
|
const maxWidth = terminalWidth ?? detectedWidth;
|
|
53469
53622
|
if (maxWidth && maxWidth > 0) {
|
|
53470
|
-
const plainLength = statusLine
|
|
53623
|
+
const plainLength = getVisibleWidth(statusLine);
|
|
53471
53624
|
if (plainLength > maxWidth) {
|
|
53472
|
-
|
|
53473
|
-
let currentLength = 0;
|
|
53474
|
-
let inAnsiCode = false;
|
|
53475
|
-
let ansiBuffer = "";
|
|
53476
|
-
const targetLength = context.isPreview ? maxWidth - 3 : maxWidth - 3;
|
|
53477
|
-
for (const char of statusLine) {
|
|
53478
|
-
if (char === "\x1B") {
|
|
53479
|
-
inAnsiCode = true;
|
|
53480
|
-
ansiBuffer = char;
|
|
53481
|
-
} else if (inAnsiCode) {
|
|
53482
|
-
ansiBuffer += char;
|
|
53483
|
-
if (char === "m") {
|
|
53484
|
-
truncated += ansiBuffer;
|
|
53485
|
-
inAnsiCode = false;
|
|
53486
|
-
ansiBuffer = "";
|
|
53487
|
-
}
|
|
53488
|
-
} else {
|
|
53489
|
-
if (currentLength < targetLength) {
|
|
53490
|
-
truncated += char;
|
|
53491
|
-
currentLength++;
|
|
53492
|
-
} else {
|
|
53493
|
-
break;
|
|
53494
|
-
}
|
|
53495
|
-
}
|
|
53496
|
-
}
|
|
53497
|
-
statusLine = truncated + "...";
|
|
53625
|
+
statusLine = truncateStyledText(statusLine, maxWidth, { ellipsis: true });
|
|
53498
53626
|
}
|
|
53499
53627
|
}
|
|
53500
53628
|
return statusLine;
|
|
@@ -54185,7 +54313,7 @@ class CustomCommandWidget {
|
|
|
54185
54313
|
env: process.env
|
|
54186
54314
|
}).trim();
|
|
54187
54315
|
if (!item.preserveColors) {
|
|
54188
|
-
output = output
|
|
54316
|
+
output = getVisibleText(output);
|
|
54189
54317
|
}
|
|
54190
54318
|
if (item.maxWidth && output.length > item.maxWidth) {
|
|
54191
54319
|
output = output.substring(0, item.maxWidth - 3) + "...";
|
|
@@ -56813,6 +56941,200 @@ class ContextBarWidget {
|
|
|
56813
56941
|
return true;
|
|
56814
56942
|
}
|
|
56815
56943
|
}
|
|
56944
|
+
// src/widgets/Link.tsx
|
|
56945
|
+
var import_react32 = __toESM(require_react(), 1);
|
|
56946
|
+
var jsx_dev_runtime4 = __toESM(require_jsx_dev_runtime(), 1);
|
|
56947
|
+
function isValidHttpUrl(url2) {
|
|
56948
|
+
try {
|
|
56949
|
+
const parsed = new URL(url2);
|
|
56950
|
+
return parsed.protocol === "http:" || parsed.protocol === "https:";
|
|
56951
|
+
} catch {
|
|
56952
|
+
return false;
|
|
56953
|
+
}
|
|
56954
|
+
}
|
|
56955
|
+
function toEditorMetadata(widget) {
|
|
56956
|
+
const url2 = widget.metadata?.url ?? "";
|
|
56957
|
+
const text = widget.metadata?.text ?? "";
|
|
56958
|
+
return { url: url2, text };
|
|
56959
|
+
}
|
|
56960
|
+
function buildMetadata(widget, urlValue, textValue) {
|
|
56961
|
+
const metadata = { ...widget.metadata ?? {} };
|
|
56962
|
+
const trimmedUrl = urlValue.trim();
|
|
56963
|
+
const trimmedText = textValue.trim();
|
|
56964
|
+
if (trimmedUrl.length > 0) {
|
|
56965
|
+
metadata.url = trimmedUrl;
|
|
56966
|
+
} else {
|
|
56967
|
+
delete metadata.url;
|
|
56968
|
+
}
|
|
56969
|
+
if (trimmedText.length > 0) {
|
|
56970
|
+
metadata.text = trimmedText;
|
|
56971
|
+
} else {
|
|
56972
|
+
delete metadata.text;
|
|
56973
|
+
}
|
|
56974
|
+
if (Object.keys(metadata).length === 0) {
|
|
56975
|
+
const { metadata: metadata2, ...rest } = widget;
|
|
56976
|
+
return rest;
|
|
56977
|
+
}
|
|
56978
|
+
return {
|
|
56979
|
+
...widget,
|
|
56980
|
+
metadata
|
|
56981
|
+
};
|
|
56982
|
+
}
|
|
56983
|
+
function renderOsc8Link(url2, text) {
|
|
56984
|
+
return `\x1B]8;;${url2}\x1B\\${text}\x1B]8;;\x1B\\`;
|
|
56985
|
+
}
|
|
56986
|
+
function getLinkLabel(item) {
|
|
56987
|
+
const url2 = item.metadata?.url?.trim() ?? "";
|
|
56988
|
+
const metadataText = item.metadata?.text?.trim();
|
|
56989
|
+
const label = metadataText && metadataText.length > 0 ? metadataText : url2.length > 0 ? url2 : "no url";
|
|
56990
|
+
return { url: url2, label };
|
|
56991
|
+
}
|
|
56992
|
+
function withEmojiPrefix(label, rawValue) {
|
|
56993
|
+
return rawValue ? label : `\uD83D\uDD17 ${label}`;
|
|
56994
|
+
}
|
|
56995
|
+
|
|
56996
|
+
class LinkWidget {
|
|
56997
|
+
getDefaultColor() {
|
|
56998
|
+
return "cyan";
|
|
56999
|
+
}
|
|
57000
|
+
getDescription() {
|
|
57001
|
+
return "Displays a clickable terminal hyperlink using OSC 8";
|
|
57002
|
+
}
|
|
57003
|
+
getDisplayName() {
|
|
57004
|
+
return "Link";
|
|
57005
|
+
}
|
|
57006
|
+
getCategory() {
|
|
57007
|
+
return "Custom";
|
|
57008
|
+
}
|
|
57009
|
+
getEditorDisplay(item) {
|
|
57010
|
+
const { url: url2, label } = getLinkLabel(item);
|
|
57011
|
+
const metadataText = item.metadata?.text?.trim();
|
|
57012
|
+
const hasCustomText = Boolean(metadataText && metadataText.length > 0);
|
|
57013
|
+
const text = withEmojiPrefix(label, item.rawValue);
|
|
57014
|
+
const shortUrl = hasCustomText && url2.length > 0 ? url2.length > 28 ? `${url2.substring(0, 25)}...` : url2 : null;
|
|
57015
|
+
return {
|
|
57016
|
+
displayText: `${this.getDisplayName()} (${text})`,
|
|
57017
|
+
modifierText: shortUrl ? `(${shortUrl})` : undefined
|
|
57018
|
+
};
|
|
57019
|
+
}
|
|
57020
|
+
render(item, context, settings) {
|
|
57021
|
+
const { url: url2, label } = getLinkLabel(item);
|
|
57022
|
+
const displayText = withEmojiPrefix(label, item.rawValue);
|
|
57023
|
+
if (!url2 || !isValidHttpUrl(url2)) {
|
|
57024
|
+
return displayText;
|
|
57025
|
+
}
|
|
57026
|
+
return renderOsc8Link(url2, displayText);
|
|
57027
|
+
}
|
|
57028
|
+
getCustomKeybinds() {
|
|
57029
|
+
return [
|
|
57030
|
+
{ key: "u", label: "(u)rl", action: "edit-url" },
|
|
57031
|
+
{ key: "e", label: "(e)dit text", action: "edit-text" }
|
|
57032
|
+
];
|
|
57033
|
+
}
|
|
57034
|
+
renderEditor(props) {
|
|
57035
|
+
return /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(LinkEditor, {
|
|
57036
|
+
...props
|
|
57037
|
+
}, undefined, false, undefined, this);
|
|
57038
|
+
}
|
|
57039
|
+
supportsRawValue() {
|
|
57040
|
+
return true;
|
|
57041
|
+
}
|
|
57042
|
+
supportsColors(item) {
|
|
57043
|
+
return true;
|
|
57044
|
+
}
|
|
57045
|
+
}
|
|
57046
|
+
function getEditorMode(action) {
|
|
57047
|
+
if (action === "edit-url") {
|
|
57048
|
+
return "url";
|
|
57049
|
+
}
|
|
57050
|
+
return "text";
|
|
57051
|
+
}
|
|
57052
|
+
var LinkEditor = ({ widget, onComplete, onCancel, action }) => {
|
|
57053
|
+
const initial = toEditorMetadata(widget);
|
|
57054
|
+
const mode = getEditorMode(action);
|
|
57055
|
+
const [urlInput, setUrlInput] = import_react32.useState(initial.url);
|
|
57056
|
+
const [urlCursorPos, setUrlCursorPos] = import_react32.useState(initial.url.length);
|
|
57057
|
+
const [textInput, setTextInput] = import_react32.useState(initial.text);
|
|
57058
|
+
const [textCursorPos, setTextCursorPos] = import_react32.useState(initial.text.length);
|
|
57059
|
+
const isUrlMode = mode === "url";
|
|
57060
|
+
const activeValue = isUrlMode ? urlInput : textInput;
|
|
57061
|
+
const activeCursor = isUrlMode ? urlCursorPos : textCursorPos;
|
|
57062
|
+
const updateActiveValue = (value, cursor) => {
|
|
57063
|
+
if (isUrlMode) {
|
|
57064
|
+
setUrlInput(value);
|
|
57065
|
+
setUrlCursorPos(cursor);
|
|
57066
|
+
} else {
|
|
57067
|
+
setTextInput(value);
|
|
57068
|
+
setTextCursorPos(cursor);
|
|
57069
|
+
}
|
|
57070
|
+
};
|
|
57071
|
+
use_input_default((input, key) => {
|
|
57072
|
+
if (key.return) {
|
|
57073
|
+
onComplete(buildMetadata(widget, urlInput, textInput));
|
|
57074
|
+
} else if (key.escape) {
|
|
57075
|
+
onCancel();
|
|
57076
|
+
} else if (key.leftArrow) {
|
|
57077
|
+
updateActiveValue(activeValue, Math.max(0, activeCursor - 1));
|
|
57078
|
+
} else if (key.rightArrow) {
|
|
57079
|
+
updateActiveValue(activeValue, Math.min(activeValue.length, activeCursor + 1));
|
|
57080
|
+
} else if (key.backspace) {
|
|
57081
|
+
if (activeCursor > 0) {
|
|
57082
|
+
const value = activeValue.slice(0, activeCursor - 1) + activeValue.slice(activeCursor);
|
|
57083
|
+
updateActiveValue(value, activeCursor - 1);
|
|
57084
|
+
}
|
|
57085
|
+
} else if (key.delete) {
|
|
57086
|
+
if (activeCursor < activeValue.length) {
|
|
57087
|
+
const value = activeValue.slice(0, activeCursor) + activeValue.slice(activeCursor + 1);
|
|
57088
|
+
updateActiveValue(value, activeCursor);
|
|
57089
|
+
}
|
|
57090
|
+
} else if (shouldInsertInput(input, key)) {
|
|
57091
|
+
const value = activeValue.slice(0, activeCursor) + input + activeValue.slice(activeCursor);
|
|
57092
|
+
updateActiveValue(value, activeCursor + input.length);
|
|
57093
|
+
}
|
|
57094
|
+
});
|
|
57095
|
+
const showInvalidUrlWarning = isUrlMode && urlInput.trim().length > 0 && !isValidHttpUrl(urlInput.trim());
|
|
57096
|
+
const prompt = isUrlMode ? "Enter URL (http/https): " : "Enter link text (blank uses URL): ";
|
|
57097
|
+
return /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(Box_default, {
|
|
57098
|
+
flexDirection: "column",
|
|
57099
|
+
children: [
|
|
57100
|
+
/* @__PURE__ */ jsx_dev_runtime4.jsxDEV(Text, {
|
|
57101
|
+
children: [
|
|
57102
|
+
prompt,
|
|
57103
|
+
activeValue.slice(0, activeCursor),
|
|
57104
|
+
/* @__PURE__ */ jsx_dev_runtime4.jsxDEV(Text, {
|
|
57105
|
+
backgroundColor: "gray",
|
|
57106
|
+
color: "black",
|
|
57107
|
+
children: activeValue[activeCursor] ?? " "
|
|
57108
|
+
}, undefined, false, undefined, this),
|
|
57109
|
+
activeValue.slice(activeCursor + 1)
|
|
57110
|
+
]
|
|
57111
|
+
}, undefined, true, undefined, this),
|
|
57112
|
+
isUrlMode ? /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(Text, {
|
|
57113
|
+
dimColor: true,
|
|
57114
|
+
children: [
|
|
57115
|
+
"Current text:",
|
|
57116
|
+
" ",
|
|
57117
|
+
textInput.trim() || "(uses URL)"
|
|
57118
|
+
]
|
|
57119
|
+
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(Text, {
|
|
57120
|
+
dimColor: true,
|
|
57121
|
+
children: [
|
|
57122
|
+
"Current URL:",
|
|
57123
|
+
" ",
|
|
57124
|
+
urlInput.trim() || "(none)"
|
|
57125
|
+
]
|
|
57126
|
+
}, undefined, true, undefined, this),
|
|
57127
|
+
showInvalidUrlWarning && /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(Text, {
|
|
57128
|
+
color: "yellow",
|
|
57129
|
+
children: "URL must begin with http:// or https://"
|
|
57130
|
+
}, undefined, false, undefined, this),
|
|
57131
|
+
/* @__PURE__ */ jsx_dev_runtime4.jsxDEV(Text, {
|
|
57132
|
+
dimColor: true,
|
|
57133
|
+
children: "←→ move cursor, Enter save, ESC cancel"
|
|
57134
|
+
}, undefined, false, undefined, this)
|
|
57135
|
+
]
|
|
57136
|
+
}, undefined, true, undefined, this);
|
|
57137
|
+
};
|
|
56816
57138
|
// src/utils/widgets.ts
|
|
56817
57139
|
var widgetRegistry = new Map([
|
|
56818
57140
|
["model", new ModelWidget],
|
|
@@ -56836,6 +57158,7 @@ var widgetRegistry = new Map([
|
|
|
56836
57158
|
["version", new VersionWidget],
|
|
56837
57159
|
["custom-text", new CustomTextWidget],
|
|
56838
57160
|
["custom-command", new CustomCommandWidget],
|
|
57161
|
+
["link", new LinkWidget],
|
|
56839
57162
|
["claude-session-id", new ClaudeSessionIdWidget],
|
|
56840
57163
|
["session-name", new SessionNameWidget],
|
|
56841
57164
|
["free-memory", new FreeMemoryWidget],
|
|
@@ -56951,10 +57274,10 @@ function filterWidgetCatalog(catalog, category, query) {
|
|
|
56951
57274
|
}
|
|
56952
57275
|
|
|
56953
57276
|
// src/tui/components/ConfirmDialog.tsx
|
|
56954
|
-
var
|
|
56955
|
-
var
|
|
57277
|
+
var import_react33 = __toESM(require_react(), 1);
|
|
57278
|
+
var jsx_dev_runtime5 = __toESM(require_jsx_dev_runtime(), 1);
|
|
56956
57279
|
var ConfirmDialog = ({ message, onConfirm, onCancel, inline = false }) => {
|
|
56957
|
-
const [selectedIndex, setSelectedIndex] =
|
|
57280
|
+
const [selectedIndex, setSelectedIndex] = import_react33.useState(0);
|
|
56958
57281
|
use_input_default((input, key) => {
|
|
56959
57282
|
if (key.upArrow) {
|
|
56960
57283
|
setSelectedIndex(Math.max(0, selectedIndex - 1));
|
|
@@ -56973,17 +57296,17 @@ var ConfirmDialog = ({ message, onConfirm, onCancel, inline = false }) => {
|
|
|
56973
57296
|
const renderOptions = () => {
|
|
56974
57297
|
const yesStyle = selectedIndex === 0 ? { color: "cyan" } : {};
|
|
56975
57298
|
const noStyle = selectedIndex === 1 ? { color: "cyan" } : {};
|
|
56976
|
-
return /* @__PURE__ */
|
|
57299
|
+
return /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(Box_default, {
|
|
56977
57300
|
flexDirection: "column",
|
|
56978
57301
|
children: [
|
|
56979
|
-
/* @__PURE__ */
|
|
57302
|
+
/* @__PURE__ */ jsx_dev_runtime5.jsxDEV(Text, {
|
|
56980
57303
|
...yesStyle,
|
|
56981
57304
|
children: [
|
|
56982
57305
|
selectedIndex === 0 ? "▶ " : " ",
|
|
56983
57306
|
"Yes"
|
|
56984
57307
|
]
|
|
56985
57308
|
}, undefined, true, undefined, this),
|
|
56986
|
-
/* @__PURE__ */
|
|
57309
|
+
/* @__PURE__ */ jsx_dev_runtime5.jsxDEV(Text, {
|
|
56987
57310
|
...noStyle,
|
|
56988
57311
|
children: [
|
|
56989
57312
|
selectedIndex === 1 ? "▶ " : " ",
|
|
@@ -56996,13 +57319,13 @@ var ConfirmDialog = ({ message, onConfirm, onCancel, inline = false }) => {
|
|
|
56996
57319
|
if (inline) {
|
|
56997
57320
|
return renderOptions();
|
|
56998
57321
|
}
|
|
56999
|
-
return /* @__PURE__ */
|
|
57322
|
+
return /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(Box_default, {
|
|
57000
57323
|
flexDirection: "column",
|
|
57001
57324
|
children: [
|
|
57002
|
-
/* @__PURE__ */
|
|
57325
|
+
/* @__PURE__ */ jsx_dev_runtime5.jsxDEV(Text, {
|
|
57003
57326
|
children: message
|
|
57004
57327
|
}, undefined, false, undefined, this),
|
|
57005
|
-
/* @__PURE__ */
|
|
57328
|
+
/* @__PURE__ */ jsx_dev_runtime5.jsxDEV(Box_default, {
|
|
57006
57329
|
marginTop: 1,
|
|
57007
57330
|
children: renderOptions()
|
|
57008
57331
|
}, undefined, false, undefined, this)
|
|
@@ -57011,14 +57334,14 @@ var ConfirmDialog = ({ message, onConfirm, onCancel, inline = false }) => {
|
|
|
57011
57334
|
};
|
|
57012
57335
|
|
|
57013
57336
|
// src/tui/components/ColorMenu.tsx
|
|
57014
|
-
var
|
|
57337
|
+
var jsx_dev_runtime6 = __toESM(require_jsx_dev_runtime(), 1);
|
|
57015
57338
|
var ColorMenu = ({ widgets, lineIndex, settings, onUpdate, onBack }) => {
|
|
57016
|
-
const [showSeparators, setShowSeparators] =
|
|
57017
|
-
const [hexInputMode, setHexInputMode] =
|
|
57018
|
-
const [hexInput, setHexInput] =
|
|
57019
|
-
const [ansi256InputMode, setAnsi256InputMode] =
|
|
57020
|
-
const [ansi256Input, setAnsi256Input] =
|
|
57021
|
-
const [showClearConfirm, setShowClearConfirm] =
|
|
57339
|
+
const [showSeparators, setShowSeparators] = import_react34.useState(false);
|
|
57340
|
+
const [hexInputMode, setHexInputMode] = import_react34.useState(false);
|
|
57341
|
+
const [hexInput, setHexInput] = import_react34.useState("");
|
|
57342
|
+
const [ansi256InputMode, setAnsi256InputMode] = import_react34.useState(false);
|
|
57343
|
+
const [ansi256Input, setAnsi256Input] = import_react34.useState("");
|
|
57344
|
+
const [showClearConfirm, setShowClearConfirm] = import_react34.useState(false);
|
|
57022
57345
|
const powerlineEnabled = settings.powerline.enabled;
|
|
57023
57346
|
const colorableWidgets = widgets.filter((widget) => {
|
|
57024
57347
|
if (widget.type === "separator") {
|
|
@@ -57027,8 +57350,8 @@ var ColorMenu = ({ widgets, lineIndex, settings, onUpdate, onBack }) => {
|
|
|
57027
57350
|
const widgetInstance = getWidget(widget.type);
|
|
57028
57351
|
return widgetInstance ? widgetInstance.supportsColors(widget) : true;
|
|
57029
57352
|
});
|
|
57030
|
-
const [highlightedItemId, setHighlightedItemId] =
|
|
57031
|
-
const [editingBackground, setEditingBackground] =
|
|
57353
|
+
const [highlightedItemId, setHighlightedItemId] = import_react34.useState(colorableWidgets[0]?.id ?? null);
|
|
57354
|
+
const [editingBackground, setEditingBackground] = import_react34.useState(false);
|
|
57032
57355
|
const hasNoItems = colorableWidgets.length === 0;
|
|
57033
57356
|
use_input_default((input, key) => {
|
|
57034
57357
|
if (hasNoItems) {
|
|
@@ -57224,30 +57547,30 @@ var ColorMenu = ({ widgets, lineIndex, settings, onUpdate, onBack }) => {
|
|
|
57224
57547
|
}
|
|
57225
57548
|
});
|
|
57226
57549
|
if (hasNoItems) {
|
|
57227
|
-
return /* @__PURE__ */
|
|
57550
|
+
return /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Box_default, {
|
|
57228
57551
|
flexDirection: "column",
|
|
57229
57552
|
children: [
|
|
57230
|
-
/* @__PURE__ */
|
|
57553
|
+
/* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57231
57554
|
bold: true,
|
|
57232
57555
|
children: [
|
|
57233
57556
|
"Configure Colors",
|
|
57234
57557
|
lineIndex !== undefined ? ` - Line ${lineIndex + 1}` : ""
|
|
57235
57558
|
]
|
|
57236
57559
|
}, undefined, true, undefined, this),
|
|
57237
|
-
/* @__PURE__ */
|
|
57560
|
+
/* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Box_default, {
|
|
57238
57561
|
marginTop: 1,
|
|
57239
|
-
children: /* @__PURE__ */
|
|
57562
|
+
children: /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57240
57563
|
dimColor: true,
|
|
57241
57564
|
children: "No colorable widgets in the status line."
|
|
57242
57565
|
}, undefined, false, undefined, this)
|
|
57243
57566
|
}, undefined, false, undefined, this),
|
|
57244
|
-
/* @__PURE__ */
|
|
57567
|
+
/* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57245
57568
|
dimColor: true,
|
|
57246
57569
|
children: "Add a widget first to continue."
|
|
57247
57570
|
}, undefined, false, undefined, this),
|
|
57248
|
-
/* @__PURE__ */
|
|
57571
|
+
/* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Box_default, {
|
|
57249
57572
|
marginTop: 1,
|
|
57250
|
-
children: /* @__PURE__ */
|
|
57573
|
+
children: /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57251
57574
|
children: "Press any key to go back..."
|
|
57252
57575
|
}, undefined, false, undefined, this)
|
|
57253
57576
|
}, undefined, false, undefined, this)
|
|
@@ -57340,36 +57663,36 @@ var ColorMenu = ({ widgets, lineIndex, settings, onUpdate, onBack }) => {
|
|
|
57340
57663
|
}
|
|
57341
57664
|
}
|
|
57342
57665
|
if (showClearConfirm) {
|
|
57343
|
-
return /* @__PURE__ */
|
|
57666
|
+
return /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Box_default, {
|
|
57344
57667
|
flexDirection: "column",
|
|
57345
57668
|
children: [
|
|
57346
|
-
/* @__PURE__ */
|
|
57669
|
+
/* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57347
57670
|
bold: true,
|
|
57348
57671
|
color: "yellow",
|
|
57349
57672
|
children: "⚠ Confirm Clear All Colors"
|
|
57350
57673
|
}, undefined, false, undefined, this),
|
|
57351
|
-
/* @__PURE__ */
|
|
57674
|
+
/* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Box_default, {
|
|
57352
57675
|
marginTop: 1,
|
|
57353
57676
|
flexDirection: "column",
|
|
57354
57677
|
children: [
|
|
57355
|
-
/* @__PURE__ */
|
|
57678
|
+
/* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57356
57679
|
children: "This will reset all colors for all widgets to their defaults."
|
|
57357
57680
|
}, undefined, false, undefined, this),
|
|
57358
|
-
/* @__PURE__ */
|
|
57681
|
+
/* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57359
57682
|
color: "red",
|
|
57360
57683
|
children: "This action cannot be undone!"
|
|
57361
57684
|
}, undefined, false, undefined, this)
|
|
57362
57685
|
]
|
|
57363
57686
|
}, undefined, true, undefined, this),
|
|
57364
|
-
/* @__PURE__ */
|
|
57687
|
+
/* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Box_default, {
|
|
57365
57688
|
marginTop: 2,
|
|
57366
|
-
children: /* @__PURE__ */
|
|
57689
|
+
children: /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57367
57690
|
children: "Continue?"
|
|
57368
57691
|
}, undefined, false, undefined, this)
|
|
57369
57692
|
}, undefined, false, undefined, this),
|
|
57370
|
-
/* @__PURE__ */
|
|
57693
|
+
/* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Box_default, {
|
|
57371
57694
|
marginTop: 1,
|
|
57372
|
-
children: /* @__PURE__ */
|
|
57695
|
+
children: /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ConfirmDialog, {
|
|
57373
57696
|
inline: true,
|
|
57374
57697
|
onConfirm: () => {
|
|
57375
57698
|
const newItems = widgets.map((widget) => {
|
|
@@ -57390,12 +57713,12 @@ var ColorMenu = ({ widgets, lineIndex, settings, onUpdate, onBack }) => {
|
|
|
57390
57713
|
const hasGlobalFgOverride = !!settings.overrideForegroundColor;
|
|
57391
57714
|
const hasGlobalBgOverride = !!settings.overrideBackgroundColor && !powerlineEnabled;
|
|
57392
57715
|
const globalOverrideMessage = hasGlobalFgOverride && hasGlobalBgOverride ? "⚠ Global override for FG and BG active" : hasGlobalFgOverride ? "⚠ Global override for FG active" : hasGlobalBgOverride ? "⚠ Global override for BG active" : null;
|
|
57393
|
-
return /* @__PURE__ */
|
|
57716
|
+
return /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Box_default, {
|
|
57394
57717
|
flexDirection: "column",
|
|
57395
57718
|
children: [
|
|
57396
|
-
/* @__PURE__ */
|
|
57719
|
+
/* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Box_default, {
|
|
57397
57720
|
children: [
|
|
57398
|
-
/* @__PURE__ */
|
|
57721
|
+
/* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57399
57722
|
bold: true,
|
|
57400
57723
|
children: [
|
|
57401
57724
|
"Configure Colors",
|
|
@@ -57403,7 +57726,7 @@ var ColorMenu = ({ widgets, lineIndex, settings, onUpdate, onBack }) => {
|
|
|
57403
57726
|
editingBackground && source_default.yellow(" [Background Mode]")
|
|
57404
57727
|
]
|
|
57405
57728
|
}, undefined, true, undefined, this),
|
|
57406
|
-
globalOverrideMessage && /* @__PURE__ */
|
|
57729
|
+
globalOverrideMessage && /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57407
57730
|
color: "yellow",
|
|
57408
57731
|
dimColor: true,
|
|
57409
57732
|
children: [
|
|
@@ -57413,56 +57736,56 @@ var ColorMenu = ({ widgets, lineIndex, settings, onUpdate, onBack }) => {
|
|
|
57413
57736
|
}, undefined, true, undefined, this)
|
|
57414
57737
|
]
|
|
57415
57738
|
}, undefined, true, undefined, this),
|
|
57416
|
-
hexInputMode ? /* @__PURE__ */
|
|
57739
|
+
hexInputMode ? /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Box_default, {
|
|
57417
57740
|
flexDirection: "column",
|
|
57418
57741
|
children: [
|
|
57419
|
-
/* @__PURE__ */
|
|
57742
|
+
/* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57420
57743
|
children: "Enter 6-digit hex color code (without #):"
|
|
57421
57744
|
}, undefined, false, undefined, this),
|
|
57422
|
-
/* @__PURE__ */
|
|
57745
|
+
/* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57423
57746
|
children: [
|
|
57424
57747
|
"#",
|
|
57425
57748
|
hexInput,
|
|
57426
|
-
/* @__PURE__ */
|
|
57749
|
+
/* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57427
57750
|
dimColor: true,
|
|
57428
57751
|
children: hexInput.length < 6 ? "_".repeat(6 - hexInput.length) : ""
|
|
57429
57752
|
}, undefined, false, undefined, this)
|
|
57430
57753
|
]
|
|
57431
57754
|
}, undefined, true, undefined, this),
|
|
57432
|
-
/* @__PURE__ */
|
|
57755
|
+
/* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57433
57756
|
children: " "
|
|
57434
57757
|
}, undefined, false, undefined, this),
|
|
57435
|
-
/* @__PURE__ */
|
|
57758
|
+
/* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57436
57759
|
dimColor: true,
|
|
57437
57760
|
children: "Press Enter when done, ESC to cancel"
|
|
57438
57761
|
}, undefined, false, undefined, this)
|
|
57439
57762
|
]
|
|
57440
|
-
}, undefined, true, undefined, this) : ansi256InputMode ? /* @__PURE__ */
|
|
57763
|
+
}, undefined, true, undefined, this) : ansi256InputMode ? /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Box_default, {
|
|
57441
57764
|
flexDirection: "column",
|
|
57442
57765
|
children: [
|
|
57443
|
-
/* @__PURE__ */
|
|
57766
|
+
/* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57444
57767
|
children: "Enter ANSI 256 color code (0-255):"
|
|
57445
57768
|
}, undefined, false, undefined, this),
|
|
57446
|
-
/* @__PURE__ */
|
|
57769
|
+
/* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57447
57770
|
children: [
|
|
57448
57771
|
ansi256Input,
|
|
57449
|
-
/* @__PURE__ */
|
|
57772
|
+
/* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57450
57773
|
dimColor: true,
|
|
57451
57774
|
children: ansi256Input.length === 0 ? "___" : ansi256Input.length === 1 ? "__" : ansi256Input.length === 2 ? "_" : ""
|
|
57452
57775
|
}, undefined, false, undefined, this)
|
|
57453
57776
|
]
|
|
57454
57777
|
}, undefined, true, undefined, this),
|
|
57455
|
-
/* @__PURE__ */
|
|
57778
|
+
/* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57456
57779
|
children: " "
|
|
57457
57780
|
}, undefined, false, undefined, this),
|
|
57458
|
-
/* @__PURE__ */
|
|
57781
|
+
/* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57459
57782
|
dimColor: true,
|
|
57460
57783
|
children: "Press Enter when done, ESC to cancel"
|
|
57461
57784
|
}, undefined, false, undefined, this)
|
|
57462
57785
|
]
|
|
57463
|
-
}, undefined, true, undefined, this) : /* @__PURE__ */
|
|
57786
|
+
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(jsx_dev_runtime6.Fragment, {
|
|
57464
57787
|
children: [
|
|
57465
|
-
/* @__PURE__ */
|
|
57788
|
+
/* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57466
57789
|
dimColor: true,
|
|
57467
57790
|
children: [
|
|
57468
57791
|
"↑↓ to select, ←→ to cycle",
|
|
@@ -57474,16 +57797,16 @@ var ColorMenu = ({ widgets, lineIndex, settings, onUpdate, onBack }) => {
|
|
|
57474
57797
|
"(r)eset, (c)lear all, ESC to go back"
|
|
57475
57798
|
]
|
|
57476
57799
|
}, undefined, true, undefined, this),
|
|
57477
|
-
!settings.powerline.enabled && !settings.defaultSeparator && /* @__PURE__ */
|
|
57800
|
+
!settings.powerline.enabled && !settings.defaultSeparator && /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57478
57801
|
dimColor: true,
|
|
57479
57802
|
children: [
|
|
57480
57803
|
"(s)how separators:",
|
|
57481
57804
|
showSeparators ? source_default.green("ON") : source_default.gray("OFF")
|
|
57482
57805
|
]
|
|
57483
57806
|
}, undefined, true, undefined, this),
|
|
57484
|
-
selectedWidget ? /* @__PURE__ */
|
|
57807
|
+
selectedWidget ? /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Box_default, {
|
|
57485
57808
|
marginTop: 1,
|
|
57486
|
-
children: /* @__PURE__ */
|
|
57809
|
+
children: /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57487
57810
|
children: [
|
|
57488
57811
|
"Current",
|
|
57489
57812
|
" ",
|
|
@@ -57497,19 +57820,19 @@ var ColorMenu = ({ widgets, lineIndex, settings, onUpdate, onBack }) => {
|
|
|
57497
57820
|
selectedWidget.bold && source_default.bold(" [BOLD]")
|
|
57498
57821
|
]
|
|
57499
57822
|
}, undefined, true, undefined, this)
|
|
57500
|
-
}, undefined, false, undefined, this) : /* @__PURE__ */
|
|
57823
|
+
}, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Box_default, {
|
|
57501
57824
|
marginTop: 1,
|
|
57502
|
-
children: /* @__PURE__ */
|
|
57825
|
+
children: /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57503
57826
|
children: " "
|
|
57504
57827
|
}, undefined, false, undefined, this)
|
|
57505
57828
|
}, undefined, false, undefined, this)
|
|
57506
57829
|
]
|
|
57507
57830
|
}, undefined, true, undefined, this),
|
|
57508
|
-
/* @__PURE__ */
|
|
57831
|
+
/* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Box_default, {
|
|
57509
57832
|
marginTop: 1,
|
|
57510
|
-
children: hexInputMode || ansi256InputMode ? /* @__PURE__ */
|
|
57833
|
+
children: hexInputMode || ansi256InputMode ? /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Box_default, {
|
|
57511
57834
|
flexDirection: "column",
|
|
57512
|
-
children: menuItems.map((item) => /* @__PURE__ */
|
|
57835
|
+
children: menuItems.map((item) => /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57513
57836
|
color: item.value === highlightedItemId ? "cyan" : "white",
|
|
57514
57837
|
bold: item.value === highlightedItemId,
|
|
57515
57838
|
children: [
|
|
@@ -57517,28 +57840,28 @@ var ColorMenu = ({ widgets, lineIndex, settings, onUpdate, onBack }) => {
|
|
|
57517
57840
|
item.label
|
|
57518
57841
|
]
|
|
57519
57842
|
}, item.value, true, undefined, this))
|
|
57520
|
-
}, undefined, false, undefined, this) : /* @__PURE__ */
|
|
57843
|
+
}, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(SelectInput_default, {
|
|
57521
57844
|
items: menuItems,
|
|
57522
57845
|
onSelect: handleSelect,
|
|
57523
57846
|
onHighlight: handleHighlight,
|
|
57524
57847
|
initialIndex: Math.max(0, menuItems.findIndex((item) => item.value === highlightedItemId)),
|
|
57525
|
-
indicatorComponent: ({ isSelected }) => /* @__PURE__ */
|
|
57848
|
+
indicatorComponent: ({ isSelected }) => /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57526
57849
|
children: isSelected ? "▶" : " "
|
|
57527
57850
|
}, undefined, false, undefined, this),
|
|
57528
|
-
itemComponent: ({ isSelected, label }) => /* @__PURE__ */
|
|
57851
|
+
itemComponent: ({ isSelected, label }) => /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57529
57852
|
children: ` ${label}`
|
|
57530
57853
|
}, undefined, false, undefined, this)
|
|
57531
57854
|
}, `${showSeparators}-${highlightedItemId}`, false, undefined, this)
|
|
57532
57855
|
}, undefined, false, undefined, this),
|
|
57533
|
-
/* @__PURE__ */
|
|
57856
|
+
/* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Box_default, {
|
|
57534
57857
|
marginTop: 1,
|
|
57535
57858
|
flexDirection: "column",
|
|
57536
57859
|
children: [
|
|
57537
|
-
/* @__PURE__ */
|
|
57860
|
+
/* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57538
57861
|
color: "yellow",
|
|
57539
57862
|
children: "⚠ VSCode Users: "
|
|
57540
57863
|
}, undefined, false, undefined, this),
|
|
57541
|
-
/* @__PURE__ */
|
|
57864
|
+
/* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
|
|
57542
57865
|
dimColor: true,
|
|
57543
57866
|
wrap: "wrap",
|
|
57544
57867
|
children: 'If colors appear incorrect in the VSCode integrated terminal, the "Terminal › Integrated: Minimum Contrast Ratio" (`terminal.integrated.minimumContrastRatio`) setting is forcing a minimum contrast between foreground and background colors. You can adjust this setting to 1 to disable the contrast enforcement, or use a standalone terminal for accurate colors.'
|
|
@@ -57549,16 +57872,16 @@ var ColorMenu = ({ widgets, lineIndex, settings, onUpdate, onBack }) => {
|
|
|
57549
57872
|
}, undefined, true, undefined, this);
|
|
57550
57873
|
};
|
|
57551
57874
|
// src/tui/components/GlobalOverridesMenu.tsx
|
|
57552
|
-
var
|
|
57553
|
-
var
|
|
57875
|
+
var import_react35 = __toESM(require_react(), 1);
|
|
57876
|
+
var jsx_dev_runtime7 = __toESM(require_jsx_dev_runtime(), 1);
|
|
57554
57877
|
var GlobalOverridesMenu = ({ settings, onUpdate, onBack }) => {
|
|
57555
|
-
const [editingPadding, setEditingPadding] =
|
|
57556
|
-
const [editingSeparator, setEditingSeparator] =
|
|
57557
|
-
const [confirmingSeparator, setConfirmingSeparator] =
|
|
57558
|
-
const [paddingInput, setPaddingInput] =
|
|
57559
|
-
const [separatorInput, setSeparatorInput] =
|
|
57560
|
-
const [inheritColors, setInheritColors] =
|
|
57561
|
-
const [globalBold, setGlobalBold] =
|
|
57878
|
+
const [editingPadding, setEditingPadding] = import_react35.useState(false);
|
|
57879
|
+
const [editingSeparator, setEditingSeparator] = import_react35.useState(false);
|
|
57880
|
+
const [confirmingSeparator, setConfirmingSeparator] = import_react35.useState(false);
|
|
57881
|
+
const [paddingInput, setPaddingInput] = import_react35.useState(settings.defaultPadding ?? "");
|
|
57882
|
+
const [separatorInput, setSeparatorInput] = import_react35.useState(settings.defaultSeparator ?? "");
|
|
57883
|
+
const [inheritColors, setInheritColors] = import_react35.useState(settings.inheritSeparatorColors);
|
|
57884
|
+
const [globalBold, setGlobalBold] = import_react35.useState(settings.globalBold);
|
|
57562
57885
|
const isPowerlineEnabled = settings.powerline.enabled;
|
|
57563
57886
|
const hasManualSeparators = settings.lines.some((line) => line.some((item) => item.type === "separator"));
|
|
57564
57887
|
const bgColors = ["none", ...COLOR_MAP.filter((c) => c.isBackground).map((c) => c.name)];
|
|
@@ -57660,95 +57983,95 @@ var GlobalOverridesMenu = ({ settings, onUpdate, onBack }) => {
|
|
|
57660
57983
|
}
|
|
57661
57984
|
}
|
|
57662
57985
|
});
|
|
57663
|
-
return /* @__PURE__ */
|
|
57986
|
+
return /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Box_default, {
|
|
57664
57987
|
flexDirection: "column",
|
|
57665
57988
|
children: [
|
|
57666
|
-
/* @__PURE__ */
|
|
57989
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57667
57990
|
bold: true,
|
|
57668
57991
|
children: "Global Overrides"
|
|
57669
57992
|
}, undefined, false, undefined, this),
|
|
57670
|
-
/* @__PURE__ */
|
|
57993
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57671
57994
|
dimColor: true,
|
|
57672
57995
|
children: "Configure automatic padding and separators between widgets"
|
|
57673
57996
|
}, undefined, false, undefined, this),
|
|
57674
|
-
isPowerlineEnabled && /* @__PURE__ */
|
|
57997
|
+
isPowerlineEnabled && /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Box_default, {
|
|
57675
57998
|
marginTop: 1,
|
|
57676
|
-
children: /* @__PURE__ */
|
|
57999
|
+
children: /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57677
58000
|
color: "yellow",
|
|
57678
58001
|
children: "⚠ Some options are disabled while Powerline mode is active"
|
|
57679
58002
|
}, undefined, false, undefined, this)
|
|
57680
58003
|
}, undefined, false, undefined, this),
|
|
57681
|
-
/* @__PURE__ */
|
|
58004
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Box_default, {
|
|
57682
58005
|
marginTop: 1
|
|
57683
58006
|
}, undefined, false, undefined, this),
|
|
57684
|
-
editingPadding ? /* @__PURE__ */
|
|
58007
|
+
editingPadding ? /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Box_default, {
|
|
57685
58008
|
flexDirection: "column",
|
|
57686
58009
|
children: [
|
|
57687
|
-
/* @__PURE__ */
|
|
58010
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Box_default, {
|
|
57688
58011
|
children: [
|
|
57689
|
-
/* @__PURE__ */
|
|
58012
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57690
58013
|
children: "Enter default padding (applied to left and right of each widget): "
|
|
57691
58014
|
}, undefined, false, undefined, this),
|
|
57692
|
-
/* @__PURE__ */
|
|
58015
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57693
58016
|
color: "cyan",
|
|
57694
58017
|
children: paddingInput ? `"${paddingInput}"` : "(empty)"
|
|
57695
58018
|
}, undefined, false, undefined, this)
|
|
57696
58019
|
]
|
|
57697
58020
|
}, undefined, true, undefined, this),
|
|
57698
|
-
/* @__PURE__ */
|
|
58021
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57699
58022
|
dimColor: true,
|
|
57700
58023
|
children: "Press Enter to save, ESC to cancel"
|
|
57701
58024
|
}, undefined, false, undefined, this)
|
|
57702
58025
|
]
|
|
57703
|
-
}, undefined, true, undefined, this) : editingSeparator ? /* @__PURE__ */
|
|
58026
|
+
}, undefined, true, undefined, this) : editingSeparator ? /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Box_default, {
|
|
57704
58027
|
flexDirection: "column",
|
|
57705
58028
|
children: [
|
|
57706
|
-
/* @__PURE__ */
|
|
58029
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Box_default, {
|
|
57707
58030
|
children: [
|
|
57708
|
-
/* @__PURE__ */
|
|
58031
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57709
58032
|
children: "Enter default separator (placed between widgets): "
|
|
57710
58033
|
}, undefined, false, undefined, this),
|
|
57711
|
-
/* @__PURE__ */
|
|
58034
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57712
58035
|
color: "cyan",
|
|
57713
58036
|
children: separatorInput ? `"${separatorInput}"` : "(empty - no separator will be added)"
|
|
57714
58037
|
}, undefined, false, undefined, this)
|
|
57715
58038
|
]
|
|
57716
58039
|
}, undefined, true, undefined, this),
|
|
57717
|
-
/* @__PURE__ */
|
|
58040
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57718
58041
|
dimColor: true,
|
|
57719
58042
|
children: "Press Enter to save, ESC to cancel"
|
|
57720
58043
|
}, undefined, false, undefined, this)
|
|
57721
58044
|
]
|
|
57722
|
-
}, undefined, true, undefined, this) : confirmingSeparator ? /* @__PURE__ */
|
|
58045
|
+
}, undefined, true, undefined, this) : confirmingSeparator ? /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Box_default, {
|
|
57723
58046
|
flexDirection: "column",
|
|
57724
58047
|
children: [
|
|
57725
|
-
/* @__PURE__ */
|
|
58048
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Box_default, {
|
|
57726
58049
|
marginBottom: 1,
|
|
57727
|
-
children: /* @__PURE__ */
|
|
58050
|
+
children: /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57728
58051
|
color: "yellow",
|
|
57729
58052
|
children: "⚠ Warning: Setting a default separator will remove all existing manual separators from your status lines."
|
|
57730
58053
|
}, undefined, false, undefined, this)
|
|
57731
58054
|
}, undefined, false, undefined, this),
|
|
57732
|
-
/* @__PURE__ */
|
|
58055
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Box_default, {
|
|
57733
58056
|
children: [
|
|
57734
|
-
/* @__PURE__ */
|
|
58057
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57735
58058
|
children: "New default separator: "
|
|
57736
58059
|
}, undefined, false, undefined, this),
|
|
57737
|
-
/* @__PURE__ */
|
|
58060
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57738
58061
|
color: "cyan",
|
|
57739
58062
|
children: separatorInput ? `"${separatorInput}"` : "(empty)"
|
|
57740
58063
|
}, undefined, false, undefined, this)
|
|
57741
58064
|
]
|
|
57742
58065
|
}, undefined, true, undefined, this),
|
|
57743
|
-
/* @__PURE__ */
|
|
58066
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Box_default, {
|
|
57744
58067
|
marginTop: 1,
|
|
57745
|
-
children: /* @__PURE__ */
|
|
58068
|
+
children: /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57746
58069
|
children: "Do you want to continue? "
|
|
57747
58070
|
}, undefined, false, undefined, this)
|
|
57748
58071
|
}, undefined, false, undefined, this),
|
|
57749
|
-
/* @__PURE__ */
|
|
58072
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Box_default, {
|
|
57750
58073
|
marginTop: 1,
|
|
57751
|
-
children: /* @__PURE__ */
|
|
58074
|
+
children: /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(ConfirmDialog, {
|
|
57752
58075
|
inline: true,
|
|
57753
58076
|
onConfirm: () => {
|
|
57754
58077
|
const updatedSettings = {
|
|
@@ -57766,47 +58089,47 @@ var GlobalOverridesMenu = ({ settings, onUpdate, onBack }) => {
|
|
|
57766
58089
|
}, undefined, false, undefined, this)
|
|
57767
58090
|
}, undefined, false, undefined, this)
|
|
57768
58091
|
]
|
|
57769
|
-
}, undefined, true, undefined, this) : /* @__PURE__ */
|
|
58092
|
+
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(jsx_dev_runtime7.Fragment, {
|
|
57770
58093
|
children: [
|
|
57771
|
-
/* @__PURE__ */
|
|
58094
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Box_default, {
|
|
57772
58095
|
children: [
|
|
57773
|
-
/* @__PURE__ */
|
|
58096
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57774
58097
|
children: " Global Bold: "
|
|
57775
58098
|
}, undefined, false, undefined, this),
|
|
57776
|
-
/* @__PURE__ */
|
|
58099
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57777
58100
|
color: globalBold ? "green" : "red",
|
|
57778
58101
|
children: globalBold ? "✓ Enabled" : "✗ Disabled"
|
|
57779
58102
|
}, undefined, false, undefined, this),
|
|
57780
|
-
/* @__PURE__ */
|
|
58103
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57781
58104
|
dimColor: true,
|
|
57782
58105
|
children: " - Press (o) to toggle"
|
|
57783
58106
|
}, undefined, false, undefined, this)
|
|
57784
58107
|
]
|
|
57785
58108
|
}, undefined, true, undefined, this),
|
|
57786
|
-
/* @__PURE__ */
|
|
58109
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Box_default, {
|
|
57787
58110
|
children: [
|
|
57788
|
-
/* @__PURE__ */
|
|
58111
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57789
58112
|
children: " Default Padding: "
|
|
57790
58113
|
}, undefined, false, undefined, this),
|
|
57791
|
-
/* @__PURE__ */
|
|
58114
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57792
58115
|
color: "cyan",
|
|
57793
58116
|
children: settings.defaultPadding ? `"${settings.defaultPadding}"` : "(none)"
|
|
57794
58117
|
}, undefined, false, undefined, this),
|
|
57795
|
-
/* @__PURE__ */
|
|
58118
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57796
58119
|
dimColor: true,
|
|
57797
58120
|
children: " - Press (p) to edit"
|
|
57798
58121
|
}, undefined, false, undefined, this)
|
|
57799
58122
|
]
|
|
57800
58123
|
}, undefined, true, undefined, this),
|
|
57801
|
-
/* @__PURE__ */
|
|
58124
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Box_default, {
|
|
57802
58125
|
children: [
|
|
57803
|
-
/* @__PURE__ */
|
|
58126
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57804
58127
|
children: "Override FG Color: "
|
|
57805
58128
|
}, undefined, false, undefined, this),
|
|
57806
58129
|
(() => {
|
|
57807
58130
|
const fgColor = settings.overrideForegroundColor ?? "none";
|
|
57808
58131
|
if (fgColor === "none") {
|
|
57809
|
-
return /* @__PURE__ */
|
|
58132
|
+
return /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57810
58133
|
color: "gray",
|
|
57811
58134
|
children: "(none)"
|
|
57812
58135
|
}, undefined, false, undefined, this);
|
|
@@ -57814,31 +58137,31 @@ var GlobalOverridesMenu = ({ settings, onUpdate, onBack }) => {
|
|
|
57814
58137
|
const displayName = getColorDisplayName(fgColor);
|
|
57815
58138
|
const fgChalk = getChalkColor(fgColor, "ansi16", false);
|
|
57816
58139
|
const display = fgChalk ? fgChalk(displayName) : displayName;
|
|
57817
|
-
return /* @__PURE__ */
|
|
58140
|
+
return /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57818
58141
|
children: display
|
|
57819
58142
|
}, undefined, false, undefined, this);
|
|
57820
58143
|
}
|
|
57821
58144
|
})(),
|
|
57822
|
-
/* @__PURE__ */
|
|
58145
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57823
58146
|
dimColor: true,
|
|
57824
58147
|
children: " - (f) cycle, (g) clear"
|
|
57825
58148
|
}, undefined, false, undefined, this)
|
|
57826
58149
|
]
|
|
57827
58150
|
}, undefined, true, undefined, this),
|
|
57828
|
-
/* @__PURE__ */
|
|
58151
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Box_default, {
|
|
57829
58152
|
children: [
|
|
57830
|
-
/* @__PURE__ */
|
|
58153
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57831
58154
|
children: "Override BG Color: "
|
|
57832
58155
|
}, undefined, false, undefined, this),
|
|
57833
|
-
isPowerlineEnabled ? /* @__PURE__ */
|
|
58156
|
+
isPowerlineEnabled ? /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57834
58157
|
dimColor: true,
|
|
57835
58158
|
children: "[disabled - Powerline active]"
|
|
57836
|
-
}, undefined, false, undefined, this) : /* @__PURE__ */
|
|
58159
|
+
}, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(jsx_dev_runtime7.Fragment, {
|
|
57837
58160
|
children: [
|
|
57838
58161
|
(() => {
|
|
57839
58162
|
const bgColor = settings.overrideBackgroundColor ?? "none";
|
|
57840
58163
|
if (bgColor === "none") {
|
|
57841
|
-
return /* @__PURE__ */
|
|
58164
|
+
return /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57842
58165
|
color: "gray",
|
|
57843
58166
|
children: "(none)"
|
|
57844
58167
|
}, undefined, false, undefined, this);
|
|
@@ -57846,12 +58169,12 @@ var GlobalOverridesMenu = ({ settings, onUpdate, onBack }) => {
|
|
|
57846
58169
|
const displayName = getColorDisplayName(bgColor);
|
|
57847
58170
|
const bgChalk = getChalkColor(bgColor, "ansi16", true);
|
|
57848
58171
|
const display = bgChalk ? bgChalk(` ${displayName} `) : displayName;
|
|
57849
|
-
return /* @__PURE__ */
|
|
58172
|
+
return /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57850
58173
|
children: display
|
|
57851
58174
|
}, undefined, false, undefined, this);
|
|
57852
58175
|
}
|
|
57853
58176
|
})(),
|
|
57854
|
-
/* @__PURE__ */
|
|
58177
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57855
58178
|
dimColor: true,
|
|
57856
58179
|
children: " - (b) cycle, (c) clear"
|
|
57857
58180
|
}, undefined, false, undefined, this)
|
|
@@ -57859,21 +58182,21 @@ var GlobalOverridesMenu = ({ settings, onUpdate, onBack }) => {
|
|
|
57859
58182
|
}, undefined, true, undefined, this)
|
|
57860
58183
|
]
|
|
57861
58184
|
}, undefined, true, undefined, this),
|
|
57862
|
-
/* @__PURE__ */
|
|
58185
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Box_default, {
|
|
57863
58186
|
children: [
|
|
57864
|
-
/* @__PURE__ */
|
|
58187
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57865
58188
|
children: " Inherit Colors: "
|
|
57866
58189
|
}, undefined, false, undefined, this),
|
|
57867
|
-
isPowerlineEnabled ? /* @__PURE__ */
|
|
58190
|
+
isPowerlineEnabled ? /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57868
58191
|
dimColor: true,
|
|
57869
58192
|
children: "[disabled - Powerline active]"
|
|
57870
|
-
}, undefined, false, undefined, this) : /* @__PURE__ */
|
|
58193
|
+
}, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(jsx_dev_runtime7.Fragment, {
|
|
57871
58194
|
children: [
|
|
57872
|
-
/* @__PURE__ */
|
|
58195
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57873
58196
|
color: inheritColors ? "green" : "red",
|
|
57874
58197
|
children: inheritColors ? "✓ Enabled" : "✗ Disabled"
|
|
57875
58198
|
}, undefined, false, undefined, this),
|
|
57876
|
-
/* @__PURE__ */
|
|
58199
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57877
58200
|
dimColor: true,
|
|
57878
58201
|
children: " - Press (i) to toggle"
|
|
57879
58202
|
}, undefined, false, undefined, this)
|
|
@@ -57881,21 +58204,21 @@ var GlobalOverridesMenu = ({ settings, onUpdate, onBack }) => {
|
|
|
57881
58204
|
}, undefined, true, undefined, this)
|
|
57882
58205
|
]
|
|
57883
58206
|
}, undefined, true, undefined, this),
|
|
57884
|
-
/* @__PURE__ */
|
|
58207
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Box_default, {
|
|
57885
58208
|
children: [
|
|
57886
|
-
/* @__PURE__ */
|
|
58209
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57887
58210
|
children: "Default Separator: "
|
|
57888
58211
|
}, undefined, false, undefined, this),
|
|
57889
|
-
isPowerlineEnabled ? /* @__PURE__ */
|
|
58212
|
+
isPowerlineEnabled ? /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57890
58213
|
dimColor: true,
|
|
57891
58214
|
children: "[disabled - Powerline active]"
|
|
57892
|
-
}, undefined, false, undefined, this) : /* @__PURE__ */
|
|
58215
|
+
}, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(jsx_dev_runtime7.Fragment, {
|
|
57893
58216
|
children: [
|
|
57894
|
-
/* @__PURE__ */
|
|
58217
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57895
58218
|
color: "cyan",
|
|
57896
58219
|
children: settings.defaultSeparator ? `"${settings.defaultSeparator}"` : "(none)"
|
|
57897
58220
|
}, undefined, false, undefined, this),
|
|
57898
|
-
/* @__PURE__ */
|
|
58221
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57899
58222
|
dimColor: true,
|
|
57900
58223
|
children: " - Press (s) to edit"
|
|
57901
58224
|
}, undefined, false, undefined, this)
|
|
@@ -57903,33 +58226,33 @@ var GlobalOverridesMenu = ({ settings, onUpdate, onBack }) => {
|
|
|
57903
58226
|
}, undefined, true, undefined, this)
|
|
57904
58227
|
]
|
|
57905
58228
|
}, undefined, true, undefined, this),
|
|
57906
|
-
/* @__PURE__ */
|
|
58229
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Box_default, {
|
|
57907
58230
|
marginTop: 2,
|
|
57908
|
-
children: /* @__PURE__ */
|
|
58231
|
+
children: /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57909
58232
|
dimColor: true,
|
|
57910
58233
|
children: "Press ESC to go back"
|
|
57911
58234
|
}, undefined, false, undefined, this)
|
|
57912
58235
|
}, undefined, false, undefined, this),
|
|
57913
|
-
/* @__PURE__ */
|
|
58236
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Box_default, {
|
|
57914
58237
|
marginTop: 1,
|
|
57915
58238
|
flexDirection: "column",
|
|
57916
58239
|
children: [
|
|
57917
|
-
/* @__PURE__ */
|
|
58240
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57918
58241
|
dimColor: true,
|
|
57919
58242
|
wrap: "wrap",
|
|
57920
58243
|
children: "Note: These settings are applied during rendering and don't add widgets to your widget list."
|
|
57921
58244
|
}, undefined, false, undefined, this),
|
|
57922
|
-
/* @__PURE__ */
|
|
58245
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57923
58246
|
dimColor: true,
|
|
57924
58247
|
wrap: "wrap",
|
|
57925
58248
|
children: "• Inherit colors: Separators will use colors from the preceding widget"
|
|
57926
58249
|
}, undefined, false, undefined, this),
|
|
57927
|
-
/* @__PURE__ */
|
|
58250
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57928
58251
|
dimColor: true,
|
|
57929
58252
|
wrap: "wrap",
|
|
57930
58253
|
children: "• Global Bold: Makes all text bold regardless of individual settings"
|
|
57931
58254
|
}, undefined, false, undefined, this),
|
|
57932
|
-
/* @__PURE__ */
|
|
58255
|
+
/* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Text, {
|
|
57933
58256
|
dimColor: true,
|
|
57934
58257
|
wrap: "wrap",
|
|
57935
58258
|
children: "• Override colors: All widgets will use these colors instead of their configured colors"
|
|
@@ -57942,8 +58265,8 @@ var GlobalOverridesMenu = ({ settings, onUpdate, onBack }) => {
|
|
|
57942
58265
|
}, undefined, true, undefined, this);
|
|
57943
58266
|
};
|
|
57944
58267
|
// src/tui/components/InstallMenu.tsx
|
|
57945
|
-
var
|
|
57946
|
-
var
|
|
58268
|
+
var import_react36 = __toESM(require_react(), 1);
|
|
58269
|
+
var jsx_dev_runtime8 = __toESM(require_jsx_dev_runtime(), 1);
|
|
57947
58270
|
var InstallMenu = ({
|
|
57948
58271
|
bunxAvailable,
|
|
57949
58272
|
existingStatusLine,
|
|
@@ -57951,7 +58274,7 @@ var InstallMenu = ({
|
|
|
57951
58274
|
onSelectBunx,
|
|
57952
58275
|
onCancel
|
|
57953
58276
|
}) => {
|
|
57954
|
-
const [selectedIndex, setSelectedIndex] =
|
|
58277
|
+
const [selectedIndex, setSelectedIndex] = import_react36.useState(0);
|
|
57955
58278
|
const maxIndex = 2;
|
|
57956
58279
|
use_input_default((input, key) => {
|
|
57957
58280
|
if (key.escape) {
|
|
@@ -57980,16 +58303,16 @@ var InstallMenu = ({
|
|
|
57980
58303
|
}
|
|
57981
58304
|
}
|
|
57982
58305
|
});
|
|
57983
|
-
return /* @__PURE__ */
|
|
58306
|
+
return /* @__PURE__ */ jsx_dev_runtime8.jsxDEV(Box_default, {
|
|
57984
58307
|
flexDirection: "column",
|
|
57985
58308
|
children: [
|
|
57986
|
-
/* @__PURE__ */
|
|
58309
|
+
/* @__PURE__ */ jsx_dev_runtime8.jsxDEV(Text, {
|
|
57987
58310
|
bold: true,
|
|
57988
58311
|
children: "Install ccstatusline to Claude Code"
|
|
57989
58312
|
}, undefined, false, undefined, this),
|
|
57990
|
-
existingStatusLine && /* @__PURE__ */
|
|
58313
|
+
existingStatusLine && /* @__PURE__ */ jsx_dev_runtime8.jsxDEV(Box_default, {
|
|
57991
58314
|
marginBottom: 1,
|
|
57992
|
-
children: /* @__PURE__ */
|
|
58315
|
+
children: /* @__PURE__ */ jsx_dev_runtime8.jsxDEV(Text, {
|
|
57993
58316
|
color: "yellow",
|
|
57994
58317
|
children: [
|
|
57995
58318
|
'⚠ Current status line: "',
|
|
@@ -57998,18 +58321,18 @@ var InstallMenu = ({
|
|
|
57998
58321
|
]
|
|
57999
58322
|
}, undefined, true, undefined, this)
|
|
58000
58323
|
}, undefined, false, undefined, this),
|
|
58001
|
-
/* @__PURE__ */
|
|
58002
|
-
children: /* @__PURE__ */
|
|
58324
|
+
/* @__PURE__ */ jsx_dev_runtime8.jsxDEV(Box_default, {
|
|
58325
|
+
children: /* @__PURE__ */ jsx_dev_runtime8.jsxDEV(Text, {
|
|
58003
58326
|
dimColor: true,
|
|
58004
58327
|
children: "Select package manager to use:"
|
|
58005
58328
|
}, undefined, false, undefined, this)
|
|
58006
58329
|
}, undefined, false, undefined, this),
|
|
58007
|
-
/* @__PURE__ */
|
|
58330
|
+
/* @__PURE__ */ jsx_dev_runtime8.jsxDEV(Box_default, {
|
|
58008
58331
|
marginTop: 1,
|
|
58009
58332
|
flexDirection: "column",
|
|
58010
58333
|
children: [
|
|
58011
|
-
/* @__PURE__ */
|
|
58012
|
-
children: /* @__PURE__ */
|
|
58334
|
+
/* @__PURE__ */ jsx_dev_runtime8.jsxDEV(Box_default, {
|
|
58335
|
+
children: /* @__PURE__ */ jsx_dev_runtime8.jsxDEV(Text, {
|
|
58013
58336
|
color: selectedIndex === 0 ? "blue" : undefined,
|
|
58014
58337
|
children: [
|
|
58015
58338
|
selectedIndex === 0 ? "▶ " : " ",
|
|
@@ -58017,8 +58340,8 @@ var InstallMenu = ({
|
|
|
58017
58340
|
]
|
|
58018
58341
|
}, undefined, true, undefined, this)
|
|
58019
58342
|
}, undefined, false, undefined, this),
|
|
58020
|
-
/* @__PURE__ */
|
|
58021
|
-
children: /* @__PURE__ */
|
|
58343
|
+
/* @__PURE__ */ jsx_dev_runtime8.jsxDEV(Box_default, {
|
|
58344
|
+
children: /* @__PURE__ */ jsx_dev_runtime8.jsxDEV(Text, {
|
|
58022
58345
|
color: selectedIndex === 1 && bunxAvailable ? "blue" : undefined,
|
|
58023
58346
|
dimColor: !bunxAvailable,
|
|
58024
58347
|
children: [
|
|
@@ -58028,9 +58351,9 @@ var InstallMenu = ({
|
|
|
58028
58351
|
]
|
|
58029
58352
|
}, undefined, true, undefined, this)
|
|
58030
58353
|
}, undefined, false, undefined, this),
|
|
58031
|
-
/* @__PURE__ */
|
|
58354
|
+
/* @__PURE__ */ jsx_dev_runtime8.jsxDEV(Box_default, {
|
|
58032
58355
|
marginTop: 1,
|
|
58033
|
-
children: /* @__PURE__ */
|
|
58356
|
+
children: /* @__PURE__ */ jsx_dev_runtime8.jsxDEV(Text, {
|
|
58034
58357
|
color: selectedIndex === 2 ? "blue" : undefined,
|
|
58035
58358
|
children: [
|
|
58036
58359
|
selectedIndex === 2 ? "▶ " : " ",
|
|
@@ -58040,9 +58363,9 @@ var InstallMenu = ({
|
|
|
58040
58363
|
}, undefined, false, undefined, this)
|
|
58041
58364
|
]
|
|
58042
58365
|
}, undefined, true, undefined, this),
|
|
58043
|
-
/* @__PURE__ */
|
|
58366
|
+
/* @__PURE__ */ jsx_dev_runtime8.jsxDEV(Box_default, {
|
|
58044
58367
|
marginTop: 2,
|
|
58045
|
-
children: /* @__PURE__ */
|
|
58368
|
+
children: /* @__PURE__ */ jsx_dev_runtime8.jsxDEV(Text, {
|
|
58046
58369
|
dimColor: true,
|
|
58047
58370
|
children: [
|
|
58048
58371
|
"The selected command will be written to",
|
|
@@ -58051,9 +58374,9 @@ var InstallMenu = ({
|
|
|
58051
58374
|
]
|
|
58052
58375
|
}, undefined, true, undefined, this)
|
|
58053
58376
|
}, undefined, false, undefined, this),
|
|
58054
|
-
/* @__PURE__ */
|
|
58377
|
+
/* @__PURE__ */ jsx_dev_runtime8.jsxDEV(Box_default, {
|
|
58055
58378
|
marginTop: 1,
|
|
58056
|
-
children: /* @__PURE__ */
|
|
58379
|
+
children: /* @__PURE__ */ jsx_dev_runtime8.jsxDEV(Text, {
|
|
58057
58380
|
dimColor: true,
|
|
58058
58381
|
children: "Press Enter to select, ESC to cancel"
|
|
58059
58382
|
}, undefined, false, undefined, this)
|
|
@@ -58062,14 +58385,14 @@ var InstallMenu = ({
|
|
|
58062
58385
|
}, undefined, true, undefined, this);
|
|
58063
58386
|
};
|
|
58064
58387
|
// src/tui/components/ItemsEditor.tsx
|
|
58065
|
-
var
|
|
58066
|
-
var
|
|
58388
|
+
var import_react37 = __toESM(require_react(), 1);
|
|
58389
|
+
var jsx_dev_runtime9 = __toESM(require_jsx_dev_runtime(), 1);
|
|
58067
58390
|
var ItemsEditor = ({ widgets, onUpdate, onBack, lineNumber, settings }) => {
|
|
58068
|
-
const [selectedIndex, setSelectedIndex] =
|
|
58069
|
-
const [moveMode, setMoveMode] =
|
|
58070
|
-
const [customEditorWidget, setCustomEditorWidget] =
|
|
58071
|
-
const [widgetPicker, setWidgetPicker] =
|
|
58072
|
-
const [showClearConfirm, setShowClearConfirm] =
|
|
58391
|
+
const [selectedIndex, setSelectedIndex] = import_react37.useState(0);
|
|
58392
|
+
const [moveMode, setMoveMode] = import_react37.useState(false);
|
|
58393
|
+
const [customEditorWidget, setCustomEditorWidget] = import_react37.useState(null);
|
|
58394
|
+
const [widgetPicker, setWidgetPicker] = import_react37.useState(null);
|
|
58395
|
+
const [showClearConfirm, setShowClearConfirm] = import_react37.useState(false);
|
|
58073
58396
|
const separatorChars = ["|", "-", ",", " "];
|
|
58074
58397
|
const widgetCatalog = getWidgetCatalog(settings);
|
|
58075
58398
|
const widgetCategories = ["All", ...getWidgetCatalogCategories(widgetCatalog)];
|
|
@@ -58475,19 +58798,19 @@ var ItemsEditor = ({ widgets, onUpdate, onBack, lineNumber, settings }) => {
|
|
|
58475
58798
|
});
|
|
58476
58799
|
}
|
|
58477
58800
|
if (showClearConfirm) {
|
|
58478
|
-
return /* @__PURE__ */
|
|
58801
|
+
return /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
58479
58802
|
flexDirection: "column",
|
|
58480
58803
|
children: [
|
|
58481
|
-
/* @__PURE__ */
|
|
58804
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58482
58805
|
bold: true,
|
|
58483
58806
|
color: "yellow",
|
|
58484
58807
|
children: "⚠ Confirm Clear Line"
|
|
58485
58808
|
}, undefined, false, undefined, this),
|
|
58486
|
-
/* @__PURE__ */
|
|
58809
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
58487
58810
|
marginTop: 1,
|
|
58488
58811
|
flexDirection: "column",
|
|
58489
58812
|
children: [
|
|
58490
|
-
/* @__PURE__ */
|
|
58813
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58491
58814
|
children: [
|
|
58492
58815
|
"This will remove all widgets from Line",
|
|
58493
58816
|
" ",
|
|
@@ -58495,21 +58818,21 @@ var ItemsEditor = ({ widgets, onUpdate, onBack, lineNumber, settings }) => {
|
|
|
58495
58818
|
"."
|
|
58496
58819
|
]
|
|
58497
58820
|
}, undefined, true, undefined, this),
|
|
58498
|
-
/* @__PURE__ */
|
|
58821
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58499
58822
|
color: "red",
|
|
58500
58823
|
children: "This action cannot be undone!"
|
|
58501
58824
|
}, undefined, false, undefined, this)
|
|
58502
58825
|
]
|
|
58503
58826
|
}, undefined, true, undefined, this),
|
|
58504
|
-
/* @__PURE__ */
|
|
58827
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
58505
58828
|
marginTop: 2,
|
|
58506
|
-
children: /* @__PURE__ */
|
|
58829
|
+
children: /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58507
58830
|
children: "Continue?"
|
|
58508
58831
|
}, undefined, false, undefined, this)
|
|
58509
58832
|
}, undefined, false, undefined, this),
|
|
58510
|
-
/* @__PURE__ */
|
|
58833
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
58511
58834
|
marginTop: 1,
|
|
58512
|
-
children: /* @__PURE__ */
|
|
58835
|
+
children: /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(ConfirmDialog, {
|
|
58513
58836
|
inline: true,
|
|
58514
58837
|
onConfirm: () => {
|
|
58515
58838
|
onUpdate([]);
|
|
@@ -58524,12 +58847,12 @@ var ItemsEditor = ({ widgets, onUpdate, onBack, lineNumber, settings }) => {
|
|
|
58524
58847
|
]
|
|
58525
58848
|
}, undefined, true, undefined, this);
|
|
58526
58849
|
}
|
|
58527
|
-
return /* @__PURE__ */
|
|
58850
|
+
return /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
58528
58851
|
flexDirection: "column",
|
|
58529
58852
|
children: [
|
|
58530
|
-
/* @__PURE__ */
|
|
58853
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
58531
58854
|
children: [
|
|
58532
|
-
/* @__PURE__ */
|
|
58855
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58533
58856
|
bold: true,
|
|
58534
58857
|
children: [
|
|
58535
58858
|
"Edit Line",
|
|
@@ -58538,17 +58861,17 @@ var ItemsEditor = ({ widgets, onUpdate, onBack, lineNumber, settings }) => {
|
|
|
58538
58861
|
" "
|
|
58539
58862
|
]
|
|
58540
58863
|
}, undefined, true, undefined, this),
|
|
58541
|
-
moveMode && /* @__PURE__ */
|
|
58864
|
+
moveMode && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58542
58865
|
color: "blue",
|
|
58543
58866
|
children: "[MOVE MODE]"
|
|
58544
58867
|
}, undefined, false, undefined, this),
|
|
58545
|
-
widgetPicker && /* @__PURE__ */
|
|
58868
|
+
widgetPicker && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58546
58869
|
color: "cyan",
|
|
58547
58870
|
children: `[${pickerActionLabel.toUpperCase()}]`
|
|
58548
58871
|
}, undefined, false, undefined, this),
|
|
58549
|
-
(settings.powerline.enabled || Boolean(settings.defaultSeparator)) && /* @__PURE__ */
|
|
58872
|
+
(settings.powerline.enabled || Boolean(settings.defaultSeparator)) && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
58550
58873
|
marginLeft: 2,
|
|
58551
|
-
children: /* @__PURE__ */
|
|
58874
|
+
children: /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58552
58875
|
color: "yellow",
|
|
58553
58876
|
children: [
|
|
58554
58877
|
"⚠",
|
|
@@ -58559,46 +58882,46 @@ var ItemsEditor = ({ widgets, onUpdate, onBack, lineNumber, settings }) => {
|
|
|
58559
58882
|
}, undefined, false, undefined, this)
|
|
58560
58883
|
]
|
|
58561
58884
|
}, undefined, true, undefined, this),
|
|
58562
|
-
moveMode ? /* @__PURE__ */
|
|
58885
|
+
moveMode ? /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
58563
58886
|
flexDirection: "column",
|
|
58564
58887
|
marginBottom: 1,
|
|
58565
|
-
children: /* @__PURE__ */
|
|
58888
|
+
children: /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58566
58889
|
dimColor: true,
|
|
58567
58890
|
children: "↑↓ to move widget, ESC or Enter to exit move mode"
|
|
58568
58891
|
}, undefined, false, undefined, this)
|
|
58569
|
-
}, undefined, false, undefined, this) : widgetPicker ? /* @__PURE__ */
|
|
58892
|
+
}, undefined, false, undefined, this) : widgetPicker ? /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
58570
58893
|
flexDirection: "column",
|
|
58571
|
-
children: widgetPicker.level === "category" ? /* @__PURE__ */
|
|
58894
|
+
children: widgetPicker.level === "category" ? /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(jsx_dev_runtime9.Fragment, {
|
|
58572
58895
|
children: [
|
|
58573
|
-
widgetPicker.categoryQuery.trim().length > 0 ? /* @__PURE__ */
|
|
58896
|
+
widgetPicker.categoryQuery.trim().length > 0 ? /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58574
58897
|
dimColor: true,
|
|
58575
58898
|
children: "↑↓ select widget match, Enter apply, ESC clear/cancel"
|
|
58576
|
-
}, undefined, false, undefined, this) : /* @__PURE__ */
|
|
58899
|
+
}, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58577
58900
|
dimColor: true,
|
|
58578
58901
|
children: "↑↓ select category, type to search all widgets, Enter continue, ESC cancel"
|
|
58579
58902
|
}, undefined, false, undefined, this),
|
|
58580
|
-
/* @__PURE__ */
|
|
58903
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
58581
58904
|
children: [
|
|
58582
|
-
/* @__PURE__ */
|
|
58905
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58583
58906
|
dimColor: true,
|
|
58584
58907
|
children: "Search: "
|
|
58585
58908
|
}, undefined, false, undefined, this),
|
|
58586
|
-
/* @__PURE__ */
|
|
58909
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58587
58910
|
color: "cyan",
|
|
58588
58911
|
children: widgetPicker.categoryQuery || "(none)"
|
|
58589
58912
|
}, undefined, false, undefined, this)
|
|
58590
58913
|
]
|
|
58591
58914
|
}, undefined, true, undefined, this)
|
|
58592
58915
|
]
|
|
58593
|
-
}, undefined, true, undefined, this) : /* @__PURE__ */
|
|
58916
|
+
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(jsx_dev_runtime9.Fragment, {
|
|
58594
58917
|
children: [
|
|
58595
|
-
/* @__PURE__ */
|
|
58918
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58596
58919
|
dimColor: true,
|
|
58597
58920
|
children: "↑↓ select widget, type to search widgets, Enter apply, ESC back"
|
|
58598
58921
|
}, undefined, false, undefined, this),
|
|
58599
|
-
/* @__PURE__ */
|
|
58922
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
58600
58923
|
children: [
|
|
58601
|
-
/* @__PURE__ */
|
|
58924
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58602
58925
|
dimColor: true,
|
|
58603
58926
|
children: [
|
|
58604
58927
|
"Category:",
|
|
@@ -58609,7 +58932,7 @@ var ItemsEditor = ({ widgets, onUpdate, onBack, lineNumber, settings }) => {
|
|
|
58609
58932
|
" "
|
|
58610
58933
|
]
|
|
58611
58934
|
}, undefined, true, undefined, this),
|
|
58612
|
-
/* @__PURE__ */
|
|
58935
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58613
58936
|
color: "cyan",
|
|
58614
58937
|
children: widgetPicker.widgetQuery || "(none)"
|
|
58615
58938
|
}, undefined, false, undefined, this)
|
|
@@ -58617,132 +58940,132 @@ var ItemsEditor = ({ widgets, onUpdate, onBack, lineNumber, settings }) => {
|
|
|
58617
58940
|
}, undefined, true, undefined, this)
|
|
58618
58941
|
]
|
|
58619
58942
|
}, undefined, true, undefined, this)
|
|
58620
|
-
}, undefined, false, undefined, this) : /* @__PURE__ */
|
|
58943
|
+
}, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
58621
58944
|
flexDirection: "column",
|
|
58622
58945
|
children: [
|
|
58623
|
-
/* @__PURE__ */
|
|
58946
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58624
58947
|
dimColor: true,
|
|
58625
58948
|
children: helpText
|
|
58626
58949
|
}, undefined, false, undefined, this),
|
|
58627
|
-
/* @__PURE__ */
|
|
58950
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58628
58951
|
dimColor: true,
|
|
58629
58952
|
children: customKeybindsText || " "
|
|
58630
58953
|
}, undefined, false, undefined, this)
|
|
58631
58954
|
]
|
|
58632
58955
|
}, undefined, true, undefined, this),
|
|
58633
|
-
hasFlexSeparator && !widthDetectionAvailable && /* @__PURE__ */
|
|
58956
|
+
hasFlexSeparator && !widthDetectionAvailable && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
58634
58957
|
marginTop: 1,
|
|
58635
58958
|
children: [
|
|
58636
|
-
/* @__PURE__ */
|
|
58959
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58637
58960
|
color: "yellow",
|
|
58638
58961
|
children: "⚠ Note: Terminal width detection is currently unavailable in your environment."
|
|
58639
58962
|
}, undefined, false, undefined, this),
|
|
58640
|
-
/* @__PURE__ */
|
|
58963
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58641
58964
|
dimColor: true,
|
|
58642
58965
|
children: " Flex separators will act as normal separators until width detection is available."
|
|
58643
58966
|
}, undefined, false, undefined, this)
|
|
58644
58967
|
]
|
|
58645
58968
|
}, undefined, true, undefined, this),
|
|
58646
|
-
widgetPicker && /* @__PURE__ */
|
|
58969
|
+
widgetPicker && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
58647
58970
|
marginTop: 1,
|
|
58648
58971
|
flexDirection: "column",
|
|
58649
|
-
children: widgetPicker.level === "category" ? widgetPicker.categoryQuery.trim().length > 0 ? topLevelSearchEntries.length === 0 ? /* @__PURE__ */
|
|
58972
|
+
children: widgetPicker.level === "category" ? widgetPicker.categoryQuery.trim().length > 0 ? topLevelSearchEntries.length === 0 ? /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58650
58973
|
dimColor: true,
|
|
58651
58974
|
children: "No widgets match the search."
|
|
58652
|
-
}, undefined, false, undefined, this) : /* @__PURE__ */
|
|
58975
|
+
}, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(jsx_dev_runtime9.Fragment, {
|
|
58653
58976
|
children: [
|
|
58654
58977
|
topLevelSearchEntries.map((entry, index) => {
|
|
58655
58978
|
const isSelected = entry.type === selectedTopLevelSearchEntry?.type;
|
|
58656
|
-
return /* @__PURE__ */
|
|
58979
|
+
return /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
58657
58980
|
flexDirection: "row",
|
|
58658
58981
|
flexWrap: "nowrap",
|
|
58659
58982
|
children: [
|
|
58660
|
-
/* @__PURE__ */
|
|
58983
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
58661
58984
|
width: 3,
|
|
58662
|
-
children: /* @__PURE__ */
|
|
58985
|
+
children: /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58663
58986
|
color: isSelected ? "green" : undefined,
|
|
58664
58987
|
children: isSelected ? "▶ " : " "
|
|
58665
58988
|
}, undefined, false, undefined, this)
|
|
58666
58989
|
}, undefined, false, undefined, this),
|
|
58667
|
-
/* @__PURE__ */
|
|
58990
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58668
58991
|
color: isSelected ? "green" : undefined,
|
|
58669
58992
|
children: `${index + 1}. ${entry.displayName}`
|
|
58670
58993
|
}, undefined, false, undefined, this)
|
|
58671
58994
|
]
|
|
58672
58995
|
}, entry.type, true, undefined, this);
|
|
58673
58996
|
}),
|
|
58674
|
-
selectedTopLevelSearchEntry && /* @__PURE__ */
|
|
58997
|
+
selectedTopLevelSearchEntry && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
58675
58998
|
marginTop: 1,
|
|
58676
58999
|
paddingLeft: 2,
|
|
58677
|
-
children: /* @__PURE__ */
|
|
59000
|
+
children: /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58678
59001
|
dimColor: true,
|
|
58679
59002
|
children: selectedTopLevelSearchEntry.description
|
|
58680
59003
|
}, undefined, false, undefined, this)
|
|
58681
59004
|
}, undefined, false, undefined, this)
|
|
58682
59005
|
]
|
|
58683
|
-
}, undefined, true, undefined, this) : pickerCategories.length === 0 ? /* @__PURE__ */
|
|
59006
|
+
}, undefined, true, undefined, this) : pickerCategories.length === 0 ? /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58684
59007
|
dimColor: true,
|
|
58685
59008
|
children: "No categories available."
|
|
58686
|
-
}, undefined, false, undefined, this) : /* @__PURE__ */
|
|
59009
|
+
}, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(jsx_dev_runtime9.Fragment, {
|
|
58687
59010
|
children: [
|
|
58688
59011
|
pickerCategories.map((category, index) => {
|
|
58689
59012
|
const isSelected = category === selectedPickerCategory;
|
|
58690
|
-
return /* @__PURE__ */
|
|
59013
|
+
return /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
58691
59014
|
flexDirection: "row",
|
|
58692
59015
|
flexWrap: "nowrap",
|
|
58693
59016
|
children: [
|
|
58694
|
-
/* @__PURE__ */
|
|
59017
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
58695
59018
|
width: 3,
|
|
58696
|
-
children: /* @__PURE__ */
|
|
59019
|
+
children: /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58697
59020
|
color: isSelected ? "green" : undefined,
|
|
58698
59021
|
children: isSelected ? "▶ " : " "
|
|
58699
59022
|
}, undefined, false, undefined, this)
|
|
58700
59023
|
}, undefined, false, undefined, this),
|
|
58701
|
-
/* @__PURE__ */
|
|
59024
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58702
59025
|
color: isSelected ? "green" : undefined,
|
|
58703
59026
|
children: `${index + 1}. ${category}`
|
|
58704
59027
|
}, undefined, false, undefined, this)
|
|
58705
59028
|
]
|
|
58706
59029
|
}, category, true, undefined, this);
|
|
58707
59030
|
}),
|
|
58708
|
-
selectedPickerCategory === "All" && /* @__PURE__ */
|
|
59031
|
+
selectedPickerCategory === "All" && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
58709
59032
|
marginTop: 1,
|
|
58710
59033
|
paddingLeft: 2,
|
|
58711
|
-
children: /* @__PURE__ */
|
|
59034
|
+
children: /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58712
59035
|
dimColor: true,
|
|
58713
59036
|
children: "Search across all widget categories."
|
|
58714
59037
|
}, undefined, false, undefined, this)
|
|
58715
59038
|
}, undefined, false, undefined, this)
|
|
58716
59039
|
]
|
|
58717
|
-
}, undefined, true, undefined, this) : pickerEntries.length === 0 ? /* @__PURE__ */
|
|
59040
|
+
}, undefined, true, undefined, this) : pickerEntries.length === 0 ? /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58718
59041
|
dimColor: true,
|
|
58719
59042
|
children: "No widgets match the current category/search."
|
|
58720
|
-
}, undefined, false, undefined, this) : /* @__PURE__ */
|
|
59043
|
+
}, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(jsx_dev_runtime9.Fragment, {
|
|
58721
59044
|
children: [
|
|
58722
59045
|
pickerEntries.map((entry, index) => {
|
|
58723
59046
|
const isSelected = entry.type === selectedPickerEntry?.type;
|
|
58724
|
-
return /* @__PURE__ */
|
|
59047
|
+
return /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
58725
59048
|
flexDirection: "row",
|
|
58726
59049
|
flexWrap: "nowrap",
|
|
58727
59050
|
children: [
|
|
58728
|
-
/* @__PURE__ */
|
|
59051
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
58729
59052
|
width: 3,
|
|
58730
|
-
children: /* @__PURE__ */
|
|
59053
|
+
children: /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58731
59054
|
color: isSelected ? "green" : undefined,
|
|
58732
59055
|
children: isSelected ? "▶ " : " "
|
|
58733
59056
|
}, undefined, false, undefined, this)
|
|
58734
59057
|
}, undefined, false, undefined, this),
|
|
58735
|
-
/* @__PURE__ */
|
|
59058
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58736
59059
|
color: isSelected ? "green" : undefined,
|
|
58737
59060
|
children: `${index + 1}. ${entry.displayName}`
|
|
58738
59061
|
}, undefined, false, undefined, this)
|
|
58739
59062
|
]
|
|
58740
59063
|
}, entry.type, true, undefined, this);
|
|
58741
59064
|
}),
|
|
58742
|
-
selectedPickerEntry && /* @__PURE__ */
|
|
59065
|
+
selectedPickerEntry && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
58743
59066
|
marginTop: 1,
|
|
58744
59067
|
paddingLeft: 2,
|
|
58745
|
-
children: /* @__PURE__ */
|
|
59068
|
+
children: /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58746
59069
|
dimColor: true,
|
|
58747
59070
|
children: selectedPickerEntry.description
|
|
58748
59071
|
}, undefined, false, undefined, this)
|
|
@@ -58750,60 +59073,60 @@ var ItemsEditor = ({ widgets, onUpdate, onBack, lineNumber, settings }) => {
|
|
|
58750
59073
|
]
|
|
58751
59074
|
}, undefined, true, undefined, this)
|
|
58752
59075
|
}, undefined, false, undefined, this),
|
|
58753
|
-
!widgetPicker && /* @__PURE__ */
|
|
59076
|
+
!widgetPicker && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
58754
59077
|
marginTop: 1,
|
|
58755
59078
|
flexDirection: "column",
|
|
58756
|
-
children: widgets.length === 0 ? /* @__PURE__ */
|
|
59079
|
+
children: widgets.length === 0 ? /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58757
59080
|
dimColor: true,
|
|
58758
59081
|
children: "No widgets. Press 'a' to add one."
|
|
58759
|
-
}, undefined, false, undefined, this) : /* @__PURE__ */
|
|
59082
|
+
}, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(jsx_dev_runtime9.Fragment, {
|
|
58760
59083
|
children: [
|
|
58761
59084
|
widgets.map((widget, index) => {
|
|
58762
59085
|
const isSelected = index === selectedIndex;
|
|
58763
59086
|
const widgetImpl = widget.type !== "separator" && widget.type !== "flex-separator" ? getWidget(widget.type) : null;
|
|
58764
59087
|
const { displayText, modifierText } = widgetImpl?.getEditorDisplay(widget) ?? { displayText: getWidgetDisplay(widget) };
|
|
58765
59088
|
const supportsRawValue = widgetImpl?.supportsRawValue() ?? false;
|
|
58766
|
-
return /* @__PURE__ */
|
|
59089
|
+
return /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
58767
59090
|
flexDirection: "row",
|
|
58768
59091
|
flexWrap: "nowrap",
|
|
58769
59092
|
children: [
|
|
58770
|
-
/* @__PURE__ */
|
|
59093
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
58771
59094
|
width: 3,
|
|
58772
|
-
children: /* @__PURE__ */
|
|
59095
|
+
children: /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58773
59096
|
color: isSelected ? moveMode ? "blue" : "green" : undefined,
|
|
58774
59097
|
children: isSelected ? moveMode ? "◆ " : "▶ " : " "
|
|
58775
59098
|
}, undefined, false, undefined, this)
|
|
58776
59099
|
}, undefined, false, undefined, this),
|
|
58777
|
-
/* @__PURE__ */
|
|
59100
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58778
59101
|
color: isSelected ? moveMode ? "blue" : "green" : undefined,
|
|
58779
59102
|
children: `${index + 1}. ${displayText || getWidgetDisplay(widget)}`
|
|
58780
59103
|
}, undefined, false, undefined, this),
|
|
58781
|
-
modifierText && /* @__PURE__ */
|
|
59104
|
+
modifierText && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58782
59105
|
dimColor: true,
|
|
58783
59106
|
children: [
|
|
58784
59107
|
" ",
|
|
58785
59108
|
modifierText
|
|
58786
59109
|
]
|
|
58787
59110
|
}, undefined, true, undefined, this),
|
|
58788
|
-
supportsRawValue && widget.rawValue && /* @__PURE__ */
|
|
59111
|
+
supportsRawValue && widget.rawValue && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58789
59112
|
dimColor: true,
|
|
58790
59113
|
children: " (raw value)"
|
|
58791
59114
|
}, undefined, false, undefined, this),
|
|
58792
|
-
widget.merge === true && /* @__PURE__ */
|
|
59115
|
+
widget.merge === true && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58793
59116
|
dimColor: true,
|
|
58794
59117
|
children: " (merged→)"
|
|
58795
59118
|
}, undefined, false, undefined, this),
|
|
58796
|
-
widget.merge === "no-padding" && /* @__PURE__ */
|
|
59119
|
+
widget.merge === "no-padding" && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58797
59120
|
dimColor: true,
|
|
58798
59121
|
children: " (merged-no-pad→)"
|
|
58799
59122
|
}, undefined, false, undefined, this)
|
|
58800
59123
|
]
|
|
58801
59124
|
}, widget.id, true, undefined, this);
|
|
58802
59125
|
}),
|
|
58803
|
-
currentWidget && /* @__PURE__ */
|
|
59126
|
+
currentWidget && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
58804
59127
|
marginTop: 1,
|
|
58805
59128
|
paddingLeft: 2,
|
|
58806
|
-
children: /* @__PURE__ */
|
|
59129
|
+
children: /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
58807
59130
|
dimColor: true,
|
|
58808
59131
|
children: (() => {
|
|
58809
59132
|
if (currentWidget.type === "separator") {
|
|
@@ -58825,8 +59148,8 @@ var ItemsEditor = ({ widgets, onUpdate, onBack, lineNumber, settings }) => {
|
|
|
58825
59148
|
};
|
|
58826
59149
|
// src/tui/components/LineSelector.tsx
|
|
58827
59150
|
var import_pluralize = __toESM(require_pluralize(), 1);
|
|
58828
|
-
var
|
|
58829
|
-
var
|
|
59151
|
+
var import_react38 = __toESM(require_react(), 1);
|
|
59152
|
+
var jsx_dev_runtime10 = __toESM(require_jsx_dev_runtime(), 1);
|
|
58830
59153
|
var LineSelector = ({
|
|
58831
59154
|
lines,
|
|
58832
59155
|
onSelect,
|
|
@@ -58838,14 +59161,14 @@ var LineSelector = ({
|
|
|
58838
59161
|
settings,
|
|
58839
59162
|
allowEditing = false
|
|
58840
59163
|
}) => {
|
|
58841
|
-
const [selectedIndex, setSelectedIndex] =
|
|
58842
|
-
const [showDeleteDialog, setShowDeleteDialog] =
|
|
58843
|
-
const [moveMode, setMoveMode] =
|
|
58844
|
-
const [localLines, setLocalLines] =
|
|
58845
|
-
|
|
59164
|
+
const [selectedIndex, setSelectedIndex] = import_react38.useState(initialSelection);
|
|
59165
|
+
const [showDeleteDialog, setShowDeleteDialog] = import_react38.useState(false);
|
|
59166
|
+
const [moveMode, setMoveMode] = import_react38.useState(false);
|
|
59167
|
+
const [localLines, setLocalLines] = import_react38.useState(lines);
|
|
59168
|
+
import_react38.useEffect(() => {
|
|
58846
59169
|
setLocalLines(lines);
|
|
58847
59170
|
}, [lines]);
|
|
58848
|
-
const selectedLine =
|
|
59171
|
+
const selectedLine = import_react38.useMemo(() => localLines[selectedIndex], [localLines, selectedIndex]);
|
|
58849
59172
|
const appendLine = () => {
|
|
58850
59173
|
const newLines = [...localLines, []];
|
|
58851
59174
|
setLocalLines(newLines);
|
|
@@ -58930,16 +59253,16 @@ var LineSelector = ({
|
|
|
58930
59253
|
}
|
|
58931
59254
|
});
|
|
58932
59255
|
if (isThemeManaged) {
|
|
58933
|
-
return /* @__PURE__ */
|
|
59256
|
+
return /* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Box_default, {
|
|
58934
59257
|
flexDirection: "column",
|
|
58935
59258
|
children: [
|
|
58936
|
-
/* @__PURE__ */
|
|
59259
|
+
/* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Text, {
|
|
58937
59260
|
bold: true,
|
|
58938
59261
|
children: title ?? "Select Line"
|
|
58939
59262
|
}, undefined, false, undefined, this),
|
|
58940
|
-
/* @__PURE__ */
|
|
59263
|
+
/* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Box_default, {
|
|
58941
59264
|
marginTop: 1,
|
|
58942
|
-
children: /* @__PURE__ */
|
|
59265
|
+
children: /* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Text, {
|
|
58943
59266
|
color: "yellow",
|
|
58944
59267
|
children: [
|
|
58945
59268
|
"⚠ Colors are currently managed by the Powerline theme:",
|
|
@@ -58947,30 +59270,30 @@ var LineSelector = ({
|
|
|
58947
59270
|
]
|
|
58948
59271
|
}, undefined, true, undefined, this)
|
|
58949
59272
|
}, undefined, false, undefined, this),
|
|
58950
|
-
/* @__PURE__ */
|
|
59273
|
+
/* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Box_default, {
|
|
58951
59274
|
marginTop: 1,
|
|
58952
|
-
children: /* @__PURE__ */
|
|
59275
|
+
children: /* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Text, {
|
|
58953
59276
|
dimColor: true,
|
|
58954
59277
|
children: "To customize colors, either:"
|
|
58955
59278
|
}, undefined, false, undefined, this)
|
|
58956
59279
|
}, undefined, false, undefined, this),
|
|
58957
|
-
/* @__PURE__ */
|
|
59280
|
+
/* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Box_default, {
|
|
58958
59281
|
marginLeft: 2,
|
|
58959
|
-
children: /* @__PURE__ */
|
|
59282
|
+
children: /* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Text, {
|
|
58960
59283
|
dimColor: true,
|
|
58961
59284
|
children: "• Change to 'Custom' theme in Powerline Configuration → Themes"
|
|
58962
59285
|
}, undefined, false, undefined, this)
|
|
58963
59286
|
}, undefined, false, undefined, this),
|
|
58964
|
-
/* @__PURE__ */
|
|
59287
|
+
/* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Box_default, {
|
|
58965
59288
|
marginLeft: 2,
|
|
58966
|
-
children: /* @__PURE__ */
|
|
59289
|
+
children: /* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Text, {
|
|
58967
59290
|
dimColor: true,
|
|
58968
59291
|
children: "• Disable Powerline mode in Powerline Configuration"
|
|
58969
59292
|
}, undefined, false, undefined, this)
|
|
58970
59293
|
}, undefined, false, undefined, this),
|
|
58971
|
-
/* @__PURE__ */
|
|
59294
|
+
/* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Box_default, {
|
|
58972
59295
|
marginTop: 2,
|
|
58973
|
-
children: /* @__PURE__ */
|
|
59296
|
+
children: /* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Text, {
|
|
58974
59297
|
children: "Press any key to go back..."
|
|
58975
59298
|
}, undefined, false, undefined, this)
|
|
58976
59299
|
}, undefined, false, undefined, this)
|
|
@@ -58979,18 +59302,18 @@ var LineSelector = ({
|
|
|
58979
59302
|
}
|
|
58980
59303
|
if (showDeleteDialog && selectedLine) {
|
|
58981
59304
|
const suffix = selectedLine.length > 0 ? import_pluralize.default("widget", selectedLine.length, true) : "empty";
|
|
58982
|
-
return /* @__PURE__ */
|
|
59305
|
+
return /* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Box_default, {
|
|
58983
59306
|
flexDirection: "column",
|
|
58984
59307
|
children: [
|
|
58985
|
-
/* @__PURE__ */
|
|
59308
|
+
/* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Box_default, {
|
|
58986
59309
|
flexDirection: "column",
|
|
58987
59310
|
gap: 1,
|
|
58988
59311
|
children: [
|
|
58989
|
-
/* @__PURE__ */
|
|
59312
|
+
/* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Text, {
|
|
58990
59313
|
bold: true,
|
|
58991
|
-
children: /* @__PURE__ */
|
|
59314
|
+
children: /* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Text, {
|
|
58992
59315
|
children: [
|
|
58993
|
-
/* @__PURE__ */
|
|
59316
|
+
/* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Text, {
|
|
58994
59317
|
children: [
|
|
58995
59318
|
"☰ Line",
|
|
58996
59319
|
" ",
|
|
@@ -58998,7 +59321,7 @@ var LineSelector = ({
|
|
|
58998
59321
|
]
|
|
58999
59322
|
}, undefined, true, undefined, this),
|
|
59000
59323
|
" ",
|
|
59001
|
-
/* @__PURE__ */
|
|
59324
|
+
/* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Text, {
|
|
59002
59325
|
dimColor: true,
|
|
59003
59326
|
children: [
|
|
59004
59327
|
"(",
|
|
@@ -59009,15 +59332,15 @@ var LineSelector = ({
|
|
|
59009
59332
|
]
|
|
59010
59333
|
}, undefined, true, undefined, this)
|
|
59011
59334
|
}, undefined, false, undefined, this),
|
|
59012
|
-
/* @__PURE__ */
|
|
59335
|
+
/* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Text, {
|
|
59013
59336
|
bold: true,
|
|
59014
59337
|
children: "Are you sure you want to delete line?"
|
|
59015
59338
|
}, undefined, false, undefined, this)
|
|
59016
59339
|
]
|
|
59017
59340
|
}, undefined, true, undefined, this),
|
|
59018
|
-
/* @__PURE__ */
|
|
59341
|
+
/* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Box_default, {
|
|
59019
59342
|
marginTop: 1,
|
|
59020
|
-
children: /* @__PURE__ */
|
|
59343
|
+
children: /* @__PURE__ */ jsx_dev_runtime10.jsxDEV(ConfirmDialog, {
|
|
59021
59344
|
inline: true,
|
|
59022
59345
|
onConfirm: () => {
|
|
59023
59346
|
deleteLine(selectedIndex);
|
|
@@ -59032,53 +59355,53 @@ var LineSelector = ({
|
|
|
59032
59355
|
]
|
|
59033
59356
|
}, undefined, true, undefined, this);
|
|
59034
59357
|
}
|
|
59035
|
-
return /* @__PURE__ */
|
|
59036
|
-
children: /* @__PURE__ */
|
|
59358
|
+
return /* @__PURE__ */ jsx_dev_runtime10.jsxDEV(jsx_dev_runtime10.Fragment, {
|
|
59359
|
+
children: /* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Box_default, {
|
|
59037
59360
|
flexDirection: "column",
|
|
59038
59361
|
children: [
|
|
59039
|
-
/* @__PURE__ */
|
|
59362
|
+
/* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Box_default, {
|
|
59040
59363
|
children: [
|
|
59041
|
-
/* @__PURE__ */
|
|
59364
|
+
/* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Text, {
|
|
59042
59365
|
bold: true,
|
|
59043
59366
|
children: [
|
|
59044
59367
|
title ?? "Select Line to Edit",
|
|
59045
59368
|
" "
|
|
59046
59369
|
]
|
|
59047
59370
|
}, undefined, true, undefined, this),
|
|
59048
|
-
moveMode && /* @__PURE__ */
|
|
59371
|
+
moveMode && /* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Text, {
|
|
59049
59372
|
color: "blue",
|
|
59050
59373
|
children: "[MOVE MODE]"
|
|
59051
59374
|
}, undefined, false, undefined, this)
|
|
59052
59375
|
]
|
|
59053
59376
|
}, undefined, true, undefined, this),
|
|
59054
|
-
/* @__PURE__ */
|
|
59377
|
+
/* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Text, {
|
|
59055
59378
|
dimColor: true,
|
|
59056
59379
|
children: "Choose which status line to configure"
|
|
59057
59380
|
}, undefined, false, undefined, this),
|
|
59058
|
-
moveMode ? /* @__PURE__ */
|
|
59381
|
+
moveMode ? /* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Text, {
|
|
59059
59382
|
dimColor: true,
|
|
59060
59383
|
children: "↑↓ to move line, ESC or Enter to exit move mode"
|
|
59061
|
-
}, undefined, false, undefined, this) : /* @__PURE__ */
|
|
59384
|
+
}, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Text, {
|
|
59062
59385
|
dimColor: true,
|
|
59063
59386
|
children: allowEditing ? localLines.length > 1 ? "(a) to append new line, (d) to delete line, (m) to move line, ESC to go back" : "(a) to append new line, ESC to go back" : "ESC to go back"
|
|
59064
59387
|
}, undefined, false, undefined, this),
|
|
59065
|
-
/* @__PURE__ */
|
|
59388
|
+
/* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Box_default, {
|
|
59066
59389
|
marginTop: 1,
|
|
59067
59390
|
flexDirection: "column",
|
|
59068
59391
|
children: [
|
|
59069
59392
|
localLines.map((line, index) => {
|
|
59070
59393
|
const isSelected = selectedIndex === index;
|
|
59071
59394
|
const suffix = line.length ? import_pluralize.default("widget", line.length, true) : "empty";
|
|
59072
|
-
return /* @__PURE__ */
|
|
59073
|
-
children: /* @__PURE__ */
|
|
59395
|
+
return /* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Box_default, {
|
|
59396
|
+
children: /* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Text, {
|
|
59074
59397
|
color: isSelected ? moveMode ? "blue" : "green" : undefined,
|
|
59075
59398
|
children: [
|
|
59076
|
-
/* @__PURE__ */
|
|
59399
|
+
/* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Text, {
|
|
59077
59400
|
children: isSelected ? moveMode ? "◆ " : "▶ " : " "
|
|
59078
59401
|
}, undefined, false, undefined, this),
|
|
59079
|
-
/* @__PURE__ */
|
|
59402
|
+
/* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Text, {
|
|
59080
59403
|
children: [
|
|
59081
|
-
/* @__PURE__ */
|
|
59404
|
+
/* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Text, {
|
|
59082
59405
|
children: [
|
|
59083
59406
|
"☰ Line",
|
|
59084
59407
|
" ",
|
|
@@ -59086,7 +59409,7 @@ var LineSelector = ({
|
|
|
59086
59409
|
]
|
|
59087
59410
|
}, undefined, true, undefined, this),
|
|
59088
59411
|
" ",
|
|
59089
|
-
/* @__PURE__ */
|
|
59412
|
+
/* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Text, {
|
|
59090
59413
|
dimColor: !isSelected,
|
|
59091
59414
|
children: [
|
|
59092
59415
|
"(",
|
|
@@ -59100,9 +59423,9 @@ var LineSelector = ({
|
|
|
59100
59423
|
}, undefined, true, undefined, this)
|
|
59101
59424
|
}, index, false, undefined, this);
|
|
59102
59425
|
}),
|
|
59103
|
-
!moveMode && /* @__PURE__ */
|
|
59426
|
+
!moveMode && /* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Box_default, {
|
|
59104
59427
|
marginTop: 1,
|
|
59105
|
-
children: /* @__PURE__ */
|
|
59428
|
+
children: /* @__PURE__ */ jsx_dev_runtime10.jsxDEV(Text, {
|
|
59106
59429
|
color: selectedIndex === localLines.length ? "green" : undefined,
|
|
59107
59430
|
children: [
|
|
59108
59431
|
selectedIndex === localLines.length ? "▶ " : " ",
|
|
@@ -59117,10 +59440,10 @@ var LineSelector = ({
|
|
|
59117
59440
|
}, undefined, false, undefined, this);
|
|
59118
59441
|
};
|
|
59119
59442
|
// src/tui/components/MainMenu.tsx
|
|
59120
|
-
var
|
|
59121
|
-
var
|
|
59443
|
+
var import_react39 = __toESM(require_react(), 1);
|
|
59444
|
+
var jsx_dev_runtime11 = __toESM(require_jsx_dev_runtime(), 1);
|
|
59122
59445
|
var MainMenu = ({ onSelect, isClaudeInstalled, hasChanges, initialSelection = 0, powerlineFontStatus, settings, previewIsTruncated }) => {
|
|
59123
|
-
const [selectedIndex, setSelectedIndex] =
|
|
59446
|
+
const [selectedIndex, setSelectedIndex] = import_react39.useState(initialSelection);
|
|
59124
59447
|
const menuItems = [
|
|
59125
59448
|
{ label: "\uD83D\uDCDD Edit Lines", value: "lines", selectable: true },
|
|
59126
59449
|
{ label: "\uD83C\uDFA8 Edit Colors", value: "colors", selectable: true },
|
|
@@ -59166,32 +59489,32 @@ var MainMenu = ({ onSelect, isClaudeInstalled, hasChanges, initialSelection = 0,
|
|
|
59166
59489
|
const selectedItem = selectableItems[selectedIndex];
|
|
59167
59490
|
const description = selectedItem ? getDescription(selectedItem.value) : "";
|
|
59168
59491
|
const showTruncationWarning = previewIsTruncated && settings?.flexMode === "full-minus-40";
|
|
59169
|
-
return /* @__PURE__ */
|
|
59492
|
+
return /* @__PURE__ */ jsx_dev_runtime11.jsxDEV(Box_default, {
|
|
59170
59493
|
flexDirection: "column",
|
|
59171
59494
|
children: [
|
|
59172
|
-
showTruncationWarning && /* @__PURE__ */
|
|
59495
|
+
showTruncationWarning && /* @__PURE__ */ jsx_dev_runtime11.jsxDEV(Box_default, {
|
|
59173
59496
|
marginBottom: 1,
|
|
59174
|
-
children: /* @__PURE__ */
|
|
59497
|
+
children: /* @__PURE__ */ jsx_dev_runtime11.jsxDEV(Text, {
|
|
59175
59498
|
color: "yellow",
|
|
59176
59499
|
children: "⚠ Some lines are truncated, see Terminal Options → Terminal Width for info"
|
|
59177
59500
|
}, undefined, false, undefined, this)
|
|
59178
59501
|
}, undefined, false, undefined, this),
|
|
59179
|
-
/* @__PURE__ */
|
|
59502
|
+
/* @__PURE__ */ jsx_dev_runtime11.jsxDEV(Text, {
|
|
59180
59503
|
bold: true,
|
|
59181
59504
|
children: "Main Menu"
|
|
59182
59505
|
}, undefined, false, undefined, this),
|
|
59183
|
-
/* @__PURE__ */
|
|
59506
|
+
/* @__PURE__ */ jsx_dev_runtime11.jsxDEV(Box_default, {
|
|
59184
59507
|
marginTop: 1,
|
|
59185
59508
|
flexDirection: "column",
|
|
59186
59509
|
children: menuItems.map((item, idx) => {
|
|
59187
59510
|
if (!item.selectable && item.value.startsWith("_gap")) {
|
|
59188
|
-
return /* @__PURE__ */
|
|
59511
|
+
return /* @__PURE__ */ jsx_dev_runtime11.jsxDEV(Text, {
|
|
59189
59512
|
children: " "
|
|
59190
59513
|
}, item.value, false, undefined, this);
|
|
59191
59514
|
}
|
|
59192
59515
|
const selectableIdx = selectableItems.indexOf(item);
|
|
59193
59516
|
const isSelected = selectableIdx === selectedIndex;
|
|
59194
|
-
return /* @__PURE__ */
|
|
59517
|
+
return /* @__PURE__ */ jsx_dev_runtime11.jsxDEV(Text, {
|
|
59195
59518
|
color: isSelected ? "green" : undefined,
|
|
59196
59519
|
children: [
|
|
59197
59520
|
isSelected ? "▶ " : " ",
|
|
@@ -59200,10 +59523,10 @@ var MainMenu = ({ onSelect, isClaudeInstalled, hasChanges, initialSelection = 0,
|
|
|
59200
59523
|
}, item.value, true, undefined, this);
|
|
59201
59524
|
})
|
|
59202
59525
|
}, undefined, false, undefined, this),
|
|
59203
|
-
description && /* @__PURE__ */
|
|
59526
|
+
description && /* @__PURE__ */ jsx_dev_runtime11.jsxDEV(Box_default, {
|
|
59204
59527
|
marginTop: 1,
|
|
59205
59528
|
paddingLeft: 2,
|
|
59206
|
-
children: /* @__PURE__ */
|
|
59529
|
+
children: /* @__PURE__ */ jsx_dev_runtime11.jsxDEV(Text, {
|
|
59207
59530
|
dimColor: true,
|
|
59208
59531
|
wrap: "wrap",
|
|
59209
59532
|
children: description
|
|
@@ -59213,12 +59536,12 @@ var MainMenu = ({ onSelect, isClaudeInstalled, hasChanges, initialSelection = 0,
|
|
|
59213
59536
|
}, undefined, true, undefined, this);
|
|
59214
59537
|
};
|
|
59215
59538
|
// src/tui/components/PowerlineSetup.tsx
|
|
59216
|
-
var
|
|
59539
|
+
var import_react42 = __toESM(require_react(), 1);
|
|
59217
59540
|
import * as os10 from "os";
|
|
59218
59541
|
|
|
59219
59542
|
// src/tui/components/PowerlineSeparatorEditor.tsx
|
|
59220
|
-
var
|
|
59221
|
-
var
|
|
59543
|
+
var import_react40 = __toESM(require_react(), 1);
|
|
59544
|
+
var jsx_dev_runtime12 = __toESM(require_jsx_dev_runtime(), 1);
|
|
59222
59545
|
var PowerlineSeparatorEditor = ({
|
|
59223
59546
|
settings,
|
|
59224
59547
|
mode,
|
|
@@ -59238,10 +59561,10 @@ var PowerlineSeparatorEditor = ({
|
|
|
59238
59561
|
};
|
|
59239
59562
|
const separators = getItems();
|
|
59240
59563
|
const invertBgs = mode === "separator" ? powerlineConfig.separatorInvertBackground : [];
|
|
59241
|
-
const [selectedIndex, setSelectedIndex] =
|
|
59242
|
-
const [hexInputMode, setHexInputMode] =
|
|
59243
|
-
const [hexInput, setHexInput] =
|
|
59244
|
-
const [cursorPos, setCursorPos] =
|
|
59564
|
+
const [selectedIndex, setSelectedIndex] = import_react40.useState(0);
|
|
59565
|
+
const [hexInputMode, setHexInputMode] = import_react40.useState(false);
|
|
59566
|
+
const [hexInput, setHexInput] = import_react40.useState("");
|
|
59567
|
+
const [cursorPos, setCursorPos] = import_react40.useState(0);
|
|
59245
59568
|
const getPresets = () => {
|
|
59246
59569
|
if (mode === "separator") {
|
|
59247
59570
|
return [
|
|
@@ -59430,18 +59753,18 @@ var PowerlineSeparatorEditor = ({
|
|
|
59430
59753
|
};
|
|
59431
59754
|
const canAdd = mode === "separator" || separators.length < 3;
|
|
59432
59755
|
const canDelete = mode !== "separator" || separators.length > 1;
|
|
59433
|
-
return /* @__PURE__ */
|
|
59756
|
+
return /* @__PURE__ */ jsx_dev_runtime12.jsxDEV(Box_default, {
|
|
59434
59757
|
flexDirection: "column",
|
|
59435
59758
|
children: [
|
|
59436
|
-
/* @__PURE__ */
|
|
59759
|
+
/* @__PURE__ */ jsx_dev_runtime12.jsxDEV(Text, {
|
|
59437
59760
|
bold: true,
|
|
59438
59761
|
children: getTitle()
|
|
59439
59762
|
}, undefined, false, undefined, this),
|
|
59440
|
-
hexInputMode ? /* @__PURE__ */
|
|
59763
|
+
hexInputMode ? /* @__PURE__ */ jsx_dev_runtime12.jsxDEV(Box_default, {
|
|
59441
59764
|
marginTop: 2,
|
|
59442
59765
|
flexDirection: "column",
|
|
59443
59766
|
children: [
|
|
59444
|
-
/* @__PURE__ */
|
|
59767
|
+
/* @__PURE__ */ jsx_dev_runtime12.jsxDEV(Text, {
|
|
59445
59768
|
children: [
|
|
59446
59769
|
"Enter 4-digit hex code for",
|
|
59447
59770
|
" ",
|
|
@@ -59450,47 +59773,47 @@ var PowerlineSeparatorEditor = ({
|
|
|
59450
59773
|
":"
|
|
59451
59774
|
]
|
|
59452
59775
|
}, undefined, true, undefined, this),
|
|
59453
|
-
/* @__PURE__ */
|
|
59776
|
+
/* @__PURE__ */ jsx_dev_runtime12.jsxDEV(Text, {
|
|
59454
59777
|
children: [
|
|
59455
59778
|
"\\u",
|
|
59456
59779
|
hexInput.slice(0, cursorPos),
|
|
59457
|
-
/* @__PURE__ */
|
|
59780
|
+
/* @__PURE__ */ jsx_dev_runtime12.jsxDEV(Text, {
|
|
59458
59781
|
backgroundColor: "gray",
|
|
59459
59782
|
color: "black",
|
|
59460
59783
|
children: hexInput[cursorPos] ?? "_"
|
|
59461
59784
|
}, undefined, false, undefined, this),
|
|
59462
59785
|
hexInput.slice(cursorPos + 1),
|
|
59463
|
-
hexInput.length < 4 && hexInput.length === cursorPos && /* @__PURE__ */
|
|
59786
|
+
hexInput.length < 4 && hexInput.length === cursorPos && /* @__PURE__ */ jsx_dev_runtime12.jsxDEV(Text, {
|
|
59464
59787
|
dimColor: true,
|
|
59465
59788
|
children: "_".repeat(4 - hexInput.length - 1)
|
|
59466
59789
|
}, undefined, false, undefined, this)
|
|
59467
59790
|
]
|
|
59468
59791
|
}, undefined, true, undefined, this),
|
|
59469
|
-
/* @__PURE__ */
|
|
59792
|
+
/* @__PURE__ */ jsx_dev_runtime12.jsxDEV(Text, {
|
|
59470
59793
|
dimColor: true,
|
|
59471
59794
|
children: "Enter 4 hex digits (0-9, A-F), then press Enter. ESC to cancel."
|
|
59472
59795
|
}, undefined, false, undefined, this)
|
|
59473
59796
|
]
|
|
59474
|
-
}, undefined, true, undefined, this) : /* @__PURE__ */
|
|
59797
|
+
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime12.jsxDEV(jsx_dev_runtime12.Fragment, {
|
|
59475
59798
|
children: [
|
|
59476
|
-
/* @__PURE__ */
|
|
59477
|
-
children: /* @__PURE__ */
|
|
59799
|
+
/* @__PURE__ */ jsx_dev_runtime12.jsxDEV(Box_default, {
|
|
59800
|
+
children: /* @__PURE__ */ jsx_dev_runtime12.jsxDEV(Text, {
|
|
59478
59801
|
dimColor: true,
|
|
59479
59802
|
children: `↑↓ select, ← → cycle${canAdd ? ", (a)dd, (i)nsert" : ""}${canDelete ? ", (d)elete" : ""}, (c)lear, (h)ex${mode === "separator" ? ", (t)oggle invert" : ""}, ESC back`
|
|
59480
59803
|
}, undefined, false, undefined, this)
|
|
59481
59804
|
}, undefined, false, undefined, this),
|
|
59482
|
-
/* @__PURE__ */
|
|
59805
|
+
/* @__PURE__ */ jsx_dev_runtime12.jsxDEV(Box_default, {
|
|
59483
59806
|
marginTop: 2,
|
|
59484
59807
|
flexDirection: "column",
|
|
59485
|
-
children: separators.length > 0 ? separators.map((sep2, index) => /* @__PURE__ */
|
|
59486
|
-
children: /* @__PURE__ */
|
|
59808
|
+
children: separators.length > 0 ? separators.map((sep2, index) => /* @__PURE__ */ jsx_dev_runtime12.jsxDEV(Box_default, {
|
|
59809
|
+
children: /* @__PURE__ */ jsx_dev_runtime12.jsxDEV(Text, {
|
|
59487
59810
|
color: index === selectedIndex ? "green" : undefined,
|
|
59488
59811
|
children: [
|
|
59489
59812
|
index === selectedIndex ? "▶ " : " ",
|
|
59490
59813
|
`${index + 1}: ${getSeparatorDisplay(sep2, index)}`
|
|
59491
59814
|
]
|
|
59492
59815
|
}, undefined, true, undefined, this)
|
|
59493
|
-
}, index, false, undefined, this)) : /* @__PURE__ */
|
|
59816
|
+
}, index, false, undefined, this)) : /* @__PURE__ */ jsx_dev_runtime12.jsxDEV(Text, {
|
|
59494
59817
|
dimColor: true,
|
|
59495
59818
|
children: "(none configured - press 'a' to add)"
|
|
59496
59819
|
}, undefined, false, undefined, this)
|
|
@@ -59502,8 +59825,8 @@ var PowerlineSeparatorEditor = ({
|
|
|
59502
59825
|
};
|
|
59503
59826
|
|
|
59504
59827
|
// src/tui/components/PowerlineThemeSelector.tsx
|
|
59505
|
-
var
|
|
59506
|
-
var
|
|
59828
|
+
var import_react41 = __toESM(require_react(), 1);
|
|
59829
|
+
var jsx_dev_runtime13 = __toESM(require_jsx_dev_runtime(), 1);
|
|
59507
59830
|
var PowerlineThemeSelector = ({
|
|
59508
59831
|
settings,
|
|
59509
59832
|
onUpdate,
|
|
@@ -59511,10 +59834,10 @@ var PowerlineThemeSelector = ({
|
|
|
59511
59834
|
}) => {
|
|
59512
59835
|
const themes = getPowerlineThemes();
|
|
59513
59836
|
const currentTheme = settings.powerline.theme ?? "custom";
|
|
59514
|
-
const [selectedIndex, setSelectedIndex] =
|
|
59515
|
-
const [showCustomizeConfirm, setShowCustomizeConfirm] =
|
|
59516
|
-
const originalThemeRef =
|
|
59517
|
-
const originalSettingsRef =
|
|
59837
|
+
const [selectedIndex, setSelectedIndex] = import_react41.useState(Math.max(0, themes.indexOf(currentTheme)));
|
|
59838
|
+
const [showCustomizeConfirm, setShowCustomizeConfirm] = import_react41.useState(false);
|
|
59839
|
+
const originalThemeRef = import_react41.useRef(currentTheme);
|
|
59840
|
+
const originalSettingsRef = import_react41.useRef(settings);
|
|
59518
59841
|
const applyTheme = (themeName) => {
|
|
59519
59842
|
const updatedSettings = {
|
|
59520
59843
|
...settings,
|
|
@@ -59602,39 +59925,39 @@ var PowerlineThemeSelector = ({
|
|
|
59602
59925
|
const selectedThemeName = themes[selectedIndex];
|
|
59603
59926
|
const selectedTheme = selectedThemeName ? getPowerlineTheme(selectedThemeName) : undefined;
|
|
59604
59927
|
if (showCustomizeConfirm) {
|
|
59605
|
-
return /* @__PURE__ */
|
|
59928
|
+
return /* @__PURE__ */ jsx_dev_runtime13.jsxDEV(Box_default, {
|
|
59606
59929
|
flexDirection: "column",
|
|
59607
59930
|
children: [
|
|
59608
|
-
/* @__PURE__ */
|
|
59931
|
+
/* @__PURE__ */ jsx_dev_runtime13.jsxDEV(Text, {
|
|
59609
59932
|
bold: true,
|
|
59610
59933
|
color: "yellow",
|
|
59611
59934
|
children: "⚠ Confirm Customization"
|
|
59612
59935
|
}, undefined, false, undefined, this),
|
|
59613
|
-
/* @__PURE__ */
|
|
59936
|
+
/* @__PURE__ */ jsx_dev_runtime13.jsxDEV(Box_default, {
|
|
59614
59937
|
marginTop: 1,
|
|
59615
59938
|
flexDirection: "column",
|
|
59616
59939
|
children: [
|
|
59617
|
-
/* @__PURE__ */
|
|
59940
|
+
/* @__PURE__ */ jsx_dev_runtime13.jsxDEV(Text, {
|
|
59618
59941
|
children: "This will copy the current theme colors to your widgets"
|
|
59619
59942
|
}, undefined, false, undefined, this),
|
|
59620
|
-
/* @__PURE__ */
|
|
59943
|
+
/* @__PURE__ */ jsx_dev_runtime13.jsxDEV(Text, {
|
|
59621
59944
|
children: "and switch to Custom theme mode."
|
|
59622
59945
|
}, undefined, false, undefined, this),
|
|
59623
|
-
/* @__PURE__ */
|
|
59946
|
+
/* @__PURE__ */ jsx_dev_runtime13.jsxDEV(Text, {
|
|
59624
59947
|
color: "red",
|
|
59625
59948
|
children: "This will overwrite any existing custom colors!"
|
|
59626
59949
|
}, undefined, false, undefined, this)
|
|
59627
59950
|
]
|
|
59628
59951
|
}, undefined, true, undefined, this),
|
|
59629
|
-
/* @__PURE__ */
|
|
59952
|
+
/* @__PURE__ */ jsx_dev_runtime13.jsxDEV(Box_default, {
|
|
59630
59953
|
marginTop: 2,
|
|
59631
|
-
children: /* @__PURE__ */
|
|
59954
|
+
children: /* @__PURE__ */ jsx_dev_runtime13.jsxDEV(Text, {
|
|
59632
59955
|
children: "Continue?"
|
|
59633
59956
|
}, undefined, false, undefined, this)
|
|
59634
59957
|
}, undefined, false, undefined, this),
|
|
59635
|
-
/* @__PURE__ */
|
|
59958
|
+
/* @__PURE__ */ jsx_dev_runtime13.jsxDEV(Box_default, {
|
|
59636
59959
|
marginTop: 1,
|
|
59637
|
-
children: /* @__PURE__ */
|
|
59960
|
+
children: /* @__PURE__ */ jsx_dev_runtime13.jsxDEV(ConfirmDialog, {
|
|
59638
59961
|
inline: true,
|
|
59639
59962
|
onConfirm: () => {
|
|
59640
59963
|
customizeTheme();
|
|
@@ -59648,39 +59971,39 @@ var PowerlineThemeSelector = ({
|
|
|
59648
59971
|
]
|
|
59649
59972
|
}, undefined, true, undefined, this);
|
|
59650
59973
|
}
|
|
59651
|
-
return /* @__PURE__ */
|
|
59974
|
+
return /* @__PURE__ */ jsx_dev_runtime13.jsxDEV(Box_default, {
|
|
59652
59975
|
flexDirection: "column",
|
|
59653
59976
|
children: [
|
|
59654
|
-
/* @__PURE__ */
|
|
59977
|
+
/* @__PURE__ */ jsx_dev_runtime13.jsxDEV(Text, {
|
|
59655
59978
|
bold: true,
|
|
59656
59979
|
children: [
|
|
59657
59980
|
`Powerline Theme Selection | `,
|
|
59658
|
-
/* @__PURE__ */
|
|
59981
|
+
/* @__PURE__ */ jsx_dev_runtime13.jsxDEV(Text, {
|
|
59659
59982
|
dimColor: true,
|
|
59660
59983
|
children: `Original: ${originalThemeRef.current}`
|
|
59661
59984
|
}, undefined, false, undefined, this)
|
|
59662
59985
|
]
|
|
59663
59986
|
}, undefined, true, undefined, this),
|
|
59664
|
-
/* @__PURE__ */
|
|
59665
|
-
children: /* @__PURE__ */
|
|
59987
|
+
/* @__PURE__ */ jsx_dev_runtime13.jsxDEV(Box_default, {
|
|
59988
|
+
children: /* @__PURE__ */ jsx_dev_runtime13.jsxDEV(Text, {
|
|
59666
59989
|
dimColor: true,
|
|
59667
59990
|
children: `↑↓ navigate, Enter apply${selectedThemeName && selectedThemeName !== "custom" ? ", (c)ustomize theme" : ""}, ESC cancel`
|
|
59668
59991
|
}, undefined, false, undefined, this)
|
|
59669
59992
|
}, undefined, false, undefined, this),
|
|
59670
|
-
/* @__PURE__ */
|
|
59993
|
+
/* @__PURE__ */ jsx_dev_runtime13.jsxDEV(Box_default, {
|
|
59671
59994
|
marginTop: 1,
|
|
59672
59995
|
flexDirection: "column",
|
|
59673
59996
|
children: themes.map((themeName, index) => {
|
|
59674
59997
|
const theme = getPowerlineTheme(themeName);
|
|
59675
59998
|
const isSelected = index === selectedIndex;
|
|
59676
59999
|
const isOriginal = themeName === originalThemeRef.current;
|
|
59677
|
-
return /* @__PURE__ */
|
|
59678
|
-
children: /* @__PURE__ */
|
|
60000
|
+
return /* @__PURE__ */ jsx_dev_runtime13.jsxDEV(Box_default, {
|
|
60001
|
+
children: /* @__PURE__ */ jsx_dev_runtime13.jsxDEV(Text, {
|
|
59679
60002
|
color: isSelected ? "green" : undefined,
|
|
59680
60003
|
children: [
|
|
59681
60004
|
isSelected ? "▶ " : " ",
|
|
59682
60005
|
theme?.name ?? themeName,
|
|
59683
|
-
isOriginal && /* @__PURE__ */
|
|
60006
|
+
isOriginal && /* @__PURE__ */ jsx_dev_runtime13.jsxDEV(Text, {
|
|
59684
60007
|
dimColor: true,
|
|
59685
60008
|
children: " (original)"
|
|
59686
60009
|
}, undefined, false, undefined, this)
|
|
@@ -59689,29 +60012,29 @@ var PowerlineThemeSelector = ({
|
|
|
59689
60012
|
}, themeName, false, undefined, this);
|
|
59690
60013
|
})
|
|
59691
60014
|
}, undefined, false, undefined, this),
|
|
59692
|
-
selectedTheme && /* @__PURE__ */
|
|
60015
|
+
selectedTheme && /* @__PURE__ */ jsx_dev_runtime13.jsxDEV(Box_default, {
|
|
59693
60016
|
marginTop: 2,
|
|
59694
60017
|
flexDirection: "column",
|
|
59695
60018
|
children: [
|
|
59696
|
-
/* @__PURE__ */
|
|
60019
|
+
/* @__PURE__ */ jsx_dev_runtime13.jsxDEV(Text, {
|
|
59697
60020
|
dimColor: true,
|
|
59698
60021
|
children: "Description:"
|
|
59699
60022
|
}, undefined, false, undefined, this),
|
|
59700
|
-
/* @__PURE__ */
|
|
60023
|
+
/* @__PURE__ */ jsx_dev_runtime13.jsxDEV(Box_default, {
|
|
59701
60024
|
marginLeft: 2,
|
|
59702
|
-
children: /* @__PURE__ */
|
|
60025
|
+
children: /* @__PURE__ */ jsx_dev_runtime13.jsxDEV(Text, {
|
|
59703
60026
|
children: selectedTheme.description
|
|
59704
60027
|
}, undefined, false, undefined, this)
|
|
59705
60028
|
}, undefined, false, undefined, this),
|
|
59706
|
-
selectedThemeName && selectedThemeName !== "custom" && /* @__PURE__ */
|
|
60029
|
+
selectedThemeName && selectedThemeName !== "custom" && /* @__PURE__ */ jsx_dev_runtime13.jsxDEV(Box_default, {
|
|
59707
60030
|
marginTop: 1,
|
|
59708
|
-
children: /* @__PURE__ */
|
|
60031
|
+
children: /* @__PURE__ */ jsx_dev_runtime13.jsxDEV(Text, {
|
|
59709
60032
|
dimColor: true,
|
|
59710
60033
|
children: "Press (c) to customize this theme - copies colors to widgets"
|
|
59711
60034
|
}, undefined, false, undefined, this)
|
|
59712
60035
|
}, undefined, false, undefined, this),
|
|
59713
|
-
settings.colorLevel === 1 && /* @__PURE__ */
|
|
59714
|
-
children: /* @__PURE__ */
|
|
60036
|
+
settings.colorLevel === 1 && /* @__PURE__ */ jsx_dev_runtime13.jsxDEV(Box_default, {
|
|
60037
|
+
children: /* @__PURE__ */ jsx_dev_runtime13.jsxDEV(Text, {
|
|
59715
60038
|
color: "yellow",
|
|
59716
60039
|
children: "⚠ 16 color mode themes have a very limited palette, we recommend switching color level in Terminal Options"
|
|
59717
60040
|
}, undefined, false, undefined, this)
|
|
@@ -59723,7 +60046,7 @@ var PowerlineThemeSelector = ({
|
|
|
59723
60046
|
};
|
|
59724
60047
|
|
|
59725
60048
|
// src/tui/components/PowerlineSetup.tsx
|
|
59726
|
-
var
|
|
60049
|
+
var jsx_dev_runtime14 = __toESM(require_jsx_dev_runtime(), 1);
|
|
59727
60050
|
var PowerlineSetup = ({
|
|
59728
60051
|
settings,
|
|
59729
60052
|
powerlineFontStatus,
|
|
@@ -59735,10 +60058,10 @@ var PowerlineSetup = ({
|
|
|
59735
60058
|
onClearMessage
|
|
59736
60059
|
}) => {
|
|
59737
60060
|
const powerlineConfig = settings.powerline;
|
|
59738
|
-
const [screen, setScreen] =
|
|
59739
|
-
const [selectedMenuItem, setSelectedMenuItem] =
|
|
59740
|
-
const [confirmingEnable, setConfirmingEnable] =
|
|
59741
|
-
const [confirmingFontInstall, setConfirmingFontInstall] =
|
|
60061
|
+
const [screen, setScreen] = import_react42.useState("menu");
|
|
60062
|
+
const [selectedMenuItem, setSelectedMenuItem] = import_react42.useState(0);
|
|
60063
|
+
const [confirmingEnable, setConfirmingEnable] = import_react42.useState(false);
|
|
60064
|
+
const [confirmingFontInstall, setConfirmingFontInstall] = import_react42.useState(false);
|
|
59742
60065
|
const hasSeparatorItems = settings.lines.some((line) => line.some((item) => item.type === "separator" || item.type === "flex-separator"));
|
|
59743
60066
|
const menuItems = [
|
|
59744
60067
|
{ label: "Separator", value: "separator" },
|
|
@@ -59855,7 +60178,7 @@ var PowerlineSetup = ({
|
|
|
59855
60178
|
}
|
|
59856
60179
|
});
|
|
59857
60180
|
if (screen === "separator") {
|
|
59858
|
-
return /* @__PURE__ */
|
|
60181
|
+
return /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(PowerlineSeparatorEditor, {
|
|
59859
60182
|
settings,
|
|
59860
60183
|
mode: "separator",
|
|
59861
60184
|
onUpdate,
|
|
@@ -59865,7 +60188,7 @@ var PowerlineSetup = ({
|
|
|
59865
60188
|
}, undefined, false, undefined, this);
|
|
59866
60189
|
}
|
|
59867
60190
|
if (screen === "startCap") {
|
|
59868
|
-
return /* @__PURE__ */
|
|
60191
|
+
return /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(PowerlineSeparatorEditor, {
|
|
59869
60192
|
settings,
|
|
59870
60193
|
mode: "startCap",
|
|
59871
60194
|
onUpdate,
|
|
@@ -59875,7 +60198,7 @@ var PowerlineSetup = ({
|
|
|
59875
60198
|
}, undefined, false, undefined, this);
|
|
59876
60199
|
}
|
|
59877
60200
|
if (screen === "endCap") {
|
|
59878
|
-
return /* @__PURE__ */
|
|
60201
|
+
return /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(PowerlineSeparatorEditor, {
|
|
59879
60202
|
settings,
|
|
59880
60203
|
mode: "endCap",
|
|
59881
60204
|
onUpdate,
|
|
@@ -59885,7 +60208,7 @@ var PowerlineSetup = ({
|
|
|
59885
60208
|
}, undefined, false, undefined, this);
|
|
59886
60209
|
}
|
|
59887
60210
|
if (screen === "themes") {
|
|
59888
|
-
return /* @__PURE__ */
|
|
60211
|
+
return /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(PowerlineThemeSelector, {
|
|
59889
60212
|
settings,
|
|
59890
60213
|
onUpdate,
|
|
59891
60214
|
onBack: () => {
|
|
@@ -59893,140 +60216,140 @@ var PowerlineSetup = ({
|
|
|
59893
60216
|
}
|
|
59894
60217
|
}, undefined, false, undefined, this);
|
|
59895
60218
|
}
|
|
59896
|
-
return /* @__PURE__ */
|
|
60219
|
+
return /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Box_default, {
|
|
59897
60220
|
flexDirection: "column",
|
|
59898
60221
|
children: [
|
|
59899
|
-
!confirmingFontInstall && !installingFonts && !fontInstallMessage && /* @__PURE__ */
|
|
60222
|
+
!confirmingFontInstall && !installingFonts && !fontInstallMessage && /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
59900
60223
|
bold: true,
|
|
59901
60224
|
children: "Powerline Setup"
|
|
59902
60225
|
}, undefined, false, undefined, this),
|
|
59903
|
-
confirmingFontInstall ? /* @__PURE__ */
|
|
60226
|
+
confirmingFontInstall ? /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Box_default, {
|
|
59904
60227
|
flexDirection: "column",
|
|
59905
60228
|
children: [
|
|
59906
|
-
/* @__PURE__ */
|
|
60229
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Box_default, {
|
|
59907
60230
|
marginBottom: 1,
|
|
59908
|
-
children: /* @__PURE__ */
|
|
60231
|
+
children: /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
59909
60232
|
color: "cyan",
|
|
59910
60233
|
bold: true,
|
|
59911
60234
|
children: "Font Installation"
|
|
59912
60235
|
}, undefined, false, undefined, this)
|
|
59913
60236
|
}, undefined, false, undefined, this),
|
|
59914
|
-
/* @__PURE__ */
|
|
60237
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Box_default, {
|
|
59915
60238
|
marginBottom: 1,
|
|
59916
60239
|
flexDirection: "column",
|
|
59917
60240
|
children: [
|
|
59918
|
-
/* @__PURE__ */
|
|
60241
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
59919
60242
|
bold: true,
|
|
59920
60243
|
children: "What will happen:"
|
|
59921
60244
|
}, undefined, false, undefined, this),
|
|
59922
|
-
/* @__PURE__ */
|
|
60245
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
59923
60246
|
children: [
|
|
59924
|
-
/* @__PURE__ */
|
|
60247
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
59925
60248
|
dimColor: true,
|
|
59926
60249
|
children: "• Clone fonts from "
|
|
59927
60250
|
}, undefined, false, undefined, this),
|
|
59928
|
-
/* @__PURE__ */
|
|
60251
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
59929
60252
|
color: "blue",
|
|
59930
60253
|
children: "https://github.com/powerline/fonts"
|
|
59931
60254
|
}, undefined, false, undefined, this)
|
|
59932
60255
|
]
|
|
59933
60256
|
}, undefined, true, undefined, this),
|
|
59934
|
-
os10.platform() === "darwin" && /* @__PURE__ */
|
|
60257
|
+
os10.platform() === "darwin" && /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(jsx_dev_runtime14.Fragment, {
|
|
59935
60258
|
children: [
|
|
59936
|
-
/* @__PURE__ */
|
|
60259
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
59937
60260
|
dimColor: true,
|
|
59938
60261
|
children: "• Run install.sh script which will:"
|
|
59939
60262
|
}, undefined, false, undefined, this),
|
|
59940
|
-
/* @__PURE__ */
|
|
60263
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
59941
60264
|
dimColor: true,
|
|
59942
60265
|
children: " - Copy all .ttf/.otf files to ~/Library/Fonts"
|
|
59943
60266
|
}, undefined, false, undefined, this),
|
|
59944
|
-
/* @__PURE__ */
|
|
60267
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
59945
60268
|
dimColor: true,
|
|
59946
60269
|
children: " - Register fonts with macOS"
|
|
59947
60270
|
}, undefined, false, undefined, this)
|
|
59948
60271
|
]
|
|
59949
60272
|
}, undefined, true, undefined, this),
|
|
59950
|
-
os10.platform() === "linux" && /* @__PURE__ */
|
|
60273
|
+
os10.platform() === "linux" && /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(jsx_dev_runtime14.Fragment, {
|
|
59951
60274
|
children: [
|
|
59952
|
-
/* @__PURE__ */
|
|
60275
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
59953
60276
|
dimColor: true,
|
|
59954
60277
|
children: "• Run install.sh script which will:"
|
|
59955
60278
|
}, undefined, false, undefined, this),
|
|
59956
|
-
/* @__PURE__ */
|
|
60279
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
59957
60280
|
dimColor: true,
|
|
59958
60281
|
children: " - Copy all .ttf/.otf files to ~/.local/share/fonts"
|
|
59959
60282
|
}, undefined, false, undefined, this),
|
|
59960
|
-
/* @__PURE__ */
|
|
60283
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
59961
60284
|
dimColor: true,
|
|
59962
60285
|
children: " - Run fc-cache to update font cache"
|
|
59963
60286
|
}, undefined, false, undefined, this)
|
|
59964
60287
|
]
|
|
59965
60288
|
}, undefined, true, undefined, this),
|
|
59966
|
-
os10.platform() === "win32" && /* @__PURE__ */
|
|
60289
|
+
os10.platform() === "win32" && /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(jsx_dev_runtime14.Fragment, {
|
|
59967
60290
|
children: [
|
|
59968
|
-
/* @__PURE__ */
|
|
60291
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
59969
60292
|
dimColor: true,
|
|
59970
60293
|
children: "• Copy Powerline .ttf/.otf files to:"
|
|
59971
60294
|
}, undefined, false, undefined, this),
|
|
59972
|
-
/* @__PURE__ */
|
|
60295
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
59973
60296
|
dimColor: true,
|
|
59974
60297
|
children: " AppData\\Local\\Microsoft\\Windows\\Fonts"
|
|
59975
60298
|
}, undefined, false, undefined, this)
|
|
59976
60299
|
]
|
|
59977
60300
|
}, undefined, true, undefined, this),
|
|
59978
|
-
/* @__PURE__ */
|
|
60301
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
59979
60302
|
dimColor: true,
|
|
59980
60303
|
children: "• Clean up temporary files"
|
|
59981
60304
|
}, undefined, false, undefined, this)
|
|
59982
60305
|
]
|
|
59983
60306
|
}, undefined, true, undefined, this),
|
|
59984
|
-
/* @__PURE__ */
|
|
60307
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Box_default, {
|
|
59985
60308
|
marginBottom: 1,
|
|
59986
60309
|
children: [
|
|
59987
|
-
/* @__PURE__ */
|
|
60310
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
59988
60311
|
color: "yellow",
|
|
59989
60312
|
bold: true,
|
|
59990
60313
|
children: "Requirements: "
|
|
59991
60314
|
}, undefined, false, undefined, this),
|
|
59992
|
-
/* @__PURE__ */
|
|
60315
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
59993
60316
|
dimColor: true,
|
|
59994
60317
|
children: "Git installed, Internet connection, Write permissions"
|
|
59995
60318
|
}, undefined, false, undefined, this)
|
|
59996
60319
|
]
|
|
59997
60320
|
}, undefined, true, undefined, this),
|
|
59998
|
-
/* @__PURE__ */
|
|
60321
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Box_default, {
|
|
59999
60322
|
marginBottom: 1,
|
|
60000
60323
|
flexDirection: "column",
|
|
60001
60324
|
children: [
|
|
60002
|
-
/* @__PURE__ */
|
|
60325
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
60003
60326
|
color: "green",
|
|
60004
60327
|
bold: true,
|
|
60005
60328
|
children: "After install:"
|
|
60006
60329
|
}, undefined, false, undefined, this),
|
|
60007
|
-
/* @__PURE__ */
|
|
60330
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
60008
60331
|
dimColor: true,
|
|
60009
60332
|
children: "• Restart terminal"
|
|
60010
60333
|
}, undefined, false, undefined, this),
|
|
60011
|
-
/* @__PURE__ */
|
|
60334
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
60012
60335
|
dimColor: true,
|
|
60013
60336
|
children: "• Select a Powerline font"
|
|
60014
60337
|
}, undefined, false, undefined, this),
|
|
60015
|
-
/* @__PURE__ */
|
|
60338
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
60016
60339
|
dimColor: true,
|
|
60017
60340
|
children: ' (e.g. "Meslo LG S for Powerline")'
|
|
60018
60341
|
}, undefined, false, undefined, this)
|
|
60019
60342
|
]
|
|
60020
60343
|
}, undefined, true, undefined, this),
|
|
60021
|
-
/* @__PURE__ */
|
|
60344
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Box_default, {
|
|
60022
60345
|
marginTop: 1,
|
|
60023
|
-
children: /* @__PURE__ */
|
|
60346
|
+
children: /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
60024
60347
|
children: "Proceed? "
|
|
60025
60348
|
}, undefined, false, undefined, this)
|
|
60026
60349
|
}, undefined, false, undefined, this),
|
|
60027
|
-
/* @__PURE__ */
|
|
60350
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Box_default, {
|
|
60028
60351
|
marginTop: 1,
|
|
60029
|
-
children: /* @__PURE__ */
|
|
60352
|
+
children: /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(ConfirmDialog, {
|
|
60030
60353
|
inline: true,
|
|
60031
60354
|
onConfirm: () => {
|
|
60032
60355
|
setConfirmingFontInstall(false);
|
|
@@ -60038,36 +60361,36 @@ var PowerlineSetup = ({
|
|
|
60038
60361
|
}, undefined, false, undefined, this)
|
|
60039
60362
|
}, undefined, false, undefined, this)
|
|
60040
60363
|
]
|
|
60041
|
-
}, undefined, true, undefined, this) : confirmingEnable ? /* @__PURE__ */
|
|
60364
|
+
}, undefined, true, undefined, this) : confirmingEnable ? /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Box_default, {
|
|
60042
60365
|
flexDirection: "column",
|
|
60043
60366
|
marginTop: 1,
|
|
60044
60367
|
children: [
|
|
60045
|
-
hasSeparatorItems && /* @__PURE__ */
|
|
60368
|
+
hasSeparatorItems && /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(jsx_dev_runtime14.Fragment, {
|
|
60046
60369
|
children: [
|
|
60047
|
-
/* @__PURE__ */
|
|
60048
|
-
children: /* @__PURE__ */
|
|
60370
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Box_default, {
|
|
60371
|
+
children: /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
60049
60372
|
color: "yellow",
|
|
60050
60373
|
children: "⚠ Warning: Enabling Powerline mode will remove all existing separators and flex-separators from your status lines."
|
|
60051
60374
|
}, undefined, false, undefined, this)
|
|
60052
60375
|
}, undefined, false, undefined, this),
|
|
60053
|
-
/* @__PURE__ */
|
|
60376
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Box_default, {
|
|
60054
60377
|
marginBottom: 1,
|
|
60055
|
-
children: /* @__PURE__ */
|
|
60378
|
+
children: /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
60056
60379
|
dimColor: true,
|
|
60057
60380
|
children: "Powerline mode uses its own separator system and is incompatible with manual separators."
|
|
60058
60381
|
}, undefined, false, undefined, this)
|
|
60059
60382
|
}, undefined, false, undefined, this)
|
|
60060
60383
|
]
|
|
60061
60384
|
}, undefined, true, undefined, this),
|
|
60062
|
-
/* @__PURE__ */
|
|
60385
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Box_default, {
|
|
60063
60386
|
marginTop: hasSeparatorItems ? 1 : 0,
|
|
60064
|
-
children: /* @__PURE__ */
|
|
60387
|
+
children: /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
60065
60388
|
children: "Do you want to continue? "
|
|
60066
60389
|
}, undefined, false, undefined, this)
|
|
60067
60390
|
}, undefined, false, undefined, this),
|
|
60068
|
-
/* @__PURE__ */
|
|
60391
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Box_default, {
|
|
60069
60392
|
marginTop: 1,
|
|
60070
|
-
children: /* @__PURE__ */
|
|
60393
|
+
children: /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(ConfirmDialog, {
|
|
60071
60394
|
inline: true,
|
|
60072
60395
|
onConfirm: () => {
|
|
60073
60396
|
const theme = !powerlineConfig.theme || powerlineConfig.theme === "custom" ? getDefaultPowerlineTheme() : powerlineConfig.theme;
|
|
@@ -60092,51 +60415,51 @@ var PowerlineSetup = ({
|
|
|
60092
60415
|
}, undefined, false, undefined, this)
|
|
60093
60416
|
}, undefined, false, undefined, this)
|
|
60094
60417
|
]
|
|
60095
|
-
}, undefined, true, undefined, this) : installingFonts ? /* @__PURE__ */
|
|
60096
|
-
children: /* @__PURE__ */
|
|
60418
|
+
}, undefined, true, undefined, this) : installingFonts ? /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Box_default, {
|
|
60419
|
+
children: /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
60097
60420
|
color: "yellow",
|
|
60098
60421
|
children: "Installing Powerline fonts... This may take a moment."
|
|
60099
60422
|
}, undefined, false, undefined, this)
|
|
60100
|
-
}, undefined, false, undefined, this) : fontInstallMessage ? /* @__PURE__ */
|
|
60423
|
+
}, undefined, false, undefined, this) : fontInstallMessage ? /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Box_default, {
|
|
60101
60424
|
flexDirection: "column",
|
|
60102
60425
|
children: [
|
|
60103
|
-
/* @__PURE__ */
|
|
60426
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
60104
60427
|
color: fontInstallMessage.includes("success") ? "green" : "red",
|
|
60105
60428
|
children: fontInstallMessage
|
|
60106
60429
|
}, undefined, false, undefined, this),
|
|
60107
|
-
/* @__PURE__ */
|
|
60430
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Box_default, {
|
|
60108
60431
|
marginTop: 1,
|
|
60109
|
-
children: /* @__PURE__ */
|
|
60432
|
+
children: /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
60110
60433
|
dimColor: true,
|
|
60111
60434
|
children: "Press any key to continue..."
|
|
60112
60435
|
}, undefined, false, undefined, this)
|
|
60113
60436
|
}, undefined, false, undefined, this)
|
|
60114
60437
|
]
|
|
60115
|
-
}, undefined, true, undefined, this) : /* @__PURE__ */
|
|
60438
|
+
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(jsx_dev_runtime14.Fragment, {
|
|
60116
60439
|
children: [
|
|
60117
|
-
/* @__PURE__ */
|
|
60440
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Box_default, {
|
|
60118
60441
|
flexDirection: "column",
|
|
60119
|
-
children: /* @__PURE__ */
|
|
60442
|
+
children: /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
60120
60443
|
children: [
|
|
60121
60444
|
" Font Status: ",
|
|
60122
|
-
powerlineFontStatus.installed ? /* @__PURE__ */
|
|
60445
|
+
powerlineFontStatus.installed ? /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(jsx_dev_runtime14.Fragment, {
|
|
60123
60446
|
children: [
|
|
60124
|
-
/* @__PURE__ */
|
|
60447
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
60125
60448
|
color: "green",
|
|
60126
60449
|
children: "✓ Installed"
|
|
60127
60450
|
}, undefined, false, undefined, this),
|
|
60128
|
-
/* @__PURE__ */
|
|
60451
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
60129
60452
|
dimColor: true,
|
|
60130
60453
|
children: " - Ensure fonts are active in your terminal"
|
|
60131
60454
|
}, undefined, false, undefined, this)
|
|
60132
60455
|
]
|
|
60133
|
-
}, undefined, true, undefined, this) : /* @__PURE__ */
|
|
60456
|
+
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(jsx_dev_runtime14.Fragment, {
|
|
60134
60457
|
children: [
|
|
60135
|
-
/* @__PURE__ */
|
|
60458
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
60136
60459
|
color: "yellow",
|
|
60137
60460
|
children: "✗ Not Installed"
|
|
60138
60461
|
}, undefined, false, undefined, this),
|
|
60139
|
-
/* @__PURE__ */
|
|
60462
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
60140
60463
|
dimColor: true,
|
|
60141
60464
|
children: " - Press (i) to install Powerline fonts"
|
|
60142
60465
|
}, undefined, false, undefined, this)
|
|
@@ -60145,52 +60468,52 @@ var PowerlineSetup = ({
|
|
|
60145
60468
|
]
|
|
60146
60469
|
}, undefined, true, undefined, this)
|
|
60147
60470
|
}, undefined, false, undefined, this),
|
|
60148
|
-
/* @__PURE__ */
|
|
60471
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Box_default, {
|
|
60149
60472
|
children: [
|
|
60150
|
-
/* @__PURE__ */
|
|
60473
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
60151
60474
|
children: " Powerline Mode: "
|
|
60152
60475
|
}, undefined, false, undefined, this),
|
|
60153
|
-
/* @__PURE__ */
|
|
60476
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
60154
60477
|
color: powerlineConfig.enabled ? "green" : "red",
|
|
60155
60478
|
children: powerlineConfig.enabled ? "✓ Enabled " : "✗ Disabled "
|
|
60156
60479
|
}, undefined, false, undefined, this),
|
|
60157
|
-
/* @__PURE__ */
|
|
60480
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
60158
60481
|
dimColor: true,
|
|
60159
60482
|
children: " - Press (t) to toggle"
|
|
60160
60483
|
}, undefined, false, undefined, this)
|
|
60161
60484
|
]
|
|
60162
60485
|
}, undefined, true, undefined, this),
|
|
60163
|
-
powerlineConfig.enabled && /* @__PURE__ */
|
|
60486
|
+
powerlineConfig.enabled && /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(jsx_dev_runtime14.Fragment, {
|
|
60164
60487
|
children: [
|
|
60165
|
-
/* @__PURE__ */
|
|
60488
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Box_default, {
|
|
60166
60489
|
children: [
|
|
60167
|
-
/* @__PURE__ */
|
|
60490
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
60168
60491
|
children: " Align Widgets: "
|
|
60169
60492
|
}, undefined, false, undefined, this),
|
|
60170
|
-
/* @__PURE__ */
|
|
60493
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
60171
60494
|
color: powerlineConfig.autoAlign ? "green" : "red",
|
|
60172
60495
|
children: powerlineConfig.autoAlign ? "✓ Enabled " : "✗ Disabled "
|
|
60173
60496
|
}, undefined, false, undefined, this),
|
|
60174
|
-
/* @__PURE__ */
|
|
60497
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
60175
60498
|
dimColor: true,
|
|
60176
60499
|
children: " - Press (a) to toggle"
|
|
60177
60500
|
}, undefined, false, undefined, this)
|
|
60178
60501
|
]
|
|
60179
60502
|
}, undefined, true, undefined, this),
|
|
60180
|
-
/* @__PURE__ */
|
|
60503
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Box_default, {
|
|
60181
60504
|
flexDirection: "column",
|
|
60182
60505
|
marginTop: 1,
|
|
60183
|
-
children: /* @__PURE__ */
|
|
60506
|
+
children: /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
60184
60507
|
dimColor: true,
|
|
60185
60508
|
children: "When enabled, global overrides are disabled and powerline separators are used"
|
|
60186
60509
|
}, undefined, false, undefined, this)
|
|
60187
60510
|
}, undefined, false, undefined, this)
|
|
60188
60511
|
]
|
|
60189
60512
|
}, undefined, true, undefined, this),
|
|
60190
|
-
/* @__PURE__ */
|
|
60513
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Box_default, {
|
|
60191
60514
|
marginTop: 1,
|
|
60192
60515
|
flexDirection: "column",
|
|
60193
|
-
children: powerlineConfig.enabled ? /* @__PURE__ */
|
|
60516
|
+
children: powerlineConfig.enabled ? /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(jsx_dev_runtime14.Fragment, {
|
|
60194
60517
|
children: menuItems.map((item, index) => {
|
|
60195
60518
|
const isSelected = index === selectedMenuItem;
|
|
60196
60519
|
let displayValue = "";
|
|
@@ -60212,9 +60535,9 @@ var PowerlineSetup = ({
|
|
|
60212
60535
|
break;
|
|
60213
60536
|
}
|
|
60214
60537
|
if (item.value === "back") {
|
|
60215
|
-
return /* @__PURE__ */
|
|
60538
|
+
return /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Box_default, {
|
|
60216
60539
|
marginTop: 1,
|
|
60217
|
-
children: /* @__PURE__ */
|
|
60540
|
+
children: /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
60218
60541
|
color: isSelected ? "green" : undefined,
|
|
60219
60542
|
children: [
|
|
60220
60543
|
isSelected ? "▶ " : " ",
|
|
@@ -60223,13 +60546,13 @@ var PowerlineSetup = ({
|
|
|
60223
60546
|
}, undefined, true, undefined, this)
|
|
60224
60547
|
}, item.value, false, undefined, this);
|
|
60225
60548
|
}
|
|
60226
|
-
return /* @__PURE__ */
|
|
60227
|
-
children: /* @__PURE__ */
|
|
60549
|
+
return /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Box_default, {
|
|
60550
|
+
children: /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
60228
60551
|
color: isSelected ? "green" : undefined,
|
|
60229
60552
|
children: [
|
|
60230
60553
|
isSelected ? "▶ " : " ",
|
|
60231
60554
|
item.label.padEnd(11, " "),
|
|
60232
|
-
/* @__PURE__ */
|
|
60555
|
+
/* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
60233
60556
|
dimColor: true,
|
|
60234
60557
|
children: displayValue && `(${displayValue})`
|
|
60235
60558
|
}, undefined, false, undefined, this)
|
|
@@ -60237,9 +60560,9 @@ var PowerlineSetup = ({
|
|
|
60237
60560
|
}, undefined, true, undefined, this)
|
|
60238
60561
|
}, item.value, false, undefined, this);
|
|
60239
60562
|
})
|
|
60240
|
-
}, undefined, false, undefined, this) : /* @__PURE__ */
|
|
60563
|
+
}, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Box_default, {
|
|
60241
60564
|
marginTop: 1,
|
|
60242
|
-
children: /* @__PURE__ */
|
|
60565
|
+
children: /* @__PURE__ */ jsx_dev_runtime14.jsxDEV(Text, {
|
|
60243
60566
|
dimColor: true,
|
|
60244
60567
|
children: "Press ESC to go back"
|
|
60245
60568
|
}, undefined, false, undefined, this)
|
|
@@ -60251,8 +60574,8 @@ var PowerlineSetup = ({
|
|
|
60251
60574
|
}, undefined, true, undefined, this);
|
|
60252
60575
|
};
|
|
60253
60576
|
// src/tui/components/StatusLinePreview.tsx
|
|
60254
|
-
var
|
|
60255
|
-
var
|
|
60577
|
+
var import_react43 = __toESM(require_react(), 1);
|
|
60578
|
+
var jsx_dev_runtime15 = __toESM(require_jsx_dev_runtime(), 1);
|
|
60256
60579
|
var renderSingleLine = (widgets, terminalWidth, widthDetectionAvailable, settings, lineIndex, globalSeparatorIndex, preRenderedWidgets, preCalculatedMaxWidths) => {
|
|
60257
60580
|
const context = {
|
|
60258
60581
|
terminalWidth,
|
|
@@ -60263,8 +60586,8 @@ var renderSingleLine = (widgets, terminalWidth, widthDetectionAvailable, setting
|
|
|
60263
60586
|
return renderStatusLineWithInfo(widgets, settings, context, preRenderedWidgets, preCalculatedMaxWidths);
|
|
60264
60587
|
};
|
|
60265
60588
|
var StatusLinePreview = ({ lines, terminalWidth, settings, onTruncationChange }) => {
|
|
60266
|
-
const widthDetectionAvailable =
|
|
60267
|
-
const { renderedLines, anyTruncated } =
|
|
60589
|
+
const widthDetectionAvailable = import_react43.default.useMemo(() => canDetectTerminalWidth(), []);
|
|
60590
|
+
const { renderedLines, anyTruncated } = import_react43.default.useMemo(() => {
|
|
60268
60591
|
if (!settings)
|
|
60269
60592
|
return { renderedLines: [], anyTruncated: false };
|
|
60270
60593
|
const preRenderedLines = preRenderAllWidgets(lines, settings, { terminalWidth, isPreview: true });
|
|
@@ -60289,29 +60612,29 @@ var StatusLinePreview = ({ lines, terminalWidth, settings, onTruncationChange })
|
|
|
60289
60612
|
}
|
|
60290
60613
|
return { renderedLines: result, anyTruncated: truncated };
|
|
60291
60614
|
}, [lines, terminalWidth, widthDetectionAvailable, settings]);
|
|
60292
|
-
|
|
60615
|
+
import_react43.default.useEffect(() => {
|
|
60293
60616
|
onTruncationChange?.(anyTruncated);
|
|
60294
60617
|
}, [anyTruncated, onTruncationChange]);
|
|
60295
|
-
return /* @__PURE__ */
|
|
60618
|
+
return /* @__PURE__ */ jsx_dev_runtime15.jsxDEV(Box_default, {
|
|
60296
60619
|
flexDirection: "column",
|
|
60297
60620
|
children: [
|
|
60298
|
-
/* @__PURE__ */
|
|
60621
|
+
/* @__PURE__ */ jsx_dev_runtime15.jsxDEV(Box_default, {
|
|
60299
60622
|
borderStyle: "round",
|
|
60300
60623
|
borderColor: "gray",
|
|
60301
60624
|
borderDimColor: true,
|
|
60302
60625
|
width: "100%",
|
|
60303
60626
|
paddingLeft: 1,
|
|
60304
|
-
children: /* @__PURE__ */
|
|
60627
|
+
children: /* @__PURE__ */ jsx_dev_runtime15.jsxDEV(Text, {
|
|
60305
60628
|
children: [
|
|
60306
60629
|
">",
|
|
60307
|
-
/* @__PURE__ */
|
|
60630
|
+
/* @__PURE__ */ jsx_dev_runtime15.jsxDEV(Text, {
|
|
60308
60631
|
dimColor: true,
|
|
60309
60632
|
children: " Preview (ctrl+s to save configuration at any time)"
|
|
60310
60633
|
}, undefined, false, undefined, this)
|
|
60311
60634
|
]
|
|
60312
60635
|
}, undefined, true, undefined, this)
|
|
60313
60636
|
}, undefined, false, undefined, this),
|
|
60314
|
-
renderedLines.map((line, index) => /* @__PURE__ */
|
|
60637
|
+
renderedLines.map((line, index) => /* @__PURE__ */ jsx_dev_runtime15.jsxDEV(Text, {
|
|
60315
60638
|
children: [
|
|
60316
60639
|
" ",
|
|
60317
60640
|
line,
|
|
@@ -60322,12 +60645,12 @@ var StatusLinePreview = ({ lines, terminalWidth, settings, onTruncationChange })
|
|
|
60322
60645
|
}, undefined, true, undefined, this);
|
|
60323
60646
|
};
|
|
60324
60647
|
// src/tui/components/TerminalOptionsMenu.tsx
|
|
60325
|
-
var
|
|
60326
|
-
var
|
|
60648
|
+
var import_react44 = __toESM(require_react(), 1);
|
|
60649
|
+
var jsx_dev_runtime16 = __toESM(require_jsx_dev_runtime(), 1);
|
|
60327
60650
|
var TerminalOptionsMenu = ({ settings, onUpdate, onBack }) => {
|
|
60328
|
-
const [showColorWarning, setShowColorWarning] =
|
|
60329
|
-
const [pendingColorLevel, setPendingColorLevel] =
|
|
60330
|
-
const [selectedIndex, setSelectedIndex] =
|
|
60651
|
+
const [showColorWarning, setShowColorWarning] = import_react44.useState(false);
|
|
60652
|
+
const [pendingColorLevel, setPendingColorLevel] = import_react44.useState(null);
|
|
60653
|
+
const [selectedIndex, setSelectedIndex] = import_react44.useState(0);
|
|
60331
60654
|
const handleSelect = () => {
|
|
60332
60655
|
if (selectedIndex === 2) {
|
|
60333
60656
|
onBack();
|
|
@@ -60439,27 +60762,27 @@ var TerminalOptionsMenu = ({ settings, onUpdate, onBack }) => {
|
|
|
60439
60762
|
}
|
|
60440
60763
|
}
|
|
60441
60764
|
});
|
|
60442
|
-
return /* @__PURE__ */
|
|
60765
|
+
return /* @__PURE__ */ jsx_dev_runtime16.jsxDEV(Box_default, {
|
|
60443
60766
|
flexDirection: "column",
|
|
60444
60767
|
children: [
|
|
60445
|
-
/* @__PURE__ */
|
|
60768
|
+
/* @__PURE__ */ jsx_dev_runtime16.jsxDEV(Text, {
|
|
60446
60769
|
bold: true,
|
|
60447
60770
|
children: "Terminal Options"
|
|
60448
60771
|
}, undefined, false, undefined, this),
|
|
60449
|
-
showColorWarning ? /* @__PURE__ */
|
|
60772
|
+
showColorWarning ? /* @__PURE__ */ jsx_dev_runtime16.jsxDEV(Box_default, {
|
|
60450
60773
|
flexDirection: "column",
|
|
60451
60774
|
marginTop: 1,
|
|
60452
60775
|
children: [
|
|
60453
|
-
/* @__PURE__ */
|
|
60776
|
+
/* @__PURE__ */ jsx_dev_runtime16.jsxDEV(Text, {
|
|
60454
60777
|
color: "yellow",
|
|
60455
60778
|
children: "⚠ Warning: Custom colors detected!"
|
|
60456
60779
|
}, undefined, false, undefined, this),
|
|
60457
|
-
/* @__PURE__ */
|
|
60780
|
+
/* @__PURE__ */ jsx_dev_runtime16.jsxDEV(Text, {
|
|
60458
60781
|
children: "Switching color modes will reset custom ansi256 or hex colors to defaults."
|
|
60459
60782
|
}, undefined, false, undefined, this),
|
|
60460
|
-
/* @__PURE__ */
|
|
60783
|
+
/* @__PURE__ */ jsx_dev_runtime16.jsxDEV(Box_default, {
|
|
60461
60784
|
marginTop: 1,
|
|
60462
|
-
children: /* @__PURE__ */
|
|
60785
|
+
children: /* @__PURE__ */ jsx_dev_runtime16.jsxDEV(ConfirmDialog, {
|
|
60463
60786
|
message: "Continue?",
|
|
60464
60787
|
onConfirm: handleColorConfirm,
|
|
60465
60788
|
onCancel: handleColorCancel,
|
|
@@ -60467,18 +60790,18 @@ var TerminalOptionsMenu = ({ settings, onUpdate, onBack }) => {
|
|
|
60467
60790
|
}, undefined, false, undefined, this)
|
|
60468
60791
|
}, undefined, false, undefined, this)
|
|
60469
60792
|
]
|
|
60470
|
-
}, undefined, true, undefined, this) : /* @__PURE__ */
|
|
60793
|
+
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime16.jsxDEV(jsx_dev_runtime16.Fragment, {
|
|
60471
60794
|
children: [
|
|
60472
|
-
/* @__PURE__ */
|
|
60795
|
+
/* @__PURE__ */ jsx_dev_runtime16.jsxDEV(Text, {
|
|
60473
60796
|
color: "white",
|
|
60474
60797
|
children: "Configure terminal-specific settings for optimal display"
|
|
60475
60798
|
}, undefined, false, undefined, this),
|
|
60476
|
-
/* @__PURE__ */
|
|
60799
|
+
/* @__PURE__ */ jsx_dev_runtime16.jsxDEV(Box_default, {
|
|
60477
60800
|
marginTop: 1,
|
|
60478
60801
|
flexDirection: "column",
|
|
60479
60802
|
children: [
|
|
60480
|
-
/* @__PURE__ */
|
|
60481
|
-
children: /* @__PURE__ */
|
|
60803
|
+
/* @__PURE__ */ jsx_dev_runtime16.jsxDEV(Box_default, {
|
|
60804
|
+
children: /* @__PURE__ */ jsx_dev_runtime16.jsxDEV(Text, {
|
|
60482
60805
|
color: selectedIndex === 0 ? "green" : undefined,
|
|
60483
60806
|
children: [
|
|
60484
60807
|
selectedIndex === 0 ? "▶ " : " ",
|
|
@@ -60486,8 +60809,8 @@ var TerminalOptionsMenu = ({ settings, onUpdate, onBack }) => {
|
|
|
60486
60809
|
]
|
|
60487
60810
|
}, undefined, true, undefined, this)
|
|
60488
60811
|
}, undefined, false, undefined, this),
|
|
60489
|
-
/* @__PURE__ */
|
|
60490
|
-
children: /* @__PURE__ */
|
|
60812
|
+
/* @__PURE__ */ jsx_dev_runtime16.jsxDEV(Box_default, {
|
|
60813
|
+
children: /* @__PURE__ */ jsx_dev_runtime16.jsxDEV(Text, {
|
|
60491
60814
|
color: selectedIndex === 1 ? "green" : undefined,
|
|
60492
60815
|
children: [
|
|
60493
60816
|
selectedIndex === 1 ? "▶ " : " ",
|
|
@@ -60497,9 +60820,9 @@ var TerminalOptionsMenu = ({ settings, onUpdate, onBack }) => {
|
|
|
60497
60820
|
]
|
|
60498
60821
|
}, undefined, true, undefined, this)
|
|
60499
60822
|
}, undefined, false, undefined, this),
|
|
60500
|
-
/* @__PURE__ */
|
|
60823
|
+
/* @__PURE__ */ jsx_dev_runtime16.jsxDEV(Box_default, {
|
|
60501
60824
|
marginTop: 1,
|
|
60502
|
-
children: /* @__PURE__ */
|
|
60825
|
+
children: /* @__PURE__ */ jsx_dev_runtime16.jsxDEV(Text, {
|
|
60503
60826
|
color: selectedIndex === 2 ? "green" : undefined,
|
|
60504
60827
|
children: [
|
|
60505
60828
|
selectedIndex === 2 ? "▶ " : " ",
|
|
@@ -60509,27 +60832,27 @@ var TerminalOptionsMenu = ({ settings, onUpdate, onBack }) => {
|
|
|
60509
60832
|
}, undefined, false, undefined, this)
|
|
60510
60833
|
]
|
|
60511
60834
|
}, undefined, true, undefined, this),
|
|
60512
|
-
selectedIndex === 1 && /* @__PURE__ */
|
|
60835
|
+
selectedIndex === 1 && /* @__PURE__ */ jsx_dev_runtime16.jsxDEV(Box_default, {
|
|
60513
60836
|
marginTop: 1,
|
|
60514
60837
|
flexDirection: "column",
|
|
60515
60838
|
children: [
|
|
60516
|
-
/* @__PURE__ */
|
|
60839
|
+
/* @__PURE__ */ jsx_dev_runtime16.jsxDEV(Text, {
|
|
60517
60840
|
dimColor: true,
|
|
60518
60841
|
children: "Color level affects how colors are rendered:"
|
|
60519
60842
|
}, undefined, false, undefined, this),
|
|
60520
|
-
/* @__PURE__ */
|
|
60843
|
+
/* @__PURE__ */ jsx_dev_runtime16.jsxDEV(Text, {
|
|
60521
60844
|
dimColor: true,
|
|
60522
60845
|
children: "• Truecolor: Full 24-bit RGB colors (16.7M colors)"
|
|
60523
60846
|
}, undefined, false, undefined, this),
|
|
60524
|
-
/* @__PURE__ */
|
|
60847
|
+
/* @__PURE__ */ jsx_dev_runtime16.jsxDEV(Text, {
|
|
60525
60848
|
dimColor: true,
|
|
60526
60849
|
children: "• 256 Color: Extended color palette (256 colors)"
|
|
60527
60850
|
}, undefined, false, undefined, this),
|
|
60528
|
-
/* @__PURE__ */
|
|
60851
|
+
/* @__PURE__ */ jsx_dev_runtime16.jsxDEV(Text, {
|
|
60529
60852
|
dimColor: true,
|
|
60530
60853
|
children: "• Basic: Standard 16-color terminal palette"
|
|
60531
60854
|
}, undefined, false, undefined, this),
|
|
60532
|
-
/* @__PURE__ */
|
|
60855
|
+
/* @__PURE__ */ jsx_dev_runtime16.jsxDEV(Text, {
|
|
60533
60856
|
dimColor: true,
|
|
60534
60857
|
children: "• No Color: Disables all color output"
|
|
60535
60858
|
}, undefined, false, undefined, this)
|
|
@@ -60556,15 +60879,15 @@ var getColorLevelLabel = (level) => {
|
|
|
60556
60879
|
}
|
|
60557
60880
|
};
|
|
60558
60881
|
// src/tui/components/TerminalWidthMenu.tsx
|
|
60559
|
-
var
|
|
60560
|
-
var
|
|
60882
|
+
var import_react45 = __toESM(require_react(), 1);
|
|
60883
|
+
var jsx_dev_runtime17 = __toESM(require_jsx_dev_runtime(), 1);
|
|
60561
60884
|
var TerminalWidthMenu = ({ settings, onUpdate, onBack }) => {
|
|
60562
|
-
const [selectedOption, setSelectedOption] =
|
|
60563
|
-
const [compactThreshold, setCompactThreshold] =
|
|
60564
|
-
const [editingThreshold, setEditingThreshold] =
|
|
60565
|
-
const [thresholdInput, setThresholdInput] =
|
|
60566
|
-
const [validationError, setValidationError] =
|
|
60567
|
-
const [selectedIndex, setSelectedIndex] =
|
|
60885
|
+
const [selectedOption, setSelectedOption] = import_react45.useState(settings.flexMode);
|
|
60886
|
+
const [compactThreshold, setCompactThreshold] = import_react45.useState(settings.compactThreshold);
|
|
60887
|
+
const [editingThreshold, setEditingThreshold] = import_react45.useState(false);
|
|
60888
|
+
const [thresholdInput, setThresholdInput] = import_react45.useState(String(settings.compactThreshold));
|
|
60889
|
+
const [validationError, setValidationError] = import_react45.useState(null);
|
|
60890
|
+
const [selectedIndex, setSelectedIndex] = import_react45.useState(() => {
|
|
60568
60891
|
const options2 = ["full", "full-minus-40", "full-until-compact"];
|
|
60569
60892
|
return options2.indexOf(settings.flexMode);
|
|
60570
60893
|
});
|
|
@@ -60652,27 +60975,27 @@ NOTE: If /ide integration is enabled, it's not recommended to use this mode.`
|
|
|
60652
60975
|
}
|
|
60653
60976
|
];
|
|
60654
60977
|
const currentOption = selectedIndex < 3 ? optionDetails[selectedIndex] : null;
|
|
60655
|
-
return /* @__PURE__ */
|
|
60978
|
+
return /* @__PURE__ */ jsx_dev_runtime17.jsxDEV(Box_default, {
|
|
60656
60979
|
flexDirection: "column",
|
|
60657
60980
|
children: [
|
|
60658
|
-
/* @__PURE__ */
|
|
60981
|
+
/* @__PURE__ */ jsx_dev_runtime17.jsxDEV(Text, {
|
|
60659
60982
|
bold: true,
|
|
60660
60983
|
children: "Terminal Width"
|
|
60661
60984
|
}, undefined, false, undefined, this),
|
|
60662
|
-
/* @__PURE__ */
|
|
60985
|
+
/* @__PURE__ */ jsx_dev_runtime17.jsxDEV(Text, {
|
|
60663
60986
|
color: "white",
|
|
60664
60987
|
children: "These settings affect where long lines are truncated, and where right-alignment occurs when using flex separators"
|
|
60665
60988
|
}, undefined, false, undefined, this),
|
|
60666
|
-
/* @__PURE__ */
|
|
60989
|
+
/* @__PURE__ */ jsx_dev_runtime17.jsxDEV(Text, {
|
|
60667
60990
|
dimColor: true,
|
|
60668
60991
|
wrap: "wrap",
|
|
60669
60992
|
children: "Claude code does not currently provide an available width variable for the statusline and features like IDE integration, auto-compaction notices, etc all cause the statusline to wrap if we do not truncate it"
|
|
60670
60993
|
}, undefined, false, undefined, this),
|
|
60671
|
-
editingThreshold ? /* @__PURE__ */
|
|
60994
|
+
editingThreshold ? /* @__PURE__ */ jsx_dev_runtime17.jsxDEV(Box_default, {
|
|
60672
60995
|
marginTop: 1,
|
|
60673
60996
|
flexDirection: "column",
|
|
60674
60997
|
children: [
|
|
60675
|
-
/* @__PURE__ */
|
|
60998
|
+
/* @__PURE__ */ jsx_dev_runtime17.jsxDEV(Text, {
|
|
60676
60999
|
children: [
|
|
60677
61000
|
"Enter compact threshold (1-99):",
|
|
60678
61001
|
" ",
|
|
@@ -60680,22 +61003,22 @@ NOTE: If /ide integration is enabled, it's not recommended to use this mode.`
|
|
|
60680
61003
|
"%"
|
|
60681
61004
|
]
|
|
60682
61005
|
}, undefined, true, undefined, this),
|
|
60683
|
-
validationError ? /* @__PURE__ */
|
|
61006
|
+
validationError ? /* @__PURE__ */ jsx_dev_runtime17.jsxDEV(Text, {
|
|
60684
61007
|
color: "red",
|
|
60685
61008
|
children: validationError
|
|
60686
|
-
}, undefined, false, undefined, this) : /* @__PURE__ */
|
|
61009
|
+
}, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime17.jsxDEV(Text, {
|
|
60687
61010
|
dimColor: true,
|
|
60688
61011
|
children: "Press Enter to confirm, ESC to cancel"
|
|
60689
61012
|
}, undefined, false, undefined, this)
|
|
60690
61013
|
]
|
|
60691
|
-
}, undefined, true, undefined, this) : /* @__PURE__ */
|
|
61014
|
+
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime17.jsxDEV(jsx_dev_runtime17.Fragment, {
|
|
60692
61015
|
children: [
|
|
60693
|
-
/* @__PURE__ */
|
|
61016
|
+
/* @__PURE__ */ jsx_dev_runtime17.jsxDEV(Box_default, {
|
|
60694
61017
|
marginTop: 1,
|
|
60695
61018
|
flexDirection: "column",
|
|
60696
61019
|
children: [
|
|
60697
|
-
optionDetails.map((opt, index) => /* @__PURE__ */
|
|
60698
|
-
children: /* @__PURE__ */
|
|
61020
|
+
optionDetails.map((opt, index) => /* @__PURE__ */ jsx_dev_runtime17.jsxDEV(Box_default, {
|
|
61021
|
+
children: /* @__PURE__ */ jsx_dev_runtime17.jsxDEV(Text, {
|
|
60699
61022
|
color: selectedIndex === index ? "green" : undefined,
|
|
60700
61023
|
children: [
|
|
60701
61024
|
selectedIndex === index ? "▶ " : " ",
|
|
@@ -60704,9 +61027,9 @@ NOTE: If /ide integration is enabled, it's not recommended to use this mode.`
|
|
|
60704
61027
|
]
|
|
60705
61028
|
}, undefined, true, undefined, this)
|
|
60706
61029
|
}, opt.value, false, undefined, this)),
|
|
60707
|
-
/* @__PURE__ */
|
|
61030
|
+
/* @__PURE__ */ jsx_dev_runtime17.jsxDEV(Box_default, {
|
|
60708
61031
|
marginTop: 1,
|
|
60709
|
-
children: /* @__PURE__ */
|
|
61032
|
+
children: /* @__PURE__ */ jsx_dev_runtime17.jsxDEV(Text, {
|
|
60710
61033
|
color: selectedIndex === 3 ? "green" : undefined,
|
|
60711
61034
|
children: [
|
|
60712
61035
|
selectedIndex === 3 ? "▶ " : " ",
|
|
@@ -60716,25 +61039,25 @@ NOTE: If /ide integration is enabled, it's not recommended to use this mode.`
|
|
|
60716
61039
|
}, undefined, false, undefined, this)
|
|
60717
61040
|
]
|
|
60718
61041
|
}, undefined, true, undefined, this),
|
|
60719
|
-
currentOption && /* @__PURE__ */
|
|
61042
|
+
currentOption && /* @__PURE__ */ jsx_dev_runtime17.jsxDEV(Box_default, {
|
|
60720
61043
|
marginTop: 1,
|
|
60721
61044
|
marginBottom: 1,
|
|
60722
61045
|
borderStyle: "round",
|
|
60723
61046
|
borderColor: "dim",
|
|
60724
61047
|
paddingX: 1,
|
|
60725
|
-
children: /* @__PURE__ */
|
|
61048
|
+
children: /* @__PURE__ */ jsx_dev_runtime17.jsxDEV(Box_default, {
|
|
60726
61049
|
flexDirection: "column",
|
|
60727
61050
|
children: [
|
|
60728
|
-
/* @__PURE__ */
|
|
61051
|
+
/* @__PURE__ */ jsx_dev_runtime17.jsxDEV(Text, {
|
|
60729
61052
|
children: [
|
|
60730
|
-
/* @__PURE__ */
|
|
61053
|
+
/* @__PURE__ */ jsx_dev_runtime17.jsxDEV(Text, {
|
|
60731
61054
|
color: "yellow",
|
|
60732
61055
|
children: currentOption.label
|
|
60733
61056
|
}, undefined, false, undefined, this),
|
|
60734
61057
|
currentOption.value === "full-until-compact" && ` | Current threshold: ${compactThreshold}%`
|
|
60735
61058
|
]
|
|
60736
61059
|
}, undefined, true, undefined, this),
|
|
60737
|
-
/* @__PURE__ */
|
|
61060
|
+
/* @__PURE__ */ jsx_dev_runtime17.jsxDEV(Text, {
|
|
60738
61061
|
dimColor: true,
|
|
60739
61062
|
wrap: "wrap",
|
|
60740
61063
|
children: currentOption.description
|
|
@@ -60748,26 +61071,26 @@ NOTE: If /ide integration is enabled, it's not recommended to use this mode.`
|
|
|
60748
61071
|
}, undefined, true, undefined, this);
|
|
60749
61072
|
};
|
|
60750
61073
|
// src/tui/App.tsx
|
|
60751
|
-
var
|
|
61074
|
+
var jsx_dev_runtime18 = __toESM(require_jsx_dev_runtime(), 1);
|
|
60752
61075
|
var GITHUB_REPO_URL = "https://github.com/sirmalloc/ccstatusline";
|
|
60753
61076
|
var App2 = () => {
|
|
60754
61077
|
const { exit } = use_app_default();
|
|
60755
|
-
const [settings, setSettings] =
|
|
60756
|
-
const [originalSettings, setOriginalSettings] =
|
|
60757
|
-
const [hasChanges, setHasChanges] =
|
|
60758
|
-
const [screen, setScreen] =
|
|
60759
|
-
const [selectedLine, setSelectedLine] =
|
|
60760
|
-
const [menuSelections, setMenuSelections] =
|
|
60761
|
-
const [confirmDialog, setConfirmDialog] =
|
|
60762
|
-
const [isClaudeInstalled, setIsClaudeInstalled] =
|
|
60763
|
-
const [terminalWidth, setTerminalWidth] =
|
|
60764
|
-
const [powerlineFontStatus, setPowerlineFontStatus] =
|
|
60765
|
-
const [installingFonts, setInstallingFonts] =
|
|
60766
|
-
const [fontInstallMessage, setFontInstallMessage] =
|
|
60767
|
-
const [existingStatusLine, setExistingStatusLine] =
|
|
60768
|
-
const [flashMessage, setFlashMessage] =
|
|
60769
|
-
const [previewIsTruncated, setPreviewIsTruncated] =
|
|
60770
|
-
|
|
61078
|
+
const [settings, setSettings] = import_react46.useState(null);
|
|
61079
|
+
const [originalSettings, setOriginalSettings] = import_react46.useState(null);
|
|
61080
|
+
const [hasChanges, setHasChanges] = import_react46.useState(false);
|
|
61081
|
+
const [screen, setScreen] = import_react46.useState("main");
|
|
61082
|
+
const [selectedLine, setSelectedLine] = import_react46.useState(0);
|
|
61083
|
+
const [menuSelections, setMenuSelections] = import_react46.useState({});
|
|
61084
|
+
const [confirmDialog, setConfirmDialog] = import_react46.useState(null);
|
|
61085
|
+
const [isClaudeInstalled, setIsClaudeInstalled] = import_react46.useState(false);
|
|
61086
|
+
const [terminalWidth, setTerminalWidth] = import_react46.useState(process.stdout.columns || 80);
|
|
61087
|
+
const [powerlineFontStatus, setPowerlineFontStatus] = import_react46.useState({ installed: false });
|
|
61088
|
+
const [installingFonts, setInstallingFonts] = import_react46.useState(false);
|
|
61089
|
+
const [fontInstallMessage, setFontInstallMessage] = import_react46.useState(null);
|
|
61090
|
+
const [existingStatusLine, setExistingStatusLine] = import_react46.useState(null);
|
|
61091
|
+
const [flashMessage, setFlashMessage] = import_react46.useState(null);
|
|
61092
|
+
const [previewIsTruncated, setPreviewIsTruncated] = import_react46.useState(false);
|
|
61093
|
+
import_react46.useEffect(() => {
|
|
60771
61094
|
getExistingStatusLine().then(setExistingStatusLine);
|
|
60772
61095
|
loadSettings().then((loadedSettings) => {
|
|
60773
61096
|
source_default.level = loadedSettings.colorLevel;
|
|
@@ -60788,13 +61111,13 @@ var App2 = () => {
|
|
|
60788
61111
|
process.stdout.off("resize", handleResize);
|
|
60789
61112
|
};
|
|
60790
61113
|
}, []);
|
|
60791
|
-
|
|
61114
|
+
import_react46.useEffect(() => {
|
|
60792
61115
|
if (originalSettings) {
|
|
60793
61116
|
const hasAnyChanges = JSON.stringify(settings) !== JSON.stringify(originalSettings);
|
|
60794
61117
|
setHasChanges(hasAnyChanges);
|
|
60795
61118
|
}
|
|
60796
61119
|
}, [settings, originalSettings]);
|
|
60797
|
-
|
|
61120
|
+
import_react46.useEffect(() => {
|
|
60798
61121
|
if (flashMessage) {
|
|
60799
61122
|
const timer = setTimeout(() => {
|
|
60800
61123
|
setFlashMessage(null);
|
|
@@ -60820,7 +61143,7 @@ var App2 = () => {
|
|
|
60820
61143
|
})();
|
|
60821
61144
|
}
|
|
60822
61145
|
});
|
|
60823
|
-
const handleInstallSelection =
|
|
61146
|
+
const handleInstallSelection = import_react46.useCallback((command, displayName, useBunx) => {
|
|
60824
61147
|
getExistingStatusLine().then((existing) => {
|
|
60825
61148
|
const isAlreadyInstalled = [CCSTATUSLINE_COMMANDS.NPM, CCSTATUSLINE_COMMANDS.BUNX, CCSTATUSLINE_COMMANDS.SELF_MANAGED].includes(existing ?? "");
|
|
60826
61149
|
let message;
|
|
@@ -60849,14 +61172,14 @@ Continue?`;
|
|
|
60849
61172
|
setScreen("confirm");
|
|
60850
61173
|
});
|
|
60851
61174
|
}, []);
|
|
60852
|
-
const handleNpxInstall =
|
|
61175
|
+
const handleNpxInstall = import_react46.useCallback(() => {
|
|
60853
61176
|
handleInstallSelection(CCSTATUSLINE_COMMANDS.NPM, "npx", false);
|
|
60854
61177
|
}, [handleInstallSelection]);
|
|
60855
|
-
const handleBunxInstall =
|
|
61178
|
+
const handleBunxInstall = import_react46.useCallback(() => {
|
|
60856
61179
|
handleInstallSelection(CCSTATUSLINE_COMMANDS.BUNX, "bunx", true);
|
|
60857
61180
|
}, [handleInstallSelection]);
|
|
60858
61181
|
if (!settings) {
|
|
60859
|
-
return /* @__PURE__ */
|
|
61182
|
+
return /* @__PURE__ */ jsx_dev_runtime18.jsxDEV(Text, {
|
|
60860
61183
|
children: "Loading settings..."
|
|
60861
61184
|
}, undefined, false, undefined, this);
|
|
60862
61185
|
}
|
|
@@ -60945,40 +61268,40 @@ ${GITHUB_REPO_URL}`,
|
|
|
60945
61268
|
setSelectedLine(lineIndex);
|
|
60946
61269
|
setScreen("items");
|
|
60947
61270
|
};
|
|
60948
|
-
return /* @__PURE__ */
|
|
61271
|
+
return /* @__PURE__ */ jsx_dev_runtime18.jsxDEV(Box_default, {
|
|
60949
61272
|
flexDirection: "column",
|
|
60950
61273
|
children: [
|
|
60951
|
-
/* @__PURE__ */
|
|
61274
|
+
/* @__PURE__ */ jsx_dev_runtime18.jsxDEV(Box_default, {
|
|
60952
61275
|
marginBottom: 1,
|
|
60953
61276
|
children: [
|
|
60954
|
-
/* @__PURE__ */
|
|
61277
|
+
/* @__PURE__ */ jsx_dev_runtime18.jsxDEV(Text, {
|
|
60955
61278
|
bold: true,
|
|
60956
|
-
children: /* @__PURE__ */
|
|
61279
|
+
children: /* @__PURE__ */ jsx_dev_runtime18.jsxDEV(dist_default4, {
|
|
60957
61280
|
name: "retro",
|
|
60958
61281
|
children: "CCStatusline Configuration"
|
|
60959
61282
|
}, undefined, false, undefined, this)
|
|
60960
61283
|
}, undefined, false, undefined, this),
|
|
60961
|
-
/* @__PURE__ */
|
|
61284
|
+
/* @__PURE__ */ jsx_dev_runtime18.jsxDEV(Text, {
|
|
60962
61285
|
bold: true,
|
|
60963
61286
|
children: ` | ${getPackageVersion() && `v${getPackageVersion()}`}`
|
|
60964
61287
|
}, undefined, false, undefined, this),
|
|
60965
|
-
flashMessage && /* @__PURE__ */
|
|
61288
|
+
flashMessage && /* @__PURE__ */ jsx_dev_runtime18.jsxDEV(Text, {
|
|
60966
61289
|
color: flashMessage.color,
|
|
60967
61290
|
bold: true,
|
|
60968
61291
|
children: ` ${flashMessage.text}`
|
|
60969
61292
|
}, undefined, false, undefined, this)
|
|
60970
61293
|
]
|
|
60971
61294
|
}, undefined, true, undefined, this),
|
|
60972
|
-
/* @__PURE__ */
|
|
61295
|
+
/* @__PURE__ */ jsx_dev_runtime18.jsxDEV(StatusLinePreview, {
|
|
60973
61296
|
lines: settings.lines,
|
|
60974
61297
|
terminalWidth,
|
|
60975
61298
|
settings,
|
|
60976
61299
|
onTruncationChange: setPreviewIsTruncated
|
|
60977
61300
|
}, undefined, false, undefined, this),
|
|
60978
|
-
/* @__PURE__ */
|
|
61301
|
+
/* @__PURE__ */ jsx_dev_runtime18.jsxDEV(Box_default, {
|
|
60979
61302
|
marginTop: 1,
|
|
60980
61303
|
children: [
|
|
60981
|
-
screen === "main" && /* @__PURE__ */
|
|
61304
|
+
screen === "main" && /* @__PURE__ */ jsx_dev_runtime18.jsxDEV(MainMenu, {
|
|
60982
61305
|
onSelect: (value) => {
|
|
60983
61306
|
if (value !== "save" && value !== "exit") {
|
|
60984
61307
|
const menuMap = {
|
|
@@ -61001,7 +61324,7 @@ ${GITHUB_REPO_URL}`,
|
|
|
61001
61324
|
settings,
|
|
61002
61325
|
previewIsTruncated
|
|
61003
61326
|
}, undefined, false, undefined, this),
|
|
61004
|
-
screen === "lines" && /* @__PURE__ */
|
|
61327
|
+
screen === "lines" && /* @__PURE__ */ jsx_dev_runtime18.jsxDEV(LineSelector, {
|
|
61005
61328
|
lines: settings.lines,
|
|
61006
61329
|
onSelect: (line) => {
|
|
61007
61330
|
setMenuSelections({ ...menuSelections, lines: line });
|
|
@@ -61016,7 +61339,7 @@ ${GITHUB_REPO_URL}`,
|
|
|
61016
61339
|
title: "Select Line to Edit Items",
|
|
61017
61340
|
allowEditing: true
|
|
61018
61341
|
}, undefined, false, undefined, this),
|
|
61019
|
-
screen === "items" && /* @__PURE__ */
|
|
61342
|
+
screen === "items" && /* @__PURE__ */ jsx_dev_runtime18.jsxDEV(ItemsEditor, {
|
|
61020
61343
|
widgets: settings.lines[selectedLine] ?? [],
|
|
61021
61344
|
onUpdate: (widgets) => {
|
|
61022
61345
|
updateLine(selectedLine, widgets);
|
|
@@ -61028,7 +61351,7 @@ ${GITHUB_REPO_URL}`,
|
|
|
61028
61351
|
lineNumber: selectedLine + 1,
|
|
61029
61352
|
settings
|
|
61030
61353
|
}, undefined, false, undefined, this),
|
|
61031
|
-
screen === "colorLines" && /* @__PURE__ */
|
|
61354
|
+
screen === "colorLines" && /* @__PURE__ */ jsx_dev_runtime18.jsxDEV(LineSelector, {
|
|
61032
61355
|
lines: settings.lines,
|
|
61033
61356
|
onLinesUpdate: updateLines,
|
|
61034
61357
|
onSelect: (line) => {
|
|
@@ -61046,7 +61369,7 @@ ${GITHUB_REPO_URL}`,
|
|
|
61046
61369
|
settings,
|
|
61047
61370
|
allowEditing: false
|
|
61048
61371
|
}, undefined, false, undefined, this),
|
|
61049
|
-
screen === "colors" && /* @__PURE__ */
|
|
61372
|
+
screen === "colors" && /* @__PURE__ */ jsx_dev_runtime18.jsxDEV(ColorMenu, {
|
|
61050
61373
|
widgets: settings.lines[selectedLine] ?? [],
|
|
61051
61374
|
lineIndex: selectedLine,
|
|
61052
61375
|
settings,
|
|
@@ -61059,7 +61382,7 @@ ${GITHUB_REPO_URL}`,
|
|
|
61059
61382
|
setScreen("colorLines");
|
|
61060
61383
|
}
|
|
61061
61384
|
}, undefined, false, undefined, this),
|
|
61062
|
-
screen === "terminalConfig" && /* @__PURE__ */
|
|
61385
|
+
screen === "terminalConfig" && /* @__PURE__ */ jsx_dev_runtime18.jsxDEV(TerminalOptionsMenu, {
|
|
61063
61386
|
settings,
|
|
61064
61387
|
onUpdate: (updatedSettings) => {
|
|
61065
61388
|
setSettings(updatedSettings);
|
|
@@ -61073,7 +61396,7 @@ ${GITHUB_REPO_URL}`,
|
|
|
61073
61396
|
}
|
|
61074
61397
|
}
|
|
61075
61398
|
}, undefined, false, undefined, this),
|
|
61076
|
-
screen === "terminalWidth" && /* @__PURE__ */
|
|
61399
|
+
screen === "terminalWidth" && /* @__PURE__ */ jsx_dev_runtime18.jsxDEV(TerminalWidthMenu, {
|
|
61077
61400
|
settings,
|
|
61078
61401
|
onUpdate: (updatedSettings) => {
|
|
61079
61402
|
setSettings(updatedSettings);
|
|
@@ -61082,7 +61405,7 @@ ${GITHUB_REPO_URL}`,
|
|
|
61082
61405
|
setScreen("terminalConfig");
|
|
61083
61406
|
}
|
|
61084
61407
|
}, undefined, false, undefined, this),
|
|
61085
|
-
screen === "globalOverrides" && /* @__PURE__ */
|
|
61408
|
+
screen === "globalOverrides" && /* @__PURE__ */ jsx_dev_runtime18.jsxDEV(GlobalOverridesMenu, {
|
|
61086
61409
|
settings,
|
|
61087
61410
|
onUpdate: (updatedSettings) => {
|
|
61088
61411
|
setSettings(updatedSettings);
|
|
@@ -61092,7 +61415,7 @@ ${GITHUB_REPO_URL}`,
|
|
|
61092
61415
|
setScreen("main");
|
|
61093
61416
|
}
|
|
61094
61417
|
}, undefined, false, undefined, this),
|
|
61095
|
-
screen === "confirm" && confirmDialog && /* @__PURE__ */
|
|
61418
|
+
screen === "confirm" && confirmDialog && /* @__PURE__ */ jsx_dev_runtime18.jsxDEV(ConfirmDialog, {
|
|
61096
61419
|
message: confirmDialog.message,
|
|
61097
61420
|
onConfirm: () => void confirmDialog.action(),
|
|
61098
61421
|
onCancel: () => {
|
|
@@ -61100,7 +61423,7 @@ ${GITHUB_REPO_URL}`,
|
|
|
61100
61423
|
setConfirmDialog(null);
|
|
61101
61424
|
}
|
|
61102
61425
|
}, undefined, false, undefined, this),
|
|
61103
|
-
screen === "install" && /* @__PURE__ */
|
|
61426
|
+
screen === "install" && /* @__PURE__ */ jsx_dev_runtime18.jsxDEV(InstallMenu, {
|
|
61104
61427
|
bunxAvailable: isBunxAvailable(),
|
|
61105
61428
|
existingStatusLine,
|
|
61106
61429
|
onSelectNpx: handleNpxInstall,
|
|
@@ -61109,7 +61432,7 @@ ${GITHUB_REPO_URL}`,
|
|
|
61109
61432
|
setScreen("main");
|
|
61110
61433
|
}
|
|
61111
61434
|
}, undefined, false, undefined, this),
|
|
61112
|
-
screen === "powerline" && /* @__PURE__ */
|
|
61435
|
+
screen === "powerline" && /* @__PURE__ */ jsx_dev_runtime18.jsxDEV(PowerlineSetup, {
|
|
61113
61436
|
settings,
|
|
61114
61437
|
powerlineFontStatus,
|
|
61115
61438
|
onUpdate: (updatedSettings) => {
|
|
@@ -61143,7 +61466,7 @@ ${GITHUB_REPO_URL}`,
|
|
|
61143
61466
|
};
|
|
61144
61467
|
function runTUI() {
|
|
61145
61468
|
process.stdout.write("\x1B[2J\x1B[H");
|
|
61146
|
-
render_default(/* @__PURE__ */
|
|
61469
|
+
render_default(/* @__PURE__ */ jsx_dev_runtime18.jsxDEV(App2, {}, undefined, false, undefined, this));
|
|
61147
61470
|
}
|
|
61148
61471
|
// src/types/StatusJSON.ts
|
|
61149
61472
|
var StatusJSONSchema = exports_external.looseObject({
|
|
@@ -61254,7 +61577,7 @@ async function renderMultipleLines(data) {
|
|
|
61254
61577
|
const lineContext = { ...context, lineIndex: i, globalSeparatorIndex };
|
|
61255
61578
|
const preRenderedWidgets = preRenderedLines[i] ?? [];
|
|
61256
61579
|
const line = renderStatusLine(lineItems, settings, lineContext, preRenderedWidgets, preCalculatedMaxWidths);
|
|
61257
|
-
const strippedLine = line
|
|
61580
|
+
const strippedLine = getVisibleText(line).trim();
|
|
61258
61581
|
if (strippedLine.length > 0) {
|
|
61259
61582
|
const nonMergedWidgets = lineItems.filter((_, idx) => idx === lineItems.length - 1 || !lineItems[idx]?.merge);
|
|
61260
61583
|
if (nonMergedWidgets.length > 1)
|