Phase 9b · Tier A
RN-universal Popover pilot
ScaffoldedAnchored, dismissable overlay. The trigger renders inline; the content opens in a transparent RN Modal positioned absolutely using the trigger's window coordinates. No floating-ui dependency.
Side-by-side: trigger + content
shadcn (Radix)
RN
Side + align variants
v1 does not auto-flip on edge collisions — that is a deliberate perf-budget choice.
Semantics
| Aspect | shadcn | RN | Notes |
|---|---|---|---|
| Anchoring | Radix Portal + floating-ui | measureInWindow + RN Modal | No DOM portal, no extra dep |
| Outside press | Radix dismiss | Pressable backdrop | Tap anywhere to close |
| Esc / back | Radix dismiss | Modal onRequestClose | Same on web and Android |
| side | top / right / bottom / left | top / right / bottom / left | Default bottom |
| align | start / center / end | start / center / end | Default center |
| sideOffset | Number | Number | Pixels off the trigger edge |
| Auto-flip | Yes (Radix) | No (v1) | Documented limitation |