claude-code-kanban 4.29.0 → 4.31.0
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 +5 -4
- package/cli.js +406 -75
- package/install.js +9 -9
- package/lib/approvals.js +2 -2
- package/lib/contain.js +2 -2
- package/lib/dispatch-groups.js +28 -11
- package/lib/dispatch.js +1 -0
- package/lib/file-url.js +1 -1
- package/lib/inline-assets.js +2 -2
- package/lib/linked-docs.js +58 -0
- package/lib/net-guard.js +1 -1
- package/lib/open-editor.js +5 -3
- package/lib/parent-cache.js +58 -0
- package/lib/parsers.js +175 -168
- package/lib/plugin-status.js +38 -0
- package/lib/session-cache.js +34 -0
- package/lib/session-events.js +2 -1
- package/lib/task-counts.js +90 -0
- package/lib/terminal.js +9 -4
- package/package.json +2 -1
- package/plugin/plugins/claude-code-kanban/.claude-plugin/plugin.json +1 -1
- package/plugin/plugins/claude-code-kanban/scripts/postman.js +3 -0
- package/plugin/plugins/claude-code-kanban/skills/kanban/SKILL.md +16 -46
- package/public/app.js +817 -376
- package/public/index.html +51 -25
- package/public/link-url.js +15 -0
- package/public/project-match.js +27 -0
- package/public/style.css +385 -103
- package/public/sw.js +1 -1
- package/public/themes.css +49 -0
- package/server.js +185 -86
- package/skill-guides/dispatch.md +5 -4
package/public/style.css
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
--text-muted: #7d808a;
|
|
17
17
|
--accent: #e86f33;
|
|
18
18
|
--accent-text: #f0a070;
|
|
19
|
-
--accent-dim: rgba(232, 111, 51, 0.
|
|
19
|
+
--accent-dim: rgba(232, 111, 51, 0.25);
|
|
20
20
|
--accent-glow: rgba(232, 111, 51, 0.55);
|
|
21
21
|
--gold: #d9b667;
|
|
22
22
|
--success: #3ecf8e;
|
|
@@ -456,14 +456,14 @@ body::before {
|
|
|
456
456
|
gap: 8px;
|
|
457
457
|
padding: 14px 16px 10px 20px;
|
|
458
458
|
font-size: 11px;
|
|
459
|
-
font-weight: 500;
|
|
460
|
-
text-transform: uppercase;
|
|
461
|
-
letter-spacing: 0.12em;
|
|
462
459
|
color: var(--text-muted);
|
|
463
460
|
}
|
|
464
461
|
|
|
465
462
|
.section-header-label {
|
|
466
463
|
flex: 0 0 auto;
|
|
464
|
+
font-weight: 500;
|
|
465
|
+
text-transform: uppercase;
|
|
466
|
+
letter-spacing: 0.12em;
|
|
467
467
|
}
|
|
468
468
|
|
|
469
469
|
/* Non-default filters, spelled out in the header so folding them into the popover
|
|
@@ -475,9 +475,7 @@ body::before {
|
|
|
475
475
|
white-space: nowrap;
|
|
476
476
|
text-overflow: ellipsis;
|
|
477
477
|
font-size: 10px;
|
|
478
|
-
font-weight: 400;
|
|
479
478
|
letter-spacing: 0.02em;
|
|
480
|
-
text-transform: none;
|
|
481
479
|
color: var(--accent-text);
|
|
482
480
|
}
|
|
483
481
|
|
|
@@ -545,15 +543,6 @@ body::before {
|
|
|
545
543
|
display: block;
|
|
546
544
|
}
|
|
547
545
|
|
|
548
|
-
.filter-row {
|
|
549
|
-
display: flex;
|
|
550
|
-
gap: 5px;
|
|
551
|
-
}
|
|
552
|
-
|
|
553
|
-
.filter-row + .filter-row {
|
|
554
|
-
margin-top: 5px;
|
|
555
|
-
}
|
|
556
|
-
|
|
557
546
|
.filter-dropdown {
|
|
558
547
|
flex: 1;
|
|
559
548
|
appearance: none;
|
|
@@ -577,28 +566,182 @@ body::before {
|
|
|
577
566
|
border-color: var(--border);
|
|
578
567
|
}
|
|
579
568
|
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
color: var(--accent-text);
|
|
584
|
-
border-color: color-mix(in srgb, var(--accent) 40%, transparent);
|
|
569
|
+
.filter-dropdown option {
|
|
570
|
+
background: var(--bg-surface);
|
|
571
|
+
color: var(--text-primary);
|
|
585
572
|
}
|
|
586
573
|
|
|
587
|
-
.filter-dropdown
|
|
588
|
-
|
|
574
|
+
.filter-dropdown:focus,
|
|
575
|
+
.pf-field:focus-within {
|
|
576
|
+
outline: none;
|
|
577
|
+
border-color: var(--accent);
|
|
578
|
+
box-shadow: 0 0 0 2px var(--accent-dim);
|
|
589
579
|
}
|
|
590
580
|
|
|
591
|
-
.
|
|
592
|
-
|
|
581
|
+
/* The project box: path field with the 24h switch set into its right end. */
|
|
582
|
+
.pf-field {
|
|
583
|
+
display: flex;
|
|
584
|
+
align-items: center;
|
|
585
|
+
gap: 6px;
|
|
586
|
+
padding: 0 4px 0 9px;
|
|
587
|
+
background: var(--bg-deep);
|
|
588
|
+
border: 1px solid transparent;
|
|
589
|
+
border-radius: 6px;
|
|
590
|
+
}
|
|
591
|
+
|
|
592
|
+
.pf-icon {
|
|
593
|
+
flex: none;
|
|
594
|
+
width: 14px;
|
|
595
|
+
height: 14px;
|
|
596
|
+
color: var(--text-muted);
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
.pf-input {
|
|
600
|
+
flex: 1;
|
|
601
|
+
min-width: 0;
|
|
602
|
+
padding: 8px 0;
|
|
603
|
+
background: none;
|
|
604
|
+
border: none;
|
|
605
|
+
outline: none;
|
|
606
|
+
font-family: var(--mono);
|
|
607
|
+
font-size: 12px;
|
|
593
608
|
color: var(--text-primary);
|
|
594
609
|
}
|
|
595
610
|
|
|
596
|
-
.
|
|
611
|
+
.pf-input::placeholder {
|
|
612
|
+
color: var(--text-muted);
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
.pf-recent {
|
|
616
|
+
flex: none;
|
|
617
|
+
padding: 3px 7px;
|
|
618
|
+
background: none;
|
|
619
|
+
border: 1px solid var(--border);
|
|
620
|
+
border-radius: 4px;
|
|
621
|
+
font-family: var(--mono);
|
|
622
|
+
font-size: 10.5px;
|
|
623
|
+
color: var(--text-muted);
|
|
624
|
+
cursor: pointer;
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
.pf-recent:hover {
|
|
628
|
+
color: var(--text-secondary);
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
.pf-recent[aria-pressed='true'] {
|
|
632
|
+
background: var(--accent-dim);
|
|
633
|
+
border-color: transparent;
|
|
634
|
+
color: var(--accent-text);
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
.pf-recent:focus-visible,
|
|
638
|
+
.pf-seg button:focus-visible {
|
|
597
639
|
outline: none;
|
|
598
|
-
border-color: var(--accent);
|
|
599
640
|
box-shadow: 0 0 0 2px var(--accent-dim);
|
|
600
641
|
}
|
|
601
642
|
|
|
643
|
+
/* Name first, folder after it, age last. The folder clips from its left end, so the part
|
|
644
|
+
next to the name stays readable. */
|
|
645
|
+
.pf-list {
|
|
646
|
+
list-style: none;
|
|
647
|
+
margin: 4px 0 0;
|
|
648
|
+
padding: 0;
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
.pf-opt {
|
|
652
|
+
position: relative;
|
|
653
|
+
display: grid;
|
|
654
|
+
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
655
|
+
align-items: baseline;
|
|
656
|
+
gap: 8px;
|
|
657
|
+
padding: 5px 8px;
|
|
658
|
+
border-radius: 5px;
|
|
659
|
+
font-family: var(--mono);
|
|
660
|
+
cursor: pointer;
|
|
661
|
+
}
|
|
662
|
+
|
|
663
|
+
.pf-opt:hover,
|
|
664
|
+
.pf-opt.hl {
|
|
665
|
+
background: var(--bg-hover);
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
.pf-name {
|
|
669
|
+
font-size: 12px;
|
|
670
|
+
color: var(--text-primary);
|
|
671
|
+
white-space: nowrap;
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
.pf-dir,
|
|
675
|
+
.pf-age {
|
|
676
|
+
font-size: 10.5px;
|
|
677
|
+
color: var(--text-muted);
|
|
678
|
+
white-space: nowrap;
|
|
679
|
+
}
|
|
680
|
+
|
|
681
|
+
.pf-dir {
|
|
682
|
+
overflow: hidden;
|
|
683
|
+
text-overflow: ellipsis;
|
|
684
|
+
direction: rtl;
|
|
685
|
+
text-align: left;
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
.pf-opt mark {
|
|
689
|
+
background: none;
|
|
690
|
+
color: var(--accent-text);
|
|
691
|
+
text-decoration: underline;
|
|
692
|
+
text-decoration-thickness: 1px;
|
|
693
|
+
text-underline-offset: 3px;
|
|
694
|
+
}
|
|
695
|
+
|
|
696
|
+
.pf-opt[aria-selected='true']::before {
|
|
697
|
+
content: '';
|
|
698
|
+
position: absolute;
|
|
699
|
+
top: 5px;
|
|
700
|
+
bottom: 5px;
|
|
701
|
+
left: 0;
|
|
702
|
+
width: 2px;
|
|
703
|
+
background: var(--accent);
|
|
704
|
+
}
|
|
705
|
+
|
|
706
|
+
.pf-opt[aria-selected='true'] .pf-name {
|
|
707
|
+
color: var(--accent-text);
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
.pf-empty {
|
|
711
|
+
padding: 8px;
|
|
712
|
+
font-size: 11.5px;
|
|
713
|
+
color: var(--text-muted);
|
|
714
|
+
}
|
|
715
|
+
|
|
716
|
+
.pf-seg {
|
|
717
|
+
display: grid;
|
|
718
|
+
grid-template-columns: 1fr 1fr;
|
|
719
|
+
gap: 4px;
|
|
720
|
+
margin-top: 6px;
|
|
721
|
+
padding-top: 6px;
|
|
722
|
+
border-top: 1px solid var(--border);
|
|
723
|
+
}
|
|
724
|
+
|
|
725
|
+
.pf-seg button {
|
|
726
|
+
padding: 6px;
|
|
727
|
+
background: none;
|
|
728
|
+
border: none;
|
|
729
|
+
border-radius: 5px;
|
|
730
|
+
font-family: var(--mono);
|
|
731
|
+
font-size: 11.5px;
|
|
732
|
+
color: var(--text-muted);
|
|
733
|
+
cursor: pointer;
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
.pf-seg button:hover {
|
|
737
|
+
color: var(--text-secondary);
|
|
738
|
+
}
|
|
739
|
+
|
|
740
|
+
.pf-seg button[aria-checked='true'] {
|
|
741
|
+
background: var(--bg-deep);
|
|
742
|
+
color: var(--text-primary);
|
|
743
|
+
}
|
|
744
|
+
|
|
602
745
|
/* #endregion */
|
|
603
746
|
|
|
604
747
|
/* #region COLLAPSIBLE */
|
|
@@ -904,34 +1047,6 @@ body.booting .boot-splash {
|
|
|
904
1047
|
text-overflow: ellipsis;
|
|
905
1048
|
}
|
|
906
1049
|
|
|
907
|
-
/* inline-flex so only the text takes the click — a full-width row would swallow clicks
|
|
908
|
-
meant for the card itself */
|
|
909
|
-
.session-goal {
|
|
910
|
-
display: inline-flex;
|
|
911
|
-
align-items: baseline;
|
|
912
|
-
max-width: 100%;
|
|
913
|
-
font-size: 10px;
|
|
914
|
-
margin-top: var(--card-gap-tight);
|
|
915
|
-
white-space: nowrap;
|
|
916
|
-
overflow: hidden;
|
|
917
|
-
text-overflow: ellipsis;
|
|
918
|
-
cursor: pointer;
|
|
919
|
-
color: var(--warning);
|
|
920
|
-
}
|
|
921
|
-
.session-goal .session-goal-icon {
|
|
922
|
-
margin-right: 3px;
|
|
923
|
-
font-weight: 700;
|
|
924
|
-
flex-shrink: 0;
|
|
925
|
-
}
|
|
926
|
-
.session-goal .session-goal-text {
|
|
927
|
-
overflow: hidden;
|
|
928
|
-
text-overflow: ellipsis;
|
|
929
|
-
}
|
|
930
|
-
.session-goal:hover .session-goal-text {
|
|
931
|
-
text-decoration: underline;
|
|
932
|
-
text-underline-offset: 2px;
|
|
933
|
-
}
|
|
934
|
-
|
|
935
1050
|
.session-item.plan-reveal {
|
|
936
1051
|
outline: 1.5px solid var(--plan);
|
|
937
1052
|
background: var(--plan-dim);
|
|
@@ -1189,6 +1304,28 @@ body.booting .boot-splash {
|
|
|
1189
1304
|
color: var(--text-secondary);
|
|
1190
1305
|
}
|
|
1191
1306
|
|
|
1307
|
+
.sidebar-footer .footer-version {
|
|
1308
|
+
display: inline-flex;
|
|
1309
|
+
align-items: center;
|
|
1310
|
+
gap: 6px;
|
|
1311
|
+
}
|
|
1312
|
+
|
|
1313
|
+
.sidebar-footer .footer-plugin-warning {
|
|
1314
|
+
padding: 0;
|
|
1315
|
+
border: none;
|
|
1316
|
+
background: none;
|
|
1317
|
+
font: inherit;
|
|
1318
|
+
font-size: 11px;
|
|
1319
|
+
line-height: 1;
|
|
1320
|
+
color: var(--warning);
|
|
1321
|
+
cursor: pointer;
|
|
1322
|
+
}
|
|
1323
|
+
|
|
1324
|
+
.sidebar-footer .footer-plugin-warning:hover,
|
|
1325
|
+
.sidebar-footer .footer-plugin-warning:focus-visible {
|
|
1326
|
+
filter: brightness(1.2);
|
|
1327
|
+
}
|
|
1328
|
+
|
|
1192
1329
|
.sidebar.collapsed {
|
|
1193
1330
|
width: 48px;
|
|
1194
1331
|
}
|
|
@@ -1231,14 +1368,140 @@ body.booting .boot-splash {
|
|
|
1231
1368
|
color: var(--text-muted);
|
|
1232
1369
|
}
|
|
1233
1370
|
|
|
1234
|
-
.
|
|
1235
|
-
|
|
1236
|
-
|
|
1371
|
+
.idle-board {
|
|
1372
|
+
position: relative;
|
|
1373
|
+
overflow: hidden;
|
|
1374
|
+
isolation: isolate;
|
|
1375
|
+
}
|
|
1376
|
+
|
|
1377
|
+
.idle-ghost {
|
|
1378
|
+
position: absolute;
|
|
1379
|
+
inset: 0;
|
|
1380
|
+
z-index: -1;
|
|
1381
|
+
display: grid;
|
|
1382
|
+
grid-template-columns: repeat(3, 1fr);
|
|
1383
|
+
gap: 20px;
|
|
1384
|
+
padding: 28px;
|
|
1385
|
+
opacity: 0.55;
|
|
1386
|
+
mask-image: radial-gradient(ellipse 70% 65% at 50% 50%, transparent 25%, #000 75%);
|
|
1387
|
+
}
|
|
1388
|
+
|
|
1389
|
+
.idle-ghost > div {
|
|
1390
|
+
display: flex;
|
|
1391
|
+
flex-direction: column;
|
|
1392
|
+
gap: 10px;
|
|
1393
|
+
padding: 44px 12px 12px;
|
|
1394
|
+
border: 1px dashed var(--border);
|
|
1395
|
+
border-radius: 12px;
|
|
1396
|
+
}
|
|
1397
|
+
|
|
1398
|
+
.idle-ghost span {
|
|
1399
|
+
height: 64px;
|
|
1400
|
+
border: 1px solid var(--border);
|
|
1401
|
+
border-radius: 9px;
|
|
1402
|
+
background: var(--bg-surface);
|
|
1403
|
+
}
|
|
1404
|
+
|
|
1405
|
+
.idle-ghost span:nth-child(2n) {
|
|
1406
|
+
height: 92px;
|
|
1407
|
+
}
|
|
1408
|
+
|
|
1409
|
+
.idle-glow {
|
|
1410
|
+
position: absolute;
|
|
1411
|
+
inset: 0;
|
|
1412
|
+
z-index: -1;
|
|
1413
|
+
pointer-events: none;
|
|
1414
|
+
}
|
|
1415
|
+
|
|
1416
|
+
.idle-glow span {
|
|
1417
|
+
position: absolute;
|
|
1418
|
+
width: 460px;
|
|
1419
|
+
height: 460px;
|
|
1420
|
+
border-radius: 50%;
|
|
1421
|
+
background: radial-gradient(circle, var(--accent-dim), transparent 65%);
|
|
1422
|
+
animation: idle-drift 22s ease-in-out infinite alternate;
|
|
1423
|
+
}
|
|
1424
|
+
|
|
1425
|
+
.idle-glow span:first-child {
|
|
1426
|
+
top: 12%;
|
|
1427
|
+
left: 18%;
|
|
1428
|
+
}
|
|
1429
|
+
|
|
1430
|
+
.idle-glow span + span {
|
|
1431
|
+
right: 14%;
|
|
1432
|
+
bottom: 8%;
|
|
1433
|
+
width: 360px;
|
|
1434
|
+
height: 360px;
|
|
1435
|
+
animation-duration: 28s;
|
|
1436
|
+
animation-direction: alternate-reverse;
|
|
1437
|
+
}
|
|
1438
|
+
|
|
1439
|
+
@keyframes idle-drift {
|
|
1440
|
+
to {
|
|
1441
|
+
transform: translate(90px, 50px) scale(1.15);
|
|
1442
|
+
}
|
|
1443
|
+
}
|
|
1444
|
+
|
|
1445
|
+
.idle-content {
|
|
1446
|
+
display: flex;
|
|
1447
|
+
flex-direction: column;
|
|
1448
|
+
align-items: center;
|
|
1449
|
+
gap: 10px;
|
|
1450
|
+
}
|
|
1451
|
+
|
|
1452
|
+
.idle-clawd {
|
|
1453
|
+
position: relative;
|
|
1454
|
+
padding-bottom: 10px;
|
|
1455
|
+
margin-bottom: 6px;
|
|
1456
|
+
}
|
|
1457
|
+
|
|
1458
|
+
.idle-clawd .clawd {
|
|
1459
|
+
display: block;
|
|
1460
|
+
animation: idle-float 3.2s ease-in-out infinite;
|
|
1461
|
+
}
|
|
1462
|
+
|
|
1463
|
+
.idle-clawd::after {
|
|
1464
|
+
content: '';
|
|
1465
|
+
position: absolute;
|
|
1466
|
+
left: 50%;
|
|
1467
|
+
bottom: 0;
|
|
1468
|
+
width: 44px;
|
|
1469
|
+
height: 6px;
|
|
1470
|
+
margin-left: -22px;
|
|
1471
|
+
border-radius: 50%;
|
|
1472
|
+
background: var(--text-muted);
|
|
1473
|
+
opacity: 0.25;
|
|
1474
|
+
animation: idle-shadow 3.2s ease-in-out infinite;
|
|
1475
|
+
}
|
|
1476
|
+
|
|
1477
|
+
@keyframes idle-float {
|
|
1478
|
+
50% {
|
|
1479
|
+
transform: translateY(-6px);
|
|
1480
|
+
}
|
|
1481
|
+
}
|
|
1482
|
+
|
|
1483
|
+
@keyframes idle-shadow {
|
|
1484
|
+
50% {
|
|
1485
|
+
transform: scaleX(0.75);
|
|
1486
|
+
opacity: 0.15;
|
|
1487
|
+
}
|
|
1488
|
+
}
|
|
1489
|
+
|
|
1490
|
+
.idle-title {
|
|
1491
|
+
font-size: 14px;
|
|
1492
|
+
color: var(--text-secondary);
|
|
1493
|
+
}
|
|
1494
|
+
|
|
1495
|
+
.idle-hint span {
|
|
1237
1496
|
opacity: 0.5;
|
|
1238
1497
|
}
|
|
1239
1498
|
|
|
1240
|
-
|
|
1241
|
-
|
|
1499
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1500
|
+
.idle-glow span,
|
|
1501
|
+
.idle-clawd .clawd,
|
|
1502
|
+
.idle-clawd::after {
|
|
1503
|
+
animation: none;
|
|
1504
|
+
}
|
|
1242
1505
|
}
|
|
1243
1506
|
|
|
1244
1507
|
/* #endregion */
|
|
@@ -1681,12 +1944,6 @@ body.booting .boot-splash {
|
|
|
1681
1944
|
color: var(--text-tertiary);
|
|
1682
1945
|
}
|
|
1683
1946
|
|
|
1684
|
-
.task-session {
|
|
1685
|
-
font-size: 12px;
|
|
1686
|
-
color: var(--accent);
|
|
1687
|
-
margin-top: 4px;
|
|
1688
|
-
}
|
|
1689
|
-
|
|
1690
1947
|
.task-active {
|
|
1691
1948
|
display: flex;
|
|
1692
1949
|
align-items: center;
|
|
@@ -2613,35 +2870,6 @@ body.booting .boot-splash {
|
|
|
2613
2870
|
border-top: 1px solid var(--border);
|
|
2614
2871
|
}
|
|
2615
2872
|
|
|
2616
|
-
.info-goal-card {
|
|
2617
|
-
margin: 12px 0;
|
|
2618
|
-
padding: 10px 14px;
|
|
2619
|
-
background: var(--bg-elevated);
|
|
2620
|
-
border: 1px solid var(--border);
|
|
2621
|
-
border-radius: 8px;
|
|
2622
|
-
}
|
|
2623
|
-
.info-goal-head {
|
|
2624
|
-
display: flex;
|
|
2625
|
-
align-items: center;
|
|
2626
|
-
gap: 6px;
|
|
2627
|
-
font-size: 11px;
|
|
2628
|
-
font-weight: 600;
|
|
2629
|
-
text-transform: uppercase;
|
|
2630
|
-
letter-spacing: 0.5px;
|
|
2631
|
-
color: var(--text-muted);
|
|
2632
|
-
}
|
|
2633
|
-
.info-goal-icon {
|
|
2634
|
-
color: var(--warning);
|
|
2635
|
-
}
|
|
2636
|
-
.info-goal-text {
|
|
2637
|
-
margin-top: 6px;
|
|
2638
|
-
font-size: 13px;
|
|
2639
|
-
line-height: 1.45;
|
|
2640
|
-
color: var(--text-primary);
|
|
2641
|
-
white-space: pre-wrap;
|
|
2642
|
-
word-break: break-word;
|
|
2643
|
-
}
|
|
2644
|
-
|
|
2645
2873
|
.info-grid {
|
|
2646
2874
|
display: grid;
|
|
2647
2875
|
grid-template-columns: auto 1fr auto;
|
|
@@ -3002,6 +3230,16 @@ body.booting .boot-splash {
|
|
|
3002
3230
|
.message-panel.msg-expanded-wide {
|
|
3003
3231
|
width: 60vw;
|
|
3004
3232
|
}
|
|
3233
|
+
.message-panel.full-width {
|
|
3234
|
+
left: var(--sidebar-edge, 0);
|
|
3235
|
+
width: auto;
|
|
3236
|
+
}
|
|
3237
|
+
.message-panel.full-width .panel-resize-handle {
|
|
3238
|
+
display: none;
|
|
3239
|
+
}
|
|
3240
|
+
#message-panel-full-btn.active {
|
|
3241
|
+
color: var(--accent);
|
|
3242
|
+
}
|
|
3005
3243
|
.message-panel-header {
|
|
3006
3244
|
padding: 16px 20px;
|
|
3007
3245
|
display: flex;
|
|
@@ -3421,6 +3659,28 @@ body.booting .boot-splash {
|
|
|
3421
3659
|
opacity: 1;
|
|
3422
3660
|
transform: translateY(0);
|
|
3423
3661
|
}
|
|
3662
|
+
.toast.has-action.visible {
|
|
3663
|
+
pointer-events: auto;
|
|
3664
|
+
display: flex;
|
|
3665
|
+
align-items: center;
|
|
3666
|
+
gap: 10px;
|
|
3667
|
+
max-width: min(480px, calc(100vw - 32px));
|
|
3668
|
+
overflow-wrap: anywhere;
|
|
3669
|
+
}
|
|
3670
|
+
.toast-action {
|
|
3671
|
+
flex-shrink: 0;
|
|
3672
|
+
font: inherit;
|
|
3673
|
+
font-weight: 600;
|
|
3674
|
+
color: var(--accent-text);
|
|
3675
|
+
background: transparent;
|
|
3676
|
+
border: 1px solid var(--accent);
|
|
3677
|
+
border-radius: 4px;
|
|
3678
|
+
padding: 2px 10px;
|
|
3679
|
+
cursor: pointer;
|
|
3680
|
+
}
|
|
3681
|
+
.toast-action:hover {
|
|
3682
|
+
background: var(--accent-dim);
|
|
3683
|
+
}
|
|
3424
3684
|
.toast.toast-success {
|
|
3425
3685
|
border-color: var(--success);
|
|
3426
3686
|
color: var(--success);
|
|
@@ -4499,6 +4759,21 @@ body.booting .boot-splash {
|
|
|
4499
4759
|
text-decoration-style: dashed;
|
|
4500
4760
|
}
|
|
4501
4761
|
|
|
4762
|
+
.linked-doc-item.is-url .linked-doc-link {
|
|
4763
|
+
flex-shrink: 1;
|
|
4764
|
+
min-width: 0;
|
|
4765
|
+
overflow: hidden;
|
|
4766
|
+
text-overflow: ellipsis;
|
|
4767
|
+
white-space: nowrap;
|
|
4768
|
+
}
|
|
4769
|
+
|
|
4770
|
+
.linked-doc-external {
|
|
4771
|
+
flex-shrink: 0;
|
|
4772
|
+
color: var(--text-muted);
|
|
4773
|
+
font-size: 10px;
|
|
4774
|
+
margin-left: -4px;
|
|
4775
|
+
}
|
|
4776
|
+
|
|
4502
4777
|
/* A section of the session panel: linked documents, artifacts. */
|
|
4503
4778
|
.panel-section {
|
|
4504
4779
|
margin-bottom: 16px;
|
|
@@ -4879,11 +5154,11 @@ body.light {
|
|
|
4879
5154
|
--session-active-bg: var(--bg-elevated);
|
|
4880
5155
|
--border: #cfcbc4;
|
|
4881
5156
|
--text-primary: #0a0a0a;
|
|
4882
|
-
--text-secondary: #
|
|
4883
|
-
--text-tertiary: #
|
|
4884
|
-
--text-muted: #
|
|
5157
|
+
--text-secondary: #2c2c2c;
|
|
5158
|
+
--text-tertiary: #565656;
|
|
5159
|
+
--text-muted: #767676;
|
|
4885
5160
|
--accent-text: #a0501c;
|
|
4886
|
-
--accent-dim: rgba(
|
|
5161
|
+
--accent-dim: rgba(184, 90, 32, 0.18);
|
|
4887
5162
|
--accent-glow: rgba(232, 111, 51, 0.5);
|
|
4888
5163
|
--gold: #a8842f;
|
|
4889
5164
|
--success: #1a8a5a;
|
|
@@ -5749,6 +6024,10 @@ select.form-input option:checked {
|
|
|
5749
6024
|
color: var(--text-primary);
|
|
5750
6025
|
}
|
|
5751
6026
|
|
|
6027
|
+
.sp-row:not(.outside) + .sp-row.outside {
|
|
6028
|
+
margin-top: 8px;
|
|
6029
|
+
}
|
|
6030
|
+
|
|
5752
6031
|
.sp-row.current .sp-name {
|
|
5753
6032
|
color: var(--accent-text);
|
|
5754
6033
|
}
|
|
@@ -6467,10 +6746,11 @@ select.form-input option:checked {
|
|
|
6467
6746
|
--session-active-bg: var(--bg-elevated);
|
|
6468
6747
|
--border: #cfcbc4;
|
|
6469
6748
|
--text-primary: #0a0a0a;
|
|
6470
|
-
--text-secondary: #
|
|
6471
|
-
--text-tertiary: #
|
|
6472
|
-
--text-muted: #
|
|
6473
|
-
--accent-
|
|
6749
|
+
--text-secondary: #2c2c2c;
|
|
6750
|
+
--text-tertiary: #565656;
|
|
6751
|
+
--text-muted: #767676;
|
|
6752
|
+
--accent-text: #a0501c;
|
|
6753
|
+
--accent-dim: rgba(184, 90, 32, 0.18);
|
|
6474
6754
|
--accent-glow: rgba(232, 111, 51, 0.5);
|
|
6475
6755
|
--gold: #a8842f;
|
|
6476
6756
|
--success: #1a8a5a;
|
|
@@ -7024,8 +7304,10 @@ pre.mermaid svg {
|
|
|
7024
7304
|
cursor: pointer;
|
|
7025
7305
|
}
|
|
7026
7306
|
|
|
7027
|
-
.sg-menu-item:hover
|
|
7307
|
+
.sg-menu-item:hover,
|
|
7308
|
+
.sg-menu-item:focus-visible {
|
|
7028
7309
|
background: var(--bg-hover);
|
|
7310
|
+
outline: none;
|
|
7029
7311
|
}
|
|
7030
7312
|
|
|
7031
7313
|
.sg-menu-remove {
|
package/public/sw.js
CHANGED
package/public/themes.css
CHANGED
|
@@ -38,6 +38,55 @@ body.light .theme-swatch-vitesse { --sw-bg: #f7f7f7; --sw-accent: #1c6b48; --sw-
|
|
|
38
38
|
.theme-swatch-synthwave { --sw-bg: #262335; --sw-accent: #ff7edb; --sw-ink: #ffffff; --sw-border: #495495; }
|
|
39
39
|
body.light .theme-swatch-synthwave { --sw-bg: #efecf6; --sw-accent: #c936a6; --sw-ink: #241b2f; --sw-border: #c5bcdd; }
|
|
40
40
|
|
|
41
|
+
/* Ember */
|
|
42
|
+
body:not([data-color-theme]):not(.light) {
|
|
43
|
+
--accent: #e86f33;
|
|
44
|
+
--accent-text: #f0a070;
|
|
45
|
+
--accent-dim: rgba(232,111,51,0.25);
|
|
46
|
+
--accent-glow: rgba(232, 111, 51, 0.55);
|
|
47
|
+
--bg-deep: #101114;
|
|
48
|
+
--bg-surface: #16181c;
|
|
49
|
+
--bg-elevated: #1e2025;
|
|
50
|
+
--bg-hover: #282a30;
|
|
51
|
+
--border: #363840;
|
|
52
|
+
--text-primary: #f0f1f3;
|
|
53
|
+
--text-secondary: #c2c4c9;
|
|
54
|
+
--text-tertiary: #9a9da5;
|
|
55
|
+
--text-muted: #7d808a;
|
|
56
|
+
}
|
|
57
|
+
body.light:not([data-color-theme]) {
|
|
58
|
+
--accent: #e86f33;
|
|
59
|
+
--accent-text: #a0501c;
|
|
60
|
+
--accent-dim: rgba(184,90,32,0.18);
|
|
61
|
+
--accent-glow: rgba(232, 111, 51, 0.5);
|
|
62
|
+
--bg-deep: #e8e6e3;
|
|
63
|
+
--bg-surface: #efede9;
|
|
64
|
+
--bg-elevated: #fbfaf9;
|
|
65
|
+
--bg-hover: #d2d0cc;
|
|
66
|
+
--border: #cfcbc4;
|
|
67
|
+
--text-primary: #0a0a0a;
|
|
68
|
+
--text-secondary: #2c2c2c;
|
|
69
|
+
--text-tertiary: #565656;
|
|
70
|
+
--text-muted: #767676;
|
|
71
|
+
}
|
|
72
|
+
@media (prefers-color-scheme: light) {
|
|
73
|
+
body:not(.dark-forced):not([data-color-theme]) {
|
|
74
|
+
--accent: #e86f33;
|
|
75
|
+
--accent-text: #a0501c;
|
|
76
|
+
--accent-dim: rgba(184,90,32,0.18);
|
|
77
|
+
--accent-glow: rgba(232, 111, 51, 0.5);
|
|
78
|
+
--bg-deep: #e8e6e3;
|
|
79
|
+
--bg-surface: #efede9;
|
|
80
|
+
--bg-elevated: #fbfaf9;
|
|
81
|
+
--bg-hover: #d2d0cc;
|
|
82
|
+
--border: #cfcbc4;
|
|
83
|
+
--text-primary: #0a0a0a;
|
|
84
|
+
--text-secondary: #2c2c2c;
|
|
85
|
+
--text-tertiary: #565656;
|
|
86
|
+
--text-muted: #767676;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
41
90
|
/* Gruvbox */
|
|
42
91
|
body[data-color-theme="gruvbox"]:not(.light) {
|
|
43
92
|
--accent: #fe8019;
|