[
    {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "The id of the textarea."
    },
    {
        "name": "name",
        "type": "string",
        "required": true,
        "description": "The name of the textarea, which is submitted with the form data."
    },
    {
        "name": "rows",
        "type": "string",
        "required": false,
        "description": "Optional number of textarea rows (default is 5 rows)."
    },
    {
        "name": "value",
        "type": "string",
        "required": false,
        "description": "Optional initial value of the textarea."
    },
    {
        "name": "maxlength",
        "type": "string",
        "required": true,
        "description": "If `maxwords` is set, this is not required. The maximum number of characters. If `maxwords` is provided, the `maxlength` argument will be ignored."
    },
    {
        "name": "maxwords",
        "type": "string",
        "required": true,
        "description": "If `maxlength` is set, this is not required. The maximum number of words. If `maxwords` is provided, the `maxlength` argument will be ignored."
    },
    {
        "name": "threshold",
        "type": "string",
        "required": false,
        "description": "The percentage value of the limit at which point the count message is displayed. If this attribute is set, the count message will be hidden by default."
    },
    {
        "name": "label",
        "type": "object",
        "required": true,
        "description": "Options for the label component.",
        "isComponent": true
    },
    {
        "name": "hint",
        "type": "object",
        "required": false,
        "description": "Options for the hint component.",
        "isComponent": true
    },
    {
        "name": "errorMessage",
        "type": "object",
        "required": false,
        "description": "Options for the error message component. The error message component will not display if you use a falsy value for `errorMessage`, for example `false` or `null`.",
        "isComponent": true
    },
    {
        "name": "formGroup",
        "type": "object",
        "required": false,
        "description": "Options for the form-group wrapper",
        "params": [
            {
                "name": "classes",
                "type": "string",
                "required": false,
                "description": "Classes to add to the form group (e.g. to show error state for the whole group)"
            }
        ]
    },
    {
        "name": "classes",
        "type": "string",
        "required": false,
        "description": "Classes to add to the textarea."
    },
    {
        "name": "attributes",
        "type": "object",
        "required": false,
        "description": "HTML attributes (for example data attributes) to add to the textarea."
    },
    {
        "name": "spellcheck",
        "type": "boolean",
        "required": false,
        "description": "Optional field to enable or disable the spellcheck attribute on the character count."
    },
    {
        "name": "countMessage",
        "type": "object",
        "required": false,
        "description": "Options for the count message",
        "params": [
            {
                "name": "classes",
                "type": "string",
                "required": false,
                "description": "Classes to add to the count message"
            }
        ]
    }
]