/ components / ui / Slider.tsx
Slider.tsx
 1  import React from 'react';
 2  
 3  interface SliderProps {
 4    label: string;
 5    value: number;
 6    onChange: (val: number) => void;
 7    disabled?: boolean;
 8  }
 9  
10  export const Slider: React.FC<SliderProps> = ({ label, value, onChange, disabled }) => {
11    return (
12      <div className={`flex flex-col gap-2 ${disabled ? 'opacity-50 pointer-events-none' : ''}`}>
13        <div className="flex justify-between text-xs font-medium uppercase tracking-wider text-slate-400">
14          <label>{label}</label>
15          <span className="text-cyan-400 font-mono">{value}%</span>
16        </div>
17        <input
18          type="range"
19          min="0"
20          max="100"
21          value={value}
22          disabled={disabled}
23          onChange={(e) => onChange(Number(e.target.value))}
24          className="w-full h-2 bg-slate-700 rounded-lg appearance-none cursor-pointer accent-cyan-500 hover:accent-cyan-400 transition-all"
25        />
26      </div>
27    );
28  };