-
-
-
+
+
-
-
@@ -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); }