diff --git a/src/app/App.tsx b/src/app/App.tsx
index 3ced4e9f..e216e025 100644
--- a/src/app/App.tsx
+++ b/src/app/App.tsx
@@ -21991,6 +21991,169 @@ export function App({
+
+
Road Preview
+
+ Enable road corridor
+
+ handlePathRoadChange(
+ {
+ ...selectedPath.road,
+ enabled: event.currentTarget.checked
+ },
+ event.currentTarget.checked
+ ? "Enabled Path road preview."
+ : "Disabled Path road preview."
+ )
+ }
+ />
+
+
+ Width
+
+ handlePathRoadChange(
+ {
+ ...selectedPath.road,
+ width: normalizeScenePathRoadWidth(
+ Number(event.currentTarget.value)
+ )
+ },
+ "Updated Path road width."
+ )
+ }
+ />
+
+
+ Shoulder Width
+
+ handlePathRoadChange(
+ {
+ ...selectedPath.road,
+ shoulderWidth:
+ normalizeScenePathRoadShoulderWidth(
+ Number(event.currentTarget.value)
+ )
+ },
+ "Updated Path road shoulder."
+ )
+ }
+ />
+
+
+ Falloff
+
+ handlePathRoadChange(
+ {
+ ...selectedPath.road,
+ falloff: normalizeScenePathRoadFalloff(
+ Number(event.currentTarget.value)
+ )
+ },
+ "Updated Path road falloff."
+ )
+ }
+ />
+
+
+ Height Offset
+
+ handlePathRoadChange(
+ {
+ ...selectedPath.road,
+ heightOffset:
+ normalizeScenePathRoadHeightOffset(
+ Number(event.currentTarget.value)
+ )
+ },
+ "Updated Path road height offset."
+ )
+ }
+ />
+
+
+ Conform preview to terrain
+
+ handlePathRoadChange(
+ {
+ ...selectedPath.road,
+ terrainConform: event.currentTarget.checked
+ },
+ event.currentTarget.checked
+ ? "Enabled Path road terrain conform."
+ : "Disabled Path road terrain conform."
+ )
+ }
+ />
+
+
+ Material Placeholder
+
+ handlePathRoadChange(
+ {
+ ...selectedPath.road,
+ materialId: normalizeScenePathRoadMaterialId(
+ event.currentTarget.value
+ )
+ },
+ "Updated Path road material placeholder."
+ )
+ }
+ >
+ Unassigned preview
+ {materialList.map((material) => (
+
+ {material.name}
+
+ ))}
+
+
+
+ Road preview draws a temporary corridor along the resolved
+ spline. Width affects the visible strip; shoulder and
+ falloff are stored for the terrain-apply command next.
+
+
+