// 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 (