typebulb 0.52.0 → 0.52.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.
@@ -326,13 +326,13 @@ body {
326
326
  .shimmer-text { animation: none !important; background: none !important; -webkit-text-fill-color: currentColor; }
327
327
  }
328
328
 
329
- /* CC mid-turn: the token pill doubles as the working indicator — an accent shimmer
330
- over the chip, the count frozen until the turn flushes. Passive — driven by the
331
- live-chain leaf, not a live token stream (the JSONL is flushed in batches, so this
332
- can sit lit through a multi-minute buffering window — hence shimmer-slow). The sweep
333
- blends with --panel, not transparent like the launch buttons': statusbar pills must
334
- stay opaque over the message text the strip lets through. */
335
- .token.busy { border-color: var(--accent); --shimmer-base: var(--panel); --shimmer-mix: 25%; }
329
+ /* THE WORKING STATE for a word pill — the token chip mid-turn, the summarize pill mid-call. Only
330
+ the shimmer's knobs live here; the sweep itself is the shared .shimmer above, composed by
331
+ `busyPill()` (ui.ts) so a new busy pill can't land at its own speed or its own base colour. The
332
+ sweep blends with --panel, not transparent like the launch buttons': a word pill sits over message
333
+ text and must keep covering it. shimmer-slow because these can sit lit for minutes (the JSONL
334
+ flushes in batches, so the token chip rides a whole buffering window). */
335
+ .pill-busy { border-color: var(--accent); --shimmer-base: var(--panel); --shimmer-mix: 25%; }
336
336
 
337
337
  /* ── The composer (TB-Agent-Composer.md): the prompt panel under the transcript. In flow (not
338
338
  overlaid like the statusbar) — it owns real height and must never cover content. ── */
@@ -1870,8 +1870,21 @@ html[data-theme="dark"] .masthead-logo.dark { display: block; }
1870
1870
  (#draftThinkingPre). Durable rows stay uncapped: finished thinking IS reading material. */
1871
1871
  .draft .thinking pre { max-height: 220px; overflow-y: auto; }
1872
1872
 
1873
- /* Copy button: an .overlay-pill revealed on bubble-hover. */
1874
- .bubble:hover .copy { opacity: 1; }
1873
+ /* The bubble's pill row (summarize, then copy), revealed on bubble-hover. The row does the corner
1874
+ anchoring so the pills inside can sit side by side — each .overlay-pill anchors itself to its
1875
+ container's bottom-right otherwise, and the second would land on the first. Same shape as the
1876
+ inline bulb's .bulb-controls. The reveal is scoped to a DIRECT child row, so an inline bulb's own
1877
+ controls keep their own (bulb-hover) reveal instead of firing on the whole bubble. */
1878
+ .bubble-controls {
1879
+ position: absolute;
1880
+ bottom: .5rem;
1881
+ right: 0; /* flush with the content column's right edge (prose / statusbar pills) */
1882
+ display: flex;
1883
+ gap: .4rem;
1884
+ }
1885
+ .bubble-controls .overlay-pill { position: static; }
1886
+ .bubble:hover > .bubble-controls .overlay-pill,
1887
+ .bubble-controls .overlay-pill:focus-visible { opacity: 1; }
1875
1888
  /* "copied" flash: eases into accent on click (CopyButton is a Component, so its
1876
1889
  node persists across re-renders and the transition actually runs). The color
1877
1890
  transition lives only on .done, not the base pill, so hover stays instant — the
@@ -1884,4 +1897,15 @@ html[data-theme="dark"] .masthead-logo.dark { display: block; }
1884
1897
  }
1885
1898
  /* Assistant bubbles carry no padding, so the shared .5rem bottom would float the
1886
1899
  pill above the last line — pin it to the text's bottom edge. */
1887
- .bubble.assistant .copy { bottom: 0; }
1900
+ .bubble.assistant > .bubble-controls { bottom: 0; }
1901
+
1902
+ /* The summarize action, riding the PROMPT bubble beside its copy pill (summarizeButton.ts): above
1903
+ the prose, so the flip resizes only what's below it, and over text the reader already knows rather
1904
+ than the reply they came to read. min-width fits its two labels — near-identical in length by
1905
+ design, so the pill never changes width; the working state doesn't enter into it, since the label
1906
+ holds still and .pill-busy shimmers it. Three states outlive the pointer — working, showing,
1907
+ failed — so each holds the pill visible. */
1908
+ .summarize { min-width: 7.6rem; }
1909
+ .summarize.on, .summarize.err, .summarize.pill-busy { opacity: 1; }
1910
+ .summarize.on { color: var(--accent); border-color: var(--accent); }
1911
+ .summarize.err { color: var(--err); border-color: var(--err); }