typebulb 0.20.0 → 0.20.1

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.
@@ -1153,29 +1153,25 @@ a.server-port:hover { text-decoration: underline; }
1153
1153
  .tool {
1154
1154
  font-size: .85rem;
1155
1155
  }
1156
- /* Clickable caret row, shared by tool heads and the collapsed-turn summary: a flex
1157
- row that's an unselectable click target. align-items:center centers the caret
1158
- against the label box (verb↔summary alignment is handled inside .tool-label). */
1156
+ /* Row shape shared by tool heads and the collapsed-turn summary; only the latter is a click
1157
+ target (a tool's toggle is its digest row). */
1159
1158
  .tool-head, .turn-summary {
1160
1159
  display: flex;
1161
1160
  align-items: center;
1162
1161
  gap: .5rem;
1163
1162
  padding: .15rem 0;
1163
+ }
1164
+ .turn-summary {
1164
1165
  cursor: pointer;
1165
1166
  user-select: none;
1166
1167
  }
1167
- .tool.open {
1168
- margin-top: .55rem;
1169
- background: var(--veil);
1170
- border: 1px solid var(--border);
1171
- border-radius: 8px;
1172
- }
1173
- .tool.open .tool-head {
1174
- padding: .4rem .6rem;
1175
- }
1176
- /* line-height: 1 keeps the oversized caret's box from inflating the row height. */
1177
- .tool-caret { color: var(--muted); font-size: 1.4rem; line-height: 1; width: 1ch; }
1178
- .tool-name { font-weight: 600; color: var(--accent); }
1168
+ /* The shared disclosure triangle (caret() in messageList.ts). flex:none so a squeezed row can't
1169
+ crush it; the digest row has no flex gap, so its spacing rides the marker. */
1170
+ .caret-tri { flex: none; transition: transform .15s ease; }
1171
+ .caret-tri.open { transform: rotate(90deg); }
1172
+ .tool-digest .caret-tri { margin-right: .5rem; }
1173
+ /* Plain bold — an accent verb reads as a hyperlink; accent is reserved for the file-path link. */
1174
+ .tool-name { font-weight: 600; }
1179
1175
  /* Errors here are routine (a first-read miss the retry fixes), so a failed tool
1180
1176
  recolors just its verb rather than boxing the whole row — a quiet signal. */
1181
1177
  .tool.err .tool-name { color: var(--err); }
@@ -1184,6 +1180,7 @@ a.server-port:hover { text-decoration: underline; }
1184
1180
  answer). Same caret/row shape as a tool head, italic muted label. */
1185
1181
  .turn-summary { color: var(--muted); font-size: .85rem; }
1186
1182
  .turn-summary-text { font-style: italic; }
1183
+ .fork-icon { vertical-align: -1px; margin-right: .15rem; }
1187
1184
  .turn-summary:hover .turn-summary-text { color: var(--fg); }
1188
1185
 
1189
1186
  /* An expanded abandoned-branch (fork) stub renders its orphan messages here — set apart from the live
@@ -1227,7 +1224,6 @@ a.server-port:hover { text-decoration: underline; }
1227
1224
  (equal specificity, later in source) and the stub actually gets its breathing room. */
1228
1225
  .md .bulb-fold { margin: .7rem 0; }
1229
1226
  .bulb-fold:hover { background: color-mix(in srgb, var(--fg) 8%, var(--panel)); }
1230
- .bulb-fold .tool-caret { color: inherit; } /* follow the accent row color */
1231
1227
  /* Verb + summary are inline siblings sharing one line box and font, so they sit
1232
1228
  on a common baseline. Ellipsis truncation lives on the wrapper, not the
1233
1229
  children — overflow:hidden on the summary itself skews its baseline. */
@@ -1243,18 +1239,13 @@ a.server-port:hover { text-decoration: underline; }
1243
1239
  .tool-sum {
1244
1240
  margin-left: .5rem;
1245
1241
  color: var(--muted);
1246
- /* Re-enable selection the .tool-head blankets off: the verb/caret stay an
1247
- unselectable click target, but the summary is real data (path, pattern,
1248
- command) worth copying. A drag selects; a plain click still toggles. */
1249
- user-select: text;
1250
1242
  }
