First component in the soma→eidos porting sprint. Two-part compound
(Provider + Item), modeled on radio-group's structure.
Eidos surface:
- variant: 'solid' | 'outline' | 'ghost' — mirrors <Toggle>
- color: 7 tones, propagated to items via data-color cascade
- size: xs/sm/md/lg/xl (responsive)
- attached: boolean — segmented control affordance (shared borders,
active item z-indexed above neighbors)
- block: boolean — items grow to fill the inline-size
- iconOnly: per-item flag — square aspect, sr-only label
Items consume the Toggle palette token vocabulary (--toggle-*) so a
standalone <Toggle> and a <ToggleGroup.Item> at the same variant ×
color × size are visually identical — single source of truth for the
"toggle button" recipe.
Morfo scope fix: ['soma'] → ['soma', 'sema', 'eidos']. Adds apg URL
(WAI-ARIA Button pattern) so the audit's A-1.4 rule passes. The
commit-toggle event's sound comes from the `commit` family base — no
per-component cascade needed.
Demo: canonical 6-tab template (Live / API / Morfo / Sema / Recipe /
A11y) with every prop exposed as a chip/switch, soma + eidos snippets
update live, sema "▶ play" button on the commit-toggle event.
Reference comparison vs Radix Primitives / Bits UI / Ark UI / Chakra
v3 / Mantine / Radix Themes / shadcn documented in README §Comparativa.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>