So the reason its implemented so weirdly right now is because of a weird limitation to overflow. A singular div cannot have different overflow behavior for the x and y axis. To circumvent this, dropdowns now have an empty dropdown div for dynamic sizing, a wrapper div for overflow-x, and an absolutely positioned options div for overflow-y. This requires me to do some runtime js styling, which is awful and bad, so id love to look at this again sometime and implement it better, but I guess it works now. There is a slight flicker when loading or showing options, due to the setTimeout for 1 frame (like I said, sketchy)
So the reason its implemented so weirdly right now is because of a weird limitation to overflow. A singular div cannot have different overflow behavior for the x and y axis. To circumvent this, dropdowns now have an empty dropdown div for dynamic sizing, a wrapper div for overflow-x, and an absolutely positioned options div for overflow-y. This requires me to do some runtime js styling, which is awful and bad, so id love to look at this again sometime and implement it better, but I guess it works now. There is a slight flicker when loading or showing options, due to the setTimeout for 1 frame (like I said, sketchy)