> For the complete documentation index, see [llms.txt](https://docs.tutim.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tutim.io/api-reference/fields.md).

# Fields & props

### Array

This is a bit more sophisticated field so we created a page with more details here:

{% content-ref url="/pages/4c1PBiIfZGiqrkSTfmw1" %}
[Array (list of objects)](/api-reference/fields/array.md)
{% endcontent-ref %}

<img src="/files/8Q4u3RDAgkbLSCJsbAeJ" alt="" class="gitbook-drawing">

```typescript
interface FieldConfig {
  key: string;
  type: InputType.Array;
  children: { fields: FieldConfig[] };
  label?: string;
  isDisabled?: boolean;
  isRequired?: boolean;
  defaultValue?: any;
}
```

* `key`: A unique identifier for the field.
* `type`: The type of input to use for the field, as specified by the `InputType` enumeration.
* `children`: A nested set of fields for use with `InputType.Object` or `InputType.Array` fields.
* `label`: (optional) The label to display for the field.
* `isDisabled`: (optional) A boolean value indicating whether the field should be disabled.
* `isRequired`: (optional) A boolean value indicating whether the field is required.
* `defaultValue`: (optional) The default value for the field.

### Checkbox

<img src="/files/odISh9yQg66kBRUwHJkw" alt="" class="gitbook-drawing">

```typescript
interface FieldConfig {
  key: string;
  type: InputType.Checkbox;
  label?: string;
  isDisabled?: boolean;
  isRequired?: boolean;
  defaultValue?: any;
}
```

* `key`: A unique identifier for the field.
* `type`: The type of input to use for the field, as specified by the `InputType` enumeration.
* `label`: (optional) The label to display for the field.
* `isDisabled`: (optional) A boolean value indicating whether the field should be disabled.
* `isRequired`: (optional) A boolean value indicating whether the field is required.
* `defaultValue`: (optional) The default value for the field.

### Custom

This is a bit more sophisticated field so we created a page with more details here:

{% content-ref url="/pages/oPhTtMMaBOgxvyWWDCfT" %}
[Custom](/api-reference/fields/customfield.md)
{% endcontent-ref %}

```typescript
interface FieldConfig {
  key: string;
  type: InputType.Custom;
  Field: Field;
  label?: string;
  isDisabled?: boolean;
  isRequired?: boolean;
  defaultValue?: any;
  options?: Option[];
}
```

* `key`: A unique identifier for the field.
* `type`: The type of input to use for the field, as specified by the `InputType` enumeration.
* `Field`: Field component
* `label`: (optional) The label to display for the field.
* `isDisabled`: (optional) A boolean value indicating whether the field should be disabled.
* `isRequired`: (optional) A boolean value indicating whether the field is required.
* `defaultValue`: (optional) The default value for the field.
* `options`: (optional) An array of `Option` objects for use with `InputType.Select`, `InputType.Custom`and `InputType.Radio` fields.

### Date

<img src="/files/lpd7gUTQoSmOr92dHO7R" alt="" class="gitbook-drawing">

```typescript
interface FieldConfig {
  key: string;
  type: InputType.Date;
  label?: string;
  isDisabled?: boolean;
  isRequired?: boolean;
  defaultValue?: any;
}
```

* `key`: A unique identifier for the field.
* `type`: The type of input to use for the field, as specified by the `InputType` enumeration.
* `label`: (optional) The label to display for the field.
* `isDisabled`: (optional) A boolean value indicating whether the field should be disabled.
* `isRequired`: (optional) A boolean value indicating whether the field is required.
* `defaultValue`: (optional) The default value for the field.

### Json

<img src="/files/9TLMEw938z1cp6X6NHcW" alt="" class="gitbook-drawing">

```typescript
interface FieldConfig {
  key: string;
  type: InputType.Json;
  label?: string;
  isDisabled?: boolean;
  isRequired?: boolean;
  defaultValue?: any;
}
```

* `key`: A unique identifier for the field.
* `type`: The type of input to use for the field, as specified by the `InputType` enumeration.
* `label`: (optional) The label to display for the field.
* `isDisabled`: (optional) A boolean value indicating whether the field should be disabled.
* `isRequired`: (optional) A boolean value indicating whether the field is required.
* `defaultValue`: (optional) The default value for the field.

### MultiText

<img src="/files/0gzsJeVSujmsPmSzmTOC" alt="" class="gitbook-drawing">

```typescript
interface FieldConfig {
  key: string;
  type: InputType.MultiText;
  label?: string;
  isDisabled?: boolean;
  isRequired?: boolean;
  defaultValue?: any;
}
```

* `key`: A unique identifier for the field.
* `type`: The type of input to use for the field, as specified by the `InputType` enumeration.
* `label`: (optional) The label to display for the field.
* `isDisabled`: (optional) A boolean value indicating whether the field should be disabled.
* `isRequired`: (optional) A boolean value indicating whether the field is required.
* `defaultValue`: (optional) The default value for the field.

### Object

This is a bit more sophisticated field so we created a page with more details here:

{% content-ref url="/pages/k3SlG9ISETSa6JFBJP0d" %}
[Object](/api-reference/fields/nested-children.md)
{% endcontent-ref %}

<img src="/files/iVW76tSXWIQFFKlTJNnk" alt="" class="gitbook-drawing">

```typescript
interface FieldConfig {
  key: string;
  type: InputType.Object;
  children: { fields: FieldConfig[] };
  label?: string;
  isDisabled?: boolean;
  isRequired?: boolean;
  defaultValue?: any;
}
```

* `key`: A unique identifier for the field.
* `type`: The type of input to use for the field, as specified by the `InputType` enumeration.
* `children`: A nested set of fields for use with `InputType.Object` or `InputType.Array` fields.
* `label`: (optional) The label to display for the field.
* `isDisabled`: (optional) A boolean value indicating whether the field should be disabled.
* `isRequired`: (optional) A boolean value indicating whether the field is required.
* `defaultValue`: (optional) The default value for the field.

### Number

<img src="/files/Q8L5DKHpBqnYhbLBDU8t" alt="" class="gitbook-drawing">

```typescript
interface FieldConfig {
  key: string;
  type: InputType.Number;
  label?: string;
  isDisabled?: boolean;
  isRequired?: boolean;
  defaultValue?: any;
}
```

* `key`: A unique identifier for the field.
* `type`: The type of input to use for the field, as specified by the `InputType` enumeration.
* `label`: (optional) The label to display for the field.
* `isDisabled`: (optional) A boolean value indicating whether the field should be disabled.
* `isRequired`: (optional) A boolean value indicating whether the field is required.
* `defaultValue`: (optional) The default value for the field.

### Password

<img src="/files/8bxYY4YpbJ4qop5VoigD" alt="" class="gitbook-drawing">

```typescript
interface FieldConfig {
  key: string;
  type: InputType.Password;
  label?: string;
  isDisabled?: boolean;
  isRequired?: boolean;
  defaultValue?: any;
}
```

* `key`: A unique identifier for the field.
* `type`: The type of input to use for the field, as specified by the `InputType` enumeration.
* `label`: (optional) The label to display for the field.
* `isDisabled`: (optional) A boolean value indicating whether the field should be disabled.
* `isRequired`: (optional) A boolean value indicating whether the field is required.
* `defaultValue`: (optional) The default value for the field.

### Radio

<img src="/files/WDlYGzar5MYhptkut9XE" alt="" class="gitbook-drawing">

```typescript
interface FieldConfig {
  key: string;
  type: InputType.Radio;
  options: Option[];
  label?: string;
  isDisabled?: boolean;
  isRequired?: boolean;
  defaultValue?: any;
}
```

* `key`: A unique identifier for the field.
* `type`: The type of input to use for the field, as specified by the `InputType` enumeration.
* `options`: (optional) An array of `Option` objects for use with `InputType.Select`, `InputType.Custom`and `InputType.Radio` fields.
* `label`: (optional) The label to display for the field.
* `isDisabled`: (optional) A boolean value indicating whether the field should be disabled.
* `isRequired`: (optional) A boolean value indicating whether the field is required.
* `defaultValue`: (optional) The default value for the field.

### Select

Also known as Dropdown, Dropdown menu, or Dropdown list

<img src="/files/7KRs81LPy28I1kAqYAuw" alt="Select field with Tutim default visualization" class="gitbook-drawing">

```typescript
interface FieldConfig {
  key: string;
  type: InputType.Select;
  options: Option[];
  label?: string;
  isDisabled?: boolean;
  isRequired?: boolean;
  defaultValue?: any;
}
```

* `key`: A unique identifier for the field.
* `type`: The type of input to use for the field, as specified by the `InputType` enumeration.
* `options`: (optional) An array of `Option` objects for use with `InputType.Select`, `InputType.Custom`and `InputType.Radio` fields.
* `label`: (optional) The label to display for the field.
* `isDisabled`: (optional) A boolean value indicating whether the field should be disabled.
* `isRequired`: (optional) A boolean value indicating whether the field is required.
* `defaultValue`: (optional) The default value for the field.

### Switch

<img src="/files/6BW9Lt0164t5854lFVeP" alt="" class="gitbook-drawing">

```typescript
interface FieldConfig {
  key: string;
  type: InputType.Switch;
  label?: string;
  isDisabled?: boolean;
  isRequired?: boolean;
  defaultValue?: any;
}
```

* `key`: A unique identifier for the field.
* `type`: The type of input to use for the field, as specified by the `InputType` enumeration.
* `label`: (optional) The label to display for the field.
* `isDisabled`: (optional) A boolean value indicating whether the field should be disabled.
* `isRequired`: (optional) A boolean value indicating whether the field is required.
* `defaultValue`: (optional) The default value for the field.

### Text

<img src="/files/mdw6x7Xf6MdJZ3km6kB9" alt="Text field with Tutim default visualization" class="gitbook-drawing">

```typescript
interface FieldConfig {
  key: string;
  type: InputType.Text;
  label?: string;
  isDisabled?: boolean;
  isRequired?: boolean;
  defaultValue?: any;
}
```

* `key`: A unique identifier for the field.
* `type`: The type of input to use for the field, as specified by the `InputType` enumeration.
* `label`: (optional) The label to display for the field.
* `isDisabled`: (optional) A boolean value indicating whether the field should be disabled.
* `isRequired`: (optional) A boolean value indicating whether the field is required.
* `defaultValue`: (optional) The default value for the field.

### TextArea

<img src="/files/XBP8eFMskkgdobx0eFYH" alt="" class="gitbook-drawing">

```typescript
interface FieldConfig {
  key: string;
  type: InputType.TextArea;
  label?: string;
  isDisabled?: boolean;
  isRequired?: boolean;
  defaultValue?: any;
}
```

* `key`: A unique identifier for the field.
* `type`: The type of input to use for the field, as specified by the `InputType` enumeration.
* `label`: (optional) The label to display for the field.
* `isDisabled`: (optional) A boolean value indicating whether the field should be disabled.
* `isRequired`: (optional) A boolean value indicating whether the field is required.
* `defaultValue`: (optional) The default value for the field.

###
