+
+
+ updateParam(i, { ...param, name: e.target.value })
+ }
+ className="rounded-lg border border-slate-300 dark:border-slate-600 bg-white dark:bg-slate-700 px-3 py-1.5 text-sm text-slate-900 dark:text-white placeholder-slate-400 focus:border-indigo-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/20 transition"
+ placeholder="Parameter name"
+ aria-label={`Parameter ${i + 1} name`}
+ />
+
+
+
+
+ {(["fixed", "range", "options"] as ParamType[]).map((t) => (
+
+ ))}
+
+
+ {param.type === "fixed" && (
+
+ updateParam(i, { ...param, fixed_value: e.target.value })
+ }
+ className="w-full rounded-lg border border-slate-300 dark:border-slate-600 bg-white dark:bg-slate-700 px-3 py-1.5 text-sm text-slate-900 dark:text-white placeholder-slate-400 focus:border-indigo-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/20 transition"
+ placeholder="Fixed value"
+ aria-label={`Parameter ${i + 1} fixed value`}
+ />
+ )}
+
+ {param.type === "range" && (
+
+
+ updateParam(i, { ...param, range_min: e.target.value })
+ }
+ className="w-full rounded-lg border border-slate-300 dark:border-slate-600 bg-white dark:bg-slate-700 px-3 py-1.5 text-sm text-slate-900 dark:text-white focus:border-indigo-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/20 transition"
+ placeholder="Min"
+ aria-label={`Parameter ${i + 1} min`}
+ />
+
+ updateParam(i, { ...param, range_max: e.target.value })
+ }
+ className="w-full rounded-lg border border-slate-300 dark:border-slate-600 bg-white dark:bg-slate-700 px-3 py-1.5 text-sm text-slate-900 dark:text-white focus:border-indigo-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/20 transition"
+ placeholder="Max"
+ aria-label={`Parameter ${i + 1} max`}
+ />
+
+ updateParam(i, { ...param, range_step: e.target.value })
+ }
+ className="w-full rounded-lg border border-slate-300 dark:border-slate-600 bg-white dark:bg-slate-700 px-3 py-1.5 text-sm text-slate-900 dark:text-white focus:border-indigo-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/20 transition"
+ placeholder="Step"
+ aria-label={`Parameter ${i + 1} step`}
+ />
+
+ )}
+
+ {param.type === "options" && (
+
+ updateParam(i, {
+ ...param,
+ options_values: e.target.value,
+ })
+ }
+ className="w-full rounded-lg border border-slate-300 dark:border-slate-600 bg-white dark:bg-slate-700 px-3 py-1.5 text-sm text-slate-900 dark:text-white placeholder-slate-400 focus:border-indigo-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/20 transition"
+ placeholder="Comma-separated values (e.g. 0.1, 0.5, 1.0)"
+ aria-label={`Parameter ${i + 1} options`}
+ />
+ )}
+