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.
@@ -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
- } else {}
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
- } else {}
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
- } else {}
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
- } else {}
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
- } else {}
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
- } else {}
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
- } else {}
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
- } else {}
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
- } else {}
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
- } else {}
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
- } else {}
29867
- } else {}
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
- } else {}
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
- } else {}
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
- } else {}
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") {} else {}
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
- } else {}
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.2";
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 (size2 !== "mobile" && data.extraUsageEnabled === true && extraUsed !== undefined && extraLimit !== undefined && data.sessionUsage >= 100 && (data.weeklyUsage === undefined || data.weeklyUsage < 100)) {
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(expectedPercent * 7 / 100)));
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 { delta, dayOfWeek, status } = computePace(actualPercent, window2.elapsedPercent, showPercent, decimals);
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 import_react51 = __toESM(require_react(), 1);
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 import_react46 = __toESM(require_react(), 1);
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 import_react44 = __toESM(require_react(), 1);
73165
- var jsx_dev_runtime19 = __toESM(require_jsx_dev_runtime(), 1);
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] = import_react44.useState(0);
73186
- const [hexInputMode, setHexInputMode] = import_react44.useState(false);
73187
- const [hexInput, setHexInput] = import_react44.useState("");
73188
- const [cursorPos, setCursorPos] = import_react44.useState(0);
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__ */ jsx_dev_runtime19.jsxDEV(Box_default, {
73740
+ return /* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Box_default, {
73381
73741
  flexDirection: "column",
73382
73742
  children: [
73383
- /* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
73743
+ /* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Text, {
73384
73744
  bold: true,
73385
73745
  children: getTitle()
73386
73746
  }, undefined, false, undefined, this),
73387
- hexInputMode ? /* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Box_default, {
73747
+ hexInputMode ? /* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Box_default, {
73388
73748
  marginTop: 2,
73389
73749
  flexDirection: "column",
73390
73750
  children: [
73391
- /* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
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__ */ jsx_dev_runtime19.jsxDEV(Text, {
73760
+ /* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Text, {
73401
73761
  children: [
73402
73762
  "U+",
73403
73763
  hexInput.slice(0, cursorPos),
73404
- /* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
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__ */ jsx_dev_runtime19.jsxDEV(Text, {
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__ */ jsx_dev_runtime19.jsxDEV(Text, {
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__ */ jsx_dev_runtime19.jsxDEV(Text, {
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__ */ jsx_dev_runtime19.jsxDEV(jsx_dev_runtime19.Fragment, {
73785
+ }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime20.jsxDEV(jsx_dev_runtime20.Fragment, {
73426
73786
  children: [
73427
- /* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Box_default, {
73428
- children: /* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
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__ */ jsx_dev_runtime19.jsxDEV(Box_default, {
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__ */ jsx_dev_runtime19.jsxDEV(Box_default, {
73437
- children: /* @__PURE__ */ jsx_dev_runtime19.jsxDEV(Text, {
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__ */ jsx_dev_runtime19.jsxDEV(Text, {
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 import_react45 = __toESM(require_react(), 1);
73460
- var jsx_dev_runtime20 = __toESM(require_jsx_dev_runtime(), 1);
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 = import_react45.useMemo(() => getPowerlineThemes(), []);
73873
+ const themes = import_react46.useMemo(() => getPowerlineThemes(), []);
73514
73874
  const currentTheme = settings.powerline.theme ?? "custom";
73515
- const [selectedIndex, setSelectedIndex] = import_react45.useState(Math.max(0, themes.indexOf(currentTheme)));
73516
- const [showCustomizeConfirm, setShowCustomizeConfirm] = import_react45.useState(false);
73517
- const originalThemeRef = import_react45.useRef(currentTheme);
73518
- const originalSettingsRef = import_react45.useRef(settings);
73519
- const latestSettingsRef = import_react45.useRef(settings);
73520
- const latestOnUpdateRef = import_react45.useRef(onUpdate);
73521
- const didHandleInitialSelectionRef = import_react45.useRef(false);
73522
- import_react45.useEffect(() => {
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
- import_react45.useEffect(() => {
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 = import_react45.useMemo(() => buildPowerlineThemeItems(themes, originalThemeRef.current), [themes]);
73918
+ const themeItems = import_react46.useMemo(() => buildPowerlineThemeItems(themes, originalThemeRef.current), [themes]);
73559
73919
  if (showCustomizeConfirm) {
73560
- return /* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Box_default, {
73920
+ return /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
73561
73921
  flexDirection: "column",
73562
73922
  children: [
73563
- /* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Text, {
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__ */ jsx_dev_runtime20.jsxDEV(Box_default, {
73928
+ /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
73569
73929
  marginTop: 1,
73570
73930
  flexDirection: "column",
73571
73931
  children: [
73572
- /* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Text, {
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__ */ jsx_dev_runtime20.jsxDEV(Text, {
73935
+ /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
73576
73936
  children: "and switch to Custom theme mode."
73577
73937
  }, undefined, false, undefined, this),
73578
- /* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Text, {
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__ */ jsx_dev_runtime20.jsxDEV(Box_default, {
73944
+ /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
73585
73945
  marginTop: 2,
73586
- children: /* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Text, {
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__ */ jsx_dev_runtime20.jsxDEV(Box_default, {
73950
+ /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
73591
73951
  marginTop: 1,
73592
- children: /* @__PURE__ */ jsx_dev_runtime20.jsxDEV(ConfirmDialog, {
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__ */ jsx_dev_runtime20.jsxDEV(Box_default, {
73972
+ return /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
73613
73973
  flexDirection: "column",
73614
73974
  children: [
73615
- /* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Text, {
73975
+ /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
73616
73976
  bold: true,
73617
73977
  children: [
73618
73978
  `Powerline Theme Selection | `,
73619
- /* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Text, {
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__ */ jsx_dev_runtime20.jsxDEV(Box_default, {
73626
- children: /* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Text, {
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__ */ jsx_dev_runtime20.jsxDEV(List, {
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__ */ jsx_dev_runtime20.jsxDEV(Box_default, {
74005
+ selectedThemeName && selectedThemeName !== "custom" && /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
73646
74006
  marginTop: 1,
73647
- children: /* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Text, {
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__ */ jsx_dev_runtime20.jsxDEV(Box_default, {
74012
+ settings.colorLevel === 1 && /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
73653
74013
  marginTop: 1,
73654
- children: /* @__PURE__ */ jsx_dev_runtime20.jsxDEV(Text, {
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 jsx_dev_runtime21 = __toESM(require_jsx_dev_runtime(), 1);
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] = import_react46.useState("menu");
73768
- const [selectedMenuItem, setSelectedMenuItem] = import_react46.useState(0);
73769
- const [confirmingEnable, setConfirmingEnable] = import_react46.useState(false);
73770
- const [confirmingFontInstall, setConfirmingFontInstall] = import_react46.useState(false);
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__ */ jsx_dev_runtime21.jsxDEV(PowerlineSeparatorEditor, {
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__ */ jsx_dev_runtime21.jsxDEV(PowerlineSeparatorEditor, {
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__ */ jsx_dev_runtime21.jsxDEV(PowerlineSeparatorEditor, {
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__ */ jsx_dev_runtime21.jsxDEV(PowerlineThemeSelector, {
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__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
74221
+ return /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
73862
74222
  flexDirection: "column",
73863
74223
  children: [
73864
- !confirmingFontInstall && !installingFonts && !fontInstallMessage && /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
74228
+ confirmingFontInstall ? /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
73869
74229
  flexDirection: "column",
73870
74230
  children: [
73871
- /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
74231
+ /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
73872
74232
  marginBottom: 1,
73873
- children: /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
74239
+ /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
73880
74240
  marginBottom: 1,
73881
74241
  flexDirection: "column",
73882
74242
  children: [
73883
- /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Text, {
74247
+ /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
73888
74248
  children: [
73889
- /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(jsx_dev_runtime21.Fragment, {
74259
+ os12.platform() === "darwin" && /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(jsx_dev_runtime22.Fragment, {
73900
74260
  children: [
73901
- /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(jsx_dev_runtime21.Fragment, {
74275
+ os12.platform() === "linux" && /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(jsx_dev_runtime22.Fragment, {
73916
74276
  children: [
73917
- /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(jsx_dev_runtime21.Fragment, {
74291
+ os12.platform() === "win32" && /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(jsx_dev_runtime22.Fragment, {
73932
74292
  children: [
73933
- /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
74309
+ /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
73950
74310
  marginBottom: 1,
73951
74311
  children: [
73952
- /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
74323
+ /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
73964
74324
  marginBottom: 1,
73965
74325
  flexDirection: "column",
73966
74326
  children: [
73967
- /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Text, {
74332
+ /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
73973
74333
  dimColor: true,
73974
74334
  children: "• Restart terminal"
73975
74335
  }, undefined, false, undefined, this),
73976
- /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
74346
+ /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
73987
74347
  marginTop: 1,
73988
- children: /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
74352
+ /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
73993
74353
  marginTop: 1,
73994
- children: /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(ConfirmDialog, {
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__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
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__ */ jsx_dev_runtime21.jsxDEV(jsx_dev_runtime21.Fragment, {
74370
+ hasSeparatorItems && /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(jsx_dev_runtime22.Fragment, {
74011
74371
  children: [
74012
- /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
74013
- children: /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
74378
+ /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
74019
74379
  marginBottom: 1,
74020
- children: /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
74387
+ /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
74028
74388
  marginTop: hasSeparatorItems ? 1 : 0,
74029
- children: /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
74393
+ /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
74034
74394
  marginTop: 1,
74035
- children: /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(ConfirmDialog, {
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__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
74048
- children: /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
74412
+ }, undefined, false, undefined, this) : fontInstallMessage ? /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
74053
74413
  flexDirection: "column",
74054
74414
  children: [
74055
- /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
74419
+ /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
74060
74420
  marginTop: 1,
74061
- children: /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(jsx_dev_runtime21.Fragment, {
74427
+ }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(jsx_dev_runtime22.Fragment, {
74068
74428
  children: [
74069
- /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
74429
+ /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
74070
74430
  flexDirection: "column",
74071
- children: /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
74431
+ children: /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
74072
74432
  children: [
74073
74433
  " Font Status: ",
74074
- powerlineFontStatus.installed ? /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(jsx_dev_runtime21.Fragment, {
74434
+ powerlineFontStatus.installed ? /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(jsx_dev_runtime22.Fragment, {
74075
74435
  children: [
74076
- /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
74436
+ /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
74077
74437
  color: "green",
74078
74438
  children: "✓ Installed"
74079
74439
  }, undefined, false, undefined, this),
74080
- /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(jsx_dev_runtime21.Fragment, {
74445
+ }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(jsx_dev_runtime22.Fragment, {
74086
74446
  children: [
74087
- /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
74447
+ /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
74088
74448
  color: "yellow",
74089
74449
  children: "✗ Not Installed"
74090
74450
  }, undefined, false, undefined, this),
74091
- /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
74460
+ /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
74101
74461
  children: [
74102
- /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
74462
+ /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
74103
74463
  children: " Powerline Mode: "
74104
74464
  }, undefined, false, undefined, this),
74105
- /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(jsx_dev_runtime21.Fragment, {
74475
+ powerlineConfig.enabled && /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(jsx_dev_runtime22.Fragment, {
74116
74476
  children: [
74117
- /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
74477
+ /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
74118
74478
  children: [
74119
- /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
74479
+ /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
74120
74480
  children: " Align Widgets: "
74121
74481
  }, undefined, false, undefined, this),
74122
- /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
74492
+ /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
74133
74493
  children: [
74134
- /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
74494
+ /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
74135
74495
  children: " Continue Theme: "
74136
74496
  }, undefined, false, undefined, this),
74137
- /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
74507
+ /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
74148
74508
  flexDirection: "column",
74149
74509
  marginTop: 1,
74150
74510
  children: [
74151
- /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(Box_default, {
74523
+ !powerlineConfig.enabled && /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
74164
74524
  marginTop: 1,
74165
- children: /* @__PURE__ */ jsx_dev_runtime21.jsxDEV(Text, {
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__ */ jsx_dev_runtime21.jsxDEV(List, {
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 import_react47 = __toESM(require_react(), 1);
74195
- var jsx_dev_runtime22 = __toESM(require_jsx_dev_runtime(), 1);
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] = import_react47.useState(false);
74242
- const [refreshInput, setRefreshInput] = import_react47.useState(() => getRefreshInputValue(currentInterval));
74243
- const [validationError, setValidationError] = import_react47.useState(null);
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__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
74642
+ return /* @__PURE__ */ jsx_dev_runtime23.jsxDEV(Box_default, {
74283
74643
  flexDirection: "column",
74284
74644
  children: [
74285
- /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
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__ */ jsx_dev_runtime22.jsxDEV(Text, {
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__ */ jsx_dev_runtime22.jsxDEV(Box_default, {
74653
+ editingRefreshInterval ? /* @__PURE__ */ jsx_dev_runtime23.jsxDEV(Box_default, {
74294
74654
  marginTop: 1,
74295
74655
  flexDirection: "column",
74296
74656
  children: [
74297
- /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
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__ */ jsx_dev_runtime22.jsxDEV(Text, {
74665
+ validationError ? /* @__PURE__ */ jsx_dev_runtime23.jsxDEV(Text, {
74306
74666
  color: "red",
74307
74667
  children: validationError
74308
- }, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime22.jsxDEV(Text, {
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__ */ jsx_dev_runtime22.jsxDEV(List, {
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 import_react48 = __toESM(require_react(), 1);
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 jsx_dev_runtime23 = __toESM(require_jsx_dev_runtime(), 1);
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 } = import_react48.default.useMemo(() => {
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
- import_react48.default.useEffect(() => {
74772
+ import_react49.default.useEffect(() => {
74413
74773
  onTruncationChange?.(anyTruncated);
74414
74774
  }, [anyTruncated, onTruncationChange]);
74415
- return /* @__PURE__ */ jsx_dev_runtime23.jsxDEV(Box_default, {
74775
+ return /* @__PURE__ */ jsx_dev_runtime24.jsxDEV(Box_default, {
74416
74776
  flexDirection: "column",
74417
74777
  children: [
74418
- /* @__PURE__ */ jsx_dev_runtime23.jsxDEV(Box_default, {
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__ */ jsx_dev_runtime23.jsxDEV(Text, {
74784
+ children: /* @__PURE__ */ jsx_dev_runtime24.jsxDEV(Text, {
74425
74785
  children: [
74426
74786
  ">",
74427
- /* @__PURE__ */ jsx_dev_runtime23.jsxDEV(Text, {
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__ */ jsx_dev_runtime23.jsxDEV(Text, {
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 import_react49 = __toESM(require_react(), 1);
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 jsx_dev_runtime24 = __toESM(require_jsx_dev_runtime(), 1);
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] = import_react49.useState(false);
74538
- const [pendingColorLevel, setPendingColorLevel] = import_react49.useState(null);
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__ */ jsx_dev_runtime24.jsxDEV(Box_default, {
74946
+ return /* @__PURE__ */ jsx_dev_runtime25.jsxDEV(Box_default, {
74587
74947
  flexDirection: "column",
74588
74948
  children: [
74589
- /* @__PURE__ */ jsx_dev_runtime24.jsxDEV(Text, {
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__ */ jsx_dev_runtime24.jsxDEV(Box_default, {
74953
+ showColorWarning ? /* @__PURE__ */ jsx_dev_runtime25.jsxDEV(Box_default, {
74594
74954
  flexDirection: "column",
74595
74955
  marginTop: 1,
74596
74956
  children: [
74597
- /* @__PURE__ */ jsx_dev_runtime24.jsxDEV(Text, {
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__ */ jsx_dev_runtime24.jsxDEV(Text, {
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__ */ jsx_dev_runtime24.jsxDEV(Box_default, {
74964
+ /* @__PURE__ */ jsx_dev_runtime25.jsxDEV(Box_default, {
74605
74965
  marginTop: 1,
74606
- children: /* @__PURE__ */ jsx_dev_runtime24.jsxDEV(ConfirmDialog, {
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__ */ jsx_dev_runtime24.jsxDEV(jsx_dev_runtime24.Fragment, {
74974
+ }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime25.jsxDEV(jsx_dev_runtime25.Fragment, {
74615
74975
  children: [
74616
- /* @__PURE__ */ jsx_dev_runtime24.jsxDEV(Text, {
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__ */ jsx_dev_runtime24.jsxDEV(List, {
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 import_react50 = __toESM(require_react(), 1);
74650
- var jsx_dev_runtime25 = __toESM(require_jsx_dev_runtime(), 1);
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] = import_react50.useState(settings.flexMode);
74698
- const [compactThreshold, setCompactThreshold] = import_react50.useState(settings.compactThreshold);
74699
- const [editingThreshold, setEditingThreshold] = import_react50.useState(false);
74700
- const [thresholdInput, setThresholdInput] = import_react50.useState(String(settings.compactThreshold));
74701
- const [validationError, setValidationError] = import_react50.useState(null);
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__ */ jsx_dev_runtime25.jsxDEV(Box_default, {
75100
+ return /* @__PURE__ */ jsx_dev_runtime26.jsxDEV(Box_default, {
74741
75101
  flexDirection: "column",
74742
75102
  children: [
74743
- /* @__PURE__ */ jsx_dev_runtime25.jsxDEV(Text, {
75103
+ /* @__PURE__ */ jsx_dev_runtime26.jsxDEV(Text, {
74744
75104
  bold: true,
74745
75105
  children: "Terminal Width"
74746
75106
  }, undefined, false, undefined, this),
74747
- /* @__PURE__ */ jsx_dev_runtime25.jsxDEV(Text, {
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__ */ jsx_dev_runtime25.jsxDEV(Text, {
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__ */ jsx_dev_runtime25.jsxDEV(Box_default, {
75116
+ editingThreshold ? /* @__PURE__ */ jsx_dev_runtime26.jsxDEV(Box_default, {
74757
75117
  marginTop: 1,
74758
75118
  flexDirection: "column",
74759
75119
  children: [
74760
- /* @__PURE__ */ jsx_dev_runtime25.jsxDEV(Text, {
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__ */ jsx_dev_runtime25.jsxDEV(Text, {
75128
+ validationError ? /* @__PURE__ */ jsx_dev_runtime26.jsxDEV(Text, {
74769
75129
  color: "red",
74770
75130
  children: validationError
74771
- }, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime25.jsxDEV(Text, {
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__ */ jsx_dev_runtime25.jsxDEV(List, {
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 jsx_dev_runtime26 = __toESM(require_jsx_dev_runtime(), 1);
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__ */ jsx_dev_runtime26.jsxDEV(Box_default, {
75214
+ return /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Box_default, {
74855
75215
  flexDirection: "column",
74856
75216
  children: [
74857
- /* @__PURE__ */ jsx_dev_runtime26.jsxDEV(Text, {
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__ */ jsx_dev_runtime26.jsxDEV(Box_default, {
75221
+ /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Box_default, {
74862
75222
  marginTop: 1,
74863
- children: /* @__PURE__ */ jsx_dev_runtime26.jsxDEV(Text, {
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__ */ jsx_dev_runtime26.jsxDEV(Box_default, {
75231
+ return /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Box_default, {
74872
75232
  flexDirection: "column",
74873
75233
  children: [
74874
- /* @__PURE__ */ jsx_dev_runtime26.jsxDEV(Text, {
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__ */ jsx_dev_runtime26.jsxDEV(Box_default, {
75238
+ /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Box_default, {
74879
75239
  marginTop: 1,
74880
75240
  flexDirection: "column",
74881
75241
  children: [
74882
- /* @__PURE__ */ jsx_dev_runtime26.jsxDEV(Text, {
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__ */ jsx_dev_runtime26.jsxDEV(Text, {
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__ */ jsx_dev_runtime26.jsxDEV(Text, {
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__ */ jsx_dev_runtime26.jsxDEV(jsx_dev_runtime26.Fragment, {
75265
+ state.status === "registry-failure" && /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(jsx_dev_runtime27.Fragment, {
74906
75266
  children: [
74907
- /* @__PURE__ */ jsx_dev_runtime26.jsxDEV(Box_default, {
75267
+ /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Box_default, {
74908
75268
  marginTop: 1,
74909
- children: /* @__PURE__ */ jsx_dev_runtime26.jsxDEV(Text, {
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__ */ jsx_dev_runtime26.jsxDEV(List, {
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__ */ jsx_dev_runtime26.jsxDEV(jsx_dev_runtime26.Fragment, {
75292
+ state.status === "up-to-date" && /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(jsx_dev_runtime27.Fragment, {
74933
75293
  children: [
74934
- /* @__PURE__ */ jsx_dev_runtime26.jsxDEV(Box_default, {
75294
+ /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Box_default, {
74935
75295
  marginTop: 1,
74936
- children: /* @__PURE__ */ jsx_dev_runtime26.jsxDEV(Text, {
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__ */ jsx_dev_runtime26.jsxDEV(List, {
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__ */ jsx_dev_runtime26.jsxDEV(jsx_dev_runtime26.Fragment, {
75315
+ state.status === "update-available" && /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(jsx_dev_runtime27.Fragment, {
74956
75316
  children: [
74957
- /* @__PURE__ */ jsx_dev_runtime26.jsxDEV(Box_default, {
75317
+ /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Box_default, {
74958
75318
  marginTop: 1,
74959
- children: /* @__PURE__ */ jsx_dev_runtime26.jsxDEV(Text, {
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__ */ jsx_dev_runtime26.jsxDEV(Box_default, {
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__ */ jsx_dev_runtime26.jsxDEV(Text, {
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__ */ jsx_dev_runtime26.jsxDEV(Text, {
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__ */ jsx_dev_runtime26.jsxDEV(Text, {
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__ */ jsx_dev_runtime26.jsxDEV(List, {
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__ */ jsx_dev_runtime26.jsxDEV(List, {
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 jsx_dev_runtime27 = __toESM(require_jsx_dev_runtime(), 1);
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__ */ jsx_dev_runtime27.jsxDEV(Box_default, {
75396
+ return /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Box_default, {
75037
75397
  flexDirection: "column",
75038
75398
  children: [
75039
- /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Text, {
75399
+ /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Text, {
75040
75400
  bold: true,
75041
75401
  children: title
75042
75402
  }, undefined, false, undefined, this),
75043
- /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Box_default, {
75403
+ /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Box_default, {
75044
75404
  marginTop: 1,
75045
- children: /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Text, {
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__ */ jsx_dev_runtime27.jsxDEV(List, {
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__ */ jsx_dev_runtime27.jsxDEV(Box_default, {
75451
+ return /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Box_default, {
75092
75452
  flexDirection: "column",
75093
75453
  children: [
75094
- /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Text, {
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__ */ jsx_dev_runtime27.jsxDEV(Box_default, {
75458
+ /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Box_default, {
75099
75459
  marginTop: 1,
75100
75460
  flexDirection: "column",
75101
75461
  children: [
75102
- /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Text, {
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__ */ jsx_dev_runtime27.jsxDEV(Text, {
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__ */ jsx_dev_runtime27.jsxDEV(Box_default, {
75479
+ /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Box_default, {
75120
75480
  marginTop: 1,
75121
75481
  flexDirection: "column",
75122
- children: /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Text, {
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__ */ jsx_dev_runtime27.jsxDEV(List, {
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] = import_react51.useState(null);
75239
- const [originalSettings, setOriginalSettings] = import_react51.useState(null);
75240
- const [hasChanges, setHasChanges] = import_react51.useState(false);
75241
- const [screen, setScreen] = import_react51.useState("main");
75242
- const [selectedLine, setSelectedLine] = import_react51.useState(0);
75243
- const [menuSelections, setMenuSelections] = import_react51.useState({});
75244
- const [confirmDialog, setConfirmDialog] = import_react51.useState(null);
75245
- const [isClaudeInstalled, setIsClaudeInstalled] = import_react51.useState(false);
75246
- const [terminalWidth, setTerminalWidth] = import_react51.useState(process.stdout.columns || 80);
75247
- const [powerlineFontStatus, setPowerlineFontStatus] = import_react51.useState({ installed: false });
75248
- const [installingFonts, setInstallingFonts] = import_react51.useState(false);
75249
- const [fontInstallMessage, setFontInstallMessage] = import_react51.useState(null);
75250
- const [existingStatusLine, setExistingStatusLine] = import_react51.useState(null);
75251
- const [flashMessage, setFlashMessage] = import_react51.useState(null);
75252
- const [previewIsTruncated, setPreviewIsTruncated] = import_react51.useState(false);
75253
- const [currentRefreshInterval, setCurrentRefreshInterval] = import_react51.useState(null);
75254
- const [supportsRefreshInterval] = import_react51.useState(() => isClaudeCodeVersionAtLeast("2.1.97"));
75255
- const [commandAvailability] = import_react51.useState(() => getPackageCommandAvailability());
75256
- const [updateCheckerState, setUpdateCheckerState] = import_react51.useState({ status: "checking" });
75257
- const [flowNotice, setFlowNotice] = import_react51.useState(null);
75258
- const [globalPackageInstallations, setGlobalPackageInstallations] = import_react51.useState([]);
75259
- const [updatesReturnScreen, setUpdatesReturnScreen] = import_react51.useState("main");
75260
- const [hasLoadedClaudeStatus, setHasLoadedClaudeStatus] = import_react51.useState(false);
75261
- const [hasLoadedInstalledState, setHasLoadedInstalledState] = import_react51.useState(false);
75262
- import_react51.useEffect(() => {
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
- import_react51.useEffect(() => {
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
- import_react51.useEffect(() => {
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 = import_react51.useCallback((packageManager) => inspectGlobalCommandResolution(packageManager).warning, []);
75335
- const handleInstallSelection = import_react51.useCallback((selection) => {
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 = import_react51.useCallback(() => {
75780
+ const handleInstallMenuCancel = import_react52.useCallback(() => {
75421
75781
  setMenuSelections(clearInstallMenuSelection);
75422
75782
  setScreen("main");
75423
75783
  }, []);
75424
- const handleUpdateCheck = import_react51.useCallback(() => {
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 = import_react51.useCallback((action) => {
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__ */ jsx_dev_runtime27.jsxDEV(Text, {
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__ */ jsx_dev_runtime27.jsxDEV(Box_default, {
76035
+ return /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Box_default, {
75673
76036
  flexDirection: "column",
75674
76037
  children: [
75675
- /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Box_default, {
76038
+ /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Box_default, {
75676
76039
  marginBottom: 1,
75677
76040
  children: [
75678
- /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Text, {
76041
+ /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Text, {
75679
76042
  bold: true,
75680
- children: /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(dist_default5, {
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__ */ jsx_dev_runtime27.jsxDEV(Text, {
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__ */ jsx_dev_runtime27.jsxDEV(Text, {
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__ */ jsx_dev_runtime27.jsxDEV(PinnedVersionMismatchScreen, {
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__ */ jsx_dev_runtime27.jsxDEV(Box_default, {
76082
+ return /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Box_default, {
75720
76083
  flexDirection: "column",
75721
76084
  children: [
75722
- /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Box_default, {
76085
+ /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Box_default, {
75723
76086
  marginBottom: 1,
75724
76087
  children: [
75725
- /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(Text, {
76088
+ /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Text, {
75726
76089
  bold: true,
75727
- children: /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(dist_default5, {
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__ */ jsx_dev_runtime27.jsxDEV(Text, {
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__ */ jsx_dev_runtime27.jsxDEV(Text, {
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__ */ jsx_dev_runtime27.jsxDEV(Text, {
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__ */ jsx_dev_runtime27.jsxDEV(StatusLinePreview, {
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__ */ jsx_dev_runtime27.jsxDEV(Box_default, {
76116
+ /* @__PURE__ */ jsx_dev_runtime28.jsxDEV(Box_default, {
75754
76117
  marginTop: 1,
75755
76118
  children: [
75756
- screen === "main" && /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(MainMenu, {
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__ */ jsx_dev_runtime27.jsxDEV(LineSelector, {
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__ */ jsx_dev_runtime27.jsxDEV(ItemsEditor, {
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__ */ jsx_dev_runtime27.jsxDEV(LineSelector, {
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__ */ jsx_dev_runtime27.jsxDEV(ColorMenu, {
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__ */ jsx_dev_runtime27.jsxDEV(TerminalOptionsMenu, {
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__ */ jsx_dev_runtime27.jsxDEV(TerminalWidthMenu, {
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__ */ jsx_dev_runtime27.jsxDEV(GlobalOverridesMenu, {
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 === "confirm" && confirmDialog && /* @__PURE__ */ jsx_dev_runtime27.jsxDEV(ConfirmDialog, {
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__ */ jsx_dev_runtime27.jsxDEV(FlowNotice, {
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__ */ jsx_dev_runtime27.jsxDEV(InstallMenu, {
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__ */ jsx_dev_runtime27.jsxDEV(ManageInstallationMenu, {
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__ */ jsx_dev_runtime27.jsxDEV(UninstallMenu, {
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__ */ jsx_dev_runtime27.jsxDEV(UpdateCheckerMenu, {
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__ */ jsx_dev_runtime27.jsxDEV(RefreshIntervalMenu, {
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__ */ jsx_dev_runtime27.jsxDEV(PowerlineSetup, {
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__ */ jsx_dev_runtime27.jsxDEV(App2, {}, undefined, false, undefined, this));
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();