Overlay position should adapt to screen width (mobile/tablet/desktop) and never overflow the viewport, even if the trigger is near an edge.
Combine ResponsivePositioner (choose preferred side based on width) with CollisionDetector and
FlipDecider to flip the side if overflow would occur.
ResponsiveDropdown, MobilePopover, AdaptiveTooltip