refactor(frontend): finish design-system migration — chatbot, a11y, lint

- 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 <button>, tooltip biome-ignore (intentional)
- Type messages/page initialPage (noImplicitAny)
- tsc clean, next build green, biome 0 errors
This commit is contained in:
asepharyana
2026-08-14 11:02:52 +07:00
parent 5bbf75a65b
commit 8b281c7feb
10 changed files with 61 additions and 40 deletions
@@ -21,7 +21,15 @@ export function Sparkline({
}: SparklineProps) {
const id = useId().replace(/:/g, "");
if (data.length < 2)
return <svg width={width} height={height} className={className} />;
return (
<svg
width={width}
height={height}
className={className}
role="img"
aria-label="No data"
/>
);
const min = Math.min(...data);
const max = Math.max(...data);
@@ -46,6 +54,8 @@ export function Sparkline({
viewBox={`0 0 ${width} ${height}`}
className={className}
preserveAspectRatio="none"
role="img"
aria-label="Trend sparkline"
>
<defs>
<linearGradient id={`spark-${id}`} x1="0" y1="0" x2="0" y2="1">