// StateDot: session state indicator (figma nodes 14:3303/3305/3312, 122:9182).
// done/warning/error: 10x10 halo (same color, 10% opacity) around a 6x6 solid
// core. ongoing: 10x10 ring, 1px inside stroke, color fading out along a
// linear gradient, spinning. Colors resolve through --dsw-* tokens only.
import { useId } from 'react'
import clsx from 'clsx'
import css from './StateDot.module.css'
/** Four-color session state semantic (green done / amber approval-waiting / blue running ring / red error). */
export type StateDotState = 'done' | 'warning' | 'ongoing' | 'error'
/**
* Render a state dot.
* @param props.state - which of the four states to show.
* @param props.size - outer diameter in px (default 10, the figma size).
* @param props.className - extra class for layout placement.
* @returns the dot element (aria-hidden; pair with text for accessibility).
*/
export function StateDot({ state, size = 10, className }: {
state: StateDotState
size?: number
className?: string
}) {
const gradientId = useId()
if (state === 'ongoing') {
return (
)
}
return (
)
}