@poodle64/librarian 2026.9.16 → 2026.9.17

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.
@@ -353,13 +353,21 @@
353
353
  align-self: flex-end;
354
354
  }
355
355
 
356
+ /* The reader's own words carry the consuming app's hue, the way every chat
357
+ a person already uses colours THEIR side and leaves the other party
358
+ neutral. It is an identity mark, not decoration: scanning back for "what
359
+ did I ask" is a colour search, not a reading task. The hue is whatever
360
+ the host set --ds-color-primary to, so no consumer is named here.
361
+ It stays on the SHORT side of the transcript on purpose — a question is
362
+ a line or two, an answer is paragraphs, so filling the question is an
363
+ accent and filling the answer would be a wall. */
356
364
  .ds-lib-bubble {
357
365
  max-width: 85%;
358
- border: 1px solid var(--ds-color-border);
366
+ border: 1px solid transparent;
359
367
  border-radius: var(--ds-radius-xl);
360
- background: var(--ds-color-surface-3);
368
+ background: var(--ds-color-primary);
361
369
  padding: 0.625rem 1rem;
362
- color: var(--ds-color-foreground);
370
+ color: var(--ds-color-primary-foreground);
363
371
  font-size: 1rem;
364
372
  line-height: 1.5rem;
365
373
  overflow-wrap: break-word;
@@ -381,6 +389,7 @@
381
389
  flex-direction: column;
382
390
  gap: 0.75rem;
383
391
  border: 1px solid var(--ds-color-border);
392
+ border-inline-start: 3px solid var(--ds-color-primary);
384
393
  border-radius: var(--ds-radius-xl);
385
394
  background: var(--ds-color-surface-2);
386
395
  padding: 0.875rem 1rem 0.75rem;
@@ -400,8 +409,13 @@
400
409
  align-items: center;
401
410
  justify-content: center;
402
411
  border-radius: var(--ds-radius-full);
403
- background: color-mix(in oklab, var(--ds-color-primary) 18%, transparent);
404
- color: var(--ds-color-foreground);
412
+ /* Opaque, never a translucent tint. An 18% wash of a dark primary over a
413
+ dark surface has almost no luminance separation, so the initial fell
414
+ under the 3:1 floor for a non-text graphic and read as a smudge —
415
+ measured 2.55:1 on a dark-mode host. A solid fill carries the hue AND
416
+ the contrast. */
417
+ background: var(--ds-color-primary);
418
+ color: var(--ds-color-primary-foreground);
405
419
  font-size: var(--ds-text-2xs);
406
420
  font-weight: 600;
407
421
  text-transform: uppercase;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@poodle64/librarian",
3
- "version": "2026.9.16",
3
+ "version": "2026.9.17",
4
4
  "description": "An agent's conversation surface as a consumable Svelte 5 package: the stream client, transcript state and self-styling chat components (transcript, composer, markdown) every household app renders instead of rebuilding, speaking as whichever persona the app names.",
5
5
  "type": "module",
6
6
  "license": "MIT",