feat(npcs): inspect cards, Show overlay, and optional external link

Clicking an NPC tile opens description cards (multi-select accordion); Show puts avatars on screen. Optional URL opens a webview tab. Avatar pan in the editor commits on pointer up.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Ivan Fontosh
2026-08-19 10:42:57 +08:00
parent 1a9f0f2557
commit 0f4bb76b41
35 changed files with 1189 additions and 259 deletions
+81 -1
View File
@@ -201,10 +201,21 @@
.avatarPick {
display: grid;
gap: 10px;
justify-items: start;
justify-items: center;
width: 100%;
}
.avatarPickBusy {
opacity: 0.65;
pointer-events: none;
}
.avatarPickDrop {
position: relative;
}
.avatarPreview {
position: relative;
width: 120px;
height: 120px;
border-radius: 14px;
@@ -213,6 +224,75 @@
background: #09090b;
}
.avatarPreviewPick {
cursor: pointer;
}
.avatarPreviewDrop {
border-color: var(--accent, #a78bfa);
border-style: dashed;
background: var(--accent-fill-soft, rgba(167, 139, 250, 0.16));
}
.avatarEmptyHint {
position: absolute;
inset: 10px;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
font-size: 11px;
font-weight: 700;
line-height: 1.35;
color: var(--text2);
pointer-events: none;
user-select: none;
}
.avatarEdit {
position: absolute;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
background: rgba(0, 0, 0, 0.5);
opacity: 0;
transition: opacity 0.15s ease;
pointer-events: none;
z-index: 1;
}
.avatarPick [data-token-circle]:hover .avatarEdit,
.avatarPreview:hover .avatarEdit {
opacity: 1;
}
.avatarPick [data-token-circle]:active .avatarEdit {
opacity: 0;
}
.avatarEditBtn {
pointer-events: auto;
display: grid;
place-items: center;
width: 40px;
height: 40px;
border: none;
border-radius: 50%;
background: rgba(24, 24, 27, 0.88);
color: #fafafa;
cursor: pointer;
}
.avatarEditBtn:hover {
background: rgba(39, 39, 42, 0.96);
}
.avatarEditBtn:disabled {
opacity: 0.5;
cursor: default;
}
.avatarPreviewImg {
width: 100%;
height: 100%;