jupyterlab_claude_code_extension 1.2.34 → 1.2.35
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/package.json +1 -1
- package/style/base.css +124 -50
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jupyterlab_claude_code_extension",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.35",
|
|
4
4
|
"description": "Browse, resume, and manage your Claude Code CLI sessions from a JupyterLab side panel. One click reactivates the right terminal - no duplicate tabs, live remote-control indicator, and favourites for the projects you keep coming back to.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jupyter",
|
package/style/base.css
CHANGED
|
@@ -352,32 +352,71 @@
|
|
|
352
352
|
margin: 0 auto;
|
|
353
353
|
}
|
|
354
354
|
|
|
355
|
-
/*
|
|
355
|
+
/* ============================================================
|
|
356
|
+
Sessions Management popup - Duoptimum Hub design language,
|
|
357
|
+
driven entirely by JupyterLab theme variables so a theme flip
|
|
358
|
+
(light / dark / custom) restyles the whole screen at once. The
|
|
359
|
+
--ccs-* tokens map the design system onto --jp-* vars: the look
|
|
360
|
+
is the design language, the colours are the current theme.
|
|
361
|
+
============================================================ */
|
|
356
362
|
.jp-ClaudeSessionsPanel-branchPopup {
|
|
363
|
+
--ccs-radius-sm: 4px;
|
|
364
|
+
--ccs-radius: 6px;
|
|
365
|
+
--ccs-radius-lg: 8px;
|
|
366
|
+
--ccs-surface: var(--jp-layout-color1);
|
|
367
|
+
--ccs-surface-hover: var(--jp-layout-color2);
|
|
368
|
+
--ccs-border: var(--jp-border-color2);
|
|
369
|
+
--ccs-border-subtle: var(--jp-border-color3);
|
|
370
|
+
--ccs-text: var(--jp-ui-font-color1);
|
|
371
|
+
--ccs-text-muted: var(--jp-ui-font-color2);
|
|
372
|
+
|
|
373
|
+
/* font-color3 is the disabled/hint level - too dim for content in some themes
|
|
374
|
+
(e.g. Stellars Dark renders it ~#5a5a5a, near-invisible on the surface), so
|
|
375
|
+
readable secondary labels (times, "current", counts) stay at font-color2. */
|
|
376
|
+
--ccs-text-subtle: var(--jp-ui-font-color2);
|
|
377
|
+
--ccs-accent: var(--jp-brand-color1);
|
|
378
|
+
--ccs-accent-soft: color-mix(
|
|
379
|
+
in srgb,
|
|
380
|
+
var(--jp-brand-color1) 14%,
|
|
381
|
+
transparent
|
|
382
|
+
);
|
|
383
|
+
--ccs-danger: var(--jp-error-color1);
|
|
384
|
+
--ccs-danger-soft: color-mix(
|
|
385
|
+
in srgb,
|
|
386
|
+
var(--jp-error-color1) 15%,
|
|
387
|
+
transparent
|
|
388
|
+
);
|
|
389
|
+
|
|
357
390
|
display: flex;
|
|
358
391
|
flex-direction: column;
|
|
359
|
-
gap:
|
|
360
|
-
min-width:
|
|
392
|
+
gap: 10px;
|
|
393
|
+
min-width: 360px;
|
|
361
394
|
}
|
|
362
395
|
|
|
396
|
+
/* Design-language text input: 6px radius, accent focus ring. */
|
|
363
397
|
.jp-ClaudeSessionsPanel-branchSearch {
|
|
364
398
|
width: 100%;
|
|
365
399
|
box-sizing: border-box;
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
border
|
|
400
|
+
height: 30px;
|
|
401
|
+
padding: 0 11px;
|
|
402
|
+
background: var(--ccs-surface);
|
|
403
|
+
color: var(--ccs-text);
|
|
404
|
+
border: 1px solid var(--ccs-border);
|
|
405
|
+
border-radius: var(--ccs-radius);
|
|
371
406
|
font-family: inherit;
|
|
372
407
|
font-size: var(--jp-ui-font-size1);
|
|
373
408
|
outline: none;
|
|
409
|
+
transition:
|
|
410
|
+
border-color 120ms ease,
|
|
411
|
+
box-shadow 120ms ease;
|
|
374
412
|
}
|
|
375
413
|
|
|
376
414
|
.jp-ClaudeSessionsPanel-branchSearch:focus {
|
|
377
|
-
border-color: var(--
|
|
415
|
+
border-color: var(--ccs-accent);
|
|
416
|
+
box-shadow: 0 0 0 3px var(--ccs-accent-soft);
|
|
378
417
|
}
|
|
379
418
|
|
|
380
|
-
/*
|
|
419
|
+
/* Header strip above the list - select-all left, count right. */
|
|
381
420
|
.jp-ClaudeSessionsPanel-branchHeader {
|
|
382
421
|
display: flex;
|
|
383
422
|
align-items: center;
|
|
@@ -386,8 +425,9 @@
|
|
|
386
425
|
}
|
|
387
426
|
|
|
388
427
|
.jp-ClaudeSessionsPanel-branchHeaderCount {
|
|
389
|
-
color: var(--
|
|
428
|
+
color: var(--ccs-text-subtle);
|
|
390
429
|
font-size: var(--jp-ui-font-size0);
|
|
430
|
+
font-variant-numeric: tabular-nums;
|
|
391
431
|
}
|
|
392
432
|
|
|
393
433
|
/* Fixed-width first column so the checkbox (branch rows) and the empty cell
|
|
@@ -402,12 +442,15 @@
|
|
|
402
442
|
cursor: pointer;
|
|
403
443
|
}
|
|
404
444
|
|
|
445
|
+
/* The list is a surface card; rows are flush and hairline-separated. The
|
|
446
|
+
rounded corners clip the row hover fills (overflow-y establishes the clip). */
|
|
405
447
|
.jp-ClaudeSessionsPanel-branchList {
|
|
406
|
-
max-height:
|
|
448
|
+
max-height: 300px;
|
|
407
449
|
overflow-y: auto;
|
|
408
450
|
position: relative;
|
|
409
|
-
|
|
410
|
-
border
|
|
451
|
+
background: var(--ccs-surface);
|
|
452
|
+
border: 1px solid var(--ccs-border);
|
|
453
|
+
border-radius: var(--ccs-radius-lg);
|
|
411
454
|
}
|
|
412
455
|
|
|
413
456
|
/* Visually-hidden polite live region (delete announcements). */
|
|
@@ -427,17 +470,20 @@
|
|
|
427
470
|
display: flex;
|
|
428
471
|
align-items: center;
|
|
429
472
|
justify-content: space-between;
|
|
430
|
-
gap:
|
|
431
|
-
height:
|
|
432
|
-
|
|
433
|
-
padding: 0 8px;
|
|
473
|
+
gap: 10px;
|
|
474
|
+
height: 30px;
|
|
475
|
+
padding: 0 10px;
|
|
434
476
|
cursor: pointer;
|
|
435
|
-
border-
|
|
477
|
+
border-bottom: 1px solid var(--ccs-border-subtle);
|
|
436
478
|
font-size: var(--jp-ui-font-size1);
|
|
437
479
|
}
|
|
438
480
|
|
|
481
|
+
.jp-ClaudeSessionsPanel-branchRow:last-child {
|
|
482
|
+
border-bottom: none;
|
|
483
|
+
}
|
|
484
|
+
|
|
439
485
|
.jp-ClaudeSessionsPanel-branchRow:hover {
|
|
440
|
-
background: var(--
|
|
486
|
+
background: var(--ccs-surface-hover);
|
|
441
487
|
}
|
|
442
488
|
|
|
443
489
|
.jp-ClaudeSessionsPanel-branchLabel {
|
|
@@ -446,35 +492,49 @@
|
|
|
446
492
|
overflow: hidden;
|
|
447
493
|
text-overflow: ellipsis;
|
|
448
494
|
white-space: nowrap;
|
|
495
|
+
color: var(--ccs-text);
|
|
449
496
|
}
|
|
450
497
|
|
|
498
|
+
/* Copy id - design-language action icon: wireframe by default, hovers to a
|
|
499
|
+
surface tint. Square 24px hit target keeps it aligned in the row. */
|
|
451
500
|
.jp-ClaudeSessionsPanel-branchCopy {
|
|
452
501
|
flex: none;
|
|
453
|
-
|
|
454
|
-
|
|
502
|
+
width: 24px;
|
|
503
|
+
height: 24px;
|
|
504
|
+
display: inline-grid;
|
|
505
|
+
place-items: center;
|
|
455
506
|
padding: 0;
|
|
456
507
|
border: none;
|
|
508
|
+
border-radius: var(--ccs-radius-sm);
|
|
457
509
|
background: transparent;
|
|
458
|
-
color: var(--
|
|
510
|
+
color: var(--ccs-text-subtle);
|
|
459
511
|
cursor: pointer;
|
|
512
|
+
transition:
|
|
513
|
+
background 120ms ease,
|
|
514
|
+
color 120ms ease;
|
|
460
515
|
}
|
|
461
516
|
|
|
462
517
|
.jp-ClaudeSessionsPanel-branchCopy:hover {
|
|
463
|
-
|
|
518
|
+
background: var(--ccs-surface-hover);
|
|
519
|
+
color: var(--ccs-text);
|
|
464
520
|
}
|
|
465
521
|
|
|
466
|
-
/* Per-row "Open" launches the conversation in its own terminal.
|
|
467
|
-
|
|
522
|
+
/* Per-row "Open" launches the conversation in its own terminal. Design-language
|
|
523
|
+
list button: outlined accent, fills to the accent on hover (6px radius). */
|
|
468
524
|
.jp-ClaudeSessionsPanel-branchOpen {
|
|
469
525
|
flex: none;
|
|
470
|
-
|
|
526
|
+
height: 24px;
|
|
527
|
+
padding: 0 10px;
|
|
471
528
|
border: 1px solid var(--jp-brand-color1);
|
|
472
|
-
border-radius:
|
|
529
|
+
border-radius: var(--ccs-radius);
|
|
473
530
|
background: transparent;
|
|
474
531
|
color: var(--jp-brand-color1);
|
|
475
532
|
font-size: var(--jp-ui-font-size0);
|
|
533
|
+
font-weight: 500;
|
|
476
534
|
cursor: pointer;
|
|
477
|
-
transition:
|
|
535
|
+
transition:
|
|
536
|
+
background 120ms ease,
|
|
537
|
+
color 120ms ease;
|
|
478
538
|
}
|
|
479
539
|
|
|
480
540
|
.jp-ClaudeSessionsPanel-branchOpen:hover {
|
|
@@ -487,31 +547,33 @@
|
|
|
487
547
|
width: 4em;
|
|
488
548
|
white-space: nowrap;
|
|
489
549
|
text-align: right;
|
|
490
|
-
color: var(--
|
|
550
|
+
color: var(--ccs-text-subtle);
|
|
491
551
|
font-size: var(--jp-ui-font-size0);
|
|
552
|
+
font-variant-numeric: tabular-nums;
|
|
492
553
|
}
|
|
493
554
|
|
|
494
555
|
.jp-ClaudeSessionsPanel-branchRow input[type='checkbox'] {
|
|
495
556
|
flex: none;
|
|
496
557
|
margin: 0;
|
|
497
558
|
cursor: pointer;
|
|
559
|
+
accent-color: var(--jp-brand-color1);
|
|
498
560
|
}
|
|
499
561
|
|
|
500
562
|
/* The current conversation is pinned at the top of the scroll area and
|
|
501
|
-
accented (brand left-bar + tint
|
|
502
|
-
|
|
563
|
+
accented (brand left-bar + soft tint, the design-language left-edge accent)
|
|
564
|
+
so it reads as the active one - not dimmed; not selectable or deletable. */
|
|
503
565
|
.jp-ClaudeSessionsPanel-branchRow.jp-mod-current {
|
|
504
566
|
position: sticky;
|
|
505
567
|
top: 0;
|
|
506
568
|
z-index: 1;
|
|
507
569
|
cursor: default;
|
|
508
|
-
background: var(--
|
|
570
|
+
background: var(--ccs-surface-hover);
|
|
509
571
|
border-left: 3px solid var(--jp-brand-color1);
|
|
510
|
-
padding-left:
|
|
572
|
+
padding-left: 7px;
|
|
511
573
|
}
|
|
512
574
|
|
|
513
575
|
.jp-ClaudeSessionsPanel-branchRow.jp-mod-current:hover {
|
|
514
|
-
background: var(--
|
|
576
|
+
background: var(--ccs-surface-hover);
|
|
515
577
|
}
|
|
516
578
|
|
|
517
579
|
/* The current row's select cell is an empty alignment spacer - no pointer. */
|
|
@@ -520,10 +582,11 @@
|
|
|
520
582
|
cursor: default;
|
|
521
583
|
}
|
|
522
584
|
|
|
585
|
+
/* Plain, understated "current" marker - deliberately not a loud chip. */
|
|
523
586
|
.jp-ClaudeSessionsPanel-branchCurrentBadge {
|
|
524
587
|
flex: none;
|
|
525
588
|
white-space: nowrap;
|
|
526
|
-
color: var(--
|
|
589
|
+
color: var(--ccs-text-subtle);
|
|
527
590
|
font-size: var(--jp-ui-font-size0);
|
|
528
591
|
}
|
|
529
592
|
|
|
@@ -531,9 +594,9 @@
|
|
|
531
594
|
display: flex;
|
|
532
595
|
align-items: center;
|
|
533
596
|
gap: 8px;
|
|
534
|
-
padding: 0
|
|
597
|
+
padding: 0 2px;
|
|
535
598
|
cursor: pointer;
|
|
536
|
-
color: var(--
|
|
599
|
+
color: var(--ccs-text-subtle);
|
|
537
600
|
font-size: var(--jp-ui-font-size0);
|
|
538
601
|
user-select: none;
|
|
539
602
|
}
|
|
@@ -541,23 +604,26 @@
|
|
|
541
604
|
.jp-ClaudeSessionsPanel-branchSelectAll input[type='checkbox'] {
|
|
542
605
|
margin: 0;
|
|
543
606
|
cursor: pointer;
|
|
607
|
+
accent-color: var(--jp-brand-color1);
|
|
544
608
|
}
|
|
545
609
|
|
|
546
610
|
.jp-ClaudeSessionsPanel-branchFooter {
|
|
547
611
|
display: flex;
|
|
548
612
|
align-items: center;
|
|
549
613
|
justify-content: space-between;
|
|
614
|
+
min-height: 26px;
|
|
550
615
|
}
|
|
551
616
|
|
|
552
617
|
.jp-ClaudeSessionsPanel-branchSelCount {
|
|
553
|
-
color: var(--
|
|
618
|
+
color: var(--ccs-text-subtle);
|
|
554
619
|
font-size: var(--jp-ui-font-size0);
|
|
620
|
+
font-variant-numeric: tabular-nums;
|
|
555
621
|
}
|
|
556
622
|
|
|
557
623
|
/* The post-delete "N moved to trash" feedback reads at full strength - it is
|
|
558
624
|
the recoverability cue that stands in for a confirmation prompt. */
|
|
559
625
|
.jp-ClaudeSessionsPanel-branchSelCount.jp-mod-deleted {
|
|
560
|
-
color: var(--
|
|
626
|
+
color: var(--ccs-text);
|
|
561
627
|
}
|
|
562
628
|
|
|
563
629
|
/* While a delete is in flight the whole body is scrimmed so a mid-flight tick,
|
|
@@ -568,30 +634,38 @@
|
|
|
568
634
|
opacity: 0.6;
|
|
569
635
|
}
|
|
570
636
|
|
|
571
|
-
/* Destructive: deletes immediately (no confirmation)
|
|
572
|
-
|
|
637
|
+
/* Destructive: deletes immediately (no confirmation). Design-language
|
|
638
|
+
list-danger button - always an OUTLINE, never a filled primary: a dim,
|
|
639
|
+
inactive outline while nothing is selected, a lit error outline once a
|
|
640
|
+
selection arms it, and only a soft error tint on hover (6px radius). */
|
|
573
641
|
.jp-ClaudeSessionsPanel-branchDelete {
|
|
574
|
-
|
|
642
|
+
height: 26px;
|
|
643
|
+
padding: 0 12px;
|
|
575
644
|
border: 1px solid var(--jp-error-color1);
|
|
576
|
-
border-radius:
|
|
577
|
-
background:
|
|
645
|
+
border-radius: var(--ccs-radius);
|
|
646
|
+
background: transparent;
|
|
578
647
|
color: var(--jp-error-color1);
|
|
648
|
+
font-size: var(--jp-ui-font-size0);
|
|
649
|
+
font-weight: 500;
|
|
579
650
|
cursor: pointer;
|
|
580
651
|
transition:
|
|
581
652
|
background 120ms ease,
|
|
653
|
+
border-color 120ms ease,
|
|
582
654
|
color 120ms ease;
|
|
583
655
|
}
|
|
584
656
|
|
|
657
|
+
/* Disabled = inactive outline: theme border + muted text, plainly not primary
|
|
658
|
+
and not actionable, but still legible (no wash-out). */
|
|
585
659
|
.jp-ClaudeSessionsPanel-branchDelete:disabled {
|
|
586
|
-
opacity: 0.5;
|
|
587
660
|
cursor: default;
|
|
588
|
-
border-color: var(--
|
|
589
|
-
color: var(--
|
|
661
|
+
border-color: var(--ccs-border);
|
|
662
|
+
color: var(--ccs-text-muted);
|
|
590
663
|
}
|
|
591
664
|
|
|
665
|
+
/* Hover while armed stays an outline - a soft error tint, not a solid fill. */
|
|
592
666
|
.jp-ClaudeSessionsPanel-branchDelete:hover:not(:disabled) {
|
|
593
|
-
background: var(--
|
|
594
|
-
color: var(--jp-
|
|
667
|
+
background: var(--ccs-danger-soft);
|
|
668
|
+
color: var(--jp-error-color1);
|
|
595
669
|
}
|
|
596
670
|
|
|
597
671
|
/* Last-activity time on session rows - dim, fixed-width right-aligned
|