claude-code-kanban 4.7.1 → 4.9.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/lib/parsers.js +103 -3
- package/package.json +1 -1
- package/public/app.js +286 -10
- package/public/index.html +5 -0
- package/public/style.css +144 -8
- package/public/themes.css +823 -0
- package/server.js +40 -1
package/public/style.css
CHANGED
|
@@ -472,6 +472,8 @@ body::before {
|
|
|
472
472
|
white-space: nowrap;
|
|
473
473
|
overflow: hidden;
|
|
474
474
|
text-overflow: ellipsis;
|
|
475
|
+
/* reserve room for the absolutely-positioned pin button at top-right */
|
|
476
|
+
padding-right: 22px;
|
|
475
477
|
}
|
|
476
478
|
|
|
477
479
|
.session-indicators .pulse {
|
|
@@ -900,6 +902,76 @@ body::before {
|
|
|
900
902
|
border-color: #ef4444;
|
|
901
903
|
}
|
|
902
904
|
|
|
905
|
+
/* theme picker: palette icon button + custom popover with per-theme swatches
|
|
906
|
+
(swatch colors are generated into themes.css) */
|
|
907
|
+
.theme-picker {
|
|
908
|
+
position: relative;
|
|
909
|
+
}
|
|
910
|
+
.theme-menu {
|
|
911
|
+
display: none;
|
|
912
|
+
position: absolute;
|
|
913
|
+
top: calc(100% + 6px);
|
|
914
|
+
right: 0;
|
|
915
|
+
z-index: 100;
|
|
916
|
+
min-width: 170px;
|
|
917
|
+
max-height: 70vh;
|
|
918
|
+
overflow-y: auto;
|
|
919
|
+
padding: 4px;
|
|
920
|
+
background: var(--bg-elevated);
|
|
921
|
+
border: 1px solid var(--border);
|
|
922
|
+
border-radius: 8px;
|
|
923
|
+
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
|
|
924
|
+
}
|
|
925
|
+
.theme-menu.open {
|
|
926
|
+
display: block;
|
|
927
|
+
}
|
|
928
|
+
.theme-menu-item {
|
|
929
|
+
display: flex;
|
|
930
|
+
align-items: center;
|
|
931
|
+
gap: 8px;
|
|
932
|
+
width: 100%;
|
|
933
|
+
padding: 6px 8px;
|
|
934
|
+
border: 0;
|
|
935
|
+
border-radius: 6px;
|
|
936
|
+
background: none;
|
|
937
|
+
color: var(--text-secondary);
|
|
938
|
+
font-family: var(--font-mono);
|
|
939
|
+
font-size: 11px;
|
|
940
|
+
text-transform: uppercase;
|
|
941
|
+
letter-spacing: 0.03em;
|
|
942
|
+
text-align: left;
|
|
943
|
+
cursor: pointer;
|
|
944
|
+
}
|
|
945
|
+
.theme-menu-item:hover {
|
|
946
|
+
background: var(--bg-hover);
|
|
947
|
+
color: var(--text-primary);
|
|
948
|
+
}
|
|
949
|
+
.theme-menu-item.on {
|
|
950
|
+
color: var(--accent-text);
|
|
951
|
+
}
|
|
952
|
+
/* 3-dot palette preview: surface, accent, ink (colors from themes.css vars) */
|
|
953
|
+
.theme-swatch {
|
|
954
|
+
display: inline-flex;
|
|
955
|
+
align-items: center;
|
|
956
|
+
gap: 3px;
|
|
957
|
+
flex: 0 0 auto;
|
|
958
|
+
}
|
|
959
|
+
.theme-swatch i {
|
|
960
|
+
width: 9px;
|
|
961
|
+
height: 9px;
|
|
962
|
+
border-radius: 50%;
|
|
963
|
+
border: 1px solid var(--sw-border);
|
|
964
|
+
}
|
|
965
|
+
.theme-swatch .sw-bg {
|
|
966
|
+
background: var(--sw-bg);
|
|
967
|
+
}
|
|
968
|
+
.theme-swatch .sw-accent {
|
|
969
|
+
background: var(--sw-accent);
|
|
970
|
+
}
|
|
971
|
+
.theme-swatch .sw-ink {
|
|
972
|
+
background: var(--sw-ink);
|
|
973
|
+
}
|
|
974
|
+
|
|
903
975
|
/* #endregion */
|
|
904
976
|
|
|
905
977
|
/* #region KANBAN */
|
|
@@ -2101,7 +2173,63 @@ body::before {
|
|
|
2101
2173
|
overflow: hidden;
|
|
2102
2174
|
}
|
|
2103
2175
|
.msg-assistant .msg-text {
|
|
2104
|
-
color: var(--
|
|
2176
|
+
color: var(--text-primary);
|
|
2177
|
+
}
|
|
2178
|
+
.msg-text-md {
|
|
2179
|
+
display: block; /* override .msg-text -webkit-box clamp */
|
|
2180
|
+
-webkit-line-clamp: none;
|
|
2181
|
+
white-space: normal; /* override .msg-text pre-wrap */
|
|
2182
|
+
font-size: 12px;
|
|
2183
|
+
}
|
|
2184
|
+
/* Element spacing/borders come from .rendered-md (also on .msg-md-content);
|
|
2185
|
+
these are only the compact-feed deltas: smaller type + code/quote chrome. */
|
|
2186
|
+
.msg-text-md table,
|
|
2187
|
+
.msg-text-md pre,
|
|
2188
|
+
.msg-text-md code {
|
|
2189
|
+
font-size: 11px;
|
|
2190
|
+
}
|
|
2191
|
+
.msg-text-md h1,
|
|
2192
|
+
.msg-text-md h2,
|
|
2193
|
+
.msg-text-md h3,
|
|
2194
|
+
.msg-text-md h4,
|
|
2195
|
+
.msg-text-md h5,
|
|
2196
|
+
.msg-text-md h6 {
|
|
2197
|
+
font-size: 12px;
|
|
2198
|
+
font-weight: 600;
|
|
2199
|
+
}
|
|
2200
|
+
.msg-text-md pre {
|
|
2201
|
+
padding: 6px 8px;
|
|
2202
|
+
background: var(--bg-hover);
|
|
2203
|
+
border-radius: 4px;
|
|
2204
|
+
overflow-x: auto;
|
|
2205
|
+
}
|
|
2206
|
+
.msg-text-md blockquote {
|
|
2207
|
+
padding-left: 8px;
|
|
2208
|
+
border-left: 2px solid var(--border);
|
|
2209
|
+
color: var(--text-secondary);
|
|
2210
|
+
}
|
|
2211
|
+
.msg-md-content > :first-child {
|
|
2212
|
+
margin-top: 0;
|
|
2213
|
+
}
|
|
2214
|
+
.msg-md-content > :last-child {
|
|
2215
|
+
margin-bottom: 0;
|
|
2216
|
+
}
|
|
2217
|
+
/* Soften just the bottom edge of a truncated preview so it reads as "continues"
|
|
2218
|
+
without obscuring the last line of text. */
|
|
2219
|
+
.msg-md-content.is-truncated {
|
|
2220
|
+
-webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 0.85em), transparent);
|
|
2221
|
+
mask-image: linear-gradient(to bottom, #000 calc(100% - 0.85em), transparent);
|
|
2222
|
+
}
|
|
2223
|
+
.msg-md-more {
|
|
2224
|
+
display: block;
|
|
2225
|
+
width: fit-content;
|
|
2226
|
+
margin: 3px auto 0 0;
|
|
2227
|
+
padding: 1px 8px;
|
|
2228
|
+
font-size: 10px;
|
|
2229
|
+
font-weight: 500;
|
|
2230
|
+
color: var(--text-secondary);
|
|
2231
|
+
background: var(--bg-hover);
|
|
2232
|
+
border-radius: 9px;
|
|
2105
2233
|
}
|
|
2106
2234
|
.msg-tool .msg-text {
|
|
2107
2235
|
color: var(--text-secondary);
|
|
@@ -2147,6 +2275,12 @@ body::before {
|
|
|
2147
2275
|
.msg-agent-link:hover {
|
|
2148
2276
|
opacity: 1;
|
|
2149
2277
|
}
|
|
2278
|
+
.msg-agent-usage {
|
|
2279
|
+
color: var(--text-muted);
|
|
2280
|
+
font-size: 10px;
|
|
2281
|
+
opacity: 0.55;
|
|
2282
|
+
margin-left: 6px;
|
|
2283
|
+
}
|
|
2150
2284
|
.msg-pin-btn {
|
|
2151
2285
|
flex-shrink: 0;
|
|
2152
2286
|
background: none;
|
|
@@ -2820,9 +2954,7 @@ body::before {
|
|
|
2820
2954
|
.agent-card.selected:hover {
|
|
2821
2955
|
background: var(--bg-elevated);
|
|
2822
2956
|
border-color: var(--accent);
|
|
2823
|
-
box-shadow:
|
|
2824
|
-
0 0 0 1px var(--accent-dim),
|
|
2825
|
-
0 0 12px var(--accent-dim);
|
|
2957
|
+
box-shadow: 0 0 0 1px var(--accent-dim);
|
|
2826
2958
|
}
|
|
2827
2959
|
.agent-card.fading {
|
|
2828
2960
|
opacity: 0.4;
|
|
@@ -2858,18 +2990,18 @@ body::before {
|
|
|
2858
2990
|
gap: 5px;
|
|
2859
2991
|
}
|
|
2860
2992
|
.agent-dot {
|
|
2861
|
-
width:
|
|
2862
|
-
height:
|
|
2993
|
+
width: 5px;
|
|
2994
|
+
height: 5px;
|
|
2863
2995
|
border-radius: 50%;
|
|
2864
2996
|
flex-shrink: 0;
|
|
2865
2997
|
}
|
|
2866
2998
|
.agent-dot.active {
|
|
2867
2999
|
background: var(--success);
|
|
2868
|
-
box-shadow: 0 0
|
|
3000
|
+
box-shadow: 0 0 4px color-mix(in srgb, var(--success) 50%, transparent);
|
|
2869
3001
|
}
|
|
2870
3002
|
.agent-dot.idle {
|
|
2871
3003
|
background: var(--warning);
|
|
2872
|
-
box-shadow: 0 0
|
|
3004
|
+
box-shadow: 0 0 4px color-mix(in srgb, var(--warning) 50%, transparent);
|
|
2873
3005
|
}
|
|
2874
3006
|
.agent-dot.stopped {
|
|
2875
3007
|
background: var(--text-muted);
|
|
@@ -2912,6 +3044,10 @@ body::before {
|
|
|
2912
3044
|
color: var(--warning);
|
|
2913
3045
|
animation: agent-badge-pulse 1.6s ease-in-out infinite;
|
|
2914
3046
|
}
|
|
3047
|
+
.agent-badge-active {
|
|
3048
|
+
color: var(--accent, var(--text-secondary));
|
|
3049
|
+
animation: agent-badge-pulse 1.6s ease-in-out infinite;
|
|
3050
|
+
}
|
|
2915
3051
|
@keyframes agent-badge-pulse {
|
|
2916
3052
|
0%,
|
|
2917
3053
|
100% {
|