Adds `data-perm-step` + `<meta name="perm-axes">` + perms seed to the
5 overlay demos sharing Dialog's open/close shape:
- alert-dialog — trigger open → cancel. `?perm.open=true` seeds.
`disabled` deliberately NOT in axes: disabling the Provider blocks
the Trigger click path the runner depends on.
- popover — trigger open → close button. `?perm.open=true` seeds open1.
- tooltip — focus trigger (mode=focus, 1s settle — tooltip opens after
700ms delay). No close step: tooltip closes on blur.
- drawer — trigger open → close button (500ms settle for exit animation).
`?perm.open=true` seeds basicOpen.
- dropdown-menu — trigger open → Escape close (mode=key, 500ms settle).
Second step targets the Menu.Content selector because the Content
only mounts after the Trigger step fires (runner handles dynamic
step discovery).
All five declare `dir` as the only axis (universal RTL variant). The
other orientation / disabled axes don't apply to these overlay shapes.
## Coverage delta
- Before: 3 instrumented demos · 9 variants · 34 steps.
- After: 8 instrumented demos · 19 variants · 62 steps.
2x jump in per-CI-run validations with zero infra changes — just applying
the v1-v3 convention to additional demos.
## Verification
- `npm run check`: 0 errors in soma/morfo/test-route scope.
- `npm run smoke`: 65/65 routes.
- `npm run morfo:check`: 66/66 morfos.
- `npm run perm:check`: 8/8 demos · 62 steps · 19 variants.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>