## marker (`poetry_marker`)

A transcript divider or inline status marker for chat UIs.

Class: Poetry::Ui::Marker::Component - BEM block `poetry-ui-marker`.
Content block REQUIRED (the marker label) - a blockless call raises.
- `variant:` (symbol) - one of default|separator|border, default "default", required - The divider treatment - :separator for date/section breaks, :border for a full-width rule under pinned headers.
- `announce:` (symbol) - one of none|status, default "none" - Makes the marker a live status region (role=status) for the one in-flight marker; static dividers never announce.
- `tag:` (symbol) - default "div" - The root element's tag.
Slots: icon (Optional leading visual: name: renders an icon glyph; a block carries other media (a Spinner mid-run). Either way it sits in an aria-hidden cell and stays decorative - the marker root does the announcing.; with_icon yields NOTHING to the block - no |param|, write content directly).
- PART `marker` - The divider/status root - the label is real announced content (role=status when announce: :status; never role=separator) | states: data-variant=default|separator|border (always - the resolved variant)
- PART `marker-icon` - Decorative icon wrapper (aria-hidden always)
- PART `marker-content` - The label span - the marker text itself
- RULE: The marker text is real announced content - never mark it aria-hidden or role=separator.
- RULE: announce: :status is for the ONE in-flight marker (streaming status); static dividers never announce.
- RULE: Icons ride the icon slot (decorative always): with_icon(name:) for a lucide glyph, with_icon { } for other media (a Spinner mid-run).
- RULE: Use variant: :separator for date/section breaks; :border under pinned headers.