1251
1243
  .tool-run { color: var(--muted); }
1252
1244
 
1253
- /* The OUT line ("463 lines", "2 files", the first stdout line) a collapsed tool's second row,
1254
- indented under the verb with CC's ⎿ marker (::before, so a copy drag doesn't grab it). Clickable
1255
- like the head (it's part of the row); the text itself stays selectable, same deal as .tool-sum. */
1245
+ /* The OUT line ("463 lines", the first stdout line): a tool's second row and its only toggle.
1246
+ Text stays selectable a drag copies, a plain click toggles. */
1256
1247
  .tool-digest {
1257
- padding: 0 0 .15rem 1.2rem;
1248
+ padding: 0 0 .15rem .6rem;
1258
1249
  color: var(--muted);
1259
1250
  white-space: nowrap;
1260
1251
  overflow: hidden;
@@ -1262,7 +1253,27 @@ a.server-port:hover { text-decoration: underline; }
1262
1253
  cursor: pointer;
1263
1254
  user-select: text;
1264
1255
  }
1265
- .tool-digest::before { content: '⎿'; margin-right: .5rem; user-select: none; }
1256
+ .tool-digest:hover { color: var(--fg); }
1257
+
1258
+ /* Expanded input/output card beneath the digest row — additive only, the rows above keep their
1259
+ collapsed look. First child sheds its top divider (nothing above it inside the card). */
1260
+ .tool-card {
1261
+ margin: .15rem 0 .55rem .6rem;
1262
+ background: var(--veil);
1263
+ border: 1px solid var(--border);
1264
+ border-radius: 8px;
1265
+ overflow: hidden;
1266
+ }
1267
+ .tool-card > :first-child, .tool-card > .diff:first-child > :first-child { border-top: none; }
1268
+
1269
+ /* TodoWrite checklist (CC's treatment: struck-through done, bold in-progress, plain pending). */
1270
+ .todo-list { padding: .45rem .7rem; display: grid; gap: .25rem; font-size: .85rem; }
1271
+ .todo { display: flex; gap: .5rem; align-items: baseline; }
1272
+ .todo-icon { flex: none; }
1273
+ .todo.completed .todo-icon { color: var(--diff-add); }
1274
+ .todo.completed .todo-text { text-decoration: line-through; color: var(--muted); }
1275
+ .todo.in_progress .todo-text { font-weight: 600; }
1276
+ .todo.in_progress .todo-icon { color: var(--accent); }
1266
1277
 
1267
1278
  /* Code-display panels inside an open tool card: raw input/output (.tool-in,
1268
1279
  .tool-out) and per-hunk diff halves (.diff-old, .diff-new). All four share
@@ -1288,13 +1299,13 @@ a.server-port:hover { text-decoration: underline; }
1288
1299
  .tool-field + .tool-field { margin-top: .5rem; }
1289
1300
  .tool-key { color: var(--muted); margin-right: .6rem; user-select: text; }
1290
1301
  .tool-val { display: inline; margin: 0; font: inherit; white-space: pre-wrap; word-break: break-word; }
1291
- /* Line-banded unified-diff view for a diff-shaped string input (looksLikeUnifiedDiff): the same
1292
- add/remove band colors as .diff-new/.diff-old, applied per line; hunk/file headers muted. */
1302
+ /* Line-banded unified-diff view lines only): the same add/remove band colors as
1303
+ .diff-new/.diff-old; a muted row separates hunks. */
1293
1304
  .udiff { white-space: pre-wrap; word-break: break-word; }
1294
1305
  .udiff-line { padding: 0 .2rem; }
1295
1306
  .udiff-add { background: color-mix(in srgb, var(--diff-add) 24%, transparent); }
1296
1307
  .udiff-del { background: color-mix(in srgb, var(--err) 24%, transparent); }
1297
- .udiff-hunk { color: var(--muted); }
1308
+ .udiff-gap { color: var(--muted); user-select: none; }
1298
1309
  /* The band carries the add/remove signal; text stays --fg so it's readable. Colouring the text the same
1299
1310
  hue as its fill (red-on-red) is what washes a diff out — the band alone is the convention. */
1300
1311
  .diff-old {