dropdown: one directive to rule them all