@industry-theme/alexandria-panels 0.1.20 → 0.1.21

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.
@@ -1179,9 +1179,7 @@ const LocalProjectsPanelContent = ({
1179
1179
  backgroundColor: theme.colors.backgroundSecondary
1180
1180
  };
1181
1181
  const contentContainerStyle = {
1182
- ...baseContainerStyle,
1183
- padding: "16px",
1184
- gap: "12px"
1182
+ ...baseContainerStyle
1185
1183
  };
1186
1184
  if (loading) {
1187
1185
  return /* @__PURE__ */ jsx("div", { style: baseContainerStyle, children: /* @__PURE__ */ jsx(
@@ -1224,90 +1222,132 @@ const LocalProjectsPanelContent = ({
1224
1222
  ) });
1225
1223
  }
1226
1224
  return /* @__PURE__ */ jsxs("div", { className: "local-projects-panel", style: contentContainerStyle, children: [
1227
- /* @__PURE__ */ jsxs("div", { style: { display: "flex", gap: "8px", alignItems: "center" }, children: [
1228
- /* @__PURE__ */ jsxs("div", { style: { position: "relative", flex: 1, minWidth: 0 }, children: [
1229
- /* @__PURE__ */ jsx(
1230
- Search,
1231
- {
1232
- size: 16,
1233
- style: {
1234
- position: "absolute",
1235
- top: "50%",
1236
- left: "12px",
1237
- transform: "translateY(-50%)",
1238
- color: theme.colors.textSecondary,
1239
- pointerEvents: "none",
1240
- zIndex: 1
1225
+ /* @__PURE__ */ jsxs(
1226
+ "div",
1227
+ {
1228
+ style: {
1229
+ height: "40px",
1230
+ minHeight: "40px",
1231
+ padding: "0 16px",
1232
+ borderBottom: `1px solid ${theme.colors.border}`,
1233
+ display: "flex",
1234
+ alignItems: "center",
1235
+ gap: "8px"
1236
+ },
1237
+ children: [
1238
+ /* @__PURE__ */ jsx(FolderGit2, { size: 18, style: { color: theme.colors.success || "#10b981" } }),
1239
+ /* @__PURE__ */ jsx(
1240
+ "span",
1241
+ {
1242
+ style: {
1243
+ fontSize: `${theme.fontSizes[2]}px`,
1244
+ fontWeight: theme.fontWeights.medium,
1245
+ color: theme.colors.text,
1246
+ fontFamily: theme.fonts.body
1247
+ },
1248
+ children: "Local Projects"
1241
1249
  }
1242
- }
1243
- ),
1244
- /* @__PURE__ */ jsx(
1245
- "input",
1246
- {
1247
- type: "text",
1248
- value: filter,
1249
- placeholder: "Filter local projects...",
1250
- onChange: (event) => setFilter(event.target.value),
1251
- style: {
1252
- width: "100%",
1253
- boxSizing: "border-box",
1254
- padding: "8px 12px 8px 36px",
1255
- borderRadius: "6px",
1256
- border: `1px solid ${theme.colors.border}`,
1257
- backgroundColor: theme.colors.background,
1258
- color: theme.colors.text,
1259
- fontSize: `${theme.fontSizes[1]}px`,
1260
- fontFamily: theme.fonts.body,
1261
- outline: "none"
1250
+ ),
1251
+ repositories.length > 0 && /* @__PURE__ */ jsx(
1252
+ "span",
1253
+ {
1254
+ style: {
1255
+ fontSize: `${theme.fontSizes[1]}px`,
1256
+ color: theme.colors.textSecondary,
1257
+ padding: "2px 8px",
1258
+ borderRadius: "12px",
1259
+ backgroundColor: theme.colors.background
1260
+ },
1261
+ children: repositories.length
1262
1262
  }
1263
- }
1264
- )
1265
- ] }),
1263
+ ),
1264
+ /* @__PURE__ */ jsxs("div", { style: { marginLeft: "auto", display: "flex", gap: "8px" }, children: [
1265
+ /* @__PURE__ */ jsx(
1266
+ "button",
1267
+ {
1268
+ onClick: () => setSortByOrg(!sortByOrg),
1269
+ title: sortByOrg ? "Sorting by organization" : "Sorting by repo name",
1270
+ style: {
1271
+ padding: "6px",
1272
+ borderRadius: "6px",
1273
+ border: `1px solid ${theme.colors.border}`,
1274
+ backgroundColor: sortByOrg ? `${theme.colors.primary}20` : theme.colors.background,
1275
+ color: sortByOrg ? theme.colors.primary : theme.colors.textSecondary,
1276
+ cursor: "pointer",
1277
+ display: "flex",
1278
+ alignItems: "center",
1279
+ justifyContent: "center",
1280
+ transition: "all 0.15s",
1281
+ flexShrink: 0
1282
+ },
1283
+ children: sortByOrg ? /* @__PURE__ */ jsx(Building2, { size: 16 }) : /* @__PURE__ */ jsx(FolderGit2, { size: 16 })
1284
+ }
1285
+ ),
1286
+ panelActions.selectDirectory && /* @__PURE__ */ jsx(
1287
+ "button",
1288
+ {
1289
+ onClick: handleAddProject,
1290
+ disabled: isAdding,
1291
+ title: "Add existing project",
1292
+ style: {
1293
+ padding: "6px",
1294
+ borderRadius: "6px",
1295
+ border: `1px solid ${theme.colors.border}`,
1296
+ backgroundColor: theme.colors.primary,
1297
+ color: theme.colors.background,
1298
+ cursor: isAdding ? "default" : "pointer",
1299
+ display: "flex",
1300
+ alignItems: "center",
1301
+ justifyContent: "center",
1302
+ opacity: isAdding ? 0.6 : 1,
1303
+ transition: "opacity 0.2s",
1304
+ flexShrink: 0
1305
+ },
1306
+ children: /* @__PURE__ */ jsx(Plus, { size: 16 })
1307
+ }
1308
+ )
1309
+ ] })
1310
+ ]
1311
+ }
1312
+ ),
1313
+ /* @__PURE__ */ jsx("div", { style: { padding: "8px 16px" }, children: /* @__PURE__ */ jsxs("div", { style: { position: "relative" }, children: [
1266
1314
  /* @__PURE__ */ jsx(
1267
- "button",
1315
+ Search,
1268
1316
  {
1269
- onClick: () => setSortByOrg(!sortByOrg),
1270
- title: sortByOrg ? "Sorting by organization" : "Sorting by repo name",
1317
+ size: 16,
1271
1318
  style: {
1272
- padding: "8px",
1273
- borderRadius: "6px",
1274
- border: `1px solid ${theme.colors.border}`,
1275
- backgroundColor: sortByOrg ? `${theme.colors.primary}20` : theme.colors.background,
1276
- color: sortByOrg ? theme.colors.primary : theme.colors.textSecondary,
1277
- cursor: "pointer",
1278
- display: "flex",
1279
- alignItems: "center",
1280
- justifyContent: "center",
1281
- transition: "all 0.15s",
1282
- flexShrink: 0
1283
- },
1284
- children: sortByOrg ? /* @__PURE__ */ jsx(Building2, { size: 16 }) : /* @__PURE__ */ jsx(FolderGit2, { size: 16 })
1319
+ position: "absolute",
1320
+ top: "50%",
1321
+ left: "12px",
1322
+ transform: "translateY(-50%)",
1323
+ color: theme.colors.textSecondary,
1324
+ pointerEvents: "none",
1325
+ zIndex: 1
1326
+ }
1285
1327
  }
1286
1328
  ),
1287
- panelActions.selectDirectory && /* @__PURE__ */ jsx(
1288
- "button",
1329
+ /* @__PURE__ */ jsx(
1330
+ "input",
1289
1331
  {
1290
- onClick: handleAddProject,
1291
- disabled: isAdding,
1292
- title: "Add existing project",
1332
+ type: "text",
1333
+ value: filter,
1334
+ placeholder: "Filter local projects...",
1335
+ onChange: (event) => setFilter(event.target.value),
1293
1336
  style: {
1294
- padding: "8px",
1337
+ width: "100%",
1338
+ boxSizing: "border-box",
1339
+ padding: "8px 12px 8px 36px",
1295
1340
  borderRadius: "6px",
1296
1341
  border: `1px solid ${theme.colors.border}`,
1297
- backgroundColor: theme.colors.primary,
1298
- color: theme.colors.background,
1299
- cursor: isAdding ? "default" : "pointer",
1300
- display: "flex",
1301
- alignItems: "center",
1302
- justifyContent: "center",
1303
- opacity: isAdding ? 0.6 : 1,
1304
- transition: "opacity 0.2s",
1305
- flexShrink: 0
1306
- },
1307
- children: /* @__PURE__ */ jsx(Plus, { size: 16 })
1342
+ backgroundColor: theme.colors.background,
1343
+ color: theme.colors.text,
1344
+ fontSize: `${theme.fontSizes[1]}px`,
1345
+ fontFamily: theme.fonts.body,
1346
+ outline: "none"
1347
+ }
1308
1348
  }
1309
1349
  )
1310
- ] }),
1350
+ ] }) }),
1311
1351
  /* @__PURE__ */ jsxs(
1312
1352
  "div",
1313
1353
  {
@@ -1317,7 +1357,8 @@ const LocalProjectsPanelContent = ({
1317
1357
  overflowY: "auto",
1318
1358
  display: "flex",
1319
1359
  flexDirection: "column",
1320
- gap: "4px"
1360
+ gap: "4px",
1361
+ padding: "8px"
1321
1362
  },
1322
1363
  children: [
1323
1364
  filteredAndSortedRepositories.map((entry) => /* @__PURE__ */ jsx(
@@ -1559,9 +1600,7 @@ const WorkspaceRepositoriesPanelContent = ({
1559
1600
  backgroundColor: theme.colors.backgroundSecondary
1560
1601
  };
1561
1602
  const contentContainerStyle = {
1562
- ...baseContainerStyle,
1563
- padding: "16px",
1564
- gap: "12px"
1603
+ ...baseContainerStyle
1565
1604
  };
1566
1605
  if (!workspace) {
1567
1606
  return /* @__PURE__ */ jsx("div", { style: baseContainerStyle, children: /* @__PURE__ */ jsx(
@@ -1670,99 +1709,118 @@ const WorkspaceRepositoriesPanelContent = ({
1670
1709
  ) });
1671
1710
  }
1672
1711
  return /* @__PURE__ */ jsxs("div", { style: contentContainerStyle, children: [
1673
- /* @__PURE__ */ jsxs("div", { children: [
1674
- /* @__PURE__ */ jsxs(
1675
- "div",
1676
- {
1677
- style: {
1678
- display: "flex",
1679
- alignItems: "flex-start",
1680
- justifyContent: "space-between",
1681
- gap: "16px",
1682
- marginBottom: "4px"
1683
- },
1684
- children: [
1685
- /* @__PURE__ */ jsx(
1686
- "h3",
1687
- {
1688
- style: {
1689
- margin: 0,
1690
- fontSize: `${theme.fontSizes[2]}px`,
1691
- fontWeight: theme.fontWeights.semibold,
1692
- color: theme.colors.text,
1693
- fontFamily: theme.fonts.body
1694
- },
1695
- children: workspace.name
1696
- }
1697
- ),
1698
- workspace.suggestedClonePath && /* @__PURE__ */ jsxs(
1699
- "button",
1700
- {
1701
- type: "button",
1702
- onClick: async () => {
1703
- try {
1704
- await navigator.clipboard.writeText(workspace.suggestedClonePath);
1705
- setCopiedPath(true);
1706
- setTimeout(() => setCopiedPath(false), 2e3);
1707
- } catch (err) {
1708
- console.error("Failed to copy path:", err);
1712
+ /* @__PURE__ */ jsxs(
1713
+ "div",
1714
+ {
1715
+ style: {
1716
+ height: "40px",
1717
+ minHeight: "40px",
1718
+ padding: "0 16px",
1719
+ borderBottom: `1px solid ${theme.colors.border}`,
1720
+ display: "flex",
1721
+ alignItems: "center",
1722
+ gap: "8px"
1723
+ },
1724
+ children: [
1725
+ /* @__PURE__ */ jsx(Folder, { size: 18, color: theme.colors.primary }),
1726
+ /* @__PURE__ */ jsx(
1727
+ "span",
1728
+ {
1729
+ style: {
1730
+ fontSize: `${theme.fontSizes[2]}px`,
1731
+ fontWeight: theme.fontWeights.medium,
1732
+ color: theme.colors.text,
1733
+ fontFamily: theme.fonts.body,
1734
+ overflow: "hidden",
1735
+ textOverflow: "ellipsis",
1736
+ whiteSpace: "nowrap"
1737
+ },
1738
+ children: workspace.name
1739
+ }
1740
+ ),
1741
+ sortedRepositories.length > 0 && /* @__PURE__ */ jsx(
1742
+ "span",
1743
+ {
1744
+ style: {
1745
+ fontSize: `${theme.fontSizes[1]}px`,
1746
+ color: theme.colors.textSecondary,
1747
+ padding: "2px 8px",
1748
+ borderRadius: "12px",
1749
+ backgroundColor: theme.colors.background,
1750
+ flexShrink: 0
1751
+ },
1752
+ children: sortedRepositories.length
1753
+ }
1754
+ ),
1755
+ workspace.suggestedClonePath && /* @__PURE__ */ jsxs(
1756
+ "button",
1757
+ {
1758
+ type: "button",
1759
+ onClick: async () => {
1760
+ try {
1761
+ await navigator.clipboard.writeText(workspace.suggestedClonePath);
1762
+ setCopiedPath(true);
1763
+ setTimeout(() => setCopiedPath(false), 2e3);
1764
+ } catch (err) {
1765
+ console.error("Failed to copy path:", err);
1766
+ }
1767
+ },
1768
+ onMouseEnter: () => setIsPathHovered(true),
1769
+ onMouseLeave: () => setIsPathHovered(false),
1770
+ title: copiedPath ? "Copied!" : `Click to copy: ${workspace.suggestedClonePath}`,
1771
+ style: {
1772
+ marginLeft: "auto",
1773
+ display: "flex",
1774
+ alignItems: "center",
1775
+ gap: "6px",
1776
+ padding: "4px 8px",
1777
+ borderRadius: "4px",
1778
+ border: `1px solid ${copiedPath ? theme.colors.success || "#10b981" : theme.colors.border}`,
1779
+ backgroundColor: copiedPath ? `${theme.colors.success || "#10b981"}15` : theme.colors.backgroundTertiary,
1780
+ color: copiedPath ? theme.colors.success || "#10b981" : theme.colors.textSecondary,
1781
+ cursor: "pointer",
1782
+ transition: "all 0.15s ease",
1783
+ minWidth: 0,
1784
+ maxWidth: isPathHovered || copiedPath ? "200px" : "32px",
1785
+ overflow: "hidden",
1786
+ flexShrink: 0
1787
+ },
1788
+ children: [
1789
+ copiedPath ? /* @__PURE__ */ jsx(Check, { size: 14, style: { flexShrink: 0 } }) : /* @__PURE__ */ jsx(House, { size: 14, style: { flexShrink: 0 } }),
1790
+ /* @__PURE__ */ jsx(
1791
+ "span",
1792
+ {
1793
+ style: {
1794
+ fontSize: `${theme.fontSizes[0]}px`,
1795
+ fontFamily: theme.fonts.monospace,
1796
+ whiteSpace: "nowrap",
1797
+ overflow: "hidden",
1798
+ textOverflow: "ellipsis",
1799
+ opacity: isPathHovered || copiedPath ? 1 : 0,
1800
+ width: isPathHovered || copiedPath ? "auto" : 0,
1801
+ transition: "opacity 0.15s ease"
1802
+ },
1803
+ children: copiedPath ? "Copied!" : workspace.suggestedClonePath
1709
1804
  }
1710
- },
1711
- onMouseEnter: () => setIsPathHovered(true),
1712
- onMouseLeave: () => setIsPathHovered(false),
1713
- title: copiedPath ? "Copied!" : `Click to copy: ${workspace.suggestedClonePath}`,
1714
- style: {
1715
- display: "flex",
1716
- alignItems: "center",
1717
- gap: "6px",
1718
- padding: "4px 8px",
1719
- borderRadius: "4px",
1720
- border: `1px solid ${copiedPath ? theme.colors.success || "#10b981" : theme.colors.border}`,
1721
- backgroundColor: copiedPath ? `${theme.colors.success || "#10b981"}15` : theme.colors.backgroundTertiary,
1722
- color: copiedPath ? theme.colors.success || "#10b981" : theme.colors.textSecondary,
1723
- cursor: "pointer",
1724
- transition: "all 0.15s ease",
1725
- minWidth: 0,
1726
- maxWidth: isPathHovered || copiedPath ? "200px" : "32px",
1727
- overflow: "hidden"
1728
- },
1729
- children: [
1730
- copiedPath ? /* @__PURE__ */ jsx(Check, { size: 14, style: { flexShrink: 0 } }) : /* @__PURE__ */ jsx(House, { size: 14, style: { flexShrink: 0 } }),
1731
- /* @__PURE__ */ jsx(
1732
- "span",
1733
- {
1734
- style: {
1735
- fontSize: `${theme.fontSizes[0]}px`,
1736
- fontFamily: theme.fonts.monospace,
1737
- whiteSpace: "nowrap",
1738
- overflow: "hidden",
1739
- textOverflow: "ellipsis",
1740
- opacity: isPathHovered || copiedPath ? 1 : 0,
1741
- width: isPathHovered || copiedPath ? "auto" : 0,
1742
- transition: "opacity 0.15s ease"
1743
- },
1744
- children: copiedPath ? "Copied!" : workspace.suggestedClonePath
1745
- }
1746
- )
1747
- ]
1748
- }
1749
- )
1750
- ]
1751
- }
1752
- ),
1753
- workspace.description && /* @__PURE__ */ jsx(
1754
- "p",
1755
- {
1756
- style: {
1757
- margin: 0,
1758
- fontSize: `${theme.fontSizes[1]}px`,
1759
- color: theme.colors.textSecondary,
1760
- fontFamily: theme.fonts.body
1761
- },
1762
- children: workspace.description
1763
- }
1764
- )
1765
- ] }),
1805
+ )
1806
+ ]
1807
+ }
1808
+ )
1809
+ ]
1810
+ }
1811
+ ),
1812
+ workspace.description && /* @__PURE__ */ jsx("div", { style: { padding: "8px 16px" }, children: /* @__PURE__ */ jsx(
1813
+ "p",
1814
+ {
1815
+ style: {
1816
+ margin: 0,
1817
+ fontSize: `${theme.fontSizes[1]}px`,
1818
+ color: theme.colors.textSecondary,
1819
+ fontFamily: theme.fonts.body
1820
+ },
1821
+ children: workspace.description
1822
+ }
1823
+ ) }),
1766
1824
  /* @__PURE__ */ jsxs(
1767
1825
  "div",
1768
1826
  {
@@ -1771,7 +1829,8 @@ const WorkspaceRepositoriesPanelContent = ({
1771
1829
  overflowY: "auto",
1772
1830
  display: "flex",
1773
1831
  flexDirection: "column",
1774
- gap: "12px"
1832
+ gap: "12px",
1833
+ padding: "8px 16px"
1775
1834
  },
1776
1835
  children: [
1777
1836
  sortedRepositories.length === 0 && !isLoading && /* @__PURE__ */ jsx(
@@ -2436,9 +2495,7 @@ const WorkspacesListPanelContent = ({
2436
2495
  backgroundColor: theme.colors.backgroundSecondary
2437
2496
  };
2438
2497
  const contentContainerStyle = {
2439
- ...baseContainerStyle,
2440
- padding: "16px",
2441
- gap: "12px"
2498
+ ...baseContainerStyle
2442
2499
  };
2443
2500
  if (loading) {
2444
2501
  return /* @__PURE__ */ jsx("div", { style: baseContainerStyle, children: /* @__PURE__ */ jsx(
@@ -2485,25 +2542,31 @@ const WorkspacesListPanelContent = ({
2485
2542
  "div",
2486
2543
  {
2487
2544
  style: {
2545
+ height: "40px",
2546
+ minHeight: "40px",
2547
+ padding: "0 16px",
2548
+ borderBottom: `1px solid ${theme.colors.border}`,
2488
2549
  display: "flex",
2489
2550
  alignItems: "center",
2490
2551
  justifyContent: "space-between",
2491
2552
  gap: "8px"
2492
2553
  },
2493
2554
  children: [
2494
- /* @__PURE__ */ jsx(
2495
- "h3",
2496
- {
2497
- style: {
2498
- margin: 0,
2499
- fontSize: `${theme.fontSizes[2]}px`,
2500
- fontWeight: theme.fontWeights.semibold,
2501
- color: theme.colors.text,
2502
- fontFamily: theme.fonts.body
2503
- },
2504
- children: "Workspaces"
2505
- }
2506
- ),
2555
+ /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "8px" }, children: [
2556
+ /* @__PURE__ */ jsx(Layers, { size: 18, color: theme.colors.primary }),
2557
+ /* @__PURE__ */ jsx(
2558
+ "span",
2559
+ {
2560
+ style: {
2561
+ fontSize: `${theme.fontSizes[2]}px`,
2562
+ fontWeight: theme.fontWeights.medium,
2563
+ color: theme.colors.text,
2564
+ fontFamily: theme.fonts.body
2565
+ },
2566
+ children: "Workspaces"
2567
+ }
2568
+ )
2569
+ ] }),
2507
2570
  /* @__PURE__ */ jsxs("div", { style: { display: "flex", gap: "8px" }, children: [
2508
2571
  /* @__PURE__ */ jsx(
2509
2572
  "button",
@@ -2562,7 +2625,8 @@ const WorkspacesListPanelContent = ({
2562
2625
  style: {
2563
2626
  display: "flex",
2564
2627
  alignItems: "center",
2565
- gap: "8px"
2628
+ gap: "8px",
2629
+ padding: "8px 16px"
2566
2630
  },
2567
2631
  children: [
2568
2632
  /* @__PURE__ */ jsx(
@@ -2618,7 +2682,8 @@ const WorkspacesListPanelContent = ({
2618
2682
  overflowY: "auto",
2619
2683
  display: "flex",
2620
2684
  flexDirection: "column",
2621
- gap: "4px"
2685
+ gap: "4px",
2686
+ padding: "8px"
2622
2687
  },
2623
2688
  children: [
2624
2689
  sortedWorkspaces.map((workspace) => /* @__PURE__ */ jsx(
@@ -4035,131 +4100,166 @@ const GitHubStarredPanelContent = ({
4035
4100
  }
4036
4101
  ) });
4037
4102
  }
4038
- return /* @__PURE__ */ jsxs(
4039
- "div",
4040
- {
4041
- style: {
4042
- ...baseContainerStyle,
4043
- padding: "16px",
4044
- gap: "12px"
4045
- },
4046
- children: [
4047
- /* @__PURE__ */ jsxs("div", { style: { position: "relative" }, children: [
4048
- /* @__PURE__ */ jsx(
4049
- Search,
4050
- {
4051
- size: 16,
4052
- style: {
4053
- position: "absolute",
4054
- top: "50%",
4055
- left: "12px",
4056
- transform: "translateY(-50%)",
4057
- color: theme.colors.textSecondary,
4058
- pointerEvents: "none"
4059
- }
4060
- }
4061
- ),
4103
+ return /* @__PURE__ */ jsxs("div", { style: baseContainerStyle, children: [
4104
+ /* @__PURE__ */ jsxs(
4105
+ "div",
4106
+ {
4107
+ style: {
4108
+ height: "40px",
4109
+ minHeight: "40px",
4110
+ padding: "0 16px",
4111
+ borderBottom: `1px solid ${theme.colors.border}`,
4112
+ display: "flex",
4113
+ alignItems: "center",
4114
+ gap: "8px"
4115
+ },
4116
+ children: [
4117
+ /* @__PURE__ */ jsx(Star, { size: 18, style: { color: "#f59e0b" } }),
4062
4118
  /* @__PURE__ */ jsx(
4063
- "input",
4119
+ "span",
4064
4120
  {
4065
- type: "text",
4066
- value: filter,
4067
- placeholder: "Filter starred repositories...",
4068
- onChange: (event) => setFilter(event.target.value),
4069
4121
  style: {
4070
- width: "100%",
4071
- padding: "8px 12px 8px 36px",
4072
- borderRadius: "6px",
4073
- border: `1px solid ${theme.colors.border}`,
4074
- backgroundColor: theme.colors.background,
4122
+ fontSize: `${theme.fontSizes[2]}px`,
4123
+ fontWeight: theme.fontWeights.medium,
4075
4124
  color: theme.colors.text,
4125
+ fontFamily: theme.fonts.body
4126
+ },
4127
+ children: "Starred"
4128
+ }
4129
+ ),
4130
+ repositories.length > 0 && /* @__PURE__ */ jsx(
4131
+ "span",
4132
+ {
4133
+ style: {
4076
4134
  fontSize: `${theme.fontSizes[1]}px`,
4077
- fontFamily: theme.fonts.body,
4078
- outline: "none"
4079
- }
4135
+ color: theme.colors.textSecondary,
4136
+ padding: "2px 8px",
4137
+ borderRadius: "12px",
4138
+ backgroundColor: theme.colors.background
4139
+ },
4140
+ children: repositories.length
4080
4141
  }
4081
4142
  )
4082
- ] }),
4083
- error && repositories.length > 0 && /* @__PURE__ */ jsxs(
4084
- "div",
4085
- {
4086
- style: {
4087
- display: "flex",
4088
- alignItems: "center",
4089
- gap: "8px",
4090
- padding: "10px 14px",
4091
- borderRadius: "6px",
4092
- backgroundColor: `${theme.colors.error || "#ef4444"}20`,
4093
- color: theme.colors.error || "#ef4444",
4094
- fontSize: `${theme.fontSizes[1]}px`,
4095
- fontFamily: theme.fonts.body
4096
- },
4097
- children: [
4098
- /* @__PURE__ */ jsx(CircleAlert, { size: 16 }),
4099
- /* @__PURE__ */ jsx("span", { children: error })
4100
- ]
4143
+ ]
4144
+ }
4145
+ ),
4146
+ /* @__PURE__ */ jsxs("div", { style: { position: "relative", padding: "8px 16px" }, children: [
4147
+ /* @__PURE__ */ jsx(
4148
+ Search,
4149
+ {
4150
+ size: 16,
4151
+ style: {
4152
+ position: "absolute",
4153
+ top: "50%",
4154
+ left: "28px",
4155
+ transform: "translateY(-50%)",
4156
+ color: theme.colors.textSecondary,
4157
+ pointerEvents: "none"
4101
4158
  }
4102
- ),
4103
- /* @__PURE__ */ jsxs(
4104
- "div",
4105
- {
4106
- style: {
4107
- flex: 1,
4108
- overflowY: "auto",
4109
- display: "flex",
4110
- flexDirection: "column",
4111
- gap: "4px"
4112
- },
4113
- children: [
4114
- sortedRepositories.map((repo) => /* @__PURE__ */ jsx(
4115
- GitHubRepositoryCard,
4116
- {
4117
- repository: repo,
4118
- localRepo: localRepoMap.get(repo.full_name),
4119
- onClone: handleClone,
4120
- onOpen: handleOpen,
4121
- onSelect: handleSelect,
4122
- isSelected: (selectedRepo == null ? void 0 : selectedRepo.id) === repo.id
4123
- },
4124
- repo.id
4125
- )),
4126
- sortedRepositories.length === 0 && repositories.length > 0 && /* @__PURE__ */ jsx(
4127
- "div",
4128
- {
4129
- style: {
4130
- padding: "32px",
4131
- textAlign: "center",
4132
- color: theme.colors.textSecondary
4133
- },
4134
- children: /* @__PURE__ */ jsx("p", { style: { margin: 0 }, children: "No repositories match your filter." })
4135
- }
4136
- ),
4137
- repositories.length === 0 && !loading && /* @__PURE__ */ jsxs(
4138
- "div",
4139
- {
4140
- style: {
4141
- padding: "32px",
4142
- textAlign: "center",
4143
- color: theme.colors.textSecondary
4144
- },
4145
- children: [
4146
- /* @__PURE__ */ jsx(
4147
- Star,
4148
- {
4149
- size: 32,
4150
- style: { marginBottom: "12px", opacity: 0.5 }
4151
- }
4152
- ),
4153
- /* @__PURE__ */ jsx("p", { style: { margin: 0 }, children: "You haven't starred any repositories yet." })
4154
- ]
4155
- }
4156
- )
4157
- ]
4159
+ }
4160
+ ),
4161
+ /* @__PURE__ */ jsx(
4162
+ "input",
4163
+ {
4164
+ type: "text",
4165
+ value: filter,
4166
+ placeholder: "Filter starred repositories...",
4167
+ onChange: (event) => setFilter(event.target.value),
4168
+ style: {
4169
+ width: "100%",
4170
+ padding: "8px 12px 8px 36px",
4171
+ borderRadius: "6px",
4172
+ border: `1px solid ${theme.colors.border}`,
4173
+ backgroundColor: theme.colors.background,
4174
+ color: theme.colors.text,
4175
+ fontSize: `${theme.fontSizes[1]}px`,
4176
+ fontFamily: theme.fonts.body,
4177
+ outline: "none",
4178
+ boxSizing: "border-box"
4158
4179
  }
4159
- )
4160
- ]
4161
- }
4162
- );
4180
+ }
4181
+ )
4182
+ ] }),
4183
+ error && repositories.length > 0 && /* @__PURE__ */ jsxs(
4184
+ "div",
4185
+ {
4186
+ style: {
4187
+ display: "flex",
4188
+ alignItems: "center",
4189
+ gap: "8px",
4190
+ padding: "10px 14px",
4191
+ margin: "0 16px",
4192
+ borderRadius: "6px",
4193
+ backgroundColor: `${theme.colors.error || "#ef4444"}20`,
4194
+ color: theme.colors.error || "#ef4444",
4195
+ fontSize: `${theme.fontSizes[1]}px`,
4196
+ fontFamily: theme.fonts.body
4197
+ },
4198
+ children: [
4199
+ /* @__PURE__ */ jsx(CircleAlert, { size: 16 }),
4200
+ /* @__PURE__ */ jsx("span", { children: error })
4201
+ ]
4202
+ }
4203
+ ),
4204
+ /* @__PURE__ */ jsxs(
4205
+ "div",
4206
+ {
4207
+ style: {
4208
+ flex: 1,
4209
+ overflowY: "auto",
4210
+ display: "flex",
4211
+ flexDirection: "column",
4212
+ gap: "4px",
4213
+ padding: "8px"
4214
+ },
4215
+ children: [
4216
+ sortedRepositories.map((repo) => /* @__PURE__ */ jsx(
4217
+ GitHubRepositoryCard,
4218
+ {
4219
+ repository: repo,
4220
+ localRepo: localRepoMap.get(repo.full_name),
4221
+ onClone: handleClone,
4222
+ onOpen: handleOpen,
4223
+ onSelect: handleSelect,
4224
+ isSelected: (selectedRepo == null ? void 0 : selectedRepo.id) === repo.id
4225
+ },
4226
+ repo.id
4227
+ )),
4228
+ sortedRepositories.length === 0 && repositories.length > 0 && /* @__PURE__ */ jsx(
4229
+ "div",
4230
+ {
4231
+ style: {
4232
+ padding: "32px",
4233
+ textAlign: "center",
4234
+ color: theme.colors.textSecondary
4235
+ },
4236
+ children: /* @__PURE__ */ jsx("p", { style: { margin: 0 }, children: "No repositories match your filter." })
4237
+ }
4238
+ ),
4239
+ repositories.length === 0 && !loading && /* @__PURE__ */ jsxs(
4240
+ "div",
4241
+ {
4242
+ style: {
4243
+ padding: "32px",
4244
+ textAlign: "center",
4245
+ color: theme.colors.textSecondary
4246
+ },
4247
+ children: [
4248
+ /* @__PURE__ */ jsx(
4249
+ Star,
4250
+ {
4251
+ size: 32,
4252
+ style: { marginBottom: "12px", opacity: 0.5 }
4253
+ }
4254
+ ),
4255
+ /* @__PURE__ */ jsx("p", { style: { margin: 0 }, children: "You haven't starred any repositories yet." })
4256
+ ]
4257
+ }
4258
+ )
4259
+ ]
4260
+ }
4261
+ )
4262
+ ] });
4163
4263
  };
4164
4264
  const GitHubStarredPanelPreview = () => {
4165
4265
  const { theme } = useTheme();
@@ -4639,166 +4739,188 @@ const GitHubProjectsPanelContent = ({
4639
4739
  }
4640
4740
  );
4641
4741
  };
4642
- return /* @__PURE__ */ jsxs(
4643
- "div",
4644
- {
4645
- style: {
4646
- ...baseContainerStyle,
4647
- padding: "16px",
4648
- gap: "12px"
4649
- },
4650
- children: [
4651
- /* @__PURE__ */ jsxs("div", { style: { position: "relative" }, children: [
4652
- /* @__PURE__ */ jsx(
4653
- Search,
4654
- {
4655
- size: 16,
4656
- style: {
4657
- position: "absolute",
4658
- top: "50%",
4659
- left: "12px",
4660
- transform: "translateY(-50%)",
4661
- color: theme.colors.textSecondary,
4662
- pointerEvents: "none"
4663
- }
4664
- }
4665
- ),
4742
+ return /* @__PURE__ */ jsxs("div", { style: baseContainerStyle, children: [
4743
+ /* @__PURE__ */ jsxs(
4744
+ "div",
4745
+ {
4746
+ style: {
4747
+ height: "40px",
4748
+ minHeight: "40px",
4749
+ padding: "0 16px",
4750
+ borderBottom: `1px solid ${theme.colors.border}`,
4751
+ display: "flex",
4752
+ alignItems: "center",
4753
+ gap: "8px"
4754
+ },
4755
+ children: [
4756
+ /* @__PURE__ */ jsx(FolderGit2, { size: 18, color: theme.colors.primary }),
4666
4757
  /* @__PURE__ */ jsx(
4667
- "input",
4758
+ "span",
4668
4759
  {
4669
- type: "text",
4670
- value: filter,
4671
- placeholder: "Filter repositories...",
4672
- onChange: (event) => setFilter(event.target.value),
4673
4760
  style: {
4674
- width: "100%",
4675
- padding: "8px 12px 8px 36px",
4676
- borderRadius: "6px",
4677
- border: `1px solid ${theme.colors.border}`,
4678
- backgroundColor: theme.colors.background,
4761
+ fontSize: `${theme.fontSizes[2]}px`,
4762
+ fontWeight: theme.fontWeights.medium,
4679
4763
  color: theme.colors.text,
4680
- fontSize: `${theme.fontSizes[1]}px`,
4681
- fontFamily: theme.fonts.body,
4682
- outline: "none"
4683
- }
4764
+ fontFamily: theme.fonts.body
4765
+ },
4766
+ children: "GitHub Projects"
4684
4767
  }
4685
4768
  )
4686
- ] }),
4687
- error && hasData && /* @__PURE__ */ jsxs(
4688
- "div",
4689
- {
4690
- style: {
4691
- display: "flex",
4692
- alignItems: "center",
4693
- gap: "8px",
4694
- padding: "10px 14px",
4695
- borderRadius: "6px",
4696
- backgroundColor: `${theme.colors.error || "#ef4444"}20`,
4697
- color: theme.colors.error || "#ef4444",
4698
- fontSize: `${theme.fontSizes[1]}px`,
4699
- fontFamily: theme.fonts.body
4700
- },
4701
- children: [
4702
- /* @__PURE__ */ jsx(CircleAlert, { size: 16 }),
4703
- /* @__PURE__ */ jsx("span", { children: error })
4704
- ]
4769
+ ]
4770
+ }
4771
+ ),
4772
+ /* @__PURE__ */ jsxs("div", { style: { position: "relative", padding: "8px 16px" }, children: [
4773
+ /* @__PURE__ */ jsx(
4774
+ Search,
4775
+ {
4776
+ size: 16,
4777
+ style: {
4778
+ position: "absolute",
4779
+ top: "50%",
4780
+ left: "28px",
4781
+ transform: "translateY(-50%)",
4782
+ color: theme.colors.textSecondary,
4783
+ pointerEvents: "none"
4705
4784
  }
4706
- ),
4707
- /* @__PURE__ */ jsxs(
4708
- "div",
4709
- {
4710
- style: {
4711
- flex: 1,
4712
- overflowY: "auto",
4713
- display: "flex",
4714
- flexDirection: "column",
4715
- gap: "16px"
4716
- },
4717
- children: [
4718
- filteredUserRepos.length > 0 && /* @__PURE__ */ jsxs("div", { children: [
4719
- renderSectionHeader(
4720
- currentUser || "Your Repositories",
4721
- filteredUserRepos.length,
4722
- /* @__PURE__ */ jsx(User, { size: 16, color: theme.colors.textSecondary })
4723
- ),
4724
- !collapsedSections.has(currentUser || "Your Repositories") && /* @__PURE__ */ jsx("div", { style: { display: "flex", flexDirection: "column", gap: "4px" }, children: filteredUserRepos.sort(
4725
- (a, b) => a.name.localeCompare(b.name, void 0, { sensitivity: "base" })
4726
- ).map((repo) => /* @__PURE__ */ jsx(
4727
- GitHubRepositoryCard,
4728
- {
4729
- repository: repo,
4730
- localRepo: localRepoMap.get(repo.full_name),
4731
- onClone: handleClone,
4732
- onOpen: handleOpen,
4733
- onSelect: handleSelect,
4734
- isSelected: (selectedRepo == null ? void 0 : selectedRepo.id) === repo.id
4735
- },
4736
- repo.id
4737
- )) })
4738
- ] }),
4739
- organizations.map((org) => {
4740
- const repos = filteredOrgRepos[org.login];
4741
- if (!repos || repos.length === 0) return null;
4742
- return /* @__PURE__ */ jsxs("div", { children: [
4743
- renderSectionHeader(
4744
- org.login,
4745
- repos.length,
4746
- /* @__PURE__ */ jsx(Building2, { size: 16, color: theme.colors.textSecondary }),
4747
- true
4748
- ),
4749
- !collapsedSections.has(org.login) && /* @__PURE__ */ jsx("div", { style: { display: "flex", flexDirection: "column", gap: "4px" }, children: repos.sort(
4750
- (a, b) => a.name.localeCompare(b.name, void 0, { sensitivity: "base" })
4751
- ).map((repo) => /* @__PURE__ */ jsx(
4752
- GitHubRepositoryCard,
4753
- {
4754
- repository: repo,
4755
- localRepo: localRepoMap.get(repo.full_name),
4756
- onClone: handleClone,
4757
- onOpen: handleOpen,
4758
- onSelect: handleSelect,
4759
- isSelected: (selectedRepo == null ? void 0 : selectedRepo.id) === repo.id
4760
- },
4761
- repo.id
4762
- )) })
4763
- ] }, org.id);
4764
- }),
4765
- filteredUserRepos.length === 0 && Object.keys(filteredOrgRepos).length === 0 && hasData && /* @__PURE__ */ jsx(
4766
- "div",
4767
- {
4768
- style: {
4769
- padding: "32px",
4770
- textAlign: "center",
4771
- color: theme.colors.textSecondary
4772
- },
4773
- children: /* @__PURE__ */ jsx("p", { style: { margin: 0 }, children: "No repositories match your filter." })
4774
- }
4785
+ }
4786
+ ),
4787
+ /* @__PURE__ */ jsx(
4788
+ "input",
4789
+ {
4790
+ type: "text",
4791
+ value: filter,
4792
+ placeholder: "Filter repositories...",
4793
+ onChange: (event) => setFilter(event.target.value),
4794
+ style: {
4795
+ width: "100%",
4796
+ padding: "8px 12px 8px 36px",
4797
+ borderRadius: "6px",
4798
+ border: `1px solid ${theme.colors.border}`,
4799
+ backgroundColor: theme.colors.background,
4800
+ color: theme.colors.text,
4801
+ fontSize: `${theme.fontSizes[1]}px`,
4802
+ fontFamily: theme.fonts.body,
4803
+ outline: "none",
4804
+ boxSizing: "border-box"
4805
+ }
4806
+ }
4807
+ )
4808
+ ] }),
4809
+ error && hasData && /* @__PURE__ */ jsxs(
4810
+ "div",
4811
+ {
4812
+ style: {
4813
+ display: "flex",
4814
+ alignItems: "center",
4815
+ gap: "8px",
4816
+ padding: "10px 14px",
4817
+ margin: "0 16px",
4818
+ borderRadius: "6px",
4819
+ backgroundColor: `${theme.colors.error || "#ef4444"}20`,
4820
+ color: theme.colors.error || "#ef4444",
4821
+ fontSize: `${theme.fontSizes[1]}px`,
4822
+ fontFamily: theme.fonts.body
4823
+ },
4824
+ children: [
4825
+ /* @__PURE__ */ jsx(CircleAlert, { size: 16 }),
4826
+ /* @__PURE__ */ jsx("span", { children: error })
4827
+ ]
4828
+ }
4829
+ ),
4830
+ /* @__PURE__ */ jsxs(
4831
+ "div",
4832
+ {
4833
+ style: {
4834
+ flex: 1,
4835
+ overflowY: "auto",
4836
+ display: "flex",
4837
+ flexDirection: "column",
4838
+ gap: "16px",
4839
+ padding: "8px"
4840
+ },
4841
+ children: [
4842
+ filteredUserRepos.length > 0 && /* @__PURE__ */ jsxs("div", { children: [
4843
+ renderSectionHeader(
4844
+ currentUser || "Your Repositories",
4845
+ filteredUserRepos.length,
4846
+ /* @__PURE__ */ jsx(User, { size: 16, color: theme.colors.textSecondary })
4847
+ ),
4848
+ !collapsedSections.has(currentUser || "Your Repositories") && /* @__PURE__ */ jsx("div", { style: { display: "flex", flexDirection: "column", gap: "4px" }, children: filteredUserRepos.sort(
4849
+ (a, b) => a.name.localeCompare(b.name, void 0, { sensitivity: "base" })
4850
+ ).map((repo) => /* @__PURE__ */ jsx(
4851
+ GitHubRepositoryCard,
4852
+ {
4853
+ repository: repo,
4854
+ localRepo: localRepoMap.get(repo.full_name),
4855
+ onClone: handleClone,
4856
+ onOpen: handleOpen,
4857
+ onSelect: handleSelect,
4858
+ isSelected: (selectedRepo == null ? void 0 : selectedRepo.id) === repo.id
4859
+ },
4860
+ repo.id
4861
+ )) })
4862
+ ] }),
4863
+ organizations.map((org) => {
4864
+ const repos = filteredOrgRepos[org.login];
4865
+ if (!repos || repos.length === 0) return null;
4866
+ return /* @__PURE__ */ jsxs("div", { children: [
4867
+ renderSectionHeader(
4868
+ org.login,
4869
+ repos.length,
4870
+ /* @__PURE__ */ jsx(Building2, { size: 16, color: theme.colors.textSecondary }),
4871
+ true
4775
4872
  ),
4776
- !hasData && !loading && /* @__PURE__ */ jsxs(
4777
- "div",
4873
+ !collapsedSections.has(org.login) && /* @__PURE__ */ jsx("div", { style: { display: "flex", flexDirection: "column", gap: "4px" }, children: repos.sort(
4874
+ (a, b) => a.name.localeCompare(b.name, void 0, { sensitivity: "base" })
4875
+ ).map((repo) => /* @__PURE__ */ jsx(
4876
+ GitHubRepositoryCard,
4778
4877
  {
4779
- style: {
4780
- padding: "32px",
4781
- textAlign: "center",
4782
- color: theme.colors.textSecondary
4783
- },
4784
- children: [
4785
- /* @__PURE__ */ jsx(
4786
- FolderGit2,
4787
- {
4788
- size: 32,
4789
- style: { marginBottom: "12px", opacity: 0.5 }
4790
- }
4791
- ),
4792
- /* @__PURE__ */ jsx("p", { style: { margin: 0 }, children: "No repositories found." })
4793
- ]
4794
- }
4795
- )
4796
- ]
4797
- }
4798
- )
4799
- ]
4800
- }
4801
- );
4878
+ repository: repo,
4879
+ localRepo: localRepoMap.get(repo.full_name),
4880
+ onClone: handleClone,
4881
+ onOpen: handleOpen,
4882
+ onSelect: handleSelect,
4883
+ isSelected: (selectedRepo == null ? void 0 : selectedRepo.id) === repo.id
4884
+ },
4885
+ repo.id
4886
+ )) })
4887
+ ] }, org.id);
4888
+ }),
4889
+ filteredUserRepos.length === 0 && Object.keys(filteredOrgRepos).length === 0 && hasData && /* @__PURE__ */ jsx(
4890
+ "div",
4891
+ {
4892
+ style: {
4893
+ padding: "32px",
4894
+ textAlign: "center",
4895
+ color: theme.colors.textSecondary
4896
+ },
4897
+ children: /* @__PURE__ */ jsx("p", { style: { margin: 0 }, children: "No repositories match your filter." })
4898
+ }
4899
+ ),
4900
+ !hasData && !loading && /* @__PURE__ */ jsxs(
4901
+ "div",
4902
+ {
4903
+ style: {
4904
+ padding: "32px",
4905
+ textAlign: "center",
4906
+ color: theme.colors.textSecondary
4907
+ },
4908
+ children: [
4909
+ /* @__PURE__ */ jsx(
4910
+ FolderGit2,
4911
+ {
4912
+ size: 32,
4913
+ style: { marginBottom: "12px", opacity: 0.5 }
4914
+ }
4915
+ ),
4916
+ /* @__PURE__ */ jsx("p", { style: { margin: 0 }, children: "No repositories found." })
4917
+ ]
4918
+ }
4919
+ )
4920
+ ]
4921
+ }
4922
+ )
4923
+ ] });
4802
4924
  };
4803
4925
  const GitHubProjectsPanelPreview = () => {
4804
4926
  const { theme } = useTheme();
@@ -5343,8 +5465,36 @@ const UserProfilePanelContent = ({
5343
5465
  "div",
5344
5466
  {
5345
5467
  style: {
5346
- padding: "16px",
5468
+ height: "40px",
5469
+ minHeight: "40px",
5470
+ padding: "0 16px",
5347
5471
  borderBottom: `1px solid ${theme.colors.border}`,
5472
+ display: "flex",
5473
+ alignItems: "center",
5474
+ gap: "8px"
5475
+ },
5476
+ children: [
5477
+ /* @__PURE__ */ jsx(User, { size: 18, color: theme.colors.primary }),
5478
+ /* @__PURE__ */ jsx(
5479
+ "span",
5480
+ {
5481
+ style: {
5482
+ fontSize: `${theme.fontSizes[2]}px`,
5483
+ fontWeight: theme.fontWeights.medium,
5484
+ color: theme.colors.text,
5485
+ fontFamily: theme.fonts.body
5486
+ },
5487
+ children: "User Profile"
5488
+ }
5489
+ )
5490
+ ]
5491
+ }
5492
+ ),
5493
+ /* @__PURE__ */ jsxs(
5494
+ "div",
5495
+ {
5496
+ style: {
5497
+ padding: "16px",
5348
5498
  backgroundColor: theme.colors.background
5349
5499
  },
5350
5500
  children: [