Slider & upload
The slider drives the live checker — drag a dimension, watch the verdict. The dropzone takes a survey plan, and the file row is the receipt.
Slider
A native range under custom paint — the platform keeps arrows, Home/End and touch. The value rides the label row, right-aligned and tabular, so dragging reads as a number changing rather than a knob moving. The verdict this drives never animates its wording: an icon joins or leaves the stack the instant a threshold is crossed.
Upload
Drop files on it — the rows below are live. The zone is a real button (clickable, focusable, announced) and drag-and-drop is layered on top, never instead.
The dropzone emits the files and holds nothing: progress, rows and retries are the caller's, because the component cannot know whether a plan goes to R2 or stays in memory.
File rows
Three states, one geometry — a list must not jump as files land. A failure states its reason in the row and keeps a Retry; the remove control never leaves.
The full lodgement flow — what the applicant sees from empty state to lodged — is on Document upload.