export interface CflSliderProps { value: number; onChange: (v: number) => void; /** Largest stable step, when known, to show the resulting dt */ dtMax?: number; min?: number; max?: number; disabled?: boolean; } /** * The time step as a fraction of the stability limit. Past 1 the explicit * scheme amplifies its shortest waves every step, and the run blows up within * a few dozen steps; the slider colours that region so it is not a surprise. */ export function CflSlider({ value, onChange, dtMax, min = 0.5, max = 1.2, disabled, }: CflSliderProps) { const unstable = value > 1; const pct = ((1 - min) / (max - min)) * 100; return (