Changeset 0.23.0 (#153)

This commit is contained in:
2026-03-05 22:40:26 +00:00
parent 40d9834f64
commit 2fc620e1ac
62 changed files with 6214 additions and 362 deletions

View File

@@ -22,8 +22,8 @@
gap: 2px;
padding: 2px 8px;
border-radius: 12px;
background: var(--bg-secondary, #f0f0f0);
border: 1px solid var(--border-color, #ddd);
background: var(--bg-raised);
border: 1px solid var(--border);
font-size: 0.75rem;
white-space: nowrap;
cursor: default;
@@ -31,7 +31,7 @@
}
.ch-model-pill.ch-model-default {
background: var(--accent-bg, #e8f0fe);
border-color: var(--accent-color, #4a8af4);
border-color: var(--accent);
}
.ch-model-pill-name {
cursor: pointer;
@@ -45,7 +45,7 @@
border: none;
cursor: pointer;
font-size: 0.65rem;
color: var(--text-secondary, #888);
color: var(--text-3);
padding: 0 2px;
line-height: 1;
opacity: 0.6;
@@ -58,18 +58,18 @@
.ch-model-add-btn {
background: none;
border: 1px dashed var(--border-color, #ccc);
border: 1px dashed var(--border);
border-radius: 12px;
padding: 2px 8px;
font-size: 0.75rem;
cursor: pointer;
color: var(--text-secondary, #888);
color: var(--text-3);
white-space: nowrap;
transition: color 0.15s, border-color 0.15s;
}
.ch-model-add-btn:hover {
color: var(--text-primary, #333);
border-color: var(--text-primary, #333);
color: var(--text);
border-color: var(--text);
}
/* ── Add Model Dialog ────────────────────── */
@@ -84,7 +84,7 @@
z-index: 1100;
}
.ch-model-add-inner {
background: var(--bg-primary, #fff);
background: var(--bg-surface);
border-radius: 12px;
padding: 24px;
min-width: 320px;
@@ -99,7 +99,7 @@
display: block;
margin-bottom: 12px;
font-size: 0.85rem;
color: var(--text-secondary, #666);
color: var(--text-3);
}
.ch-model-add-inner select,
.ch-model-add-inner input[type="text"] {
@@ -107,11 +107,11 @@
width: 100%;
margin-top: 4px;
padding: 8px;
border: 1px solid var(--border-color, #ddd);
border: 1px solid var(--border);
border-radius: 6px;
font-size: 0.9rem;
background: var(--bg-primary, #fff);
color: var(--text-primary, #333);
background: var(--bg-surface);
color: var(--text);
box-sizing: border-box;
}
.ch-model-add-actions {
@@ -126,40 +126,72 @@
.mention-ac {
position: fixed;
z-index: 1050;
background: var(--bg-primary, #fff);
border: 1px solid var(--border-color, #ddd);
background: var(--bg-raised);
border: 1px solid var(--border-light);
border-radius: 8px;
box-shadow: 0 4px 16px rgba(0,0,0,0.15);
max-height: 200px;
box-shadow: 0 4px 16px rgba(0,0,0,0.3);
max-height: 260px;
overflow-y: auto;
padding: 4px 0;
}
.mention-ac-item {
display: flex;
align-items: center;
justify-content: space-between;
padding: 8px 12px;
cursor: pointer;
gap: 12px;
transition: background 0.1s;
}
.mention-ac-item:hover,
.mention-ac-item.mention-ac-active {
background: var(--bg-secondary, #f5f5f5);
background: var(--bg-hover);
}
.mention-ac-name {
font-weight: 500;
font-size: 0.85rem;
}
.mention-ac-info {
display: flex;
flex-direction: column;
flex: 1;
min-width: 0;
}
.mention-ac-handle {
font-size: 0.72rem;
color: var(--accent, #6c9fff);
font-family: var(--font-mono, monospace);
opacity: 0.8;
}
.mention-ac-model {
font-size: 0.75rem;
color: var(--text-secondary, #999);
color: var(--text-3);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 160px;
}
/* ── Autocomplete avatars (v0.23.0) ──────────── */
.mention-ac-avatar {
width: 22px; height: 22px; border-radius: 50%; flex-shrink: 0;
object-fit: cover;
}
.mention-ac-avatar-fallback {
display: inline-flex; align-items: center; justify-content: center;
background: var(--bg-hover); font-size: 12px; line-height: 1;
}
.mention-ac-item {
display: flex;
align-items: center;
padding: 8px 12px;
cursor: pointer;
gap: 8px;
transition: background 0.1s;
}
/* ── @mention pills in messages (v0.23.0) ──── */
.mention-pill {
display: inline;
color: var(--accent, #6c9fff);
font-weight: 600;
background: var(--accent-dim, rgba(108,159,255,0.12));
padding: 1px 5px;
border-radius: 4px;
font-size: 0.92em;
}
/* ── Model Attribution (multi-model messages) ─ */
.msg-model-label {
@@ -168,8 +200,8 @@
font-weight: 600;
padding: 1px 6px;
border-radius: 4px;
background: var(--bg-secondary, #f0f0f0);
color: var(--text-secondary, #666);
background: var(--bg-raised);
color: var(--text-3);
margin-left: 6px;
vertical-align: middle;
}
@@ -181,7 +213,7 @@
gap: 8px;
padding: 12px 0 4px;
font-size: 0.8rem;
color: var(--text-secondary, #888);
color: var(--text-3);
font-weight: 500;
}
.model-stream-divider::before,
@@ -189,7 +221,7 @@
content: '';
flex: 1;
height: 1px;
background: var(--border-color, #eee);
background: var(--border);
}
/* ── Mobile ──────────────────────────────── */

View File

@@ -144,6 +144,8 @@
border: 1px solid transparent;
border-radius: 16px 16px 4px 16px;
padding: 10px 14px;
flex: initial;
max-width: 85%;
}
.message.user .msg-head { flex-direction: row-reverse; }
.message.user .msg-role { color: var(--accent); }
@@ -594,3 +596,11 @@
}
.lightbox-close:hover { background: rgba(255,255,255,0.3); }
/* ── Chat type indicators (v0.23.0) ────────── */
.chat-type-icon { font-size: 11px; opacity: 0.7; }
.mono-input { font-family: var(--font-mono, 'JetBrains Mono', monospace) !important; font-size: 12px !important; }
/* Handle hints in dropdowns and pickers */
.item-handle { font-size: 10px; color: var(--accent); font-family: var(--font-mono, monospace); margin-left: 6px; opacity: 0.75; }
.group-persona-handle { font-size: 10px; color: var(--accent); font-family: var(--font-mono, monospace); margin-left: 4px; opacity: 0.75; }

View File

@@ -445,3 +445,16 @@
@keyframes confirm-in { from { opacity: 0; transform: scale(0.95); } }
@keyframes fade-in { from { opacity: 0; } }
/* ── Group Chat persona picker (v0.23.0) ────── */
.group-persona-item {
display: flex; align-items: center; gap: 8px;
padding: 6px 10px; border-radius: var(--radius);
cursor: pointer; font-size: 13px;
transition: background 0.1s;
}
.group-persona-item:hover { background: var(--bg-hover); }
.group-persona-item input[type="checkbox"] { accent-color: var(--accent); flex-shrink: 0; }
.group-persona-name { flex: 1; color: var(--text); font-weight: 500; }
.group-persona-model { font-size: 11px; color: var(--text-3); font-family: var(--font-mono); }
.chain-typing-name { font-size: 11px; font-weight: 600; color: var(--accent); margin-right: 6px; }