claude-code-kanban 7.6.1 → 7.8.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 +2 -1
- package/cli.js +391 -70
- package/hub-app.json +3 -3
- package/install.js +11 -9
- package/kanbot/.claude-plugin/plugin.json +5 -0
- package/kanbot/agents/kanbot.md +34 -0
- package/lib/http-error.js +2 -1
- package/lib/kanbot.js +86 -0
- package/lib/live-sessions.js +1 -1
- package/lib/owner-routing.js +53 -0
- package/lib/preview-action.js +55 -0
- package/lib/session-events.js +5 -0
- package/lib/session-pins.js +99 -0
- package/lib/stamped-json-file.js +49 -0
- package/lib/terminal-client.js +4 -0
- package/lib/terminal-host.js +7 -1
- package/lib/terminal.js +86 -20
- package/lib/user-groups.js +384 -0
- package/package.json +3 -1
- package/plugin/plugins/claude-code-kanban/.claude-plugin/plugin.json +1 -1
- package/plugin/plugins/claude-code-kanban/skills/kanban/SKILL.md +4 -2
- package/plugin/plugins/claude-code-kanban/skills/show/SKILL.md +5 -1
- package/public/app.js +1647 -464
- package/public/group-tree.js +21 -0
- package/public/index.html +53 -28
- package/public/style.css +820 -106
- package/public/sw.js +1 -1
- package/public/terminal-frame.js +12 -0
- package/public/vendor/claude-hub-sdk.js +1 -1
- package/server.js +333 -148
- package/skill-guides/dispatch.md +1 -1
- package/lib/dispatch-groups.js +0 -88
package/public/style.css
CHANGED
|
@@ -1427,6 +1427,135 @@ body.booting .boot-splash {
|
|
|
1427
1427
|
gap: 6px;
|
|
1428
1428
|
}
|
|
1429
1429
|
|
|
1430
|
+
/* #region KANBOT */
|
|
1431
|
+
.sidebar-footer .footer-kanbot {
|
|
1432
|
+
display: inline-flex;
|
|
1433
|
+
padding: 2px;
|
|
1434
|
+
border: none;
|
|
1435
|
+
border-radius: 4px;
|
|
1436
|
+
background: none;
|
|
1437
|
+
cursor: pointer;
|
|
1438
|
+
opacity: 0.85;
|
|
1439
|
+
}
|
|
1440
|
+
|
|
1441
|
+
.sidebar-footer .footer-kanbot:hover {
|
|
1442
|
+
background: var(--bg-hover);
|
|
1443
|
+
opacity: 1;
|
|
1444
|
+
}
|
|
1445
|
+
|
|
1446
|
+
.kanbot-popover {
|
|
1447
|
+
display: none;
|
|
1448
|
+
position: fixed;
|
|
1449
|
+
left: 12px;
|
|
1450
|
+
bottom: 40px;
|
|
1451
|
+
z-index: 900;
|
|
1452
|
+
flex-direction: column;
|
|
1453
|
+
width: min(460px, calc(100vw - 24px));
|
|
1454
|
+
height: min(560px, calc(100vh - 60px));
|
|
1455
|
+
border: 1px solid var(--border);
|
|
1456
|
+
border-radius: 10px;
|
|
1457
|
+
background: var(--bg-deep);
|
|
1458
|
+
box-shadow: 0 12px 40px rgb(0 0 0 / 35%);
|
|
1459
|
+
overflow: hidden;
|
|
1460
|
+
}
|
|
1461
|
+
|
|
1462
|
+
.kanbot-popover.visible {
|
|
1463
|
+
display: flex;
|
|
1464
|
+
}
|
|
1465
|
+
|
|
1466
|
+
.kanbot-popover.expanded {
|
|
1467
|
+
left: 50%;
|
|
1468
|
+
top: 50%;
|
|
1469
|
+
bottom: auto;
|
|
1470
|
+
width: min(1200px, calc(100vw - 48px));
|
|
1471
|
+
height: calc(100vh - 96px);
|
|
1472
|
+
transform: translate(-50%, -50%);
|
|
1473
|
+
}
|
|
1474
|
+
|
|
1475
|
+
.kanbot-popover.docked {
|
|
1476
|
+
left: auto;
|
|
1477
|
+
right: 0;
|
|
1478
|
+
top: 0;
|
|
1479
|
+
bottom: 0;
|
|
1480
|
+
width: min(var(--kanbot-width, 540px), 100vw);
|
|
1481
|
+
height: auto;
|
|
1482
|
+
border-width: 0 0 0 1px;
|
|
1483
|
+
border-radius: 0;
|
|
1484
|
+
}
|
|
1485
|
+
|
|
1486
|
+
.kanbot-resize {
|
|
1487
|
+
display: none;
|
|
1488
|
+
}
|
|
1489
|
+
|
|
1490
|
+
.kanbot-popover.docked .kanbot-resize {
|
|
1491
|
+
display: block;
|
|
1492
|
+
}
|
|
1493
|
+
|
|
1494
|
+
.kanbot-popover.resizing .kanbot-frame {
|
|
1495
|
+
pointer-events: none;
|
|
1496
|
+
}
|
|
1497
|
+
|
|
1498
|
+
.kanbot-head {
|
|
1499
|
+
display: flex;
|
|
1500
|
+
align-items: center;
|
|
1501
|
+
gap: 8px;
|
|
1502
|
+
padding: 6px 8px 6px 12px;
|
|
1503
|
+
border-bottom: 1px solid var(--border);
|
|
1504
|
+
background: var(--bg-elevated);
|
|
1505
|
+
font-size: 12px;
|
|
1506
|
+
}
|
|
1507
|
+
|
|
1508
|
+
.kanbot-status {
|
|
1509
|
+
flex: 1;
|
|
1510
|
+
color: var(--text-tertiary);
|
|
1511
|
+
font-family: var(--font-mono);
|
|
1512
|
+
font-size: 11px;
|
|
1513
|
+
}
|
|
1514
|
+
|
|
1515
|
+
.kanbot-dock,
|
|
1516
|
+
.kanbot-expand,
|
|
1517
|
+
.kanbot-collapse,
|
|
1518
|
+
.kanbot-close {
|
|
1519
|
+
padding: 0 6px;
|
|
1520
|
+
border: none;
|
|
1521
|
+
background: none;
|
|
1522
|
+
color: var(--text-secondary);
|
|
1523
|
+
font-size: 16px;
|
|
1524
|
+
line-height: 1;
|
|
1525
|
+
cursor: pointer;
|
|
1526
|
+
}
|
|
1527
|
+
|
|
1528
|
+
.kanbot-dock,
|
|
1529
|
+
.kanbot-expand {
|
|
1530
|
+
display: inline-flex;
|
|
1531
|
+
align-items: center;
|
|
1532
|
+
align-self: stretch;
|
|
1533
|
+
}
|
|
1534
|
+
|
|
1535
|
+
.kanbot-dock svg,
|
|
1536
|
+
.kanbot-expand svg {
|
|
1537
|
+
width: 13px;
|
|
1538
|
+
height: 13px;
|
|
1539
|
+
}
|
|
1540
|
+
|
|
1541
|
+
.kanbot-dock.active {
|
|
1542
|
+
color: var(--accent);
|
|
1543
|
+
}
|
|
1544
|
+
|
|
1545
|
+
.kanbot-body {
|
|
1546
|
+
flex: 1;
|
|
1547
|
+
min-height: 0;
|
|
1548
|
+
padding: 4px 0 0 6px;
|
|
1549
|
+
}
|
|
1550
|
+
|
|
1551
|
+
.kanbot-frame {
|
|
1552
|
+
display: block;
|
|
1553
|
+
width: 100%;
|
|
1554
|
+
height: 100%;
|
|
1555
|
+
border: 0;
|
|
1556
|
+
}
|
|
1557
|
+
/* #endregion */
|
|
1558
|
+
|
|
1430
1559
|
.sidebar-footer .footer-plugin-warning {
|
|
1431
1560
|
padding: 0;
|
|
1432
1561
|
border: none;
|
|
@@ -1727,9 +1856,9 @@ body.booting .boot-splash {
|
|
|
1727
1856
|
|
|
1728
1857
|
.icon-btn-danger:hover,
|
|
1729
1858
|
.icon-btn-danger:focus-visible {
|
|
1730
|
-
background:
|
|
1731
|
-
color:
|
|
1732
|
-
border-color: var(--
|
|
1859
|
+
background: var(--bg-elevated);
|
|
1860
|
+
color: var(--text-primary);
|
|
1861
|
+
border-color: var(--border);
|
|
1733
1862
|
}
|
|
1734
1863
|
|
|
1735
1864
|
/* theme picker: palette icon button + custom popover with per-theme swatches
|
|
@@ -2005,6 +2134,12 @@ body.booting .boot-splash {
|
|
|
2005
2134
|
border-left-color: var(--success);
|
|
2006
2135
|
}
|
|
2007
2136
|
|
|
2137
|
+
.task-card.dim,
|
|
2138
|
+
.task-card.dim:hover {
|
|
2139
|
+
opacity: 0.55;
|
|
2140
|
+
border-left-color: var(--border);
|
|
2141
|
+
}
|
|
2142
|
+
|
|
2008
2143
|
.task-card.blocked {
|
|
2009
2144
|
border-left-style: dashed;
|
|
2010
2145
|
}
|
|
@@ -2080,6 +2215,21 @@ body.booting .boot-splash {
|
|
|
2080
2215
|
white-space: nowrap;
|
|
2081
2216
|
}
|
|
2082
2217
|
|
|
2218
|
+
.task-chip {
|
|
2219
|
+
color: var(--text-muted);
|
|
2220
|
+
text-transform: uppercase;
|
|
2221
|
+
letter-spacing: 0.04em;
|
|
2222
|
+
white-space: nowrap;
|
|
2223
|
+
}
|
|
2224
|
+
|
|
2225
|
+
.task-chip-warn {
|
|
2226
|
+
color: var(--warning);
|
|
2227
|
+
}
|
|
2228
|
+
|
|
2229
|
+
.task-chip-accent {
|
|
2230
|
+
color: var(--accent);
|
|
2231
|
+
}
|
|
2232
|
+
|
|
2083
2233
|
.task-desc {
|
|
2084
2234
|
font-size: 11.5px;
|
|
2085
2235
|
font-weight: 400;
|
|
@@ -2113,6 +2263,29 @@ body.booting .boot-splash {
|
|
|
2113
2263
|
.detail-panel.visible {
|
|
2114
2264
|
display: flex;
|
|
2115
2265
|
}
|
|
2266
|
+
|
|
2267
|
+
.detail-panel.expanded {
|
|
2268
|
+
top: 50%;
|
|
2269
|
+
left: 50%;
|
|
2270
|
+
right: auto;
|
|
2271
|
+
width: min(1200px, calc(100vw - 48px));
|
|
2272
|
+
height: auto;
|
|
2273
|
+
max-height: calc(100vh - 96px);
|
|
2274
|
+
transform: translate(-50%, -50%);
|
|
2275
|
+
border: 1px solid var(--border);
|
|
2276
|
+
border-radius: 10px;
|
|
2277
|
+
box-shadow: 0 12px 40px rgb(0 0 0 / 35%);
|
|
2278
|
+
z-index: 900;
|
|
2279
|
+
}
|
|
2280
|
+
|
|
2281
|
+
.detail-panel.expanded .panel-resize-handle {
|
|
2282
|
+
display: none;
|
|
2283
|
+
}
|
|
2284
|
+
|
|
2285
|
+
.detail-expand svg {
|
|
2286
|
+
width: 15px;
|
|
2287
|
+
height: 15px;
|
|
2288
|
+
}
|
|
2116
2289
|
.detail-panel.resizing,
|
|
2117
2290
|
.message-panel.resizing {
|
|
2118
2291
|
transition: none;
|
|
@@ -3540,9 +3713,8 @@ code.ct .ct-has[aria-expanded='false'] .ct-name::after {
|
|
|
3540
3713
|
}
|
|
3541
3714
|
|
|
3542
3715
|
.terminal-manager-end.btn-secondary:hover {
|
|
3543
|
-
color: var(--
|
|
3544
|
-
|
|
3545
|
-
background: color-mix(in srgb, var(--danger) 8%, transparent);
|
|
3716
|
+
color: var(--text-primary);
|
|
3717
|
+
background: var(--bg-elevated);
|
|
3546
3718
|
}
|
|
3547
3719
|
|
|
3548
3720
|
.terminal-manager-footer {
|
|
@@ -3871,8 +4043,8 @@ body.light .show-card.focused {
|
|
|
3871
4043
|
}
|
|
3872
4044
|
|
|
3873
4045
|
.show-btn.remove:hover:not(:disabled) {
|
|
3874
|
-
color: var(--
|
|
3875
|
-
background: var(--
|
|
4046
|
+
color: var(--text-primary);
|
|
4047
|
+
background: var(--bg-elevated);
|
|
3876
4048
|
}
|
|
3877
4049
|
|
|
3878
4050
|
.show-ticks {
|
|
@@ -4086,19 +4258,6 @@ body.light .show-card.focused {
|
|
|
4086
4258
|
background: color-mix(in srgb, var(--danger) 10%, transparent);
|
|
4087
4259
|
}
|
|
4088
4260
|
|
|
4089
|
-
.show-md pre.mermaid {
|
|
4090
|
-
min-height: 40px;
|
|
4091
|
-
margin: 0.6em 0;
|
|
4092
|
-
overflow-x: auto;
|
|
4093
|
-
text-align: center;
|
|
4094
|
-
background: transparent;
|
|
4095
|
-
color: transparent;
|
|
4096
|
-
}
|
|
4097
|
-
|
|
4098
|
-
.show-md pre.mermaid[data-processed] {
|
|
4099
|
-
color: inherit;
|
|
4100
|
-
}
|
|
4101
|
-
|
|
4102
4261
|
.show-md pre.mermaid svg {
|
|
4103
4262
|
max-width: 100%;
|
|
4104
4263
|
height: auto;
|
|
@@ -4741,6 +4900,10 @@ body.show-resizing iframe {
|
|
|
4741
4900
|
word-break: break-word;
|
|
4742
4901
|
}
|
|
4743
4902
|
|
|
4903
|
+
.pane-doc-body:focus {
|
|
4904
|
+
outline: none;
|
|
4905
|
+
}
|
|
4906
|
+
|
|
4744
4907
|
.pane-msg-meta {
|
|
4745
4908
|
margin-bottom: 12px;
|
|
4746
4909
|
font-size: 11px;
|
|
@@ -5197,7 +5360,7 @@ body.show-resizing iframe {
|
|
|
5197
5360
|
}
|
|
5198
5361
|
.pinned-item-unpin:hover {
|
|
5199
5362
|
opacity: 1;
|
|
5200
|
-
color: var(--
|
|
5363
|
+
color: var(--text-primary);
|
|
5201
5364
|
}
|
|
5202
5365
|
.msg-pin-btn.pinned svg,
|
|
5203
5366
|
#msg-detail-pin-btn.active svg,
|
|
@@ -5403,6 +5566,9 @@ body.show-resizing iframe {
|
|
|
5403
5566
|
.rendered-md li {
|
|
5404
5567
|
margin: 0.2em 0;
|
|
5405
5568
|
}
|
|
5569
|
+
.rendered-md ul > li:has(> input[type='checkbox']) {
|
|
5570
|
+
list-style: none;
|
|
5571
|
+
}
|
|
5406
5572
|
.rendered-md a {
|
|
5407
5573
|
color: var(--accent);
|
|
5408
5574
|
}
|
|
@@ -5449,6 +5615,10 @@ body.show-resizing iframe {
|
|
|
5449
5615
|
margin: 0.8em 0;
|
|
5450
5616
|
border-color: var(--border);
|
|
5451
5617
|
}
|
|
5618
|
+
.rendered-md img {
|
|
5619
|
+
max-width: 100%;
|
|
5620
|
+
height: auto;
|
|
5621
|
+
}
|
|
5452
5622
|
.msg-detail-pre {
|
|
5453
5623
|
white-space: pre-wrap;
|
|
5454
5624
|
word-break: break-all;
|
|
@@ -5626,24 +5796,11 @@ body.show-resizing iframe {
|
|
|
5626
5796
|
.msg-waiting-discard:hover {
|
|
5627
5797
|
/* biome-ignore lint/complexity/noImportantStyles: override parent hover opacity */
|
|
5628
5798
|
opacity: 1 !important;
|
|
5629
|
-
color: var(--
|
|
5799
|
+
color: var(--text-primary);
|
|
5630
5800
|
}
|
|
5631
5801
|
.msg-waiting .msg-text {
|
|
5632
5802
|
font-weight: 500;
|
|
5633
5803
|
}
|
|
5634
|
-
.msg-waiting-pill {
|
|
5635
|
-
display: inline-block;
|
|
5636
|
-
padding: 1px 6px;
|
|
5637
|
-
margin-right: 6px;
|
|
5638
|
-
border-radius: 3px;
|
|
5639
|
-
background: color-mix(in srgb, var(--warning) 22%, transparent);
|
|
5640
|
-
color: var(--warning);
|
|
5641
|
-
font-size: 10px;
|
|
5642
|
-
font-weight: 600;
|
|
5643
|
-
text-transform: uppercase;
|
|
5644
|
-
letter-spacing: 0.3px;
|
|
5645
|
-
vertical-align: middle;
|
|
5646
|
-
}
|
|
5647
5804
|
.msg-waiting-body {
|
|
5648
5805
|
font-size: 12px;
|
|
5649
5806
|
margin-top: 4px;
|
|
@@ -5673,8 +5830,9 @@ body.show-resizing iframe {
|
|
|
5673
5830
|
margin-top: 0;
|
|
5674
5831
|
}
|
|
5675
5832
|
.msg-waiting-actions {
|
|
5676
|
-
flex
|
|
5833
|
+
flex: 1;
|
|
5677
5834
|
display: flex;
|
|
5835
|
+
justify-content: flex-end;
|
|
5678
5836
|
gap: 6px;
|
|
5679
5837
|
}
|
|
5680
5838
|
.msg-waiting-actions button {
|
|
@@ -5728,25 +5886,20 @@ body.show-resizing iframe {
|
|
|
5728
5886
|
cursor: pointer;
|
|
5729
5887
|
transition: all 0.15s ease;
|
|
5730
5888
|
}
|
|
5731
|
-
|
|
5732
|
-
|
|
5733
|
-
|
|
5734
|
-
.msg-waiting-actions .msg-waiting-allow {
|
|
5735
|
-
color: var(--success);
|
|
5736
|
-
border-color: color-mix(in srgb, var(--success) 35%, transparent);
|
|
5889
|
+
.waiting-btn-allow {
|
|
5890
|
+
color: var(--accent);
|
|
5891
|
+
border-color: color-mix(in srgb, var(--accent) 40%, transparent);
|
|
5737
5892
|
}
|
|
5738
|
-
.waiting-btn-allow:hover:not(:disabled)
|
|
5739
|
-
|
|
5740
|
-
background: color-mix(in srgb, var(--success) 10%, transparent);
|
|
5893
|
+
.waiting-btn-allow:hover:not(:disabled) {
|
|
5894
|
+
background: color-mix(in srgb, var(--accent) 12%, transparent);
|
|
5741
5895
|
}
|
|
5742
|
-
.waiting-btn-deny
|
|
5743
|
-
|
|
5744
|
-
color: var(--
|
|
5745
|
-
border-color: color-mix(in srgb, var(--danger) 35%, transparent);
|
|
5896
|
+
.waiting-btn-deny {
|
|
5897
|
+
color: var(--text-secondary);
|
|
5898
|
+
border-color: var(--border);
|
|
5746
5899
|
}
|
|
5747
|
-
.waiting-btn-deny:hover
|
|
5748
|
-
|
|
5749
|
-
|
|
5900
|
+
.waiting-btn-deny:hover {
|
|
5901
|
+
background: var(--bg-elevated);
|
|
5902
|
+
color: var(--text-primary);
|
|
5750
5903
|
}
|
|
5751
5904
|
.waiting-btn-allow:disabled {
|
|
5752
5905
|
opacity: 0.4;
|
|
@@ -5828,8 +5981,9 @@ body.show-resizing iframe {
|
|
|
5828
5981
|
}
|
|
5829
5982
|
.waiting-option {
|
|
5830
5983
|
display: flex;
|
|
5831
|
-
flex-direction:
|
|
5832
|
-
|
|
5984
|
+
flex-direction: row;
|
|
5985
|
+
align-items: flex-start;
|
|
5986
|
+
gap: 10px;
|
|
5833
5987
|
width: 100%;
|
|
5834
5988
|
text-align: left;
|
|
5835
5989
|
border: 1px solid var(--border);
|
|
@@ -5905,51 +6059,316 @@ body.show-resizing iframe {
|
|
|
5905
6059
|
.waiting-option-input::placeholder {
|
|
5906
6060
|
color: var(--text-secondary);
|
|
5907
6061
|
}
|
|
5908
|
-
|
|
5909
|
-
|
|
5910
|
-
|
|
5911
|
-
|
|
5912
|
-
|
|
5913
|
-
|
|
5914
|
-
|
|
6062
|
+
/* #region ASK_PROMPTS */
|
|
6063
|
+
.waiting-option-text {
|
|
6064
|
+
display: flex;
|
|
6065
|
+
flex-direction: column;
|
|
6066
|
+
gap: 2px;
|
|
6067
|
+
min-width: 0;
|
|
6068
|
+
flex: 1;
|
|
5915
6069
|
}
|
|
5916
|
-
.
|
|
5917
|
-
.
|
|
6070
|
+
.waiting-option-key,
|
|
6071
|
+
.waiting-qtabs-hint kbd,
|
|
6072
|
+
.waiting-footer-hint kbd {
|
|
6073
|
+
font-family: var(--mono);
|
|
5918
6074
|
font-size: 10px;
|
|
5919
|
-
|
|
5920
|
-
|
|
6075
|
+
line-height: 1;
|
|
6076
|
+
border: 1px solid var(--border);
|
|
6077
|
+
border-bottom-width: 2px;
|
|
6078
|
+
border-radius: 4px;
|
|
6079
|
+
padding: 2px 5px;
|
|
6080
|
+
background: var(--bg-elevated);
|
|
6081
|
+
color: var(--text-secondary);
|
|
5921
6082
|
}
|
|
5922
|
-
.
|
|
5923
|
-
|
|
5924
|
-
|
|
5925
|
-
color: var(--text-muted);
|
|
6083
|
+
.waiting-option-key {
|
|
6084
|
+
flex: none;
|
|
6085
|
+
margin-top: 1px;
|
|
5926
6086
|
}
|
|
5927
|
-
.
|
|
5928
|
-
|
|
5929
|
-
color: var(--
|
|
5930
|
-
margin-top: 4px;
|
|
6087
|
+
.waiting-option.selected .waiting-option-key {
|
|
6088
|
+
border-color: var(--accent);
|
|
6089
|
+
color: var(--accent);
|
|
5931
6090
|
}
|
|
5932
|
-
.
|
|
5933
|
-
|
|
5934
|
-
|
|
5935
|
-
|
|
5936
|
-
|
|
6091
|
+
.waiting-qtabs {
|
|
6092
|
+
display: flex;
|
|
6093
|
+
align-items: center;
|
|
6094
|
+
gap: 4px;
|
|
6095
|
+
border-bottom: 1px solid var(--border);
|
|
5937
6096
|
}
|
|
5938
|
-
|
|
5939
|
-
|
|
6097
|
+
.waiting-qtab {
|
|
6098
|
+
display: inline-flex;
|
|
6099
|
+
align-items: center;
|
|
6100
|
+
gap: 6px;
|
|
5940
6101
|
border: none;
|
|
6102
|
+
border-bottom: 2px solid transparent;
|
|
5941
6103
|
background: none;
|
|
5942
|
-
cursor: pointer;
|
|
5943
6104
|
color: var(--text-secondary);
|
|
5944
|
-
font-
|
|
5945
|
-
|
|
5946
|
-
|
|
6105
|
+
font-family: var(--mono);
|
|
6106
|
+
font-size: 12px;
|
|
6107
|
+
padding: 6px 10px;
|
|
6108
|
+
margin-bottom: -1px;
|
|
6109
|
+
cursor: pointer;
|
|
5947
6110
|
}
|
|
5948
|
-
.
|
|
6111
|
+
.waiting-qtab:hover {
|
|
5949
6112
|
color: var(--text-primary);
|
|
5950
6113
|
}
|
|
5951
|
-
.
|
|
5952
|
-
|
|
6114
|
+
.waiting-qtab.active {
|
|
6115
|
+
color: var(--text-primary);
|
|
6116
|
+
border-bottom-color: var(--accent);
|
|
6117
|
+
font-weight: 600;
|
|
6118
|
+
}
|
|
6119
|
+
.waiting-qtab-n {
|
|
6120
|
+
display: grid;
|
|
6121
|
+
place-items: center;
|
|
6122
|
+
width: 16px;
|
|
6123
|
+
height: 16px;
|
|
6124
|
+
border-radius: 50%;
|
|
6125
|
+
font-size: 10px;
|
|
6126
|
+
background: var(--bg-elevated);
|
|
6127
|
+
border: 1px solid var(--border);
|
|
6128
|
+
}
|
|
6129
|
+
.waiting-qtab.done .waiting-qtab-n {
|
|
6130
|
+
background: color-mix(in srgb, var(--success) 18%, transparent);
|
|
6131
|
+
border-color: color-mix(in srgb, var(--success) 45%, transparent);
|
|
6132
|
+
color: var(--success);
|
|
6133
|
+
}
|
|
6134
|
+
.waiting-qtab-check {
|
|
6135
|
+
color: var(--success);
|
|
6136
|
+
font-size: 11px;
|
|
6137
|
+
}
|
|
6138
|
+
.waiting-qtabs-hint,
|
|
6139
|
+
.waiting-footer-hint {
|
|
6140
|
+
margin-left: auto;
|
|
6141
|
+
font-size: 11px;
|
|
6142
|
+
color: var(--text-muted);
|
|
6143
|
+
display: inline-flex;
|
|
6144
|
+
gap: 4px;
|
|
6145
|
+
align-items: center;
|
|
6146
|
+
white-space: nowrap;
|
|
6147
|
+
}
|
|
6148
|
+
.waiting-review {
|
|
6149
|
+
border: 1px solid var(--border);
|
|
6150
|
+
border-radius: 6px;
|
|
6151
|
+
background: color-mix(in srgb, var(--bg-deep) 40%, transparent);
|
|
6152
|
+
}
|
|
6153
|
+
.waiting-review-row {
|
|
6154
|
+
display: flex;
|
|
6155
|
+
justify-content: space-between;
|
|
6156
|
+
gap: 16px;
|
|
6157
|
+
padding: 10px 14px;
|
|
6158
|
+
font-size: 12px;
|
|
6159
|
+
}
|
|
6160
|
+
.waiting-review-row + .waiting-review-row {
|
|
6161
|
+
border-top: 1px solid var(--border);
|
|
6162
|
+
}
|
|
6163
|
+
.waiting-review-q {
|
|
6164
|
+
color: var(--text-secondary);
|
|
6165
|
+
text-transform: uppercase;
|
|
6166
|
+
font-size: 10px;
|
|
6167
|
+
letter-spacing: 0.5px;
|
|
6168
|
+
padding-top: 2px;
|
|
6169
|
+
}
|
|
6170
|
+
.waiting-review-a {
|
|
6171
|
+
font-weight: 600;
|
|
6172
|
+
text-align: right;
|
|
6173
|
+
}
|
|
6174
|
+
.waiting-review-a.empty {
|
|
6175
|
+
font-weight: 400;
|
|
6176
|
+
color: var(--warning);
|
|
6177
|
+
}
|
|
6178
|
+
#msg-detail-waiting-footer .waiting-footer-hint {
|
|
6179
|
+
margin-right: auto;
|
|
6180
|
+
margin-left: 0;
|
|
6181
|
+
}
|
|
6182
|
+
.perm-card {
|
|
6183
|
+
display: grid;
|
|
6184
|
+
gap: 8px;
|
|
6185
|
+
margin-bottom: 12px;
|
|
6186
|
+
}
|
|
6187
|
+
.perm-head {
|
|
6188
|
+
display: flex;
|
|
6189
|
+
align-items: center;
|
|
6190
|
+
justify-content: space-between;
|
|
6191
|
+
}
|
|
6192
|
+
.perm-tool {
|
|
6193
|
+
font-family: var(--mono);
|
|
6194
|
+
font-size: 11px;
|
|
6195
|
+
font-weight: 600;
|
|
6196
|
+
padding: 2px 8px;
|
|
6197
|
+
border-radius: 10px;
|
|
6198
|
+
color: var(--warning);
|
|
6199
|
+
background: color-mix(in srgb, var(--warning) 16%, transparent);
|
|
6200
|
+
}
|
|
6201
|
+
.perm-wait {
|
|
6202
|
+
font-family: var(--mono);
|
|
6203
|
+
font-size: 11px;
|
|
6204
|
+
color: var(--text-muted);
|
|
6205
|
+
}
|
|
6206
|
+
.perm-label {
|
|
6207
|
+
font-size: 10px;
|
|
6208
|
+
letter-spacing: 0.3px;
|
|
6209
|
+
color: var(--text-muted);
|
|
6210
|
+
font-family: var(--mono);
|
|
6211
|
+
word-break: break-all;
|
|
6212
|
+
}
|
|
6213
|
+
.perm-code {
|
|
6214
|
+
margin: 0;
|
|
6215
|
+
padding: 10px 12px;
|
|
6216
|
+
border: 1px solid var(--border);
|
|
6217
|
+
border-radius: 6px;
|
|
6218
|
+
background: var(--bg-deep);
|
|
6219
|
+
font-family: var(--mono);
|
|
6220
|
+
font-size: 12.5px;
|
|
6221
|
+
white-space: pre-wrap;
|
|
6222
|
+
word-break: break-word;
|
|
6223
|
+
}
|
|
6224
|
+
.perm-note {
|
|
6225
|
+
font-size: 12px;
|
|
6226
|
+
color: var(--text-secondary);
|
|
6227
|
+
}
|
|
6228
|
+
.perm-cwd {
|
|
6229
|
+
font-family: var(--mono);
|
|
6230
|
+
font-size: 11px;
|
|
6231
|
+
color: var(--text-muted);
|
|
6232
|
+
}
|
|
6233
|
+
.perm-diff {
|
|
6234
|
+
border: 1px solid var(--border);
|
|
6235
|
+
border-radius: 6px;
|
|
6236
|
+
overflow: hidden;
|
|
6237
|
+
font-family: var(--mono);
|
|
6238
|
+
font-size: 12px;
|
|
6239
|
+
}
|
|
6240
|
+
.perm-diff-row {
|
|
6241
|
+
display: flex;
|
|
6242
|
+
gap: 8px;
|
|
6243
|
+
padding: 2px 10px;
|
|
6244
|
+
white-space: pre-wrap;
|
|
6245
|
+
word-break: break-word;
|
|
6246
|
+
}
|
|
6247
|
+
.perm-diff-row.del {
|
|
6248
|
+
background: color-mix(in srgb, var(--danger) 12%, transparent);
|
|
6249
|
+
}
|
|
6250
|
+
.perm-diff-row.add {
|
|
6251
|
+
background: color-mix(in srgb, var(--success) 13%, transparent);
|
|
6252
|
+
}
|
|
6253
|
+
.perm-diff-sign {
|
|
6254
|
+
flex: none;
|
|
6255
|
+
width: 10px;
|
|
6256
|
+
color: var(--text-muted);
|
|
6257
|
+
}
|
|
6258
|
+
.msg-waiting-feedback {
|
|
6259
|
+
min-width: 0;
|
|
6260
|
+
flex: 1;
|
|
6261
|
+
border: 1px dashed var(--border);
|
|
6262
|
+
border-radius: 4px;
|
|
6263
|
+
padding: 4px 8px;
|
|
6264
|
+
font-family: var(--mono);
|
|
6265
|
+
font-size: 11px;
|
|
6266
|
+
background: none;
|
|
6267
|
+
color: var(--text-primary);
|
|
6268
|
+
}
|
|
6269
|
+
.msg-waiting-feedback:focus {
|
|
6270
|
+
outline: none;
|
|
6271
|
+
border-color: var(--accent);
|
|
6272
|
+
}
|
|
6273
|
+
.msg-waiting-footer:has(.msg-waiting-feedback) {
|
|
6274
|
+
flex-wrap: wrap;
|
|
6275
|
+
}
|
|
6276
|
+
.msg-waiting-footer:has(.msg-waiting-feedback) .msg-waiting-actions {
|
|
6277
|
+
flex-basis: 100%;
|
|
6278
|
+
}
|
|
6279
|
+
.waiting-key-hint-line kbd {
|
|
6280
|
+
font-family: var(--mono);
|
|
6281
|
+
font-size: 9px;
|
|
6282
|
+
border: 1px solid var(--border);
|
|
6283
|
+
border-bottom-width: 2px;
|
|
6284
|
+
border-radius: 3px;
|
|
6285
|
+
padding: 0 4px;
|
|
6286
|
+
background: var(--bg-elevated);
|
|
6287
|
+
}
|
|
6288
|
+
/* Inline ask row: theme variables only, so every color theme reads the same way */
|
|
6289
|
+
.msg-waiting-actions .msg-waiting-allow {
|
|
6290
|
+
background: var(--accent);
|
|
6291
|
+
border-color: var(--accent);
|
|
6292
|
+
color: white;
|
|
6293
|
+
}
|
|
6294
|
+
.msg-waiting-actions .msg-waiting-allow:hover {
|
|
6295
|
+
background: color-mix(in srgb, var(--accent) 82%, black);
|
|
6296
|
+
}
|
|
6297
|
+
.msg-waiting-actions .msg-waiting-deny {
|
|
6298
|
+
background: none;
|
|
6299
|
+
border-color: var(--border);
|
|
6300
|
+
color: var(--text-secondary);
|
|
6301
|
+
}
|
|
6302
|
+
.msg-waiting-actions .msg-waiting-deny:hover {
|
|
6303
|
+
background: var(--bg-elevated);
|
|
6304
|
+
color: var(--text-primary);
|
|
6305
|
+
}
|
|
6306
|
+
.msg-item.msg-waiting.msg-waiting-plan {
|
|
6307
|
+
background: none;
|
|
6308
|
+
animation: none;
|
|
6309
|
+
}
|
|
6310
|
+
.msg-waiting-body h1,
|
|
6311
|
+
.msg-waiting-body h2,
|
|
6312
|
+
.msg-waiting-body h3,
|
|
6313
|
+
.msg-waiting-body h4,
|
|
6314
|
+
.waiting-plan h1,
|
|
6315
|
+
.waiting-plan h2,
|
|
6316
|
+
.waiting-plan h3,
|
|
6317
|
+
.waiting-plan h4 {
|
|
6318
|
+
font-size: 1em;
|
|
6319
|
+
font-weight: 600;
|
|
6320
|
+
line-height: 1.35;
|
|
6321
|
+
}
|
|
6322
|
+
.msg-waiting-body h1,
|
|
6323
|
+
.waiting-plan h1 {
|
|
6324
|
+
font-size: 1.15em;
|
|
6325
|
+
}
|
|
6326
|
+
/* #endregion */
|
|
6327
|
+
.msg-item.msg-idle .msg-icon {
|
|
6328
|
+
width: 12px;
|
|
6329
|
+
height: 12px;
|
|
6330
|
+
}
|
|
6331
|
+
.teammate-name {
|
|
6332
|
+
font-weight: 600;
|
|
6333
|
+
font-size: 11px;
|
|
6334
|
+
}
|
|
6335
|
+
.idle-label,
|
|
6336
|
+
.protocol-label {
|
|
6337
|
+
font-size: 10px;
|
|
6338
|
+
color: var(--text-muted);
|
|
6339
|
+
font-style: italic;
|
|
6340
|
+
}
|
|
6341
|
+
.teammate-idle-detail {
|
|
6342
|
+
padding: 12px;
|
|
6343
|
+
text-align: center;
|
|
6344
|
+
color: var(--text-muted);
|
|
6345
|
+
}
|
|
6346
|
+
.msg-time {
|
|
6347
|
+
font-size: 10px;
|
|
6348
|
+
color: var(--text-muted);
|
|
6349
|
+
margin-top: 4px;
|
|
6350
|
+
}
|
|
6351
|
+
.msg-empty {
|
|
6352
|
+
text-align: center;
|
|
6353
|
+
color: var(--text-muted);
|
|
6354
|
+
padding: 40px 20px;
|
|
6355
|
+
font-size: 12px;
|
|
6356
|
+
}
|
|
6357
|
+
|
|
6358
|
+
.agent-log-back {
|
|
6359
|
+
border: none;
|
|
6360
|
+
background: none;
|
|
6361
|
+
cursor: pointer;
|
|
6362
|
+
color: var(--text-secondary);
|
|
6363
|
+
font-size: 16px;
|
|
6364
|
+
padding: 0 8px 0 0;
|
|
6365
|
+
line-height: 1;
|
|
6366
|
+
}
|
|
6367
|
+
.agent-log-back:hover {
|
|
6368
|
+
color: var(--text-primary);
|
|
6369
|
+
}
|
|
6370
|
+
.agent-log-title {
|
|
6371
|
+
display: flex;
|
|
5953
6372
|
align-items: baseline;
|
|
5954
6373
|
gap: 6px;
|
|
5955
6374
|
}
|
|
@@ -6537,9 +6956,9 @@ body.show-resizing iframe {
|
|
|
6537
6956
|
}
|
|
6538
6957
|
|
|
6539
6958
|
.linked-doc-actions .linked-doc-remove:hover {
|
|
6540
|
-
background: var(--
|
|
6541
|
-
border-color: var(--
|
|
6542
|
-
color: var(--
|
|
6959
|
+
background: var(--bg-elevated);
|
|
6960
|
+
border-color: var(--border);
|
|
6961
|
+
color: var(--text-primary);
|
|
6543
6962
|
}
|
|
6544
6963
|
|
|
6545
6964
|
/* A linked file the previewer can't render opens in the editor — the dashed
|
|
@@ -6999,8 +7418,8 @@ body.light .msg-assistant .msg-text {
|
|
|
6999
7418
|
|
|
7000
7419
|
/* #region INTERACTIVE */
|
|
7001
7420
|
.icon-btn.delete:hover {
|
|
7002
|
-
background:
|
|
7003
|
-
border-color: var(--
|
|
7421
|
+
background: var(--bg-elevated);
|
|
7422
|
+
border-color: var(--border);
|
|
7004
7423
|
}
|
|
7005
7424
|
|
|
7006
7425
|
.column-header {
|
|
@@ -7476,6 +7895,162 @@ body.light .msg-assistant .msg-text {
|
|
|
7476
7895
|
max-width: 440px;
|
|
7477
7896
|
}
|
|
7478
7897
|
|
|
7898
|
+
/* #region CONFIRM_DIALOG */
|
|
7899
|
+
#confirm-modal {
|
|
7900
|
+
z-index: 10001;
|
|
7901
|
+
}
|
|
7902
|
+
|
|
7903
|
+
.confirm-dialog {
|
|
7904
|
+
padding: 0;
|
|
7905
|
+
max-width: 560px;
|
|
7906
|
+
overflow: hidden;
|
|
7907
|
+
}
|
|
7908
|
+
|
|
7909
|
+
.confirm-body {
|
|
7910
|
+
padding: 20px 20px 6px;
|
|
7911
|
+
display: grid;
|
|
7912
|
+
gap: 12px;
|
|
7913
|
+
}
|
|
7914
|
+
|
|
7915
|
+
.confirm-top {
|
|
7916
|
+
display: flex;
|
|
7917
|
+
gap: 12px;
|
|
7918
|
+
align-items: flex-start;
|
|
7919
|
+
}
|
|
7920
|
+
|
|
7921
|
+
.confirm-icon {
|
|
7922
|
+
flex: none;
|
|
7923
|
+
width: 30px;
|
|
7924
|
+
height: 30px;
|
|
7925
|
+
border-radius: 50%;
|
|
7926
|
+
display: grid;
|
|
7927
|
+
place-items: center;
|
|
7928
|
+
background: color-mix(in srgb, var(--accent) 14%, transparent);
|
|
7929
|
+
color: var(--accent);
|
|
7930
|
+
font-weight: 700;
|
|
7931
|
+
}
|
|
7932
|
+
|
|
7933
|
+
.confirm-title {
|
|
7934
|
+
margin: 0;
|
|
7935
|
+
font-size: 15px;
|
|
7936
|
+
color: var(--text-primary);
|
|
7937
|
+
}
|
|
7938
|
+
|
|
7939
|
+
.confirm-message {
|
|
7940
|
+
margin: 3px 0 0;
|
|
7941
|
+
font-size: 12.5px;
|
|
7942
|
+
color: var(--text-tertiary);
|
|
7943
|
+
}
|
|
7944
|
+
|
|
7945
|
+
.confirm-chip {
|
|
7946
|
+
font-family: var(--mono);
|
|
7947
|
+
font-size: 12px;
|
|
7948
|
+
color: var(--text-primary);
|
|
7949
|
+
background: var(--bg-elevated);
|
|
7950
|
+
border: 1px solid var(--border);
|
|
7951
|
+
border-radius: 6px;
|
|
7952
|
+
padding: 7px 10px;
|
|
7953
|
+
overflow: hidden;
|
|
7954
|
+
text-overflow: ellipsis;
|
|
7955
|
+
white-space: nowrap;
|
|
7956
|
+
}
|
|
7957
|
+
|
|
7958
|
+
.confirm-list {
|
|
7959
|
+
border: 1px solid var(--border);
|
|
7960
|
+
border-radius: 6px;
|
|
7961
|
+
font-size: 12px;
|
|
7962
|
+
}
|
|
7963
|
+
|
|
7964
|
+
.confirm-row {
|
|
7965
|
+
display: flex;
|
|
7966
|
+
gap: 8px;
|
|
7967
|
+
align-items: center;
|
|
7968
|
+
padding: 6px 10px;
|
|
7969
|
+
}
|
|
7970
|
+
|
|
7971
|
+
.confirm-row + .confirm-row {
|
|
7972
|
+
border-top: 1px solid var(--border);
|
|
7973
|
+
}
|
|
7974
|
+
|
|
7975
|
+
.confirm-row-label {
|
|
7976
|
+
flex: 1;
|
|
7977
|
+
min-width: 0;
|
|
7978
|
+
overflow: hidden;
|
|
7979
|
+
text-overflow: ellipsis;
|
|
7980
|
+
white-space: nowrap;
|
|
7981
|
+
color: var(--text-primary);
|
|
7982
|
+
}
|
|
7983
|
+
|
|
7984
|
+
.confirm-row-meta {
|
|
7985
|
+
font-family: var(--mono);
|
|
7986
|
+
font-size: 11px;
|
|
7987
|
+
color: var(--text-muted);
|
|
7988
|
+
white-space: nowrap;
|
|
7989
|
+
}
|
|
7990
|
+
|
|
7991
|
+
.confirm-step::before {
|
|
7992
|
+
content: '→';
|
|
7993
|
+
color: var(--accent);
|
|
7994
|
+
}
|
|
7995
|
+
|
|
7996
|
+
.confirm-dot {
|
|
7997
|
+
flex: none;
|
|
7998
|
+
width: 8px;
|
|
7999
|
+
height: 8px;
|
|
8000
|
+
border-radius: 50%;
|
|
8001
|
+
background: var(--text-muted);
|
|
8002
|
+
}
|
|
8003
|
+
|
|
8004
|
+
.confirm-dot.busy {
|
|
8005
|
+
background: var(--success);
|
|
8006
|
+
}
|
|
8007
|
+
|
|
8008
|
+
.confirm-dot.wait {
|
|
8009
|
+
background: var(--warning);
|
|
8010
|
+
}
|
|
8011
|
+
|
|
8012
|
+
.confirm-warn {
|
|
8013
|
+
font-size: 12px;
|
|
8014
|
+
color: var(--warning);
|
|
8015
|
+
}
|
|
8016
|
+
|
|
8017
|
+
.confirm-footer {
|
|
8018
|
+
justify-content: space-between;
|
|
8019
|
+
align-items: center;
|
|
8020
|
+
padding: 12px 20px 16px;
|
|
8021
|
+
}
|
|
8022
|
+
|
|
8023
|
+
.confirm-hint {
|
|
8024
|
+
display: flex;
|
|
8025
|
+
flex-wrap: nowrap;
|
|
8026
|
+
gap: 12px;
|
|
8027
|
+
white-space: nowrap;
|
|
8028
|
+
font-size: 11px;
|
|
8029
|
+
color: var(--text-muted);
|
|
8030
|
+
}
|
|
8031
|
+
|
|
8032
|
+
.confirm-hint kbd {
|
|
8033
|
+
font-family: var(--mono);
|
|
8034
|
+
font-size: 10px;
|
|
8035
|
+
border: 1px solid var(--border);
|
|
8036
|
+
border-bottom-width: 2px;
|
|
8037
|
+
border-radius: 4px;
|
|
8038
|
+
padding: 1px 5px;
|
|
8039
|
+
background: var(--bg-elevated);
|
|
8040
|
+
color: var(--text-secondary);
|
|
8041
|
+
}
|
|
8042
|
+
|
|
8043
|
+
.confirm-buttons {
|
|
8044
|
+
display: flex;
|
|
8045
|
+
gap: 8px;
|
|
8046
|
+
}
|
|
8047
|
+
|
|
8048
|
+
.confirm-buttons .btn {
|
|
8049
|
+
padding: 8px 16px;
|
|
8050
|
+
white-space: nowrap;
|
|
8051
|
+
}
|
|
8052
|
+
/* #endregion */
|
|
8053
|
+
|
|
7479
8054
|
/* Reference card, not reading material: it stays out of the modal zoom, uses the app's
|
|
7480
8055
|
small type, and scrolls its body (rule shared with #team-modal) instead of growing past
|
|
7481
8056
|
the viewport cap. */
|
|
@@ -7811,15 +8386,14 @@ select.form-input option:checked {
|
|
|
7811
8386
|
}
|
|
7812
8387
|
|
|
7813
8388
|
.btn-danger {
|
|
7814
|
-
background: var(--
|
|
7815
|
-
border-color: var(--
|
|
7816
|
-
color:
|
|
8389
|
+
background: color-mix(in srgb, var(--accent) 12%, transparent);
|
|
8390
|
+
border-color: color-mix(in srgb, var(--accent) 40%, transparent);
|
|
8391
|
+
color: var(--accent);
|
|
7817
8392
|
}
|
|
7818
8393
|
|
|
7819
8394
|
.btn-danger:hover {
|
|
7820
|
-
background: color-mix(in srgb, var(--
|
|
7821
|
-
|
|
7822
|
-
box-shadow: 0 4px 12px color-mix(in srgb, var(--danger) 45%, transparent);
|
|
8395
|
+
background: color-mix(in srgb, var(--accent) 22%, transparent);
|
|
8396
|
+
border-color: var(--accent);
|
|
7823
8397
|
}
|
|
7824
8398
|
|
|
7825
8399
|
.btn-secondary {
|
|
@@ -8334,6 +8908,57 @@ select.form-input option:checked {
|
|
|
8334
8908
|
min-width: 0;
|
|
8335
8909
|
}
|
|
8336
8910
|
|
|
8911
|
+
.ns-body select.form-input {
|
|
8912
|
+
appearance: none;
|
|
8913
|
+
padding-right: 30px;
|
|
8914
|
+
cursor: pointer;
|
|
8915
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b8d95' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
|
|
8916
|
+
background-repeat: no-repeat;
|
|
8917
|
+
background-position: right 10px center;
|
|
8918
|
+
}
|
|
8919
|
+
|
|
8920
|
+
.ns-notched {
|
|
8921
|
+
flex: 1;
|
|
8922
|
+
min-width: 0;
|
|
8923
|
+
margin: 0;
|
|
8924
|
+
padding: 0;
|
|
8925
|
+
border: 1px solid var(--border);
|
|
8926
|
+
border-radius: 6px;
|
|
8927
|
+
background: var(--bg-elevated);
|
|
8928
|
+
transition:
|
|
8929
|
+
border-color 0.15s ease,
|
|
8930
|
+
box-shadow 0.15s ease;
|
|
8931
|
+
}
|
|
8932
|
+
|
|
8933
|
+
.ns-notched:focus-within {
|
|
8934
|
+
border-color: var(--accent);
|
|
8935
|
+
box-shadow: 0 0 0 3px var(--accent-dim);
|
|
8936
|
+
}
|
|
8937
|
+
|
|
8938
|
+
.ns-notched legend {
|
|
8939
|
+
margin: 0 8px 0 auto;
|
|
8940
|
+
padding: 0 4px;
|
|
8941
|
+
font-size: 11px;
|
|
8942
|
+
font-weight: 500;
|
|
8943
|
+
line-height: 13px;
|
|
8944
|
+
color: var(--text-secondary);
|
|
8945
|
+
}
|
|
8946
|
+
|
|
8947
|
+
.ns-notched:focus-within legend {
|
|
8948
|
+
color: var(--accent-text);
|
|
8949
|
+
}
|
|
8950
|
+
|
|
8951
|
+
/* The legend's lower half sits inside the box, so less top padding keeps the box as tall as a plain input. */
|
|
8952
|
+
.ns-body .ns-notched select.form-input,
|
|
8953
|
+
.ns-body .ns-notched select.form-input:focus {
|
|
8954
|
+
padding-top: 2px;
|
|
8955
|
+
font-size: 12px;
|
|
8956
|
+
background-position: right 10px top calc(50% - 3px);
|
|
8957
|
+
border: none;
|
|
8958
|
+
background-color: transparent;
|
|
8959
|
+
box-shadow: none;
|
|
8960
|
+
}
|
|
8961
|
+
|
|
8337
8962
|
.ns-body .btn.ns-browse {
|
|
8338
8963
|
flex: none;
|
|
8339
8964
|
padding: 8px 12px;
|
|
@@ -9010,8 +9635,8 @@ select.form-input option:checked {
|
|
|
9010
9635
|
}
|
|
9011
9636
|
|
|
9012
9637
|
.storage-item-actions button.danger:hover {
|
|
9013
|
-
background:
|
|
9014
|
-
color: var(--
|
|
9638
|
+
background: var(--bg-hover);
|
|
9639
|
+
color: var(--text-primary);
|
|
9015
9640
|
}
|
|
9016
9641
|
|
|
9017
9642
|
.storage-group-header {
|
|
@@ -9028,6 +9653,15 @@ select.form-input option:checked {
|
|
|
9028
9653
|
padding-top: 0;
|
|
9029
9654
|
}
|
|
9030
9655
|
|
|
9656
|
+
.storage-group-header.storage-group-row {
|
|
9657
|
+
padding: 6px 0;
|
|
9658
|
+
}
|
|
9659
|
+
|
|
9660
|
+
.storage-group-row .storage-item-actions {
|
|
9661
|
+
align-items: center;
|
|
9662
|
+
gap: 8px;
|
|
9663
|
+
}
|
|
9664
|
+
|
|
9031
9665
|
.storage-empty {
|
|
9032
9666
|
text-align: center;
|
|
9033
9667
|
padding: 32px 0;
|
|
@@ -9137,6 +9771,30 @@ pre.mermaid {
|
|
|
9137
9771
|
pre.mermaid svg {
|
|
9138
9772
|
max-width: 100%;
|
|
9139
9773
|
}
|
|
9774
|
+
/* Hides the diagram source while it loads; a failed diagram shows its error instead. */
|
|
9775
|
+
pre.mermaid:not(:has(svg), [data-mermaid-error]) {
|
|
9776
|
+
min-height: 40px;
|
|
9777
|
+
font-size: 0;
|
|
9778
|
+
}
|
|
9779
|
+
pre.mermaid:not(:has(svg), [data-mermaid-error])::before {
|
|
9780
|
+
content: 'Rendering diagram…';
|
|
9781
|
+
font-family: var(--mono);
|
|
9782
|
+
font-size: 12px;
|
|
9783
|
+
color: var(--text-muted);
|
|
9784
|
+
}
|
|
9785
|
+
pre.mermaid[data-mermaid-error] {
|
|
9786
|
+
padding: 8px 10px;
|
|
9787
|
+
border: 1px dashed var(--border);
|
|
9788
|
+
border-radius: 4px;
|
|
9789
|
+
font-size: 12px;
|
|
9790
|
+
text-align: left;
|
|
9791
|
+
white-space: pre-wrap;
|
|
9792
|
+
color: var(--text-secondary);
|
|
9793
|
+
}
|
|
9794
|
+
pre.mermaid[data-mermaid-error]::before {
|
|
9795
|
+
content: 'Diagram failed to render\A';
|
|
9796
|
+
color: var(--danger);
|
|
9797
|
+
}
|
|
9140
9798
|
.modal.has-mermaid {
|
|
9141
9799
|
width: 80vw;
|
|
9142
9800
|
max-width: 80vw;
|
|
@@ -9145,19 +9803,16 @@ pre.mermaid svg {
|
|
|
9145
9803
|
/* #endregion */
|
|
9146
9804
|
|
|
9147
9805
|
/* #region ANIMATIONS */
|
|
9806
|
+
/* No `to` and fill backwards: the card ends on its own opacity (.completed, .dim), not on 1. */
|
|
9148
9807
|
@keyframes fadeSlideIn {
|
|
9149
9808
|
from {
|
|
9150
9809
|
opacity: 0;
|
|
9151
9810
|
transform: translateY(8px);
|
|
9152
9811
|
}
|
|
9153
|
-
to {
|
|
9154
|
-
opacity: 1;
|
|
9155
|
-
transform: translateY(0);
|
|
9156
|
-
}
|
|
9157
9812
|
}
|
|
9158
9813
|
|
|
9159
9814
|
.column-tasks .task-card {
|
|
9160
|
-
animation: fadeSlideIn 150ms ease-out
|
|
9815
|
+
animation: fadeSlideIn 150ms ease-out backwards;
|
|
9161
9816
|
}
|
|
9162
9817
|
|
|
9163
9818
|
.column-tasks .task-card:nth-child(1) {
|
|
@@ -9529,6 +10184,10 @@ pre.mermaid svg {
|
|
|
9529
10184
|
outline-offset: -1px;
|
|
9530
10185
|
}
|
|
9531
10186
|
|
|
10187
|
+
.session-group-header.sg-zen {
|
|
10188
|
+
color: var(--accent);
|
|
10189
|
+
}
|
|
10190
|
+
|
|
9532
10191
|
.sg-sub-label {
|
|
9533
10192
|
padding: 8px 10px 2px 8px;
|
|
9534
10193
|
font-size: 10px;
|
|
@@ -9567,6 +10226,28 @@ pre.mermaid svg {
|
|
|
9567
10226
|
margin-left: 6px;
|
|
9568
10227
|
}
|
|
9569
10228
|
|
|
10229
|
+
.session-group-sessions .session-group-sessions {
|
|
10230
|
+
padding-left: 6px;
|
|
10231
|
+
border-left: 1px solid var(--border);
|
|
10232
|
+
}
|
|
10233
|
+
|
|
10234
|
+
.session-item.sg-child {
|
|
10235
|
+
width: calc(100% - var(--sg-indent));
|
|
10236
|
+
margin-left: var(--sg-indent);
|
|
10237
|
+
}
|
|
10238
|
+
|
|
10239
|
+
.session-item.sg-depth-1 {
|
|
10240
|
+
--sg-indent: 14px;
|
|
10241
|
+
}
|
|
10242
|
+
|
|
10243
|
+
.session-item.sg-depth-2 {
|
|
10244
|
+
--sg-indent: 28px;
|
|
10245
|
+
}
|
|
10246
|
+
|
|
10247
|
+
.session-item.sg-depth-3 {
|
|
10248
|
+
--sg-indent: 42px;
|
|
10249
|
+
}
|
|
10250
|
+
|
|
9570
10251
|
.session-group-sessions.collapsed,
|
|
9571
10252
|
.sg-section-body.collapsed {
|
|
9572
10253
|
display: none;
|
|
@@ -9617,6 +10298,23 @@ pre.mermaid svg {
|
|
|
9617
10298
|
top: -5px;
|
|
9618
10299
|
}
|
|
9619
10300
|
|
|
10301
|
+
/* A drop on the top edge of a child group's header goes to its parent group. */
|
|
10302
|
+
.session-group-header.sg-insert-parent {
|
|
10303
|
+
position: relative;
|
|
10304
|
+
}
|
|
10305
|
+
|
|
10306
|
+
.session-group-header.sg-insert-parent::after {
|
|
10307
|
+
content: '';
|
|
10308
|
+
position: absolute;
|
|
10309
|
+
top: -3px;
|
|
10310
|
+
left: -8px;
|
|
10311
|
+
right: 4px;
|
|
10312
|
+
height: 2px;
|
|
10313
|
+
border-radius: 1px;
|
|
10314
|
+
background: var(--accent);
|
|
10315
|
+
pointer-events: none;
|
|
10316
|
+
}
|
|
10317
|
+
|
|
9620
10318
|
.session-item.sg-insert-after::after {
|
|
9621
10319
|
bottom: -5px;
|
|
9622
10320
|
}
|
|
@@ -9698,4 +10396,20 @@ pre.mermaid svg {
|
|
|
9698
10396
|
letter-spacing: 0;
|
|
9699
10397
|
white-space: nowrap;
|
|
9700
10398
|
}
|
|
10399
|
+
.pane-menu-path {
|
|
10400
|
+
display: flex;
|
|
10401
|
+
}
|
|
10402
|
+
.pane-menu-dir {
|
|
10403
|
+
flex: 0 1 auto;
|
|
10404
|
+
min-width: 0;
|
|
10405
|
+
overflow: hidden;
|
|
10406
|
+
text-overflow: ellipsis;
|
|
10407
|
+
direction: rtl;
|
|
10408
|
+
text-align: left;
|
|
10409
|
+
}
|
|
10410
|
+
.pane-menu-name {
|
|
10411
|
+
flex: none;
|
|
10412
|
+
color: var(--text-primary);
|
|
10413
|
+
font-weight: 600;
|
|
10414
|
+
}
|
|
9701
10415
|
/* #endregion */
|