# poetry-simple_form API

The simple_form adapter: activate! plus the input classes that map simple_form types onto poetry fields.

## Poetry::SimpleForm

The simple_form migration bridge: one initializer re-maps simple_form's
input types onto classes that render whole poetry Fields through
Poetry::Ui::FormBuilder. Every f.input keeps working; every poetry form
control is reachable by name through as:.

### .activate!

Install the bridge: map every type in INPUTS and make the flat poetry
wrapper the default (the Field owns its chrome, so the wrapper
contributes only display: contents).

## Poetry

The Poetry namespace, shared by every gem in the family.

## Poetry::SimpleForm::Generators

The gem's Rails generators.

## Poetry::SimpleForm::Generators::InstallGenerator

`rails g poetry:simple_form:install` - one initializer, the whole
shim: activate! re-maps the input types and installs the
passthrough wrapper. Delete the file to fall back to stock
simple_form rendering.

## Poetry::SimpleForm::Inputs

The input classes the bridge maps simple_form's types onto.

## Poetry::SimpleForm::Inputs::AutocompleteInput

Serves `as: :autocomplete`: a poetry Field wrapping the Autocomplete;
the collection becomes its suggestions.

### #input(_wrapper_options = nil)

## Poetry::SimpleForm::Inputs::Base

The shim's shared floor: every input renders through a
Poetry::Ui::FormBuilder bound to the SAME object/template, so the
poetry Field quartet (label/hint/error/aria) is byte-identical to
the native-builder path - no duplicated derivation.

### #input(_wrapper_options = nil)

Render the attribute as a whole poetry Field through the bound
Poetry::Ui::FormBuilder; the subclass's `poetry_as` pins the
control type (nil lets poetry infer it).

## Poetry::SimpleForm::Inputs::BooleanInput

The horizontal boolean Field (poetry's f.input boolean story);
input_html: { switch: true } opts into the setting-row Switch.

## Poetry::SimpleForm::Inputs::CalendarInput

Serves `as: :calendar`: a Field wrapping the inline Calendar.

## Poetry::SimpleForm::Inputs::CollectionBase

The collection floor: pairs from options[:collection] (both
f.input(collection:) and f.association arrive here - association
fetches the records first), label/value methods resolved with
simple_form's own detection chain.

## Poetry::SimpleForm::Inputs::CollectionCheckBoxesInput

Serves `as: :check_boxes`: a poetry Field wrapping the checkbox
group - one Checkbox row per collection item, posting an array.

### #input(_wrapper_options = nil)

Render the collection as a Field-wrapped checkbox group.

## Poetry::SimpleForm::Inputs::CollectionRadioButtonsInput

Serves `as: :radio_buttons`: a poetry Field wrapping the
RadioGroup component, one row per collection item.

### #input(_wrapper_options = nil)

Render the collection as a Field-wrapped RadioGroup.

## Poetry::SimpleForm::Inputs::CollectionSelectInput

Serves `as: :select` (and f.association's default): a poetry Field
wrapping the Select component; the hidden native <select> stays the
serialization truth.

### #input(_wrapper_options = nil)

Render the collection as a Field-wrapped Select;
include_blank/prompt becomes the placeholder option.

## Poetry::SimpleForm::Inputs::ComboboxInput

Serves `as: :combobox`: a poetry Field wrapping the filterable Combobox.

### #input(_wrapper_options = nil)

## Poetry::SimpleForm::Inputs::DatePickerInput

Serves `as: :date_picker`: a Field wrapping the DatePicker (popover calendar).

## Poetry::SimpleForm::Inputs::DateTimeInput

date -> DateField, time -> TimeField; :datetime falls back to
poetry's own DateTimeField (one datetime-local control, no select trio).

### #input(_wrapper_options = nil)

Render :date/:time/:datetime attributes as poetry DateField /
TimeField / DateTimeField - one control each, ISO on the wire.

## Poetry::SimpleForm::Inputs::FileInput

Serves `as: :file`: a poetry Field wrapping the FileInput
component (the native file control in poetry chrome; input_html
options such as variant:/multiple: pass through).

## Poetry::SimpleForm::Inputs::GroupedCollectionSelectInput

Serves `as: :grouped_select`: simple_form's group_method /
group_label_method resolve the groups, poetry's Select renders them
as labelled groups.

### #input(_wrapper_options = nil)

## Poetry::SimpleForm::Inputs::NativeSelectInput

Serves `as: :native_select`: a poetry Field wrapping the styled
native <select> (the no-JS picker).

### #input(_wrapper_options = nil)

## Poetry::SimpleForm::Inputs::NumericInput

NumberField; poetry re-derives min/max/step from numericality, so
the shim passes nothing simple_form computed.

## Poetry::SimpleForm::Inputs::OtpInput

Serves `as: :otp`: a Field wrapping the InputOtp (length: via poetry:).

## Poetry::SimpleForm::Inputs::PasswordInput

Serves `as: :password`: a poetry Field wrapping a type=password
Input; the value never round-trips into the markup.

## Poetry::SimpleForm::Inputs::SensitiveInput

Serves `as: :sensitive`: a Field wrapping the masked, reveal-on-demand SensitiveInput.

## Poetry::SimpleForm::Inputs::SliderInput

Serves `as: :slider` and simple_form's `:range`: a Field wrapping the Slider.

## Poetry::SimpleForm::Inputs::StringInput

string/email/url/tel/search/citext: the resolved simple_form
input_type IS poetry's as: vocabulary (citext folds to string).

## Poetry::SimpleForm::Inputs::SwitchInput

Serves `as: :switch`: a Field in the setting orientation wrapping the Switch.

## Poetry::SimpleForm::Inputs::TagGroupInput

Serves `as: :tag_group`: a Field wrapping the TagGroup.

## Poetry::SimpleForm::Inputs::TextInput

Serves `as: :text`: a poetry Field wrapping the Textarea
component.

## Poetry::SimpleForm::Inputs::TimeZoneInput

Serves `as: :time_zone`: every ActiveSupport::TimeZone in a poetry
Select, the priority zones (priority: or SimpleForm.time_zone_priority)
listed first.

### #input(_wrapper_options = nil)