@agentforge-io/chat-sdk 2.5.2 → 2.5.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.
Files changed (2) hide show
  1. package/dist/react.js +37 -27
  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,16 +1380,14 @@ 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;
1372
- -items;
1373
- center ` is critical: with `;
1374
- flex - end ` the smaller
1375
- * items glue to the bottom of the row and the column they sit in
1376
- * looks unbalanced circles read as ovals because the bounding box
1377
- * isn't square anymore. Centering keeps every item axis-aligned and
1378
- * the 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;
1388
+ ` so the small avatars share the active one's
1389
+ * vertical midline that alignment is what lets the typing dots
1390
+ * land at the same baseline as the group on the next column. */
1379
1391
  .af-widget-root.af-variant-bare .af-msg-avatar-stack {
1380
1392
  width: auto;
1381
1393
  height: 26px;
@@ -1385,19 +1397,17 @@ flex - end ` the smaller
1385
1397
  display: flex;
1386
1398
  flex-direction: row;
1387
1399
  align-items: center;
1388
- /* Slight padding-right so the rightmost stacked item doesn't sit
1389
- * flush against the bubble bevel. */
1390
- padding-right: 4px;
1400
+ /* Tight padding-right keeps the row hugging the message column —
1401
+ * no float of trailing whitespace between the group and the bubble. */
1402
+ padding-right: 2px;
1391
1403
  }
1392
1404
  .af-widget-root.af-variant-bare .af-msg-avatar-stack-item {
1393
1405
  /* Hard-pin the aspect ratio so the box never deforms into an
1394
- * ellipse when the parent flexes — `;
1395
- aspect - ratio;
1396
- 1 ` plus explicit
1406
+ * ellipse when the parent flexes — aspect-ratio:1 plus explicit
1397
1407
  * width AND min-width guarantees a square box on every flex child. */
1398
- width: 18px;
1399
- min-width: 18px;
1400
- height: 18px;
1408
+ width: 14px;
1409
+ min-width: 14px;
1410
+ height: 14px;
1401
1411
  aspect-ratio: 1;
1402
1412
  border-radius: 50%;
1403
1413
  overflow: hidden;
@@ -1405,18 +1415,18 @@ aspect - ratio;
1405
1415
  align-items: center;
1406
1416
  justify-content: center;
1407
1417
  flex-shrink: 0;
1408
- /* 2px ring matching the bubble background so overlapping reads
1409
- * as distinct circles, not a continuous blob. */
1410
- box-shadow: 0 0 0 2px var(--af-bg, #ffffff);
1411
- /* Overlap with the prior sibling. */
1412
- margin-left: -6px;
1418
+ /* No ring the operator asked for a borderless, integrated look.
1419
+ * Avatars overlap by half-radius so the group reads as a cluster,
1420
+ * not a stack of separate buttons. */
1421
+ margin-left: -7px;
1413
1422
  }
1414
1423
  .af-widget-root.af-variant-bare .af-msg-avatar-stack-item:first-child {
1415
1424
  margin-left: 0;
1416
1425
  }
1417
1426
  .af-widget-root.af-variant-bare .af-msg-avatar-stack-active {
1418
- /* The active speaker is rendered full-size so it visually anchors
1419
- * the chain. */
1427
+ /* The active speaker matches the regular avatar size so the chain
1428
+ * row sits at the same height as a single-speaker row — the
1429
+ * conversation column stays visually aligned across all bubbles. */
1420
1430
  width: 26px;
1421
1431
  min-width: 26px;
1422
1432
  height: 26px;
@@ -1429,7 +1439,7 @@ aspect - ratio;
1429
1439
  }
1430
1440
  .af-widget-root.af-variant-bare .af-msg-avatar-stack-fallback {
1431
1441
  color: #fff;
1432
- font-size: 9.5px;
1442
+ font-size: 8px;
1433
1443
  font-weight: 600;
1434
1444
  background-color: var(--af-primary, #8b5cf6);
1435
1445
  line-height: 1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentforge-io/chat-sdk",
3
- "version": "2.5.2",
3
+ "version": "2.5.4",
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",