## input_group (`poetry_input_group`)

One bordered surface combining an input with buttons, icons, or add-ons.

Class: Poetry::Ui::InputGroup::Component - BEM block `poetry-ui-input_group`.
Content block REQUIRED (its control + addons) - a blockless call raises.
- PART `input-group` - The bordered group surface (role=group) - wears the border, the focus-within ring, and the invalid ring for the borderless control inside
- PART `input-group-addon` - One addon cell (icons, text, kbd hints, tiny buttons) rendered by poetry_input_group_addon around the control | states: data-align=inline-start|inline-end|block-start|block-end (always - the addon's align: axis (inline rides the row, block takes a full-width row))
In blocks: `data-index` - for a screen, start from the block (MCP compose/describe_block, or `bin/rails g poetry:block`), not from scratch.
- RULE: The control INSIDE must be poetry_input_group_input/_textarea - a plain poetry_input keeps its own border+ring and double-chromes the group.
- RULE: Addons are poetry_input_group_addon(align:) wrapping icons/text/buttons; use poetry_input_group_text for muted captions and poetry_input_group_button for tiny actions.
- RULE: The group is a surface, not a label - the control still needs its Label/Field pairing.
