diff --git a/src/components/experiments/designer/PropertiesPanel.tsx b/src/components/experiments/designer/PropertiesPanel.tsx index 119968f..4ef7996 100755 --- a/src/components/experiments/designer/PropertiesPanel.tsx +++ b/src/components/experiments/designer/PropertiesPanel.tsx @@ -917,12 +917,13 @@ const ParameterEditor = React.memo(function ParameterEditor({ if (param.type === "text") { control = ( - handleUpdate(e.target.value)} onBlur={handleCommit} - className="mt-1 h-7 w-full text-xs" + rows={3} + className="mt-1 w-full rounded-md border border-input bg-transparent px-3 py-2 text-xs shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50" /> ); } else if (param.type === "select") { @@ -982,14 +983,24 @@ const ParameterEditor = React.memo(function ParameterEditor({ max={max} step={step} value={[Number(numericVal)]} - onValueChange={(vals) => setLocalValue(vals[0])} // Update only local visual - onPointerUp={() => handleUpdate(localValue)} // Commit on release + onValueChange={(vals) => setLocalValue(vals[0])} + onPointerUp={() => handleUpdate(localValue)} + /> + { + const v = parseFloat(e.target.value); + if (!isNaN(v)) { + setLocalValue(Math.max(min, Math.min(max, v))); + } + }} + onBlur={handleCommit} + className="h-7 w-16 text-xs tabular-nums" /> - - {step < 1 - ? Number(numericVal).toFixed(2) - : Number(numericVal).toString()} -
{min}