import { type ComponentProps, splitProps } from "solid-js" export interface ProgressCircleProps extends Pick, "class" | "classList"> { percentage: number size?: number strokeWidth?: number } export function ProgressCircle(props: ProgressCircleProps) { const [split, rest] = splitProps(props, ["percentage", "size", "strokeWidth", "class", "classList"]) const size = () => split.size || 18 const r = 7 return ( { const pct = Math.min(100, Math.max(0, split.percentage)) const angle = (pct / 100) * 2 * Math.PI - Math.PI / 2 const x = 9 + r * Math.cos(angle) const y = 9 + r * Math.sin(angle) const largeArc = pct > 50 ? 1 : 0 return `M9 2A${r} ${r} 0 ${largeArc} 1 ${x} ${y}L9 9Z` })()} fill="currentColor" /> ) }