---
# System prepended metadata

title: Widget - NeoTextFormField
tags: [Flutter-Widget]

---

NeoTextFormField
---
**Description:** Widget will be used to get inputs from users.
**UI States:**
![Screen Shot 2023-11-20 at 11.43.19](https://hackmd.io/_uploads/HkptYTaB6.png)

**Parameters:**

| Parameter Name | Type | Is Required | Description | Default Value |
| - | - | -| - | - |
|titleText        | String  | No    | Title text field | ''|
|titleIconUrn     | String?  | No    | Title icon's urn   | null |
|dataKey          | String?  | No    | This key is used to submit data to workflow in NeoTransitionButton | null|
|widgetEventKey | String?  | No    | When this value is provided, write every change to WidgetEventBus with this key.  | null|
|subtitleText         | String  | No    | Subtitle field| ''|
|labelText         | String?  | No   | Label text for input field|null|
|labelInitialText | String  | No    | Initial value for label text field | ''|
|validationRegex  | String?  | No    | Regular expression to validate input field|null|
|maxLength        | int?     | No    | Maximum character length for input field|null|
|bottomText       |[NeoTextFormFieldBottomTextModel?](https://hackmd.io/UBhxrYVhTmCgmy2J5RC2-w)  |No | Data class should be used to provide info, error or warning message for more details | null|
|enabled          | bool    | No    | Determines whether widget is enabled or disabled | true |
|obscureText      | bool    | No    | Determines whether input is obscure or not | false
|showObscureStatusChangeButton      | bool    | No    | Determines whether obscure button is show or not | false
|padding          | [EdgeInsetsDirectional](https://hackmd.io/VbfdvqKyRUmeeeAVrModPQ)?| No  | Padding of widget | null |
|iconLeftUrn      | String?  | No    | Left icon's urn   | null |
|iconRightUrn     | String?  | No    | Left icon's urn   | null |
|dropdownLeft     | [NeoDropdownDataModel?](https://hackmd.io/LFhO3bxgSIeerRcphTAqOw) | No | Left dropdown selection | null |
|dropdownRight    | [NeoDropdownDataModel?](https://hackmd.io/LFhO3bxgSIeerRcphTAqOw) | No | Right dropdown selection | null |
|keyboardType | [NeoKeyboardType?](https://hackmd.io/UkbGAWS9R7Gl8P9sKfgfwQ) | No | Keyboard input type | null |
|buttonRight | [NeoButtonDataModel?](https://hackmd.io/uoynWKMJRkmImN_bzu88YQ?view) | No | Optional transition button | null |

**Example Response**
```json
{
    "type": "neo_text_form_field",
    "args": {
        "titleText": "Title Text",
        "titleIconUrn": "urn:local:icons:helpCircle",
        "subtitleText": "Subtitle Text",
        "labelText": "TCKN / VKN",
        "validationRegex": "^[a-zA-Z0-9]{6}$",
        "maxLength": 6,
        "bottomText": {
            "type": "NeoTextFormFieldBottomTextModel",
            "messageType": "error",
            "message": "Bottom Text Message",
            "iconUrn": "urn:local:icons:helpCircle"
        },
        "enabled": false,
        "obscureText": true,
        "showObscureStatusChangeButton": true,
        "padding": {
            "start": 50,
            "top": 0,
            "end": 50,
            "bottom": 0
        },
        "iconLeftUrn": "urn:local:icons:plusCircle",
        "iconRightUrn": "urn:local:icons:plusCircle",
        "dropdownLeft": {
            "type": "NeoDropdownDataModel",
            "dataKey": "",
            "items": [
                "EUR",
                "USD",
                "TL"
            ]
        },
        "dropdownRight": {
            "type": "NeoDropdownDataModel",
            "dataKey": "",
            "items": [
                "EUR",
                "USD",
                "TL"
            ]
        },
        "keyboardType": "NeoKeyboardType.number",
        "buttonRight": {
            "type": "NeoButtonDataModel",
            "transitionId": "",
            "entityId": "",
            "labelText": "Unuttum",
            "displayMode": "textRegular"
        }
    }
}
```