## icon (`poetry_icon`)

Renders an inline SVG icon from the icon set.

Class: Poetry::Ui::Icon::Component - BEM block `poetry-ui-icon`.
- `label:` (string) - The accessible name - given, the icon is standalone (role=img); absent, it is decorative (aria-hidden).
- `library:` (symbol) - Per-render icon set override (defaults to config.icon_library).
- `name:` (symbol) - required, format: icon-name - The icon's name in the active set. format: :"icon-name" is the machine-readable value contract: the registry carries it, and literal names are validated against the icon set statically - a misspelled name is caught before it can crash a render.
- PART `icon` - The <svg> root itself - the vendored icon markup renders inside; ARIA (label: vs decorative) rides here
In blocks: `action-bar`, `app-shell`, `data-index`, `destructive-panel`, `page-header`, `section-card`, `stepper`, `top-nav` - for a screen, start from the block (MCP compose/describe_block, or `bin/rails g poetry:block`), not from scratch.
- RULE: Icons are decorative by default (aria-hidden); pass label: when the icon stands alone.
- RULE: Never inline raw <svg> markup where an icon exists - use poetry_icon.
