Widgets

Also, this breaks when the widget is already present (as with "save as html"). If you use labels, a good enough way of getting the label would be:

    valueLabel = (if input.id.length > 0 then session.container.queryElement("label[for='#{input.id}']")) or (if input.parentElement.tagName == 'LABEL' then input.parentElement)

Technically, the `label` can be any ancestor of the `input`, but it's almost always the immediate parent (we should follow this practice).