/* Copyright 2026 Marimo. All rights reserved. */ import clsx from "clsx"; import { Circle } from "lucide-react"; import React from "react"; interface LoadingEllipsisProps { /** Extra Tailwind classes */ className?: string; /** Diameter of each dot in pixels */ size?: number; /** Tailwind gap utility between dots (e.g. "gap-1" or "gap-2") */ gap?: string; /** Pulse cycle length in milliseconds */ durationMs?: number; } const LoadingEllipsis: React.FC = ({ className, size = 8, gap = "gap-1", durationMs = 1200, }) => { const baseStyle: React.CSSProperties = { animationDuration: `${durationMs}ms`, }; return (
{[0, 1, 2].map((i) => ( ))}
); }; export { LoadingEllipsis };