Something to consider is the long-term objective of kmdc: is it to a) wrap material-components-web (
https://github.com/material-components/material-components-web), or b) provide material design components for Kotlin/Compose on the web platform (that is, components following the design system laid out in
https://material.io/). If "a", then option 1 is probably the right approach. If "b", then utilizing material-components-web can be thought of as a pragmatic approach to quickly getting a functional implementation in place, while long term it may be desirable to write additional components, replace some or all with Kotlin for enhanced functionality, type safety, etc., and extend or enhance the components with more idiomatic APIs. That leads you to option 2 or 3 which is a bigger undertaking but also more valuable. I believe option 2 (or 3) will require more effort on the documentation because if kmdc is only a simple wrapper you can easily rely on the material-components-web documentation to figure out how to use it.