ccstatusline-usage 2.4.2 → 2.4.4
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 +9 -1
- package/dist/ccstatusline.js +702 -329
- package/package.json +4 -4
package/dist/ccstatusline.js
CHANGED
|
@@ -9713,7 +9713,7 @@ Learn more about data fetching with Hooks: https://react.dev/link/hooks-data-fet
|
|
|
9713
9713
|
offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;
|
|
9714
9714
|
offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;
|
|
9715
9715
|
commitReconciliationEffects(finishedWork);
|
|
9716
|
-
if (flags & 8192 && (root = finishedWork.stateNode, root._visibility = hoistableRoot ? root._visibility & -2 : root._visibility | 1, hoistableRoot && (current2 === null || wasHidden || offscreenSubtreeIsHidden || offscreenSubtreeWasHidden || recursivelyTraverseDisappearLayoutEffects(finishedWork)), supportsMutation))
|
|
9716
|
+
if (flags & 8192 && (root = finishedWork.stateNode, root._visibility = hoistableRoot ? root._visibility & -2 : root._visibility | 1, hoistableRoot && (current2 === null || wasHidden || offscreenSubtreeIsHidden || offscreenSubtreeWasHidden || recursivelyTraverseDisappearLayoutEffects(finishedWork)), supportsMutation)) {
|
|
9717
9717
|
a:
|
|
9718
9718
|
if (current2 = null, supportsMutation)
|
|
9719
9719
|
for (root = finishedWork;; ) {
|
|
@@ -9753,6 +9753,7 @@ Learn more about data fetching with Hooks: https://react.dev/link/hooks-data-fet
|
|
|
9753
9753
|
root.sibling.return = root.return;
|
|
9754
9754
|
root = root.sibling;
|
|
9755
9755
|
}
|
|
9756
|
+
}
|
|
9756
9757
|
flags & 4 && (flags = finishedWork.updateQueue, flags !== null && (current2 = flags.retryQueue, current2 !== null && (flags.retryQueue = null, attachSuspenseRetryListeners(finishedWork, current2))));
|
|
9757
9758
|
break;
|
|
9758
9759
|
case 19:
|
|
@@ -18054,7 +18055,7 @@ var require_backend = __commonJS((exports, module) => {
|
|
|
18054
18055
|
987: (module2, __unused_webpack_exports, __webpack_require__2) => {
|
|
18055
18056
|
if (true) {
|
|
18056
18057
|
module2.exports = __webpack_require__2(786);
|
|
18057
|
-
}
|
|
18058
|
+
}
|
|
18058
18059
|
},
|
|
18059
18060
|
126: (__unused_webpack_module, exports2, __webpack_require__2) => {
|
|
18060
18061
|
var process4 = __webpack_require__2(169);
|
|
@@ -18504,7 +18505,7 @@ var require_backend = __commonJS((exports, module) => {
|
|
|
18504
18505
|
189: (module2, __unused_webpack_exports, __webpack_require__2) => {
|
|
18505
18506
|
if (true) {
|
|
18506
18507
|
module2.exports = __webpack_require__2(126);
|
|
18507
|
-
}
|
|
18508
|
+
}
|
|
18508
18509
|
},
|
|
18509
18510
|
206: function(module2, exports2, __webpack_require__2) {
|
|
18510
18511
|
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;
|
|
@@ -18519,7 +18520,7 @@ var require_backend = __commonJS((exports, module) => {
|
|
|
18519
18520
|
(function(root, factory) {
|
|
18520
18521
|
if (true) {
|
|
18521
18522
|
__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__2(430)], __WEBPACK_AMD_DEFINE_FACTORY__ = factory, __WEBPACK_AMD_DEFINE_RESULT__ = typeof __WEBPACK_AMD_DEFINE_FACTORY__ === "function" ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports2, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__);
|
|
18522
|
-
}
|
|
18523
|
+
}
|
|
18523
18524
|
})(this, function ErrorStackParser(StackFrame) {
|
|
18524
18525
|
var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\S+:\d+/;
|
|
18525
18526
|
var CHROME_IE_STACK_REGEXP = /^\s*at .*(\S+:\d+|\(native\))/m;
|
|
@@ -19215,7 +19216,7 @@ var require_backend = __commonJS((exports, module) => {
|
|
|
19215
19216
|
(function(root, factory) {
|
|
19216
19217
|
if (true) {
|
|
19217
19218
|
__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = factory, __WEBPACK_AMD_DEFINE_RESULT__ = typeof __WEBPACK_AMD_DEFINE_FACTORY__ === "function" ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports2, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__);
|
|
19218
|
-
}
|
|
19219
|
+
}
|
|
19219
19220
|
})(this, function() {
|
|
19220
19221
|
function _isNumber(n) {
|
|
19221
19222
|
return !isNaN(parseFloat(n)) && isFinite(n);
|
|
@@ -24589,7 +24590,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
24589
24590
|
var suffix = "";
|
|
24590
24591
|
if (true) {
|
|
24591
24592
|
suffix = " (<anonymous>)";
|
|
24592
|
-
}
|
|
24593
|
+
}
|
|
24593
24594
|
return `
|
|
24594
24595
|
` + prefix + name + suffix;
|
|
24595
24596
|
}
|
|
@@ -27318,7 +27319,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
27318
27319
|
hasChanges = true;
|
|
27319
27320
|
updateMostRecentlyInspectedElementIfNecessary(devtoolsInstance.id);
|
|
27320
27321
|
}
|
|
27321
|
-
}
|
|
27322
|
+
}
|
|
27322
27323
|
}
|
|
27323
27324
|
} catch (err) {
|
|
27324
27325
|
_iterator2.e(err);
|
|
@@ -29097,7 +29098,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
29097
29098
|
if (contentFiber === null) {
|
|
29098
29099
|
throw new Error("There should always be an Offscreen Fiber child in a hydrated Suspense boundary.");
|
|
29099
29100
|
}
|
|
29100
|
-
}
|
|
29101
|
+
}
|
|
29101
29102
|
var _isTimedOut = fiber.memoizedState !== null;
|
|
29102
29103
|
if (!_isTimedOut) {
|
|
29103
29104
|
newSuspenseNode.rects = measureInstance(newInstance);
|
|
@@ -29131,7 +29132,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
29131
29132
|
if (_contentFiber === null) {
|
|
29132
29133
|
throw new Error("There should always be an Offscreen Fiber child in a hydrated Suspense boundary.");
|
|
29133
29134
|
}
|
|
29134
|
-
}
|
|
29135
|
+
}
|
|
29135
29136
|
var suspenseState = fiber.memoizedState;
|
|
29136
29137
|
var _isTimedOut3 = suspenseState !== null;
|
|
29137
29138
|
if (!_isTimedOut3) {
|
|
@@ -29231,7 +29232,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
29231
29232
|
trackThrownPromisesFromRetryCache(newSuspenseNode, fiber.stateNode);
|
|
29232
29233
|
mountSuspenseChildrenRecursively(_contentFiber2, traceNearestHostComponentUpdate, stashedSuspenseParent, stashedSuspensePrevious, stashedSuspenseRemaining);
|
|
29233
29234
|
shouldPopSuspenseNode = false;
|
|
29234
|
-
}
|
|
29235
|
+
}
|
|
29235
29236
|
} else {
|
|
29236
29237
|
if (fiber.child !== null) {
|
|
29237
29238
|
mountChildrenRecursively(fiber.child, traceNearestHostComponentUpdate);
|
|
@@ -29817,7 +29818,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
29817
29818
|
shouldPopSuspenseNode = false;
|
|
29818
29819
|
} else if (previousHydrated && !nextHydrated) {
|
|
29819
29820
|
throw new Error("Encountered a dehydrated Suspense boundary that was previously hydrated.");
|
|
29820
|
-
}
|
|
29821
|
+
}
|
|
29821
29822
|
} else {
|
|
29822
29823
|
if (nextFiber.child !== prevFiber.child) {
|
|
29823
29824
|
updateFlags |= updateChildrenRecursively(nextFiber.child, prevFiber.child, traceNearestHostComponentUpdate);
|
|
@@ -29863,8 +29864,8 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
29863
29864
|
recordResetChildren(fiberInstance);
|
|
29864
29865
|
}
|
|
29865
29866
|
updateFlags &= ~ShouldResetChildren;
|
|
29866
|
-
}
|
|
29867
|
-
}
|
|
29867
|
+
}
|
|
29868
|
+
}
|
|
29868
29869
|
if ((updateFlags & ShouldResetSuspenseChildren) !== NoUpdate) {
|
|
29869
29870
|
if (fiberInstance !== null && fiberInstance.kind === FIBER_INSTANCE) {
|
|
29870
29871
|
var _suspenseNode3 = fiberInstance.suspenseNode;
|
|
@@ -29872,7 +29873,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
29872
29873
|
recordResetSuspenseChildren(_suspenseNode3);
|
|
29873
29874
|
updateFlags &= ~ShouldResetSuspenseChildren;
|
|
29874
29875
|
}
|
|
29875
|
-
}
|
|
29876
|
+
}
|
|
29876
29877
|
}
|
|
29877
29878
|
if ((updateFlags & ShouldResetParentSuspenseChildren) !== NoUpdate) {
|
|
29878
29879
|
if (fiberInstance !== null && fiberInstance.kind === FIBER_INSTANCE) {
|
|
@@ -29881,7 +29882,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
29881
29882
|
updateFlags &= ~ShouldResetParentSuspenseChildren;
|
|
29882
29883
|
updateFlags |= ShouldResetSuspenseChildren;
|
|
29883
29884
|
}
|
|
29884
|
-
}
|
|
29885
|
+
}
|
|
29885
29886
|
}
|
|
29886
29887
|
return updateFlags;
|
|
29887
29888
|
} finally {
|
|
@@ -32945,7 +32946,7 @@ The error thrown in the component is:
|
|
|
32945
32946
|
rendererInterface = renderer_attach(hook, id, renderer, global2, shouldStartProfilingNow, profilingSettings);
|
|
32946
32947
|
} else if (renderer.ComponentTree) {
|
|
32947
32948
|
rendererInterface = legacy_renderer_attach(hook, id, renderer, global2);
|
|
32948
|
-
}
|
|
32949
|
+
}
|
|
32949
32950
|
}
|
|
32950
32951
|
return rendererInterface;
|
|
32951
32952
|
}
|
|
@@ -48999,7 +49000,7 @@ function finalize(ctx, schema) {
|
|
|
48999
49000
|
result2.$schema = "http://json-schema.org/draft-07/schema#";
|
|
49000
49001
|
} else if (ctx.target === "draft-04") {
|
|
49001
49002
|
result2.$schema = "http://json-schema.org/draft-04/schema#";
|
|
49002
|
-
} else if (ctx.target === "openapi-3.0") {}
|
|
49003
|
+
} else if (ctx.target === "openapi-3.0") {}
|
|
49003
49004
|
if (ctx.external?.uri) {
|
|
49004
49005
|
const id = ctx.external.registry.get(schema)?.id;
|
|
49005
49006
|
if (!id)
|
|
@@ -49264,7 +49265,7 @@ var formatMap, stringProcessor = (schema, ctx, _json, _params) => {
|
|
|
49264
49265
|
if (val === undefined) {
|
|
49265
49266
|
if (ctx.unrepresentable === "throw") {
|
|
49266
49267
|
throw new Error("Literal `undefined` cannot be represented in JSON Schema");
|
|
49267
|
-
}
|
|
49268
|
+
}
|
|
49268
49269
|
} else if (typeof val === "bigint") {
|
|
49269
49270
|
if (ctx.unrepresentable === "throw") {
|
|
49270
49271
|
throw new Error("BigInt literals cannot be represented in JSON Schema");
|
|
@@ -52241,7 +52242,7 @@ var init_Widget = __esm(() => {
|
|
|
52241
52242
|
});
|
|
52242
52243
|
|
|
52243
52244
|
// src/types/Settings.ts
|
|
52244
|
-
var CURRENT_VERSION = 3, InstallationMetadataSchema, SettingsSchema_v1, SettingsSchema, DEFAULT_SETTINGS;
|
|
52245
|
+
var CURRENT_VERSION = 3, InstallationMetadataSchema, OffHoursConfigSchema, DEFAULT_OFF_HOURS, SettingsSchema_v1, SettingsSchema, DEFAULT_SETTINGS;
|
|
52245
52246
|
var init_Settings = __esm(() => {
|
|
52246
52247
|
init_zod();
|
|
52247
52248
|
init_ColorLevel();
|
|
@@ -52266,6 +52267,12 @@ var init_Settings = __esm(() => {
|
|
|
52266
52267
|
packageManager: exports_external.enum(["npm", "bun", "unknown"]).default("unknown")
|
|
52267
52268
|
})
|
|
52268
52269
|
]);
|
|
52270
|
+
OffHoursConfigSchema = exports_external.object({
|
|
52271
|
+
enabled: exports_external.boolean().default(false),
|
|
52272
|
+
startMinutes: exports_external.number().int().min(0).max(1439).default(22 * 60),
|
|
52273
|
+
endMinutes: exports_external.number().int().min(0).max(1439).default(7 * 60)
|
|
52274
|
+
});
|
|
52275
|
+
DEFAULT_OFF_HOURS = OffHoursConfigSchema.parse({});
|
|
52269
52276
|
SettingsSchema_v1 = exports_external.object({
|
|
52270
52277
|
lines: exports_external.array(exports_external.array(WidgetItemSchema)).optional(),
|
|
52271
52278
|
flexMode: FlexModeSchema.optional(),
|
|
@@ -52323,6 +52330,7 @@ var init_Settings = __esm(() => {
|
|
|
52323
52330
|
autoAlign: false,
|
|
52324
52331
|
continueThemeAcrossLines: false
|
|
52325
52332
|
}),
|
|
52333
|
+
offHours: OffHoursConfigSchema.default(DEFAULT_OFF_HOURS),
|
|
52326
52334
|
updatemessage: exports_external.object({
|
|
52327
52335
|
message: exports_external.string().nullable().optional(),
|
|
52328
52336
|
remaining: exports_external.number().nullable().optional()
|
|
@@ -56149,7 +56157,7 @@ function getTerminalWidth() {
|
|
|
56149
56157
|
function canDetectTerminalWidth() {
|
|
56150
56158
|
return probeTerminalWidth() !== null;
|
|
56151
56159
|
}
|
|
56152
|
-
var __dirname = "/Users/peter/Documents/Code/ccstatusline-usage/src/utils", PACKAGE_VERSION = "2.4.
|
|
56160
|
+
var __dirname = "/Users/peter/Documents/Code/ccstatusline-usage/src/utils", PACKAGE_VERSION = "2.4.4";
|
|
56153
56161
|
var init_terminal = () => {};
|
|
56154
56162
|
|
|
56155
56163
|
// node_modules/ms/index.js
|
|
@@ -65544,9 +65552,9 @@ class SessionUsageWidget {
|
|
|
65544
65552
|
return null;
|
|
65545
65553
|
const extraUsed = data.extraUsageUsed;
|
|
65546
65554
|
const extraLimit = data.extraUsageLimit;
|
|
65547
|
-
if (
|
|
65555
|
+
if (data.extraUsageEnabled === true && extraUsed !== undefined && extraLimit !== undefined && data.sessionUsage >= 100 && (data.weeklyUsage === undefined || data.weeklyUsage < 100)) {
|
|
65548
65556
|
const extraPercent = computeExtraPercent(extraUsed, extraLimit);
|
|
65549
|
-
return formatSplitUsageBar("Session", "S", extraPercent, size2);
|
|
65557
|
+
return formatSplitUsageBar("Session", "S", extraPercent, size2, extraUsed, extraLimit);
|
|
65550
65558
|
}
|
|
65551
65559
|
return formatUsageBar("Session", "S", data.sessionUsage, size2);
|
|
65552
65560
|
}
|
|
@@ -66808,6 +66816,97 @@ var init_VimMode = __esm(() => {
|
|
|
66808
66816
|
FORMATS = ["icon-dash-letter", "icon-letter", "icon", "letter", "word"];
|
|
66809
66817
|
});
|
|
66810
66818
|
|
|
66819
|
+
// src/utils/off-hours.ts
|
|
66820
|
+
function isOffHoursActive(offHours) {
|
|
66821
|
+
return !!offHours && offHours.enabled && offHours.startMinutes !== offHours.endMinutes;
|
|
66822
|
+
}
|
|
66823
|
+
function offWindowDurationMinutes(startMinutes, endMinutes) {
|
|
66824
|
+
if (startMinutes === endMinutes)
|
|
66825
|
+
return 0;
|
|
66826
|
+
return (endMinutes - startMinutes + 1440) % 1440;
|
|
66827
|
+
}
|
|
66828
|
+
function overlapMs(a1, a2, b1, b2) {
|
|
66829
|
+
return Math.max(0, Math.min(a2, b2) - Math.max(a1, b1));
|
|
66830
|
+
}
|
|
66831
|
+
function offMsInRange(startMs, endMs, startMinutes, endMinutes) {
|
|
66832
|
+
if (startMs >= endMs)
|
|
66833
|
+
return 0;
|
|
66834
|
+
const durationMin = offWindowDurationMinutes(startMinutes, endMinutes);
|
|
66835
|
+
if (durationMin === 0)
|
|
66836
|
+
return 0;
|
|
66837
|
+
const startHour = Math.floor(startMinutes / 60);
|
|
66838
|
+
const startMinute = startMinutes % 60;
|
|
66839
|
+
const wraps = endMinutes < startMinutes;
|
|
66840
|
+
const endHour = Math.floor(endMinutes / 60);
|
|
66841
|
+
const endMinute = endMinutes % 60;
|
|
66842
|
+
const cursor = new Date(startMs);
|
|
66843
|
+
cursor.setHours(0, 0, 0, 0);
|
|
66844
|
+
cursor.setDate(cursor.getDate() - 1);
|
|
66845
|
+
let total = 0;
|
|
66846
|
+
const maxIterations = Math.ceil((endMs - startMs) / MS_PER_DAY) + 3;
|
|
66847
|
+
for (let i = 0;i < maxIterations; i++) {
|
|
66848
|
+
const periodStart = new Date(cursor);
|
|
66849
|
+
periodStart.setHours(startHour, startMinute, 0, 0);
|
|
66850
|
+
const periodEnd = new Date(cursor);
|
|
66851
|
+
periodEnd.setHours(endHour, endMinute, 0, 0);
|
|
66852
|
+
if (wraps) {
|
|
66853
|
+
periodEnd.setDate(periodEnd.getDate() + 1);
|
|
66854
|
+
}
|
|
66855
|
+
total += overlapMs(startMs, endMs, periodStart.getTime(), periodEnd.getTime());
|
|
66856
|
+
cursor.setDate(cursor.getDate() + 1);
|
|
66857
|
+
if (cursor.getTime() >= endMs)
|
|
66858
|
+
break;
|
|
66859
|
+
}
|
|
66860
|
+
return total;
|
|
66861
|
+
}
|
|
66862
|
+
function computeAdjustedExpectedPercent(windowStartMs, windowEndMs, nowMs, offHours) {
|
|
66863
|
+
const totalMs = windowEndMs - windowStartMs;
|
|
66864
|
+
if (totalMs <= 0)
|
|
66865
|
+
return 0;
|
|
66866
|
+
const elapsedMs = Math.max(0, Math.min(totalMs, nowMs - windowStartMs));
|
|
66867
|
+
if (!offHours || !isOffHoursActive(offHours)) {
|
|
66868
|
+
return elapsedMs / totalMs * 100;
|
|
66869
|
+
}
|
|
66870
|
+
const offInElapsed = offMsInRange(windowStartMs, windowStartMs + elapsedMs, offHours.startMinutes, offHours.endMinutes);
|
|
66871
|
+
const offInTotal = offMsInRange(windowStartMs, windowEndMs, offHours.startMinutes, offHours.endMinutes);
|
|
66872
|
+
const activeElapsedMs = elapsedMs - offInElapsed;
|
|
66873
|
+
const activeTotalMs = totalMs - offInTotal;
|
|
66874
|
+
if (activeTotalMs <= 0)
|
|
66875
|
+
return 0;
|
|
66876
|
+
return activeElapsedMs / activeTotalMs * 100;
|
|
66877
|
+
}
|
|
66878
|
+
function activeHoursPerWeek(offHours) {
|
|
66879
|
+
if (!isOffHoursActive(offHours) || !offHours)
|
|
66880
|
+
return 7 * 24;
|
|
66881
|
+
const offMinutesPerDay = offWindowDurationMinutes(offHours.startMinutes, offHours.endMinutes);
|
|
66882
|
+
return 7 * 24 - 7 * offMinutesPerDay / 60;
|
|
66883
|
+
}
|
|
66884
|
+
function formatHHMM(minutes) {
|
|
66885
|
+
const clamped = Math.max(0, Math.min(1439, Math.round(minutes)));
|
|
66886
|
+
const h = Math.floor(clamped / 60);
|
|
66887
|
+
const m = clamped % 60;
|
|
66888
|
+
return `${String(h).padStart(2, "0")}:${String(m).padStart(2, "0")}`;
|
|
66889
|
+
}
|
|
66890
|
+
function parseHHMM(input) {
|
|
66891
|
+
const trimmed = input.trim();
|
|
66892
|
+
const match = /^(\d{1,2}):(\d{2})$/.exec(trimmed);
|
|
66893
|
+
if (!match)
|
|
66894
|
+
return null;
|
|
66895
|
+
const h = Number(match[1]);
|
|
66896
|
+
const m = Number(match[2]);
|
|
66897
|
+
if (!Number.isFinite(h) || !Number.isFinite(m))
|
|
66898
|
+
return null;
|
|
66899
|
+
if (h < 0 || h > 23 || m < 0 || m > 59)
|
|
66900
|
+
return null;
|
|
66901
|
+
return h * 60 + m;
|
|
66902
|
+
}
|
|
66903
|
+
var MS_PER_MINUTE, MS_PER_HOUR, MS_PER_DAY;
|
|
66904
|
+
var init_off_hours = __esm(() => {
|
|
66905
|
+
MS_PER_MINUTE = 60 * 1000;
|
|
66906
|
+
MS_PER_HOUR = 60 * MS_PER_MINUTE;
|
|
66907
|
+
MS_PER_DAY = 24 * MS_PER_HOUR;
|
|
66908
|
+
});
|
|
66909
|
+
|
|
66811
66910
|
// src/widgets/WeeklyPace.ts
|
|
66812
66911
|
function getPaceDisplayMode(item) {
|
|
66813
66912
|
return item.metadata?.display === "pendulum" ? "pendulum" : "text";
|
|
@@ -66819,9 +66918,9 @@ function getDecimalPrecision(item) {
|
|
|
66819
66918
|
function formatDelta(delta, decimals) {
|
|
66820
66919
|
return delta.toFixed(decimals);
|
|
66821
66920
|
}
|
|
66822
|
-
function computePace(actualPercent, expectedPercent, showPercent = false, decimals = 0) {
|
|
66921
|
+
function computePace(actualPercent, expectedPercent, rawElapsedPercent, showPercent = false, decimals = 0) {
|
|
66823
66922
|
const delta = actualPercent - expectedPercent;
|
|
66824
|
-
const dayOfWeek = Math.max(1, Math.min(7, Math.ceil(
|
|
66923
|
+
const dayOfWeek = Math.max(1, Math.min(7, Math.ceil(rawElapsedPercent * 7 / 100)));
|
|
66825
66924
|
let status;
|
|
66826
66925
|
if (delta > 15) {
|
|
66827
66926
|
status = `Overcooking +${formatDelta(delta, decimals)}%`;
|
|
@@ -66928,7 +67027,18 @@ class WeeklyPaceWidget {
|
|
|
66928
67027
|
const actualPercent = Math.max(0, Math.min(100, data.weeklyUsage));
|
|
66929
67028
|
const showPercent = item.metadata?.showPercent === "true";
|
|
66930
67029
|
const decimals = getDecimalPrecision(item);
|
|
66931
|
-
const
|
|
67030
|
+
const rawExpectedPercent = window2.elapsedPercent;
|
|
67031
|
+
let expectedPercent = rawExpectedPercent;
|
|
67032
|
+
if (isOffHoursActive(settings.offHours) && data.weeklyResetAt) {
|
|
67033
|
+
const resetAtMs = Date.parse(data.weeklyResetAt);
|
|
67034
|
+
if (!Number.isNaN(resetAtMs)) {
|
|
67035
|
+
const windowStartMs = resetAtMs - SEVEN_DAY_WINDOW_MS;
|
|
67036
|
+
const windowEndMs = resetAtMs;
|
|
67037
|
+
const nowMs = windowStartMs + window2.elapsedMs;
|
|
67038
|
+
expectedPercent = computeAdjustedExpectedPercent(windowStartMs, windowEndMs, nowMs, settings.offHours);
|
|
67039
|
+
}
|
|
67040
|
+
}
|
|
67041
|
+
const { delta, dayOfWeek, status } = computePace(actualPercent, expectedPercent, rawExpectedPercent, showPercent, decimals);
|
|
66932
67042
|
const width = context.terminalWidth ?? 0;
|
|
66933
67043
|
const mobile = width > 0 && width < MOBILE_THRESHOLD2;
|
|
66934
67044
|
const medium = width >= MOBILE_THRESHOLD2 && width < MEDIUM_THRESHOLD3;
|
|
@@ -66956,6 +67066,8 @@ class WeeklyPaceWidget {
|
|
|
66956
67066
|
}
|
|
66957
67067
|
var MOBILE_THRESHOLD2 = 134, MEDIUM_THRESHOLD3 = 178;
|
|
66958
67068
|
var init_WeeklyPace = __esm(async () => {
|
|
67069
|
+
init_off_hours();
|
|
67070
|
+
init_usage_types();
|
|
66959
67071
|
await init_usage();
|
|
66960
67072
|
});
|
|
66961
67073
|
|
|
@@ -68904,7 +69016,7 @@ var dist_default5 = Gradient;
|
|
|
68904
69016
|
|
|
68905
69017
|
// src/tui/App.tsx
|
|
68906
69018
|
await init_claude_settings();
|
|
68907
|
-
var
|
|
69019
|
+
var import_react52 = __toESM(require_react(), 1);
|
|
68908
69020
|
|
|
68909
69021
|
// src/utils/clone-settings.ts
|
|
68910
69022
|
function cloneSettings(settings) {
|
|
@@ -72857,6 +72969,11 @@ function buildMainMenuItems(isClaudeInstalled, hasChanges, installation) {
|
|
|
72857
72969
|
value: "globalOverrides",
|
|
72858
72970
|
description: "Set global padding, separators, and color overrides that apply to all widgets"
|
|
72859
72971
|
},
|
|
72972
|
+
{
|
|
72973
|
+
label: "\uD83C\uDF19 Off Hours",
|
|
72974
|
+
value: "offHours",
|
|
72975
|
+
description: "Declare hours you won't use Claude (e.g., sleep). Weekly Pace holds its expected % steady through this window so the delta doesn't drift while you're away."
|
|
72976
|
+
},
|
|
72860
72977
|
{
|
|
72861
72978
|
label: "\uD83D\uDD27 Configure Status Line",
|
|
72862
72979
|
sublabel: isClaudeInstalled ? undefined : "(install first)",
|
|
@@ -73128,9 +73245,252 @@ var UninstallMenu = ({
|
|
|
73128
73245
|
]
|
|
73129
73246
|
}, undefined, true, undefined, this);
|
|
73130
73247
|
};
|
|
73248
|
+
// src/tui/components/OffHoursMenu.tsx
|
|
73249
|
+
init_Settings();
|
|
73250
|
+
init_input_guards();
|
|
73251
|
+
init_off_hours();
|
|
73252
|
+
await init_build2();
|
|
73253
|
+
var import_react44 = __toESM(require_react(), 1);
|
|
73254
|
+
var jsx_dev_runtime19 = __toESM(require_jsx_dev_runtime(), 1);
|
|
73255
|
+
function describeOffWindow(offHours) {
|
|
73256
|
+
const duration3 = offWindowDurationMinutes(offHours.startMinutes, offHours.endMinutes);
|
|
73257
|
+
if (duration3 === 0) {
|
|
73258
|
+
return "(no window)";
|
|
73259
|
+
}
|
|
73260
|
+
const hours = Math.floor(duration3 / 60);
|
|
73261
|
+
const mins = duration3 % 60;
|
|
73262
|
+
const durStr = mins === 0 ? `${hours}h` : `${hours}h ${mins}m`;
|
|
73263
|
+
return `${formatHHMM(offHours.startMinutes)} → ${formatHHMM(offHours.endMinutes)} (${durStr}/day)`;
|
|
73264
|
+
}
|
|
73265
|
+
function formatActiveHoursPerWeek(offHours) {
|
|
73266
|
+
const hours = activeHoursPerWeek(offHours);
|
|
73267
|
+
if (Number.isInteger(hours)) {
|
|
73268
|
+
return `${hours}h / week`;
|
|
73269
|
+
}
|
|
73270
|
+
return `${hours.toFixed(1)}h / week`;
|
|
73271
|
+
}
|
|
73272
|
+
var OffHoursMenu = ({ settings, onUpdate, onBack }) => {
|
|
73273
|
+
const offHours = settings.offHours;
|
|
73274
|
+
const [editing, setEditing] = import_react44.useState(null);
|
|
73275
|
+
const [inputValue, setInputValue] = import_react44.useState("");
|
|
73276
|
+
const [error48, setError] = import_react44.useState(null);
|
|
73277
|
+
const applyOffHours = (next) => {
|
|
73278
|
+
onUpdate({ ...settings, offHours: next });
|
|
73279
|
+
};
|
|
73280
|
+
const beginEdit = (field) => {
|
|
73281
|
+
if (!field)
|
|
73282
|
+
return;
|
|
73283
|
+
const current = field === "start" ? offHours.startMinutes : offHours.endMinutes;
|
|
73284
|
+
setInputValue(formatHHMM(current));
|
|
73285
|
+
setEditing(field);
|
|
73286
|
+
setError(null);
|
|
73287
|
+
};
|
|
73288
|
+
const commitEdit = () => {
|
|
73289
|
+
if (!editing)
|
|
73290
|
+
return;
|
|
73291
|
+
const parsed = parseHHMM(inputValue);
|
|
73292
|
+
if (parsed === null) {
|
|
73293
|
+
setError("Invalid time. Use HH:MM (e.g., 22:30).");
|
|
73294
|
+
return;
|
|
73295
|
+
}
|
|
73296
|
+
if (editing === "start") {
|
|
73297
|
+
applyOffHours({ ...offHours, startMinutes: parsed });
|
|
73298
|
+
} else {
|
|
73299
|
+
applyOffHours({ ...offHours, endMinutes: parsed });
|
|
73300
|
+
}
|
|
73301
|
+
setEditing(null);
|
|
73302
|
+
setInputValue("");
|
|
73303
|
+
setError(null);
|
|
73304
|
+
};
|
|
73305
|
+
const cancelEdit = () => {
|
|
73306
|
+
setEditing(null);
|
|
73307
|
+
setInputValue("");
|
|
73308
|
+
setError(null);
|
|
73309
|
+
};
|
|
73310
|
+
use_input_default((input, key) => {
|
|
73311
|
+
if (editing) {
|
|
73312
|
+
if (key.return) {
|
|
73313
|
+
commitEdit();
|
|
73314
|
+
} else if (key.escape) {
|
|
73315
|
+
cancelEdit();
|
|
73316
|
+
} else if (key.backspace || key.delete) {
|
|
73317
|
+
setInputValue((prev) => prev.slice(0, -1));
|
|
73318
|
+
setError(null);
|
|
73319
|
+
} else if (shouldInsertInput(input, key)) {
|
|
73320
|
+
setInputValue((prev) => prev + input);
|
|
73321
|
+
setError(null);
|
|
73322
|
+
}
|
|
73323
|
+
return;
|
|
73324
|
+
}
|
|
73325
|
+
if (key.escape) {
|
|
73326
|
+
onBack();
|
|
73327
|
+
} else if (input === "e" || input === "E") {
|
|
73328
|
+
applyOffHours({ ...offHours, enabled: !offHours.enabled });
|
|
73329
|
+
} else if (input === "s" || input === "S") {
|
|
73330
|
+
beginEdit("start");
|
|
73331
|
+
} else if (input === "n" || input === "N") {
|
|
73332
|
+
beginEdit("end");
|
|
73333
|
+
} else if (input === "r" || input === "R") {
|
|
73334
|
+
applyOffHours(DEFAULT_OFF_HOURS);
|
|
73335
|
+
}
|
|
73336
|
+
});
|
|
73337
|
+
const windowDesc = describeOffWindow(offHours);
|
|
73338
|
+
const activeDesc = formatActiveHoursPerWeek(offHours);
|
|
73339
|
+
return /* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Box_default, {
|
|
73340
|
+
flexDirection: "column",
|
|
73341
|
+
children: [
|
|
73342
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
|
|
73343
|
+
bold: true,
|
|
73344
|
+
children: "\uD83C\uDF19 Off Hours"
|
|
73345
|
+
}, undefined, false, undefined, this),
|
|
73346
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
|
|
73347
|
+
dimColor: true,
|
|
73348
|
+
children: "Hours you won't use Claude (e.g., sleep). Weekly Pace holds its expected % steady through this window instead of drifting upward."
|
|
73349
|
+
}, undefined, false, undefined, this),
|
|
73350
|
+
editing ? /* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Box_default, {
|
|
73351
|
+
flexDirection: "column",
|
|
73352
|
+
marginTop: 1,
|
|
73353
|
+
children: [
|
|
73354
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Box_default, {
|
|
73355
|
+
children: [
|
|
73356
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
|
|
73357
|
+
children: [
|
|
73358
|
+
editing === "start" ? "Enter start time" : "Enter end time",
|
|
73359
|
+
" ",
|
|
73360
|
+
"(HH:MM, 24-hour local):",
|
|
73361
|
+
" "
|
|
73362
|
+
]
|
|
73363
|
+
}, undefined, true, undefined, this),
|
|
73364
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
|
|
73365
|
+
color: "cyan",
|
|
73366
|
+
children: inputValue || "(empty)"
|
|
73367
|
+
}, undefined, false, undefined, this)
|
|
73368
|
+
]
|
|
73369
|
+
}, undefined, true, undefined, this),
|
|
73370
|
+
error48 && /* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
|
|
73371
|
+
color: "red",
|
|
73372
|
+
children: error48
|
|
73373
|
+
}, undefined, false, undefined, this),
|
|
73374
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
|
|
73375
|
+
dimColor: true,
|
|
73376
|
+
children: "Press Enter to save, ESC to cancel"
|
|
73377
|
+
}, undefined, false, undefined, this)
|
|
73378
|
+
]
|
|
73379
|
+
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime19.jsxDEV(jsx_dev_runtime19.Fragment, {
|
|
73380
|
+
children: [
|
|
73381
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Box_default, {
|
|
73382
|
+
marginTop: 1
|
|
73383
|
+
}, undefined, false, undefined, this),
|
|
73384
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Box_default, {
|
|
73385
|
+
children: [
|
|
73386
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
|
|
73387
|
+
children: " Enabled: "
|
|
73388
|
+
}, undefined, false, undefined, this),
|
|
73389
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
|
|
73390
|
+
color: offHours.enabled ? "green" : "red",
|
|
73391
|
+
children: offHours.enabled ? "✓ Enabled" : "✗ Disabled"
|
|
73392
|
+
}, undefined, false, undefined, this),
|
|
73393
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
|
|
73394
|
+
dimColor: true,
|
|
73395
|
+
children: " - Press (e) to toggle"
|
|
73396
|
+
}, undefined, false, undefined, this)
|
|
73397
|
+
]
|
|
73398
|
+
}, undefined, true, undefined, this),
|
|
73399
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Box_default, {
|
|
73400
|
+
children: [
|
|
73401
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
|
|
73402
|
+
children: " Start Time: "
|
|
73403
|
+
}, undefined, false, undefined, this),
|
|
73404
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
|
|
73405
|
+
color: "cyan",
|
|
73406
|
+
children: formatHHMM(offHours.startMinutes)
|
|
73407
|
+
}, undefined, false, undefined, this),
|
|
73408
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
|
|
73409
|
+
dimColor: true,
|
|
73410
|
+
children: " - Press (s) to edit"
|
|
73411
|
+
}, undefined, false, undefined, this)
|
|
73412
|
+
]
|
|
73413
|
+
}, undefined, true, undefined, this),
|
|
73414
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Box_default, {
|
|
73415
|
+
children: [
|
|
73416
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
|
|
73417
|
+
children: " End Time: "
|
|
73418
|
+
}, undefined, false, undefined, this),
|
|
73419
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
|
|
73420
|
+
color: "cyan",
|
|
73421
|
+
children: formatHHMM(offHours.endMinutes)
|
|
73422
|
+
}, undefined, false, undefined, this),
|
|
73423
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
|
|
73424
|
+
dimColor: true,
|
|
73425
|
+
children: " - Press (n) to edit"
|
|
73426
|
+
}, undefined, false, undefined, this)
|
|
73427
|
+
]
|
|
73428
|
+
}, undefined, true, undefined, this),
|
|
73429
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Box_default, {
|
|
73430
|
+
marginTop: 1,
|
|
73431
|
+
children: [
|
|
73432
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
|
|
73433
|
+
children: " Off Window: "
|
|
73434
|
+
}, undefined, false, undefined, this),
|
|
73435
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
|
|
73436
|
+
color: offHours.enabled ? "white" : "gray",
|
|
73437
|
+
children: windowDesc
|
|
73438
|
+
}, undefined, false, undefined, this)
|
|
73439
|
+
]
|
|
73440
|
+
}, undefined, true, undefined, this),
|
|
73441
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Box_default, {
|
|
73442
|
+
children: [
|
|
73443
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
|
|
73444
|
+
children: " Active Hours: "
|
|
73445
|
+
}, undefined, false, undefined, this),
|
|
73446
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
|
|
73447
|
+
color: offHours.enabled ? "white" : "gray",
|
|
73448
|
+
children: activeDesc
|
|
73449
|
+
}, undefined, false, undefined, this)
|
|
73450
|
+
]
|
|
73451
|
+
}, undefined, true, undefined, this),
|
|
73452
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Box_default, {
|
|
73453
|
+
marginTop: 2,
|
|
73454
|
+
children: /* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
|
|
73455
|
+
dimColor: true,
|
|
73456
|
+
children: "Press (r) to reset to defaults (22:00 → 07:00, disabled)"
|
|
73457
|
+
}, undefined, false, undefined, this)
|
|
73458
|
+
}, undefined, false, undefined, this),
|
|
73459
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Box_default, {
|
|
73460
|
+
children: /* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
|
|
73461
|
+
dimColor: true,
|
|
73462
|
+
children: "Press ESC to go back"
|
|
73463
|
+
}, undefined, false, undefined, this)
|
|
73464
|
+
}, undefined, false, undefined, this),
|
|
73465
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Box_default, {
|
|
73466
|
+
marginTop: 1,
|
|
73467
|
+
flexDirection: "column",
|
|
73468
|
+
children: [
|
|
73469
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
|
|
73470
|
+
dimColor: true,
|
|
73471
|
+
wrap: "wrap",
|
|
73472
|
+
children: "• Start > End means the window wraps across midnight (e.g., 22:00 → 07:00)."
|
|
73473
|
+
}, undefined, false, undefined, this),
|
|
73474
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
|
|
73475
|
+
dimColor: true,
|
|
73476
|
+
wrap: "wrap",
|
|
73477
|
+
children: "• Start === End disables the window (treated as empty)."
|
|
73478
|
+
}, undefined, false, undefined, this),
|
|
73479
|
+
/* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
|
|
73480
|
+
dimColor: true,
|
|
73481
|
+
wrap: "wrap",
|
|
73482
|
+
children: "• dayOfWeek (D1/7…D7/7) still tracks wall-clock time. Only the delta changes."
|
|
73483
|
+
}, undefined, false, undefined, this)
|
|
73484
|
+
]
|
|
73485
|
+
}, undefined, true, undefined, this)
|
|
73486
|
+
]
|
|
73487
|
+
}, undefined, true, undefined, this)
|
|
73488
|
+
]
|
|
73489
|
+
}, undefined, true, undefined, this);
|
|
73490
|
+
};
|
|
73131
73491
|
// src/tui/components/PowerlineSetup.tsx
|
|
73132
73492
|
await init_build2();
|
|
73133
|
-
var
|
|
73493
|
+
var import_react47 = __toESM(require_react(), 1);
|
|
73134
73494
|
import * as os12 from "os";
|
|
73135
73495
|
|
|
73136
73496
|
// src/utils/powerline-settings.ts
|
|
@@ -73161,8 +73521,8 @@ function buildEnabledPowerlineSettings(settings, removeManualSeparators) {
|
|
|
73161
73521
|
// src/tui/components/PowerlineSeparatorEditor.tsx
|
|
73162
73522
|
init_input_guards();
|
|
73163
73523
|
await init_build2();
|
|
73164
|
-
var
|
|
73165
|
-
var
|
|
73524
|
+
var import_react45 = __toESM(require_react(), 1);
|
|
73525
|
+
var jsx_dev_runtime20 = __toESM(require_jsx_dev_runtime(), 1);
|
|
73166
73526
|
var PowerlineSeparatorEditor = ({
|
|
73167
73527
|
settings,
|
|
73168
73528
|
mode,
|
|
@@ -73182,10 +73542,10 @@ var PowerlineSeparatorEditor = ({
|
|
|
73182
73542
|
};
|
|
73183
73543
|
const separators = getItems();
|
|
73184
73544
|
const invertBgs = mode === "separator" ? powerlineConfig.separatorInvertBackground : [];
|
|
73185
|
-
const [selectedIndex, setSelectedIndex] =
|
|
73186
|
-
const [hexInputMode, setHexInputMode] =
|
|
73187
|
-
const [hexInput, setHexInput] =
|
|
73188
|
-
const [cursorPos, setCursorPos] =
|
|
73545
|
+
const [selectedIndex, setSelectedIndex] = import_react45.useState(0);
|
|
73546
|
+
const [hexInputMode, setHexInputMode] = import_react45.useState(false);
|
|
73547
|
+
const [hexInput, setHexInput] = import_react45.useState("");
|
|
73548
|
+
const [cursorPos, setCursorPos] = import_react45.useState(0);
|
|
73189
73549
|
const getPresets = () => {
|
|
73190
73550
|
if (mode === "separator") {
|
|
73191
73551
|
return [
|
|
@@ -73377,18 +73737,18 @@ var PowerlineSeparatorEditor = ({
|
|
|
73377
73737
|
}
|
|
73378
73738
|
};
|
|
73379
73739
|
const canDelete = mode !== "separator" || separators.length > 1;
|
|
73380
|
-
return /* @__PURE__ */
|
|
73740
|
+
return /* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Box_default, {
|
|
73381
73741
|
flexDirection: "column",
|
|
73382
73742
|
children: [
|
|
73383
|
-
/* @__PURE__ */
|
|
73743
|
+
/* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Text, {
|
|
73384
73744
|
bold: true,
|
|
73385
73745
|
children: getTitle()
|
|
73386
73746
|
}, undefined, false, undefined, this),
|
|
73387
|
-
hexInputMode ? /* @__PURE__ */
|
|
73747
|
+
hexInputMode ? /* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Box_default, {
|
|
73388
73748
|
marginTop: 2,
|
|
73389
73749
|
flexDirection: "column",
|
|
73390
73750
|
children: [
|
|
73391
|
-
/* @__PURE__ */
|
|
73751
|
+
/* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Text, {
|
|
73392
73752
|
children: [
|
|
73393
73753
|
"Enter hex code (4-6 digits) for",
|
|
73394
73754
|
" ",
|
|
@@ -73397,51 +73757,51 @@ var PowerlineSeparatorEditor = ({
|
|
|
73397
73757
|
":"
|
|
73398
73758
|
]
|
|
73399
73759
|
}, undefined, true, undefined, this),
|
|
73400
|
-
/* @__PURE__ */
|
|
73760
|
+
/* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Text, {
|
|
73401
73761
|
children: [
|
|
73402
73762
|
"U+",
|
|
73403
73763
|
hexInput.slice(0, cursorPos),
|
|
73404
|
-
/* @__PURE__ */
|
|
73764
|
+
/* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Text, {
|
|
73405
73765
|
backgroundColor: "gray",
|
|
73406
73766
|
color: "black",
|
|
73407
73767
|
children: hexInput[cursorPos] ?? "_"
|
|
73408
73768
|
}, undefined, false, undefined, this),
|
|
73409
73769
|
hexInput.slice(cursorPos + 1),
|
|
73410
|
-
hexInput.length < 6 && hexInput.length === cursorPos && /* @__PURE__ */
|
|
73770
|
+
hexInput.length < 6 && hexInput.length === cursorPos && /* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Text, {
|
|
73411
73771
|
dimColor: true,
|
|
73412
73772
|
children: "_".repeat(6 - hexInput.length - 1)
|
|
73413
73773
|
}, undefined, false, undefined, this)
|
|
73414
73774
|
]
|
|
73415
73775
|
}, undefined, true, undefined, this),
|
|
73416
|
-
/* @__PURE__ */
|
|
73776
|
+
/* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Text, {
|
|
73417
73777
|
dimColor: true,
|
|
73418
73778
|
children: "Enter 4-6 hex digits (0-9, A-F) for a Unicode code point, then press Enter. ESC to cancel."
|
|
73419
73779
|
}, undefined, false, undefined, this),
|
|
73420
|
-
/* @__PURE__ */
|
|
73780
|
+
/* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Text, {
|
|
73421
73781
|
dimColor: true,
|
|
73422
73782
|
children: "Examples: E0B0 (powerline), 1F984 (\uD83E\uDD84), 2764 (❤)"
|
|
73423
73783
|
}, undefined, false, undefined, this)
|
|
73424
73784
|
]
|
|
73425
|
-
}, undefined, true, undefined, this) : /* @__PURE__ */
|
|
73785
|
+
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime20.jsxDEV(jsx_dev_runtime20.Fragment, {
|
|
73426
73786
|
children: [
|
|
73427
|
-
/* @__PURE__ */
|
|
73428
|
-
children: /* @__PURE__ */
|
|
73787
|
+
/* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Box_default, {
|
|
73788
|
+
children: /* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Text, {
|
|
73429
73789
|
dimColor: true,
|
|
73430
73790
|
children: `↑↓ select, ← → cycle, (a)dd, (i)nsert${canDelete ? ", (d)elete" : ""}, (c)lear, (h)ex${mode === "separator" ? ", (t)oggle invert" : ""}, ESC back`
|
|
73431
73791
|
}, undefined, false, undefined, this)
|
|
73432
73792
|
}, undefined, false, undefined, this),
|
|
73433
|
-
/* @__PURE__ */
|
|
73793
|
+
/* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Box_default, {
|
|
73434
73794
|
marginTop: 2,
|
|
73435
73795
|
flexDirection: "column",
|
|
73436
|
-
children: separators.length > 0 ? separators.map((sep2, index) => /* @__PURE__ */
|
|
73437
|
-
children: /* @__PURE__ */
|
|
73796
|
+
children: separators.length > 0 ? separators.map((sep2, index) => /* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Box_default, {
|
|
73797
|
+
children: /* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Text, {
|
|
73438
73798
|
color: index === selectedIndex ? "green" : undefined,
|
|
73439
73799
|
children: [
|
|
73440
73800
|
index === selectedIndex ? "▶ " : " ",
|
|
73441
73801
|
`${index + 1}: ${getSeparatorDisplay(sep2, index)}`
|
|
73442
73802
|
]
|
|
73443
73803
|
}, undefined, true, undefined, this)
|
|
73444
|
-
}, index, false, undefined, this)) : /* @__PURE__ */
|
|
73804
|
+
}, index, false, undefined, this)) : /* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Text, {
|
|
73445
73805
|
dimColor: true,
|
|
73446
73806
|
children: "(none configured - press 'a' to add)"
|
|
73447
73807
|
}, undefined, false, undefined, this)
|
|
@@ -73456,8 +73816,8 @@ var PowerlineSeparatorEditor = ({
|
|
|
73456
73816
|
init_ColorLevel();
|
|
73457
73817
|
init_colors();
|
|
73458
73818
|
await init_build2();
|
|
73459
|
-
var
|
|
73460
|
-
var
|
|
73819
|
+
var import_react46 = __toESM(require_react(), 1);
|
|
73820
|
+
var jsx_dev_runtime21 = __toESM(require_jsx_dev_runtime(), 1);
|
|
73461
73821
|
function buildPowerlineThemeItems(themes, originalTheme) {
|
|
73462
73822
|
return themes.map((themeName) => {
|
|
73463
73823
|
const theme = getPowerlineTheme(themeName);
|
|
@@ -73510,20 +73870,20 @@ var PowerlineThemeSelector = ({
|
|
|
73510
73870
|
onUpdate,
|
|
73511
73871
|
onBack
|
|
73512
73872
|
}) => {
|
|
73513
|
-
const themes =
|
|
73873
|
+
const themes = import_react46.useMemo(() => getPowerlineThemes(), []);
|
|
73514
73874
|
const currentTheme = settings.powerline.theme ?? "custom";
|
|
73515
|
-
const [selectedIndex, setSelectedIndex] =
|
|
73516
|
-
const [showCustomizeConfirm, setShowCustomizeConfirm] =
|
|
73517
|
-
const originalThemeRef =
|
|
73518
|
-
const originalSettingsRef =
|
|
73519
|
-
const latestSettingsRef =
|
|
73520
|
-
const latestOnUpdateRef =
|
|
73521
|
-
const didHandleInitialSelectionRef =
|
|
73522
|
-
|
|
73875
|
+
const [selectedIndex, setSelectedIndex] = import_react46.useState(Math.max(0, themes.indexOf(currentTheme)));
|
|
73876
|
+
const [showCustomizeConfirm, setShowCustomizeConfirm] = import_react46.useState(false);
|
|
73877
|
+
const originalThemeRef = import_react46.useRef(currentTheme);
|
|
73878
|
+
const originalSettingsRef = import_react46.useRef(settings);
|
|
73879
|
+
const latestSettingsRef = import_react46.useRef(settings);
|
|
73880
|
+
const latestOnUpdateRef = import_react46.useRef(onUpdate);
|
|
73881
|
+
const didHandleInitialSelectionRef = import_react46.useRef(false);
|
|
73882
|
+
import_react46.useEffect(() => {
|
|
73523
73883
|
latestSettingsRef.current = settings;
|
|
73524
73884
|
latestOnUpdateRef.current = onUpdate;
|
|
73525
73885
|
}, [settings, onUpdate]);
|
|
73526
|
-
|
|
73886
|
+
import_react46.useEffect(() => {
|
|
73527
73887
|
const themeName = themes[selectedIndex];
|
|
73528
73888
|
if (!themeName) {
|
|
73529
73889
|
return;
|
|
@@ -73555,41 +73915,41 @@ var PowerlineThemeSelector = ({
|
|
|
73555
73915
|
}
|
|
73556
73916
|
});
|
|
73557
73917
|
const selectedThemeName = themes[selectedIndex];
|
|
73558
|
-
const themeItems =
|
|
73918
|
+
const themeItems = import_react46.useMemo(() => buildPowerlineThemeItems(themes, originalThemeRef.current), [themes]);
|
|
73559
73919
|
if (showCustomizeConfirm) {
|
|
73560
|
-
return /* @__PURE__ */
|
|
73920
|
+
return /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
|
|
73561
73921
|
flexDirection: "column",
|
|
73562
73922
|
children: [
|
|
73563
|
-
/* @__PURE__ */
|
|
73923
|
+
/* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
|
|
73564
73924
|
bold: true,
|
|
73565
73925
|
color: "yellow",
|
|
73566
73926
|
children: "⚠ Confirm Customization"
|
|
73567
73927
|
}, undefined, false, undefined, this),
|
|
73568
|
-
/* @__PURE__ */
|
|
73928
|
+
/* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
|
|
73569
73929
|
marginTop: 1,
|
|
73570
73930
|
flexDirection: "column",
|
|
73571
73931
|
children: [
|
|
73572
|
-
/* @__PURE__ */
|
|
73932
|
+
/* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
|
|
73573
73933
|
children: "This will copy the current theme colors to your widgets"
|
|
73574
73934
|
}, undefined, false, undefined, this),
|
|
73575
|
-
/* @__PURE__ */
|
|
73935
|
+
/* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
|
|
73576
73936
|
children: "and switch to Custom theme mode."
|
|
73577
73937
|
}, undefined, false, undefined, this),
|
|
73578
|
-
/* @__PURE__ */
|
|
73938
|
+
/* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
|
|
73579
73939
|
color: "red",
|
|
73580
73940
|
children: "This will overwrite any existing custom colors!"
|
|
73581
73941
|
}, undefined, false, undefined, this)
|
|
73582
73942
|
]
|
|
73583
73943
|
}, undefined, true, undefined, this),
|
|
73584
|
-
/* @__PURE__ */
|
|
73944
|
+
/* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
|
|
73585
73945
|
marginTop: 2,
|
|
73586
|
-
children: /* @__PURE__ */
|
|
73946
|
+
children: /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
|
|
73587
73947
|
children: "Continue?"
|
|
73588
73948
|
}, undefined, false, undefined, this)
|
|
73589
73949
|
}, undefined, false, undefined, this),
|
|
73590
|
-
/* @__PURE__ */
|
|
73950
|
+
/* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
|
|
73591
73951
|
marginTop: 1,
|
|
73592
|
-
children: /* @__PURE__ */
|
|
73952
|
+
children: /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(ConfirmDialog, {
|
|
73593
73953
|
inline: true,
|
|
73594
73954
|
onConfirm: () => {
|
|
73595
73955
|
if (selectedThemeName) {
|
|
@@ -73609,26 +73969,26 @@ var PowerlineThemeSelector = ({
|
|
|
73609
73969
|
]
|
|
73610
73970
|
}, undefined, true, undefined, this);
|
|
73611
73971
|
}
|
|
73612
|
-
return /* @__PURE__ */
|
|
73972
|
+
return /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
|
|
73613
73973
|
flexDirection: "column",
|
|
73614
73974
|
children: [
|
|
73615
|
-
/* @__PURE__ */
|
|
73975
|
+
/* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
|
|
73616
73976
|
bold: true,
|
|
73617
73977
|
children: [
|
|
73618
73978
|
`Powerline Theme Selection | `,
|
|
73619
|
-
/* @__PURE__ */
|
|
73979
|
+
/* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
|
|
73620
73980
|
dimColor: true,
|
|
73621
73981
|
children: `Original: ${originalThemeRef.current}`
|
|
73622
73982
|
}, undefined, false, undefined, this)
|
|
73623
73983
|
]
|
|
73624
73984
|
}, undefined, true, undefined, this),
|
|
73625
|
-
/* @__PURE__ */
|
|
73626
|
-
children: /* @__PURE__ */
|
|
73985
|
+
/* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
|
|
73986
|
+
children: /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
|
|
73627
73987
|
dimColor: true,
|
|
73628
73988
|
children: `↑↓ navigate, Enter apply${selectedThemeName && selectedThemeName !== "custom" ? ", (c)ustomize theme" : ""}, ESC cancel`
|
|
73629
73989
|
}, undefined, false, undefined, this)
|
|
73630
73990
|
}, undefined, false, undefined, this),
|
|
73631
|
-
/* @__PURE__ */
|
|
73991
|
+
/* @__PURE__ */ jsx_dev_runtime21.jsxDEV(List, {
|
|
73632
73992
|
marginTop: 1,
|
|
73633
73993
|
items: themeItems,
|
|
73634
73994
|
onSelect: () => {
|
|
@@ -73642,16 +74002,16 @@ var PowerlineThemeSelector = ({
|
|
|
73642
74002
|
},
|
|
73643
74003
|
initialSelection: selectedIndex
|
|
73644
74004
|
}, undefined, false, undefined, this),
|
|
73645
|
-
selectedThemeName && selectedThemeName !== "custom" && /* @__PURE__ */
|
|
74005
|
+
selectedThemeName && selectedThemeName !== "custom" && /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
|
|
73646
74006
|
marginTop: 1,
|
|
73647
|
-
children: /* @__PURE__ */
|
|
74007
|
+
children: /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
|
|
73648
74008
|
dimColor: true,
|
|
73649
74009
|
children: "Press (c) to customize this theme - copies colors to widgets"
|
|
73650
74010
|
}, undefined, false, undefined, this)
|
|
73651
74011
|
}, undefined, false, undefined, this),
|
|
73652
|
-
settings.colorLevel === 1 && /* @__PURE__ */
|
|
74012
|
+
settings.colorLevel === 1 && /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
|
|
73653
74013
|
marginTop: 1,
|
|
73654
|
-
children: /* @__PURE__ */
|
|
74014
|
+
children: /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
|
|
73655
74015
|
color: "yellow",
|
|
73656
74016
|
children: "⚠ 16 color mode themes have a very limited palette, we recommend switching color level in Terminal Options"
|
|
73657
74017
|
}, undefined, false, undefined, this)
|
|
@@ -73661,7 +74021,7 @@ var PowerlineThemeSelector = ({
|
|
|
73661
74021
|
};
|
|
73662
74022
|
|
|
73663
74023
|
// src/tui/components/PowerlineSetup.tsx
|
|
73664
|
-
var
|
|
74024
|
+
var jsx_dev_runtime22 = __toESM(require_jsx_dev_runtime(), 1);
|
|
73665
74025
|
var POWERLINE_MENU_LABEL_WIDTH = 11;
|
|
73666
74026
|
function formatPowerlineMenuLabel(label) {
|
|
73667
74027
|
return label.padEnd(POWERLINE_MENU_LABEL_WIDTH, " ");
|
|
@@ -73764,10 +74124,10 @@ var PowerlineSetup = ({
|
|
|
73764
74124
|
onClearMessage
|
|
73765
74125
|
}) => {
|
|
73766
74126
|
const powerlineConfig = settings.powerline;
|
|
73767
|
-
const [screen, setScreen] =
|
|
73768
|
-
const [selectedMenuItem, setSelectedMenuItem] =
|
|
73769
|
-
const [confirmingEnable, setConfirmingEnable] =
|
|
73770
|
-
const [confirmingFontInstall, setConfirmingFontInstall] =
|
|
74127
|
+
const [screen, setScreen] = import_react47.useState("menu");
|
|
74128
|
+
const [selectedMenuItem, setSelectedMenuItem] = import_react47.useState(0);
|
|
74129
|
+
const [confirmingEnable, setConfirmingEnable] = import_react47.useState(false);
|
|
74130
|
+
const [confirmingFontInstall, setConfirmingFontInstall] = import_react47.useState(false);
|
|
73771
74131
|
const hasSeparatorItems = settings.lines.some((line) => line.some((item) => item.type === "separator" || item.type === "flex-separator"));
|
|
73772
74132
|
use_input_default((input, key) => {
|
|
73773
74133
|
if (fontInstallMessage || installingFonts) {
|
|
@@ -73820,7 +74180,7 @@ var PowerlineSetup = ({
|
|
|
73820
74180
|
}
|
|
73821
74181
|
});
|
|
73822
74182
|
if (screen === "separator") {
|
|
73823
|
-
return /* @__PURE__ */
|
|
74183
|
+
return /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(PowerlineSeparatorEditor, {
|
|
73824
74184
|
settings,
|
|
73825
74185
|
mode: "separator",
|
|
73826
74186
|
onUpdate,
|
|
@@ -73830,7 +74190,7 @@ var PowerlineSetup = ({
|
|
|
73830
74190
|
}, undefined, false, undefined, this);
|
|
73831
74191
|
}
|
|
73832
74192
|
if (screen === "startCap") {
|
|
73833
|
-
return /* @__PURE__ */
|
|
74193
|
+
return /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(PowerlineSeparatorEditor, {
|
|
73834
74194
|
settings,
|
|
73835
74195
|
mode: "startCap",
|
|
73836
74196
|
onUpdate,
|
|
@@ -73840,7 +74200,7 @@ var PowerlineSetup = ({
|
|
|
73840
74200
|
}, undefined, false, undefined, this);
|
|
73841
74201
|
}
|
|
73842
74202
|
if (screen === "endCap") {
|
|
73843
|
-
return /* @__PURE__ */
|
|
74203
|
+
return /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(PowerlineSeparatorEditor, {
|
|
73844
74204
|
settings,
|
|
73845
74205
|
mode: "endCap",
|
|
73846
74206
|
onUpdate,
|
|
@@ -73850,7 +74210,7 @@ var PowerlineSetup = ({
|
|
|
73850
74210
|
}, undefined, false, undefined, this);
|
|
73851
74211
|
}
|
|
73852
74212
|
if (screen === "themes") {
|
|
73853
|
-
return /* @__PURE__ */
|
|
74213
|
+
return /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(PowerlineThemeSelector, {
|
|
73854
74214
|
settings,
|
|
73855
74215
|
onUpdate,
|
|
73856
74216
|
onBack: () => {
|
|
@@ -73858,140 +74218,140 @@ var PowerlineSetup = ({
|
|
|
73858
74218
|
}
|
|
73859
74219
|
}, undefined, false, undefined, this);
|
|
73860
74220
|
}
|
|
73861
|
-
return /* @__PURE__ */
|
|
74221
|
+
return /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
|
|
73862
74222
|
flexDirection: "column",
|
|
73863
74223
|
children: [
|
|
73864
|
-
!confirmingFontInstall && !installingFonts && !fontInstallMessage && /* @__PURE__ */
|
|
74224
|
+
!confirmingFontInstall && !installingFonts && !fontInstallMessage && /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
73865
74225
|
bold: true,
|
|
73866
74226
|
children: "Powerline Setup"
|
|
73867
74227
|
}, undefined, false, undefined, this),
|
|
73868
|
-
confirmingFontInstall ? /* @__PURE__ */
|
|
74228
|
+
confirmingFontInstall ? /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
|
|
73869
74229
|
flexDirection: "column",
|
|
73870
74230
|
children: [
|
|
73871
|
-
/* @__PURE__ */
|
|
74231
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
|
|
73872
74232
|
marginBottom: 1,
|
|
73873
|
-
children: /* @__PURE__ */
|
|
74233
|
+
children: /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
73874
74234
|
color: "cyan",
|
|
73875
74235
|
bold: true,
|
|
73876
74236
|
children: "Font Installation"
|
|
73877
74237
|
}, undefined, false, undefined, this)
|
|
73878
74238
|
}, undefined, false, undefined, this),
|
|
73879
|
-
/* @__PURE__ */
|
|
74239
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
|
|
73880
74240
|
marginBottom: 1,
|
|
73881
74241
|
flexDirection: "column",
|
|
73882
74242
|
children: [
|
|
73883
|
-
/* @__PURE__ */
|
|
74243
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
73884
74244
|
bold: true,
|
|
73885
74245
|
children: "What will happen:"
|
|
73886
74246
|
}, undefined, false, undefined, this),
|
|
73887
|
-
/* @__PURE__ */
|
|
74247
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
73888
74248
|
children: [
|
|
73889
|
-
/* @__PURE__ */
|
|
74249
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
73890
74250
|
dimColor: true,
|
|
73891
74251
|
children: "• Clone fonts from "
|
|
73892
74252
|
}, undefined, false, undefined, this),
|
|
73893
|
-
/* @__PURE__ */
|
|
74253
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
73894
74254
|
color: "blue",
|
|
73895
74255
|
children: "https://github.com/powerline/fonts"
|
|
73896
74256
|
}, undefined, false, undefined, this)
|
|
73897
74257
|
]
|
|
73898
74258
|
}, undefined, true, undefined, this),
|
|
73899
|
-
os12.platform() === "darwin" && /* @__PURE__ */
|
|
74259
|
+
os12.platform() === "darwin" && /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(jsx_dev_runtime22.Fragment, {
|
|
73900
74260
|
children: [
|
|
73901
|
-
/* @__PURE__ */
|
|
74261
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
73902
74262
|
dimColor: true,
|
|
73903
74263
|
children: "• Run install.sh script which will:"
|
|
73904
74264
|
}, undefined, false, undefined, this),
|
|
73905
|
-
/* @__PURE__ */
|
|
74265
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
73906
74266
|
dimColor: true,
|
|
73907
74267
|
children: " - Copy all .ttf/.otf files to ~/Library/Fonts"
|
|
73908
74268
|
}, undefined, false, undefined, this),
|
|
73909
|
-
/* @__PURE__ */
|
|
74269
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
73910
74270
|
dimColor: true,
|
|
73911
74271
|
children: " - Register fonts with macOS"
|
|
73912
74272
|
}, undefined, false, undefined, this)
|
|
73913
74273
|
]
|
|
73914
74274
|
}, undefined, true, undefined, this),
|
|
73915
|
-
os12.platform() === "linux" && /* @__PURE__ */
|
|
74275
|
+
os12.platform() === "linux" && /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(jsx_dev_runtime22.Fragment, {
|
|
73916
74276
|
children: [
|
|
73917
|
-
/* @__PURE__ */
|
|
74277
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
73918
74278
|
dimColor: true,
|
|
73919
74279
|
children: "• Run install.sh script which will:"
|
|
73920
74280
|
}, undefined, false, undefined, this),
|
|
73921
|
-
/* @__PURE__ */
|
|
74281
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
73922
74282
|
dimColor: true,
|
|
73923
74283
|
children: " - Copy all .ttf/.otf files to ~/.local/share/fonts"
|
|
73924
74284
|
}, undefined, false, undefined, this),
|
|
73925
|
-
/* @__PURE__ */
|
|
74285
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
73926
74286
|
dimColor: true,
|
|
73927
74287
|
children: " - Run fc-cache to update font cache"
|
|
73928
74288
|
}, undefined, false, undefined, this)
|
|
73929
74289
|
]
|
|
73930
74290
|
}, undefined, true, undefined, this),
|
|
73931
|
-
os12.platform() === "win32" && /* @__PURE__ */
|
|
74291
|
+
os12.platform() === "win32" && /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(jsx_dev_runtime22.Fragment, {
|
|
73932
74292
|
children: [
|
|
73933
|
-
/* @__PURE__ */
|
|
74293
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
73934
74294
|
dimColor: true,
|
|
73935
74295
|
children: "• Copy Powerline .ttf/.otf files to:"
|
|
73936
74296
|
}, undefined, false, undefined, this),
|
|
73937
|
-
/* @__PURE__ */
|
|
74297
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
73938
74298
|
dimColor: true,
|
|
73939
74299
|
children: " AppData\\Local\\Microsoft\\Windows\\Fonts"
|
|
73940
74300
|
}, undefined, false, undefined, this)
|
|
73941
74301
|
]
|
|
73942
74302
|
}, undefined, true, undefined, this),
|
|
73943
|
-
/* @__PURE__ */
|
|
74303
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
73944
74304
|
dimColor: true,
|
|
73945
74305
|
children: "• Clean up temporary files"
|
|
73946
74306
|
}, undefined, false, undefined, this)
|
|
73947
74307
|
]
|
|
73948
74308
|
}, undefined, true, undefined, this),
|
|
73949
|
-
/* @__PURE__ */
|
|
74309
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
|
|
73950
74310
|
marginBottom: 1,
|
|
73951
74311
|
children: [
|
|
73952
|
-
/* @__PURE__ */
|
|
74312
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
73953
74313
|
color: "yellow",
|
|
73954
74314
|
bold: true,
|
|
73955
74315
|
children: "Requirements: "
|
|
73956
74316
|
}, undefined, false, undefined, this),
|
|
73957
|
-
/* @__PURE__ */
|
|
74317
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
73958
74318
|
dimColor: true,
|
|
73959
74319
|
children: "Git installed, Internet connection, Write permissions"
|
|
73960
74320
|
}, undefined, false, undefined, this)
|
|
73961
74321
|
]
|
|
73962
74322
|
}, undefined, true, undefined, this),
|
|
73963
|
-
/* @__PURE__ */
|
|
74323
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
|
|
73964
74324
|
marginBottom: 1,
|
|
73965
74325
|
flexDirection: "column",
|
|
73966
74326
|
children: [
|
|
73967
|
-
/* @__PURE__ */
|
|
74327
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
73968
74328
|
color: "green",
|
|
73969
74329
|
bold: true,
|
|
73970
74330
|
children: "After install:"
|
|
73971
74331
|
}, undefined, false, undefined, this),
|
|
73972
|
-
/* @__PURE__ */
|
|
74332
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
73973
74333
|
dimColor: true,
|
|
73974
74334
|
children: "• Restart terminal"
|
|
73975
74335
|
}, undefined, false, undefined, this),
|
|
73976
|
-
/* @__PURE__ */
|
|
74336
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
73977
74337
|
dimColor: true,
|
|
73978
74338
|
children: "• Select a Powerline font"
|
|
73979
74339
|
}, undefined, false, undefined, this),
|
|
73980
|
-
/* @__PURE__ */
|
|
74340
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
73981
74341
|
dimColor: true,
|
|
73982
74342
|
children: ' (e.g. "Meslo LG S for Powerline")'
|
|
73983
74343
|
}, undefined, false, undefined, this)
|
|
73984
74344
|
]
|
|
73985
74345
|
}, undefined, true, undefined, this),
|
|
73986
|
-
/* @__PURE__ */
|
|
74346
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
|
|
73987
74347
|
marginTop: 1,
|
|
73988
|
-
children: /* @__PURE__ */
|
|
74348
|
+
children: /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
73989
74349
|
children: "Proceed? "
|
|
73990
74350
|
}, undefined, false, undefined, this)
|
|
73991
74351
|
}, undefined, false, undefined, this),
|
|
73992
|
-
/* @__PURE__ */
|
|
74352
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
|
|
73993
74353
|
marginTop: 1,
|
|
73994
|
-
children: /* @__PURE__ */
|
|
74354
|
+
children: /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(ConfirmDialog, {
|
|
73995
74355
|
inline: true,
|
|
73996
74356
|
onConfirm: () => {
|
|
73997
74357
|
setConfirmingFontInstall(false);
|
|
@@ -74003,36 +74363,36 @@ var PowerlineSetup = ({
|
|
|
74003
74363
|
}, undefined, false, undefined, this)
|
|
74004
74364
|
}, undefined, false, undefined, this)
|
|
74005
74365
|
]
|
|
74006
|
-
}, undefined, true, undefined, this) : confirmingEnable ? /* @__PURE__ */
|
|
74366
|
+
}, undefined, true, undefined, this) : confirmingEnable ? /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
|
|
74007
74367
|
flexDirection: "column",
|
|
74008
74368
|
marginTop: 1,
|
|
74009
74369
|
children: [
|
|
74010
|
-
hasSeparatorItems && /* @__PURE__ */
|
|
74370
|
+
hasSeparatorItems && /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(jsx_dev_runtime22.Fragment, {
|
|
74011
74371
|
children: [
|
|
74012
|
-
/* @__PURE__ */
|
|
74013
|
-
children: /* @__PURE__ */
|
|
74372
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
|
|
74373
|
+
children: /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
74014
74374
|
color: "yellow",
|
|
74015
74375
|
children: "⚠ Warning: Enabling Powerline mode will remove all existing separators and flex-separators from your status lines."
|
|
74016
74376
|
}, undefined, false, undefined, this)
|
|
74017
74377
|
}, undefined, false, undefined, this),
|
|
74018
|
-
/* @__PURE__ */
|
|
74378
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
|
|
74019
74379
|
marginBottom: 1,
|
|
74020
|
-
children: /* @__PURE__ */
|
|
74380
|
+
children: /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
74021
74381
|
dimColor: true,
|
|
74022
74382
|
children: "Powerline mode uses its own separator system and is incompatible with manual separators."
|
|
74023
74383
|
}, undefined, false, undefined, this)
|
|
74024
74384
|
}, undefined, false, undefined, this)
|
|
74025
74385
|
]
|
|
74026
74386
|
}, undefined, true, undefined, this),
|
|
74027
|
-
/* @__PURE__ */
|
|
74387
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
|
|
74028
74388
|
marginTop: hasSeparatorItems ? 1 : 0,
|
|
74029
|
-
children: /* @__PURE__ */
|
|
74389
|
+
children: /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
74030
74390
|
children: "Do you want to continue? "
|
|
74031
74391
|
}, undefined, false, undefined, this)
|
|
74032
74392
|
}, undefined, false, undefined, this),
|
|
74033
|
-
/* @__PURE__ */
|
|
74393
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
|
|
74034
74394
|
marginTop: 1,
|
|
74035
|
-
children: /* @__PURE__ */
|
|
74395
|
+
children: /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(ConfirmDialog, {
|
|
74036
74396
|
inline: true,
|
|
74037
74397
|
onConfirm: () => {
|
|
74038
74398
|
onUpdate(buildEnabledPowerlineSettings(settings, true));
|
|
@@ -74044,51 +74404,51 @@ var PowerlineSetup = ({
|
|
|
74044
74404
|
}, undefined, false, undefined, this)
|
|
74045
74405
|
}, undefined, false, undefined, this)
|
|
74046
74406
|
]
|
|
74047
|
-
}, undefined, true, undefined, this) : installingFonts ? /* @__PURE__ */
|
|
74048
|
-
children: /* @__PURE__ */
|
|
74407
|
+
}, undefined, true, undefined, this) : installingFonts ? /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
|
|
74408
|
+
children: /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
74049
74409
|
color: "yellow",
|
|
74050
74410
|
children: "Installing Powerline fonts... This may take a moment."
|
|
74051
74411
|
}, undefined, false, undefined, this)
|
|
74052
|
-
}, undefined, false, undefined, this) : fontInstallMessage ? /* @__PURE__ */
|
|
74412
|
+
}, undefined, false, undefined, this) : fontInstallMessage ? /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
|
|
74053
74413
|
flexDirection: "column",
|
|
74054
74414
|
children: [
|
|
74055
|
-
/* @__PURE__ */
|
|
74415
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
74056
74416
|
color: fontInstallMessage.includes("success") ? "green" : "red",
|
|
74057
74417
|
children: fontInstallMessage
|
|
74058
74418
|
}, undefined, false, undefined, this),
|
|
74059
|
-
/* @__PURE__ */
|
|
74419
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
|
|
74060
74420
|
marginTop: 1,
|
|
74061
|
-
children: /* @__PURE__ */
|
|
74421
|
+
children: /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
74062
74422
|
dimColor: true,
|
|
74063
74423
|
children: "Press any key to continue..."
|
|
74064
74424
|
}, undefined, false, undefined, this)
|
|
74065
74425
|
}, undefined, false, undefined, this)
|
|
74066
74426
|
]
|
|
74067
|
-
}, undefined, true, undefined, this) : /* @__PURE__ */
|
|
74427
|
+
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(jsx_dev_runtime22.Fragment, {
|
|
74068
74428
|
children: [
|
|
74069
|
-
/* @__PURE__ */
|
|
74429
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
|
|
74070
74430
|
flexDirection: "column",
|
|
74071
|
-
children: /* @__PURE__ */
|
|
74431
|
+
children: /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
74072
74432
|
children: [
|
|
74073
74433
|
" Font Status: ",
|
|
74074
|
-
powerlineFontStatus.installed ? /* @__PURE__ */
|
|
74434
|
+
powerlineFontStatus.installed ? /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(jsx_dev_runtime22.Fragment, {
|
|
74075
74435
|
children: [
|
|
74076
|
-
/* @__PURE__ */
|
|
74436
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
74077
74437
|
color: "green",
|
|
74078
74438
|
children: "✓ Installed"
|
|
74079
74439
|
}, undefined, false, undefined, this),
|
|
74080
|
-
/* @__PURE__ */
|
|
74440
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
74081
74441
|
dimColor: true,
|
|
74082
74442
|
children: " - Ensure fonts are active in your terminal"
|
|
74083
74443
|
}, undefined, false, undefined, this)
|
|
74084
74444
|
]
|
|
74085
|
-
}, undefined, true, undefined, this) : /* @__PURE__ */
|
|
74445
|
+
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(jsx_dev_runtime22.Fragment, {
|
|
74086
74446
|
children: [
|
|
74087
|
-
/* @__PURE__ */
|
|
74447
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
74088
74448
|
color: "yellow",
|
|
74089
74449
|
children: "✗ Not Installed"
|
|
74090
74450
|
}, undefined, false, undefined, this),
|
|
74091
|
-
/* @__PURE__ */
|
|
74451
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
74092
74452
|
dimColor: true,
|
|
74093
74453
|
children: " - Press (i) to install Powerline fonts"
|
|
74094
74454
|
}, undefined, false, undefined, this)
|
|
@@ -74097,62 +74457,62 @@ var PowerlineSetup = ({
|
|
|
74097
74457
|
]
|
|
74098
74458
|
}, undefined, true, undefined, this)
|
|
74099
74459
|
}, undefined, false, undefined, this),
|
|
74100
|
-
/* @__PURE__ */
|
|
74460
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
|
|
74101
74461
|
children: [
|
|
74102
|
-
/* @__PURE__ */
|
|
74462
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
74103
74463
|
children: " Powerline Mode: "
|
|
74104
74464
|
}, undefined, false, undefined, this),
|
|
74105
|
-
/* @__PURE__ */
|
|
74465
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
74106
74466
|
color: powerlineConfig.enabled ? "green" : "red",
|
|
74107
74467
|
children: powerlineConfig.enabled ? "✓ Enabled " : "✗ Disabled "
|
|
74108
74468
|
}, undefined, false, undefined, this),
|
|
74109
|
-
/* @__PURE__ */
|
|
74469
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
74110
74470
|
dimColor: true,
|
|
74111
74471
|
children: " - Press (t) to toggle"
|
|
74112
74472
|
}, undefined, false, undefined, this)
|
|
74113
74473
|
]
|
|
74114
74474
|
}, undefined, true, undefined, this),
|
|
74115
|
-
powerlineConfig.enabled && /* @__PURE__ */
|
|
74475
|
+
powerlineConfig.enabled && /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(jsx_dev_runtime22.Fragment, {
|
|
74116
74476
|
children: [
|
|
74117
|
-
/* @__PURE__ */
|
|
74477
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
|
|
74118
74478
|
children: [
|
|
74119
|
-
/* @__PURE__ */
|
|
74479
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
74120
74480
|
children: " Align Widgets: "
|
|
74121
74481
|
}, undefined, false, undefined, this),
|
|
74122
|
-
/* @__PURE__ */
|
|
74482
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
74123
74483
|
color: powerlineConfig.autoAlign ? "green" : "red",
|
|
74124
74484
|
children: powerlineConfig.autoAlign ? "✓ Enabled " : "✗ Disabled "
|
|
74125
74485
|
}, undefined, false, undefined, this),
|
|
74126
|
-
/* @__PURE__ */
|
|
74486
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
74127
74487
|
dimColor: true,
|
|
74128
74488
|
children: " - Press (a) to toggle"
|
|
74129
74489
|
}, undefined, false, undefined, this)
|
|
74130
74490
|
]
|
|
74131
74491
|
}, undefined, true, undefined, this),
|
|
74132
|
-
/* @__PURE__ */
|
|
74492
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
|
|
74133
74493
|
children: [
|
|
74134
|
-
/* @__PURE__ */
|
|
74494
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
74135
74495
|
children: " Continue Theme: "
|
|
74136
74496
|
}, undefined, false, undefined, this),
|
|
74137
|
-
/* @__PURE__ */
|
|
74497
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
74138
74498
|
color: powerlineConfig.continueThemeAcrossLines ? "green" : "red",
|
|
74139
74499
|
children: powerlineConfig.continueThemeAcrossLines ? "✓ Enabled " : "✗ Disabled "
|
|
74140
74500
|
}, undefined, false, undefined, this),
|
|
74141
|
-
/* @__PURE__ */
|
|
74501
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
74142
74502
|
dimColor: true,
|
|
74143
74503
|
children: " - Press (c) to toggle"
|
|
74144
74504
|
}, undefined, false, undefined, this)
|
|
74145
74505
|
]
|
|
74146
74506
|
}, undefined, true, undefined, this),
|
|
74147
|
-
/* @__PURE__ */
|
|
74507
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
|
|
74148
74508
|
flexDirection: "column",
|
|
74149
74509
|
marginTop: 1,
|
|
74150
74510
|
children: [
|
|
74151
|
-
/* @__PURE__ */
|
|
74511
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
74152
74512
|
dimColor: true,
|
|
74153
74513
|
children: "When enabled, global overrides are disabled and powerline separators are used"
|
|
74154
74514
|
}, undefined, false, undefined, this),
|
|
74155
|
-
/* @__PURE__ */
|
|
74515
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
74156
74516
|
dimColor: true,
|
|
74157
74517
|
children: "Continue Theme keeps the Powerline color sequence running across lines"
|
|
74158
74518
|
}, undefined, false, undefined, this)
|
|
@@ -74160,14 +74520,14 @@ var PowerlineSetup = ({
|
|
|
74160
74520
|
}, undefined, true, undefined, this)
|
|
74161
74521
|
]
|
|
74162
74522
|
}, undefined, true, undefined, this),
|
|
74163
|
-
!powerlineConfig.enabled && /* @__PURE__ */
|
|
74523
|
+
!powerlineConfig.enabled && /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
|
|
74164
74524
|
marginTop: 1,
|
|
74165
|
-
children: /* @__PURE__ */
|
|
74525
|
+
children: /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
|
|
74166
74526
|
dimColor: true,
|
|
74167
74527
|
children: "Enable Powerline mode to configure separators, caps, and themes."
|
|
74168
74528
|
}, undefined, false, undefined, this)
|
|
74169
74529
|
}, undefined, false, undefined, this),
|
|
74170
|
-
/* @__PURE__ */
|
|
74530
|
+
/* @__PURE__ */ jsx_dev_runtime22.jsxDEV(List, {
|
|
74171
74531
|
marginTop: 1,
|
|
74172
74532
|
items: buildPowerlineSetupMenuItems(powerlineConfig),
|
|
74173
74533
|
onSelect: (value) => {
|
|
@@ -74191,8 +74551,8 @@ var PowerlineSetup = ({
|
|
|
74191
74551
|
// src/tui/components/RefreshIntervalMenu.tsx
|
|
74192
74552
|
init_input_guards();
|
|
74193
74553
|
await init_build2();
|
|
74194
|
-
var
|
|
74195
|
-
var
|
|
74554
|
+
var import_react48 = __toESM(require_react(), 1);
|
|
74555
|
+
var jsx_dev_runtime23 = __toESM(require_jsx_dev_runtime(), 1);
|
|
74196
74556
|
function getRefreshInputValue(interval) {
|
|
74197
74557
|
return interval === null ? "" : String(interval);
|
|
74198
74558
|
}
|
|
@@ -74238,9 +74598,9 @@ var RefreshIntervalMenu = ({
|
|
|
74238
74598
|
onUpdate,
|
|
74239
74599
|
onBack
|
|
74240
74600
|
}) => {
|
|
74241
|
-
const [editingRefreshInterval, setEditingRefreshInterval] =
|
|
74242
|
-
const [refreshInput, setRefreshInput] =
|
|
74243
|
-
const [validationError, setValidationError] =
|
|
74601
|
+
const [editingRefreshInterval, setEditingRefreshInterval] = import_react48.useState(false);
|
|
74602
|
+
const [refreshInput, setRefreshInput] = import_react48.useState(() => getRefreshInputValue(currentInterval));
|
|
74603
|
+
const [validationError, setValidationError] = import_react48.useState(null);
|
|
74244
74604
|
use_input_default((input, key) => {
|
|
74245
74605
|
if (editingRefreshInterval) {
|
|
74246
74606
|
if (key.return) {
|
|
@@ -74279,22 +74639,22 @@ var RefreshIntervalMenu = ({
|
|
|
74279
74639
|
onBack();
|
|
74280
74640
|
}
|
|
74281
74641
|
});
|
|
74282
|
-
return /* @__PURE__ */
|
|
74642
|
+
return /* @__PURE__ */ jsx_dev_runtime23.jsxDEV(Box_default, {
|
|
74283
74643
|
flexDirection: "column",
|
|
74284
74644
|
children: [
|
|
74285
|
-
/* @__PURE__ */
|
|
74645
|
+
/* @__PURE__ */ jsx_dev_runtime23.jsxDEV(Text, {
|
|
74286
74646
|
bold: true,
|
|
74287
74647
|
children: "Configure Status Line"
|
|
74288
74648
|
}, undefined, false, undefined, this),
|
|
74289
|
-
/* @__PURE__ */
|
|
74649
|
+
/* @__PURE__ */ jsx_dev_runtime23.jsxDEV(Text, {
|
|
74290
74650
|
color: "white",
|
|
74291
74651
|
children: "Configure Claude Code status line settings"
|
|
74292
74652
|
}, undefined, false, undefined, this),
|
|
74293
|
-
editingRefreshInterval ? /* @__PURE__ */
|
|
74653
|
+
editingRefreshInterval ? /* @__PURE__ */ jsx_dev_runtime23.jsxDEV(Box_default, {
|
|
74294
74654
|
marginTop: 1,
|
|
74295
74655
|
flexDirection: "column",
|
|
74296
74656
|
children: [
|
|
74297
|
-
/* @__PURE__ */
|
|
74657
|
+
/* @__PURE__ */ jsx_dev_runtime23.jsxDEV(Text, {
|
|
74298
74658
|
children: [
|
|
74299
74659
|
"Enter refresh interval in seconds (1-60):",
|
|
74300
74660
|
" ",
|
|
@@ -74302,15 +74662,15 @@ var RefreshIntervalMenu = ({
|
|
|
74302
74662
|
refreshInput.length > 0 ? "s" : ""
|
|
74303
74663
|
]
|
|
74304
74664
|
}, undefined, true, undefined, this),
|
|
74305
|
-
validationError ? /* @__PURE__ */
|
|
74665
|
+
validationError ? /* @__PURE__ */ jsx_dev_runtime23.jsxDEV(Text, {
|
|
74306
74666
|
color: "red",
|
|
74307
74667
|
children: validationError
|
|
74308
|
-
}, undefined, false, undefined, this) : /* @__PURE__ */
|
|
74668
|
+
}, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime23.jsxDEV(Text, {
|
|
74309
74669
|
dimColor: true,
|
|
74310
74670
|
children: "Press Enter to confirm, ESC to cancel. Leave empty to remove."
|
|
74311
74671
|
}, undefined, false, undefined, this)
|
|
74312
74672
|
]
|
|
74313
|
-
}, undefined, true, undefined, this) : /* @__PURE__ */
|
|
74673
|
+
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime23.jsxDEV(List, {
|
|
74314
74674
|
marginTop: 1,
|
|
74315
74675
|
items: buildConfigureStatusLineItems(currentInterval, supportsRefreshInterval),
|
|
74316
74676
|
onSelect: (value) => {
|
|
@@ -74330,7 +74690,7 @@ var RefreshIntervalMenu = ({
|
|
|
74330
74690
|
init_source();
|
|
74331
74691
|
init_ansi();
|
|
74332
74692
|
await init_build2();
|
|
74333
|
-
var
|
|
74693
|
+
var import_react49 = __toESM(require_react(), 1);
|
|
74334
74694
|
|
|
74335
74695
|
// src/utils/powerline-theme-index.ts
|
|
74336
74696
|
function countPowerlineThemeSlots(entries) {
|
|
@@ -74364,7 +74724,7 @@ function advanceGlobalSeparatorIndex(currentIndex, widgets) {
|
|
|
74364
74724
|
}
|
|
74365
74725
|
|
|
74366
74726
|
// src/tui/components/StatusLinePreview.tsx
|
|
74367
|
-
var
|
|
74727
|
+
var jsx_dev_runtime24 = __toESM(require_jsx_dev_runtime(), 1);
|
|
74368
74728
|
var renderSingleLine = (widgets, terminalWidth, settings, lineIndex, globalSeparatorIndex, globalPowerlineThemeIndex, preRenderedWidgets, preCalculatedMaxWidths) => {
|
|
74369
74729
|
const context = {
|
|
74370
74730
|
terminalWidth,
|
|
@@ -74383,7 +74743,7 @@ function preparePreviewLineForTerminal(line, terminalWidth) {
|
|
|
74383
74743
|
return truncateStyledText(printableLine, availableWidth, { ellipsis: true });
|
|
74384
74744
|
}
|
|
74385
74745
|
var StatusLinePreview = ({ lines, terminalWidth, settings, onTruncationChange }) => {
|
|
74386
|
-
const { renderedLines, anyTruncated } =
|
|
74746
|
+
const { renderedLines, anyTruncated } = import_react49.default.useMemo(() => {
|
|
74387
74747
|
if (!settings)
|
|
74388
74748
|
return { renderedLines: [], anyTruncated: false };
|
|
74389
74749
|
const preRenderedLines = preRenderAllWidgets(lines, settings, { terminalWidth, isPreview: true, minimalist: settings.minimalistMode });
|
|
@@ -74409,29 +74769,29 @@ var StatusLinePreview = ({ lines, terminalWidth, settings, onTruncationChange })
|
|
|
74409
74769
|
}
|
|
74410
74770
|
return { renderedLines: result2, anyTruncated: truncated };
|
|
74411
74771
|
}, [lines, terminalWidth, settings]);
|
|
74412
|
-
|
|
74772
|
+
import_react49.default.useEffect(() => {
|
|
74413
74773
|
onTruncationChange?.(anyTruncated);
|
|
74414
74774
|
}, [anyTruncated, onTruncationChange]);
|
|
74415
|
-
return /* @__PURE__ */
|
|
74775
|
+
return /* @__PURE__ */ jsx_dev_runtime24.jsxDEV(Box_default, {
|
|
74416
74776
|
flexDirection: "column",
|
|
74417
74777
|
children: [
|
|
74418
|
-
/* @__PURE__ */
|
|
74778
|
+
/* @__PURE__ */ jsx_dev_runtime24.jsxDEV(Box_default, {
|
|
74419
74779
|
borderStyle: "round",
|
|
74420
74780
|
borderColor: "gray",
|
|
74421
74781
|
borderDimColor: true,
|
|
74422
74782
|
width: "100%",
|
|
74423
74783
|
paddingLeft: 1,
|
|
74424
|
-
children: /* @__PURE__ */
|
|
74784
|
+
children: /* @__PURE__ */ jsx_dev_runtime24.jsxDEV(Text, {
|
|
74425
74785
|
children: [
|
|
74426
74786
|
">",
|
|
74427
|
-
/* @__PURE__ */
|
|
74787
|
+
/* @__PURE__ */ jsx_dev_runtime24.jsxDEV(Text, {
|
|
74428
74788
|
dimColor: true,
|
|
74429
74789
|
children: " Preview (ctrl+s to save configuration at any time)"
|
|
74430
74790
|
}, undefined, false, undefined, this)
|
|
74431
74791
|
]
|
|
74432
74792
|
}, undefined, true, undefined, this)
|
|
74433
74793
|
}, undefined, false, undefined, this),
|
|
74434
|
-
renderedLines.map((line, index) => /* @__PURE__ */
|
|
74794
|
+
renderedLines.map((line, index) => /* @__PURE__ */ jsx_dev_runtime24.jsxDEV(Text, {
|
|
74435
74795
|
wrap: "truncate",
|
|
74436
74796
|
children: [
|
|
74437
74797
|
PREVIEW_LINE_INDENT,
|
|
@@ -74445,7 +74805,7 @@ var StatusLinePreview = ({ lines, terminalWidth, settings, onTruncationChange })
|
|
|
74445
74805
|
// src/tui/components/TerminalOptionsMenu.tsx
|
|
74446
74806
|
init_source();
|
|
74447
74807
|
await init_build2();
|
|
74448
|
-
var
|
|
74808
|
+
var import_react50 = __toESM(require_react(), 1);
|
|
74449
74809
|
|
|
74450
74810
|
// src/utils/color-sanitize.ts
|
|
74451
74811
|
await init_widgets2();
|
|
@@ -74500,7 +74860,7 @@ function sanitizeLinesForColorLevel(lines, nextLevel) {
|
|
|
74500
74860
|
}
|
|
74501
74861
|
|
|
74502
74862
|
// src/tui/components/TerminalOptionsMenu.tsx
|
|
74503
|
-
var
|
|
74863
|
+
var jsx_dev_runtime25 = __toESM(require_jsx_dev_runtime(), 1);
|
|
74504
74864
|
function getNextColorLevel(level) {
|
|
74505
74865
|
return (level + 1) % 4;
|
|
74506
74866
|
}
|
|
@@ -74534,8 +74894,8 @@ var TerminalOptionsMenu = ({
|
|
|
74534
74894
|
onUpdate,
|
|
74535
74895
|
onBack
|
|
74536
74896
|
}) => {
|
|
74537
|
-
const [showColorWarning, setShowColorWarning] =
|
|
74538
|
-
const [pendingColorLevel, setPendingColorLevel] =
|
|
74897
|
+
const [showColorWarning, setShowColorWarning] = import_react50.useState(false);
|
|
74898
|
+
const [pendingColorLevel, setPendingColorLevel] = import_react50.useState(null);
|
|
74539
74899
|
const handleSelect = (value) => {
|
|
74540
74900
|
if (value === "back") {
|
|
74541
74901
|
onBack();
|
|
@@ -74583,27 +74943,27 @@ var TerminalOptionsMenu = ({
|
|
|
74583
74943
|
onBack();
|
|
74584
74944
|
}
|
|
74585
74945
|
});
|
|
74586
|
-
return /* @__PURE__ */
|
|
74946
|
+
return /* @__PURE__ */ jsx_dev_runtime25.jsxDEV(Box_default, {
|
|
74587
74947
|
flexDirection: "column",
|
|
74588
74948
|
children: [
|
|
74589
|
-
/* @__PURE__ */
|
|
74949
|
+
/* @__PURE__ */ jsx_dev_runtime25.jsxDEV(Text, {
|
|
74590
74950
|
bold: true,
|
|
74591
74951
|
children: "Terminal Options"
|
|
74592
74952
|
}, undefined, false, undefined, this),
|
|
74593
|
-
showColorWarning ? /* @__PURE__ */
|
|
74953
|
+
showColorWarning ? /* @__PURE__ */ jsx_dev_runtime25.jsxDEV(Box_default, {
|
|
74594
74954
|
flexDirection: "column",
|
|
74595
74955
|
marginTop: 1,
|
|
74596
74956
|
children: [
|
|
74597
|
-
/* @__PURE__ */
|
|
74957
|
+
/* @__PURE__ */ jsx_dev_runtime25.jsxDEV(Text, {
|
|
74598
74958
|
color: "yellow",
|
|
74599
74959
|
children: "⚠ Warning: Custom colors detected!"
|
|
74600
74960
|
}, undefined, false, undefined, this),
|
|
74601
|
-
/* @__PURE__ */
|
|
74961
|
+
/* @__PURE__ */ jsx_dev_runtime25.jsxDEV(Text, {
|
|
74602
74962
|
children: "Switching color modes will reset custom ansi256 or hex colors to defaults."
|
|
74603
74963
|
}, undefined, false, undefined, this),
|
|
74604
|
-
/* @__PURE__ */
|
|
74964
|
+
/* @__PURE__ */ jsx_dev_runtime25.jsxDEV(Box_default, {
|
|
74605
74965
|
marginTop: 1,
|
|
74606
|
-
children: /* @__PURE__ */
|
|
74966
|
+
children: /* @__PURE__ */ jsx_dev_runtime25.jsxDEV(ConfirmDialog, {
|
|
74607
74967
|
message: "Continue?",
|
|
74608
74968
|
onConfirm: handleColorConfirm,
|
|
74609
74969
|
onCancel: handleColorCancel,
|
|
@@ -74611,13 +74971,13 @@ var TerminalOptionsMenu = ({
|
|
|
74611
74971
|
}, undefined, false, undefined, this)
|
|
74612
74972
|
}, undefined, false, undefined, this)
|
|
74613
74973
|
]
|
|
74614
|
-
}, undefined, true, undefined, this) : /* @__PURE__ */
|
|
74974
|
+
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime25.jsxDEV(jsx_dev_runtime25.Fragment, {
|
|
74615
74975
|
children: [
|
|
74616
|
-
/* @__PURE__ */
|
|
74976
|
+
/* @__PURE__ */ jsx_dev_runtime25.jsxDEV(Text, {
|
|
74617
74977
|
color: "white",
|
|
74618
74978
|
children: "Configure terminal-specific settings for optimal display"
|
|
74619
74979
|
}, undefined, false, undefined, this),
|
|
74620
|
-
/* @__PURE__ */
|
|
74980
|
+
/* @__PURE__ */ jsx_dev_runtime25.jsxDEV(List, {
|
|
74621
74981
|
marginTop: 1,
|
|
74622
74982
|
items: buildTerminalOptionsItems(settings.colorLevel),
|
|
74623
74983
|
onSelect: handleSelect,
|
|
@@ -74646,8 +75006,8 @@ var getColorLevelLabel = (level) => {
|
|
|
74646
75006
|
// src/tui/components/TerminalWidthMenu.tsx
|
|
74647
75007
|
init_input_guards();
|
|
74648
75008
|
await init_build2();
|
|
74649
|
-
var
|
|
74650
|
-
var
|
|
75009
|
+
var import_react51 = __toESM(require_react(), 1);
|
|
75010
|
+
var jsx_dev_runtime26 = __toESM(require_jsx_dev_runtime(), 1);
|
|
74651
75011
|
var TERMINAL_WIDTH_OPTIONS = ["full", "full-minus-40", "full-until-compact"];
|
|
74652
75012
|
function getTerminalWidthSelectionIndex(selectedOption) {
|
|
74653
75013
|
const selectedIndex = TERMINAL_WIDTH_OPTIONS.indexOf(selectedOption);
|
|
@@ -74694,11 +75054,11 @@ var TerminalWidthMenu = ({
|
|
|
74694
75054
|
onUpdate,
|
|
74695
75055
|
onBack
|
|
74696
75056
|
}) => {
|
|
74697
|
-
const [selectedOption, setSelectedOption] =
|
|
74698
|
-
const [compactThreshold, setCompactThreshold] =
|
|
74699
|
-
const [editingThreshold, setEditingThreshold] =
|
|
74700
|
-
const [thresholdInput, setThresholdInput] =
|
|
74701
|
-
const [validationError, setValidationError] =
|
|
75057
|
+
const [selectedOption, setSelectedOption] = import_react51.useState(settings.flexMode);
|
|
75058
|
+
const [compactThreshold, setCompactThreshold] = import_react51.useState(settings.compactThreshold);
|
|
75059
|
+
const [editingThreshold, setEditingThreshold] = import_react51.useState(false);
|
|
75060
|
+
const [thresholdInput, setThresholdInput] = import_react51.useState(String(settings.compactThreshold));
|
|
75061
|
+
const [validationError, setValidationError] = import_react51.useState(null);
|
|
74702
75062
|
use_input_default((input, key) => {
|
|
74703
75063
|
if (editingThreshold) {
|
|
74704
75064
|
if (key.return) {
|
|
@@ -74737,27 +75097,27 @@ var TerminalWidthMenu = ({
|
|
|
74737
75097
|
onBack();
|
|
74738
75098
|
}
|
|
74739
75099
|
});
|
|
74740
|
-
return /* @__PURE__ */
|
|
75100
|
+
return /* @__PURE__ */ jsx_dev_runtime26.jsxDEV(Box_default, {
|
|
74741
75101
|
flexDirection: "column",
|
|
74742
75102
|
children: [
|
|
74743
|
-
/* @__PURE__ */
|
|
75103
|
+
/* @__PURE__ */ jsx_dev_runtime26.jsxDEV(Text, {
|
|
74744
75104
|
bold: true,
|
|
74745
75105
|
children: "Terminal Width"
|
|
74746
75106
|
}, undefined, false, undefined, this),
|
|
74747
|
-
/* @__PURE__ */
|
|
75107
|
+
/* @__PURE__ */ jsx_dev_runtime26.jsxDEV(Text, {
|
|
74748
75108
|
color: "white",
|
|
74749
75109
|
children: "These settings affect where long lines are truncated, and where right-alignment occurs when using flex separators"
|
|
74750
75110
|
}, undefined, false, undefined, this),
|
|
74751
|
-
/* @__PURE__ */
|
|
75111
|
+
/* @__PURE__ */ jsx_dev_runtime26.jsxDEV(Text, {
|
|
74752
75112
|
dimColor: true,
|
|
74753
75113
|
wrap: "wrap",
|
|
74754
75114
|
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"
|
|
74755
75115
|
}, undefined, false, undefined, this),
|
|
74756
|
-
editingThreshold ? /* @__PURE__ */
|
|
75116
|
+
editingThreshold ? /* @__PURE__ */ jsx_dev_runtime26.jsxDEV(Box_default, {
|
|
74757
75117
|
marginTop: 1,
|
|
74758
75118
|
flexDirection: "column",
|
|
74759
75119
|
children: [
|
|
74760
|
-
/* @__PURE__ */
|
|
75120
|
+
/* @__PURE__ */ jsx_dev_runtime26.jsxDEV(Text, {
|
|
74761
75121
|
children: [
|
|
74762
75122
|
"Enter compact threshold (1-99):",
|
|
74763
75123
|
" ",
|
|
@@ -74765,15 +75125,15 @@ var TerminalWidthMenu = ({
|
|
|
74765
75125
|
"%"
|
|
74766
75126
|
]
|
|
74767
75127
|
}, undefined, true, undefined, this),
|
|
74768
|
-
validationError ? /* @__PURE__ */
|
|
75128
|
+
validationError ? /* @__PURE__ */ jsx_dev_runtime26.jsxDEV(Text, {
|
|
74769
75129
|
color: "red",
|
|
74770
75130
|
children: validationError
|
|
74771
|
-
}, undefined, false, undefined, this) : /* @__PURE__ */
|
|
75131
|
+
}, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime26.jsxDEV(Text, {
|
|
74772
75132
|
dimColor: true,
|
|
74773
75133
|
children: "Press Enter to confirm, ESC to cancel"
|
|
74774
75134
|
}, undefined, false, undefined, this)
|
|
74775
75135
|
]
|
|
74776
|
-
}, undefined, true, undefined, this) : /* @__PURE__ */
|
|
75136
|
+
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime26.jsxDEV(List, {
|
|
74777
75137
|
marginTop: 1,
|
|
74778
75138
|
items: buildTerminalWidthItems(selectedOption, compactThreshold),
|
|
74779
75139
|
initialSelection: getTerminalWidthSelectionIndex(selectedOption),
|
|
@@ -74800,7 +75160,7 @@ var TerminalWidthMenu = ({
|
|
|
74800
75160
|
};
|
|
74801
75161
|
// src/tui/components/UpdateCheckerMenu.tsx
|
|
74802
75162
|
await init_build2();
|
|
74803
|
-
var
|
|
75163
|
+
var jsx_dev_runtime27 = __toESM(require_jsx_dev_runtime(), 1);
|
|
74804
75164
|
function getInstallationLabel2(result2) {
|
|
74805
75165
|
const { installation } = result2;
|
|
74806
75166
|
if (installation.method === "auto-update") {
|
|
@@ -74851,16 +75211,16 @@ var UpdateCheckerMenu = ({
|
|
|
74851
75211
|
}
|
|
74852
75212
|
});
|
|
74853
75213
|
if (state.status === "checking") {
|
|
74854
|
-
return /* @__PURE__ */
|
|
75214
|
+
return /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Box_default, {
|
|
74855
75215
|
flexDirection: "column",
|
|
74856
75216
|
children: [
|
|
74857
|
-
/* @__PURE__ */
|
|
75217
|
+
/* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Text, {
|
|
74858
75218
|
bold: true,
|
|
74859
75219
|
children: "Check for Updates"
|
|
74860
75220
|
}, undefined, false, undefined, this),
|
|
74861
|
-
/* @__PURE__ */
|
|
75221
|
+
/* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Box_default, {
|
|
74862
75222
|
marginTop: 1,
|
|
74863
|
-
children: /* @__PURE__ */
|
|
75223
|
+
children: /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Text, {
|
|
74864
75224
|
dimColor: true,
|
|
74865
75225
|
children: "Checking npm registry..."
|
|
74866
75226
|
}, undefined, false, undefined, this)
|
|
@@ -74868,32 +75228,32 @@ var UpdateCheckerMenu = ({
|
|
|
74868
75228
|
]
|
|
74869
75229
|
}, undefined, true, undefined, this);
|
|
74870
75230
|
}
|
|
74871
|
-
return /* @__PURE__ */
|
|
75231
|
+
return /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Box_default, {
|
|
74872
75232
|
flexDirection: "column",
|
|
74873
75233
|
children: [
|
|
74874
|
-
/* @__PURE__ */
|
|
75234
|
+
/* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Text, {
|
|
74875
75235
|
bold: true,
|
|
74876
75236
|
children: "Check for Updates"
|
|
74877
75237
|
}, undefined, false, undefined, this),
|
|
74878
|
-
/* @__PURE__ */
|
|
75238
|
+
/* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Box_default, {
|
|
74879
75239
|
marginTop: 1,
|
|
74880
75240
|
flexDirection: "column",
|
|
74881
75241
|
children: [
|
|
74882
|
-
/* @__PURE__ */
|
|
75242
|
+
/* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Text, {
|
|
74883
75243
|
children: [
|
|
74884
75244
|
"Current:",
|
|
74885
75245
|
" ",
|
|
74886
75246
|
state.currentVersion
|
|
74887
75247
|
]
|
|
74888
75248
|
}, undefined, true, undefined, this),
|
|
74889
|
-
state.status !== "registry-failure" && /* @__PURE__ */
|
|
75249
|
+
state.status !== "registry-failure" && /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Text, {
|
|
74890
75250
|
children: [
|
|
74891
75251
|
"Latest:",
|
|
74892
75252
|
" ",
|
|
74893
75253
|
state.latestVersion
|
|
74894
75254
|
]
|
|
74895
75255
|
}, undefined, true, undefined, this),
|
|
74896
|
-
/* @__PURE__ */
|
|
75256
|
+
/* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Text, {
|
|
74897
75257
|
children: [
|
|
74898
75258
|
"Install:",
|
|
74899
75259
|
" ",
|
|
@@ -74902,11 +75262,11 @@ var UpdateCheckerMenu = ({
|
|
|
74902
75262
|
}, undefined, true, undefined, this)
|
|
74903
75263
|
]
|
|
74904
75264
|
}, undefined, true, undefined, this),
|
|
74905
|
-
state.status === "registry-failure" && /* @__PURE__ */
|
|
75265
|
+
state.status === "registry-failure" && /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(jsx_dev_runtime27.Fragment, {
|
|
74906
75266
|
children: [
|
|
74907
|
-
/* @__PURE__ */
|
|
75267
|
+
/* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Box_default, {
|
|
74908
75268
|
marginTop: 1,
|
|
74909
|
-
children: /* @__PURE__ */
|
|
75269
|
+
children: /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Text, {
|
|
74910
75270
|
color: "red",
|
|
74911
75271
|
children: [
|
|
74912
75272
|
"Registry check failed:",
|
|
@@ -74915,7 +75275,7 @@ var UpdateCheckerMenu = ({
|
|
|
74915
75275
|
]
|
|
74916
75276
|
}, undefined, true, undefined, this)
|
|
74917
75277
|
}, undefined, false, undefined, this),
|
|
74918
|
-
/* @__PURE__ */
|
|
75278
|
+
/* @__PURE__ */ jsx_dev_runtime27.jsxDEV(List, {
|
|
74919
75279
|
marginTop: 1,
|
|
74920
75280
|
items: [{ label: "Check again", value: "refresh" }],
|
|
74921
75281
|
onSelect: (value) => {
|
|
@@ -74929,16 +75289,16 @@ var UpdateCheckerMenu = ({
|
|
|
74929
75289
|
}, undefined, false, undefined, this)
|
|
74930
75290
|
]
|
|
74931
75291
|
}, undefined, true, undefined, this),
|
|
74932
|
-
state.status === "up-to-date" && /* @__PURE__ */
|
|
75292
|
+
state.status === "up-to-date" && /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(jsx_dev_runtime27.Fragment, {
|
|
74933
75293
|
children: [
|
|
74934
|
-
/* @__PURE__ */
|
|
75294
|
+
/* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Box_default, {
|
|
74935
75295
|
marginTop: 1,
|
|
74936
|
-
children: /* @__PURE__ */
|
|
75296
|
+
children: /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Text, {
|
|
74937
75297
|
color: "green",
|
|
74938
75298
|
children: "ccstatusline is up to date."
|
|
74939
75299
|
}, undefined, false, undefined, this)
|
|
74940
75300
|
}, undefined, false, undefined, this),
|
|
74941
|
-
/* @__PURE__ */
|
|
75301
|
+
/* @__PURE__ */ jsx_dev_runtime27.jsxDEV(List, {
|
|
74942
75302
|
marginTop: 1,
|
|
74943
75303
|
items: [{ label: "Check again", value: "refresh" }],
|
|
74944
75304
|
onSelect: (value) => {
|
|
@@ -74952,26 +75312,26 @@ var UpdateCheckerMenu = ({
|
|
|
74952
75312
|
}, undefined, false, undefined, this)
|
|
74953
75313
|
]
|
|
74954
75314
|
}, undefined, true, undefined, this),
|
|
74955
|
-
state.status === "update-available" && /* @__PURE__ */
|
|
75315
|
+
state.status === "update-available" && /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(jsx_dev_runtime27.Fragment, {
|
|
74956
75316
|
children: [
|
|
74957
|
-
/* @__PURE__ */
|
|
75317
|
+
/* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Box_default, {
|
|
74958
75318
|
marginTop: 1,
|
|
74959
|
-
children: /* @__PURE__ */
|
|
75319
|
+
children: /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Text, {
|
|
74960
75320
|
color: "yellow",
|
|
74961
75321
|
children: "An update is available."
|
|
74962
75322
|
}, undefined, false, undefined, this)
|
|
74963
75323
|
}, undefined, false, undefined, this),
|
|
74964
|
-
state.installation.method === "auto-update" && /* @__PURE__ */
|
|
75324
|
+
state.installation.method === "auto-update" && /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Box_default, {
|
|
74965
75325
|
marginTop: 1,
|
|
74966
75326
|
flexDirection: "column",
|
|
74967
75327
|
children: [
|
|
74968
|
-
/* @__PURE__ */
|
|
75328
|
+
/* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Text, {
|
|
74969
75329
|
children: "No manual hook change is needed. Claude Code already runs @latest."
|
|
74970
75330
|
}, undefined, false, undefined, this),
|
|
74971
|
-
/* @__PURE__ */
|
|
75331
|
+
/* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Text, {
|
|
74972
75332
|
children: "The next @latest invocation will resolve the latest package."
|
|
74973
75333
|
}, undefined, false, undefined, this),
|
|
74974
|
-
/* @__PURE__ */
|
|
75334
|
+
/* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Text, {
|
|
74975
75335
|
children: [
|
|
74976
75336
|
"Launch command for a fresh TUI:",
|
|
74977
75337
|
" ",
|
|
@@ -74980,7 +75340,7 @@ var UpdateCheckerMenu = ({
|
|
|
74980
75340
|
}, undefined, true, undefined, this)
|
|
74981
75341
|
]
|
|
74982
75342
|
}, undefined, true, undefined, this),
|
|
74983
|
-
state.actions.length > 0 && /* @__PURE__ */
|
|
75343
|
+
state.actions.length > 0 && /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(List, {
|
|
74984
75344
|
marginTop: 1,
|
|
74985
75345
|
items: getActionItems(state.actions),
|
|
74986
75346
|
onSelect: (value) => {
|
|
@@ -74996,7 +75356,7 @@ var UpdateCheckerMenu = ({
|
|
|
74996
75356
|
},
|
|
74997
75357
|
showBackButton: true
|
|
74998
75358
|
}, undefined, false, undefined, this),
|
|
74999
|
-
state.actions.length === 0 && /* @__PURE__ */
|
|
75359
|
+
state.actions.length === 0 && /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(List, {
|
|
75000
75360
|
marginTop: 1,
|
|
75001
75361
|
items: [{ label: "Check again", value: "refresh" }],
|
|
75002
75362
|
onSelect: (value) => {
|
|
@@ -75014,7 +75374,7 @@ var UpdateCheckerMenu = ({
|
|
|
75014
75374
|
}, undefined, true, undefined, this);
|
|
75015
75375
|
};
|
|
75016
75376
|
// src/tui/App.tsx
|
|
75017
|
-
var
|
|
75377
|
+
var jsx_dev_runtime28 = __toESM(require_jsx_dev_runtime(), 1);
|
|
75018
75378
|
var GITHUB_REPO_URL = "https://github.com/sirmalloc/ccstatusline";
|
|
75019
75379
|
var NOTICE_ITEMS = [
|
|
75020
75380
|
{
|
|
@@ -75033,22 +75393,22 @@ var FlowNotice = ({
|
|
|
75033
75393
|
onContinue();
|
|
75034
75394
|
}
|
|
75035
75395
|
});
|
|
75036
|
-
return /* @__PURE__ */
|
|
75396
|
+
return /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Box_default, {
|
|
75037
75397
|
flexDirection: "column",
|
|
75038
75398
|
children: [
|
|
75039
|
-
/* @__PURE__ */
|
|
75399
|
+
/* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Text, {
|
|
75040
75400
|
bold: true,
|
|
75041
75401
|
children: title
|
|
75042
75402
|
}, undefined, false, undefined, this),
|
|
75043
|
-
/* @__PURE__ */
|
|
75403
|
+
/* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Box_default, {
|
|
75044
75404
|
marginTop: 1,
|
|
75045
|
-
children: /* @__PURE__ */
|
|
75405
|
+
children: /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Text, {
|
|
75046
75406
|
color,
|
|
75047
75407
|
wrap: "wrap",
|
|
75048
75408
|
children: message
|
|
75049
75409
|
}, undefined, false, undefined, this)
|
|
75050
75410
|
}, undefined, false, undefined, this),
|
|
75051
|
-
/* @__PURE__ */
|
|
75411
|
+
/* @__PURE__ */ jsx_dev_runtime28.jsxDEV(List, {
|
|
75052
75412
|
marginTop: 1,
|
|
75053
75413
|
items: NOTICE_ITEMS,
|
|
75054
75414
|
onSelect: () => {
|
|
@@ -75088,18 +75448,18 @@ var PinnedVersionMismatchScreen = ({
|
|
|
75088
75448
|
onExit();
|
|
75089
75449
|
}
|
|
75090
75450
|
});
|
|
75091
|
-
return /* @__PURE__ */
|
|
75451
|
+
return /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Box_default, {
|
|
75092
75452
|
flexDirection: "column",
|
|
75093
75453
|
children: [
|
|
75094
|
-
/* @__PURE__ */
|
|
75454
|
+
/* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Text, {
|
|
75095
75455
|
bold: true,
|
|
75096
75456
|
children: "Pinned Install Version Mismatch"
|
|
75097
75457
|
}, undefined, false, undefined, this),
|
|
75098
|
-
/* @__PURE__ */
|
|
75458
|
+
/* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Box_default, {
|
|
75099
75459
|
marginTop: 1,
|
|
75100
75460
|
flexDirection: "column",
|
|
75101
75461
|
children: [
|
|
75102
|
-
/* @__PURE__ */
|
|
75462
|
+
/* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Text, {
|
|
75103
75463
|
color: "yellow",
|
|
75104
75464
|
children: [
|
|
75105
75465
|
"Claude Code is pinned to ccstatusline v",
|
|
@@ -75109,17 +75469,17 @@ var PinnedVersionMismatchScreen = ({
|
|
|
75109
75469
|
"."
|
|
75110
75470
|
]
|
|
75111
75471
|
}, undefined, true, undefined, this),
|
|
75112
|
-
/* @__PURE__ */
|
|
75472
|
+
/* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Text, {
|
|
75113
75473
|
dimColor: true,
|
|
75114
75474
|
wrap: "wrap",
|
|
75115
75475
|
children: "To avoid writing config that the pinned runtime may not support, update the pinned global install or exit and relaunch the pinned version."
|
|
75116
75476
|
}, undefined, false, undefined, this)
|
|
75117
75477
|
]
|
|
75118
75478
|
}, undefined, true, undefined, this),
|
|
75119
|
-
/* @__PURE__ */
|
|
75479
|
+
/* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Box_default, {
|
|
75120
75480
|
marginTop: 1,
|
|
75121
75481
|
flexDirection: "column",
|
|
75122
|
-
children: /* @__PURE__ */
|
|
75482
|
+
children: /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Text, {
|
|
75123
75483
|
children: [
|
|
75124
75484
|
"Current pinned version:",
|
|
75125
75485
|
" ",
|
|
@@ -75127,7 +75487,7 @@ var PinnedVersionMismatchScreen = ({
|
|
|
75127
75487
|
]
|
|
75128
75488
|
}, undefined, true, undefined, this)
|
|
75129
75489
|
}, undefined, false, undefined, this),
|
|
75130
|
-
/* @__PURE__ */
|
|
75490
|
+
/* @__PURE__ */ jsx_dev_runtime28.jsxDEV(List, {
|
|
75131
75491
|
marginTop: 1,
|
|
75132
75492
|
items: getPinnedMismatchItems(mismatch, canRunPackageManager),
|
|
75133
75493
|
onSelect: (value) => {
|
|
@@ -75235,31 +75595,31 @@ function clearInstallMenuSelection(menuSelections) {
|
|
|
75235
75595
|
}
|
|
75236
75596
|
var App2 = () => {
|
|
75237
75597
|
const { exit } = use_app_default();
|
|
75238
|
-
const [settings, setSettings] =
|
|
75239
|
-
const [originalSettings, setOriginalSettings] =
|
|
75240
|
-
const [hasChanges, setHasChanges] =
|
|
75241
|
-
const [screen, setScreen] =
|
|
75242
|
-
const [selectedLine, setSelectedLine] =
|
|
75243
|
-
const [menuSelections, setMenuSelections] =
|
|
75244
|
-
const [confirmDialog, setConfirmDialog] =
|
|
75245
|
-
const [isClaudeInstalled, setIsClaudeInstalled] =
|
|
75246
|
-
const [terminalWidth, setTerminalWidth] =
|
|
75247
|
-
const [powerlineFontStatus, setPowerlineFontStatus] =
|
|
75248
|
-
const [installingFonts, setInstallingFonts] =
|
|
75249
|
-
const [fontInstallMessage, setFontInstallMessage] =
|
|
75250
|
-
const [existingStatusLine, setExistingStatusLine] =
|
|
75251
|
-
const [flashMessage, setFlashMessage] =
|
|
75252
|
-
const [previewIsTruncated, setPreviewIsTruncated] =
|
|
75253
|
-
const [currentRefreshInterval, setCurrentRefreshInterval] =
|
|
75254
|
-
const [supportsRefreshInterval] =
|
|
75255
|
-
const [commandAvailability] =
|
|
75256
|
-
const [updateCheckerState, setUpdateCheckerState] =
|
|
75257
|
-
const [flowNotice, setFlowNotice] =
|
|
75258
|
-
const [globalPackageInstallations, setGlobalPackageInstallations] =
|
|
75259
|
-
const [updatesReturnScreen, setUpdatesReturnScreen] =
|
|
75260
|
-
const [hasLoadedClaudeStatus, setHasLoadedClaudeStatus] =
|
|
75261
|
-
const [hasLoadedInstalledState, setHasLoadedInstalledState] =
|
|
75262
|
-
|
|
75598
|
+
const [settings, setSettings] = import_react52.useState(null);
|
|
75599
|
+
const [originalSettings, setOriginalSettings] = import_react52.useState(null);
|
|
75600
|
+
const [hasChanges, setHasChanges] = import_react52.useState(false);
|
|
75601
|
+
const [screen, setScreen] = import_react52.useState("main");
|
|
75602
|
+
const [selectedLine, setSelectedLine] = import_react52.useState(0);
|
|
75603
|
+
const [menuSelections, setMenuSelections] = import_react52.useState({});
|
|
75604
|
+
const [confirmDialog, setConfirmDialog] = import_react52.useState(null);
|
|
75605
|
+
const [isClaudeInstalled, setIsClaudeInstalled] = import_react52.useState(false);
|
|
75606
|
+
const [terminalWidth, setTerminalWidth] = import_react52.useState(process.stdout.columns || 80);
|
|
75607
|
+
const [powerlineFontStatus, setPowerlineFontStatus] = import_react52.useState({ installed: false });
|
|
75608
|
+
const [installingFonts, setInstallingFonts] = import_react52.useState(false);
|
|
75609
|
+
const [fontInstallMessage, setFontInstallMessage] = import_react52.useState(null);
|
|
75610
|
+
const [existingStatusLine, setExistingStatusLine] = import_react52.useState(null);
|
|
75611
|
+
const [flashMessage, setFlashMessage] = import_react52.useState(null);
|
|
75612
|
+
const [previewIsTruncated, setPreviewIsTruncated] = import_react52.useState(false);
|
|
75613
|
+
const [currentRefreshInterval, setCurrentRefreshInterval] = import_react52.useState(null);
|
|
75614
|
+
const [supportsRefreshInterval] = import_react52.useState(() => isClaudeCodeVersionAtLeast("2.1.97"));
|
|
75615
|
+
const [commandAvailability] = import_react52.useState(() => getPackageCommandAvailability());
|
|
75616
|
+
const [updateCheckerState, setUpdateCheckerState] = import_react52.useState({ status: "checking" });
|
|
75617
|
+
const [flowNotice, setFlowNotice] = import_react52.useState(null);
|
|
75618
|
+
const [globalPackageInstallations, setGlobalPackageInstallations] = import_react52.useState([]);
|
|
75619
|
+
const [updatesReturnScreen, setUpdatesReturnScreen] = import_react52.useState("main");
|
|
75620
|
+
const [hasLoadedClaudeStatus, setHasLoadedClaudeStatus] = import_react52.useState(false);
|
|
75621
|
+
const [hasLoadedInstalledState, setHasLoadedInstalledState] = import_react52.useState(false);
|
|
75622
|
+
import_react52.useEffect(() => {
|
|
75263
75623
|
loadClaudeStatusLineState().then((statusLineState) => {
|
|
75264
75624
|
setExistingStatusLine(statusLineState.existingStatusLine);
|
|
75265
75625
|
setCurrentRefreshInterval(statusLineState.refreshInterval);
|
|
@@ -75292,13 +75652,13 @@ var App2 = () => {
|
|
|
75292
75652
|
process.stdout.off("resize", handleResize);
|
|
75293
75653
|
};
|
|
75294
75654
|
}, []);
|
|
75295
|
-
|
|
75655
|
+
import_react52.useEffect(() => {
|
|
75296
75656
|
if (originalSettings) {
|
|
75297
75657
|
const hasAnyChanges = JSON.stringify(settings) !== JSON.stringify(originalSettings);
|
|
75298
75658
|
setHasChanges(hasAnyChanges);
|
|
75299
75659
|
}
|
|
75300
75660
|
}, [settings, originalSettings]);
|
|
75301
|
-
|
|
75661
|
+
import_react52.useEffect(() => {
|
|
75302
75662
|
if (flashMessage) {
|
|
75303
75663
|
const timer = setTimeout(() => {
|
|
75304
75664
|
setFlashMessage(null);
|
|
@@ -75331,8 +75691,8 @@ var App2 = () => {
|
|
|
75331
75691
|
})();
|
|
75332
75692
|
}
|
|
75333
75693
|
});
|
|
75334
|
-
const getGlobalResolutionWarning =
|
|
75335
|
-
const handleInstallSelection =
|
|
75694
|
+
const getGlobalResolutionWarning = import_react52.useCallback((packageManager) => inspectGlobalCommandResolution(packageManager).warning, []);
|
|
75695
|
+
const handleInstallSelection = import_react52.useCallback((selection) => {
|
|
75336
75696
|
getExistingStatusLine().then((existing) => {
|
|
75337
75697
|
const isAlreadyInstalled = isKnownCommand(existing ?? "");
|
|
75338
75698
|
const finalCommand = buildStatusLineCommand(selection.commandMode);
|
|
@@ -75417,11 +75777,11 @@ ${resolutionWarning}`,
|
|
|
75417
75777
|
setScreen("confirm");
|
|
75418
75778
|
});
|
|
75419
75779
|
}, [getGlobalResolutionWarning, supportsRefreshInterval]);
|
|
75420
|
-
const handleInstallMenuCancel =
|
|
75780
|
+
const handleInstallMenuCancel = import_react52.useCallback(() => {
|
|
75421
75781
|
setMenuSelections(clearInstallMenuSelection);
|
|
75422
75782
|
setScreen("main");
|
|
75423
75783
|
}, []);
|
|
75424
|
-
const handleUpdateCheck =
|
|
75784
|
+
const handleUpdateCheck = import_react52.useCallback(() => {
|
|
75425
75785
|
setUpdateCheckerState({ status: "checking" });
|
|
75426
75786
|
const installation = settings ? getCurrentInstallation(isClaudeInstalled, existingStatusLine, settings) : classifyInstallation(existingStatusLine, undefined);
|
|
75427
75787
|
const activeCommand = installation.method === "pinned" || installation.method === "self-managed" ? inspectActiveGlobalCommand({ commandAvailability }) : null;
|
|
@@ -75434,7 +75794,7 @@ ${resolutionWarning}`,
|
|
|
75434
75794
|
commandAvailability
|
|
75435
75795
|
}).then(setUpdateCheckerState);
|
|
75436
75796
|
}, [commandAvailability, existingStatusLine, isClaudeInstalled, settings]);
|
|
75437
|
-
const handleRunUpdateAction =
|
|
75797
|
+
const handleRunUpdateAction = import_react52.useCallback((action) => {
|
|
75438
75798
|
setConfirmDialog({
|
|
75439
75799
|
message: `Run global update command?
|
|
75440
75800
|
|
|
@@ -75484,7 +75844,7 @@ ${resolutionWarning}`,
|
|
|
75484
75844
|
setScreen("confirm");
|
|
75485
75845
|
}, [getGlobalResolutionWarning]);
|
|
75486
75846
|
if (!settings || !hasLoadedClaudeStatus || !hasLoadedInstalledState) {
|
|
75487
|
-
return /* @__PURE__ */
|
|
75847
|
+
return /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Text, {
|
|
75488
75848
|
children: "Loading settings..."
|
|
75489
75849
|
}, undefined, false, undefined, this);
|
|
75490
75850
|
}
|
|
@@ -75615,6 +75975,9 @@ ${resolutionWarning}`,
|
|
|
75615
75975
|
case "globalOverrides":
|
|
75616
75976
|
setScreen("globalOverrides");
|
|
75617
75977
|
break;
|
|
75978
|
+
case "offHours":
|
|
75979
|
+
setScreen("offHours");
|
|
75980
|
+
break;
|
|
75618
75981
|
case "powerline":
|
|
75619
75982
|
setScreen("powerline");
|
|
75620
75983
|
break;
|
|
@@ -75669,31 +76032,31 @@ ${GITHUB_REPO_URL}`,
|
|
|
75669
76032
|
}
|
|
75670
76033
|
};
|
|
75671
76034
|
if (pinnedVersionMismatch) {
|
|
75672
|
-
return /* @__PURE__ */
|
|
76035
|
+
return /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Box_default, {
|
|
75673
76036
|
flexDirection: "column",
|
|
75674
76037
|
children: [
|
|
75675
|
-
/* @__PURE__ */
|
|
76038
|
+
/* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Box_default, {
|
|
75676
76039
|
marginBottom: 1,
|
|
75677
76040
|
children: [
|
|
75678
|
-
/* @__PURE__ */
|
|
76041
|
+
/* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Text, {
|
|
75679
76042
|
bold: true,
|
|
75680
|
-
children: /* @__PURE__ */
|
|
76043
|
+
children: /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(dist_default5, {
|
|
75681
76044
|
name: "retro",
|
|
75682
76045
|
children: "CCStatusline Configuration"
|
|
75683
76046
|
}, undefined, false, undefined, this)
|
|
75684
76047
|
}, undefined, false, undefined, this),
|
|
75685
|
-
/* @__PURE__ */
|
|
76048
|
+
/* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Text, {
|
|
75686
76049
|
bold: true,
|
|
75687
76050
|
children: ` | ${runningVersion && `v${runningVersion}`}`
|
|
75688
76051
|
}, undefined, false, undefined, this),
|
|
75689
|
-
flashMessage && /* @__PURE__ */
|
|
76052
|
+
flashMessage && /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Text, {
|
|
75690
76053
|
color: flashMessage.color,
|
|
75691
76054
|
bold: true,
|
|
75692
76055
|
children: ` ${flashMessage.text}`
|
|
75693
76056
|
}, undefined, false, undefined, this)
|
|
75694
76057
|
]
|
|
75695
76058
|
}, undefined, true, undefined, this),
|
|
75696
|
-
/* @__PURE__ */
|
|
76059
|
+
/* @__PURE__ */ jsx_dev_runtime28.jsxDEV(PinnedVersionMismatchScreen, {
|
|
75697
76060
|
mismatch: pinnedVersionMismatch,
|
|
75698
76061
|
canRunPackageManager: commandAvailability[pinnedVersionMismatch.packageManager],
|
|
75699
76062
|
onUpdate: () => {
|
|
@@ -75716,44 +76079,44 @@ ${GITHUB_REPO_URL}`,
|
|
|
75716
76079
|
setSelectedLine(lineIndex);
|
|
75717
76080
|
setScreen("items");
|
|
75718
76081
|
};
|
|
75719
|
-
return /* @__PURE__ */
|
|
76082
|
+
return /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Box_default, {
|
|
75720
76083
|
flexDirection: "column",
|
|
75721
76084
|
children: [
|
|
75722
|
-
/* @__PURE__ */
|
|
76085
|
+
/* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Box_default, {
|
|
75723
76086
|
marginBottom: 1,
|
|
75724
76087
|
children: [
|
|
75725
|
-
/* @__PURE__ */
|
|
76088
|
+
/* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Text, {
|
|
75726
76089
|
bold: true,
|
|
75727
|
-
children: /* @__PURE__ */
|
|
76090
|
+
children: /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(dist_default5, {
|
|
75728
76091
|
name: "retro",
|
|
75729
76092
|
children: "CCStatusline Configuration"
|
|
75730
76093
|
}, undefined, false, undefined, this)
|
|
75731
76094
|
}, undefined, false, undefined, this),
|
|
75732
|
-
/* @__PURE__ */
|
|
76095
|
+
/* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Text, {
|
|
75733
76096
|
bold: true,
|
|
75734
76097
|
children: ` | ${runningVersion && `v${runningVersion}`}`
|
|
75735
76098
|
}, undefined, false, undefined, this),
|
|
75736
|
-
flashMessage && /* @__PURE__ */
|
|
76099
|
+
flashMessage && /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Text, {
|
|
75737
76100
|
color: flashMessage.color,
|
|
75738
76101
|
bold: true,
|
|
75739
76102
|
children: ` ${flashMessage.text}`
|
|
75740
76103
|
}, undefined, false, undefined, this)
|
|
75741
76104
|
]
|
|
75742
76105
|
}, undefined, true, undefined, this),
|
|
75743
|
-
isCustomConfigPath() && /* @__PURE__ */
|
|
76106
|
+
isCustomConfigPath() && /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Text, {
|
|
75744
76107
|
dimColor: true,
|
|
75745
76108
|
children: `Config: ${getConfigPath()}`
|
|
75746
76109
|
}, undefined, false, undefined, this),
|
|
75747
|
-
/* @__PURE__ */
|
|
76110
|
+
/* @__PURE__ */ jsx_dev_runtime28.jsxDEV(StatusLinePreview, {
|
|
75748
76111
|
lines: settings.lines,
|
|
75749
76112
|
terminalWidth,
|
|
75750
76113
|
settings,
|
|
75751
76114
|
onTruncationChange: setPreviewIsTruncated
|
|
75752
76115
|
}, undefined, false, undefined, this),
|
|
75753
|
-
/* @__PURE__ */
|
|
76116
|
+
/* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Box_default, {
|
|
75754
76117
|
marginTop: 1,
|
|
75755
76118
|
children: [
|
|
75756
|
-
screen === "main" && /* @__PURE__ */
|
|
76119
|
+
screen === "main" && /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(MainMenu, {
|
|
75757
76120
|
onSelect: (value, index) => {
|
|
75758
76121
|
if (value !== "save" && value !== "exit") {
|
|
75759
76122
|
setMenuSelections((prev) => ({ ...prev, main: index }));
|
|
@@ -75768,7 +76131,7 @@ ${GITHUB_REPO_URL}`,
|
|
|
75768
76131
|
installation: effectiveInstallation,
|
|
75769
76132
|
previewIsTruncated
|
|
75770
76133
|
}, undefined, false, undefined, this),
|
|
75771
|
-
screen === "lines" && /* @__PURE__ */
|
|
76134
|
+
screen === "lines" && /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(LineSelector, {
|
|
75772
76135
|
lines: settings.lines,
|
|
75773
76136
|
onSelect: (line) => {
|
|
75774
76137
|
setMenuSelections((prev) => ({ ...prev, lines: line }));
|
|
@@ -75783,7 +76146,7 @@ ${GITHUB_REPO_URL}`,
|
|
|
75783
76146
|
title: "Select Line to Edit Items",
|
|
75784
76147
|
allowEditing: true
|
|
75785
76148
|
}, undefined, false, undefined, this),
|
|
75786
|
-
screen === "items" && /* @__PURE__ */
|
|
76149
|
+
screen === "items" && /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(ItemsEditor, {
|
|
75787
76150
|
widgets: settings.lines[selectedLine] ?? [],
|
|
75788
76151
|
onUpdate: (widgets) => {
|
|
75789
76152
|
updateLine(selectedLine, widgets);
|
|
@@ -75795,7 +76158,7 @@ ${GITHUB_REPO_URL}`,
|
|
|
75795
76158
|
lineNumber: selectedLine + 1,
|
|
75796
76159
|
settings
|
|
75797
76160
|
}, undefined, false, undefined, this),
|
|
75798
|
-
screen === "colorLines" && /* @__PURE__ */
|
|
76161
|
+
screen === "colorLines" && /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(LineSelector, {
|
|
75799
76162
|
lines: settings.lines,
|
|
75800
76163
|
onLinesUpdate: updateLines,
|
|
75801
76164
|
onSelect: (line) => {
|
|
@@ -75813,7 +76176,7 @@ ${GITHUB_REPO_URL}`,
|
|
|
75813
76176
|
settings,
|
|
75814
76177
|
allowEditing: false
|
|
75815
76178
|
}, undefined, false, undefined, this),
|
|
75816
|
-
screen === "colors" && /* @__PURE__ */
|
|
76179
|
+
screen === "colors" && /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(ColorMenu, {
|
|
75817
76180
|
widgets: settings.lines[selectedLine] ?? [],
|
|
75818
76181
|
lineIndex: selectedLine,
|
|
75819
76182
|
settings,
|
|
@@ -75826,7 +76189,7 @@ ${GITHUB_REPO_URL}`,
|
|
|
75826
76189
|
setScreen("colorLines");
|
|
75827
76190
|
}
|
|
75828
76191
|
}, undefined, false, undefined, this),
|
|
75829
|
-
screen === "terminalConfig" && /* @__PURE__ */
|
|
76192
|
+
screen === "terminalConfig" && /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(TerminalOptionsMenu, {
|
|
75830
76193
|
settings,
|
|
75831
76194
|
onUpdate: (updatedSettings) => {
|
|
75832
76195
|
setSettings(updatedSettings);
|
|
@@ -75840,7 +76203,7 @@ ${GITHUB_REPO_URL}`,
|
|
|
75840
76203
|
}
|
|
75841
76204
|
}
|
|
75842
76205
|
}, undefined, false, undefined, this),
|
|
75843
|
-
screen === "terminalWidth" && /* @__PURE__ */
|
|
76206
|
+
screen === "terminalWidth" && /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(TerminalWidthMenu, {
|
|
75844
76207
|
settings,
|
|
75845
76208
|
onUpdate: (updatedSettings) => {
|
|
75846
76209
|
setSettings(updatedSettings);
|
|
@@ -75849,7 +76212,7 @@ ${GITHUB_REPO_URL}`,
|
|
|
75849
76212
|
setScreen("terminalConfig");
|
|
75850
76213
|
}
|
|
75851
76214
|
}, undefined, false, undefined, this),
|
|
75852
|
-
screen === "globalOverrides" && /* @__PURE__ */
|
|
76215
|
+
screen === "globalOverrides" && /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(GlobalOverridesMenu, {
|
|
75853
76216
|
settings,
|
|
75854
76217
|
onUpdate: (updatedSettings) => {
|
|
75855
76218
|
setSettings(updatedSettings);
|
|
@@ -75859,7 +76222,17 @@ ${GITHUB_REPO_URL}`,
|
|
|
75859
76222
|
setScreen("main");
|
|
75860
76223
|
}
|
|
75861
76224
|
}, undefined, false, undefined, this),
|
|
75862
|
-
screen === "
|
|
76225
|
+
screen === "offHours" && /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(OffHoursMenu, {
|
|
76226
|
+
settings,
|
|
76227
|
+
onUpdate: (updatedSettings) => {
|
|
76228
|
+
setSettings(updatedSettings);
|
|
76229
|
+
},
|
|
76230
|
+
onBack: () => {
|
|
76231
|
+
setMenuSelections((prev) => ({ ...prev, main: 5 }));
|
|
76232
|
+
setScreen("main");
|
|
76233
|
+
}
|
|
76234
|
+
}, undefined, false, undefined, this),
|
|
76235
|
+
screen === "confirm" && confirmDialog && /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(ConfirmDialog, {
|
|
75863
76236
|
message: confirmDialog.message,
|
|
75864
76237
|
onConfirm: () => void confirmDialog.action(),
|
|
75865
76238
|
onCancel: () => {
|
|
@@ -75867,14 +76240,14 @@ ${GITHUB_REPO_URL}`,
|
|
|
75867
76240
|
setConfirmDialog(null);
|
|
75868
76241
|
}
|
|
75869
76242
|
}, undefined, false, undefined, this),
|
|
75870
|
-
screen === "flowNotice" && flowNotice && /* @__PURE__ */
|
|
76243
|
+
screen === "flowNotice" && flowNotice && /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(FlowNotice, {
|
|
75871
76244
|
...flowNotice,
|
|
75872
76245
|
onContinue: () => {
|
|
75873
76246
|
setScreen(flowNotice.continueScreen);
|
|
75874
76247
|
setFlowNotice(null);
|
|
75875
76248
|
}
|
|
75876
76249
|
}, undefined, false, undefined, this),
|
|
75877
|
-
screen === "install" && /* @__PURE__ */
|
|
76250
|
+
screen === "install" && /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(InstallMenu, {
|
|
75878
76251
|
commandAvailability,
|
|
75879
76252
|
currentVersion: getPackageVersion(),
|
|
75880
76253
|
existingStatusLine,
|
|
@@ -75888,7 +76261,7 @@ ${GITHUB_REPO_URL}`,
|
|
|
75888
76261
|
onCancel: handleInstallMenuCancel,
|
|
75889
76262
|
initialPackageSelection: menuSelections.installPackage
|
|
75890
76263
|
}, undefined, false, undefined, this),
|
|
75891
|
-
screen === "manageInstallation" && /* @__PURE__ */
|
|
76264
|
+
screen === "manageInstallation" && /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(ManageInstallationMenu, {
|
|
75892
76265
|
installation: effectiveInstallation,
|
|
75893
76266
|
activeCommand: activeGlobalCommand,
|
|
75894
76267
|
onSelect: handleManageInstallationSelect,
|
|
@@ -75900,7 +76273,7 @@ ${GITHUB_REPO_URL}`,
|
|
|
75900
76273
|
setScreen("main");
|
|
75901
76274
|
}
|
|
75902
76275
|
}, undefined, false, undefined, this),
|
|
75903
|
-
screen === "uninstallOptions" && /* @__PURE__ */
|
|
76276
|
+
screen === "uninstallOptions" && /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(UninstallMenu, {
|
|
75904
76277
|
installations: globalPackageInstallations,
|
|
75905
76278
|
onSelect: (selection) => {
|
|
75906
76279
|
handleUninstallSelection(selection, "uninstallOptions");
|
|
@@ -75909,7 +76282,7 @@ ${GITHUB_REPO_URL}`,
|
|
|
75909
76282
|
setScreen("manageInstallation");
|
|
75910
76283
|
}
|
|
75911
76284
|
}, undefined, false, undefined, this),
|
|
75912
|
-
screen === "updates" && /* @__PURE__ */
|
|
76285
|
+
screen === "updates" && /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(UpdateCheckerMenu, {
|
|
75913
76286
|
state: updateCheckerState,
|
|
75914
76287
|
onBack: () => {
|
|
75915
76288
|
setScreen(updatesReturnScreen);
|
|
@@ -75917,7 +76290,7 @@ ${GITHUB_REPO_URL}`,
|
|
|
75917
76290
|
onRefresh: handleUpdateCheck,
|
|
75918
76291
|
onRunAction: handleRunUpdateAction
|
|
75919
76292
|
}, undefined, false, undefined, this),
|
|
75920
|
-
screen === "refreshInterval" && /* @__PURE__ */
|
|
76293
|
+
screen === "refreshInterval" && /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(RefreshIntervalMenu, {
|
|
75921
76294
|
currentInterval: currentRefreshInterval,
|
|
75922
76295
|
supportsRefreshInterval,
|
|
75923
76296
|
onUpdate: (interval) => {
|
|
@@ -75941,7 +76314,7 @@ ${GITHUB_REPO_URL}`,
|
|
|
75941
76314
|
setScreen("main");
|
|
75942
76315
|
}
|
|
75943
76316
|
}, undefined, false, undefined, this),
|
|
75944
|
-
screen === "powerline" && /* @__PURE__ */
|
|
76317
|
+
screen === "powerline" && /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(PowerlineSetup, {
|
|
75945
76318
|
settings,
|
|
75946
76319
|
powerlineFontStatus,
|
|
75947
76320
|
onUpdate: (updatedSettings) => {
|
|
@@ -75975,7 +76348,7 @@ ${GITHUB_REPO_URL}`,
|
|
|
75975
76348
|
};
|
|
75976
76349
|
function runTUI() {
|
|
75977
76350
|
process.stdout.write("\x1B[2J\x1B[H");
|
|
75978
|
-
render_default(/* @__PURE__ */
|
|
76351
|
+
render_default(/* @__PURE__ */ jsx_dev_runtime28.jsxDEV(App2, {}, undefined, false, undefined, this));
|
|
75979
76352
|
}
|
|
75980
76353
|
// src/types/StatusJSON.ts
|
|
75981
76354
|
init_zod();
|