jupyterlab_claude_code_extension 1.2.5 → 1.2.9
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/README.md +15 -2
- package/lib/icons.d.ts +1 -0
- package/lib/icons.js +9 -0
- package/lib/types.d.ts +7 -0
- package/lib/widget.d.ts +24 -2
- package/lib/widget.js +307 -34
- package/package.json +1 -1
- package/src/__tests__/jupyterlab_claude_code_extension.spec.ts +166 -5
- package/src/icons.ts +11 -0
- package/src/types.ts +9 -0
- package/src/widget.ts +345 -33
- package/style/base.css +127 -5
package/style/base.css
CHANGED
|
@@ -199,12 +199,37 @@
|
|
|
199
199
|
.jp-ClaudeSessionsPanel-dot {
|
|
200
200
|
background-color: var(--jp-success-color1);
|
|
201
201
|
box-shadow: 0 0 4px var(--jp-success-color1);
|
|
202
|
+
|
|
203
|
+
/* Softened a touch - full saturation reads too loud next to row text. */
|
|
204
|
+
opacity: 0.75;
|
|
202
205
|
}
|
|
203
206
|
|
|
204
207
|
.jp-ClaudeSessionsPanel-dotPlaceholder {
|
|
205
208
|
background-color: transparent;
|
|
206
209
|
}
|
|
207
210
|
|
|
211
|
+
/* Branch icon + conversation count, hugging the name text inside the
|
|
212
|
+
ellipsised name span (not flexed to the row edge). */
|
|
213
|
+
.jp-ClaudeSessionsPanel-branchBadge {
|
|
214
|
+
display: inline-flex;
|
|
215
|
+
align-items: center;
|
|
216
|
+
gap: 2px;
|
|
217
|
+
margin-left: 6px;
|
|
218
|
+
color: var(--jp-ui-font-color2);
|
|
219
|
+
font-size: var(--jp-ui-font-size0);
|
|
220
|
+
vertical-align: middle;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
.jp-ClaudeSessionsPanel-branchBadgeIcon {
|
|
224
|
+
display: inline-flex;
|
|
225
|
+
align-items: center;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
.jp-ClaudeSessionsPanel-branchBadgeIcon svg {
|
|
229
|
+
width: 12px;
|
|
230
|
+
height: 12px;
|
|
231
|
+
}
|
|
232
|
+
|
|
208
233
|
.jp-ClaudeSessionsPanel-favStar {
|
|
209
234
|
flex: 0 0 auto;
|
|
210
235
|
display: inline-flex;
|
|
@@ -313,7 +338,18 @@
|
|
|
313
338
|
.jp-ClaudeSessionsPanel-branchSearch {
|
|
314
339
|
width: 100%;
|
|
315
340
|
box-sizing: border-box;
|
|
316
|
-
padding:
|
|
341
|
+
padding: 2px 6px;
|
|
342
|
+
background: var(--jp-input-background, var(--jp-layout-color1));
|
|
343
|
+
color: var(--jp-ui-font-color1);
|
|
344
|
+
border: 1px solid var(--jp-border-color2);
|
|
345
|
+
border-radius: 2px;
|
|
346
|
+
font-family: inherit;
|
|
347
|
+
font-size: var(--jp-ui-font-size1);
|
|
348
|
+
outline: none;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
.jp-ClaudeSessionsPanel-branchSearch:focus {
|
|
352
|
+
border-color: var(--jp-brand-color1);
|
|
317
353
|
}
|
|
318
354
|
|
|
319
355
|
.jp-ClaudeSessionsPanel-branchList {
|
|
@@ -325,10 +361,13 @@
|
|
|
325
361
|
display: flex;
|
|
326
362
|
align-items: center;
|
|
327
363
|
justify-content: space-between;
|
|
328
|
-
gap:
|
|
329
|
-
|
|
364
|
+
gap: 6px;
|
|
365
|
+
height: 24px;
|
|
366
|
+
line-height: 24px;
|
|
367
|
+
padding: 0 8px;
|
|
330
368
|
cursor: pointer;
|
|
331
369
|
border-radius: 2px;
|
|
370
|
+
font-size: var(--jp-ui-font-size1);
|
|
332
371
|
}
|
|
333
372
|
|
|
334
373
|
.jp-ClaudeSessionsPanel-branchRow:hover {
|
|
@@ -343,14 +382,97 @@
|
|
|
343
382
|
|
|
344
383
|
.jp-ClaudeSessionsPanel-branchTime {
|
|
345
384
|
flex: none;
|
|
385
|
+
width: 52px;
|
|
386
|
+
text-align: right;
|
|
346
387
|
color: var(--jp-ui-font-color2);
|
|
347
388
|
font-size: var(--jp-ui-font-size0);
|
|
348
389
|
}
|
|
349
390
|
|
|
350
|
-
|
|
391
|
+
.jp-ClaudeSessionsPanel-branchRow input[type='checkbox'] {
|
|
392
|
+
flex: none;
|
|
393
|
+
margin: 0;
|
|
394
|
+
cursor: pointer;
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
/* The current conversation leads the popup list - badged, untouchable. */
|
|
398
|
+
.jp-ClaudeSessionsPanel-branchRow.jp-mod-current {
|
|
399
|
+
cursor: default;
|
|
400
|
+
color: var(--jp-ui-font-color2);
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
.jp-ClaudeSessionsPanel-branchRow.jp-mod-current:hover {
|
|
404
|
+
background: transparent;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
.jp-ClaudeSessionsPanel-branchCurrentBadge {
|
|
408
|
+
flex: none;
|
|
409
|
+
padding: 0 6px;
|
|
410
|
+
border: 1px solid var(--jp-border-color2);
|
|
411
|
+
border-radius: 8px;
|
|
412
|
+
color: var(--jp-ui-font-color2);
|
|
413
|
+
font-size: var(--jp-ui-font-size0);
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
.jp-ClaudeSessionsPanel-branchSelectAll {
|
|
417
|
+
display: flex;
|
|
418
|
+
align-items: center;
|
|
419
|
+
gap: 8px;
|
|
420
|
+
padding: 0 6px;
|
|
421
|
+
cursor: pointer;
|
|
422
|
+
color: var(--jp-ui-font-color2);
|
|
423
|
+
font-size: var(--jp-ui-font-size0);
|
|
424
|
+
user-select: none;
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
.jp-ClaudeSessionsPanel-branchSelectAll input[type='checkbox'] {
|
|
428
|
+
margin: 0;
|
|
429
|
+
cursor: pointer;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
.jp-ClaudeSessionsPanel-branchFooter {
|
|
433
|
+
display: flex;
|
|
434
|
+
justify-content: flex-end;
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
.jp-ClaudeSessionsPanel-branchDelete {
|
|
438
|
+
padding: 2px 8px;
|
|
439
|
+
border: 1px solid var(--jp-border-color1);
|
|
440
|
+
border-radius: 2px;
|
|
441
|
+
background: var(--jp-layout-color1);
|
|
442
|
+
color: var(--jp-ui-font-color1);
|
|
443
|
+
cursor: pointer;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
.jp-ClaudeSessionsPanel-branchDelete:disabled {
|
|
447
|
+
opacity: 0.5;
|
|
448
|
+
cursor: default;
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
/* Armed state of the two-step delete - second click executes. */
|
|
452
|
+
.jp-ClaudeSessionsPanel-branchDelete.jp-mod-confirm {
|
|
453
|
+
border-color: var(--jp-error-color1);
|
|
454
|
+
color: var(--jp-error-color1);
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
/* Last-activity time on session rows - dim, fixed-width right-aligned
|
|
458
|
+
column so values line up across rows; the star column sits before it. */
|
|
351
459
|
.jp-ClaudeSessionsPanel-rowTime {
|
|
352
460
|
flex: 0 0 auto;
|
|
353
|
-
|
|
461
|
+
width: 52px;
|
|
462
|
+
text-align: right;
|
|
354
463
|
color: var(--jp-ui-font-color2);
|
|
355
464
|
font-size: var(--jp-ui-font-size0);
|
|
356
465
|
}
|
|
466
|
+
|
|
467
|
+
/* Age emphasis: a row active within the last minute reads bright, a row
|
|
468
|
+
idle for over a week dims; both decay/promote on the next refresh. The
|
|
469
|
+
"now" time label shares the active colour - same <60s threshold. */
|
|
470
|
+
.jp-ClaudeSessionsPanel-row.jp-mod-recentlyActive .jp-ClaudeSessionsPanel-name,
|
|
471
|
+
.jp-ClaudeSessionsPanel-row.jp-mod-recentlyActive
|
|
472
|
+
.jp-ClaudeSessionsPanel-rowTime {
|
|
473
|
+
color: var(--jp-brand-color1);
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
.jp-ClaudeSessionsPanel-row.jp-mod-stale {
|
|
477
|
+
opacity: 0.65;
|
|
478
|
+
}
|