Material UI is a component library, but it's not coming from google, it is an implementation of Google's Material Design (I don't know why this bugs me that people get it wrong so often).
Also, the other UI kit mentioned, I'm not even sure how it made the list. It's woefully incomplete. react-bootstrap[1] or reactstrap[2] would both be better options.
[1] https://react-bootstrap.github.io/
[2] https://reactstrap.github.io/
That works... though, probably my favorite datepicker (excluding the lack of sizing for phone/touch) is probably the UX for the Microsoft Ajax Toolkit (hate the toolkit, UX for dates is really good). When you click on the month/year title, you get a panel with each month in the year with prev/next, click on the title again, and you get a decade of years with prev/next.
https://ajaxcontroltoolkit.devexpress.com/Calendar/Calendar.aspx
About the only thing I'd do is tweak the styling a bit larger, and display it full screen for small/mobile devices (phone). I always thought it was a very intuative interface.
I made this one a few years ago... don't like it as much as the one above, but it's good for mobile use. The demo only shows 3 years, but it's in a scrolling field like the months. I should really break it up, and make it compatible with the material-ui library... as it is, it works standalone. Next time I need a date picker beyond the browser's date input, I'll probably revise it. Right now, I mostly just use <input type="date" /> and defer to the browser's UI.
https://github.com/tracker1/md-datepicker/http://tracker1.github.io/md-datepicker/
Two of my biggest complaints with date pickers are that they often don't align correctly for mobile, and a bigger issue is the inability to jump to a given month/year... About half the examples are unusable for something like a Date of Birth field.
Added an Issue with working code using the `sha1` module without the babel polyfills, axios etc... too much overhead. Can polyfill fetch and Promise for IE support all modern browsers covered and the payload won't be the 138kb it currently is.
Most modern browsers support async, and have fetch. It would be better to convert to commonjs imports, without the use of corejs or regenerator... also, may be best for a specific browser version to only polyfill sha1 and another using crypto for node.
Alternatively: https://www.npmjs.com/package/sha1