Skip to content
bahtuiv0.6.0

Field types

Level 1 use: a standalone <baht-form>. Type into the form — every keystroke emits baht-change; the values on the right are the emitted data.

Rendered form

Emitted data

{}

Source fields JSON

{
  "form_id": "demo-fields",
  "form_name": "Showcase",
  "fields": [
    {
      "order": 0,
      "type": "label",
      "key": "intro",
      "text": "Every control, one JSON.",
      "variant": "heading"
    },
    {
      "order": 1,
      "type": "text",
      "key": "name",
      "label": "Text",
      "placeholder": "Your name",
      "width": "1/2",
      "required": true,
      "value": ""
    },
    {
      "order": 2,
      "type": "email",
      "key": "email",
      "label": "Email",
      "placeholder": "a@b.co",
      "width": "1/2",
      "value": ""
    },
    {
      "order": 3,
      "type": "number",
      "key": "age",
      "label": "Number",
      "width": "1/4",
      "min": 0,
      "max": 120,
      "value": null
    },
    {
      "order": 4,
      "type": "date",
      "key": "dob",
      "label": "Date",
      "width": "1/4",
      "value": null
    },
    {
      "order": 5,
      "type": "dropdown",
      "key": "province",
      "label": "Dropdown",
      "width": "1/2",
      "placeholder": "Pick one…",
      "options": [
        {
          "key": "bkk",
          "label": "Bangkok"
        },
        {
          "key": "cnx",
          "label": "Chiang Mai"
        },
        {
          "key": "hkt",
          "label": "Phuket"
        }
      ],
      "value": null
    },
    {
      "order": 6,
      "type": "radio",
      "key": "plan",
      "label": "Radio",
      "width": "1/2",
      "options": [
        {
          "key": "free",
          "label": "Free"
        },
        {
          "key": "pro",
          "label": "Pro"
        }
      ],
      "value": "free"
    },
    {
      "order": 7,
      "type": "multiselect",
      "key": "interests",
      "label": "Multiselect",
      "width": "1/2",
      "options": [
        {
          "key": "forms",
          "label": "Forms"
        },
        {
          "key": "flows",
          "label": "Workflows"
        },
        {
          "key": "rules",
          "label": "Rules"
        }
      ],
      "value": []
    },
    {
      "order": 8,
      "type": "textarea",
      "key": "bio",
      "label": "Textarea",
      "rows": 3,
      "width": "1/2",
      "max_length": 200,
      "value": ""
    },
    {
      "order": 9,
      "type": "checkbox",
      "key": "accept",
      "label": "Checkbox: accept terms",
      "width": "1/2",
      "required": true,
      "value": false
    },
    {
      "order": 10,
      "type": "toggle",
      "key": "newsletter",
      "label": "Toggle: newsletter",
      "width": "1/2",
      "value": false
    },
    {
      "order": 11,
      "type": "file",
      "key": "doc",
      "label": "File (capture only)",
      "accept": ".pdf,.png",
      "width": "full",
      "value": null
    }
  ]
}