typebulb 0.14.2 → 0.14.4
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/dist/agents/claude/client.js +161 -161
- package/dist/agents/claude/styles.css +36 -22
- package/dist/index.js +158 -158
- package/dist/servers.js +59 -59
- package/package.json +1 -1
|
@@ -92,7 +92,7 @@ body {
|
|
|
92
92
|
font-size: .8rem;
|
|
93
93
|
/* Drop the inherited 1.55 line-height so the bar's own strut doesn't add
|
|
94
94
|
phantom ascender/descender room above the pills. Everything in the bar
|
|
95
|
-
is a fixed-height pill
|
|
95
|
+
is a fixed-height pill, which looks right at 1. */
|
|
96
96
|
line-height: 1;
|
|
97
97
|
min-width: 0;
|
|
98
98
|
}
|
|
@@ -102,13 +102,13 @@ body {
|
|
|
102
102
|
gap: .4rem;
|
|
103
103
|
align-items: center;
|
|
104
104
|
}
|
|
105
|
-
/* Chip shape shared by the status-bar pills
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
105
|
+
/* Chip shape shared by the status-bar pills, interactive (session chip) and
|
|
106
|
+
passive (token counter). One rule = one source of vertical alignment, no
|
|
107
|
+
element-type drift between siblings; inline-flex + line-height:1 + fixed
|
|
108
|
+
height centers the glyph run by the box, not by the inherited line-box.
|
|
109
109
|
Opaque so they read cleanly over the message text the transparent strip lets
|
|
110
110
|
through. */
|
|
111
|
-
.pill, .
|
|
111
|
+
.pill, .token {
|
|
112
112
|
display: inline-flex;
|
|
113
113
|
align-items: center;
|
|
114
114
|
justify-content: center;
|
|
@@ -132,7 +132,16 @@ body {
|
|
|
132
132
|
margin: 0;
|
|
133
133
|
cursor: pointer;
|
|
134
134
|
}
|
|
135
|
-
|
|
135
|
+
/* `.on` latches the hover accent — the bar's only persistent state cue (every other
|
|
136
|
+
pill accents on hover alone). */
|
|
137
|
+
.pill:hover, .pill.on { border-color: var(--accent); color: var(--accent); }
|
|
138
|
+
/* Square glyph pill (the prose-mode toggle): width pinned to the pill height rather than
|
|
139
|
+
padding-driven — the bar's first non-word pill. The emoji can't take currentColor, so it
|
|
140
|
+
carries state itself: grayscale at rest, color while hovered or on — filtered on the
|
|
141
|
+
inner span, never the button, or it would wash the accent border too. */
|
|
142
|
+
.pill.glyph { width: 1.7rem; padding: 0; font-size: .9rem; }
|
|
143
|
+
.pill.glyph .glyph-img { filter: grayscale(1); opacity: .75; }
|
|
144
|
+
.pill.glyph:hover .glyph-img, .pill.glyph.on .glyph-img { filter: none; opacity: 1; }
|
|
136
145
|
|
|
137
146
|
/* The two status-bar chips each anchor an upward popover (token breakdown /
|
|
138
147
|
session list). Wrap = positioning context; the popover anchors bottom/right and
|
|
@@ -156,20 +165,23 @@ body {
|
|
|
156
165
|
box-shadow: 0 8px 30px rgba(0, 0, 0, .45);
|
|
157
166
|
}
|
|
158
167
|
|
|
159
|
-
/*
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
.
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
background:
|
|
169
|
-
|
|
168
|
+
/* CC mid-turn: the token pill doubles as the working indicator — an accent shimmer
|
|
169
|
+
over the chip, the count frozen until the turn flushes. Passive — driven by the
|
|
170
|
+
live-chain leaf, not a live token stream (the JSONL is flushed in batches, so this
|
|
171
|
+
can sit lit through a multi-minute buffering window). The sweep blends with
|
|
172
|
+
--panel, not transparent like .launching's: statusbar pills must stay opaque over
|
|
173
|
+
the message text the strip lets through. */
|
|
174
|
+
.token.busy {
|
|
175
|
+
border-color: var(--accent);
|
|
176
|
+
background: linear-gradient(100deg, var(--panel) 30%, color-mix(in srgb, var(--accent) 25%, var(--panel)) 50%, var(--panel) 70%);
|
|
177
|
+
background-size: 250% 100%;
|
|
178
|
+
/* Much slower than .launching's sweep: that one paces a ~2s wait, this can sit lit for
|
|
179
|
+
minutes — at that dwell a fast sweep reads as urgency, not progress. */
|
|
180
|
+
animation: bulb-shimmer 7s linear infinite;
|
|
181
|
+
}
|
|
182
|
+
@media (prefers-reduced-motion: reduce) {
|
|
183
|
+
.token.busy { animation: none; background: color-mix(in srgb, var(--accent) 15%, var(--panel)); }
|
|
170
184
|
}
|
|
171
|
-
@keyframes working-pulse { 0%, 100% { opacity: .25; } 50% { opacity: 1; } }
|
|
172
|
-
@media (prefers-reduced-motion: reduce) { .working-dot { animation: none; opacity: .8; } }
|
|
173
185
|
|
|
174
186
|
/* Session list — shares the popover chrome (.picker above); these are
|
|
175
187
|
just its own dimensions. */
|
|
@@ -336,7 +348,9 @@ a.server-port:hover { text-decoration: underline; }
|
|
|
336
348
|
visibility: visible; border-color: var(--accent);
|
|
337
349
|
background: linear-gradient(100deg, transparent 30%, color-mix(in srgb, var(--accent) 35%, transparent) 50%, transparent 70%);
|
|
338
350
|
background-size: 250% 100%;
|
|
339
|
-
|
|
351
|
+
/* One full pass per ~2s wait — slow enough to stay calm, fast enough that the band
|
|
352
|
+
is guaranteed to cross while the user is actually watching. */
|
|
353
|
+
animation: bulb-shimmer 2.2s linear infinite;
|
|
340
354
|
}
|
|
341
355
|
@keyframes bulb-shimmer { from { background-position: 250% 0; } to { background-position: -250% 0; } }
|
|
342
356
|
@media (prefers-reduced-motion: reduce) {
|
|
@@ -782,7 +796,7 @@ a.server-port:hover { text-decoration: underline; }
|
|
|
782
796
|
color: var(--accent); border-color: var(--accent);
|
|
783
797
|
background: linear-gradient(100deg, transparent 30%, color-mix(in srgb, var(--accent) 35%, transparent) 50%, transparent 70%);
|
|
784
798
|
background-size: 250% 100%;
|
|
785
|
-
animation: bulb-shimmer
|
|
799
|
+
animation: bulb-shimmer 2.2s linear infinite;
|
|
786
800
|
}
|
|
787
801
|
@media (prefers-reduced-motion: reduce) {
|
|
788
802
|
.md .bulb-breakout.launching { animation: none; background: color-mix(in srgb, var(--accent) 18%, transparent); }
|