relay-companion 0.1.68 → 0.1.69

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/overlay/inbox.html +30 -57
  2. package/package.json +1 -1
@@ -384,48 +384,34 @@
384
384
  .row-open-card { margin:11px 0 0; padding:11px 12px; }
385
385
  .row-open-card .td-card-actions { margin-top:0; }
386
386
 
387
- /* ---- Open actions: a quiet, light-built panel. Depth from light and
388
- shadow, not borders; type does the hierarchy; motion settles, never
389
- bounces. ---- */
387
+ /* ---- Open actions: a small native-feeling action menu, not buttons.
388
+ One quiet inset surface, hairline-separated text rows; hierarchy from
389
+ weight and the single accent, never from fills, gradients, icons, or
390
+ explanatory subtitles. States are flat washes. Motion settles in 160ms. ---- */
390
391
  .open-actions {
391
- margin:12px 0 2px; padding:6px; border-radius:16px;
392
- background:color-mix(in srgb, #ffffff 62%, transparent);
393
- -webkit-backdrop-filter:blur(18px) saturate(1.35);
394
- backdrop-filter:blur(18px) saturate(1.35);
395
- box-shadow:0 0.5px 0 rgba(255,255,255,.6) inset, 0 1px 2px rgba(31,26,23,.05), 0 14px 34px -20px rgba(31,26,23,.3);
396
- display:flex; flex-direction:column; gap:5px;
397
- animation:oaReveal .34s var(--settle) both;
392
+ margin:10px 0 2px; padding:3px; border-radius:9px;
393
+ background:rgba(31,26,23,.028);
394
+ display:flex; flex-direction:column;
395
+ animation:oaReveal .16s var(--settle) both;
398
396
  }
399
397
  @keyframes oaReveal {
400
- from { opacity:0; transform:translateY(-5px) scale(.985); }
398
+ from { opacity:0; transform:translateY(-2px); }
401
399
  to { opacity:1; transform:none; }
402
400
  }
403
- .oa-btn {
404
- display:flex; align-items:center; gap:11px; width:100%;
405
- padding:10px 12px; border-radius:11px; border:0; cursor:pointer;
406
- text-align:left; font-family:var(--sans); appearance:none;
407
- background:transparent;
408
- transition:transform .16s var(--settle), box-shadow .2s var(--settle), background-color .16s var(--settle);
409
- }
410
- .oa-btn:active { transform:scale(.977); }
411
- .oa-primary {
412
- background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 88%, #fff) 0%, var(--accent) 100%);
413
- color:#fff;
414
- box-shadow:inset 0 0.5px 0 rgba(255,255,255,.28), 0 7px 16px -9px color-mix(in srgb, var(--accent) 60%, transparent);
415
- }
416
- .oa-primary:hover { box-shadow:inset 0 0.5px 0 rgba(255,255,255,.28), 0 9px 20px -9px color-mix(in srgb, var(--accent) 72%, transparent); }
417
- .oa-ghost { color:var(--ink); }
418
- .oa-ghost:hover { background:rgba(31,26,23,.045); }
419
- .oa-icon {
420
- flex:0 0 auto; width:27px; height:27px; border-radius:8.5px;
421
- display:flex; align-items:center; justify-content:center;
422
- }
423
- .oa-primary .oa-icon { background:rgba(255,255,255,.16); box-shadow:inset 0 0.5px 0 rgba(255,255,255,.22); }
424
- .oa-ghost .oa-icon { background:var(--accent-soft); color:var(--accent); }
425
- .oa-text { min-width:0; display:flex; flex-direction:column; }
426
- .oa-label { font-size:12.5px; font-weight:600; letter-spacing:.01em; line-height:1.25; }
427
- .oa-sub { font-size:10.5px; line-height:1.3; margin-top:1.5px; opacity:.72; font-weight:400; }
428
- .oa-ghost .oa-sub { color:var(--muted); opacity:1; }
401
+ .oa-item {
402
+ appearance:none; border:0; background:transparent; cursor:pointer;
403
+ width:100%; text-align:left; border-radius:6px;
404
+ padding:8px 10px; font-family:var(--sans);
405
+ font-size:13px; font-weight:400; letter-spacing:-0.01em;
406
+ color:var(--ink); line-height:1.2;
407
+ transition:background-color .12s var(--settle);
408
+ }
409
+ .oa-item:hover { background:rgba(31,26,23,.055); }
410
+ .oa-item:active { background:rgba(31,26,23,.09); }
411
+ .oa-primary { font-weight:600; color:var(--accent); }
412
+ .oa-primary:hover { background:color-mix(in srgb, var(--accent) 8%, transparent); }
413
+ .oa-primary:active { background:color-mix(in srgb, var(--accent) 13%, transparent); }
414
+ .oa-sep { height:1px; margin:2px 8px; background:var(--hair-2); }
429
415
 
430
416
  /* zone label — one calm sans overline, sentence case */
431
417
  .td-label { padding:24px 16px 2px; font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:.02em; color:var(--muted-2); }
@@ -1549,30 +1535,17 @@
1549
1535
  }
