import React from 'react'; type RangeStyle = React.CSSProperties & { '--range-progress': string }; export const getRangeStyle = (value: number, min: number, max: number): RangeStyle => { const progress = Math.min(100, Math.max(0, ((value - min) / (max - min)) * 100)); return { '--range-progress': `${progress}%` }; }; interface RangeSliderProps { label: string; value: number; min: number; max: number; step?: number; valueSuffix?: string; formatValue?: (value: number) => string; onChange: (value: number) => void; } const RangeSlider: React.FC = ({ label, value, min, max, step = 1, valueSuffix, formatValue, onChange, }) => { return (
onChange(Number(e.target.value))} className="liquid-range" style={getRangeStyle(value, min, max)} /> {formatValue ? formatValue(value) : `${value}${valueSuffix ?? ''}`}
); }; export default RangeSlider;