@industry-theme/alexandria-panels 0.1.31 → 0.1.32
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/panels/LocalProjectsPanel/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAGzE,OAAO,0BAA0B,CAAC;AAClC,OAAO,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAoBvD,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB;IAClE,gDAAgD;IAChD,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/panels/LocalProjectsPanel/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAGzE,OAAO,0BAA0B,CAAC;AAClC,OAAO,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAoBvD,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB;IAClE,gDAAgD;IAChD,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AA2lBD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAEhE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,EA6C7C,CAAC;AAGF,YAAY,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/panels.bundle.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
try {
|
|
4
4
|
if (typeof document != "undefined") {
|
|
5
5
|
var elementStyle = document.createElement("style");
|
|
6
|
-
elementStyle.appendChild(document.createTextNode("/* Container query for responsive LocalProjectCard */\n.local-projects-panel {\n container-type: inline-size;\n container-name: local-projects;\n height: 100%;\n}\n\n/* Animated underline that grows from left on hover */\n.local-project-card .project-name-underline {\n position: relative;\n text-decoration: none;\n}\n\n.local-project-card .project-name-underline::after {\n content: '';\n position: absolute;\n left: 0;\n bottom: -3px;\n width: 0;\n height: 2px;\n background-color: var(--underline-color);\n transition: width 0.2s ease-out;\n}\n\n.local-project-card:hover .project-name-underline::after {\n width: 100%;\n}\n\n/* Compact mode when container is 400px or less */\n@container local-projects (max-width: 400px) {\n .local-projects-panel {\n padding: 8px !important;\n gap: 8px !important;\n }\n\n .local-projects-list {\n gap: 8px !important;\n }\n\n .local-project-card {\n padding: 8px !important;\n }\n}\n/* Shared Panel Styles */\n\n/* Header button hover states */\n.header-button {\n transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;\n}\n\n.header-button:not(.active):hover {\n color: var(--theme-text) !important;\n}\n\n/* Search input focus state */\n.search-input:focus {\n border-color: var(--theme-primary) !important;\n}\n\n/* Clear filter button hover */\n.clear-filter-button {\n transition: color 0.2s ease;\n}\n\n.clear-filter-button:hover {\n color: var(--theme-text) !important;\n}\n\n/* Search overlay animation - grows from right to left */\n.search-overlay {\n animation: searchExpand 0.2s ease-out forwards;\n}\n\n@keyframes searchExpand {\n from {\n clip-path: inset(0 0 0 100%);\n }\n to {\n clip-path: inset(0 0 0 0);\n }\n}"));
|
|
6
|
+
elementStyle.appendChild(document.createTextNode("/* Spin animation for scanning button */\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n/* Container query for responsive LocalProjectCard */\n.local-projects-panel {\n container-type: inline-size;\n container-name: local-projects;\n height: 100%;\n}\n\n/* Animated underline that grows from left on hover */\n.local-project-card .project-name-underline {\n position: relative;\n text-decoration: none;\n}\n\n.local-project-card .project-name-underline::after {\n content: '';\n position: absolute;\n left: 0;\n bottom: -3px;\n width: 0;\n height: 2px;\n background-color: var(--underline-color);\n transition: width 0.2s ease-out;\n}\n\n.local-project-card:hover .project-name-underline::after {\n width: 100%;\n}\n\n/* Compact mode when container is 400px or less */\n@container local-projects (max-width: 400px) {\n .local-projects-panel {\n padding: 8px !important;\n gap: 8px !important;\n }\n\n .local-projects-list {\n gap: 8px !important;\n }\n\n .local-project-card {\n padding: 8px !important;\n }\n}\n/* Shared Panel Styles */\n\n/* Header button hover states */\n.header-button {\n transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;\n}\n\n.header-button:not(.active):hover {\n color: var(--theme-text) !important;\n}\n\n/* Search input focus state */\n.search-input:focus {\n border-color: var(--theme-primary) !important;\n}\n\n/* Clear filter button hover */\n.clear-filter-button {\n transition: color 0.2s ease;\n}\n\n.clear-filter-button:hover {\n color: var(--theme-text) !important;\n}\n\n/* Search overlay animation - grows from right to left */\n.search-overlay {\n animation: searchExpand 0.2s ease-out forwards;\n}\n\n@keyframes searchExpand {\n from {\n clip-path: inset(0 0 0 100%);\n }\n to {\n clip-path: inset(0 0 0 0);\n }\n}"));
|
|
7
7
|
document.head.appendChild(elementStyle);
|
|
8
8
|
}
|
|
9
9
|
} catch (e) {
|
|
@@ -1201,6 +1201,7 @@ const LocalProjectsPanelContent = ({
|
|
|
1201
1201
|
const [filter, setFilter] = useState("");
|
|
1202
1202
|
const [showSearch, setShowSearch] = useState(defaultShowSearch);
|
|
1203
1203
|
const [isAdding, setIsAdding] = useState(false);
|
|
1204
|
+
const [isScanning, setIsScanning] = useState(false);
|
|
1204
1205
|
const [selectedEntry, setSelectedEntry] = useState(null);
|
|
1205
1206
|
const [windowStates, setWindowStates] = useState(/* @__PURE__ */ new Map());
|
|
1206
1207
|
const [sortByOrg, setSortByOrg] = useState(false);
|
|
@@ -1350,6 +1351,19 @@ const LocalProjectsPanelContent = ({
|
|
|
1350
1351
|
console.error("Failed to track repository:", error);
|
|
1351
1352
|
}
|
|
1352
1353
|
};
|
|
1354
|
+
const handleScanForRepos = async () => {
|
|
1355
|
+
setIsScanning(true);
|
|
1356
|
+
try {
|
|
1357
|
+
await context.refresh("repository", "alexandriaRepositories");
|
|
1358
|
+
events.emit(createPanelEvent$7(`${PANEL_ID$f}:scan-completed`, {
|
|
1359
|
+
discoveredCount: discoveredRepositories.length
|
|
1360
|
+
}));
|
|
1361
|
+
} catch (error) {
|
|
1362
|
+
console.error("Failed to scan for repositories:", error);
|
|
1363
|
+
} finally {
|
|
1364
|
+
setIsScanning(false);
|
|
1365
|
+
}
|
|
1366
|
+
};
|
|
1353
1367
|
const handleSelectRepository = (entry) => {
|
|
1354
1368
|
setSelectedEntry(entry);
|
|
1355
1369
|
events.emit(createPanelEvent$7(`${PANEL_ID$f}:repository-selected`, { entry }));
|
|
@@ -1530,6 +1544,37 @@ const LocalProjectsPanelContent = ({
|
|
|
1530
1544
|
children: sortByOrg ? /* @__PURE__ */ jsx(Building2, { size: 16 }) : /* @__PURE__ */ jsx(FolderGit2, { size: 16 })
|
|
1531
1545
|
}
|
|
1532
1546
|
),
|
|
1547
|
+
/* @__PURE__ */ jsx(
|
|
1548
|
+
"button",
|
|
1549
|
+
{
|
|
1550
|
+
onClick: handleScanForRepos,
|
|
1551
|
+
disabled: isScanning,
|
|
1552
|
+
title: "Scan for repositories",
|
|
1553
|
+
style: {
|
|
1554
|
+
padding: "4px",
|
|
1555
|
+
borderRadius: "4px",
|
|
1556
|
+
border: `1px solid ${theme.colors.border}`,
|
|
1557
|
+
backgroundColor: theme.colors.backgroundSecondary,
|
|
1558
|
+
color: theme.colors.textSecondary,
|
|
1559
|
+
cursor: isScanning ? "default" : "pointer",
|
|
1560
|
+
display: "flex",
|
|
1561
|
+
alignItems: "center",
|
|
1562
|
+
justifyContent: "center",
|
|
1563
|
+
opacity: isScanning ? 0.6 : 1,
|
|
1564
|
+
transition: "all 0.2s",
|
|
1565
|
+
flexShrink: 0
|
|
1566
|
+
},
|
|
1567
|
+
children: /* @__PURE__ */ jsx(
|
|
1568
|
+
RefreshCw,
|
|
1569
|
+
{
|
|
1570
|
+
size: 16,
|
|
1571
|
+
style: {
|
|
1572
|
+
animation: isScanning ? "spin 1s linear infinite" : "none"
|
|
1573
|
+
}
|
|
1574
|
+
}
|
|
1575
|
+
)
|
|
1576
|
+
}
|
|
1577
|
+
),
|
|
1533
1578
|
panelActions.selectDirectory && /* @__PURE__ */ jsx(
|
|
1534
1579
|
"button",
|
|
1535
1580
|
{
|