+ {/* Brightness/Contrast */}
+ {selectedFilter === 'brightness' && (
+
+
+ handleParamChange('brightness', Number(e.target.value))}
+ className="w-full"
+ />
+
+ )}
+
+ {selectedFilter === 'contrast' && (
+
+
+ handleParamChange('contrast', Number(e.target.value))}
+ className="w-full"
+ />
+
+ )}
+
+ {selectedFilter === 'hue-saturation' && (
+ <>
+
+
+ handleParamChange('hue', Number(e.target.value))}
+ className="w-full"
+ />
+
+
+
+ handleParamChange('saturation', Number(e.target.value))}
+ className="w-full"
+ />
+
+
+
+ handleParamChange('lightness', Number(e.target.value))}
+ className="w-full"
+ />
+
+ >
+ )}
+
+ {selectedFilter === 'blur' && (
+
+
+ handleParamChange('radius', Number(e.target.value))}
+ className="w-full"
+ />
+
+ )}
+
+ {selectedFilter === 'sharpen' && (
+
+
+ handleParamChange('amount', Number(e.target.value))}
+ className="w-full"
+ />
+
+ )}
+
+ {selectedFilter === 'threshold' && (
+
+
+ handleParamChange('threshold', Number(e.target.value))}
+ className="w-full"
+ />
+
+ )}
+
+ {selectedFilter === 'posterize' && (
+
+
+ handleParamChange('levels', Number(e.target.value))}
+ className="w-full"
+ />
+
+ )}
+
+ {/* One-click filters (no params) */}
+ {['invert', 'grayscale', 'sepia'].includes(selectedFilter) && (
+
+ This filter has no adjustable parameters. Click Apply to use it.
+
+ )}
+