@agentprojectcontext/apx 1.40.1 → 1.41.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentprojectcontext/apx",
3
- "version": "1.40.1",
3
+ "version": "1.41.0",
4
4
  "description": "APX — unified CLI + daemon for the Agent Project Context (APC) standard.",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -210,10 +210,17 @@
210
210
 
211
211
  function initialCaption(shortcut) {
212
212
  const sc = formatShortcut(shortcut);
213
+ // Empty-idle state has no other affordance to dismiss the floating window
214
+ // (the session bar's "Cerrar" only shows once a conversation exists, and
215
+ // the window doesn't auto-hide on blur). Pair the hint with a translucent
216
+ // "Cerrar ventana" pill in the same glass language so the user can always
217
+ // close it without hunting for the tray icon.
213
218
  $captionSlot.innerHTML = `
214
219
  <div class="caption">Mantené <span class="kbd">${sc}</span> para hablar
215
220
  <span class="kbd">⌥ /</span> para escribir</div>
221
+ <button class="cap-pill" id="btn-close-idle" title="Cerrar ventana">${ICON.close()}<span>Cerrar ventana</span></button>
216
222
  `;
223
+ $captionSlot.querySelector("#btn-close-idle")?.addEventListener("click", closeWindow);
217
224
  }
218
225
 
219
226
  // ── Render: capsule center + actions vary by mode ────────────────────────
@@ -193,6 +193,27 @@ button { font-family: inherit; }
193
193
  }
194
194
  [data-theme="dark"] .kbd { color: color-mix(in oklch, var(--accent) 60%, white); }
195
195
 
196
+ /* Stack the hint + the close pill, centered, in the empty-idle state.
197
+ render() toggles this slot's display between "" (→ flex) and "none". */
198
+ #caption-slot { display: flex; flex-direction: column; align-items: center; gap: 7px; }
199
+
200
+ /* Translucent "Cerrar ventana" pill — same glass language as .caption so the
201
+ empty-idle state always has a way to dismiss the window. */
202
+ .cap-pill {
203
+ display: inline-flex; align-items: center; gap: 6px; cursor: pointer;
204
+ font: inherit; font-size: 11px; font-weight: 600; color: rgba(255,255,255,.92);
205
+ padding: 5px 12px; border-radius: 9px;
206
+ background: rgba(20,22,32,.28); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
207
+ border: 1px solid rgba(255,255,255,.14);
208
+ text-shadow: 0 0.5px 1.5px rgba(0,0,0,.3);
209
+ transition: transform .14s ease, background .15s ease;
210
+ animation: captionIn .4s ease both;
211
+ }
212
+ .cap-pill svg { width: 13px; height: 13px; opacity: .9; }
213
+ .cap-pill:hover { transform: translateY(-1px); background: rgba(20,22,32,.42); }
214
+ .cap-pill:active { transform: scale(.96); }
215
+ [data-theme="dark"] .cap-pill { background: rgba(0,0,0,.34); }
216
+
196
217
  /* ============================================================
197
218
  Conversation card
198
219
  ============================================================ */