viewof forms = render(() => {
const [state, setState] = useObservableState({
message: "Hello, form!",
hue: 180,
size: 24
});
const { message, hue, size } = state;
return jsx`<form>
<div>
<label>
<input type=text value=${message} onChange=${(e) =>
setState({ ...state, message: e.target.value })} />
${" "}<i>message</i>
</label>
</div>
<div>
<label>
<input type=range min=0 max=360 value=${hue} onChange=${(e) =>
setState({ ...state, hue: e.target.valueAsNumber })} />
${" "}<i style=${{ color: `hsl(${hue}deg, 100%, 30%)` }}>hue</i>
</label>
</div>
<div>
<${Radio} label="small" value=${12} setValue=${(size) =>
setState({ ...state, size })} selected=${size} />${" "}
<${Radio} label="medium" value=${24} setValue=${(size) =>
setState({ ...state, size })} selected=${size} />${" "}
<${Radio} label="large" value=${48} setValue=${(size) =>
setState({ ...state, size })} selected=${size} />
</div>
</form>`;
})