From 8b281c7febf1683606f0f0f65d23c0977418afbe Mon Sep 17 00:00:00 2001 From: asepharyana Date: Fri, 14 Aug 2026 11:02:52 +0700 Subject: [PATCH] =?UTF-8?q?refactor(frontend):=20finish=20design-system=20?= =?UTF-8?q?migration=20=E2=80=94=20chatbot,=20a11y,=20lint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Rewrite chatbot container + panel to new surface/signal/ink tokens (was still on dead glass/text-primary tokens -> wrong colors) - loading-skeleton: glass -> surface-2 - Fix a11y: SVG charts role=img+aria-label, audio aria-label, message-entry as real ))} @@ -85,15 +85,15 @@ export function ChatPanel({ inputRef: externalInputRef }: ChatPanelProps) { className={`flex flex-col ${msg.role === "user" ? "items-end" : "items-start"}`} >
{msg.content}
- + {formatTime(msg.timestamp)} @@ -101,18 +101,18 @@ export function ChatPanel({ inputRef: externalInputRef }: ChatPanelProps) { )} {isTyping && (
-
+
@@ -124,13 +124,13 @@ export function ChatPanel({ inputRef: externalInputRef }: ChatPanelProps) { {/* Input bar */}
@@ -138,22 +138,22 @@ export function ChatPanel({ inputRef: externalInputRef }: ChatPanelProps) { )}
diff --git a/services/frontend/src/components/chatbot/chatbot-container.tsx b/services/frontend/src/components/chatbot/chatbot-container.tsx index 343d056..c798b4b 100644 --- a/services/frontend/src/components/chatbot/chatbot-container.tsx +++ b/services/frontend/src/components/chatbot/chatbot-container.tsx @@ -47,50 +47,49 @@ export function ChatbotContainer() { onMouseUp={handleMouseUp} onMouseLeave={handleMouseUp} > - {/* Main chatbot bubble — minimized FAB opens the full chat directly */}
{minimized ? ( ) : ( -
+
{/* Drag handle + controls */} {/* biome-ignore lint/a11y/noStaticElementInteractions: drag handle — mouse-only gesture, keyboard users use the buttons in this header */}
- - + + Chatbot
{/* Chat panel — always open when bubble is expanded */} -
+
diff --git a/services/frontend/src/components/messages/message-entry.tsx b/services/frontend/src/components/messages/message-entry.tsx index a84206b..614546d 100644 --- a/services/frontend/src/components/messages/message-entry.tsx +++ b/services/frontend/src/components/messages/message-entry.tsx @@ -39,11 +39,12 @@ export function MessageEntry({ const status = msg.ai_status ?? null; return ( -
-
+ ); } diff --git a/services/frontend/src/components/primitives/tooltip.tsx b/services/frontend/src/components/primitives/tooltip.tsx index 78c5106..e275755 100644 --- a/services/frontend/src/components/primitives/tooltip.tsx +++ b/services/frontend/src/components/primitives/tooltip.tsx @@ -25,6 +25,7 @@ export function Tooltip({ }: TooltipProps) { const [show, setShow] = useState(false); return ( + // biome-ignore lint/a11y/noStaticElementInteractions: tooltip wrapper — reveals on hover AND focus (keyboard-accessible via focus handlers above) setShow(true)} diff --git a/services/frontend/src/components/shared/loading-skeleton.tsx b/services/frontend/src/components/shared/loading-skeleton.tsx index 81019ec..f162090 100644 --- a/services/frontend/src/components/shared/loading-skeleton.tsx +++ b/services/frontend/src/components/shared/loading-skeleton.tsx @@ -21,7 +21,7 @@ export function LoadingSkeleton({
+ Speaker orbs {orbs.map((o, i) => ( + Signal dots {dots.map((d, i) => (