# `PetalComponents.Form`
[🔗](https://github.com/petalframework/petal_components/blob/v3.2.0/lib/petal_components/form.ex#L1)

Everything related to forms: inputs, labels etc

Deprecated in favor of field.ex and input.ex, which use the new `%Phoenix.HTML.FormField{}` struct.

# `checkbox`

## Attributes

* `form` (`:any`) - . Defaults to `nil`.
* `field` (`:atom`) - . Defaults to `nil`.
* `label` (`:string`) - labels your field. Defaults to `nil`.
* `class` (`:any`) - extra classes for the text input. Defaults to `nil`.
* Global attributes are accepted. Supports all globals plus: `["checked_value", "unchecked_value", "checked", "hidden_input", "autocomplete", "autocorrect", "autocapitalize", "disabled", "form", "max", "maxlength", "min", "minlength", "list", "pattern", "placeholder", "readonly", "required", "size", "step", "value", "name", "multiple", "prompt", "selected", "default", "year", "month", "day", "hour", "minute", "second", "builder", "options", "layout", "cols", "rows", "wrap", "checked", "accept"]`.

# `checkbox_group`

## Attributes

* `form` (`:any`) - . Defaults to `nil`.
* `field` (`:atom`) - . Defaults to `nil`.
* `label` (`:string`) - labels your field. Defaults to `nil`.
* `class` (`:any`) - extra classes for the text input. Defaults to `nil`.
* `options` (`:list`) - options for the select. Defaults to `[]`.
* `layout` (`:atom`) - layout for the checkboxes. Defaults to `:col`. Must be one of `:row`, or `:col`.
* `checked` (`:list`) - a list of checked values.
* Global attributes are accepted. Supports all globals plus: `["autocomplete", "autocorrect", "autocapitalize", "disabled", "form", "max", "maxlength", "min", "minlength", "list", "pattern", "placeholder", "readonly", "required", "size", "step", "value", "name", "multiple", "prompt", "selected", "default", "year", "month", "day", "hour", "minute", "second", "builder", "options", "layout", "cols", "rows", "wrap", "checked", "accept"]`.

# `color_input`

## Attributes

* `form` (`:any`) - . Defaults to `nil`.
* `field` (`:atom`) - . Defaults to `nil`.
* `label` (`:string`) - labels your field. Defaults to `nil`.
* `class` (`:any`) - extra classes for the text input. Defaults to `nil`.
* Global attributes are accepted. Supports all globals plus: `["autocomplete", "autocorrect", "autocapitalize", "disabled", "form", "max", "maxlength", "min", "minlength", "list", "pattern", "placeholder", "readonly", "required", "size", "step", "value", "name", "multiple", "prompt", "selected", "default", "year", "month", "day", "hour", "minute", "second", "builder", "options", "layout", "cols", "rows", "wrap", "checked", "accept"]`.

# `date_input`

## Attributes

* `form` (`:any`) - . Defaults to `nil`.
* `field` (`:atom`) - . Defaults to `nil`.
* `label` (`:string`) - labels your field. Defaults to `nil`.
* `class` (`:any`) - extra classes for the text input. Defaults to `nil`.
* Global attributes are accepted. Supports all globals plus: `["autocomplete", "autocorrect", "autocapitalize", "disabled", "form", "max", "maxlength", "min", "minlength", "list", "pattern", "placeholder", "readonly", "required", "size", "step", "value", "name", "multiple", "prompt", "selected", "default", "year", "month", "day", "hour", "minute", "second", "builder", "options", "layout", "cols", "rows", "wrap", "checked", "accept"]`.

# `date_select`

## Attributes

* `form` (`:any`) - . Defaults to `nil`.
* `field` (`:atom`) - . Defaults to `nil`.
* `label` (`:string`) - labels your field. Defaults to `nil`.
* `class` (`:any`) - extra classes for the text input. Defaults to `nil`.
* Global attributes are accepted. Supports all globals plus: `["autocomplete", "autocorrect", "autocapitalize", "disabled", "form", "max", "maxlength", "min", "minlength", "list", "pattern", "placeholder", "readonly", "required", "size", "step", "value", "name", "multiple", "prompt", "selected", "default", "year", "month", "day", "hour", "minute", "second", "builder", "options", "layout", "cols", "rows", "wrap", "checked", "accept"]`.

# `datetime_local_input`

## Attributes

* `form` (`:any`) - . Defaults to `nil`.
* `field` (`:atom`) - . Defaults to `nil`.
* `label` (`:string`) - labels your field. Defaults to `nil`.
* `class` (`:any`) - extra classes for the text input. Defaults to `nil`.
* Global attributes are accepted. Supports all globals plus: `["autocomplete", "autocorrect", "autocapitalize", "disabled", "form", "max", "maxlength", "min", "minlength", "list", "pattern", "placeholder", "readonly", "required", "size", "step", "value", "name", "multiple", "prompt", "selected", "default", "year", "month", "day", "hour", "minute", "second", "builder", "options", "layout", "cols", "rows", "wrap", "checked", "accept"]`.

# `datetime_select`

## Attributes

* `form` (`:any`) - . Defaults to `nil`.
* `field` (`:atom`) - . Defaults to `nil`.
* `label` (`:string`) - labels your field. Defaults to `nil`.
* `class` (`:any`) - extra classes for the text input. Defaults to `nil`.
* Global attributes are accepted. Supports all globals plus: `["autocomplete", "autocorrect", "autocapitalize", "disabled", "form", "max", "maxlength", "min", "minlength", "list", "pattern", "placeholder", "readonly", "required", "size", "step", "value", "name", "multiple", "prompt", "selected", "default", "year", "month", "day", "hour", "minute", "second", "builder", "options", "layout", "cols", "rows", "wrap", "checked", "accept"]`.

# `email_input`

# `file_input`

## Attributes

* `form` (`:any`) - . Defaults to `nil`.
* `field` (`:atom`) - . Defaults to `nil`.
* `label` (`:string`) - labels your field. Defaults to `nil`.
* `class` (`:any`) - extra classes for the text input. Defaults to `nil`.
* Global attributes are accepted. Supports all globals plus: `["autocomplete", "autocorrect", "autocapitalize", "disabled", "form", "max", "maxlength", "min", "minlength", "list", "pattern", "placeholder", "readonly", "required", "size", "step", "value", "name", "multiple", "prompt", "selected", "default", "year", "month", "day", "hour", "minute", "second", "builder", "options", "layout", "cols", "rows", "wrap", "checked", "accept"]`.

# `form_field`

Use this when you want to include the label and some margin.
## Attributes

* `form` (`:any`) (required) - the form object.
* `field` (`:atom`) (required) - field in changeset / form.
* `label` (`:string`) - labels your field.
* `label_class` (`:any`) - extra CSS for your label. Defaults to `nil`.
* `help_text` (`:string`) - context/help for your field. Defaults to `nil`.
* `type` (`:string`) - The type of input. Defaults to `"text_input"`. Must be one of `"text_input"`, `"email_input"`, `"number_input"`, `"password_input"`, `"search_input"`, `"telephone_input"`, `"url_input"`, `"time_input"`, `"time_select"`, `"date_input"`, `"date_select"`, `"datetime_local_input"`, `"datetime_select"`, `"color_input"`, `"file_input"`, `"range_input"`, `"textarea"`, `"select"`, `"checkbox"`, `"checkbox_group"`, `"radio_group"`, `"switch"`, or `"hidden_input"`.
* `wrapper_classes` (`:string`) - CSS class for wrapper. Defaults to `"pc-form-field-wrapper"`.
* `no_margin` (`:boolean`) - removes the bottom margin from the field wrapper. Defaults to `false`.
* Global attributes are accepted. Supports all globals plus: `["autocomplete", "autocorrect", "autocapitalize", "disabled", "form", "max", "maxlength", "min", "minlength", "list", "pattern", "placeholder", "readonly", "required", "size", "step", "value", "name", "multiple", "prompt", "selected", "default", "year", "month", "day", "hour", "minute", "second", "builder", "options", "layout", "cols", "rows", "wrap", "checked", "accept"]`.

# `form_field_error`

## Attributes

* `form` (`:any`) - . Defaults to `nil`.
* `field` (`:atom`) - . Defaults to `nil`.
* `class` (`:any`) - extra classes for the text input. Defaults to `nil`.

# `form_help_text`

## Attributes

* `class` (`:any`) - extra classes for the help text. Defaults to `nil`.
* `help_text` (`:string`) - context/help for your field. Defaults to `nil`.
* Global attributes are accepted.
## Slots

* `inner_block`

# `form_label`

## Attributes

* `form` (`:any`) - . Defaults to `nil`.
* `field` (`:atom`) - . Defaults to `nil`.
* `label` (`:string`) - labels your field. Defaults to `nil`.
* `class` (`:any`) - CSS classes to add to your label.
* `compound` (`:boolean`) - Avoid using label/for for compound inputs. Defaults to `false`.
* Global attributes are accepted. Supports all globals plus: `["for"]`.
## Slots

* `inner_block`

# `hidden_input`

## Attributes

* `form` (`:any`) - . Defaults to `nil`.
* `field` (`:atom`) - . Defaults to `nil`.
* Global attributes are accepted. Supports all globals plus: `["autocomplete", "autocorrect", "autocapitalize", "disabled", "form", "max", "maxlength", "min", "minlength", "list", "pattern", "placeholder", "readonly", "required", "size", "step", "value", "name", "multiple", "prompt", "selected", "default", "year", "month", "day", "hour", "minute", "second", "builder", "options", "layout", "cols", "rows", "wrap", "checked", "accept"]`.

# `number_input`

# `password_input`

# `radio`

## Attributes

* `form` (`:any`) - . Defaults to `nil`.
* `field` (`:atom`) - . Defaults to `nil`.
* `label` (`:string`) - labels your field. Defaults to `nil`.
* `class` (`:any`) - extra classes for the text input. Defaults to `nil`.
* `value` (`:any`) - the radio value. Defaults to `nil`.
* Global attributes are accepted. Supports all globals plus: `["autocomplete", "autocorrect", "autocapitalize", "disabled", "form", "max", "maxlength", "min", "minlength", "list", "pattern", "placeholder", "readonly", "required", "size", "step", "value", "name", "multiple", "prompt", "selected", "default", "year", "month", "day", "hour", "minute", "second", "builder", "options", "layout", "cols", "rows", "wrap", "checked", "accept"]`.

# `radio_group`

## Attributes

* `form` (`:any`) - . Defaults to `nil`.
* `field` (`:atom`) - . Defaults to `nil`.
* `label` (`:string`) - labels your field. Defaults to `nil`.
* `class` (`:any`) - extra classes for the text input. Defaults to `nil`.
* `options` (`:list`) - options for the select. Defaults to `[]`.
* `layout` (`:atom`) - layout for the radio options. Defaults to `:col`. Must be one of `:row`, or `:col`.
* Global attributes are accepted. Supports all globals plus: `["autocomplete", "autocorrect", "autocapitalize", "disabled", "form", "max", "maxlength", "min", "minlength", "list", "pattern", "placeholder", "readonly", "required", "size", "step", "value", "name", "multiple", "prompt", "selected", "default", "year", "month", "day", "hour", "minute", "second", "builder", "options", "layout", "cols", "rows", "wrap", "checked", "accept"]`.

# `range_input`

## Attributes

* `form` (`:any`) - . Defaults to `nil`.
* `field` (`:atom`) - . Defaults to `nil`.
* `label` (`:string`) - labels your field. Defaults to `nil`.
* `class` (`:any`) - extra classes for the text input. Defaults to `nil`.
* Global attributes are accepted. Supports all globals plus: `["autocomplete", "autocorrect", "autocapitalize", "disabled", "form", "max", "maxlength", "min", "minlength", "list", "pattern", "placeholder", "readonly", "required", "size", "step", "value", "name", "multiple", "prompt", "selected", "default", "year", "month", "day", "hour", "minute", "second", "builder", "options", "layout", "cols", "rows", "wrap", "checked", "accept"]`.

# `search_input`

# `select`

## Attributes

* `form` (`:any`) - . Defaults to `nil`.
* `field` (`:atom`) - . Defaults to `nil`.
* `label` (`:string`) - labels your field. Defaults to `nil`.
* `class` (`:any`) - extra classes for the text input. Defaults to `nil`.
* `options` (`:list`) - options for the select. Defaults to `[]`.
* Global attributes are accepted. Supports all globals plus: `["autocomplete", "autocorrect", "autocapitalize", "disabled", "form", "max", "maxlength", "min", "minlength", "list", "pattern", "placeholder", "readonly", "required", "size", "step", "value", "name", "multiple", "prompt", "selected", "default", "year", "month", "day", "hour", "minute", "second", "builder", "options", "layout", "cols", "rows", "wrap", "checked", "accept"]`.

# `switch`

## Attributes

* `form` (`:any`) - . Defaults to `nil`.
* `field` (`:atom`) - . Defaults to `nil`.
* `label` (`:string`) - labels your field. Defaults to `nil`.
* `class` (`:any`) - extra classes for the text input. Defaults to `nil`.
* `size` (`:string`) - the size of the switch. Defaults to `"md"`. Must be one of `"xs"`, `"sm"`, `"md"`, `"lg"`, or `"xl"`.
* Global attributes are accepted. Supports all globals plus: `["checked_value", "unchecked_value", "checked", "hidden_input", "autocomplete", "autocorrect", "autocapitalize", "disabled", "form", "max", "maxlength", "min", "minlength", "list", "pattern", "placeholder", "readonly", "required", "size", "step", "value", "name", "multiple", "prompt", "selected", "default", "year", "month", "day", "hour", "minute", "second", "builder", "options", "layout", "cols", "rows", "wrap", "checked", "accept"]`.

# `telephone_input`

# `text_input`

## Attributes

* `form` (`:any`) - . Defaults to `nil`.
* `field` (`:atom`) - . Defaults to `nil`.
* `label` (`:string`) - labels your field. Defaults to `nil`.
* `class` (`:any`) - extra classes for the text input. Defaults to `nil`.
* Global attributes are accepted. Supports all globals plus: `["autocomplete", "autocorrect", "autocapitalize", "disabled", "form", "max", "maxlength", "min", "minlength", "list", "pattern", "placeholder", "readonly", "required", "size", "step", "value", "name", "multiple", "prompt", "selected", "default", "year", "month", "day", "hour", "minute", "second", "builder", "options", "layout", "cols", "rows", "wrap", "checked", "accept"]`.

# `textarea`

## Attributes

* `form` (`:any`) - . Defaults to `nil`.
* `field` (`:atom`) - . Defaults to `nil`.
* `label` (`:string`) - labels your field. Defaults to `nil`.
* `class` (`:any`) - extra classes for the text input. Defaults to `nil`.
* Global attributes are accepted. Supports all globals plus: `["autocomplete", "autocorrect", "autocapitalize", "disabled", "form", "max", "maxlength", "min", "minlength", "list", "pattern", "placeholder", "readonly", "required", "size", "step", "value", "name", "multiple", "prompt", "selected", "default", "year", "month", "day", "hour", "minute", "second", "builder", "options", "layout", "cols", "rows", "wrap", "checked", "accept"]`.

# `time_input`

## Attributes

* `form` (`:any`) - . Defaults to `nil`.
* `field` (`:atom`) - . Defaults to `nil`.
* `label` (`:string`) - labels your field. Defaults to `nil`.
* `class` (`:any`) - extra classes for the text input. Defaults to `nil`.
* Global attributes are accepted. Supports all globals plus: `["autocomplete", "autocorrect", "autocapitalize", "disabled", "form", "max", "maxlength", "min", "minlength", "list", "pattern", "placeholder", "readonly", "required", "size", "step", "value", "name", "multiple", "prompt", "selected", "default", "year", "month", "day", "hour", "minute", "second", "builder", "options", "layout", "cols", "rows", "wrap", "checked", "accept"]`.

# `time_select`

## Attributes

* `form` (`:any`) - . Defaults to `nil`.
* `field` (`:atom`) - . Defaults to `nil`.
* `label` (`:string`) - labels your field. Defaults to `nil`.
* `class` (`:any`) - extra classes for the text input. Defaults to `nil`.
* Global attributes are accepted. Supports all globals plus: `["autocomplete", "autocorrect", "autocapitalize", "disabled", "form", "max", "maxlength", "min", "minlength", "list", "pattern", "placeholder", "readonly", "required", "size", "step", "value", "name", "multiple", "prompt", "selected", "default", "year", "month", "day", "hour", "minute", "second", "builder", "options", "layout", "cols", "rows", "wrap", "checked", "accept"]`.

# `url_input`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
