class BBS::Windows::Form

A form dialog with labeled input rows, optional textarea, and a status line for inline validation feedback.

BBS::Windows::Form.open(app,
  title: " Profile — #{u} ", width: 64,
  fields: [
    { key: :signature, label: 'Signature', value: '...' },
    { key: :location,  label: 'Location',  value: '...' },
    { key: :notes,     label: 'Notes',     value: '...' },
  ],
  on_submit: ->(values, form) {
    service.update(values); :close
  }
)

A field descriptor is a Hash:

key

the key of the field’s value in values

label

the text left of an input, or the checkbox’s text

value

the starting value (true/false for a checkbox)

type

:input, :textarea or :checkbox

max_length

the longest value accepted (256 for an input, 8000 for a textarea)

placeholder

the text an empty input shows

password

masks an input’s text

rows

a textarea’s height (default 6)

Field types:

:input

(default) single-line TextInput; label on the left

:textarea

multi-line TextArea; full width, label ignored

:checkbox

Checkbox; the label is part of the widget

on_submit receives (values_hash, self). Return :keep to keep the window open (e.g. after form.error('...')); any other value closes.

hint: shows an info line above the fields (no label/value, no input).