@agentforge-io/chat-sdk 2.5.3 → 2.5.5

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.
Files changed (2) hide show
  1. package/dist/react.js +35 -21
  2. package/package.json +1 -1
package/dist/react.js CHANGED
@@ -1309,6 +1309,20 @@ const WIDGET_CSS = `
1309
1309
  gap: 8px;
1310
1310
  max-width: 92%;
1311
1311
  }
1312
+ /* When the row hosts a delegation avatar STACK, center the avatar
1313
+ * column against the bubble AND shrink the gap. The flex-end
1314
+ * default lines the single 26px avatar with the bubble's last text
1315
+ * line (iMessage feel) but a stack with a smaller satellite trail
1316
+ * reads disconnected when anchored to the bottom — the satellites
1317
+ * float in space because the active avatar's edge is the only
1318
+ * thing meeting the bubble. Centering tucks the entire group
1319
+ * against the bubble's vertical midline so the cluster reads as
1320
+ * one composite glyph; the tighter gap (8 → 6) pulls the message
1321
+ * column closer to the cluster. */
1322
+ .af-widget-root.af-variant-bare .af-msg-row:has(.af-msg-avatar-stack) {
1323
+ align-items: center;
1324
+ gap: 6px;
1325
+ }
1312
1326
  .af-widget-root.af-variant-bare .af-msg-row-assistant {
1313
1327
  align-self: flex-start;
1314
1328
  }
@@ -1366,13 +1380,13 @@ const WIDGET_CSS = `
1366
1380
  * inline color and made every agent avatar look the same. */
1367
1381
  background-color: var(--af-primary, #8b5cf6);
1368
1382
  }
1369
- /* Delegation-chain avatar stack. Override the default 26x26 size so
1370
- * the row can host multiple overlapping items without clipping.
1371
- * align-items:center is critical: with flex-end the smaller items
1372
- * glue to the bottom of the row and the column they sit in looks
1373
- * unbalanced circles read as ovals because the bounding box isn't
1374
- * square anymore. Centering keeps every item axis-aligned and the
1375
- * ring + size cap together force a 1:1 aspect ratio. */
1383
+ /* Delegation-chain avatar stack. Borderless overlap so the group
1384
+ * reads as one composite glyph rather than three orphan circles.
1385
+ * Active speaker sits at the regular bubble-avatar size; upstream
1386
+ * delegators are 14px and overlap tightly behind it. align-items
1387
+ * stays on center so the small avatars share the active one's
1388
+ * vertical midline that alignment is what lets the typing dots
1389
+ * land at the same baseline as the group on the next column. */
1376
1390
  .af-widget-root.af-variant-bare .af-msg-avatar-stack {
1377
1391
  width: auto;
1378
1392
  height: 26px;
@@ -1382,17 +1396,17 @@ const WIDGET_CSS = `
1382
1396
  display: flex;
1383
1397
  flex-direction: row;
1384
1398
  align-items: center;
1385
- /* Slight padding-right so the rightmost stacked item doesn't sit
1386
- * flush against the bubble bevel. */
1387
- padding-right: 4px;
1399
+ /* Tight padding-right keeps the row hugging the message column —
1400
+ * no float of trailing whitespace between the group and the bubble. */
1401
+ padding-right: 2px;
1388
1402
  }
1389
1403
  .af-widget-root.af-variant-bare .af-msg-avatar-stack-item {
1390
1404
  /* Hard-pin the aspect ratio so the box never deforms into an
1391
1405
  * ellipse when the parent flexes — aspect-ratio:1 plus explicit
1392
1406
  * width AND min-width guarantees a square box on every flex child. */
1393
- width: 18px;
1394
- min-width: 18px;
1395
- height: 18px;
1407
+ width: 14px;
1408
+ min-width: 14px;
1409
+ height: 14px;
1396
1410
  aspect-ratio: 1;
1397
1411
  border-radius: 50%;
1398
1412
  overflow: hidden;
@@ -1400,18 +1414,18 @@ const WIDGET_CSS = `
1400
1414
  align-items: center;
1401
1415
  justify-content: center;
1402
1416
  flex-shrink: 0;
1403
- /* 2px ring matching the bubble background so overlapping reads
1404
- * as distinct circles, not a continuous blob. */
1405
- box-shadow: 0 0 0 2px var(--af-bg, #ffffff);
1406
- /* Overlap with the prior sibling. */
1407
- margin-left: -6px;
1417
+ /* No ring the operator asked for a borderless, integrated look.
1418
+ * Avatars overlap by half-radius so the group reads as a cluster,
1419
+ * not a stack of separate buttons. */
1420
+ margin-left: -7px;
1408
1421
  }
1409
1422
  .af-widget-root.af-variant-bare .af-msg-avatar-stack-item:first-child {
1410
1423
  margin-left: 0;
1411
1424
  }
1412
1425
  .af-widget-root.af-variant-bare .af-msg-avatar-stack-active {
1413
- /* The active speaker is rendered full-size so it visually anchors
1414
- * the chain. */
1426
+ /* The active speaker matches the regular avatar size so the chain
1427
+ * row sits at the same height as a single-speaker row — the
1428
+ * conversation column stays visually aligned across all bubbles. */
1415
1429
  width: 26px;
1416
1430
  min-width: 26px;
1417
1431
  height: 26px;
@@ -1424,7 +1438,7 @@ const WIDGET_CSS = `
1424
1438
  }
1425
1439
  .af-widget-root.af-variant-bare .af-msg-avatar-stack-fallback {
1426
1440
  color: #fff;
1427
- font-size: 9.5px;
1441
+ font-size: 8px;
1428
1442
  font-weight: 600;
1429
1443
  background-color: var(--af-primary, #8b5cf6);
1430
1444
  line-height: 1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentforge-io/chat-sdk",
3
- "version": "2.5.3",
3
+ "version": "2.5.5",
4
4
  "description": "Framework-free chat session SDK for AgentForge public chat tokens. Headless — no DOM. Drop into any frontend (React, Vue, Svelte, vanilla) and listen for events.",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",