Date range picker
Source
Suppositions:
Clicking and dragging creates a new range rather than modifying the existing range
Needing to select a single day range is a very uncommon use case
The left calendar is the "start" and the right calendar is the "end"
Users changing the "end" calendar to show a month before the "start" calendar will not happen very often
Trying to prevent it from happening would make the picker frustrating to people who were in the middle of adjusting both calendars
it's more important that the picker behave consistently than it is to try to make the UX super-intuitive in that state
JS interface