feat: add admin permissions voice input analytics and feedback

This commit is contained in:
2026-08-11 17:17:59 +08:00
parent 3b9215cc3d
commit fd2da26d10
46 changed files with 1836 additions and 192 deletions

View File

@@ -1506,7 +1506,7 @@ textarea:focus-visible {
position: relative;
z-index: 6;
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
grid-template-columns: minmax(0, 1fr) auto auto;
align-items: end;
gap: 10px;
padding: 12px 14px max(12px, env(safe-area-inset-bottom));
@@ -1539,7 +1539,8 @@ textarea:focus-visible {
.chat-composer textarea::placeholder { color: var(--chat-weak); }
.composer-send,
.composer-stop {
.composer-stop,
.composer-voice {
min-width: 78px;
min-height: 50px;
display: inline-flex;
@@ -1554,6 +1555,36 @@ textarea:focus-visible {
font-weight: 650;
}
.composer-voice {
min-width: 50px;
padding: 0 13px;
border: 1px solid var(--chat-control-border);
background: #ffffff;
color: var(--chat-brand-deep);
}
.composer-voice:disabled { cursor: not-allowed; opacity: 0.55; }
.composer-voice.cancel { color: var(--chat-danger); }
.composer-voice.finish { border-color: var(--chat-brand); background: var(--chat-brand); color: #ffffff; }
.voice-recording-panel {
min-height: 50px;
display: flex;
align-items: center;
gap: 9px;
padding: 0 15px;
border: 1px solid rgba(20, 148, 119, 0.34);
border-radius: var(--chat-radius-control);
background: rgba(20, 148, 119, 0.07);
color: var(--chat-brand-deep);
}
.voice-recording-panel span:last-child { color: var(--chat-weak); font-size: 12px; }
.voice-pulse { width: 9px; height: 9px; border-radius: 50%; background: var(--chat-danger); animation: voice-pulse 1.1s ease-in-out infinite; }
.voice-input-error { grid-column: 1 / -1; margin: -2px 3px 0; color: var(--chat-danger); font-size: 12px; }
@keyframes voice-pulse { 50% { opacity: 0.35; transform: scale(0.78); } }
.composer-send { background: var(--chat-brand); }
.composer-stop { background: var(--chat-danger); }
@@ -1563,6 +1594,14 @@ textarea:focus-visible {
color: #93a39d;
}
.message-feedback-button { margin-top: 8px; display: inline-flex; align-items: center; gap: 5px; padding: 4px 8px; border: 0; border-radius: 7px; background: transparent; color: var(--chat-weak); font-size: 12px; }
.message-feedback-button:hover { background: rgba(20, 148, 119, 0.08); color: var(--chat-brand-deep); }
.feedback-dialog p { margin: 0 0 12px; color: var(--chat-muted); line-height: 1.65; }
.feedback-dialog textarea { width: 100%; resize: vertical; padding: 12px; border: 1px solid var(--chat-control-border); border-radius: 10px; font: inherit; }
.feedback-dialog-footer { display: flex; align-items: center; justify-content: space-between; margin-top: 10px; color: var(--chat-weak); font-size: 12px; }
.feedback-dialog-footer button { min-height: 38px; padding: 0 18px; border: 0; border-radius: 9px; background: var(--chat-brand); color: white; font-weight: 650; }
.feedback-dialog-footer button:disabled { opacity: 0.5; }
.history-mask {
position: absolute;
inset: 0;