@industry-theme/alexandria-panels 0.1.34 → 0.1.36

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.
@@ -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$B = [
143
+ const __iconNode$z = [
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$B = [
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$B);
156
+ const Building2 = createLucideIcon("building-2", __iconNode$z);
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$A = [
163
+ const __iconNode$y = [
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$A);
169
+ const Calendar = createLucideIcon("calendar", __iconNode$y);
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$z = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
177
- const Check = createLucideIcon("check", __iconNode$z);
176
+ const __iconNode$x = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
177
+ const Check = createLucideIcon("check", __iconNode$x);
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$y = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
185
- const ChevronDown = createLucideIcon("chevron-down", __iconNode$y);
184
+ const __iconNode$w = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
185
+ const ChevronDown = createLucideIcon("chevron-down", __iconNode$w);
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$x = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
193
- const ChevronRight = createLucideIcon("chevron-right", __iconNode$x);
192
+ const __iconNode$v = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
193
+ const ChevronRight = createLucideIcon("chevron-right", __iconNode$v);
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$w = [
200
+ const __iconNode$u = [
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$w);
205
+ const CircleAlert = createLucideIcon("circle-alert", __iconNode$u);
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$v = [["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]];
213
- const Circle = createLucideIcon("circle", __iconNode$v);
212
+ const __iconNode$t = [["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]];
213
+ const Circle = createLucideIcon("circle", __iconNode$t);
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$u = [
220
+ const __iconNode$s = [
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,71 @@ const __iconNode$u = [
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$u);
228
+ const CloudOff = createLucideIcon("cloud-off", __iconNode$s);
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$t = [
235
+ const __iconNode$r = [
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$t);
238
+ const Cloud = createLucideIcon("cloud", __iconNode$r);
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$s = [
245
+ const __iconNode$q = [
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$s);
249
+ const Copy = createLucideIcon("copy", __iconNode$q);
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$r = [
256
+ const __iconNode$p = [
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$r);
261
+ const DoorClosed = createLucideIcon("door-closed", __iconNode$p);
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$q = [
268
+ const __iconNode$o = [
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$q);
273
+ const Download = createLucideIcon("download", __iconNode$o);
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$p = [
280
+ const __iconNode$n = [
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$p);
286
- /**
287
- * @license lucide-react v0.552.0 - ISC
288
- *
289
- * This source code is licensed under the ISC license.
290
- * See the LICENSE file in the root directory of this source tree.
291
- */
292
- const __iconNode$o = [
293
- ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }],
294
- ["path", { d: "M3 7V5a2 2 0 0 1 2-2h2", key: "aa7l1z" }],
295
- ["path", { d: "M17 3h2a2 2 0 0 1 2 2v2", key: "4qcy5o" }],
296
- ["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2", key: "6vwrx8" }],
297
- ["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2", key: "ioqczr" }]
298
- ];
299
- const Focus = createLucideIcon("focus", __iconNode$o);
285
+ const ExternalLink = createLucideIcon("external-link", __iconNode$n);
300
286
  /**
301
287
  * @license lucide-react v0.552.0 - ISC
302
288
  *
303
289
  * This source code is licensed under the ISC license.
304
290
  * See the LICENSE file in the root directory of this source tree.
305
291
  */
306
- const __iconNode$n = [
292
+ const __iconNode$m = [
307
293
  [
308
294
  "path",
309
295
  {
@@ -315,14 +301,14 @@ const __iconNode$n = [
315
301
  ["path", { d: "M18 19c-2.8 0-5-2.2-5-5v8", key: "pkpw2h" }],
316
302
  ["circle", { cx: "20", cy: "19", r: "2", key: "1obnsp" }]
317
303
  ];
318
- const FolderGit2 = createLucideIcon("folder-git-2", __iconNode$n);
304
+ const FolderGit2 = createLucideIcon("folder-git-2", __iconNode$m);
319
305
  /**
320
306
  * @license lucide-react v0.552.0 - ISC
321
307
  *
322
308
  * This source code is licensed under the ISC license.
323
309
  * See the LICENSE file in the root directory of this source tree.
324
310
  */
325
- const __iconNode$m = [
311
+ const __iconNode$l = [
326
312
  [
327
313
  "path",
328
314
  {
@@ -331,14 +317,14 @@ const __iconNode$m = [
331
317
  }
332
318
  ]
333
319
  ];
334
- const FolderOpen = createLucideIcon("folder-open", __iconNode$m);
320
+ const FolderOpen = createLucideIcon("folder-open", __iconNode$l);
335
321
  /**
336
322
  * @license lucide-react v0.552.0 - ISC
337
323
  *
338
324
  * This source code is licensed under the ISC license.
339
325
  * See the LICENSE file in the root directory of this source tree.
340
326
  */
341
- const __iconNode$l = [
327
+ const __iconNode$k = [
342
328
  ["path", { d: "M12 10v6", key: "1bos4e" }],
343
329
  ["path", { d: "M9 13h6", key: "1uhe8q" }],
344
330
  [
@@ -349,14 +335,14 @@ const __iconNode$l = [
349
335
  }
350
336
  ]
351
337
  ];
352
- const FolderPlus = createLucideIcon("folder-plus", __iconNode$l);
338
+ const FolderPlus = createLucideIcon("folder-plus", __iconNode$k);
353
339
  /**
354
340
  * @license lucide-react v0.552.0 - ISC
355
341
  *
356
342
  * This source code is licensed under the ISC license.
357
343
  * See the LICENSE file in the root directory of this source tree.
358
344
  */
359
- const __iconNode$k = [
345
+ const __iconNode$j = [
360
346
  [
361
347
  "path",
362
348
  {
@@ -365,41 +351,41 @@ const __iconNode$k = [
365
351
  }
366
352
  ]
367
353
  ];
368
- const Folder = createLucideIcon("folder", __iconNode$k);
354
+ const Folder = createLucideIcon("folder", __iconNode$j);
369
355
  /**
370
356
  * @license lucide-react v0.552.0 - ISC
371
357
  *
372
358
  * This source code is licensed under the ISC license.
373
359
  * See the LICENSE file in the root directory of this source tree.
374
360
  */
375
- const __iconNode$j = [
361
+ const __iconNode$i = [
376
362
  ["line", { x1: "6", x2: "6", y1: "3", y2: "15", key: "17qcm7" }],
377
363
  ["circle", { cx: "18", cy: "6", r: "3", key: "1h7g24" }],
378
364
  ["circle", { cx: "6", cy: "18", r: "3", key: "fqmcym" }],
379
365
  ["path", { d: "M18 9a9 9 0 0 1-9 9", key: "n2h4wq" }]
380
366
  ];
381
- const GitBranch = createLucideIcon("git-branch", __iconNode$j);
367
+ const GitBranch = createLucideIcon("git-branch", __iconNode$i);
382
368
  /**
383
369
  * @license lucide-react v0.552.0 - ISC
384
370
  *
385
371
  * This source code is licensed under the ISC license.
386
372
  * See the LICENSE file in the root directory of this source tree.
387
373
  */
388
- const __iconNode$i = [
374
+ const __iconNode$h = [
389
375
  ["circle", { cx: "12", cy: "18", r: "3", key: "1mpf1b" }],
390
376
  ["circle", { cx: "6", cy: "6", r: "3", key: "1lh9wr" }],
391
377
  ["circle", { cx: "18", cy: "6", r: "3", key: "1h7g24" }],
392
378
  ["path", { d: "M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9", key: "1uq4wg" }],
393
379
  ["path", { d: "M12 12v3", key: "158kv8" }]
394
380
  ];
395
- const GitFork = createLucideIcon("git-fork", __iconNode$i);
381
+ const GitFork = createLucideIcon("git-fork", __iconNode$h);
396
382
  /**
397
383
  * @license lucide-react v0.552.0 - ISC
398
384
  *
399
385
  * This source code is licensed under the ISC license.
400
386
  * See the LICENSE file in the root directory of this source tree.
401
387
  */
402
- const __iconNode$h = [
388
+ const __iconNode$g = [
403
389
  ["path", { d: "M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8", key: "5wwlr5" }],
404
390
  [
405
391
  "path",
@@ -409,14 +395,14 @@ const __iconNode$h = [
409
395
  }
410
396
  ]
411
397
  ];
412
- const House = createLucideIcon("house", __iconNode$h);
398
+ const House = createLucideIcon("house", __iconNode$g);
413
399
  /**
414
400
  * @license lucide-react v0.552.0 - ISC
415
401
  *
416
402
  * This source code is licensed under the ISC license.
417
403
  * See the LICENSE file in the root directory of this source tree.
418
404
  */
419
- const __iconNode$g = [
405
+ const __iconNode$f = [
420
406
  [
421
407
  "path",
422
408
  {
@@ -439,44 +425,44 @@ const __iconNode$g = [
439
425
  }
440
426
  ]
441
427
  ];
442
- const Layers = createLucideIcon("layers", __iconNode$g);
428
+ const Layers = createLucideIcon("layers", __iconNode$f);
443
429
  /**
444
430
  * @license lucide-react v0.552.0 - ISC
445
431
  *
446
432
  * This source code is licensed under the ISC license.
447
433
  * See the LICENSE file in the root directory of this source tree.
448
434
  */
449
- const __iconNode$f = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
450
- const LoaderCircle = createLucideIcon("loader-circle", __iconNode$f);
435
+ const __iconNode$e = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
436
+ const LoaderCircle = createLucideIcon("loader-circle", __iconNode$e);
451
437
  /**
452
438
  * @license lucide-react v0.552.0 - ISC
453
439
  *
454
440
  * This source code is licensed under the ISC license.
455
441
  * See the LICENSE file in the root directory of this source tree.
456
442
  */
457
- const __iconNode$e = [
443
+ const __iconNode$d = [
458
444
  ["rect", { width: "18", height: "11", x: "3", y: "11", rx: "2", ry: "2", key: "1w4ew1" }],
459
445
  ["path", { d: "M7 11V7a5 5 0 0 1 10 0v4", key: "fwvmzm" }]
460
446
  ];
461
- const Lock = createLucideIcon("lock", __iconNode$e);
447
+ const Lock = createLucideIcon("lock", __iconNode$d);
462
448
  /**
463
449
  * @license lucide-react v0.552.0 - ISC
464
450
  *
465
451
  * This source code is licensed under the ISC license.
466
452
  * See the LICENSE file in the root directory of this source tree.
467
453
  */
468
- const __iconNode$d = [
454
+ const __iconNode$c = [
469
455
  ["path", { d: "m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7", key: "132q7q" }],
470
456
  ["rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", key: "izxlao" }]
471
457
  ];
472
- const Mail = createLucideIcon("mail", __iconNode$d);
458
+ const Mail = createLucideIcon("mail", __iconNode$c);
473
459
  /**
474
460
  * @license lucide-react v0.552.0 - ISC
475
461
  *
476
462
  * This source code is licensed under the ISC license.
477
463
  * See the LICENSE file in the root directory of this source tree.
478
464
  */
479
- const __iconNode$c = [
465
+ const __iconNode$b = [
480
466
  [
481
467
  "path",
482
468
  {
@@ -486,18 +472,7 @@ const __iconNode$c = [
486
472
  ],
487
473
  ["circle", { cx: "12", cy: "10", r: "3", key: "ilqhr7" }]
488
474
  ];
489
- const MapPin = createLucideIcon("map-pin", __iconNode$c);
490
- /**
491
- * @license lucide-react v0.552.0 - ISC
492
- *
493
- * This source code is licensed under the ISC license.
494
- * See the LICENSE file in the root directory of this source tree.
495
- */
496
- const __iconNode$b = [
497
- ["path", { d: "M8 6L12 2L16 6", key: "1yvkyx" }],
498
- ["path", { d: "M12 2V22", key: "r89rzk" }]
499
- ];
500
- const MoveUp = createLucideIcon("move-up", __iconNode$b);
475
+ const MapPin = createLucideIcon("map-pin", __iconNode$b);
501
476
  /**
502
477
  * @license lucide-react v0.552.0 - ISC
503
478
  *
@@ -733,9 +708,10 @@ const LocalProjectCard = ({
733
708
  compact: _compact = false,
734
709
  isInWorkspaceDirectory,
735
710
  workspacePath,
736
- userHomePath
711
+ userHomePath,
712
+ disableCopyPaths = true
737
713
  }) => {
738
- var _a, _b, _c, _d, _e, _f;
714
+ var _a, _b, _c, _d;
739
715
  const { theme } = useTheme();
740
716
  const [isHovered, setIsHovered] = useState(false);
741
717
  const [copiedPath, setCopiedPath] = useState(false);
@@ -759,40 +735,6 @@ const LocalProjectCard = ({
759
735
  const handleDoubleClick = () => {
760
736
  onOpen == null ? void 0 : onOpen(entry);
761
737
  };
762
- const handleOpenClick = (e) => {
763
- e.stopPropagation();
764
- onOpen == null ? void 0 : onOpen(entry);
765
- };
766
- const handleRemoveClick = (e) => {
767
- e.stopPropagation();
768
- onRemove == null ? void 0 : onRemove(entry);
769
- };
770
- const handleAddToWorkspaceClick = (e) => {
771
- e.stopPropagation();
772
- onAddToWorkspace == null ? void 0 : onAddToWorkspace(entry);
773
- };
774
- const handleRemoveFromWorkspaceClick = async (e) => {
775
- e.stopPropagation();
776
- try {
777
- setIsRemoving(true);
778
- onRemoveFromWorkspace == null ? void 0 : onRemoveFromWorkspace(entry);
779
- } finally {
780
- setIsRemoving(false);
781
- }
782
- };
783
- const handleMoveToWorkspaceClick = async (e) => {
784
- e.stopPropagation();
785
- try {
786
- setIsMoving(true);
787
- onMoveToWorkspace == null ? void 0 : onMoveToWorkspace(entry);
788
- } finally {
789
- setIsMoving(false);
790
- }
791
- };
792
- const handleTrackClick = (e) => {
793
- e.stopPropagation();
794
- onTrack == null ? void 0 : onTrack(entry);
795
- };
796
738
  const handleCopyPath = async (e) => {
797
739
  e.stopPropagation();
798
740
  try {
@@ -803,228 +745,14 @@ const LocalProjectCard = ({
803
745
  console.error("Failed to copy path:", err);
804
746
  }
805
747
  };
806
- const actionButtonStyle = {
807
- display: "flex",
808
- alignItems: "center",
809
- justifyContent: "center",
810
- gap: "4px",
811
- flex: 1,
812
- height: "24px",
813
- padding: "0 8px",
814
- border: "none",
815
- borderRadius: "4px",
816
- backgroundColor: "transparent",
817
- color: theme.colors.textSecondary,
818
- cursor: "pointer",
819
- fontSize: `${theme.fontSizes[1]}px`,
820
- fontFamily: theme.fonts.body,
821
- transition: "all 0.15s ease"
822
- };
823
- const handleButtonHover = (e, isDestructive = false) => {
824
- if (isDestructive) {
825
- e.currentTarget.style.backgroundColor = `${theme.colors.error || "#ef4444"}15`;
826
- e.currentTarget.style.color = theme.colors.error || "#ef4444";
827
- } else {
828
- e.currentTarget.style.backgroundColor = theme.colors.backgroundTertiary;
829
- e.currentTarget.style.color = theme.colors.text;
830
- }
831
- };
832
- const handleButtonLeave = (e, defaultColor) => {
833
- e.currentTarget.style.backgroundColor = "transparent";
834
- e.currentTarget.style.color = defaultColor || theme.colors.textSecondary;
835
- };
836
- const renderActionButtons = () => {
837
- if (actionMode === "add-to-workspace") {
838
- return /* @__PURE__ */ jsxs(
839
- "button",
840
- {
841
- type: "button",
842
- onClick: handleAddToWorkspaceClick,
843
- disabled: isLoading,
844
- title: "Add to workspace",
845
- style: actionButtonStyle,
846
- onMouseEnter: (e) => handleButtonHover(e),
847
- onMouseLeave: (e) => handleButtonLeave(e),
848
- children: [
849
- isLoading ? /* @__PURE__ */ jsx(LoaderCircle, { size: 14, className: "animate-spin" }) : /* @__PURE__ */ jsx(Plus, { size: 14 }),
850
- /* @__PURE__ */ jsx("span", { children: "Add" })
851
- ]
852
- }
853
- );
854
- }
855
- if (actionMode === "workspace") {
856
- return /* @__PURE__ */ jsxs(Fragment, { children: [
857
- isInWorkspaceDirectory === false && onMoveToWorkspace && /* @__PURE__ */ jsxs(
858
- "button",
859
- {
860
- type: "button",
861
- onClick: handleMoveToWorkspaceClick,
862
- disabled: isMoving,
863
- title: "Move to workspace directory",
864
- style: actionButtonStyle,
865
- onMouseEnter: (e) => handleButtonHover(e),
866
- onMouseLeave: (e) => handleButtonLeave(e),
867
- children: [
868
- isMoving ? /* @__PURE__ */ jsx(LoaderCircle, { size: 14, className: "animate-spin" }) : /* @__PURE__ */ jsx(MoveUp, { size: 14 }),
869
- /* @__PURE__ */ jsx("span", { children: "Move" })
870
- ]
871
- }
872
- ),
873
- /* @__PURE__ */ jsxs(
874
- "button",
875
- {
876
- type: "button",
877
- onClick: handleCopyPath,
878
- title: copiedPath ? "Copied!" : `Copy path: ${entry.path}`,
879
- style: {
880
- ...actionButtonStyle,
881
- color: copiedPath ? theme.colors.success || "#10b981" : theme.colors.textSecondary
882
- },
883
- onMouseEnter: (e) => handleButtonHover(e),
884
- onMouseLeave: (e) => handleButtonLeave(e, copiedPath ? theme.colors.success || "#10b981" : void 0),
885
- children: [
886
- copiedPath ? /* @__PURE__ */ jsx(Check, { size: 14 }) : /* @__PURE__ */ jsx(Copy, { size: 14 }),
887
- /* @__PURE__ */ jsx("span", { children: copiedPath ? "Copied" : "Copy" })
888
- ]
889
- }
890
- ),
891
- /* @__PURE__ */ jsxs(
892
- "button",
893
- {
894
- type: "button",
895
- onClick: handleOpenClick,
896
- title: "Open repository",
897
- style: actionButtonStyle,
898
- onMouseEnter: (e) => handleButtonHover(e),
899
- onMouseLeave: (e) => handleButtonLeave(e),
900
- children: [
901
- /* @__PURE__ */ jsx(FolderOpen, { size: 14 }),
902
- /* @__PURE__ */ jsx("span", { children: "Open" })
903
- ]
904
- }
905
- ),
906
- onRemoveFromWorkspace && /* @__PURE__ */ jsxs(
907
- "button",
908
- {
909
- type: "button",
910
- onClick: handleRemoveFromWorkspaceClick,
911
- disabled: isRemoving,
912
- title: "Remove from workspace",
913
- style: actionButtonStyle,
914
- onMouseEnter: (e) => handleButtonHover(e, true),
915
- onMouseLeave: (e) => handleButtonLeave(e),
916
- children: [
917
- isRemoving ? /* @__PURE__ */ jsx(LoaderCircle, { size: 14, className: "animate-spin" }) : /* @__PURE__ */ jsx(X, { size: 14 }),
918
- /* @__PURE__ */ jsx("span", { children: "Remove" })
919
- ]
920
- }
921
- )
922
- ] });
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
- }
967
- return /* @__PURE__ */ jsxs(Fragment, { children: [
968
- /* @__PURE__ */ jsxs(
969
- "button",
970
- {
971
- type: "button",
972
- onClick: handleCopyPath,
973
- title: copiedPath ? "Copied!" : `Copy path: ${entry.path}`,
974
- style: {
975
- ...actionButtonStyle,
976
- color: copiedPath ? theme.colors.success || "#10b981" : theme.colors.textSecondary
977
- },
978
- onMouseEnter: (e) => handleButtonHover(e),
979
- onMouseLeave: (e) => handleButtonLeave(e, copiedPath ? theme.colors.success || "#10b981" : void 0),
980
- children: [
981
- copiedPath ? /* @__PURE__ */ jsx(Check, { size: 14 }) : /* @__PURE__ */ jsx(Copy, { size: 14 }),
982
- /* @__PURE__ */ jsx("span", { children: copiedPath ? "Copied" : "Copy" })
983
- ]
984
- }
985
- ),
986
- /* @__PURE__ */ jsxs(
987
- "button",
988
- {
989
- type: "button",
990
- onClick: handleOpenClick,
991
- title: windowState === "ready" ? "Focus window" : windowState === "opening" ? "Window is opening..." : "Open locally",
992
- disabled: windowState === "opening",
993
- style: actionButtonStyle,
994
- onMouseEnter: (e) => handleButtonHover(e),
995
- onMouseLeave: (e) => handleButtonLeave(e),
996
- children: [
997
- windowState === "ready" ? /* @__PURE__ */ jsx(Focus, { size: 14 }) : windowState === "opening" ? /* @__PURE__ */ jsx(LoaderCircle, { size: 14, className: "animate-spin" }) : /* @__PURE__ */ jsx(FolderOpen, { size: 14 }),
998
- /* @__PURE__ */ jsx("span", { children: windowState === "ready" ? "Focus" : "Open" })
999
- ]
1000
- }
1001
- ),
1002
- actionMode === "default" && onRemove && /* @__PURE__ */ jsxs(
1003
- "button",
1004
- {
1005
- type: "button",
1006
- onClick: handleRemoveClick,
1007
- disabled: isLoading,
1008
- title: "Remove from local projects",
1009
- style: actionButtonStyle,
1010
- onMouseEnter: (e) => handleButtonHover(e, true),
1011
- onMouseLeave: (e) => handleButtonLeave(e),
1012
- children: [
1013
- isLoading ? /* @__PURE__ */ jsx(LoaderCircle, { size: 14, className: "animate-spin" }) : /* @__PURE__ */ jsx(X, { size: 14 }),
1014
- /* @__PURE__ */ jsx("span", { children: "Remove" })
1015
- ]
1016
- }
1017
- )
1018
- ] });
1019
- };
1020
748
  const cardStyle = {
1021
749
  display: "flex",
1022
750
  flexDirection: "row",
1023
- gap: "12px",
1024
- padding: "12px",
1025
- borderRadius: "6px",
751
+ gap: "8px",
752
+ padding: "16px",
753
+ borderRadius: "0",
1026
754
  backgroundColor: isSelected ? theme.colors.backgroundTertiary : isHovered ? theme.colors.backgroundTertiary : "transparent",
1027
- border: `1px solid ${isSelected ? theme.colors.primary || theme.colors.border : isHovered ? theme.colors.border : "transparent"}`,
755
+ border: `1px solid ${isSelected ? theme.colors.primary || theme.colors.border : "transparent"}`,
1028
756
  cursor: "pointer",
1029
757
  transition: "all 0.15s ease",
1030
758
  fontFamily: theme.fonts.body
@@ -1128,49 +856,52 @@ const LocalProjectCard = ({
1128
856
  /* @__PURE__ */ jsxs(
1129
857
  "div",
1130
858
  {
859
+ onClick: disableCopyPaths ? void 0 : handleCopyPath,
1131
860
  style: {
1132
861
  display: "flex",
1133
862
  alignItems: "center",
1134
- minHeight: "24px",
1135
- position: "relative"
863
+ gap: "6px",
864
+ cursor: disableCopyPaths ? "default" : "pointer"
1136
865
  },
866
+ title: disableCopyPaths ? displayPath : copiedPath ? "Copied!" : `Click to copy: ${entry.path}`,
1137
867
  children: [
1138
868
  /* @__PURE__ */ jsx(
1139
- "div",
869
+ "span",
1140
870
  {
1141
871
  style: {
1142
872
  flex: 1,
1143
873
  fontSize: `${theme.fontSizes[1]}px`,
1144
- color: theme.colors.textSecondary,
874
+ color: copiedPath ? theme.colors.success || "#10b981" : theme.colors.textSecondary,
1145
875
  lineHeight: 1.4,
1146
876
  whiteSpace: "nowrap",
1147
877
  overflow: "hidden",
1148
878
  textOverflow: "ellipsis",
1149
879
  minWidth: 0,
1150
- opacity: isHovered ? 0 : 1,
1151
- transition: "opacity 0.15s ease"
880
+ transition: "color 0.15s ease"
1152
881
  },
1153
- title: ((_e = entry.github) == null ? void 0 : _e.description) || displayPath,
1154
- children: ((_f = entry.github) == null ? void 0 : _f.description) || displayPath
882
+ children: copiedPath ? "✓ Copied!" : displayPath
1155
883
  }
1156
884
  ),
1157
- /* @__PURE__ */ jsx(
1158
- "div",
885
+ !disableCopyPaths && !copiedPath && /* @__PURE__ */ jsx(
886
+ Copy,
1159
887
  {
888
+ size: 12,
1160
889
  style: {
1161
- position: "absolute",
1162
- left: 0,
1163
- right: 0,
1164
- top: 0,
1165
- bottom: 0,
1166
- display: "flex",
1167
- alignItems: "center",
1168
- gap: "4px",
890
+ color: theme.colors.textSecondary,
891
+ flexShrink: 0,
1169
892
  opacity: isHovered ? 1 : 0,
1170
- pointerEvents: isHovered ? "auto" : "none",
1171
893
  transition: "opacity 0.15s ease"
1172
- },
1173
- children: renderActionButtons()
894
+ }
895
+ }
896
+ ),
897
+ !disableCopyPaths && copiedPath && /* @__PURE__ */ jsx(
898
+ Check,
899
+ {
900
+ size: 12,
901
+ style: {
902
+ color: theme.colors.success || "#10b981",
903
+ flexShrink: 0
904
+ }
1174
905
  }
1175
906
  )
1176
907
  ]
@@ -1194,7 +925,8 @@ const LocalProjectsPanelContent = ({
1194
925
  context,
1195
926
  actions,
1196
927
  events,
1197
- defaultShowSearch = false
928
+ defaultShowSearch = false,
929
+ disableCopyPaths = true
1198
930
  }) => {
1199
931
  var _a, _b;
1200
932
  const { theme } = useTheme();
@@ -1463,11 +1195,12 @@ const LocalProjectsPanelContent = ({
1463
1195
  position: "relative",
1464
1196
  height: "40px",
1465
1197
  minHeight: "40px",
1466
- padding: defaultShowSearch && showSearch ? "0 16px 0 8px" : "0 16px",
1198
+ padding: "0",
1467
1199
  borderBottom: `1px solid ${theme.colors.border}`,
1468
1200
  display: "flex",
1469
1201
  alignItems: "center",
1470
- boxSizing: "border-box"
1202
+ boxSizing: "border-box",
1203
+ backgroundColor: theme.colors.background
1471
1204
  },
1472
1205
  children: defaultShowSearch && showSearch ? /* @__PURE__ */ jsxs(
1473
1206
  "div",
@@ -1475,7 +1208,7 @@ const LocalProjectsPanelContent = ({
1475
1208
  style: {
1476
1209
  display: "flex",
1477
1210
  alignItems: "center",
1478
- gap: "8px",
1211
+ gap: "0",
1479
1212
  width: "100%"
1480
1213
  },
1481
1214
  children: [
@@ -1503,12 +1236,13 @@ const LocalProjectsPanelContent = ({
1503
1236
  autoFocus: true,
1504
1237
  style: {
1505
1238
  width: "100%",
1506
- padding: "6px 32px 6px 32px",
1239
+ padding: "0 32px",
1240
+ height: "40px",
1507
1241
  fontSize: `${theme.fontSizes[1]}px`,
1508
1242
  color: theme.colors.text,
1509
1243
  backgroundColor: theme.colors.background,
1510
- border: `1px solid ${theme.colors.border}`,
1511
- borderRadius: "4px",
1244
+ border: "none",
1245
+ borderRadius: "0",
1512
1246
  outline: "none",
1513
1247
  fontFamily: theme.fonts.body,
1514
1248
  transition: "border-color 0.2s ease",
@@ -1538,17 +1272,17 @@ const LocalProjectsPanelContent = ({
1538
1272
  }
1539
1273
  )
1540
1274
  ] }),
1541
- /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "8px" }, children: [
1275
+ /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "0" }, children: [
1542
1276
  /* @__PURE__ */ jsx(
1543
1277
  "button",
1544
1278
  {
1545
1279
  onClick: () => setSortByOrg(!sortByOrg),
1546
1280
  title: sortByOrg ? "Sort by: Last opened, then organization" : "Sort by: Last opened, then name",
1547
1281
  style: {
1548
- padding: "4px 8px",
1549
- height: "30px",
1550
- borderRadius: "4px",
1551
- border: `1px solid ${theme.colors.border}`,
1282
+ padding: "0 12px",
1283
+ height: "40px",
1284
+ borderRadius: "0",
1285
+ border: "none",
1552
1286
  backgroundColor: theme.colors.backgroundSecondary,
1553
1287
  color: sortByOrg ? theme.colors.primary : theme.colors.textSecondary,
1554
1288
  cursor: "pointer",
@@ -1568,10 +1302,10 @@ const LocalProjectsPanelContent = ({
1568
1302
  disabled: isScanning,
1569
1303
  title: "Scan for repositories",
1570
1304
  style: {
1571
- padding: "4px 8px",
1572
- height: "30px",
1573
- borderRadius: "4px",
1574
- border: `1px solid ${theme.colors.border}`,
1305
+ padding: "0 12px",
1306
+ height: "40px",
1307
+ borderRadius: "0",
1308
+ border: "none",
1575
1309
  backgroundColor: theme.colors.backgroundSecondary,
1576
1310
  color: theme.colors.textSecondary,
1577
1311
  cursor: isScanning ? "default" : "pointer",
@@ -1600,9 +1334,9 @@ const LocalProjectsPanelContent = ({
1600
1334
  disabled: isAdding,
1601
1335
  title: "Add existing project",
1602
1336
  style: {
1603
- padding: "4px 8px",
1604
- height: "30px",
1605
- borderRadius: "4px",
1337
+ padding: "0 12px",
1338
+ height: "40px",
1339
+ borderRadius: "0",
1606
1340
  border: "none",
1607
1341
  backgroundColor: theme.colors.primary,
1608
1342
  color: theme.colors.background,
@@ -1632,7 +1366,7 @@ const LocalProjectsPanelContent = ({
1632
1366
  visibility: showSearch ? "hidden" : "visible"
1633
1367
  },
1634
1368
  children: [
1635
- /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "8px" }, children: [
1369
+ /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "0" }, children: [
1636
1370
  /* @__PURE__ */ jsx(FolderGit2, { size: 18, style: { color: theme.colors.success || "#10b981" } }),
1637
1371
  /* @__PURE__ */ jsx(
1638
1372
  "span",
@@ -1660,7 +1394,7 @@ const LocalProjectsPanelContent = ({
1660
1394
  }
1661
1395
  )
1662
1396
  ] }),
1663
- /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "8px" }, children: [
1397
+ /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "0" }, children: [
1664
1398
  /* @__PURE__ */ jsx(
1665
1399
  "button",
1666
1400
  {
@@ -1668,10 +1402,11 @@ const LocalProjectsPanelContent = ({
1668
1402
  onClick: handleToggleSearch,
1669
1403
  style: {
1670
1404
  background: showSearch ? theme.colors.backgroundSecondary : "none",
1671
- border: `1px solid ${showSearch ? theme.colors.border : "transparent"}`,
1672
- borderRadius: "4px",
1405
+ border: "none",
1406
+ borderRadius: "0",
1673
1407
  cursor: "pointer",
1674
- padding: "4px",
1408
+ padding: "0 12px",
1409
+ height: "40px",
1675
1410
  display: "flex",
1676
1411
  alignItems: "center",
1677
1412
  justifyContent: "center",
@@ -1688,10 +1423,10 @@ const LocalProjectsPanelContent = ({
1688
1423
  onClick: () => setSortByOrg(!sortByOrg),
1689
1424
  title: sortByOrg ? "Sort by: Last opened, then organization" : "Sort by: Last opened, then name",
1690
1425
  style: {
1691
- padding: "4px 8px",
1692
- height: "30px",
1693
- borderRadius: "4px",
1694
- border: `1px solid ${theme.colors.border}`,
1426
+ padding: "0 12px",
1427
+ height: "40px",
1428
+ borderRadius: "0",
1429
+ border: "none",
1695
1430
  backgroundColor: theme.colors.backgroundSecondary,
1696
1431
  color: sortByOrg ? theme.colors.primary : theme.colors.textSecondary,
1697
1432
  cursor: "pointer",
@@ -1711,10 +1446,10 @@ const LocalProjectsPanelContent = ({
1711
1446
  disabled: isScanning,
1712
1447
  title: "Scan for repositories",
1713
1448
  style: {
1714
- padding: "4px 8px",
1715
- height: "30px",
1716
- borderRadius: "4px",
1717
- border: `1px solid ${theme.colors.border}`,
1449
+ padding: "0 12px",
1450
+ height: "40px",
1451
+ borderRadius: "0",
1452
+ border: "none",
1718
1453
  backgroundColor: theme.colors.backgroundSecondary,
1719
1454
  color: theme.colors.textSecondary,
1720
1455
  cursor: isScanning ? "default" : "pointer",
@@ -1743,9 +1478,9 @@ const LocalProjectsPanelContent = ({
1743
1478
  disabled: isAdding,
1744
1479
  title: "Add existing project",
1745
1480
  style: {
1746
- padding: "4px 8px",
1747
- height: "30px",
1748
- borderRadius: "4px",
1481
+ padding: "0 12px",
1482
+ height: "40px",
1483
+ borderRadius: "0",
1749
1484
  border: "none",
1750
1485
  backgroundColor: theme.colors.primary,
1751
1486
  color: theme.colors.background,
@@ -1776,7 +1511,7 @@ const LocalProjectsPanelContent = ({
1776
1511
  bottom: 0,
1777
1512
  display: "flex",
1778
1513
  alignItems: "center",
1779
- padding: "0 16px",
1514
+ padding: "0",
1780
1515
  backgroundColor: theme.colors.backgroundSecondary,
1781
1516
  zIndex: 10
1782
1517
  },
@@ -1805,12 +1540,13 @@ const LocalProjectsPanelContent = ({
1805
1540
  autoFocus: true,
1806
1541
  style: {
1807
1542
  width: "100%",
1808
- padding: "6px 32px 6px 32px",
1543
+ padding: "0 32px",
1544
+ height: "40px",
1809
1545
  fontSize: `${theme.fontSizes[1]}px`,
1810
1546
  color: theme.colors.text,
1811
1547
  backgroundColor: theme.colors.background,
1812
- border: `1px solid ${theme.colors.border}`,
1813
- borderRadius: "4px",
1548
+ border: "none",
1549
+ borderRadius: "0",
1814
1550
  outline: "none",
1815
1551
  fontFamily: theme.fonts.body,
1816
1552
  transition: "border-color 0.2s ease",
@@ -1848,8 +1584,9 @@ const LocalProjectsPanelContent = ({
1848
1584
  background: "none",
1849
1585
  border: "none",
1850
1586
  cursor: "pointer",
1851
- padding: "4px",
1852
- marginLeft: "8px",
1587
+ padding: "0 12px",
1588
+ height: "40px",
1589
+ marginLeft: "0",
1853
1590
  display: "flex",
1854
1591
  alignItems: "center",
1855
1592
  justifyContent: "center",
@@ -1874,8 +1611,8 @@ const LocalProjectsPanelContent = ({
1874
1611
  overflowY: "auto",
1875
1612
  display: "flex",
1876
1613
  flexDirection: "column",
1877
- gap: "4px",
1878
- padding: "8px"
1614
+ gap: "0",
1615
+ padding: "0"
1879
1616
  },
1880
1617
  children: [
1881
1618
  filteredAndSortedRepositories.map((entry) => /* @__PURE__ */ jsx(
@@ -1888,7 +1625,8 @@ const LocalProjectsPanelContent = ({
1888
1625
  onOpen: handleOpenRepository,
1889
1626
  onRemove: entry.isDiscovered ? void 0 : handleRemoveRepository,
1890
1627
  onTrack: entry.isDiscovered ? handleTrackRepository : void 0,
1891
- windowState: windowStates.get(entry.path) || "closed"
1628
+ windowState: windowStates.get(entry.path) || "closed",
1629
+ disableCopyPaths
1892
1630
  },
1893
1631
  entry.path
1894
1632
  )),