@industry-theme/alexandria-panels 0.1.29 → 0.1.31
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.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/panels/LocalProjectsPanel/LocalProjectCard.d.ts.map +1 -1
- package/dist/panels/LocalProjectsPanel/index.d.ts.map +1 -1
- package/dist/panels/LocalProjectsPanel/types.d.ts +22 -1
- package/dist/panels/LocalProjectsPanel/types.d.ts.map +1 -1
- package/dist/panels.bundle.js +178 -50
- package/dist/panels.bundle.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -39,7 +39,7 @@ export { GitHubRepositoryCard } from './panels/shared/GitHubRepositoryCard';
|
|
|
39
39
|
/**
|
|
40
40
|
* Export types
|
|
41
41
|
*/
|
|
42
|
-
export type { LocalProjectCardProps, RepositoryAvatarProps, AlexandriaRepositoriesSlice, LocalProjectsPanelActions, CardActionMode, RepositoryWindowState, } from './panels/LocalProjectsPanel/types';
|
|
42
|
+
export type { LocalProjectCardProps, RepositoryAvatarProps, AlexandriaRepositoriesSlice, LocalProjectsPanelActions, CardActionMode, RepositoryWindowState, DiscoveredRepository, } from './panels/LocalProjectsPanel/types';
|
|
43
43
|
export type { Workspace, WorkspaceRepositoriesPanelActions, RepositorySelectedPayload, RepositoryOpenedPayload, } from './panels/WorkspaceRepositoriesPanel/types';
|
|
44
44
|
export type { WorkspacesSlice, WorkspacesListPanelActions, WorkspaceCardProps, WorkspaceSelectedPayload, WorkspaceOpenedPayload, WorkspaceCreatedPayload, WorkspaceDeletedPayload, } from './panels/WorkspacesListPanel/types';
|
|
45
45
|
export type { Workspace as WorkspaceCollectionWorkspace, WorkspaceCollectionSlice, WorkspaceRepositoriesSlice, WorkspaceCollectionPanelActions, RepositorySelectedPayload as CollectionRepositorySelectedPayload, RepositoryRemovedPayload, RepositoryNavigatePayload, WorkspaceCollectionPanelEventPayloads, } from './panels/WorkspaceCollectionPanel/types';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,SAAS,CAAC;AAUlE;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,eAAe,EAyOnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,qBAGzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,qBAG3B,CAAC;AAEF;;;GAGG;AACH,OAAO,EACL,uBAAuB,EACvB,+BAA+B,EAC/B,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,GAChB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,+BAA+B,EAC/B,uCAAuC,EACvC,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EACL,wBAAwB,EACxB,gCAAgC,EAChC,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,6BAA6B,EAC7B,qCAAqC,EACrC,sBAAsB,EACtB,oBAAoB,IAAI,8BAA8B,EACtD,sBAAsB,EACtB,oBAAoB,EACpB,8BAA8B,GAC/B,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EACL,uBAAuB,EACvB,+BAA+B,EAC/B,iBAAiB,EACjB,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,wBAAwB,EACxB,gCAAgC,EAChC,kBAAkB,IAAI,wBAAwB,EAC9C,sBAAsB,EACtB,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAC7B,qBAAqB,EACrB,eAAe,EACf,sBAAsB,EACtB,oBAAoB,IAAI,wBAAwB,EAChD,mBAAmB,IAAI,uBAAuB,EAC9C,iBAAiB,IAAI,qBAAqB,GAC3C,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,yBAAyB,EACzB,iCAAiC,EACjC,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,IAAI,2BAA2B,EAChD,oBAAoB,IAAI,8BAA8B,EACtD,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,qCAAqC,CAAC;AAE7C;;GAEG;AACH,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,uBAAuB,GAC7B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAEjF,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,aAAa,EACb,KAAK,wBAAwB,GAC9B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,wBAAwB,EACxB,+BAA+B,EAC/B,KAAK,6BAA6B,GACnC,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,KAAK,uBAAuB,GAC7B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,KAAK,wBAAwB,GAC9B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,KAAK,yBAAyB,GAC/B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAE5E;;GAEG;AACH,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,2BAA2B,EAC3B,yBAAyB,EACzB,cAAc,EACd,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalProjectCard.d.ts","sourceRoot":"","sources":["../../../src/panels/LocalProjectsPanel/LocalProjectCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAIxC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,0BAA0B,CAAC;AA+BlC;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,
|
|
1
|
+
{"version":3,"file":"LocalProjectCard.d.ts","sourceRoot":"","sources":["../../../src/panels/LocalProjectsPanel/LocalProjectCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAIxC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,0BAA0B,CAAC;AA+BlC;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAge5D,CAAC"}
|
|
@@ -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;
|
|
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;AA+iBD;;;;;;;;;;;;;;;;;;;;;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"}
|
|
@@ -5,6 +5,17 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { AlexandriaEntry } from '@principal-ai/alexandria-core-library/types';
|
|
7
7
|
import type { PanelActions } from '../../types';
|
|
8
|
+
/**
|
|
9
|
+
* Discovered repository - a git repo found but not tracked in Alexandria
|
|
10
|
+
*/
|
|
11
|
+
export interface DiscoveredRepository {
|
|
12
|
+
/** Absolute path to the repository */
|
|
13
|
+
path: string;
|
|
14
|
+
/** Repository name (directory name) */
|
|
15
|
+
name: string;
|
|
16
|
+
/** Always false for discovered repos */
|
|
17
|
+
isTracked: false;
|
|
18
|
+
}
|
|
8
19
|
/**
|
|
9
20
|
* Data slice for Alexandria repositories
|
|
10
21
|
* Provided by the host application through panel context
|
|
@@ -12,6 +23,8 @@ import type { PanelActions } from '../../types';
|
|
|
12
23
|
export interface AlexandriaRepositoriesSlice {
|
|
13
24
|
/** List of registered local repositories */
|
|
14
25
|
repositories: AlexandriaEntry[];
|
|
26
|
+
/** List of discovered but untracked repositories */
|
|
27
|
+
discoveredRepositories?: DiscoveredRepository[];
|
|
15
28
|
/** Whether repositories are currently loading */
|
|
16
29
|
loading: boolean;
|
|
17
30
|
/** Error message if loading failed */
|
|
@@ -62,12 +75,18 @@ export interface LocalProjectsPanelActions extends PanelActions {
|
|
|
62
75
|
* @returns Window state
|
|
63
76
|
*/
|
|
64
77
|
getRepositoryWindowState?: (entry: AlexandriaEntry) => Promise<RepositoryWindowState>;
|
|
78
|
+
/**
|
|
79
|
+
* Track a discovered repository (add to Alexandria)
|
|
80
|
+
* @param name - Repository name
|
|
81
|
+
* @param path - Local path to the repository
|
|
82
|
+
*/
|
|
83
|
+
trackRepository?: (name: string, path: string) => Promise<void>;
|
|
65
84
|
}
|
|
66
85
|
/**
|
|
67
86
|
* Action mode for LocalProjectCard
|
|
68
87
|
* Controls which action buttons are displayed
|
|
69
88
|
*/
|
|
70
|
-
export type CardActionMode = 'default' | 'add-to-workspace' | 'minimal' | 'workspace';
|
|
89
|
+
export type CardActionMode = 'default' | 'add-to-workspace' | 'minimal' | 'workspace' | 'discovered';
|
|
71
90
|
/**
|
|
72
91
|
* Props for LocalProjectCard component
|
|
73
92
|
*/
|
|
@@ -90,6 +109,8 @@ export interface LocalProjectCardProps {
|
|
|
90
109
|
onRemoveFromWorkspace?: (entry: AlexandriaEntry) => void;
|
|
91
110
|
/** Callback for move-to-workspace-directory action (workspace mode) */
|
|
92
111
|
onMoveToWorkspace?: (entry: AlexandriaEntry) => void;
|
|
112
|
+
/** Callback for track action (discovered mode) */
|
|
113
|
+
onTrack?: (entry: AlexandriaEntry) => void;
|
|
93
114
|
/** Whether an operation is in progress */
|
|
94
115
|
isLoading?: boolean;
|
|
95
116
|
/** Current window state for this repository */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/panels/LocalProjectsPanel/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,4CAA4C;IAC5C,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,iDAAiD;IACjD,OAAO,EAAE,OAAO,CAAC;IACjB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AAEnE;;;GAGG;AACH,MAAM,WAAW,yBAA0B,SAAQ,YAAY;IAC7D;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IAEvE;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnE;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzE;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3D;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5D;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/panels/LocalProjectsPanel/types.ts"],"names":[],"mappings":"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"}
|
package/dist/panels.bundle.js
CHANGED
|
@@ -140,7 +140,7 @@ const createLucideIcon = (iconName, iconNode) => {
|
|
|
140
140
|
* This source code is licensed under the ISC license.
|
|
141
141
|
* See the LICENSE file in the root directory of this source tree.
|
|
142
142
|
*/
|
|
143
|
-
const __iconNode$
|
|
143
|
+
const __iconNode$B = [
|
|
144
144
|
["path", { d: "M10 12h4", key: "a56b0p" }],
|
|
145
145
|
["path", { d: "M10 8h4", key: "1sr2af" }],
|
|
146
146
|
["path", { d: "M14 21v-3a2 2 0 0 0-4 0v3", key: "1rgiei" }],
|
|
@@ -153,71 +153,71 @@ const __iconNode$A = [
|
|
|
153
153
|
],
|
|
154
154
|
["path", { d: "M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16", key: "16ra0t" }]
|
|
155
155
|
];
|
|
156
|
-
const Building2 = createLucideIcon("building-2", __iconNode$
|
|
156
|
+
const Building2 = createLucideIcon("building-2", __iconNode$B);
|
|
157
157
|
/**
|
|
158
158
|
* @license lucide-react v0.552.0 - ISC
|
|
159
159
|
*
|
|
160
160
|
* This source code is licensed under the ISC license.
|
|
161
161
|
* See the LICENSE file in the root directory of this source tree.
|
|
162
162
|
*/
|
|
163
|
-
const __iconNode$
|
|
163
|
+
const __iconNode$A = [
|
|
164
164
|
["path", { d: "M8 2v4", key: "1cmpym" }],
|
|
165
165
|
["path", { d: "M16 2v4", key: "4m81vk" }],
|
|
166
166
|
["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
|
|
167
167
|
["path", { d: "M3 10h18", key: "8toen8" }]
|
|
168
168
|
];
|
|
169
|
-
const Calendar = createLucideIcon("calendar", __iconNode$
|
|
169
|
+
const Calendar = createLucideIcon("calendar", __iconNode$A);
|
|
170
170
|
/**
|
|
171
171
|
* @license lucide-react v0.552.0 - ISC
|
|
172
172
|
*
|
|
173
173
|
* This source code is licensed under the ISC license.
|
|
174
174
|
* See the LICENSE file in the root directory of this source tree.
|
|
175
175
|
*/
|
|
176
|
-
const __iconNode$
|
|
177
|
-
const Check = createLucideIcon("check", __iconNode$
|
|
176
|
+
const __iconNode$z = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
|
|
177
|
+
const Check = createLucideIcon("check", __iconNode$z);
|
|
178
178
|
/**
|
|
179
179
|
* @license lucide-react v0.552.0 - ISC
|
|
180
180
|
*
|
|
181
181
|
* This source code is licensed under the ISC license.
|
|
182
182
|
* See the LICENSE file in the root directory of this source tree.
|
|
183
183
|
*/
|
|
184
|
-
const __iconNode$
|
|
185
|
-
const ChevronDown = createLucideIcon("chevron-down", __iconNode$
|
|
184
|
+
const __iconNode$y = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
|
|
185
|
+
const ChevronDown = createLucideIcon("chevron-down", __iconNode$y);
|
|
186
186
|
/**
|
|
187
187
|
* @license lucide-react v0.552.0 - ISC
|
|
188
188
|
*
|
|
189
189
|
* This source code is licensed under the ISC license.
|
|
190
190
|
* See the LICENSE file in the root directory of this source tree.
|
|
191
191
|
*/
|
|
192
|
-
const __iconNode$
|
|
193
|
-
const ChevronRight = createLucideIcon("chevron-right", __iconNode$
|
|
192
|
+
const __iconNode$x = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
|
|
193
|
+
const ChevronRight = createLucideIcon("chevron-right", __iconNode$x);
|
|
194
194
|
/**
|
|
195
195
|
* @license lucide-react v0.552.0 - ISC
|
|
196
196
|
*
|
|
197
197
|
* This source code is licensed under the ISC license.
|
|
198
198
|
* See the LICENSE file in the root directory of this source tree.
|
|
199
199
|
*/
|
|
200
|
-
const __iconNode$
|
|
200
|
+
const __iconNode$w = [
|
|
201
201
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
202
202
|
["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
|
|
203
203
|
["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
|
|
204
204
|
];
|
|
205
|
-
const CircleAlert = createLucideIcon("circle-alert", __iconNode$
|
|
205
|
+
const CircleAlert = createLucideIcon("circle-alert", __iconNode$w);
|
|
206
206
|
/**
|
|
207
207
|
* @license lucide-react v0.552.0 - ISC
|
|
208
208
|
*
|
|
209
209
|
* This source code is licensed under the ISC license.
|
|
210
210
|
* See the LICENSE file in the root directory of this source tree.
|
|
211
211
|
*/
|
|
212
|
-
const __iconNode$
|
|
213
|
-
const Circle = createLucideIcon("circle", __iconNode$
|
|
212
|
+
const __iconNode$v = [["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]];
|
|
213
|
+
const Circle = createLucideIcon("circle", __iconNode$v);
|
|
214
214
|
/**
|
|
215
215
|
* @license lucide-react v0.552.0 - ISC
|
|
216
216
|
*
|
|
217
217
|
* This source code is licensed under the ISC license.
|
|
218
218
|
* See the LICENSE file in the root directory of this source tree.
|
|
219
219
|
*/
|
|
220
|
-
const __iconNode$
|
|
220
|
+
const __iconNode$u = [
|
|
221
221
|
["path", { d: "m2 2 20 20", key: "1ooewy" }],
|
|
222
222
|
["path", { d: "M5.782 5.782A7 7 0 0 0 9 19h8.5a4.5 4.5 0 0 0 1.307-.193", key: "yfwify" }],
|
|
223
223
|
[
|
|
@@ -225,85 +225,85 @@ const __iconNode$t = [
|
|
|
225
225
|
{ d: "M21.532 16.5A4.5 4.5 0 0 0 17.5 10h-1.79A7.008 7.008 0 0 0 10 5.07", key: "jlfiyv" }
|
|
226
226
|
]
|
|
227
227
|
];
|
|
228
|
-
const CloudOff = createLucideIcon("cloud-off", __iconNode$
|
|
228
|
+
const CloudOff = createLucideIcon("cloud-off", __iconNode$u);
|
|
229
229
|
/**
|
|
230
230
|
* @license lucide-react v0.552.0 - ISC
|
|
231
231
|
*
|
|
232
232
|
* This source code is licensed under the ISC license.
|
|
233
233
|
* See the LICENSE file in the root directory of this source tree.
|
|
234
234
|
*/
|
|
235
|
-
const __iconNode$
|
|
235
|
+
const __iconNode$t = [
|
|
236
236
|
["path", { d: "M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z", key: "p7xjir" }]
|
|
237
237
|
];
|
|
238
|
-
const Cloud = createLucideIcon("cloud", __iconNode$
|
|
238
|
+
const Cloud = createLucideIcon("cloud", __iconNode$t);
|
|
239
239
|
/**
|
|
240
240
|
* @license lucide-react v0.552.0 - ISC
|
|
241
241
|
*
|
|
242
242
|
* This source code is licensed under the ISC license.
|
|
243
243
|
* See the LICENSE file in the root directory of this source tree.
|
|
244
244
|
*/
|
|
245
|
-
const __iconNode$
|
|
245
|
+
const __iconNode$s = [
|
|
246
246
|
["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
|
|
247
247
|
["path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2", key: "zix9uf" }]
|
|
248
248
|
];
|
|
249
|
-
const Copy = createLucideIcon("copy", __iconNode$
|
|
249
|
+
const Copy = createLucideIcon("copy", __iconNode$s);
|
|
250
250
|
/**
|
|
251
251
|
* @license lucide-react v0.552.0 - ISC
|
|
252
252
|
*
|
|
253
253
|
* This source code is licensed under the ISC license.
|
|
254
254
|
* See the LICENSE file in the root directory of this source tree.
|
|
255
255
|
*/
|
|
256
|
-
const __iconNode$
|
|
256
|
+
const __iconNode$r = [
|
|
257
257
|
["path", { d: "M10 12h.01", key: "1kxr2c" }],
|
|
258
258
|
["path", { d: "M18 20V6a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v14", key: "36qu9e" }],
|
|
259
259
|
["path", { d: "M2 20h20", key: "owomy5" }]
|
|
260
260
|
];
|
|
261
|
-
const DoorClosed = createLucideIcon("door-closed", __iconNode$
|
|
261
|
+
const DoorClosed = createLucideIcon("door-closed", __iconNode$r);
|
|
262
262
|
/**
|
|
263
263
|
* @license lucide-react v0.552.0 - ISC
|
|
264
264
|
*
|
|
265
265
|
* This source code is licensed under the ISC license.
|
|
266
266
|
* See the LICENSE file in the root directory of this source tree.
|
|
267
267
|
*/
|
|
268
|
-
const __iconNode$
|
|
268
|
+
const __iconNode$q = [
|
|
269
269
|
["path", { d: "M12 15V3", key: "m9g1x1" }],
|
|
270
270
|
["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }],
|
|
271
271
|
["path", { d: "m7 10 5 5 5-5", key: "brsn70" }]
|
|
272
272
|
];
|
|
273
|
-
const Download = createLucideIcon("download", __iconNode$
|
|
273
|
+
const Download = createLucideIcon("download", __iconNode$q);
|
|
274
274
|
/**
|
|
275
275
|
* @license lucide-react v0.552.0 - ISC
|
|
276
276
|
*
|
|
277
277
|
* This source code is licensed under the ISC license.
|
|
278
278
|
* See the LICENSE file in the root directory of this source tree.
|
|
279
279
|
*/
|
|
280
|
-
const __iconNode$
|
|
280
|
+
const __iconNode$p = [
|
|
281
281
|
["path", { d: "M15 3h6v6", key: "1q9fwt" }],
|
|
282
282
|
["path", { d: "M10 14 21 3", key: "gplh6r" }],
|
|
283
283
|
["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", key: "a6xqqp" }]
|
|
284
284
|
];
|
|
285
|
-
const ExternalLink = createLucideIcon("external-link", __iconNode$
|
|
285
|
+
const ExternalLink = createLucideIcon("external-link", __iconNode$p);
|
|
286
286
|
/**
|
|
287
287
|
* @license lucide-react v0.552.0 - ISC
|
|
288
288
|
*
|
|
289
289
|
* This source code is licensed under the ISC license.
|
|
290
290
|
* See the LICENSE file in the root directory of this source tree.
|
|
291
291
|
*/
|
|
292
|
-
const __iconNode$
|
|
292
|
+
const __iconNode$o = [
|
|
293
293
|
["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }],
|
|
294
294
|
["path", { d: "M3 7V5a2 2 0 0 1 2-2h2", key: "aa7l1z" }],
|
|
295
295
|
["path", { d: "M17 3h2a2 2 0 0 1 2 2v2", key: "4qcy5o" }],
|
|
296
296
|
["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2", key: "6vwrx8" }],
|
|
297
297
|
["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2", key: "ioqczr" }]
|
|
298
298
|
];
|
|
299
|
-
const Focus = createLucideIcon("focus", __iconNode$
|
|
299
|
+
const Focus = createLucideIcon("focus", __iconNode$o);
|
|
300
300
|
/**
|
|
301
301
|
* @license lucide-react v0.552.0 - ISC
|
|
302
302
|
*
|
|
303
303
|
* This source code is licensed under the ISC license.
|
|
304
304
|
* See the LICENSE file in the root directory of this source tree.
|
|
305
305
|
*/
|
|
306
|
-
const __iconNode$
|
|
306
|
+
const __iconNode$n = [
|
|
307
307
|
[
|
|
308
308
|
"path",
|
|
309
309
|
{
|
|
@@ -315,14 +315,14 @@ const __iconNode$m = [
|
|
|
315
315
|
["path", { d: "M18 19c-2.8 0-5-2.2-5-5v8", key: "pkpw2h" }],
|
|
316
316
|
["circle", { cx: "20", cy: "19", r: "2", key: "1obnsp" }]
|
|
317
317
|
];
|
|
318
|
-
const FolderGit2 = createLucideIcon("folder-git-2", __iconNode$
|
|
318
|
+
const FolderGit2 = createLucideIcon("folder-git-2", __iconNode$n);
|
|
319
319
|
/**
|
|
320
320
|
* @license lucide-react v0.552.0 - ISC
|
|
321
321
|
*
|
|
322
322
|
* This source code is licensed under the ISC license.
|
|
323
323
|
* See the LICENSE file in the root directory of this source tree.
|
|
324
324
|
*/
|
|
325
|
-
const __iconNode$
|
|
325
|
+
const __iconNode$m = [
|
|
326
326
|
[
|
|
327
327
|
"path",
|
|
328
328
|
{
|
|
@@ -331,14 +331,14 @@ const __iconNode$l = [
|
|
|
331
331
|
}
|
|
332
332
|
]
|
|
333
333
|
];
|
|
334
|
-
const FolderOpen = createLucideIcon("folder-open", __iconNode$
|
|
334
|
+
const FolderOpen = createLucideIcon("folder-open", __iconNode$m);
|
|
335
335
|
/**
|
|
336
336
|
* @license lucide-react v0.552.0 - ISC
|
|
337
337
|
*
|
|
338
338
|
* This source code is licensed under the ISC license.
|
|
339
339
|
* See the LICENSE file in the root directory of this source tree.
|
|
340
340
|
*/
|
|
341
|
-
const __iconNode$
|
|
341
|
+
const __iconNode$l = [
|
|
342
342
|
["path", { d: "M12 10v6", key: "1bos4e" }],
|
|
343
343
|
["path", { d: "M9 13h6", key: "1uhe8q" }],
|
|
344
344
|
[
|
|
@@ -349,14 +349,14 @@ const __iconNode$k = [
|
|
|
349
349
|
}
|
|
350
350
|
]
|
|
351
351
|
];
|
|
352
|
-
const FolderPlus = createLucideIcon("folder-plus", __iconNode$
|
|
352
|
+
const FolderPlus = createLucideIcon("folder-plus", __iconNode$l);
|
|
353
353
|
/**
|
|
354
354
|
* @license lucide-react v0.552.0 - ISC
|
|
355
355
|
*
|
|
356
356
|
* This source code is licensed under the ISC license.
|
|
357
357
|
* See the LICENSE file in the root directory of this source tree.
|
|
358
358
|
*/
|
|
359
|
-
const __iconNode$
|
|
359
|
+
const __iconNode$k = [
|
|
360
360
|
[
|
|
361
361
|
"path",
|
|
362
362
|
{
|
|
@@ -365,7 +365,20 @@ const __iconNode$j = [
|
|
|
365
365
|
}
|
|
366
366
|
]
|
|
367
367
|
];
|
|
368
|
-
const Folder = createLucideIcon("folder", __iconNode$
|
|
368
|
+
const Folder = createLucideIcon("folder", __iconNode$k);
|
|
369
|
+
/**
|
|
370
|
+
* @license lucide-react v0.552.0 - ISC
|
|
371
|
+
*
|
|
372
|
+
* This source code is licensed under the ISC license.
|
|
373
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
374
|
+
*/
|
|
375
|
+
const __iconNode$j = [
|
|
376
|
+
["line", { x1: "6", x2: "6", y1: "3", y2: "15", key: "17qcm7" }],
|
|
377
|
+
["circle", { cx: "18", cy: "6", r: "3", key: "1h7g24" }],
|
|
378
|
+
["circle", { cx: "6", cy: "18", r: "3", key: "fqmcym" }],
|
|
379
|
+
["path", { d: "M18 9a9 9 0 0 1-9 9", key: "n2h4wq" }]
|
|
380
|
+
];
|
|
381
|
+
const GitBranch = createLucideIcon("git-branch", __iconNode$j);
|
|
369
382
|
/**
|
|
370
383
|
* @license lucide-react v0.552.0 - ISC
|
|
371
384
|
*
|
|
@@ -714,6 +727,7 @@ const LocalProjectCard = ({
|
|
|
714
727
|
onAddToWorkspace,
|
|
715
728
|
onRemoveFromWorkspace,
|
|
716
729
|
onMoveToWorkspace,
|
|
730
|
+
onTrack,
|
|
717
731
|
isLoading = false,
|
|
718
732
|
windowState = "closed",
|
|
719
733
|
compact: _compact = false,
|
|
@@ -775,6 +789,10 @@ const LocalProjectCard = ({
|
|
|
775
789
|
setIsMoving(false);
|
|
776
790
|
}
|
|
777
791
|
};
|
|
792
|
+
const handleTrackClick = (e) => {
|
|
793
|
+
e.stopPropagation();
|
|
794
|
+
onTrack == null ? void 0 : onTrack(entry);
|
|
795
|
+
};
|
|
778
796
|
const handleCopyPath = async (e) => {
|
|
779
797
|
e.stopPropagation();
|
|
780
798
|
try {
|
|
@@ -903,6 +921,49 @@ const LocalProjectCard = ({
|
|
|
903
921
|
)
|
|
904
922
|
] });
|
|
905
923
|
}
|
|
924
|
+
if (actionMode === "discovered") {
|
|
925
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
926
|
+
/* @__PURE__ */ jsxs(
|
|
927
|
+
"button",
|
|
928
|
+
{
|
|
929
|
+
type: "button",
|
|
930
|
+
onClick: handleTrackClick,
|
|
931
|
+
disabled: isLoading,
|
|
932
|
+
title: "Track this repository",
|
|
933
|
+
style: {
|
|
934
|
+
...actionButtonStyle,
|
|
935
|
+
backgroundColor: theme.colors.primary,
|
|
936
|
+
color: theme.colors.background
|
|
937
|
+
},
|
|
938
|
+
onMouseEnter: (e) => {
|
|
939
|
+
e.currentTarget.style.opacity = "0.9";
|
|
940
|
+
},
|
|
941
|
+
onMouseLeave: (e) => {
|
|
942
|
+
e.currentTarget.style.opacity = "1";
|
|
943
|
+
},
|
|
944
|
+
children: [
|
|
945
|
+
isLoading ? /* @__PURE__ */ jsx(LoaderCircle, { size: 14, className: "animate-spin" }) : /* @__PURE__ */ jsx(Plus, { size: 14 }),
|
|
946
|
+
/* @__PURE__ */ jsx("span", { children: "Track" })
|
|
947
|
+
]
|
|
948
|
+
}
|
|
949
|
+
),
|
|
950
|
+
/* @__PURE__ */ jsxs(
|
|
951
|
+
"button",
|
|
952
|
+
{
|
|
953
|
+
type: "button",
|
|
954
|
+
onClick: handleOpenClick,
|
|
955
|
+
title: "Open repository",
|
|
956
|
+
style: actionButtonStyle,
|
|
957
|
+
onMouseEnter: (e) => handleButtonHover(e),
|
|
958
|
+
onMouseLeave: (e) => handleButtonLeave(e),
|
|
959
|
+
children: [
|
|
960
|
+
/* @__PURE__ */ jsx(FolderOpen, { size: 14 }),
|
|
961
|
+
/* @__PURE__ */ jsx("span", { children: "Open" })
|
|
962
|
+
]
|
|
963
|
+
}
|
|
964
|
+
)
|
|
965
|
+
] });
|
|
966
|
+
}
|
|
906
967
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
907
968
|
/* @__PURE__ */ jsxs(
|
|
908
969
|
"button",
|
|
@@ -1038,7 +1099,29 @@ const LocalProjectCard = ({
|
|
|
1038
1099
|
size: 12,
|
|
1039
1100
|
style: { color: theme.colors.textSecondary, flexShrink: 0 }
|
|
1040
1101
|
}
|
|
1041
|
-
) })
|
|
1102
|
+
) }),
|
|
1103
|
+
actionMode === "discovered" && /* @__PURE__ */ jsxs(
|
|
1104
|
+
"span",
|
|
1105
|
+
{
|
|
1106
|
+
title: "Untracked repository",
|
|
1107
|
+
style: {
|
|
1108
|
+
display: "flex",
|
|
1109
|
+
alignItems: "center",
|
|
1110
|
+
gap: "4px",
|
|
1111
|
+
padding: "2px 6px",
|
|
1112
|
+
borderRadius: "4px",
|
|
1113
|
+
backgroundColor: `${theme.colors.warning || "#f59e0b"}20`,
|
|
1114
|
+
color: theme.colors.warning || "#f59e0b",
|
|
1115
|
+
fontSize: `${theme.fontSizes[0]}px`,
|
|
1116
|
+
fontWeight: theme.fontWeights.medium,
|
|
1117
|
+
flexShrink: 0
|
|
1118
|
+
},
|
|
1119
|
+
children: [
|
|
1120
|
+
/* @__PURE__ */ jsx(GitBranch, { size: 10 }),
|
|
1121
|
+
/* @__PURE__ */ jsx("span", { children: "Untracked" })
|
|
1122
|
+
]
|
|
1123
|
+
}
|
|
1124
|
+
)
|
|
1042
1125
|
]
|
|
1043
1126
|
}
|
|
1044
1127
|
),
|
|
@@ -1113,7 +1196,7 @@ const LocalProjectsPanelContent = ({
|
|
|
1113
1196
|
events,
|
|
1114
1197
|
defaultShowSearch = false
|
|
1115
1198
|
}) => {
|
|
1116
|
-
var _a;
|
|
1199
|
+
var _a, _b;
|
|
1117
1200
|
const { theme } = useTheme();
|
|
1118
1201
|
const [filter, setFilter] = useState("");
|
|
1119
1202
|
const [showSearch, setShowSearch] = useState(defaultShowSearch);
|
|
@@ -1141,7 +1224,23 @@ const LocalProjectsPanelContent = ({
|
|
|
1141
1224
|
},
|
|
1142
1225
|
[(_a = repoSlice == null ? void 0 : repoSlice.data) == null ? void 0 : _a.repositories]
|
|
1143
1226
|
);
|
|
1227
|
+
const discoveredRepositories = useMemo(
|
|
1228
|
+
() => {
|
|
1229
|
+
var _a2;
|
|
1230
|
+
return ((_a2 = repoSlice == null ? void 0 : repoSlice.data) == null ? void 0 : _a2.discoveredRepositories) || [];
|
|
1231
|
+
},
|
|
1232
|
+
[(_b = repoSlice == null ? void 0 : repoSlice.data) == null ? void 0 : _b.discoveredRepositories]
|
|
1233
|
+
);
|
|
1144
1234
|
const loading = (repoSlice == null ? void 0 : repoSlice.loading) ?? false;
|
|
1235
|
+
const discoveredAsEntries = useMemo(() => {
|
|
1236
|
+
return discoveredRepositories.map((repo) => ({
|
|
1237
|
+
name: repo.name,
|
|
1238
|
+
path: repo.path,
|
|
1239
|
+
registeredAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
1240
|
+
hasViews: false,
|
|
1241
|
+
isDiscovered: true
|
|
1242
|
+
}));
|
|
1243
|
+
}, [discoveredRepositories]);
|
|
1145
1244
|
const handleOpenRepository = useCallback(
|
|
1146
1245
|
async (entry) => {
|
|
1147
1246
|
if (!panelActions.openRepository) {
|
|
@@ -1230,34 +1329,61 @@ const LocalProjectsPanelContent = ({
|
|
|
1230
1329
|
console.error("Failed to remove repository:", error);
|
|
1231
1330
|
}
|
|
1232
1331
|
};
|
|
1332
|
+
const handleTrackRepository = async (entry) => {
|
|
1333
|
+
if (!panelActions.trackRepository) {
|
|
1334
|
+
if (panelActions.registerRepository) {
|
|
1335
|
+
try {
|
|
1336
|
+
await panelActions.registerRepository(entry.name, entry.path);
|
|
1337
|
+
await context.refresh("repository", "alexandriaRepositories");
|
|
1338
|
+
} catch (error) {
|
|
1339
|
+
console.error("Failed to track repository:", error);
|
|
1340
|
+
}
|
|
1341
|
+
} else {
|
|
1342
|
+
console.warn("Track repository action not available");
|
|
1343
|
+
}
|
|
1344
|
+
return;
|
|
1345
|
+
}
|
|
1346
|
+
try {
|
|
1347
|
+
await panelActions.trackRepository(entry.name, entry.path);
|
|
1348
|
+
await context.refresh("repository", "alexandriaRepositories");
|
|
1349
|
+
} catch (error) {
|
|
1350
|
+
console.error("Failed to track repository:", error);
|
|
1351
|
+
}
|
|
1352
|
+
};
|
|
1233
1353
|
const handleSelectRepository = (entry) => {
|
|
1234
1354
|
setSelectedEntry(entry);
|
|
1235
1355
|
events.emit(createPanelEvent$7(`${PANEL_ID$f}:repository-selected`, { entry }));
|
|
1236
1356
|
};
|
|
1237
1357
|
const normalizedFilter = filter.trim().toLowerCase();
|
|
1358
|
+
const allRepositories = useMemo(() => {
|
|
1359
|
+
const tracked = repositories.map((entry) => ({ ...entry, isDiscovered: false }));
|
|
1360
|
+
return [...tracked, ...discoveredAsEntries];
|
|
1361
|
+
}, [repositories, discoveredAsEntries]);
|
|
1238
1362
|
const filteredAndSortedRepositories = useMemo(() => {
|
|
1239
|
-
const filtered =
|
|
1240
|
-
var _a2,
|
|
1363
|
+
const filtered = allRepositories.filter((entry) => {
|
|
1364
|
+
var _a2, _b2;
|
|
1241
1365
|
if (!normalizedFilter) return true;
|
|
1242
1366
|
const haystack = [
|
|
1243
1367
|
entry.name,
|
|
1244
1368
|
((_a2 = entry.github) == null ? void 0 : _a2.name) ?? "",
|
|
1245
|
-
((
|
|
1369
|
+
((_b2 = entry.github) == null ? void 0 : _b2.owner) ?? "",
|
|
1246
1370
|
entry.remoteUrl ?? ""
|
|
1247
1371
|
].join(" ").toLowerCase();
|
|
1248
1372
|
return haystack.includes(normalizedFilter);
|
|
1249
1373
|
});
|
|
1250
1374
|
return filtered.sort((a, b) => {
|
|
1251
|
-
var _a2,
|
|
1375
|
+
var _a2, _b2;
|
|
1376
|
+
if (!a.isDiscovered && b.isDiscovered) return -1;
|
|
1377
|
+
if (a.isDiscovered && !b.isDiscovered) return 1;
|
|
1252
1378
|
if (sortByOrg) {
|
|
1253
1379
|
const aOrg = (((_a2 = a.github) == null ? void 0 : _a2.owner) ?? "").toLowerCase();
|
|
1254
|
-
const bOrg = (((
|
|
1380
|
+
const bOrg = (((_b2 = b.github) == null ? void 0 : _b2.owner) ?? "").toLowerCase();
|
|
1255
1381
|
const orgCompare = aOrg.localeCompare(bOrg);
|
|
1256
1382
|
if (orgCompare !== 0) return orgCompare;
|
|
1257
1383
|
}
|
|
1258
1384
|
return a.name.toLowerCase().localeCompare(b.name.toLowerCase());
|
|
1259
1385
|
});
|
|
1260
|
-
}, [
|
|
1386
|
+
}, [allRepositories, normalizedFilter, sortByOrg]);
|
|
1261
1387
|
const baseContainerStyle = {
|
|
1262
1388
|
display: "flex",
|
|
1263
1389
|
flexDirection: "column",
|
|
@@ -1347,7 +1473,7 @@ const LocalProjectsPanelContent = ({
|
|
|
1347
1473
|
children: "Local Projects"
|
|
1348
1474
|
}
|
|
1349
1475
|
),
|
|
1350
|
-
|
|
1476
|
+
allRepositories.length > 0 && /* @__PURE__ */ jsx(
|
|
1351
1477
|
"span",
|
|
1352
1478
|
{
|
|
1353
1479
|
style: {
|
|
@@ -1357,7 +1483,7 @@ const LocalProjectsPanelContent = ({
|
|
|
1357
1483
|
borderRadius: "12px",
|
|
1358
1484
|
backgroundColor: theme.colors.background
|
|
1359
1485
|
},
|
|
1360
|
-
children:
|
|
1486
|
+
children: allRepositories.length
|
|
1361
1487
|
}
|
|
1362
1488
|
)
|
|
1363
1489
|
] }),
|
|
@@ -1549,10 +1675,12 @@ const LocalProjectsPanelContent = ({
|
|
|
1549
1675
|
LocalProjectCard,
|
|
1550
1676
|
{
|
|
1551
1677
|
entry,
|
|
1678
|
+
actionMode: entry.isDiscovered ? "discovered" : "default",
|
|
1552
1679
|
isSelected: (selectedEntry == null ? void 0 : selectedEntry.path) === entry.path,
|
|
1553
1680
|
onSelect: handleSelectRepository,
|
|
1554
1681
|
onOpen: handleOpenRepository,
|
|
1555
|
-
onRemove: handleRemoveRepository,
|
|
1682
|
+
onRemove: entry.isDiscovered ? void 0 : handleRemoveRepository,
|
|
1683
|
+
onTrack: entry.isDiscovered ? handleTrackRepository : void 0,
|
|
1556
1684
|
windowState: windowStates.get(entry.path) || "closed"
|
|
1557
1685
|
},
|
|
1558
1686
|
entry.path
|
|
@@ -4816,7 +4944,7 @@ const GitHubStarredPanelContent = ({
|
|
|
4816
4944
|
{
|
|
4817
4945
|
repository: repo,
|
|
4818
4946
|
localRepo: localRepoMap.get(repo.full_name),
|
|
4819
|
-
onClone: handleClone,
|
|
4947
|
+
onClone: panelActions.cloneRepository ? handleClone : void 0,
|
|
4820
4948
|
onOpen: handleOpen,
|
|
4821
4949
|
onSelect: handleSelect,
|
|
4822
4950
|
isSelected: (selectedRepo == null ? void 0 : selectedRepo.id) === repo.id,
|
|
@@ -5592,7 +5720,7 @@ const GitHubProjectsPanelContent = ({
|
|
|
5592
5720
|
{
|
|
5593
5721
|
repository: repo,
|
|
5594
5722
|
localRepo: localRepoMap.get(repo.full_name),
|
|
5595
|
-
onClone: handleClone,
|
|
5723
|
+
onClone: panelActions.cloneRepository ? handleClone : void 0,
|
|
5596
5724
|
onOpen: handleOpen,
|
|
5597
5725
|
onSelect: handleSelect,
|
|
5598
5726
|
isSelected: (selectedRepo == null ? void 0 : selectedRepo.id) === repo.id,
|
|
@@ -5620,7 +5748,7 @@ const GitHubProjectsPanelContent = ({
|
|
|
5620
5748
|
{
|
|
5621
5749
|
repository: repo,
|
|
5622
5750
|
localRepo: localRepoMap.get(repo.full_name),
|
|
5623
|
-
onClone: handleClone,
|
|
5751
|
+
onClone: panelActions.cloneRepository ? handleClone : void 0,
|
|
5624
5752
|
onOpen: handleOpen,
|
|
5625
5753
|
onSelect: handleSelect,
|
|
5626
5754
|
isSelected: (selectedRepo == null ? void 0 : selectedRepo.id) === repo.id,
|