Skip to content

Appendix: Form Input Types

These are possible children of the create, edit, button, and variable widgets.

autocomplete input

Autocomplete inputs show a text input that autocompletes to the options specified in the jsonata expression

{
  "widget" : "auto complete",
  "options" : "['one', 'two', 'three']"
}
Sample output:
"one"

binary file input

Allows uploading a file. returns the file contents as a base 64 encoded data URL

{
  "widget" : " binary file"
}
Sample output:
"data:text/plain;base64,ZmlsZSBjb250ZW50cw=="

binary file with metadata input

Allows uploading a file. returns an object with name, lastModified, size, type, and value (containing the file contents as a base 64 encoded data URL)

{
  "widget" : " binary file with metadata"
}
Sample output:
{
  "name" : "test.txt",
  "lastModified" : 1756398020293,
  "size" : 13,
  "type" : "text/plain",
  "value" : "data:text/plain;base64,ZmlsZSBjb250ZW50cw=="
}

boolean input

Boolean inputs show a on/off toggle. In this example, the toggle has the label 'Opt in'

{
  "widget" : "boolean",
  "title" : "Opt in"
}
Sample output:
true

date input

Shows a date picker input. Returns a YYYY-MM-DD string with the selected date

{
  "widget" : "date"
}
Sample output:
"2025-08-08"

datetime input

Shows a datetime picker input

{
  "widget" : "datetime"
}
Sample output:
"2025-08-28T04:03:05.972Z"

file input

Allows uploading a file. returns the file contents

{
  "widget" : "file"
}
Sample output:
"file contents"

file with metadata input

Allows uploading a file. returns an object with name, lastModified, size, type, and value (containing the file contents)

{
  "widget" : "file with metadata"
}
Sample output:
{
  "name" : "test.txt",
  "lastModified" : 1756398020293,
  "size" : 13,
  "type" : "text/plain",
  "value" : "file contents"
}

key value input

key value inputs display a two column table to enter keys and values. Returns a JSON object

{
  "widget" : "key value"
}
Sample output:
{
  "key" : "value"
}

multi select input

Multi Select inputs show a drop-down selection with the options specified in the jsonata expression. Multiple options can be selected yielding an array of values

{
  "widget" : "multi select",
  "options" : "['one', 'two', 'three']"
}
Sample output:
[ "one", "two" ]

number input

Number inputs show a text input that is restricted to entering numbers

{
  "widget" : "number"
}
Sample output:
123

password input

Shows a password input field

{
  "widget" : "password"
}
Sample output:
"secret"

qrcode input

Allows scanning a QR Code into the form field

{
  "widget" : " qrcode"
}
Sample output:
"whatever was encoded in the QR code"

select input

Select inputs show a drop-down selection with the options specified in the jsonata expression

{
  "widget" : "select",
  "options" : "['one', 'two', 'three']"
}
Sample output:
"one"

string input

String inputs show a text input

{
  "widget" : "string"
}
Sample output:
"test"

textarea input

Shows a multi line input field (textarea)

{
  "widget" : "textarea"
}
Sample output:
"line1\nline2"

time input

Shows a time picker input. Returns a ISO 8601 date string with the current day and the selected time

{
  "widget" : "time"
}
Sample output:
"2025-08-28T04:03:05.972Z"

voice input

Shows a text input field with a voice option

{
  "widget" : " voice"
}
Sample output:
"you spoke into the mic"