## item (`poetry_item`)

A generic list row with media, content, and actions.

Class: Poetry::Ui::Item::Component - BEM block `poetry-ui-item`.
- `size:` (symbol) - one of default|sm|xs, default "default", required - The row's density.
- `variant:` (symbol) - one of default|outline|muted, default "default", required - The row's visual treatment - :outline boxes it, :muted recedes.
- `media_variant:` (symbol) - one of default|icon|image, default "default" - The media treatment - :icon for a glyph, :image for a thumbnail.
- `tag:` (symbol) - default "div" - The root element - tag: :a (href via passthrough) makes the whole row clickable.
Slots: media (The leading media cell - a glyph or thumbnail (see media_variant).), title (The title row.), description (The muted description line (clamps to two lines).), actions (The trailing actions cell - buttons, a menu, a switch.), header (Full-width row above the media/content columns.), footer (Full-width row below the media/content columns.).
- PART `item` - The row root (a div by default; tag: :a for a clickable row) - variant and density land here as data attributes | states: data-variant=default|outline|muted (the row's visual variant); data-size=default|sm|xs (the row's density)
- PART `item-media` - The leading media cell - sized and rounded by its variant | states: data-variant=default|icon|image (the media treatment)
- PART `item-content` - The center column collecting title, description, and loose content
- PART `item-title` - The title row
- PART `item-description` - The muted description line
- PART `item-header` - Full-width row above the media/content columns
- PART `item-actions` - The trailing actions cell
- PART `item-footer` - Full-width row below the media/content columns
- RULE: Rows live inside poetry_item_group (role=list) and each row passes role: "listitem" - a role=list parent with roleless children fails aria-required-children.
- RULE: Separate grouped rows with poetry_item_separator.
- RULE: Compose with the slots (media/title/description/actions); loose content lands in the content column after the description.
- RULE: media_variant: :icon for a glyph, :image for a thumbnail (sized/rounded automatically).
- RULE: A clickable row is tag: :a with href: - never wrap an Item in a bare <a>.
