- 前端文件移入 frontend/ 子目录 - 新建 backend/ 目录(待开发) - 新增 CLAUDE.md、claudehd.md、EXTERNAL_SERVICES.md Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
36 lines
1.5 KiB
TypeScript
36 lines
1.5 KiB
TypeScript
export function GeminiTypingIndicator() {
|
|
return (
|
|
<div className="flex gap-3 mb-6" aria-live="polite" aria-label="Gemini is thinking">
|
|
{/* Gem icon placeholder */}
|
|
<div className="w-[18px] h-[18px] flex-shrink-0 mt-0.5">
|
|
<svg width="18" height="18" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
|
|
<defs>
|
|
<linearGradient id="gemGradientTyping" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
<stop offset="0%" stopColor="#4285f4" />
|
|
<stop offset="100%" stopColor="#a855f7" />
|
|
</linearGradient>
|
|
</defs>
|
|
<path
|
|
d="M14 2C14 2 16.5 9.5 20 13C23.5 16.5 26 14 26 14C26 14 23.5 16.5 20 20C16.5 23.5 14 26 14 26C14 26 11.5 23.5 8 20C4.5 16.5 2 14 2 14C2 14 4.5 11.5 8 8C11.5 4.5 14 2 14 2Z"
|
|
fill="url(#gemGradientTyping)"
|
|
/>
|
|
</svg>
|
|
</div>
|
|
<div className="flex items-center gap-1 pt-1">
|
|
<span
|
|
className="w-2 h-2 rounded-full bg-[#4285f4] animate-bounce"
|
|
style={{ animationDelay: "0ms", animationDuration: "900ms" }}
|
|
/>
|
|
<span
|
|
className="w-2 h-2 rounded-full bg-[#7c55f0] animate-bounce"
|
|
style={{ animationDelay: "150ms", animationDuration: "900ms" }}
|
|
/>
|
|
<span
|
|
className="w-2 h-2 rounded-full bg-[#a855f7] animate-bounce"
|
|
style={{ animationDelay: "300ms", animationDuration: "900ms" }}
|
|
/>
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|