A diferencia del demo presence-group —que
construye Presence + PresenceGroup a mano— esto usa el componente
real <Reveal>: su morfo declara
panel.animation.children = { enter: 'before', exit: 'after' }, y el
provider lee ese contrato compilado para construir el grupo (RFC §4). El
panel entra, luego los ítems entran en cascada; al cerrar los ítems salen
primero mientras el panel retiene su DOM (exit-heavy §8.1), y solo después se
va el panel. El escalonado es CSS puro; soma solo decide el cuándo. El
selector cambia el prop animation, que el componente
enruta a las superficies declaradas
(Panel + Items) como data-animation-style — se nombra una vez, el sistema sabe dónde
(RFC §5).
Modo (c) — compone sema + motion (RFC Apéndice B): al abrir y al
cerrar, los eventos declaran channels: ['sound'] y suena un tono
emerge a la vez que corre la cascada. No pelean porque
eidos neutraliza su propia firma visual sobre las superficies coordinadas
(animation: none donde hay data-animation-style +
data-event-phase); la cascada es transition y sobrevive. El opt-out vive
en motion, sema intacto. (Sube el volumen; el audio arranca con el primer click.)