diff --git a/frontend/src/components/ChatInputBar.vue b/frontend/src/components/ChatInputBar.vue index 8a7555a..218961e 100644 --- a/frontend/src/components/ChatInputBar.vue +++ b/frontend/src/components/ChatInputBar.vue @@ -160,7 +160,7 @@ defineExpose({ focus, prefill })
-
+
+
- -
-
- - - -
- - + +
+ +
+ + +
+
@@ -1083,7 +957,10 @@ watchEffect(() => { background: var(--color-bg-secondary); border-radius: 16px 16px 0 0; box-shadow: 0 -8px 32px rgba(0,0,0,0.35), 0 -1px 0 rgba(255,255,255,0.05); - transition: box-shadow 0.2s; + transition: height 0.2s ease; +} +.minichat--open { + height: 500px; } .knowledge-root.graph-open .minichat { right: 500px; @@ -1092,140 +969,45 @@ watchEffect(() => { .knowledge-root.graph-open.graph-expanded .minichat { right: min(960px, 60vw); } -.minichat-messages { - max-height: 360px; - overflow-y: auto; - padding: 12px 16px; + +/* Header row (collapse / close buttons) */ +.minichat-header { display: flex; - flex-direction: column; - gap: 8px; - background: transparent; - border-bottom: 1px solid rgba(255,255,255,0.05); - border-radius: 16px 16px 0 0; + align-items: center; + justify-content: space-between; + padding: 8px 14px; + border-bottom: 1px solid rgba(255,255,255,0.06); + flex-shrink: 0; } -.minichat-welcome { +.minichat-title { + font-size: 0.82rem; + font-weight: 600; color: var(--color-muted); - font-size: 0.85rem; - text-align: center; - padding: 20px; + text-transform: uppercase; + letter-spacing: 0.06em; } -.minichat-msg { max-width: 85%; } -.msg--user { - align-self: flex-end; - background: rgba(99,102,241,0.12); - border: 1px solid rgba(99,102,241,0.2); - border-radius: 12px 12px 2px 12px; - padding: 8px 12px; - font-size: 0.88rem; -} -.msg--assistant { - align-self: flex-start; - border-left: 2px solid var(--color-primary, #6366f1); - padding: 8px 12px; - font-size: 0.88rem; - background: rgba(255,255,255,0.02); - border-radius: 0 12px 12px 2px; -} -.msg-content { line-height: 1.5; white-space: pre-wrap; } -.streaming-indicator { +.minichat-header-actions { display: flex; gap: 4px; align-items: center; - padding: 4px 0; -} -.dot { - width: 6px; height: 6px; - border-radius: 50%; - background: var(--color-primary, #6366f1); - animation: dot-pulse 1.2s ease-in-out infinite; -} -.dot:nth-child(2) { animation-delay: 0.2s; } -.dot:nth-child(3) { animation-delay: 0.4s; } -@keyframes dot-pulse { - 0%, 80%, 100% { opacity: 0.3; transform: scale(0.8); } - 40% { opacity: 1; transform: scale(1); } } +/* ChatPanel body — fills remaining space */ +.minichat-chat-panel { + flex: 1; + min-height: 0; + overflow: hidden; + display: flex; + flex-direction: column; +} +.minichat-chat-panel :deep(.chat-body) { + flex: 1; + min-height: 0; +} + +/* Standalone input row (closed / collapsed state) */ .minichat-input-row { - display: flex; - align-items: center; - gap: 8px; padding: 10px 14px; -} -/* Reuse the shared chat-input-bar pattern */ -.chat-input-bar { - flex: 1; - display: flex; - align-items: center; - gap: 0.5rem; - padding: 0.5rem 0.5rem 0.5rem 0.75rem; - background: var(--color-input-bar-bg); - border-radius: 20px; - box-shadow: 0 2px 12px var(--color-shadow); -} -.chat-input-bar textarea { - flex: 1; - resize: none; - padding: 0.4rem 0.5rem; - border: none; - border-radius: 12px; - font-family: inherit; - font-size: 0.95rem; - background: transparent; - color: var(--color-input-bar-text); - outline: none; - max-height: 120px; - overflow-y: auto; -} -.chat-input-bar textarea::placeholder { color: var(--color-input-bar-placeholder); } -.chat-input-bar textarea:disabled { opacity: 0.5; } -.btn-attach { - background: none; - border: none; - cursor: pointer; - color: var(--color-input-bar-text); - opacity: 0.6; - padding: 0.25rem; - display: flex; - align-items: center; - justify-content: center; -} -.btn-attach:hover { opacity: 1; } -.btn-attach:disabled { opacity: 0.3; cursor: default; } -.btn-mic-ptt { transition: color 0.15s, opacity 0.15s; } -.btn-mic-ptt.mic-recording { color: #ef4444 !important; opacity: 1 !important; } -.btn-mic-ptt.mic-transcribing { color: var(--color-primary); opacity: 1 !important; } -.btn-send { - width: 34px; - min-width: 34px; - height: 34px; - padding: 0; - display: flex; - align-items: center; - justify-content: center; - background: var(--color-primary); - color: #fff; - border: none; - border-radius: 50%; - cursor: pointer; - font-size: 1.1rem; flex-shrink: 0; } -.btn-send:disabled { opacity: 0.35; cursor: default; } -.btn-close-chat { - flex-shrink: 0; - background: none; - border: 1px solid var(--color-border, rgba(255,255,255,0.1)); - border-radius: 8px; - color: var(--color-muted); - cursor: pointer; - width: 30px; - height: 30px; - display: flex; - align-items: center; - justify-content: center; - font-size: 0.8rem; - transition: color 0.15s; -} -.btn-close-chat:hover { color: var(--color-text); }