1550
1536
  }
1551
1537
 
1552
- // The two open actions, as one quiet panel: primary hands the relay to the
1553
- // live session, secondary starts a fresh one. Same markup for single relays
1554
- // and whole threads (labels shift); data attributes stay stable for wiring.
1555
- const OA_ICON_CURRENT = '<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12h13M12 7l5 5-5 5"/><path d="M21 5v14"/></svg>';
1556
- const OA_ICON_FRESH = '<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 5v14M5 12h14"/></svg>';
1538
+ // The two open actions, as one small text-first menu: primary hands the
1539
+ // relay to the live session, secondary starts a fresh one. Labels carry all
1540
+ // the meaning; data attributes stay stable for wiring and tests.
1557
1541
  function openActionsHtml(id, { thread } = {}) {
1558
1542
  const cur = thread ? `data-thread-open-current="${esc(id)}"` : `data-open-current="${esc(id)}"`;
1559
1543
  const fresh = thread ? `data-thread-open-fresh="${esc(id)}"` : `data-open-fresh="${esc(id)}"`;
1560
1544
  return `
1561
- <div class="open-actions row-open-card" data-stop="1">
1562
- <button class="oa-btn oa-primary" type="button" ${cur}>
1563
- <span class="oa-icon">${OA_ICON_CURRENT}</span>
1564
- <span class="oa-text">
1565
- <span class="oa-label">Open in current chat</span>
1566
- <span class="oa-sub">${thread ? "The whole conversation, handed to the session you’re in" : "Hands it to the session you’re already in"}</span>
1567
- </span>
1568
- </button>
1569
- <button class="oa-btn oa-ghost" type="button" ${fresh}>
1570
- <span class="oa-icon">${OA_ICON_FRESH}</span>
1571
- <span class="oa-text">
1572
- <span class="oa-label">Open in new chat</span>
1573
- <span class="oa-sub">${thread ? "A fresh session, seeded with every message" : "A fresh session, fully briefed"}</span>
1574
- </span>
1575
- </button>
1545
+ <div class="open-actions row-open-card" data-stop="1" role="menu">
1546
+ <button class="oa-item oa-primary" type="button" role="menuitem" ${cur}>${thread ? "Open Thread in Current Chat" : "Open in Current Chat"}</button>
1547
+ <div class="oa-sep" role="separator"></div>
1548
+ <button class="oa-item" type="button" role="menuitem" ${fresh}>${thread ? "Open Thread in New Chat" : "Open in New Chat"}</button>
1576
1549
  </div>`;
1577
1550
  }
1578
1551
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "relay-companion",
3
- "version": "0.1.68",
3
+ "version": "0.1.69",
4
4
  "description": "Relay companion for ordinary messages, with dormant coordination features available only by explicit opt-in.",
5
5
  "type": "module",
6
6
  "bin": {