rjaros / kvision

Object oriented web framework for Kotlin/JS
https://kvision.io
MIT License
1.2k stars 66 forks source link

Add support for Material 3 #529

Closed manriif closed 1 month ago

manriif commented 1 month ago

This PR brings an experimental support of Material 3 (github) through the new module kvision-material.

The module provides support for the following material components:

The API (documented) will look familiar to Kvision adopters and is almost the same as the TypeScript's one but with all the benefits of Kotlin.

For now it has only been tested locally via maven local and lacks unit tests. As a result, all the components are marked as experimental and their usage require opt-in (ExperimentalMaterialApi). Despite this, the API is almost stable and can be published as a pre-release while waiting for the tests to be written.

The module is quite large and requires a kind of showcases like this one and some examples.

I am not very available at the moment until the end of next month to write tests but if anyone can it would be appreciated.

Enjoy 😊

manriif commented 1 month ago

This PR will close #121.

rjaros commented 1 month ago

This is a truly impressive contribution! Thank you very much. I'll try to review and merge the PR in the coming days.

rjaros commented 1 month ago

I've noticed your MaterialModule initilizer object was in the io.kvision.material package instead of io.kvision. This convention is required for the wizard to generate correct code. Unfortunately I've noticed this a bit too late (after 7.5.0 was alredy published) so it will be released with the next version. Until then the new module will not be visible in the wizard.

manriif commented 1 month ago

I didn't pay attention to that pattern, I would know how to proceed for future modules.