gh-manager-cli 1.22.0 → 1.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@ import {
6
6
  changeRepositoryVisibility,
7
7
  checkOrganizationIsEnterprise,
8
8
  deleteRepositoryRest,
9
+ fetchRestRateLimits,
9
10
  fetchViewerOrganizations,
10
11
  fetchViewerReposPageUnified,
11
12
  getRepositoryFromCache,
@@ -14,23 +15,21 @@ import {
14
15
  logger,
15
16
  makeClient,
16
17
  purgeApolloCacheFiles,
17
- renameRepositoryById,
18
18
  searchRepositoriesUnified,
19
19
  syncForkWithUpstream,
20
20
  unarchiveRepositoryById,
21
21
  updateCacheAfterArchive,
22
22
  updateCacheAfterDelete,
23
- updateCacheAfterRename,
24
23
  updateCacheAfterVisibilityChange,
25
24
  updateCacheWithRepository
26
- } from "./chunk-RI2B33OX.js";
25
+ } from "./chunk-GFBV3TQA.js";
27
26
 
28
27
  // package.json
29
28
  var require_package = __commonJS({
30
29
  "package.json"(exports, module) {
31
30
  module.exports = {
32
31
  name: "gh-manager-cli",
33
- version: "1.22.0",
32
+ version: "1.23.0",
34
33
  private: false,
35
34
  description: "Interactive CLI to manage your GitHub repos (personal) with Ink",
36
35
  license: "MIT",
@@ -76,7 +75,6 @@ var require_package = __commonJS({
76
75
  "@octokit/graphql": "^9.0.1",
77
76
  "apollo3-cache-persist": "^0.14.1",
78
77
  chalk: "^5.6.0",
79
- clipboardy: "^4.0.0",
80
78
  dotenv: "^17.2.1",
81
79
  "env-paths": "^3.0.0",
82
80
  graphql: "^16.11.0",
@@ -156,13 +154,13 @@ var require_package = __commonJS({
156
154
 
157
155
  // src/index.tsx
158
156
  var import_package = __toESM(require_package(), 1);
159
- import { render, Box as Box19, Text as Text20 } from "ink";
157
+ import { render, Box as Box17, Text as Text18 } from "ink";
160
158
  import "dotenv/config";
161
159
 
162
160
  // src/ui/App.tsx
163
- import { useEffect as useEffect9, useMemo as useMemo2, useState as useState14 } from "react";
164
- import { Box as Box18, Text as Text19, useApp as useApp2, useStdout as useStdout2, useInput as useInput14 } from "ink";
165
- import TextInput6 from "ink-text-input";
161
+ import { useEffect as useEffect8, useMemo as useMemo2, useState as useState12 } from "react";
162
+ import { Box as Box16, Text as Text17, useApp as useApp2, useStdout as useStdout2, useInput as useInput12 } from "ink";
163
+ import TextInput5 from "ink-text-input";
166
164
 
167
165
  // src/config.ts
168
166
  import fs from "fs";
@@ -407,10 +405,10 @@ async function openGitHubAuthorizationPage() {
407
405
  }
408
406
 
409
407
  // src/ui/RepoList.tsx
410
- import React12, { useEffect as useEffect8, useMemo, useState as useState12, useRef, useCallback } from "react";
411
- import { Box as Box15, Text as Text16, useApp, useInput as useInput12, useStdout } from "ink";
412
- import TextInput5 from "ink-text-input";
413
- import chalk12 from "chalk";
408
+ import React10, { useEffect as useEffect7, useMemo, useState as useState10, useRef, useCallback } from "react";
409
+ import { Box as Box13, Text as Text14, useApp, useInput as useInput10, useStdout } from "ink";
410
+ import TextInput4 from "ink-text-input";
411
+ import chalk11 from "chalk";
414
412
 
415
413
  // src/apolloMeta.ts
416
414
  import fs2 from "fs";
@@ -488,7 +486,7 @@ function OrgSwitcher({ token, currentContext, onSelect, onClose }) {
488
486
  try {
489
487
  setLoading(true);
490
488
  setError(null);
491
- const client = await import("./github-ERXQNAVD.js").then((m) => m.makeClient(token));
489
+ const client = await import("./github-O7QMBYSD.js").then((m) => m.makeClient(token));
492
490
  const orgs = await fetchViewerOrganizations(client);
493
491
  setOrganizations(orgs);
494
492
  const entOrgs = /* @__PURE__ */ new Set();
@@ -639,51 +637,6 @@ function formatDate(dateStr) {
639
637
  if (diffDays < 365) return `${Math.floor(diffDays / 30)} months ago`;
640
638
  return `${Math.floor(diffDays / 365)} years ago`;
641
639
  }
642
- async function copyToClipboard(text) {
643
- try {
644
- const clipboardy = await import("clipboardy");
645
- await clipboardy.write(text);
646
- return;
647
- } catch (error) {
648
- const { spawn } = await import("child_process");
649
- const { promisify } = await import("util");
650
- const spawnCommand = (command, args = []) => {
651
- return new Promise((resolve, reject) => {
652
- const child = spawn(command, args, { stdio: ["pipe", "pipe", "pipe"] });
653
- child.stdin.write(text);
654
- child.stdin.end();
655
- child.on("close", (code) => {
656
- if (code === 0) {
657
- resolve();
658
- } else {
659
- reject(new Error(`Command failed with code ${code}`));
660
- }
661
- });
662
- child.on("error", reject);
663
- });
664
- };
665
- try {
666
- const platform = process.platform;
667
- if (platform === "darwin") {
668
- await spawnCommand("pbcopy");
669
- } else if (platform === "win32") {
670
- await spawnCommand("clip");
671
- } else {
672
- try {
673
- await spawnCommand("xclip", ["-selection", "clipboard"]);
674
- } catch {
675
- try {
676
- await spawnCommand("xsel", ["--clipboard", "--input"]);
677
- } catch {
678
- await spawnCommand("wl-copy");
679
- }
680
- }
681
- }
682
- } catch (osError) {
683
- throw new Error(`Failed to copy to clipboard. Please install a clipboard utility for your system.`);
684
- }
685
- }
686
- }
687
640
 
688
641
  // src/ui/components/modals/InfoModal.tsx
689
642
  import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
@@ -1147,228 +1100,10 @@ var ChangeVisibilityModal = ({
1147
1100
  );
1148
1101
  };
1149
1102
 
1150
- // src/ui/components/modals/RenameModal.tsx
1151
- import { useState as useState10, useEffect as useEffect7 } from "react";
1152
- import { Box as Box10, Text as Text11, useInput as useInput10 } from "ink";
1153
- import TextInput3 from "ink-text-input";
1154
- import { Fragment as Fragment5, jsx as jsx11, jsxs as jsxs10 } from "react/jsx-runtime";
1155
- function RenameModal({ repo, onRename, onCancel }) {
1156
- const [newName, setNewName] = useState10("");
1157
- const [renaming, setRenaming] = useState10(false);
1158
- const [renameError, setRenameError] = useState10(null);
1159
- useEffect7(() => {
1160
- if (repo) {
1161
- setNewName(repo.name);
1162
- setRenameError(null);
1163
- }
1164
- }, [repo]);
1165
- useInput10((input, key) => {
1166
- if (renaming) return;
1167
- if (key.escape) {
1168
- onCancel();
1169
- return;
1170
- }
1171
- if (key.return) {
1172
- if (newName.trim() && newName !== repo?.name) {
1173
- handleRenameConfirm();
1174
- }
1175
- return;
1176
- }
1177
- });
1178
- const handleRenameConfirm = async () => {
1179
- if (!repo || renaming || !newName.trim() || newName === repo.name) return;
1180
- try {
1181
- setRenaming(true);
1182
- setRenameError(null);
1183
- await onRename(repo, newName.trim());
1184
- } catch (e) {
1185
- setRenameError(e.message || "Failed to rename repository");
1186
- setRenaming(false);
1187
- }
1188
- };
1189
- const handleNameChange = (value) => {
1190
- const filtered = value.replace(/[^a-zA-Z0-9\-_.]/g, "");
1191
- setNewName(filtered);
1192
- };
1193
- if (!repo) return null;
1194
- const owner = repo.nameWithOwner.split("/")[0];
1195
- const isDisabled = !newName.trim() || newName === repo.name;
1196
- return /* @__PURE__ */ jsxs10(
1197
- Box10,
1198
- {
1199
- flexDirection: "column",
1200
- borderStyle: "round",
1201
- borderColor: "cyan",
1202
- paddingX: 3,
1203
- paddingY: 2,
1204
- width: 80,
1205
- children: [
1206
- /* @__PURE__ */ jsx11(Text11, { bold: true, color: "cyan", children: "Rename Repository" }),
1207
- /* @__PURE__ */ jsx11(Box10, { height: 1, children: /* @__PURE__ */ jsx11(Text11, { children: " " }) }),
1208
- /* @__PURE__ */ jsxs10(Text11, { color: "gray", children: [
1209
- "Current: ",
1210
- repo.nameWithOwner
1211
- ] }),
1212
- /* @__PURE__ */ jsx11(Box10, { height: 1, children: /* @__PURE__ */ jsx11(Text11, { children: " " }) }),
1213
- /* @__PURE__ */ jsx11(Text11, { children: "New name:" }),
1214
- /* @__PURE__ */ jsxs10(Box10, { flexDirection: "row", alignItems: "center", children: [
1215
- /* @__PURE__ */ jsxs10(Text11, { children: [
1216
- owner,
1217
- "/"
1218
- ] }),
1219
- /* @__PURE__ */ jsx11(
1220
- TextInput3,
1221
- {
1222
- value: newName,
1223
- onChange: handleNameChange,
1224
- placeholder: repo.name,
1225
- focus: !renaming
1226
- }
1227
- )
1228
- ] }),
1229
- renaming ? /* @__PURE__ */ jsx11(Box10, { marginTop: 2, justifyContent: "center", children: /* @__PURE__ */ jsxs10(Box10, { flexDirection: "row", children: [
1230
- /* @__PURE__ */ jsx11(Box10, { marginRight: 1, children: /* @__PURE__ */ jsx11(SlowSpinner, {}) }),
1231
- /* @__PURE__ */ jsx11(Text11, { color: "cyan", children: "Renaming repository..." })
1232
- ] }) }) : /* @__PURE__ */ jsxs10(Fragment5, { children: [
1233
- /* @__PURE__ */ jsx11(Box10, { marginTop: 2, children: /* @__PURE__ */ jsx11(Text11, { color: "gray", children: isDisabled ? "Enter a different name to rename" : `Press Enter to rename to "${newName}"` }) }),
1234
- /* @__PURE__ */ jsx11(Box10, { marginTop: 1, children: /* @__PURE__ */ jsx11(Text11, { color: "gray", children: "Press Esc to cancel" }) })
1235
- ] }),
1236
- renameError && /* @__PURE__ */ jsx11(Box10, { marginTop: 1, children: /* @__PURE__ */ jsx11(Text11, { color: "red", children: renameError }) })
1237
- ]
1238
- }
1239
- );
1240
- }
1241
-
1242
- // src/ui/components/modals/CopyUrlModal.tsx
1243
- import { useState as useState11 } from "react";
1244
- import { Box as Box11, Text as Text12, useInput as useInput11 } from "ink";
1245
- import chalk10 from "chalk";
1246
- import { Fragment as Fragment6, jsx as jsx12, jsxs as jsxs11 } from "react/jsx-runtime";
1247
- function CopyUrlModal({ repo, terminalWidth, onClose, onCopy }) {
1248
- const [copyError, setCopyError] = useState11(null);
1249
- const [selectedType, setSelectedType] = useState11("SSH");
1250
- const urlTypes = ["SSH", "HTTPS"];
1251
- useInput11((input, key) => {
1252
- if (!repo) return;
1253
- const ch = input?.toLowerCase();
1254
- if (key.escape || ch === "c" || ch === "q") {
1255
- onClose();
1256
- return;
1257
- }
1258
- if (key.leftArrow || key.rightArrow) {
1259
- const currentIndex = urlTypes.indexOf(selectedType);
1260
- let newIndex;
1261
- if (key.leftArrow) {
1262
- newIndex = currentIndex === 0 ? urlTypes.length - 1 : currentIndex - 1;
1263
- } else {
1264
- newIndex = currentIndex === urlTypes.length - 1 ? 0 : currentIndex + 1;
1265
- }
1266
- setSelectedType(urlTypes[newIndex]);
1267
- return;
1268
- }
1269
- if (key.upArrow) {
1270
- setSelectedType("SSH");
1271
- return;
1272
- }
1273
- if (key.downArrow) {
1274
- setSelectedType("HTTPS");
1275
- return;
1276
- }
1277
- if (key.return || ch === "y") {
1278
- const sshUrl2 = `git@github.com:${repo.nameWithOwner}.git`;
1279
- const httpsUrl2 = `https://github.com/${repo.nameWithOwner}.git`;
1280
- const urlToCopy = selectedType === "SSH" ? sshUrl2 : httpsUrl2;
1281
- handleCopy(urlToCopy, selectedType);
1282
- return;
1283
- }
1284
- if (ch === "s") {
1285
- const sshUrl2 = `git@github.com:${repo.nameWithOwner}.git`;
1286
- handleCopy(sshUrl2, "SSH");
1287
- return;
1288
- }
1289
- if (ch === "h") {
1290
- const httpsUrl2 = `https://github.com/${repo.nameWithOwner}.git`;
1291
- handleCopy(httpsUrl2, "HTTPS");
1292
- return;
1293
- }
1294
- });
1295
- if (!repo) {
1296
- return /* @__PURE__ */ jsx12(Text12, { color: "red", children: "No repository selected." });
1297
- }
1298
- const sshUrl = `git@github.com:${repo.nameWithOwner}.git`;
1299
- const httpsUrl = `https://github.com/${repo.nameWithOwner}.git`;
1300
- const handleCopy = async (url, type) => {
1301
- try {
1302
- setCopyError(null);
1303
- await onCopy(url, type);
1304
- onClose();
1305
- } catch (error) {
1306
- const message = error instanceof Error ? error.message : String(error) || "Unknown error";
1307
- setCopyError(`Failed to copy ${type} URL: ${message}`);
1308
- }
1309
- };
1310
- return /* @__PURE__ */ jsxs11(
1311
- Box11,
1312
- {
1313
- flexDirection: "column",
1314
- borderStyle: "round",
1315
- borderColor: "blue",
1316
- paddingX: 3,
1317
- paddingY: 2,
1318
- width: Math.min(terminalWidth - 8, 80),
1319
- children: [
1320
- /* @__PURE__ */ jsx12(Text12, { bold: true, color: "blue", children: "Copy Repository URL" }),
1321
- /* @__PURE__ */ jsx12(Box11, { height: 1, children: /* @__PURE__ */ jsx12(Text12, { children: " " }) }),
1322
- /* @__PURE__ */ jsx12(Text12, { children: chalk10.bold(repo.nameWithOwner) }),
1323
- /* @__PURE__ */ jsx12(Box11, { height: 1, children: /* @__PURE__ */ jsx12(Text12, { children: " " }) }),
1324
- /* @__PURE__ */ jsx12(Text12, { color: "gray", children: "SSH URL:" }),
1325
- /* @__PURE__ */ jsx12(
1326
- Box11,
1327
- {
1328
- paddingX: 2,
1329
- paddingY: 1,
1330
- borderStyle: "single",
1331
- borderColor: selectedType === "SSH" ? "blue" : "gray",
1332
- children: /* @__PURE__ */ jsxs11(Text12, { color: selectedType === "SSH" ? "blue" : void 0, children: [
1333
- selectedType === "SSH" ? "\u25B6 " : " ",
1334
- sshUrl
1335
- ] })
1336
- }
1337
- ),
1338
- /* @__PURE__ */ jsx12(Box11, { height: 1, children: /* @__PURE__ */ jsx12(Text12, { children: " " }) }),
1339
- /* @__PURE__ */ jsx12(Text12, { color: "gray", children: "HTTPS URL:" }),
1340
- /* @__PURE__ */ jsx12(
1341
- Box11,
1342
- {
1343
- paddingX: 2,
1344
- paddingY: 1,
1345
- borderStyle: "single",
1346
- borderColor: selectedType === "HTTPS" ? "blue" : "gray",
1347
- children: /* @__PURE__ */ jsxs11(Text12, { color: selectedType === "HTTPS" ? "blue" : void 0, children: [
1348
- selectedType === "HTTPS" ? "\u25B6 " : " ",
1349
- httpsUrl
1350
- ] })
1351
- }
1352
- ),
1353
- /* @__PURE__ */ jsx12(Box11, { height: 1, children: /* @__PURE__ */ jsx12(Text12, { children: " " }) }),
1354
- /* @__PURE__ */ jsxs11(Text12, { color: "gray", children: [
1355
- "\u2191\u2193 Select \u2022 Enter/Y to copy ",
1356
- selectedType,
1357
- " \u2022 S copy SSH \u2022 H copy HTTPS \u2022 Esc/Q/C to close"
1358
- ] }),
1359
- copyError && /* @__PURE__ */ jsxs11(Fragment6, { children: [
1360
- /* @__PURE__ */ jsx12(Box11, { height: 1, children: /* @__PURE__ */ jsx12(Text12, { children: " " }) }),
1361
- /* @__PURE__ */ jsx12(Text12, { color: "red", children: copyError })
1362
- ] })
1363
- ]
1364
- }
1365
- );
1366
- }
1367
-
1368
1103
  // src/ui/components/repo/RepoRow.tsx
1369
- import { Box as Box12, Text as Text13 } from "ink";
1370
- import chalk11 from "chalk";
1371
- import { jsx as jsx13, jsxs as jsxs12 } from "react/jsx-runtime";
1104
+ import { Box as Box10, Text as Text11 } from "ink";
1105
+ import chalk10 from "chalk";
1106
+ import { jsx as jsx11, jsxs as jsxs10 } from "react/jsx-runtime";
1372
1107
  function RepoRow({
1373
1108
  repo,
1374
1109
  selected,
@@ -1384,50 +1119,50 @@ function RepoRow({
1384
1119
  const commitsBehind = hasCommitData ? repo.parent.defaultBranchRef.target.history.totalCount - repo.defaultBranchRef.target.history.totalCount : 0;
1385
1120
  const showCommitsBehind = forkTracking && hasCommitData;
1386
1121
  let line1 = "";
1387
- const numColor = selected ? chalk11.cyan : chalk11.gray;
1388
- const nameColor = selected ? chalk11.cyan.bold : chalk11.white;
1122
+ const numColor = selected ? chalk10.cyan : chalk10.gray;
1123
+ const nameColor = selected ? chalk10.cyan.bold : chalk10.white;
1389
1124
  line1 += numColor(`${String(index).padStart(3, " ")}.`);
1390
1125
  line1 += nameColor(` ${repo.nameWithOwner}`);
1391
1126
  if (repo.visibility === "INTERNAL") {
1392
- line1 += chalk11.magenta(" Internal");
1127
+ line1 += chalk10.magenta(" Internal");
1393
1128
  } else if (repo.visibility === "PRIVATE" || repo.isPrivate && !repo.visibility) {
1394
- line1 += chalk11.yellow(" Private");
1129
+ line1 += chalk10.yellow(" Private");
1395
1130
  }
1396
- if (repo.isArchived) line1 += " " + chalk11.bgGray.whiteBright(" Archived ") + " ";
1131
+ if (repo.isArchived) line1 += " " + chalk10.bgGray.whiteBright(" Archived ") + " ";
1397
1132
  if (repo.isFork && repo.parent) {
1398
- line1 += chalk11.blue(` Fork of ${repo.parent.nameWithOwner}`);
1133
+ line1 += chalk10.blue(` Fork of ${repo.parent.nameWithOwner}`);
1399
1134
  if (showCommitsBehind) {
1400
1135
  if (commitsBehind > 0) {
1401
- line1 += chalk11.yellow(` (${commitsBehind} behind)`);
1136
+ line1 += chalk10.yellow(` (${commitsBehind} behind)`);
1402
1137
  } else {
1403
- line1 += chalk11.green(` (0 behind)`);
1138
+ line1 += chalk10.green(` (0 behind)`);
1404
1139
  }
1405
1140
  }
1406
1141
  }
1407
1142
  let line2 = " ";
1408
- const metaColor = selected ? chalk11.white : chalk11.gray;
1409
- if (langName) line2 += chalk11.hex(langColor)("\u25CF ") + metaColor(`${langName} `);
1143
+ const metaColor = selected ? chalk10.white : chalk10.gray;
1144
+ if (langName) line2 += chalk10.hex(langColor)("\u25CF ") + metaColor(`${langName} `);
1410
1145
  line2 += metaColor(`\u2605 ${repo.stargazerCount} \u2442 ${repo.forkCount} Updated ${formatDate(repo.updatedAt)}`);
1411
1146
  const line3 = repo.description ? ` ${truncate(repo.description, Math.max(30, maxWidth - 10))}` : null;
1412
1147
  let fullText = line1 + "\n" + line2;
1413
1148
  if (line3) fullText += "\n" + metaColor(line3);
1414
1149
  const spacingAbove = Math.floor(spacingLines / 2);
1415
1150
  const spacingBelow = spacingLines - spacingAbove;
1416
- return /* @__PURE__ */ jsxs12(Box12, { flexDirection: "column", backgroundColor: selected ? "gray" : void 0, children: [
1417
- spacingAbove > 0 && /* @__PURE__ */ jsx13(Box12, { height: spacingAbove, children: /* @__PURE__ */ jsx13(Text13, { children: " " }) }),
1418
- /* @__PURE__ */ jsx13(Text13, { children: dim ? chalk11.dim(fullText) : fullText }),
1419
- spacingBelow > 0 && /* @__PURE__ */ jsx13(Box12, { height: spacingBelow, children: /* @__PURE__ */ jsx13(Text13, { children: " " }) })
1151
+ return /* @__PURE__ */ jsxs10(Box10, { flexDirection: "column", backgroundColor: selected ? "gray" : void 0, children: [
1152
+ spacingAbove > 0 && /* @__PURE__ */ jsx11(Box10, { height: spacingAbove, children: /* @__PURE__ */ jsx11(Text11, { children: " " }) }),
1153
+ /* @__PURE__ */ jsx11(Text11, { children: dim ? chalk10.dim(fullText) : fullText }),
1154
+ spacingBelow > 0 && /* @__PURE__ */ jsx11(Box10, { height: spacingBelow, children: /* @__PURE__ */ jsx11(Text11, { children: " " }) })
1420
1155
  ] });
1421
1156
  }
1422
1157
 
1423
1158
  // src/ui/components/repo/FilterInput.tsx
1424
- import { Box as Box13, Text as Text14 } from "ink";
1425
- import TextInput4 from "ink-text-input";
1426
- import { jsx as jsx14, jsxs as jsxs13 } from "react/jsx-runtime";
1159
+ import { Box as Box11, Text as Text12 } from "ink";
1160
+ import TextInput3 from "ink-text-input";
1161
+ import { jsx as jsx12, jsxs as jsxs11 } from "react/jsx-runtime";
1427
1162
 
1428
1163
  // src/ui/components/repo/RepoListHeader.tsx
1429
- import { Box as Box14, Text as Text15 } from "ink";
1430
- import { Fragment as Fragment7, jsx as jsx15, jsxs as jsxs14 } from "react/jsx-runtime";
1164
+ import { Box as Box12, Text as Text13 } from "ink";
1165
+ import { Fragment as Fragment5, jsx as jsx13, jsxs as jsxs12 } from "react/jsx-runtime";
1431
1166
  function RepoListHeader({
1432
1167
  ownerContext,
1433
1168
  sortKey,
@@ -1441,35 +1176,35 @@ function RepoListHeader({
1441
1176
  }) {
1442
1177
  const contextLabel = ownerContext === "personal" ? "Personal Account" : ownerContext?.type === "organization" ? `Organization: ${ownerContext.name ?? ownerContext.login}` : "";
1443
1178
  const visibilityLabel = visibilityFilter === "public" ? "Public" : visibilityFilter === "private" ? isEnterprise ? "Private/Internal" : "Private" : visibilityFilter === "internal" ? "Internal" : "";
1444
- return /* @__PURE__ */ jsxs14(Box14, { flexDirection: "row", gap: 2, marginBottom: 1, children: [
1445
- contextLabel && /* @__PURE__ */ jsx15(Text15, { children: contextLabel }),
1446
- /* @__PURE__ */ jsxs14(Text15, { color: "gray", dimColor: true, children: [
1179
+ return /* @__PURE__ */ jsxs12(Box12, { flexDirection: "row", gap: 2, marginBottom: 1, children: [
1180
+ contextLabel && /* @__PURE__ */ jsx13(Text13, { children: contextLabel }),
1181
+ /* @__PURE__ */ jsxs12(Text13, { color: "gray", dimColor: true, children: [
1447
1182
  "Sort: ",
1448
1183
  sortKey,
1449
1184
  " ",
1450
1185
  sortDir === "asc" ? "\u2191" : "\u2193"
1451
1186
  ] }),
1452
- /* @__PURE__ */ jsxs14(Text15, { color: "gray", dimColor: true, children: [
1187
+ /* @__PURE__ */ jsxs12(Text13, { color: "gray", dimColor: true, children: [
1453
1188
  "Fork Status - Commits Behind: ",
1454
1189
  forkTracking ? "ON" : "OFF"
1455
1190
  ] }),
1456
- !!visibilityLabel && /* @__PURE__ */ jsxs14(Text15, { color: "yellow", children: [
1191
+ !!visibilityLabel && /* @__PURE__ */ jsxs12(Text13, { color: "yellow", children: [
1457
1192
  "Visibility: ",
1458
1193
  visibilityLabel
1459
1194
  ] }),
1460
- filter && !searchActive && /* @__PURE__ */ jsxs14(Text15, { color: "cyan", children: [
1195
+ filter && !searchActive && /* @__PURE__ */ jsxs12(Text13, { color: "cyan", children: [
1461
1196
  'Filter: "',
1462
1197
  filter,
1463
1198
  '"'
1464
1199
  ] }),
1465
- searchActive && /* @__PURE__ */ jsxs14(Fragment7, { children: [
1466
- /* @__PURE__ */ jsxs14(Text15, { color: "cyan", children: [
1200
+ searchActive && /* @__PURE__ */ jsxs12(Fragment5, { children: [
1201
+ /* @__PURE__ */ jsxs12(Text13, { color: "cyan", children: [
1467
1202
  'Search: "',
1468
1203
  filter.trim(),
1469
1204
  '"'
1470
1205
  ] }),
1471
- searchLoading && /* @__PURE__ */ jsx15(Box14, { marginLeft: 1, children: /* @__PURE__ */ jsxs14(Text15, { color: "cyan", children: [
1472
- /* @__PURE__ */ jsx15(SlowSpinner, {}),
1206
+ searchLoading && /* @__PURE__ */ jsx13(Box12, { marginLeft: 1, children: /* @__PURE__ */ jsxs12(Text13, { color: "cyan", children: [
1207
+ /* @__PURE__ */ jsx13(SlowSpinner, {}),
1473
1208
  " Searching\u2026"
1474
1209
  ] }) })
1475
1210
  ] })
@@ -1477,7 +1212,7 @@ function RepoListHeader({
1477
1212
  }
1478
1213
 
1479
1214
  // src/ui/RepoList.tsx
1480
- import { Fragment as Fragment8, jsx as jsx16, jsxs as jsxs15 } from "react/jsx-runtime";
1215
+ import { Fragment as Fragment6, jsx as jsx14, jsxs as jsxs13 } from "react/jsx-runtime";
1481
1216
  var getPageSize = () => {
1482
1217
  const envValue = process.env.REPOS_PER_FETCH;
1483
1218
  if (envValue) {
@@ -1493,17 +1228,17 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
1493
1228
  const { exit } = useApp();
1494
1229
  const { stdout } = useStdout();
1495
1230
  const client = useMemo(() => makeClient(token), [token]);
1496
- const [debugMessages, setDebugMessages] = useState12([]);
1231
+ const [debugMessages, setDebugMessages] = useState10([]);
1497
1232
  const addDebugMessage = useCallback((msg) => {
1498
1233
  if (process.env.GH_MANAGER_DEBUG === "1") {
1499
1234
  setDebugMessages((prev) => [...prev.slice(-9), msg]);
1500
1235
  }
1501
1236
  }, []);
1502
1237
  const handleOrgContextChangeRef = useRef(onOrgContextChange);
1503
- useEffect8(() => {
1238
+ useEffect7(() => {
1504
1239
  handleOrgContextChangeRef.current = onOrgContextChange;
1505
1240
  }, [onOrgContextChange]);
1506
- React12.useEffect(() => {
1241
+ React10.useEffect(() => {
1507
1242
  addDebugMessage(`[RepoList] Component mounted`);
1508
1243
  logger.info("RepoList component mounted", {
1509
1244
  token: token ? "present" : "missing",
@@ -1515,76 +1250,64 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
1515
1250
  }, []);
1516
1251
  const terminalWidth = stdout?.columns ?? 80;
1517
1252
  const availableHeight = maxVisibleRows ?? 20;
1518
- const [items, setItems] = useState12([]);
1519
- const [cursor, setCursor] = useState12(0);
1520
- const [endCursor, setEndCursor] = useState12(null);
1521
- const [hasNextPage, setHasNextPage] = useState12(false);
1522
- const [totalCount, setTotalCount] = useState12(0);
1523
- const [loading, setLoading] = useState12(true);
1524
- const [sortingLoading, setSortingLoading] = useState12(false);
1525
- const [refreshing, setRefreshing] = useState12(false);
1526
- const [loadingMore, setLoadingMore] = useState12(false);
1527
- const [error, setError] = useState12(null);
1528
- const [rateLimit, setRateLimit] = useState12(void 0);
1529
- const [prevRateLimit, setPrevRateLimit] = useState12(void 0);
1530
- const [density, setDensity] = useState12(2);
1531
- const [prefsLoaded, setPrefsLoaded] = useState12(false);
1532
- const [ownerContext, setOwnerContext] = useState12("personal");
1533
- const [ownerAffiliations, setOwnerAffiliations] = useState12(["OWNER"]);
1534
- const [orgSwitcherOpen, setOrgSwitcherOpen] = useState12(false);
1535
- const [searchItems, setSearchItems] = useState12([]);
1536
- const [searchEndCursor, setSearchEndCursor] = useState12(null);
1537
- const [searchHasNextPage, setSearchHasNextPage] = useState12(false);
1538
- const [searchTotalCount, setSearchTotalCount] = useState12(0);
1539
- const [searchLoading, setSearchLoading] = useState12(false);
1540
- const [deleteMode, setDeleteMode] = useState12(false);
1541
- const [deleteTarget, setDeleteTarget] = useState12(null);
1542
- const [deleteCode, setDeleteCode] = useState12("");
1543
- const [typedCode, setTypedCode] = useState12("");
1544
- const [deleting, setDeleting] = useState12(false);
1545
- const [deleteError, setDeleteError] = useState12(null);
1546
- const [deleteConfirmStage, setDeleteConfirmStage] = useState12(false);
1547
- const [confirmFocus, setConfirmFocus] = useState12("delete");
1548
- const [archiveMode, setArchiveMode] = useState12(false);
1549
- const [archiveTarget, setArchiveTarget] = useState12(null);
1550
- const [archiving, setArchiving] = useState12(false);
1551
- const [archiveError, setArchiveError] = useState12(null);
1552
- const [archiveFocus, setArchiveFocus] = useState12("confirm");
1553
- const [renameMode, setRenameMode] = useState12(false);
1554
- const [renameTarget, setRenameTarget] = useState12(null);
1555
- const [syncMode, setSyncMode] = useState12(false);
1556
- const [syncTarget, setSyncTarget] = useState12(null);
1557
- const [syncing, setSyncing] = useState12(false);
1558
- const [syncError, setSyncError] = useState12(null);
1559
- const [syncFocus, setSyncFocus] = useState12("confirm");
1560
- const [syncTrigger, setSyncTrigger] = useState12(false);
1561
- const [infoMode, setInfoMode] = useState12(false);
1562
- const [infoRepo, setInfoRepo] = useState12(null);
1563
- const [logoutMode, setLogoutMode] = useState12(false);
1564
- const [logoutFocus, setLogoutFocus] = useState12("confirm");
1565
- const [logoutError, setLogoutError] = useState12(null);
1566
- const [visibilityMode, setVisibilityMode] = useState12(false);
1567
- const [isEnterpriseOrg, setIsEnterpriseOrg] = useState12(false);
1568
- const [hasInternalRepos, setHasInternalRepos] = useState12(false);
1569
- const [changeVisibilityMode, setChangeVisibilityMode] = useState12(false);
1570
- const [changeVisibilityTarget, setChangeVisibilityTarget] = useState12(null);
1571
- const [changingVisibility, setChangingVisibility] = useState12(false);
1572
- const [changeVisibilityError, setChangeVisibilityError] = useState12(null);
1573
- const [sortMode, setSortMode] = useState12(false);
1574
- const [copyUrlMode, setCopyUrlMode] = useState12(false);
1575
- const [copyUrlTarget, setCopyUrlTarget] = useState12(null);
1576
- const [copyToast, setCopyToast] = useState12(null);
1577
- const copyToastTimerRef = useRef(null);
1578
- useEffect8(() => {
1579
- return () => {
1580
- if (copyToastTimerRef.current) {
1581
- clearTimeout(copyToastTimerRef.current);
1582
- copyToastTimerRef.current = null;
1583
- }
1584
- };
1585
- }, []);
1253
+ const [items, setItems] = useState10([]);
1254
+ const [cursor, setCursor] = useState10(0);
1255
+ const [endCursor, setEndCursor] = useState10(null);
1256
+ const [hasNextPage, setHasNextPage] = useState10(false);
1257
+ const [totalCount, setTotalCount] = useState10(0);
1258
+ const [loading, setLoading] = useState10(true);
1259
+ const [sortingLoading, setSortingLoading] = useState10(false);
1260
+ const [refreshing, setRefreshing] = useState10(false);
1261
+ const [loadingMore, setLoadingMore] = useState10(false);
1262
+ const [error, setError] = useState10(null);
1263
+ const [rateLimit, setRateLimit] = useState10(void 0);
1264
+ const [prevRateLimit, setPrevRateLimit] = useState10(void 0);
1265
+ const [restRateLimit, setRestRateLimit] = useState10(void 0);
1266
+ const [prevRestRateLimit, setPrevRestRateLimit] = useState10(void 0);
1267
+ const [density, setDensity] = useState10(2);
1268
+ const [prefsLoaded, setPrefsLoaded] = useState10(false);
1269
+ const [ownerContext, setOwnerContext] = useState10("personal");
1270
+ const [ownerAffiliations, setOwnerAffiliations] = useState10(["OWNER"]);
1271
+ const [orgSwitcherOpen, setOrgSwitcherOpen] = useState10(false);
1272
+ const [searchItems, setSearchItems] = useState10([]);
1273
+ const [searchEndCursor, setSearchEndCursor] = useState10(null);
1274
+ const [searchHasNextPage, setSearchHasNextPage] = useState10(false);
1275
+ const [searchTotalCount, setSearchTotalCount] = useState10(0);
1276
+ const [searchLoading, setSearchLoading] = useState10(false);
1277
+ const [deleteMode, setDeleteMode] = useState10(false);
1278
+ const [deleteTarget, setDeleteTarget] = useState10(null);
1279
+ const [deleteCode, setDeleteCode] = useState10("");
1280
+ const [typedCode, setTypedCode] = useState10("");
1281
+ const [deleting, setDeleting] = useState10(false);
1282
+ const [deleteError, setDeleteError] = useState10(null);
1283
+ const [deleteConfirmStage, setDeleteConfirmStage] = useState10(false);
1284
+ const [confirmFocus, setConfirmFocus] = useState10("delete");
1285
+ const [archiveMode, setArchiveMode] = useState10(false);
1286
+ const [archiveTarget, setArchiveTarget] = useState10(null);
1287
+ const [archiving, setArchiving] = useState10(false);
1288
+ const [archiveError, setArchiveError] = useState10(null);
1289
+ const [archiveFocus, setArchiveFocus] = useState10("confirm");
1290
+ const [syncMode, setSyncMode] = useState10(false);
1291
+ const [syncTarget, setSyncTarget] = useState10(null);
1292
+ const [syncing, setSyncing] = useState10(false);
1293
+ const [syncError, setSyncError] = useState10(null);
1294
+ const [syncFocus, setSyncFocus] = useState10("confirm");
1295
+ const [syncTrigger, setSyncTrigger] = useState10(false);
1296
+ const [infoMode, setInfoMode] = useState10(false);
1297
+ const [infoRepo, setInfoRepo] = useState10(null);
1298
+ const [logoutMode, setLogoutMode] = useState10(false);
1299
+ const [logoutFocus, setLogoutFocus] = useState10("confirm");
1300
+ const [logoutError, setLogoutError] = useState10(null);
1301
+ const [visibilityMode, setVisibilityMode] = useState10(false);
1302
+ const [isEnterpriseOrg, setIsEnterpriseOrg] = useState10(false);
1303
+ const [hasInternalRepos, setHasInternalRepos] = useState10(false);
1304
+ const [changeVisibilityMode, setChangeVisibilityMode] = useState10(false);
1305
+ const [changeVisibilityTarget, setChangeVisibilityTarget] = useState10(null);
1306
+ const [changingVisibility, setChangingVisibility] = useState10(false);
1307
+ const [changeVisibilityError, setChangeVisibilityError] = useState10(null);
1308
+ const [sortMode, setSortMode] = useState10(false);
1586
1309
  const appliedInitialOrg = useRef(false);
1587
- useEffect8(() => {
1310
+ useEffect7(() => {
1588
1311
  (async () => {
1589
1312
  if (appliedInitialOrg.current) return;
1590
1313
  if (!initialOrgSlug2) return;
@@ -1619,10 +1342,6 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
1619
1342
  setArchiveError(null);
1620
1343
  setArchiveFocus("confirm");
1621
1344
  }
1622
- function closeRenameModal() {
1623
- setRenameMode(false);
1624
- setRenameTarget(null);
1625
- }
1626
1345
  function closeChangeVisibilityModal() {
1627
1346
  setChangeVisibilityMode(false);
1628
1347
  setChangeVisibilityTarget(null);
@@ -1637,42 +1356,6 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
1637
1356
  setSyncFocus("confirm");
1638
1357
  setSyncTrigger(false);
1639
1358
  }
1640
- function openCopyUrlModal(repo) {
1641
- setCopyUrlMode(true);
1642
- setCopyUrlTarget(repo);
1643
- setCopyToast(null);
1644
- }
1645
- function closeCopyUrlModal() {
1646
- setCopyUrlMode(false);
1647
- setCopyUrlTarget(null);
1648
- setCopyToast(null);
1649
- }
1650
- async function handleCopyUrl(url, type) {
1651
- try {
1652
- if (copyToastTimerRef.current) {
1653
- clearTimeout(copyToastTimerRef.current);
1654
- copyToastTimerRef.current = null;
1655
- }
1656
- await copyToClipboard(url);
1657
- setCopyToast(`Copied ${type} URL to clipboard`);
1658
- copyToastTimerRef.current = setTimeout(() => {
1659
- setCopyToast(null);
1660
- copyToastTimerRef.current = null;
1661
- }, 3e3);
1662
- } catch (error2) {
1663
- if (copyToastTimerRef.current) {
1664
- clearTimeout(copyToastTimerRef.current);
1665
- copyToastTimerRef.current = null;
1666
- }
1667
- const message = error2 instanceof Error ? error2.message : String(error2) || "Unknown error";
1668
- setCopyToast(`Failed to copy ${type} URL: ${message}`);
1669
- copyToastTimerRef.current = setTimeout(() => {
1670
- setCopyToast(null);
1671
- copyToastTimerRef.current = null;
1672
- }, 5e3);
1673
- throw error2;
1674
- }
1675
- }
1676
1359
  async function executeSync() {
1677
1360
  if (!syncTarget || syncing) return;
1678
1361
  try {
@@ -1733,22 +1416,6 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
1733
1416
  setArchiveError("Failed to update archive state. Check permissions.");
1734
1417
  }
1735
1418
  }
1736
- async function executeRename(repo, newName) {
1737
- if (!repo || !newName.trim()) return;
1738
- try {
1739
- const id = repo.id;
1740
- const owner = repo.nameWithOwner.split("/")[0];
1741
- const newNameWithOwner = `${owner}/${newName}`;
1742
- await renameRepositoryById(client, id, newName);
1743
- await updateCacheAfterRename(token, id, newName, newNameWithOwner);
1744
- const updateRepo = (r) => r.id === id ? { ...r, name: newName, nameWithOwner: newNameWithOwner } : r;
1745
- setItems((prev) => prev.map(updateRepo));
1746
- setSearchItems((prev) => prev.map(updateRepo));
1747
- closeRenameModal();
1748
- } catch (error2) {
1749
- throw error2;
1750
- }
1751
- }
1752
1419
  async function handleVisibilityChange(newVisibility) {
1753
1420
  if (!changeVisibilityTarget || changingVisibility) return;
1754
1421
  try {
@@ -1842,12 +1509,12 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
1842
1509
  setDeleteError("Failed to delete repository. Ensure delete_repo scope and admin permissions.");
1843
1510
  }
1844
1511
  }
1845
- const [filter, setFilter] = useState12("");
1846
- const [filterMode, setFilterMode] = useState12(false);
1847
- const [sortKey, setSortKey] = useState12("updated");
1848
- const [sortDir, setSortDir] = useState12("desc");
1849
- const [forkTracking, setForkTracking] = useState12(true);
1850
- const [visibilityFilter, setVisibilityFilter] = useState12("all");
1512
+ const [filter, setFilter] = useState10("");
1513
+ const [filterMode, setFilterMode] = useState10(false);
1514
+ const [sortKey, setSortKey] = useState10("updated");
1515
+ const [sortDir, setSortDir] = useState10("desc");
1516
+ const [forkTracking, setForkTracking] = useState10(true);
1517
+ const [visibilityFilter, setVisibilityFilter] = useState10("all");
1851
1518
  const previousVisibilityFilter = useRef("all");
1852
1519
  const sortFieldMap = {
1853
1520
  "updated": "UPDATED_AT",
@@ -1924,6 +1591,14 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
1924
1591
  setPrevRateLimit(rateLimit.remaining);
1925
1592
  }
1926
1593
  setRateLimit(page.rateLimit);
1594
+ fetchRestRateLimits(token).then((restLimits) => {
1595
+ if (restLimits && restRateLimit) {
1596
+ setPrevRestRateLimit(restRateLimit.core.remaining);
1597
+ }
1598
+ if (restLimits) {
1599
+ setRestRateLimit(restLimits);
1600
+ }
1601
+ });
1927
1602
  setError(null);
1928
1603
  } catch (e) {
1929
1604
  logger.error("Failed to fetch repositories in RepoList", {
@@ -2000,7 +1675,7 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2000
1675
  setSearchLoading(false);
2001
1676
  }
2002
1677
  };
2003
- useEffect8(() => {
1678
+ useEffect7(() => {
2004
1679
  const ui = getUIPrefs();
2005
1680
  if (ui.density !== void 0) setDensity(ui.density);
2006
1681
  if (ui.sortKey && ["updated", "pushed", "name", "stars"].includes(ui.sortKey)) {
@@ -2031,7 +1706,7 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2031
1706
  }
2032
1707
  setPrefsLoaded(true);
2033
1708
  }, [onOrgContextChange]);
2034
- useEffect8(() => {
1709
+ useEffect7(() => {
2035
1710
  if (!prefsLoaded) return;
2036
1711
  let policy = "cache-first";
2037
1712
  const orgLogin = ownerContext !== "personal" ? ownerContext.login : void 0;
@@ -2051,7 +1726,7 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2051
1726
  setCursor(0);
2052
1727
  fetchPage(null, true, false, void 0, policy);
2053
1728
  }, [client, prefsLoaded, ownerContext, ownerAffiliations]);
2054
- useEffect8(() => {
1729
+ useEffect7(() => {
2055
1730
  if (!searchActive) {
2056
1731
  if (items.length > 0) {
2057
1732
  let policy = "cache-first";
@@ -2090,7 +1765,7 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2090
1765
  }
2091
1766
  }
2092
1767
  }, [sortKey, sortDir]);
2093
- useEffect8(() => {
1768
+ useEffect7(() => {
2094
1769
  if (visibilityFilter !== "all" || previousVisibilityFilter.current && previousVisibilityFilter.current !== visibilityFilter) {
2095
1770
  if (!searchActive) {
2096
1771
  if (items.length > 0) {
@@ -2107,7 +1782,7 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2107
1782
  }
2108
1783
  previousVisibilityFilter.current = visibilityFilter;
2109
1784
  }, [visibilityFilter]);
2110
- useEffect8(() => {
1785
+ useEffect7(() => {
2111
1786
  if (viewerLogin && searchActive && !searchLoading && searchItems.length === 0) {
2112
1787
  let policy = "cache-first";
2113
1788
  try {
@@ -2128,7 +1803,7 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2128
1803
  fetchSearchPage(null, true, policy);
2129
1804
  }
2130
1805
  }, [viewerLogin]);
2131
- useInput12((input, key) => {
1806
+ useInput10((input, key) => {
2132
1807
  if (error) {
2133
1808
  if (input && input.toUpperCase() === "Q") {
2134
1809
  try {
@@ -2140,7 +1815,7 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2140
1815
  exit();
2141
1816
  return;
2142
1817
  }
2143
- if (input && input.toUpperCase() === "R" && !key.ctrl) {
1818
+ if (input && input.toUpperCase() === "R") {
2144
1819
  setCursor(0);
2145
1820
  setRefreshing(true);
2146
1821
  setSortingLoading(true);
@@ -2190,9 +1865,6 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2190
1865
  }
2191
1866
  return;
2192
1867
  }
2193
- if (renameMode) {
2194
- return;
2195
- }
2196
1868
  if (archiveMode) {
2197
1869
  if (key.escape || input && input.toUpperCase() === "C") {
2198
1870
  closeArchiveModal();
@@ -2285,9 +1957,6 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2285
1957
  if (sortMode) {
2286
1958
  return;
2287
1959
  }
2288
- if (copyUrlMode) {
2289
- return;
2290
- }
2291
1960
  if (filterMode) {
2292
1961
  if (key.escape) {
2293
1962
  setFilterMode(false);
@@ -2359,7 +2028,7 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2359
2028
  setCursor(visibleItems.length - 1);
2360
2029
  return;
2361
2030
  }
2362
- if (input && input.toUpperCase() === "R" && !key.ctrl) {
2031
+ if (input && input.toUpperCase() === "R") {
2363
2032
  setCursor(0);
2364
2033
  setRefreshing(true);
2365
2034
  setSortingLoading(true);
@@ -2387,14 +2056,6 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2387
2056
  }
2388
2057
  return;
2389
2058
  }
2390
- if (key.ctrl && (input === "r" || input === "R")) {
2391
- const repo = visibleItems[cursor];
2392
- if (repo) {
2393
- setRenameTarget(repo);
2394
- setRenameMode(true);
2395
- }
2396
- return;
2397
- }
2398
2059
  if (key.ctrl && (input === "v" || input === "V")) {
2399
2060
  const repo = visibleItems[cursor];
2400
2061
  if (repo) {
@@ -2452,13 +2113,6 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2452
2113
  setInfoMode(true);
2453
2114
  return;
2454
2115
  }
2455
- if (input && input.toUpperCase() === "C") {
2456
- const repo = visibleItems[cursor];
2457
- if (repo) {
2458
- openCopyUrlModal(repo);
2459
- }
2460
- return;
2461
- }
2462
2116
  if (input && input.toUpperCase() === "W") {
2463
2117
  setOrgSwitcherOpen(true);
2464
2118
  return;
@@ -2553,16 +2207,16 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2553
2207
  return result;
2554
2208
  }, [searchItems, visibilityFilter]);
2555
2209
  const visibleItems = searchActive ? filteredSearchItems : filteredAndSorted;
2556
- useEffect8(() => {
2210
+ useEffect7(() => {
2557
2211
  if (searchActive) {
2558
2212
  addDebugMessage(`[State] searchActive=${searchActive}, searchItems=${searchItems.length}, visibleItems=${visibleItems.length}, filter="${filter}"`);
2559
2213
  }
2560
2214
  }, [searchActive, searchItems.length, visibleItems.length, filter]);
2561
- useEffect8(() => {
2215
+ useEffect7(() => {
2562
2216
  setCursor((c) => Math.min(c, Math.max(0, (searchActive ? searchItems.length : items.length) - 1)));
2563
2217
  }, [searchActive, searchItems.length, items.length]);
2564
2218
  const headerHeight = 2;
2565
- const footerHeight = 5;
2219
+ const footerHeight = 4;
2566
2220
  const containerPadding = 2;
2567
2221
  const contentHeight = Math.max(1, availableHeight - headerHeight - footerHeight - containerPadding);
2568
2222
  const listHeight = Math.max(1, contentHeight - (filterMode ? 2 : 0) - 2);
@@ -2579,7 +2233,7 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2579
2233
  const end = Math.min(total, start + visibleRepos + buffer);
2580
2234
  return { start, end };
2581
2235
  }, [visibleItems.length, cursor, listHeight, spacingLines]);
2582
- useEffect8(() => {
2236
+ useEffect7(() => {
2583
2237
  const prefetchThreshold = Math.floor(visibleItems.length * 0.8);
2584
2238
  const nearEnd = visibleItems.length > 0 && cursor >= prefetchThreshold;
2585
2239
  if (searchActive) {
@@ -2599,96 +2253,98 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2599
2253
  const cmd = platform === "darwin" ? `open "${url}"` : platform === "win32" ? `start "" "${url}"` : `xdg-open "${url}"`;
2600
2254
  exec(cmd);
2601
2255
  }
2602
- const lowRate = rateLimit && rateLimit.remaining <= Math.ceil(rateLimit.limit * 0.1);
2603
- const modalOpen = deleteMode || archiveMode || syncMode || logoutMode || infoMode || visibilityMode || renameMode || sortMode || changeVisibilityMode || copyUrlMode;
2604
- const headerBar = useMemo(() => /* @__PURE__ */ jsxs15(Box15, { flexDirection: "row", justifyContent: "space-between", height: 1, marginBottom: 1, children: [
2605
- /* @__PURE__ */ jsxs15(Box15, { flexDirection: "row", gap: 1, children: [
2606
- /* @__PURE__ */ jsxs15(Text16, { color: "cyan", bold: !modalOpen, dimColor: modalOpen, children: [
2256
+ const lowRate = rateLimit && rateLimit.remaining <= Math.ceil(rateLimit.limit * 0.1) || restRateLimit && restRateLimit.core.remaining <= Math.ceil(restRateLimit.core.limit * 0.1);
2257
+ const modalOpen = deleteMode || archiveMode || syncMode || logoutMode || infoMode || visibilityMode;
2258
+ const headerBar = useMemo(() => /* @__PURE__ */ jsxs13(Box13, { flexDirection: "row", justifyContent: "space-between", height: 1, marginBottom: 1, children: [
2259
+ /* @__PURE__ */ jsxs13(Box13, { flexDirection: "row", gap: 1, children: [
2260
+ /* @__PURE__ */ jsxs13(Text14, { color: "cyan", bold: !modalOpen, dimColor: modalOpen, children: [
2607
2261
  " ",
2608
2262
  ownerContext === "personal" ? "Personal" : ownerContext.name || ownerContext.login,
2609
2263
  ownerContext !== "personal" && isEnterpriseOrg && " (ENT)"
2610
2264
  ] }),
2611
- /* @__PURE__ */ jsx16(Text16, { bold: true, color: modalOpen ? "gray" : void 0, dimColor: modalOpen ? true : void 0, children: "Repositories" }),
2612
- /* @__PURE__ */ jsxs15(Text16, { color: "gray", children: [
2265
+ /* @__PURE__ */ jsx14(Text14, { bold: true, color: modalOpen ? "gray" : void 0, dimColor: modalOpen ? true : void 0, children: "Repositories" }),
2266
+ /* @__PURE__ */ jsxs13(Text14, { color: "gray", children: [
2613
2267
  "(",
2614
2268
  visibleItems.length,
2615
2269
  "/",
2616
2270
  searchActive ? searchTotalCount : totalCount,
2617
2271
  ")"
2618
2272
  ] }),
2619
- (loading || searchLoading) && /* @__PURE__ */ jsx16(Box15, { width: 2, flexShrink: 0, flexGrow: 0, marginLeft: 1, children: /* @__PURE__ */ jsx16(Text16, { color: "yellow", children: /* @__PURE__ */ jsx16(SlowSpinner, {}) }) })
2273
+ (loading || searchLoading) && /* @__PURE__ */ jsx14(Box13, { width: 2, flexShrink: 0, flexGrow: 0, marginLeft: 1, children: /* @__PURE__ */ jsx14(Text14, { color: "yellow", children: /* @__PURE__ */ jsx14(SlowSpinner, {}) }) })
2620
2274
  ] }),
2621
- rateLimit && /* @__PURE__ */ jsxs15(Text16, { color: lowRate ? "yellow" : "gray", children: [
2622
- "API: ",
2623
- rateLimit.remaining,
2624
- "/",
2625
- rateLimit.limit,
2626
- prevRateLimit !== void 0 && prevRateLimit !== rateLimit.remaining && /* @__PURE__ */ jsx16(Text16, { color: rateLimit.remaining < prevRateLimit ? "red" : "green", children: ` (${rateLimit.remaining - prevRateLimit > 0 ? "+" : ""}${rateLimit.remaining - prevRateLimit})` }),
2275
+ (rateLimit || restRateLimit) && /* @__PURE__ */ jsxs13(Text14, { color: lowRate ? "yellow" : "gray", children: [
2276
+ "GraphQL: ",
2277
+ rateLimit ? `${rateLimit.remaining}/${rateLimit.limit}` : "---/---",
2278
+ prevRateLimit !== void 0 && rateLimit && prevRateLimit !== rateLimit.remaining && /* @__PURE__ */ jsx14(Text14, { color: rateLimit.remaining < prevRateLimit ? "red" : "green", children: ` (${rateLimit.remaining - prevRateLimit > 0 ? "+" : ""}${rateLimit.remaining - prevRateLimit})` }),
2279
+ " | ",
2280
+ "REST: ",
2281
+ restRateLimit ? `${restRateLimit.core.remaining}/${restRateLimit.core.limit}` : "---/---",
2282
+ prevRestRateLimit !== void 0 && restRateLimit && prevRestRateLimit !== restRateLimit.core.remaining && /* @__PURE__ */ jsx14(Text14, { color: restRateLimit.core.remaining < prevRestRateLimit ? "red" : "green", children: ` (${restRateLimit.core.remaining - prevRestRateLimit > 0 ? "+" : ""}${restRateLimit.core.remaining - prevRestRateLimit})` }),
2627
2283
  " "
2628
2284
  ] })
2629
- ] }), [visibleItems.length, searchActive, searchTotalCount, totalCount, loading, searchLoading, rateLimit, lowRate, modalOpen, prevRateLimit, ownerContext, isEnterpriseOrg]);
2285
+ ] }), [visibleItems.length, searchActive, searchTotalCount, totalCount, loading, searchLoading, rateLimit, lowRate, modalOpen, prevRateLimit, ownerContext, isEnterpriseOrg, restRateLimit, prevRestRateLimit]);
2630
2286
  if (error) {
2631
- return /* @__PURE__ */ jsxs15(Box15, { flexDirection: "column", height: availableHeight, children: [
2632
- /* @__PURE__ */ jsx16(Box15, { flexDirection: "row", justifyContent: "space-between", height: 1, marginBottom: 1, children: /* @__PURE__ */ jsxs15(Box15, { flexDirection: "row", gap: 1, children: [
2633
- /* @__PURE__ */ jsx16(Text16, { bold: true, children: " Repositories" }),
2634
- /* @__PURE__ */ jsx16(Text16, { color: "red", children: "(Error)" })
2287
+ return /* @__PURE__ */ jsxs13(Box13, { flexDirection: "column", height: availableHeight, children: [
2288
+ /* @__PURE__ */ jsx14(Box13, { flexDirection: "row", justifyContent: "space-between", height: 1, marginBottom: 1, children: /* @__PURE__ */ jsxs13(Box13, { flexDirection: "row", gap: 1, children: [
2289
+ /* @__PURE__ */ jsx14(Text14, { bold: true, children: " Repositories" }),
2290
+ /* @__PURE__ */ jsx14(Text14, { color: "red", children: "(Error)" })
2635
2291
  ] }) }),
2636
- /* @__PURE__ */ jsx16(Box15, { borderStyle: "single", borderColor: "red", paddingX: 1, paddingY: 1, marginX: 1, height: contentHeight + containerPadding + 2, flexDirection: "column", children: /* @__PURE__ */ jsx16(Box15, { height: contentHeight, justifyContent: "center", alignItems: "center", children: /* @__PURE__ */ jsxs15(Box15, { flexDirection: "column", alignItems: "center", children: [
2637
- /* @__PURE__ */ jsx16(Text16, { color: "red", children: error }),
2638
- /* @__PURE__ */ jsx16(Box15, { marginTop: 1, children: /* @__PURE__ */ jsx16(Text16, { color: "gray", dimColor: true, children: "Press R to retry \u2022 Ctrl+L to logout \u2022 Q to quit" }) })
2292
+ /* @__PURE__ */ jsx14(Box13, { borderStyle: "single", borderColor: "red", paddingX: 1, paddingY: 1, marginX: 1, height: contentHeight + containerPadding + 2, flexDirection: "column", children: /* @__PURE__ */ jsx14(Box13, { height: contentHeight, justifyContent: "center", alignItems: "center", children: /* @__PURE__ */ jsxs13(Box13, { flexDirection: "column", alignItems: "center", children: [
2293
+ /* @__PURE__ */ jsx14(Text14, { color: "red", children: error }),
2294
+ /* @__PURE__ */ jsx14(Box13, { marginTop: 1, children: /* @__PURE__ */ jsx14(Text14, { color: "gray", dimColor: true, children: "Press R to retry \u2022 Ctrl+L to logout \u2022 Q to quit" }) })
2639
2295
  ] }) }) }),
2640
- /* @__PURE__ */ jsx16(Box15, { marginTop: 1, paddingX: 1, children: /* @__PURE__ */ jsx16(Text16, { color: "gray", children: "Press R to retry \u2022 Ctrl+L to logout \u2022 Q to quit" }) })
2296
+ /* @__PURE__ */ jsx14(Box13, { marginTop: 1, paddingX: 1, children: /* @__PURE__ */ jsx14(Text14, { color: "gray", children: "Press R to retry \u2022 Ctrl+L to logout \u2022 Q to quit" }) })
2641
2297
  ] });
2642
2298
  }
2643
2299
  if (loading && items.length === 0 || sortingLoading) {
2644
- return /* @__PURE__ */ jsxs15(Box15, { flexDirection: "column", height: availableHeight, children: [
2645
- /* @__PURE__ */ jsx16(Box15, { flexDirection: "row", justifyContent: "space-between", height: 1, marginBottom: 1, children: /* @__PURE__ */ jsxs15(Box15, { flexDirection: "row", gap: 1, children: [
2646
- /* @__PURE__ */ jsx16(Text16, { bold: true, children: " Repositories" }),
2647
- /* @__PURE__ */ jsx16(Text16, { color: "gray", children: "(Loading...)" })
2300
+ return /* @__PURE__ */ jsxs13(Box13, { flexDirection: "column", height: availableHeight, children: [
2301
+ /* @__PURE__ */ jsx14(Box13, { flexDirection: "row", justifyContent: "space-between", height: 1, marginBottom: 1, children: /* @__PURE__ */ jsxs13(Box13, { flexDirection: "row", gap: 1, children: [
2302
+ /* @__PURE__ */ jsx14(Text14, { bold: true, children: " Repositories" }),
2303
+ /* @__PURE__ */ jsx14(Text14, { color: "gray", children: "(Loading...)" })
2648
2304
  ] }) }),
2649
- /* @__PURE__ */ jsx16(Box15, { borderStyle: "single", borderColor: "yellow", paddingX: 1, paddingY: 1, marginX: 1, height: contentHeight + containerPadding + 2, flexDirection: "column", children: /* @__PURE__ */ jsx16(Box15, { height: contentHeight, justifyContent: "center", alignItems: "center", children: /* @__PURE__ */ jsx16(Box15, { flexDirection: "column", alignItems: "center", children: /* @__PURE__ */ jsxs15(Box15, { flexDirection: "column", alignItems: "center", children: [
2650
- /* @__PURE__ */ jsxs15(Box15, { height: 1, flexDirection: "row", children: [
2651
- /* @__PURE__ */ jsx16(Box15, { width: 2, flexShrink: 0, flexGrow: 0, children: /* @__PURE__ */ jsx16(Text16, { color: "cyan", children: /* @__PURE__ */ jsx16(SlowSpinner, {}) }) }),
2652
- /* @__PURE__ */ jsx16(Text16, { color: "cyan", children: refreshing ? "Refreshing..." : sortingLoading ? "Applying sort..." : "Loading repositories..." })
2305
+ /* @__PURE__ */ jsx14(Box13, { borderStyle: "single", borderColor: "yellow", paddingX: 1, paddingY: 1, marginX: 1, height: contentHeight + containerPadding + 2, flexDirection: "column", children: /* @__PURE__ */ jsx14(Box13, { height: contentHeight, justifyContent: "center", alignItems: "center", children: /* @__PURE__ */ jsx14(Box13, { flexDirection: "column", alignItems: "center", children: /* @__PURE__ */ jsxs13(Box13, { flexDirection: "column", alignItems: "center", children: [
2306
+ /* @__PURE__ */ jsxs13(Box13, { height: 1, flexDirection: "row", children: [
2307
+ /* @__PURE__ */ jsx14(Box13, { width: 2, flexShrink: 0, flexGrow: 0, children: /* @__PURE__ */ jsx14(Text14, { color: "cyan", children: /* @__PURE__ */ jsx14(SlowSpinner, {}) }) }),
2308
+ /* @__PURE__ */ jsx14(Text14, { color: "cyan", children: refreshing ? "Refreshing..." : sortingLoading ? "Applying sort..." : "Loading repositories..." })
2653
2309
  ] }),
2654
- /* @__PURE__ */ jsx16(Box15, { height: 1, marginTop: 1, children: /* @__PURE__ */ jsx16(Text16, { color: "gray", children: refreshing ? "Fetching latest repository data" : sortingLoading ? `Sorting by ${sortKey} (${sortDir === "asc" ? "ascending" : "descending"})` : "Fetching your GitHub repositories" }) })
2310
+ /* @__PURE__ */ jsx14(Box13, { height: 1, marginTop: 1, children: /* @__PURE__ */ jsx14(Text14, { color: "gray", children: refreshing ? "Fetching latest repository data" : sortingLoading ? `Sorting by ${sortKey} (${sortDir === "asc" ? "ascending" : "descending"})` : "Fetching your GitHub repositories" }) })
2655
2311
  ] }) }) }) }),
2656
- /* @__PURE__ */ jsx16(Box15, { marginTop: 1, paddingX: 1, children: /* @__PURE__ */ jsx16(Text16, { color: "gray", children: "Please wait..." }) })
2312
+ /* @__PURE__ */ jsx14(Box13, { marginTop: 1, paddingX: 1, children: /* @__PURE__ */ jsx14(Text14, { color: "gray", children: "Please wait..." }) })
2657
2313
  ] });
2658
2314
  }
2659
- return /* @__PURE__ */ jsxs15(Box15, { flexDirection: "column", height: availableHeight, children: [
2315
+ return /* @__PURE__ */ jsxs13(Box13, { flexDirection: "column", height: availableHeight, children: [
2660
2316
  headerBar,
2661
- /* @__PURE__ */ jsx16(Box15, { borderStyle: "single", borderColor: modalOpen ? "gray" : "yellow", paddingX: 1, paddingY: 1, marginX: 1, height: contentHeight + containerPadding + 2, flexDirection: "column", children: deleteMode && deleteTarget ? (
2317
+ /* @__PURE__ */ jsx14(Box13, { borderStyle: "single", borderColor: modalOpen ? "gray" : "yellow", paddingX: 1, paddingY: 1, marginX: 1, height: contentHeight + containerPadding + 2, flexDirection: "column", children: deleteMode && deleteTarget ? (
2662
2318
  // Centered modal; hide list content while modal is open
2663
- /* @__PURE__ */ jsx16(Box15, { height: contentHeight, alignItems: "center", justifyContent: "center", children: /* @__PURE__ */ jsxs15(Box15, { flexDirection: "column", borderStyle: "round", borderColor: "red", paddingX: 3, paddingY: 2, width: Math.min(terminalWidth - 8, 80), children: [
2664
- /* @__PURE__ */ jsx16(Text16, { bold: true, children: "Delete Confirmation" }),
2665
- /* @__PURE__ */ jsx16(Text16, { color: "red", children: "\u26A0\uFE0F Delete repository?" }),
2666
- /* @__PURE__ */ jsx16(Box15, { height: 2, children: /* @__PURE__ */ jsx16(Text16, { children: " " }) }),
2319
+ /* @__PURE__ */ jsx14(Box13, { height: contentHeight, alignItems: "center", justifyContent: "center", children: /* @__PURE__ */ jsxs13(Box13, { flexDirection: "column", borderStyle: "round", borderColor: "red", paddingX: 3, paddingY: 2, width: Math.min(terminalWidth - 8, 80), children: [
2320
+ /* @__PURE__ */ jsx14(Text14, { bold: true, children: "Delete Confirmation" }),
2321
+ /* @__PURE__ */ jsx14(Text14, { color: "red", children: "\u26A0\uFE0F Delete repository?" }),
2322
+ /* @__PURE__ */ jsx14(Box13, { height: 2, children: /* @__PURE__ */ jsx14(Text14, { children: " " }) }),
2667
2323
  (() => {
2668
2324
  const langName = deleteTarget.primaryLanguage?.name || "";
2669
2325
  const langColor = deleteTarget.primaryLanguage?.color || "#666666";
2670
2326
  let line1 = "";
2671
- line1 += chalk12.white(deleteTarget.nameWithOwner);
2672
- if (deleteTarget.isPrivate) line1 += chalk12.yellow(" Private");
2673
- if (deleteTarget.isArchived) line1 += chalk12.gray.dim(" Archived");
2674
- if (deleteTarget.isFork && deleteTarget.parent) line1 += chalk12.blue(` Fork of ${deleteTarget.parent.nameWithOwner}`);
2327
+ line1 += chalk11.white(deleteTarget.nameWithOwner);
2328
+ if (deleteTarget.isPrivate) line1 += chalk11.yellow(" Private");
2329
+ if (deleteTarget.isArchived) line1 += chalk11.gray.dim(" Archived");
2330
+ if (deleteTarget.isFork && deleteTarget.parent) line1 += chalk11.blue(` Fork of ${deleteTarget.parent.nameWithOwner}`);
2675
2331
  let line2 = "";
2676
- if (langName) line2 += chalk12.hex(langColor)("\u25CF ") + chalk12.gray(`${langName} `);
2677
- line2 += chalk12.gray(`\u2605 ${deleteTarget.stargazerCount} \u2442 ${deleteTarget.forkCount} Updated ${formatDate(deleteTarget.updatedAt)}`);
2678
- return /* @__PURE__ */ jsxs15(Fragment8, { children: [
2679
- /* @__PURE__ */ jsx16(Text16, { children: line1 }),
2680
- /* @__PURE__ */ jsx16(Text16, { children: line2 })
2332
+ if (langName) line2 += chalk11.hex(langColor)("\u25CF ") + chalk11.gray(`${langName} `);
2333
+ line2 += chalk11.gray(`\u2605 ${deleteTarget.stargazerCount} \u2442 ${deleteTarget.forkCount} Updated ${formatDate(deleteTarget.updatedAt)}`);
2334
+ return /* @__PURE__ */ jsxs13(Fragment6, { children: [
2335
+ /* @__PURE__ */ jsx14(Text14, { children: line1 }),
2336
+ /* @__PURE__ */ jsx14(Text14, { children: line2 })
2681
2337
  ] });
2682
2338
  })(),
2683
- /* @__PURE__ */ jsx16(Box15, { marginTop: 1, children: /* @__PURE__ */ jsxs15(Text16, { children: [
2339
+ /* @__PURE__ */ jsx14(Box13, { marginTop: 1, children: /* @__PURE__ */ jsxs13(Text14, { children: [
2684
2340
  "Type ",
2685
- /* @__PURE__ */ jsx16(Text16, { color: "yellow", bold: true, children: deleteCode }),
2341
+ /* @__PURE__ */ jsx14(Text14, { color: "yellow", bold: true, children: deleteCode }),
2686
2342
  " to confirm."
2687
2343
  ] }) }),
2688
- !deleteConfirmStage && /* @__PURE__ */ jsxs15(Box15, { marginTop: 1, children: [
2689
- /* @__PURE__ */ jsx16(Text16, { children: "Confirm code: " }),
2690
- /* @__PURE__ */ jsx16(
2691
- TextInput5,
2344
+ !deleteConfirmStage && /* @__PURE__ */ jsxs13(Box13, { marginTop: 1, children: [
2345
+ /* @__PURE__ */ jsx14(Text14, { children: "Confirm code: " }),
2346
+ /* @__PURE__ */ jsx14(
2347
+ TextInput4,
2692
2348
  {
2693
2349
  value: typedCode,
2694
2350
  onChange: (v) => {
@@ -2714,11 +2370,11 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2714
2370
  }
2715
2371
  )
2716
2372
  ] }),
2717
- deleteConfirmStage && /* @__PURE__ */ jsxs15(Box15, { marginTop: 1, flexDirection: "column", children: [
2718
- /* @__PURE__ */ jsx16(Text16, { color: "red", children: "This action will permanently delete the repository. This cannot be undone." }),
2719
- /* @__PURE__ */ jsxs15(Box15, { marginTop: 1, flexDirection: "row", justifyContent: "center", gap: 6, children: [
2720
- /* @__PURE__ */ jsx16(
2721
- Box15,
2373
+ deleteConfirmStage && /* @__PURE__ */ jsxs13(Box13, { marginTop: 1, flexDirection: "column", children: [
2374
+ /* @__PURE__ */ jsx14(Text14, { color: "red", children: "This action will permanently delete the repository. This cannot be undone." }),
2375
+ /* @__PURE__ */ jsxs13(Box13, { marginTop: 1, flexDirection: "row", justifyContent: "center", gap: 6, children: [
2376
+ /* @__PURE__ */ jsx14(
2377
+ Box13,
2722
2378
  {
2723
2379
  borderStyle: "round",
2724
2380
  borderColor: "red",
@@ -2727,11 +2383,11 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2727
2383
  alignItems: "center",
2728
2384
  justifyContent: "center",
2729
2385
  flexDirection: "column",
2730
- children: /* @__PURE__ */ jsx16(Text16, { children: confirmFocus === "delete" ? chalk12.bgRed.white.bold(" Delete ") : chalk12.red.bold("Delete") })
2386
+ children: /* @__PURE__ */ jsx14(Text14, { children: confirmFocus === "delete" ? chalk11.bgRed.white.bold(" Delete ") : chalk11.red.bold("Delete") })
2731
2387
  }
2732
2388
  ),
2733
- /* @__PURE__ */ jsx16(
2734
- Box15,
2389
+ /* @__PURE__ */ jsx14(
2390
+ Box13,
2735
2391
  {
2736
2392
  borderStyle: "round",
2737
2393
  borderColor: confirmFocus === "cancel" ? "white" : "gray",
@@ -2740,17 +2396,17 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2740
2396
  alignItems: "center",
2741
2397
  justifyContent: "center",
2742
2398
  flexDirection: "column",
2743
- children: /* @__PURE__ */ jsx16(Text16, { children: confirmFocus === "cancel" ? chalk12.bgGray.white.bold(" Cancel ") : chalk12.gray.bold("Cancel") })
2399
+ children: /* @__PURE__ */ jsx14(Text14, { children: confirmFocus === "cancel" ? chalk11.bgGray.white.bold(" Cancel ") : chalk11.gray.bold("Cancel") })
2744
2400
  }
2745
2401
  )
2746
2402
  ] }),
2747
- /* @__PURE__ */ jsx16(Box15, { marginTop: 1, flexDirection: "row", justifyContent: "center", children: /* @__PURE__ */ jsxs15(Text16, { color: "gray", children: [
2403
+ /* @__PURE__ */ jsx14(Box13, { marginTop: 1, flexDirection: "row", justifyContent: "center", children: /* @__PURE__ */ jsxs13(Text14, { color: "gray", children: [
2748
2404
  "Press Enter to ",
2749
2405
  confirmFocus === "delete" ? "Delete" : "Cancel",
2750
2406
  " | Y to Delete | C to Cancel"
2751
2407
  ] }) }),
2752
- /* @__PURE__ */ jsx16(Box15, { marginTop: 1, children: /* @__PURE__ */ jsx16(
2753
- TextInput5,
2408
+ /* @__PURE__ */ jsx14(Box13, { marginTop: 1, children: /* @__PURE__ */ jsx14(
2409
+ TextInput4,
2754
2410
  {
2755
2411
  value: "",
2756
2412
  onChange: () => {
@@ -2763,18 +2419,18 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2763
2419
  }
2764
2420
  ) })
2765
2421
  ] }),
2766
- deleteError && /* @__PURE__ */ jsx16(Box15, { marginTop: 1, children: /* @__PURE__ */ jsx16(Text16, { color: "magenta", children: deleteError }) }),
2767
- deleting && /* @__PURE__ */ jsx16(Box15, { marginTop: 1, children: /* @__PURE__ */ jsx16(Text16, { color: "yellow", children: "Deleting..." }) })
2422
+ deleteError && /* @__PURE__ */ jsx14(Box13, { marginTop: 1, children: /* @__PURE__ */ jsx14(Text14, { color: "magenta", children: deleteError }) }),
2423
+ deleting && /* @__PURE__ */ jsx14(Box13, { marginTop: 1, children: /* @__PURE__ */ jsx14(Text14, { color: "yellow", children: "Deleting..." }) })
2768
2424
  ] }) })
2769
- ) : archiveMode && archiveTarget ? /* @__PURE__ */ jsx16(Box15, { height: contentHeight, alignItems: "center", justifyContent: "center", children: /* @__PURE__ */ jsxs15(Box15, { flexDirection: "column", borderStyle: "round", borderColor: archiveTarget.isArchived ? "green" : "yellow", paddingX: 3, paddingY: 2, width: Math.min(terminalWidth - 8, 80), children: [
2770
- /* @__PURE__ */ jsx16(Text16, { bold: true, children: archiveTarget.isArchived ? "Unarchive Confirmation" : "Archive Confirmation" }),
2771
- /* @__PURE__ */ jsx16(Text16, { color: archiveTarget.isArchived ? "green" : "yellow", children: archiveTarget.isArchived ? "\u21BA Unarchive repository?" : "\u26A0\uFE0F Archive repository?" }),
2772
- /* @__PURE__ */ jsx16(Box15, { height: 1, children: /* @__PURE__ */ jsx16(Text16, { children: " " }) }),
2773
- /* @__PURE__ */ jsx16(Text16, { children: archiveTarget.nameWithOwner }),
2774
- /* @__PURE__ */ jsx16(Box15, { marginTop: 1, children: /* @__PURE__ */ jsx16(Text16, { children: archiveTarget.isArchived ? "This will make the repository active again." : "This will make the repository read-only." }) }),
2775
- /* @__PURE__ */ jsxs15(Box15, { marginTop: 1, flexDirection: "row", justifyContent: "center", gap: 6, children: [
2776
- /* @__PURE__ */ jsx16(
2777
- Box15,
2425
+ ) : archiveMode && archiveTarget ? /* @__PURE__ */ jsx14(Box13, { height: contentHeight, alignItems: "center", justifyContent: "center", children: /* @__PURE__ */ jsxs13(Box13, { flexDirection: "column", borderStyle: "round", borderColor: archiveTarget.isArchived ? "green" : "yellow", paddingX: 3, paddingY: 2, width: Math.min(terminalWidth - 8, 80), children: [
2426
+ /* @__PURE__ */ jsx14(Text14, { bold: true, children: archiveTarget.isArchived ? "Unarchive Confirmation" : "Archive Confirmation" }),
2427
+ /* @__PURE__ */ jsx14(Text14, { color: archiveTarget.isArchived ? "green" : "yellow", children: archiveTarget.isArchived ? "\u21BA Unarchive repository?" : "\u26A0\uFE0F Archive repository?" }),
2428
+ /* @__PURE__ */ jsx14(Box13, { height: 1, children: /* @__PURE__ */ jsx14(Text14, { children: " " }) }),
2429
+ /* @__PURE__ */ jsx14(Text14, { children: archiveTarget.nameWithOwner }),
2430
+ /* @__PURE__ */ jsx14(Box13, { marginTop: 1, children: /* @__PURE__ */ jsx14(Text14, { children: archiveTarget.isArchived ? "This will make the repository active again." : "This will make the repository read-only." }) }),
2431
+ /* @__PURE__ */ jsxs13(Box13, { marginTop: 1, flexDirection: "row", justifyContent: "center", gap: 6, children: [
2432
+ /* @__PURE__ */ jsx14(
2433
+ Box13,
2778
2434
  {
2779
2435
  borderStyle: "round",
2780
2436
  borderColor: archiveTarget.isArchived ? "green" : "yellow",
@@ -2783,11 +2439,11 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2783
2439
  alignItems: "center",
2784
2440
  justifyContent: "center",
2785
2441
  flexDirection: "column",
2786
- children: /* @__PURE__ */ jsx16(Text16, { children: archiveFocus === "confirm" ? chalk12.bgGreen.white.bold(` ${archiveTarget.isArchived ? "Unarchive" : "Archive"} `) : chalk12.bold[archiveTarget.isArchived ? "green" : "yellow"](archiveTarget.isArchived ? "Unarchive" : "Archive") })
2442
+ children: /* @__PURE__ */ jsx14(Text14, { children: archiveFocus === "confirm" ? chalk11.bgGreen.white.bold(` ${archiveTarget.isArchived ? "Unarchive" : "Archive"} `) : chalk11.bold[archiveTarget.isArchived ? "green" : "yellow"](archiveTarget.isArchived ? "Unarchive" : "Archive") })
2787
2443
  }
2788
2444
  ),
2789
- /* @__PURE__ */ jsx16(
2790
- Box15,
2445
+ /* @__PURE__ */ jsx14(
2446
+ Box13,
2791
2447
  {
2792
2448
  borderStyle: "round",
2793
2449
  borderColor: archiveFocus === "cancel" ? "white" : "gray",
@@ -2796,19 +2452,19 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2796
2452
  alignItems: "center",
2797
2453
  justifyContent: "center",
2798
2454
  flexDirection: "column",
2799
- children: /* @__PURE__ */ jsx16(Text16, { children: archiveFocus === "cancel" ? chalk12.bgGray.white.bold(" Cancel ") : chalk12.gray.bold("Cancel") })
2455
+ children: /* @__PURE__ */ jsx14(Text14, { children: archiveFocus === "cancel" ? chalk11.bgGray.white.bold(" Cancel ") : chalk11.gray.bold("Cancel") })
2800
2456
  }
2801
2457
  )
2802
2458
  ] }),
2803
- /* @__PURE__ */ jsx16(Box15, { marginTop: 1, flexDirection: "row", justifyContent: "center", children: /* @__PURE__ */ jsxs15(Text16, { color: "gray", children: [
2459
+ /* @__PURE__ */ jsx14(Box13, { marginTop: 1, flexDirection: "row", justifyContent: "center", children: /* @__PURE__ */ jsxs13(Text14, { color: "gray", children: [
2804
2460
  "Press Enter to ",
2805
2461
  archiveFocus === "confirm" ? archiveTarget.isArchived ? "Unarchive" : "Archive" : "Cancel",
2806
2462
  " | Y to ",
2807
2463
  archiveTarget.isArchived ? "Unarchive" : "Archive",
2808
2464
  " | C to Cancel"
2809
2465
  ] }) }),
2810
- /* @__PURE__ */ jsx16(Box15, { marginTop: 1, children: /* @__PURE__ */ jsx16(
2811
- TextInput5,
2466
+ /* @__PURE__ */ jsx14(Box13, { marginTop: 1, children: /* @__PURE__ */ jsx14(
2467
+ TextInput4,
2812
2468
  {
2813
2469
  value: "",
2814
2470
  onChange: () => {
@@ -2822,28 +2478,21 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2822
2478
  }
2823
2479
  }
2824
2480
  ) }),
2825
- archiveError && /* @__PURE__ */ jsx16(Box15, { marginTop: 1, children: /* @__PURE__ */ jsx16(Text16, { color: "magenta", children: archiveError }) }),
2826
- archiving && /* @__PURE__ */ jsx16(Box15, { marginTop: 1, children: /* @__PURE__ */ jsx16(Text16, { color: "yellow", children: archiveTarget.isArchived ? "Unarchiving..." : "Archiving..." }) })
2827
- ] }) }) : renameMode && renameTarget ? /* @__PURE__ */ jsx16(Box15, { height: contentHeight, alignItems: "center", justifyContent: "center", children: /* @__PURE__ */ jsx16(
2828
- RenameModal,
2829
- {
2830
- repo: renameTarget,
2831
- onRename: executeRename,
2832
- onCancel: closeRenameModal
2833
- }
2834
- ) }) : syncMode && syncTarget ? /* @__PURE__ */ jsx16(Box15, { height: contentHeight, alignItems: "center", justifyContent: "center", children: /* @__PURE__ */ jsxs15(Box15, { flexDirection: "column", borderStyle: "round", borderColor: "blue", paddingX: 3, paddingY: 2, width: Math.min(terminalWidth - 8, 80), children: [
2835
- /* @__PURE__ */ jsx16(Text16, { bold: true, children: "Sync Fork Confirmation" }),
2836
- /* @__PURE__ */ jsx16(Text16, { color: "blue", children: "\u27F2 Sync fork with upstream?" }),
2837
- /* @__PURE__ */ jsx16(Box15, { height: 1, children: /* @__PURE__ */ jsx16(Text16, { children: " " }) }),
2838
- /* @__PURE__ */ jsx16(Text16, { children: syncTarget.nameWithOwner }),
2839
- syncTarget.parent && /* @__PURE__ */ jsxs15(Text16, { color: "gray", children: [
2481
+ archiveError && /* @__PURE__ */ jsx14(Box13, { marginTop: 1, children: /* @__PURE__ */ jsx14(Text14, { color: "magenta", children: archiveError }) }),
2482
+ archiving && /* @__PURE__ */ jsx14(Box13, { marginTop: 1, children: /* @__PURE__ */ jsx14(Text14, { color: "yellow", children: archiveTarget.isArchived ? "Unarchiving..." : "Archiving..." }) })
2483
+ ] }) }) : syncMode && syncTarget ? /* @__PURE__ */ jsx14(Box13, { height: contentHeight, alignItems: "center", justifyContent: "center", children: /* @__PURE__ */ jsxs13(Box13, { flexDirection: "column", borderStyle: "round", borderColor: "blue", paddingX: 3, paddingY: 2, width: Math.min(terminalWidth - 8, 80), children: [
2484
+ /* @__PURE__ */ jsx14(Text14, { bold: true, children: "Sync Fork Confirmation" }),
2485
+ /* @__PURE__ */ jsx14(Text14, { color: "blue", children: "\u27F2 Sync fork with upstream?" }),
2486
+ /* @__PURE__ */ jsx14(Box13, { height: 1, children: /* @__PURE__ */ jsx14(Text14, { children: " " }) }),
2487
+ /* @__PURE__ */ jsx14(Text14, { children: syncTarget.nameWithOwner }),
2488
+ syncTarget.parent && /* @__PURE__ */ jsxs13(Text14, { color: "gray", children: [
2840
2489
  "Upstream: ",
2841
2490
  syncTarget.parent.nameWithOwner
2842
2491
  ] }),
2843
- /* @__PURE__ */ jsx16(Box15, { marginTop: 1, children: /* @__PURE__ */ jsx16(Text16, { children: "This will merge upstream changes into your fork." }) }),
2844
- /* @__PURE__ */ jsxs15(Box15, { marginTop: 1, flexDirection: "row", justifyContent: "center", gap: 6, children: [
2845
- /* @__PURE__ */ jsx16(
2846
- Box15,
2492
+ /* @__PURE__ */ jsx14(Box13, { marginTop: 1, children: /* @__PURE__ */ jsx14(Text14, { children: "This will merge upstream changes into your fork." }) }),
2493
+ /* @__PURE__ */ jsxs13(Box13, { marginTop: 1, flexDirection: "row", justifyContent: "center", gap: 6, children: [
2494
+ /* @__PURE__ */ jsx14(
2495
+ Box13,
2847
2496
  {
2848
2497
  borderStyle: "round",
2849
2498
  borderColor: "blue",
@@ -2852,11 +2501,11 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2852
2501
  alignItems: "center",
2853
2502
  justifyContent: "center",
2854
2503
  flexDirection: "column",
2855
- children: /* @__PURE__ */ jsx16(Text16, { children: syncFocus === "confirm" ? chalk12.bgBlue.white.bold(" Sync ") : chalk12.blue.bold("Sync") })
2504
+ children: /* @__PURE__ */ jsx14(Text14, { children: syncFocus === "confirm" ? chalk11.bgBlue.white.bold(" Sync ") : chalk11.blue.bold("Sync") })
2856
2505
  }
2857
2506
  ),
2858
- /* @__PURE__ */ jsx16(
2859
- Box15,
2507
+ /* @__PURE__ */ jsx14(
2508
+ Box13,
2860
2509
  {
2861
2510
  borderStyle: "round",
2862
2511
  borderColor: syncFocus === "cancel" ? "white" : "gray",
@@ -2865,17 +2514,17 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2865
2514
  alignItems: "center",
2866
2515
  justifyContent: "center",
2867
2516
  flexDirection: "column",
2868
- children: /* @__PURE__ */ jsx16(Text16, { children: syncFocus === "cancel" ? chalk12.bgGray.white.bold(" Cancel ") : chalk12.gray.bold("Cancel") })
2517
+ children: /* @__PURE__ */ jsx14(Text14, { children: syncFocus === "cancel" ? chalk11.bgGray.white.bold(" Cancel ") : chalk11.gray.bold("Cancel") })
2869
2518
  }
2870
2519
  )
2871
2520
  ] }),
2872
- /* @__PURE__ */ jsx16(Box15, { marginTop: 1, flexDirection: "row", justifyContent: "center", children: /* @__PURE__ */ jsxs15(Text16, { color: "gray", children: [
2521
+ /* @__PURE__ */ jsx14(Box13, { marginTop: 1, flexDirection: "row", justifyContent: "center", children: /* @__PURE__ */ jsxs13(Text14, { color: "gray", children: [
2873
2522
  "Press Enter to ",
2874
2523
  syncFocus === "confirm" ? "Sync" : "Cancel",
2875
2524
  " | Y to Sync | C to Cancel"
2876
2525
  ] }) }),
2877
- /* @__PURE__ */ jsx16(Box15, { marginTop: 1, children: /* @__PURE__ */ jsx16(
2878
- TextInput5,
2526
+ /* @__PURE__ */ jsx14(Box13, { marginTop: 1, children: /* @__PURE__ */ jsx14(
2527
+ TextInput4,
2879
2528
  {
2880
2529
  value: "",
2881
2530
  onChange: () => {
@@ -2889,14 +2538,14 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2889
2538
  }
2890
2539
  }
2891
2540
  ) }),
2892
- syncError && /* @__PURE__ */ jsx16(Box15, { marginTop: 1, children: /* @__PURE__ */ jsx16(Text16, { color: "magenta", children: syncError }) }),
2893
- syncing && /* @__PURE__ */ jsx16(Box15, { marginTop: 1, children: /* @__PURE__ */ jsx16(Text16, { color: "yellow", children: "Syncing..." }) })
2894
- ] }) }) : logoutMode ? /* @__PURE__ */ jsx16(Box15, { height: contentHeight, alignItems: "center", justifyContent: "center", children: /* @__PURE__ */ jsxs15(Box15, { flexDirection: "column", borderStyle: "round", borderColor: "cyan", paddingX: 3, paddingY: 2, width: Math.min(terminalWidth - 8, 80), children: [
2895
- /* @__PURE__ */ jsx16(Text16, { bold: true, children: "Logout Confirmation" }),
2896
- /* @__PURE__ */ jsx16(Text16, { color: "cyan", children: "Are you sure you want to log out?" }),
2897
- /* @__PURE__ */ jsxs15(Box15, { marginTop: 1, flexDirection: "row", justifyContent: "center", gap: 6, children: [
2898
- /* @__PURE__ */ jsx16(
2899
- Box15,
2541
+ syncError && /* @__PURE__ */ jsx14(Box13, { marginTop: 1, children: /* @__PURE__ */ jsx14(Text14, { color: "magenta", children: syncError }) }),
2542
+ syncing && /* @__PURE__ */ jsx14(Box13, { marginTop: 1, children: /* @__PURE__ */ jsx14(Text14, { color: "yellow", children: "Syncing..." }) })
2543
+ ] }) }) : logoutMode ? /* @__PURE__ */ jsx14(Box13, { height: contentHeight, alignItems: "center", justifyContent: "center", children: /* @__PURE__ */ jsxs13(Box13, { flexDirection: "column", borderStyle: "round", borderColor: "cyan", paddingX: 3, paddingY: 2, width: Math.min(terminalWidth - 8, 80), children: [
2544
+ /* @__PURE__ */ jsx14(Text14, { bold: true, children: "Logout Confirmation" }),
2545
+ /* @__PURE__ */ jsx14(Text14, { color: "cyan", children: "Are you sure you want to log out?" }),
2546
+ /* @__PURE__ */ jsxs13(Box13, { marginTop: 1, flexDirection: "row", justifyContent: "center", gap: 6, children: [
2547
+ /* @__PURE__ */ jsx14(
2548
+ Box13,
2900
2549
  {
2901
2550
  borderStyle: "round",
2902
2551
  borderColor: "cyan",
@@ -2905,11 +2554,11 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2905
2554
  alignItems: "center",
2906
2555
  justifyContent: "center",
2907
2556
  flexDirection: "column",
2908
- children: /* @__PURE__ */ jsx16(Text16, { children: logoutFocus === "confirm" ? chalk12.bgCyan.white.bold(" Logout ") : chalk12.cyan.bold("Logout") })
2557
+ children: /* @__PURE__ */ jsx14(Text14, { children: logoutFocus === "confirm" ? chalk11.bgCyan.white.bold(" Logout ") : chalk11.cyan.bold("Logout") })
2909
2558
  }
2910
2559
  ),
2911
- /* @__PURE__ */ jsx16(
2912
- Box15,
2560
+ /* @__PURE__ */ jsx14(
2561
+ Box13,
2913
2562
  {
2914
2563
  borderStyle: "round",
2915
2564
  borderColor: logoutFocus === "cancel" ? "white" : "gray",
@@ -2918,16 +2567,16 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2918
2567
  alignItems: "center",
2919
2568
  justifyContent: "center",
2920
2569
  flexDirection: "column",
2921
- children: /* @__PURE__ */ jsx16(Text16, { children: logoutFocus === "cancel" ? chalk12.bgGray.white.bold(" Cancel ") : chalk12.gray.bold("Cancel") })
2570
+ children: /* @__PURE__ */ jsx14(Text14, { children: logoutFocus === "cancel" ? chalk11.bgGray.white.bold(" Cancel ") : chalk11.gray.bold("Cancel") })
2922
2571
  }
2923
2572
  )
2924
2573
  ] }),
2925
- /* @__PURE__ */ jsx16(Box15, { marginTop: 1, flexDirection: "row", justifyContent: "center", children: /* @__PURE__ */ jsxs15(Text16, { color: "gray", children: [
2574
+ /* @__PURE__ */ jsx14(Box13, { marginTop: 1, flexDirection: "row", justifyContent: "center", children: /* @__PURE__ */ jsxs13(Text14, { color: "gray", children: [
2926
2575
  "Press Enter to ",
2927
2576
  logoutFocus === "confirm" ? "Logout" : "Cancel",
2928
2577
  " | Y to Logout | C to Cancel"
2929
2578
  ] }) })
2930
- ] }) }) : orgSwitcherOpen ? /* @__PURE__ */ jsx16(Box15, { height: contentHeight, alignItems: "center", justifyContent: "center", children: /* @__PURE__ */ jsx16(
2579
+ ] }) }) : orgSwitcherOpen ? /* @__PURE__ */ jsx14(Box13, { height: contentHeight, alignItems: "center", justifyContent: "center", children: /* @__PURE__ */ jsx14(
2931
2580
  OrgSwitcher,
2932
2581
  {
2933
2582
  token,
@@ -2935,45 +2584,45 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2935
2584
  onSelect: handleOrgContextChange,
2936
2585
  onClose: () => setOrgSwitcherOpen(false)
2937
2586
  }
2938
- ) }) : infoMode ? /* @__PURE__ */ jsx16(Box15, { height: contentHeight, alignItems: "center", justifyContent: "center", children: (() => {
2587
+ ) }) : infoMode ? /* @__PURE__ */ jsx14(Box13, { height: contentHeight, alignItems: "center", justifyContent: "center", children: (() => {
2939
2588
  const repo = infoRepo || visibleItems[cursor];
2940
- if (!repo) return /* @__PURE__ */ jsx16(Text16, { color: "red", children: "No repository selected." });
2589
+ if (!repo) return /* @__PURE__ */ jsx14(Text14, { color: "red", children: "No repository selected." });
2941
2590
  const langName = repo.primaryLanguage?.name || "N/A";
2942
2591
  const langColor = repo.primaryLanguage?.color || "#666666";
2943
- return /* @__PURE__ */ jsxs15(Box15, { flexDirection: "column", borderStyle: "round", borderColor: "magenta", paddingX: 3, paddingY: 2, width: Math.min(terminalWidth - 8, 90), children: [
2944
- /* @__PURE__ */ jsxs15(Text16, { bold: true, children: [
2592
+ return /* @__PURE__ */ jsxs13(Box13, { flexDirection: "column", borderStyle: "round", borderColor: "magenta", paddingX: 3, paddingY: 2, width: Math.min(terminalWidth - 8, 90), children: [
2593
+ /* @__PURE__ */ jsxs13(Text14, { bold: true, children: [
2945
2594
  "Repository Info ",
2946
- infoRepo ? chalk12.dim("(cached)") : ""
2595
+ infoRepo ? chalk11.dim("(cached)") : ""
2947
2596
  ] }),
2948
- /* @__PURE__ */ jsx16(Box15, { height: 1, children: /* @__PURE__ */ jsx16(Text16, { children: " " }) }),
2949
- /* @__PURE__ */ jsx16(Text16, { children: chalk12.bold(repo.nameWithOwner) }),
2950
- repo.description && /* @__PURE__ */ jsx16(Text16, { color: "gray", children: repo.description }),
2951
- /* @__PURE__ */ jsx16(Box15, { height: 1, children: /* @__PURE__ */ jsx16(Text16, { children: " " }) }),
2952
- /* @__PURE__ */ jsxs15(Text16, { children: [
2953
- repo.visibility === "PRIVATE" ? chalk12.yellow("Private") : repo.visibility === "INTERNAL" ? chalk12.magenta("Internal") : chalk12.green("Public"),
2954
- repo.isArchived ? chalk12.gray(" Archived") : "",
2955
- repo.isFork ? chalk12.blue(" Fork") : ""
2597
+ /* @__PURE__ */ jsx14(Box13, { height: 1, children: /* @__PURE__ */ jsx14(Text14, { children: " " }) }),
2598
+ /* @__PURE__ */ jsx14(Text14, { children: chalk11.bold(repo.nameWithOwner) }),
2599
+ repo.description && /* @__PURE__ */ jsx14(Text14, { color: "gray", children: repo.description }),
2600
+ /* @__PURE__ */ jsx14(Box13, { height: 1, children: /* @__PURE__ */ jsx14(Text14, { children: " " }) }),
2601
+ /* @__PURE__ */ jsxs13(Text14, { children: [
2602
+ repo.visibility === "PRIVATE" ? chalk11.yellow("Private") : repo.visibility === "INTERNAL" ? chalk11.magenta("Internal") : chalk11.green("Public"),
2603
+ repo.isArchived ? chalk11.gray(" Archived") : "",
2604
+ repo.isFork ? chalk11.blue(" Fork") : ""
2956
2605
  ] }),
2957
- /* @__PURE__ */ jsx16(Text16, { children: chalk12.gray(`\u2605 ${repo.stargazerCount} \u2442 ${repo.forkCount}`) }),
2958
- /* @__PURE__ */ jsxs15(Text16, { children: [
2959
- chalk12.hex(langColor)(`\u25CF `),
2960
- chalk12.gray(`${langName}`)
2606
+ /* @__PURE__ */ jsx14(Text14, { children: chalk11.gray(`\u2605 ${repo.stargazerCount} \u2442 ${repo.forkCount}`) }),
2607
+ /* @__PURE__ */ jsxs13(Text14, { children: [
2608
+ chalk11.hex(langColor)(`\u25CF `),
2609
+ chalk11.gray(`${langName}`)
2961
2610
  ] }),
2962
- /* @__PURE__ */ jsxs15(Text16, { color: "gray", children: [
2611
+ /* @__PURE__ */ jsxs13(Text14, { color: "gray", children: [
2963
2612
  "Updated: ",
2964
2613
  formatDate(repo.updatedAt),
2965
2614
  " \u2022 Pushed: ",
2966
2615
  formatDate(repo.pushedAt)
2967
2616
  ] }),
2968
- /* @__PURE__ */ jsxs15(Text16, { color: "gray", children: [
2617
+ /* @__PURE__ */ jsxs13(Text14, { color: "gray", children: [
2969
2618
  "Size: ",
2970
2619
  repo.diskUsage,
2971
2620
  " KB"
2972
2621
  ] }),
2973
- /* @__PURE__ */ jsx16(Box15, { height: 1, children: /* @__PURE__ */ jsx16(Text16, { children: " " }) }),
2974
- /* @__PURE__ */ jsx16(Text16, { color: "gray", children: "Press Esc or I to close" })
2622
+ /* @__PURE__ */ jsx14(Box13, { height: 1, children: /* @__PURE__ */ jsx14(Text14, { children: " " }) }),
2623
+ /* @__PURE__ */ jsx14(Text14, { color: "gray", children: "Press Esc or I to close" })
2975
2624
  ] });
2976
- })() }) : visibilityMode ? /* @__PURE__ */ jsx16(Box15, { height: contentHeight, alignItems: "center", justifyContent: "center", children: /* @__PURE__ */ jsx16(
2625
+ })() }) : visibilityMode ? /* @__PURE__ */ jsx14(Box13, { height: contentHeight, alignItems: "center", justifyContent: "center", children: /* @__PURE__ */ jsx14(
2977
2626
  VisibilityModal,
2978
2627
  {
2979
2628
  currentFilter: visibilityFilter,
@@ -2986,7 +2635,7 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2986
2635
  },
2987
2636
  onCancel: () => setVisibilityMode(false)
2988
2637
  }
2989
- ) }) : sortMode ? /* @__PURE__ */ jsx16(Box15, { height: contentHeight, alignItems: "center", justifyContent: "center", children: /* @__PURE__ */ jsx16(
2638
+ ) }) : sortMode ? /* @__PURE__ */ jsx14(Box13, { height: contentHeight, alignItems: "center", justifyContent: "center", children: /* @__PURE__ */ jsx14(
2990
2639
  SortModal,
2991
2640
  {
2992
2641
  currentSort: sortKey,
@@ -2998,7 +2647,7 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
2998
2647
  },
2999
2648
  onCancel: () => setSortMode(false)
3000
2649
  }
3001
- ) }) : changeVisibilityMode && changeVisibilityTarget ? /* @__PURE__ */ jsx16(Box15, { height: contentHeight, alignItems: "center", justifyContent: "center", children: /* @__PURE__ */ jsx16(
2650
+ ) }) : changeVisibilityMode && changeVisibilityTarget ? /* @__PURE__ */ jsx14(Box13, { height: contentHeight, alignItems: "center", justifyContent: "center", children: /* @__PURE__ */ jsx14(
3002
2651
  ChangeVisibilityModal,
3003
2652
  {
3004
2653
  isOpen: changeVisibilityMode,
@@ -3011,16 +2660,8 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
3011
2660
  changing: changingVisibility,
3012
2661
  error: changeVisibilityError
3013
2662
  }
3014
- ) }) : copyUrlMode ? /* @__PURE__ */ jsx16(Box15, { height: contentHeight, alignItems: "center", justifyContent: "center", children: /* @__PURE__ */ jsx16(
3015
- CopyUrlModal,
3016
- {
3017
- repo: copyUrlTarget,
3018
- terminalWidth,
3019
- onClose: closeCopyUrlModal,
3020
- onCopy: handleCopyUrl
3021
- }
3022
- ) }) : /* @__PURE__ */ jsxs15(Fragment8, { children: [
3023
- /* @__PURE__ */ jsx16(
2663
+ ) }) : /* @__PURE__ */ jsxs13(Fragment6, { children: [
2664
+ /* @__PURE__ */ jsx14(
3024
2665
  RepoListHeader,
3025
2666
  {
3026
2667
  ownerContext,
@@ -3034,10 +2675,10 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
3034
2675
  isEnterprise: isEnterpriseOrg
3035
2676
  }
3036
2677
  ),
3037
- filterMode && /* @__PURE__ */ jsxs15(Box15, { marginBottom: 1, children: [
3038
- /* @__PURE__ */ jsx16(Text16, { children: "Search: " }),
3039
- /* @__PURE__ */ jsx16(
3040
- TextInput5,
2678
+ filterMode && /* @__PURE__ */ jsxs13(Box13, { marginBottom: 1, children: [
2679
+ /* @__PURE__ */ jsx14(Text14, { children: "Search: " }),
2680
+ /* @__PURE__ */ jsx14(
2681
+ TextInput4,
3041
2682
  {
3042
2683
  value: filter,
3043
2684
  onChange: (val) => {
@@ -3076,10 +2717,10 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
3076
2717
  }
3077
2718
  )
3078
2719
  ] }),
3079
- /* @__PURE__ */ jsxs15(Box15, { flexDirection: "column", height: listHeight, children: [
3080
- filterMode && filter.trim().length > 0 && filter.trim().length < 3 ? /* @__PURE__ */ jsx16(Box15, { justifyContent: "center", alignItems: "center", flexGrow: 1, children: /* @__PURE__ */ jsx16(Text16, { color: "gray", dimColor: true, children: "Type at least 3 characters to search" }) }) : visibleItems.slice(windowed.start, windowed.end).map((repo, i) => {
2720
+ /* @__PURE__ */ jsxs13(Box13, { flexDirection: "column", height: listHeight, children: [
2721
+ filterMode && filter.trim().length > 0 && filter.trim().length < 3 ? /* @__PURE__ */ jsx14(Box13, { justifyContent: "center", alignItems: "center", flexGrow: 1, children: /* @__PURE__ */ jsx14(Text14, { color: "gray", dimColor: true, children: "Type at least 3 characters to search" }) }) : visibleItems.slice(windowed.start, windowed.end).map((repo, i) => {
3081
2722
  const idx = windowed.start + i;
3082
- return /* @__PURE__ */ jsx16(
2723
+ return /* @__PURE__ */ jsx14(
3083
2724
  RepoRow,
3084
2725
  {
3085
2726
  repo,
@@ -3092,34 +2733,32 @@ function RepoList({ token, maxVisibleRows, onLogout, viewerLogin, onOrgContextCh
3092
2733
  repo.nameWithOwner
3093
2734
  );
3094
2735
  }),
3095
- loadingMore && hasNextPage && /* @__PURE__ */ jsx16(Box15, { justifyContent: "center", alignItems: "center", marginTop: 1, children: /* @__PURE__ */ jsxs15(Box15, { flexDirection: "row", children: [
3096
- /* @__PURE__ */ jsx16(Box15, { width: 2, flexShrink: 0, flexGrow: 0, marginRight: 1, children: /* @__PURE__ */ jsx16(Text16, { color: "cyan", children: /* @__PURE__ */ jsx16(SlowSpinner, {}) }) }),
3097
- /* @__PURE__ */ jsx16(Text16, { color: "cyan", children: "Loading more repositories..." })
2736
+ loadingMore && hasNextPage && /* @__PURE__ */ jsx14(Box13, { justifyContent: "center", alignItems: "center", marginTop: 1, children: /* @__PURE__ */ jsxs13(Box13, { flexDirection: "row", children: [
2737
+ /* @__PURE__ */ jsx14(Box13, { width: 2, flexShrink: 0, flexGrow: 0, marginRight: 1, children: /* @__PURE__ */ jsx14(Text14, { color: "cyan", children: /* @__PURE__ */ jsx14(SlowSpinner, {}) }) }),
2738
+ /* @__PURE__ */ jsx14(Text14, { color: "cyan", children: "Loading more repositories..." })
3098
2739
  ] }) }),
3099
- !loading && !searchLoading && visibleItems.length === 0 && /* @__PURE__ */ jsx16(Box15, { justifyContent: "center", alignItems: "center", flexGrow: 1, children: /* @__PURE__ */ jsx16(Text16, { color: "gray", dimColor: true, children: searchActive ? "No repositories match your search" : filter ? "No repositories match your filter" : "No repositories found" }) })
2740
+ !loading && !searchLoading && visibleItems.length === 0 && /* @__PURE__ */ jsx14(Box13, { justifyContent: "center", alignItems: "center", flexGrow: 1, children: /* @__PURE__ */ jsx14(Text14, { color: "gray", dimColor: true, children: searchActive ? "No repositories match your search" : filter ? "No repositories match your filter" : "No repositories found" }) })
3100
2741
  ] })
3101
2742
  ] }) }),
3102
- /* @__PURE__ */ jsxs15(Box15, { marginTop: 1, paddingX: 1, flexDirection: "column", children: [
3103
- /* @__PURE__ */ jsx16(Box15, { width: terminalWidth, justifyContent: "center", children: /* @__PURE__ */ jsx16(Text16, { color: "gray", dimColor: modalOpen ? true : void 0, children: "\u2191\u2193 Navigate \u2022 Ctrl+G Top \u2022 G Bottom \u2022 \u23CE/O Open \u2022 R Refresh" }) }),
3104
- /* @__PURE__ */ jsx16(Box15, { width: terminalWidth, justifyContent: "center", children: /* @__PURE__ */ jsx16(Text16, { color: "gray", dimColor: modalOpen ? true : void 0, children: "/ Search \u2022 S Sort \u2022 D Direction \u2022 T Density \u2022 F Fork Status \u2022 V Visibility" }) }),
3105
- /* @__PURE__ */ jsx16(Box15, { width: terminalWidth, justifyContent: "center", children: /* @__PURE__ */ jsx16(Text16, { color: "gray", dimColor: modalOpen ? true : void 0, children: "I Info \u2022 C Copy URL \u2022 Ctrl+R Rename \u2022 Ctrl+A Un/Archive \u2022 Ctrl+V Change Visibility \u2022 Ctrl+S Sync Fork" }) }),
3106
- /* @__PURE__ */ jsx16(Box15, { width: terminalWidth, justifyContent: "center", children: /* @__PURE__ */ jsx16(Text16, { color: "gray", dimColor: modalOpen ? true : void 0, children: "K Cache Info \u2022 W Org Switch \u2022 Del/Backspace Delete \u2022 Ctrl+L Logout \u2022 Q Quit" }) })
2743
+ /* @__PURE__ */ jsxs13(Box13, { marginTop: 1, paddingX: 1, flexDirection: "column", children: [
2744
+ /* @__PURE__ */ jsx14(Box13, { width: terminalWidth, justifyContent: "center", children: /* @__PURE__ */ jsx14(Text14, { color: "gray", dimColor: modalOpen ? true : void 0, children: "\u2191\u2193 Navigate \u2022 \u23CE/O Open \u2022 R Refresh \u2022 W Org Switch \u2022 Ctrl+L Logout \u2022 Q Quit" }) }),
2745
+ /* @__PURE__ */ jsx14(Box13, { width: terminalWidth, justifyContent: "center", children: /* @__PURE__ */ jsx14(Text14, { color: "gray", dimColor: modalOpen ? true : void 0, children: "Ctrl+G Top \u2022 G Bottom \u2022 / Search \u2022 S Sort \u2022 D Direction \u2022 T Density \u2022 F Fork Status \u2022 V Visibility" }) }),
2746
+ /* @__PURE__ */ jsx14(Box13, { width: terminalWidth, justifyContent: "center", children: /* @__PURE__ */ jsx14(Text14, { color: "gray", dimColor: modalOpen ? true : void 0, children: "I Info \u2022 K Cache Info \u2022 Ctrl+A Un/Archive \u2022 Ctrl+V Change Visibility \u2022 Del/Backspace Delete \u2022 Ctrl+S Sync Fork" }) })
3107
2747
  ] }),
3108
- process.env.GH_MANAGER_DEBUG === "1" && /* @__PURE__ */ jsxs15(Box15, { marginTop: 1, borderStyle: "single", borderColor: "yellow", paddingX: 1, flexDirection: "column", children: [
3109
- /* @__PURE__ */ jsx16(Text16, { bold: true, color: "yellow", children: "Debug Messages:" }),
3110
- debugMessages.length === 0 ? /* @__PURE__ */ jsx16(Text16, { color: "gray", children: "No debug messages yet..." }) : debugMessages.map((msg, i) => /* @__PURE__ */ jsx16(Text16, { color: "gray", children: msg }, i))
3111
- ] }),
3112
- copyToast && /* @__PURE__ */ jsx16(Box15, { marginTop: 1, justifyContent: "center", children: /* @__PURE__ */ jsx16(Box15, { borderStyle: "round", borderColor: copyToast.includes("Failed") ? "red" : "green", paddingX: 2, paddingY: 0, children: /* @__PURE__ */ jsx16(Text16, { color: copyToast.includes("Failed") ? "red" : "green", children: copyToast }) }) })
2748
+ process.env.GH_MANAGER_DEBUG === "1" && /* @__PURE__ */ jsxs13(Box13, { marginTop: 1, borderStyle: "single", borderColor: "yellow", paddingX: 1, flexDirection: "column", children: [
2749
+ /* @__PURE__ */ jsx14(Text14, { bold: true, color: "yellow", children: "Debug Messages:" }),
2750
+ debugMessages.length === 0 ? /* @__PURE__ */ jsx14(Text14, { color: "gray", children: "No debug messages yet..." }) : debugMessages.map((msg, i) => /* @__PURE__ */ jsx14(Text14, { color: "gray", children: msg }, i))
2751
+ ] })
3113
2752
  ] });
3114
2753
  }
3115
2754
 
3116
2755
  // src/ui/components/auth/AuthMethodSelector.tsx
3117
- import { useState as useState13 } from "react";
3118
- import { Box as Box16, Text as Text17, useInput as useInput13 } from "ink";
3119
- import chalk13 from "chalk";
3120
- import { jsx as jsx17, jsxs as jsxs16 } from "react/jsx-runtime";
2756
+ import { useState as useState11 } from "react";
2757
+ import { Box as Box14, Text as Text15, useInput as useInput11 } from "ink";
2758
+ import chalk12 from "chalk";
2759
+ import { jsx as jsx15, jsxs as jsxs14 } from "react/jsx-runtime";
3121
2760
  function AuthMethodSelector({ onSelect, onQuit }) {
3122
- const [selectedIndex, setSelectedIndex] = useState13(0);
2761
+ const [selectedIndex, setSelectedIndex] = useState11(0);
3123
2762
  const methods = [
3124
2763
  {
3125
2764
  key: "oauth",
@@ -3132,7 +2771,7 @@ function AuthMethodSelector({ onSelect, onQuit }) {
3132
2771
  description: "Manually enter a GitHub Personal Access Token"
3133
2772
  }
3134
2773
  ];
3135
- useInput13((input, key) => {
2774
+ useInput11((input, key) => {
3136
2775
  if (key.escape || input?.toLowerCase() === "q") {
3137
2776
  if (onQuit) {
3138
2777
  onQuit();
@@ -3151,34 +2790,34 @@ function AuthMethodSelector({ onSelect, onQuit }) {
3151
2790
  onSelect("pat");
3152
2791
  }
3153
2792
  });
3154
- return /* @__PURE__ */ jsxs16(Box16, { flexDirection: "column", borderStyle: "single", borderColor: "cyan", paddingX: 2, paddingY: 1, children: [
3155
- /* @__PURE__ */ jsx17(Text17, { bold: true, marginBottom: 1, children: "Choose Authentication Method" }),
3156
- /* @__PURE__ */ jsx17(Box16, { flexDirection: "column", marginY: 1, children: methods.map((method, index) => {
2793
+ return /* @__PURE__ */ jsxs14(Box14, { flexDirection: "column", borderStyle: "single", borderColor: "cyan", paddingX: 2, paddingY: 1, children: [
2794
+ /* @__PURE__ */ jsx15(Text15, { bold: true, marginBottom: 1, children: "Choose Authentication Method" }),
2795
+ /* @__PURE__ */ jsx15(Box14, { flexDirection: "column", marginY: 1, children: methods.map((method, index) => {
3157
2796
  const isSelected = index === selectedIndex;
3158
- const prefix = isSelected ? chalk13.cyan("\u203A") : " ";
2797
+ const prefix = isSelected ? chalk12.cyan("\u203A") : " ";
3159
2798
  const numberPrefix = `${index + 1}.`;
3160
- return /* @__PURE__ */ jsxs16(Box16, { flexDirection: "column", marginBottom: 1, children: [
3161
- /* @__PURE__ */ jsx17(Text17, { children: /* @__PURE__ */ jsxs16(Text17, { color: isSelected ? "cyan" : void 0, bold: isSelected, children: [
2799
+ return /* @__PURE__ */ jsxs14(Box14, { flexDirection: "column", marginBottom: 1, children: [
2800
+ /* @__PURE__ */ jsx15(Text15, { children: /* @__PURE__ */ jsxs14(Text15, { color: isSelected ? "cyan" : void 0, bold: isSelected, children: [
3162
2801
  prefix,
3163
2802
  " ",
3164
2803
  numberPrefix,
3165
2804
  " ",
3166
2805
  method.label
3167
2806
  ] }) }),
3168
- /* @__PURE__ */ jsxs16(Text17, { color: "gray", dimColor: true, children: [
2807
+ /* @__PURE__ */ jsxs14(Text15, { color: "gray", dimColor: true, children: [
3169
2808
  " ",
3170
2809
  method.description
3171
2810
  ] })
3172
2811
  ] }, method.key);
3173
2812
  }) }),
3174
- /* @__PURE__ */ jsx17(Text17, { color: "gray", dimColor: true, marginTop: 1, children: "Use arrow keys to navigate, Enter to select, or press 1/2 \u2022 Q/Esc to quit" })
2813
+ /* @__PURE__ */ jsx15(Text15, { color: "gray", dimColor: true, marginTop: 1, children: "Use arrow keys to navigate, Enter to select, or press 1/2 \u2022 Q/Esc to quit" })
3175
2814
  ] });
3176
2815
  }
3177
2816
 
3178
2817
  // src/ui/components/auth/OAuthProgress.tsx
3179
- import { Box as Box17, Text as Text18 } from "ink";
2818
+ import { Box as Box15, Text as Text16 } from "ink";
3180
2819
  import Spinner from "ink-spinner";
3181
- import { jsx as jsx18, jsxs as jsxs17 } from "react/jsx-runtime";
2820
+ import { jsx as jsx16, jsxs as jsxs15 } from "react/jsx-runtime";
3182
2821
  function OAuthProgress({ status, error, deviceCode }) {
3183
2822
  const statusMessages = {
3184
2823
  initializing: {
@@ -3215,69 +2854,69 @@ function OAuthProgress({ status, error, deviceCode }) {
3215
2854
  }
3216
2855
  };
3217
2856
  const { message, showSpinner } = statusMessages[status];
3218
- return /* @__PURE__ */ jsxs17(Box17, { flexDirection: "column", borderStyle: "single", borderColor: status === "error" ? "red" : "cyan", paddingX: 2, paddingY: 1, children: [
3219
- /* @__PURE__ */ jsx18(Text18, { bold: true, marginBottom: 1, children: "GitHub OAuth Authentication" }),
3220
- /* @__PURE__ */ jsx18(Box17, { marginY: 1, children: showSpinner ? /* @__PURE__ */ jsxs17(Box17, { children: [
3221
- /* @__PURE__ */ jsx18(Text18, { color: "green", children: /* @__PURE__ */ jsx18(Spinner, { type: "dots" }) }),
3222
- /* @__PURE__ */ jsxs17(Text18, { children: [
2857
+ return /* @__PURE__ */ jsxs15(Box15, { flexDirection: "column", borderStyle: "single", borderColor: status === "error" ? "red" : "cyan", paddingX: 2, paddingY: 1, children: [
2858
+ /* @__PURE__ */ jsx16(Text16, { bold: true, marginBottom: 1, children: "GitHub OAuth Authentication" }),
2859
+ /* @__PURE__ */ jsx16(Box15, { marginY: 1, children: showSpinner ? /* @__PURE__ */ jsxs15(Box15, { children: [
2860
+ /* @__PURE__ */ jsx16(Text16, { color: "green", children: /* @__PURE__ */ jsx16(Spinner, { type: "dots" }) }),
2861
+ /* @__PURE__ */ jsxs15(Text16, { children: [
3223
2862
  " ",
3224
2863
  message
3225
2864
  ] })
3226
- ] }) : /* @__PURE__ */ jsxs17(Text18, { color: status === "error" ? "red" : "green", children: [
2865
+ ] }) : /* @__PURE__ */ jsxs15(Text16, { color: status === "error" ? "red" : "green", children: [
3227
2866
  status === "error" ? "\u2717" : "\u2713",
3228
2867
  " ",
3229
2868
  message
3230
2869
  ] }) }),
3231
- (status === "waiting_for_authorization" || status === "polling_for_token") && deviceCode && /* @__PURE__ */ jsxs17(Box17, { marginY: 1, flexDirection: "column", children: [
3232
- /* @__PURE__ */ jsx18(Text18, { bold: true, color: "cyan", marginBottom: 1, children: "\u{1F4CB} Please complete these steps:" }),
3233
- /* @__PURE__ */ jsxs17(Box17, { marginBottom: 1, children: [
3234
- /* @__PURE__ */ jsx18(Text18, { children: "1. Visit: " }),
3235
- /* @__PURE__ */ jsx18(Text18, { bold: true, color: "blue", children: deviceCode.verification_uri })
2870
+ (status === "waiting_for_authorization" || status === "polling_for_token") && deviceCode && /* @__PURE__ */ jsxs15(Box15, { marginY: 1, flexDirection: "column", children: [
2871
+ /* @__PURE__ */ jsx16(Text16, { bold: true, color: "cyan", marginBottom: 1, children: "\u{1F4CB} Please complete these steps:" }),
2872
+ /* @__PURE__ */ jsxs15(Box15, { marginBottom: 1, children: [
2873
+ /* @__PURE__ */ jsx16(Text16, { children: "1. Visit: " }),
2874
+ /* @__PURE__ */ jsx16(Text16, { bold: true, color: "blue", children: deviceCode.verification_uri })
3236
2875
  ] }),
3237
- /* @__PURE__ */ jsxs17(Box17, { marginBottom: 1, flexDirection: "column", children: [
3238
- /* @__PURE__ */ jsx18(Text18, { children: "2. Enter this code:" }),
3239
- /* @__PURE__ */ jsx18(Box17, { borderStyle: "single", borderColor: "yellow", paddingX: 2, paddingY: 1, marginTop: 1, children: /* @__PURE__ */ jsx18(Text18, { bold: true, color: "yellow", children: deviceCode.user_code }) })
2876
+ /* @__PURE__ */ jsxs15(Box15, { marginBottom: 1, flexDirection: "column", children: [
2877
+ /* @__PURE__ */ jsx16(Text16, { children: "2. Enter this code:" }),
2878
+ /* @__PURE__ */ jsx16(Box15, { borderStyle: "single", borderColor: "yellow", paddingX: 2, paddingY: 1, marginTop: 1, children: /* @__PURE__ */ jsx16(Text16, { bold: true, color: "yellow", children: deviceCode.user_code }) })
3240
2879
  ] }),
3241
- status === "waiting_for_authorization" && /* @__PURE__ */ jsx18(Text18, { color: "gray", marginTop: 1, children: "Your browser should open automatically." }),
3242
- status === "polling_for_token" && /* @__PURE__ */ jsxs17(Box17, { flexDirection: "column", marginTop: 1, children: [
3243
- /* @__PURE__ */ jsx18(Text18, { color: "gray", children: "Waiting for you to complete authorization in your browser..." }),
3244
- /* @__PURE__ */ jsx18(Text18, { color: "gray", dimColor: true, marginTop: 1, children: "This will timeout in 15 minutes. Press Esc to cancel." })
2880
+ status === "waiting_for_authorization" && /* @__PURE__ */ jsx16(Text16, { color: "gray", marginTop: 1, children: "Your browser should open automatically." }),
2881
+ status === "polling_for_token" && /* @__PURE__ */ jsxs15(Box15, { flexDirection: "column", marginTop: 1, children: [
2882
+ /* @__PURE__ */ jsx16(Text16, { color: "gray", children: "Waiting for you to complete authorization in your browser..." }),
2883
+ /* @__PURE__ */ jsx16(Text16, { color: "gray", dimColor: true, marginTop: 1, children: "This will timeout in 15 minutes. Press Esc to cancel." })
3245
2884
  ] })
3246
2885
  ] }),
3247
- status === "error" && error && /* @__PURE__ */ jsxs17(Box17, { marginY: 1, flexDirection: "column", children: [
3248
- /* @__PURE__ */ jsx18(Text18, { color: "red", children: error }),
3249
- /* @__PURE__ */ jsx18(Text18, { color: "gray", marginTop: 1, children: "Press Esc to go back and try again." })
2886
+ status === "error" && error && /* @__PURE__ */ jsxs15(Box15, { marginY: 1, flexDirection: "column", children: [
2887
+ /* @__PURE__ */ jsx16(Text16, { color: "red", children: error }),
2888
+ /* @__PURE__ */ jsx16(Text16, { color: "gray", marginTop: 1, children: "Press Esc to go back and try again." })
3250
2889
  ] }),
3251
- status === "success" && /* @__PURE__ */ jsx18(Text18, { color: "gray", marginTop: 1, children: "Returning to application..." })
2890
+ status === "success" && /* @__PURE__ */ jsx16(Text16, { color: "gray", marginTop: 1, children: "Returning to application..." })
3252
2891
  ] });
3253
2892
  }
3254
2893
 
3255
2894
  // src/ui/App.tsx
3256
- import { jsx as jsx19, jsxs as jsxs18 } from "react/jsx-runtime";
2895
+ import { jsx as jsx17, jsxs as jsxs16 } from "react/jsx-runtime";
3257
2896
  var packageJson = require_package();
3258
2897
  function App({ initialOrgSlug: initialOrgSlug2, inlineToken: inlineToken2, inlineTokenEphemeral }) {
3259
2898
  const { exit } = useApp2();
3260
2899
  const { stdout } = useStdout2();
3261
- const [mode, setMode] = useState14("checking");
3262
- const [token, setToken] = useState14(null);
3263
- const [input, setInput] = useState14("");
3264
- const [error, setError] = useState14(null);
3265
- const [viewer, setViewer] = useState14(null);
3266
- const [rateLimitReset, setRateLimitReset] = useState14(null);
3267
- const [wasRateLimited, setWasRateLimited] = useState14(false);
3268
- const [orgContext, setOrgContext] = useState14("personal");
3269
- const [authMethod, setAuthMethod] = useState14("pat");
3270
- const [oauthStatus, setOAuthStatus] = useState14("initializing");
3271
- const [tokenSource, setTokenSource] = useState14("pat");
3272
- const [sessionTokenOrigin, setSessionTokenOrigin] = useState14("stored");
3273
- const [deviceCodeResponse, setDeviceCodeResponse] = useState14(null);
3274
- const [oauthDeviceCode, setOauthDeviceCode] = useState14(null);
3275
- const [dims, setDims] = useState14(() => {
2900
+ const [mode, setMode] = useState12("checking");
2901
+ const [token, setToken] = useState12(null);
2902
+ const [input, setInput] = useState12("");
2903
+ const [error, setError] = useState12(null);
2904
+ const [viewer, setViewer] = useState12(null);
2905
+ const [rateLimitReset, setRateLimitReset] = useState12(null);
2906
+ const [wasRateLimited, setWasRateLimited] = useState12(false);
2907
+ const [orgContext, setOrgContext] = useState12("personal");
2908
+ const [authMethod, setAuthMethod] = useState12("pat");
2909
+ const [oauthStatus, setOAuthStatus] = useState12("initializing");
2910
+ const [tokenSource, setTokenSource] = useState12("pat");
2911
+ const [sessionTokenOrigin, setSessionTokenOrigin] = useState12("stored");
2912
+ const [deviceCodeResponse, setDeviceCodeResponse] = useState12(null);
2913
+ const [oauthDeviceCode, setOauthDeviceCode] = useState12(null);
2914
+ const [dims, setDims] = useState12(() => {
3276
2915
  const cols = stdout?.columns ?? 100;
3277
2916
  const rows = stdout?.rows ?? 30;
3278
2917
  return { cols, rows };
3279
2918
  });
3280
- useEffect9(() => {
2919
+ useEffect8(() => {
3281
2920
  if (!stdout) return;
3282
2921
  const onResize = () => {
3283
2922
  const cols = stdout.columns ?? 100;
@@ -3289,7 +2928,7 @@ function App({ initialOrgSlug: initialOrgSlug2, inlineToken: inlineToken2, inlin
3289
2928
  stdout.off?.("resize", onResize);
3290
2929
  };
3291
2930
  }, [stdout]);
3292
- useEffect9(() => {
2931
+ useEffect8(() => {
3293
2932
  const env = getTokenFromEnv();
3294
2933
  const stored = getStoredToken();
3295
2934
  const source = getTokenSource();
@@ -3313,7 +2952,7 @@ function App({ initialOrgSlug: initialOrgSlug2, inlineToken: inlineToken2, inlin
3313
2952
  setMode("auth_method_selection");
3314
2953
  }
3315
2954
  }, [inlineToken2]);
3316
- useEffect9(() => {
2955
+ useEffect8(() => {
3317
2956
  if (mode !== "oauth_flow") return;
3318
2957
  (async () => {
3319
2958
  try {
@@ -3365,7 +3004,7 @@ function App({ initialOrgSlug: initialOrgSlug2, inlineToken: inlineToken2, inlin
3365
3004
  setMode("oauth_flow");
3366
3005
  }
3367
3006
  };
3368
- useEffect9(() => {
3007
+ useEffect8(() => {
3369
3008
  (async () => {
3370
3009
  if (mode !== "validating" || !token) return;
3371
3010
  const timeoutId = setTimeout(() => {
@@ -3477,7 +3116,7 @@ function App({ initialOrgSlug: initialOrgSlug2, inlineToken: inlineToken2, inlin
3477
3116
  setTokenSource("pat");
3478
3117
  setMode("auth_method_selection");
3479
3118
  };
3480
- useInput14((input2, key) => {
3119
+ useInput12((input2, key) => {
3481
3120
  if ((mode === "prompt" || mode === "auth_method_selection") && key.escape) {
3482
3121
  exit();
3483
3122
  }
@@ -3509,19 +3148,19 @@ function App({ initialOrgSlug: initialOrgSlug2, inlineToken: inlineToken2, inlin
3509
3148
  }
3510
3149
  });
3511
3150
  const verticalPadding = Math.floor(dims.rows * 0.15);
3512
- const header = useMemo2(() => /* @__PURE__ */ jsxs18(Box18, { flexDirection: "row", justifyContent: "space-between", marginBottom: 1, children: [
3513
- /* @__PURE__ */ jsxs18(Box18, { flexDirection: "row", gap: 1, children: [
3514
- /* @__PURE__ */ jsxs18(Text19, { bold: true, color: "cyan", children: [
3151
+ const header = useMemo2(() => /* @__PURE__ */ jsxs16(Box16, { flexDirection: "row", justifyContent: "space-between", marginBottom: 1, children: [
3152
+ /* @__PURE__ */ jsxs16(Box16, { flexDirection: "row", gap: 1, children: [
3153
+ /* @__PURE__ */ jsxs16(Text17, { bold: true, color: "cyan", children: [
3515
3154
  " ",
3516
3155
  "GitHub Repository Manager"
3517
3156
  ] }),
3518
- /* @__PURE__ */ jsxs18(Text19, { color: "gray", dimColor: true, children: [
3157
+ /* @__PURE__ */ jsxs16(Text17, { color: "gray", dimColor: true, children: [
3519
3158
  "v",
3520
3159
  packageJson.version
3521
3160
  ] }),
3522
- process.env.GH_MANAGER_DEBUG === "1" && /* @__PURE__ */ jsx19(Text19, { backgroundColor: "blue", color: "white", children: " debug mode " })
3161
+ process.env.GH_MANAGER_DEBUG === "1" && /* @__PURE__ */ jsx17(Text17, { backgroundColor: "blue", color: "white", children: " debug mode " })
3523
3162
  ] }),
3524
- viewer && /* @__PURE__ */ jsx19(Text19, { color: "gray", children: orgContext !== "personal" && orgContext.login ? `${orgContext.login}/@${viewer} ` : `@${viewer} ` })
3163
+ viewer && /* @__PURE__ */ jsx17(Text17, { color: "gray", children: orgContext !== "personal" && orgContext.login ? `${orgContext.login}/@${viewer} ` : `@${viewer} ` })
3525
3164
  ] }), [viewer, orgContext]);
3526
3165
  if (mode === "rate_limited") {
3527
3166
  const formatResetTime = (resetTime) => {
@@ -3544,71 +3183,71 @@ function App({ initialOrgSlug: initialOrgSlug2, inlineToken: inlineToken2, inlin
3544
3183
  return "Unknown";
3545
3184
  }
3546
3185
  };
3547
- return /* @__PURE__ */ jsxs18(Box18, { flexDirection: "column", height: dims.rows, paddingX: 2, paddingTop: verticalPadding, paddingBottom: verticalPadding, children: [
3186
+ return /* @__PURE__ */ jsxs16(Box16, { flexDirection: "column", height: dims.rows, paddingX: 2, paddingTop: verticalPadding, paddingBottom: verticalPadding, children: [
3548
3187
  header,
3549
- /* @__PURE__ */ jsx19(Box18, { flexGrow: 1, justifyContent: "center", alignItems: "center", children: /* @__PURE__ */ jsxs18(Box18, { borderStyle: "single", borderColor: "yellow", paddingX: 3, paddingY: 2, flexDirection: "column", width: Math.min(dims.cols - 8, 80), children: [
3550
- /* @__PURE__ */ jsx19(Text19, { bold: true, color: "yellow", marginBottom: 1, children: "\u26A0\uFE0F Rate Limit Exceeded" }),
3551
- /* @__PURE__ */ jsx19(Text19, { color: "gray", marginBottom: 1, children: "You've hit GitHub's API rate limit for your token." }),
3552
- /* @__PURE__ */ jsx19(Text19, { color: "gray", marginBottom: 1, children: "This happens when you make too many requests in a short time." }),
3553
- rateLimitReset && /* @__PURE__ */ jsxs18(Box18, { marginTop: 1, marginBottom: 1, children: [
3554
- /* @__PURE__ */ jsxs18(Text19, { children: [
3555
- /* @__PURE__ */ jsx19(Text19, { color: "cyan", children: "Reset in:" }),
3188
+ /* @__PURE__ */ jsx17(Box16, { flexGrow: 1, justifyContent: "center", alignItems: "center", children: /* @__PURE__ */ jsxs16(Box16, { borderStyle: "single", borderColor: "yellow", paddingX: 3, paddingY: 2, flexDirection: "column", width: Math.min(dims.cols - 8, 80), children: [
3189
+ /* @__PURE__ */ jsx17(Text17, { bold: true, color: "yellow", marginBottom: 1, children: "\u26A0\uFE0F Rate Limit Exceeded" }),
3190
+ /* @__PURE__ */ jsx17(Text17, { color: "gray", marginBottom: 1, children: "You've hit GitHub's API rate limit for your token." }),
3191
+ /* @__PURE__ */ jsx17(Text17, { color: "gray", marginBottom: 1, children: "This happens when you make too many requests in a short time." }),
3192
+ rateLimitReset && /* @__PURE__ */ jsxs16(Box16, { marginTop: 1, marginBottom: 1, children: [
3193
+ /* @__PURE__ */ jsxs16(Text17, { children: [
3194
+ /* @__PURE__ */ jsx17(Text17, { color: "cyan", children: "Reset in:" }),
3556
3195
  " ",
3557
- /* @__PURE__ */ jsx19(Text19, { bold: true, children: formatResetTime(rateLimitReset) })
3196
+ /* @__PURE__ */ jsx17(Text17, { bold: true, children: formatResetTime(rateLimitReset) })
3558
3197
  ] }),
3559
- /* @__PURE__ */ jsxs18(Text19, { color: "gray", dimColor: true, children: [
3198
+ /* @__PURE__ */ jsxs16(Text17, { color: "gray", dimColor: true, children: [
3560
3199
  "(",
3561
3200
  new Date(rateLimitReset).toLocaleTimeString(),
3562
3201
  ")"
3563
3202
  ] })
3564
3203
  ] }),
3565
- /* @__PURE__ */ jsxs18(Box18, { marginTop: 2, flexDirection: "column", gap: 1, children: [
3566
- /* @__PURE__ */ jsx19(Text19, { bold: true, children: "What would you like to do?" }),
3567
- /* @__PURE__ */ jsxs18(Box18, { flexDirection: "column", paddingLeft: 2, children: [
3568
- /* @__PURE__ */ jsxs18(Text19, { children: [
3569
- /* @__PURE__ */ jsx19(Text19, { color: "cyan", bold: true, children: "R" }),
3204
+ /* @__PURE__ */ jsxs16(Box16, { marginTop: 2, flexDirection: "column", gap: 1, children: [
3205
+ /* @__PURE__ */ jsx17(Text17, { bold: true, children: "What would you like to do?" }),
3206
+ /* @__PURE__ */ jsxs16(Box16, { flexDirection: "column", paddingLeft: 2, children: [
3207
+ /* @__PURE__ */ jsxs16(Text17, { children: [
3208
+ /* @__PURE__ */ jsx17(Text17, { color: "cyan", bold: true, children: "R" }),
3570
3209
  " - Retry now ",
3571
3210
  rateLimitReset && formatResetTime(rateLimitReset) !== "Now (should be reset)" ? "(likely to fail until reset)" : "(should work now)"
3572
3211
  ] }),
3573
- /* @__PURE__ */ jsxs18(Text19, { children: [
3574
- /* @__PURE__ */ jsx19(Text19, { color: "cyan", bold: true, children: "L" }),
3212
+ /* @__PURE__ */ jsxs16(Text17, { children: [
3213
+ /* @__PURE__ */ jsx17(Text17, { color: "cyan", bold: true, children: "L" }),
3575
3214
  " - Logout and choose authentication method"
3576
3215
  ] }),
3577
- /* @__PURE__ */ jsxs18(Text19, { children: [
3578
- /* @__PURE__ */ jsx19(Text19, { color: "gray", bold: true, children: "Q/Esc" }),
3216
+ /* @__PURE__ */ jsxs16(Text17, { children: [
3217
+ /* @__PURE__ */ jsx17(Text17, { color: "gray", bold: true, children: "Q/Esc" }),
3579
3218
  " - Quit application"
3580
3219
  ] })
3581
3220
  ] })
3582
3221
  ] }),
3583
- /* @__PURE__ */ jsx19(Text19, { color: "gray", dimColor: true, marginTop: 2, children: "Tip: Using multiple tokens or waiting between requests can help avoid rate limits." })
3222
+ /* @__PURE__ */ jsx17(Text17, { color: "gray", dimColor: true, marginTop: 2, children: "Tip: Using multiple tokens or waiting between requests can help avoid rate limits." })
3584
3223
  ] }) })
3585
3224
  ] });
3586
3225
  }
3587
3226
  if (mode === "auth_method_selection") {
3588
- return /* @__PURE__ */ jsxs18(Box18, { flexDirection: "column", height: dims.rows, paddingX: 2, paddingTop: verticalPadding, paddingBottom: verticalPadding, children: [
3227
+ return /* @__PURE__ */ jsxs16(Box16, { flexDirection: "column", height: dims.rows, paddingX: 2, paddingTop: verticalPadding, paddingBottom: verticalPadding, children: [
3589
3228
  header,
3590
- /* @__PURE__ */ jsx19(Box18, { flexGrow: 1, justifyContent: "center", alignItems: "center", children: /* @__PURE__ */ jsxs18(Box18, { flexDirection: "column", alignItems: "center", children: [
3591
- /* @__PURE__ */ jsx19(AuthMethodSelector, { onSelect: handleAuthMethodSelect }),
3592
- error && /* @__PURE__ */ jsx19(Text19, { color: "red", marginTop: 1, children: error })
3229
+ /* @__PURE__ */ jsx17(Box16, { flexGrow: 1, justifyContent: "center", alignItems: "center", children: /* @__PURE__ */ jsxs16(Box16, { flexDirection: "column", alignItems: "center", children: [
3230
+ /* @__PURE__ */ jsx17(AuthMethodSelector, { onSelect: handleAuthMethodSelect }),
3231
+ error && /* @__PURE__ */ jsx17(Text17, { color: "red", marginTop: 1, children: error })
3593
3232
  ] }) })
3594
3233
  ] });
3595
3234
  }
3596
3235
  if (mode === "oauth_flow") {
3597
- return /* @__PURE__ */ jsxs18(Box18, { flexDirection: "column", height: dims.rows, paddingX: 2, paddingTop: verticalPadding, paddingBottom: verticalPadding, children: [
3236
+ return /* @__PURE__ */ jsxs16(Box16, { flexDirection: "column", height: dims.rows, paddingX: 2, paddingTop: verticalPadding, paddingBottom: verticalPadding, children: [
3598
3237
  header,
3599
- /* @__PURE__ */ jsx19(Box18, { flexGrow: 1, justifyContent: "center", alignItems: "center", children: /* @__PURE__ */ jsx19(OAuthProgress, { status: oauthStatus, error: error || void 0, deviceCode: oauthDeviceCode || void 0 }) })
3238
+ /* @__PURE__ */ jsx17(Box16, { flexGrow: 1, justifyContent: "center", alignItems: "center", children: /* @__PURE__ */ jsx17(OAuthProgress, { status: oauthStatus, error: error || void 0, deviceCode: oauthDeviceCode || void 0 }) })
3600
3239
  ] });
3601
3240
  }
3602
3241
  if (mode === "prompt") {
3603
- return /* @__PURE__ */ jsxs18(Box18, { flexDirection: "column", height: dims.rows, paddingX: 2, paddingTop: verticalPadding, paddingBottom: verticalPadding, children: [
3242
+ return /* @__PURE__ */ jsxs16(Box16, { flexDirection: "column", height: dims.rows, paddingX: 2, paddingTop: verticalPadding, paddingBottom: verticalPadding, children: [
3604
3243
  header,
3605
- /* @__PURE__ */ jsx19(Box18, { flexGrow: 1, justifyContent: "center", alignItems: "center", children: /* @__PURE__ */ jsxs18(Box18, { borderStyle: "single", borderColor: "cyan", paddingX: 2, paddingY: 1, flexDirection: "column", children: [
3606
- /* @__PURE__ */ jsx19(Text19, { bold: true, marginBottom: 1, children: "Authentication Required" }),
3607
- /* @__PURE__ */ jsx19(Text19, { color: "gray", marginBottom: 1, children: "Enter your GitHub Personal Access Token" }),
3608
- /* @__PURE__ */ jsxs18(Box18, { children: [
3609
- /* @__PURE__ */ jsx19(Text19, { children: "Token: " }),
3610
- /* @__PURE__ */ jsx19(
3611
- TextInput6,
3244
+ /* @__PURE__ */ jsx17(Box16, { flexGrow: 1, justifyContent: "center", alignItems: "center", children: /* @__PURE__ */ jsxs16(Box16, { borderStyle: "single", borderColor: "cyan", paddingX: 2, paddingY: 1, flexDirection: "column", children: [
3245
+ /* @__PURE__ */ jsx17(Text17, { bold: true, marginBottom: 1, children: "Authentication Required" }),
3246
+ /* @__PURE__ */ jsx17(Text17, { color: "gray", marginBottom: 1, children: "Enter your GitHub Personal Access Token" }),
3247
+ /* @__PURE__ */ jsxs16(Box16, { children: [
3248
+ /* @__PURE__ */ jsx17(Text17, { children: "Token: " }),
3249
+ /* @__PURE__ */ jsx17(
3250
+ TextInput5,
3612
3251
  {
3613
3252
  value: input,
3614
3253
  onChange: setInput,
@@ -3617,30 +3256,30 @@ function App({ initialOrgSlug: initialOrgSlug2, inlineToken: inlineToken2, inlin
3617
3256
  }
3618
3257
  )
3619
3258
  ] }),
3620
- error && /* @__PURE__ */ jsx19(Text19, { color: "red", marginTop: 1, children: error }),
3621
- /* @__PURE__ */ jsx19(Text19, { color: "gray", dimColor: true, marginTop: 1, children: "The token will be stored securely in your local config" }),
3622
- /* @__PURE__ */ jsx19(Text19, { color: "gray", dimColor: true, marginTop: 1, children: "Press Esc to go back" })
3259
+ error && /* @__PURE__ */ jsx17(Text17, { color: "red", marginTop: 1, children: error }),
3260
+ /* @__PURE__ */ jsx17(Text17, { color: "gray", dimColor: true, marginTop: 1, children: "The token will be stored securely in your local config" }),
3261
+ /* @__PURE__ */ jsx17(Text17, { color: "gray", dimColor: true, marginTop: 1, children: "Press Esc to go back" })
3623
3262
  ] }) })
3624
3263
  ] });
3625
3264
  }
3626
3265
  if (mode === "validating" || mode === "checking") {
3627
- return /* @__PURE__ */ jsxs18(Box18, { flexDirection: "column", height: dims.rows, paddingX: 2, paddingTop: verticalPadding, paddingBottom: verticalPadding, children: [
3266
+ return /* @__PURE__ */ jsxs16(Box16, { flexDirection: "column", height: dims.rows, paddingX: 2, paddingTop: verticalPadding, paddingBottom: verticalPadding, children: [
3628
3267
  header,
3629
- /* @__PURE__ */ jsx19(Box18, { flexGrow: 1, justifyContent: "center", alignItems: "center", children: /* @__PURE__ */ jsxs18(Box18, { flexDirection: "column", alignItems: "center", children: [
3630
- /* @__PURE__ */ jsx19(Text19, { color: "yellow", children: "Validating token..." }),
3631
- mode === "validating" && /* @__PURE__ */ jsx19(Text19, { color: "gray", dimColor: true, marginTop: 1, children: "Press Esc to cancel" })
3268
+ /* @__PURE__ */ jsx17(Box16, { flexGrow: 1, justifyContent: "center", alignItems: "center", children: /* @__PURE__ */ jsxs16(Box16, { flexDirection: "column", alignItems: "center", children: [
3269
+ /* @__PURE__ */ jsx17(Text17, { color: "yellow", children: "Validating token..." }),
3270
+ mode === "validating" && /* @__PURE__ */ jsx17(Text17, { color: "gray", dimColor: true, marginTop: 1, children: "Press Esc to cancel" })
3632
3271
  ] }) })
3633
3272
  ] });
3634
3273
  }
3635
3274
  if (mode === "error") {
3636
- return /* @__PURE__ */ jsxs18(Box18, { flexDirection: "column", height: dims.rows, paddingX: 2, paddingTop: verticalPadding, paddingBottom: verticalPadding, children: [
3275
+ return /* @__PURE__ */ jsxs16(Box16, { flexDirection: "column", height: dims.rows, paddingX: 2, paddingTop: verticalPadding, paddingBottom: verticalPadding, children: [
3637
3276
  header,
3638
- /* @__PURE__ */ jsx19(Box18, { flexGrow: 1, justifyContent: "center", alignItems: "center", children: /* @__PURE__ */ jsx19(Text19, { color: "red", children: error ?? "Unexpected error" }) })
3277
+ /* @__PURE__ */ jsx17(Box16, { flexGrow: 1, justifyContent: "center", alignItems: "center", children: /* @__PURE__ */ jsx17(Text17, { color: "red", children: error ?? "Unexpected error" }) })
3639
3278
  ] });
3640
3279
  }
3641
- return /* @__PURE__ */ jsxs18(Box18, { flexDirection: "column", height: dims.rows, paddingX: 2, paddingTop: verticalPadding, paddingBottom: verticalPadding, children: [
3280
+ return /* @__PURE__ */ jsxs16(Box16, { flexDirection: "column", height: dims.rows, paddingX: 2, paddingTop: verticalPadding, paddingBottom: verticalPadding, children: [
3642
3281
  header,
3643
- /* @__PURE__ */ jsx19(
3282
+ /* @__PURE__ */ jsx17(
3644
3283
  RepoList,
3645
3284
  {
3646
3285
  token,
@@ -3655,7 +3294,7 @@ function App({ initialOrgSlug: initialOrgSlug2, inlineToken: inlineToken2, inlin
3655
3294
  }
3656
3295
 
3657
3296
  // src/index.tsx
3658
- import { jsx as jsx20, jsxs as jsxs19 } from "react/jsx-runtime";
3297
+ import { jsx as jsx18, jsxs as jsxs17 } from "react/jsx-runtime";
3659
3298
  var argv = process.argv.slice(2);
3660
3299
  var getFlagValue = (name) => {
3661
3300
  const idx = argv.findIndex((a) => a === `--${name}` || a.startsWith(`--${name}=`));
@@ -3750,8 +3389,8 @@ var inlineToken = (() => {
3750
3389
  })();
3751
3390
  logger.debug("Rendering UI");
3752
3391
  var { unmount } = render(
3753
- /* @__PURE__ */ jsxs19(Box19, { flexDirection: "column", children: [
3754
- /* @__PURE__ */ jsx20(App, { initialOrgSlug, inlineToken, inlineTokenEphemeral: Boolean(inlineToken) }),
3755
- /* @__PURE__ */ jsx20(Text20, { color: "gray" })
3392
+ /* @__PURE__ */ jsxs17(Box17, { flexDirection: "column", children: [
3393
+ /* @__PURE__ */ jsx18(App, { initialOrgSlug, inlineToken, inlineTokenEphemeral: Boolean(inlineToken) }),
3394
+ /* @__PURE__ */ jsx18(Text18, { color: "gray" })
3756
3395
  ] })
3757
3396
  );