KvadrantMaterialAdapter

Raises a MaterialTheme derived from the surrounding KvadrantTheme, so a consumer's existing Material widgets stop looking foreign inside a Metro application.

This is for foreign widgets, not for building a Metro kit out of Material. Of roughly twenty-two Material 3 components, about four survive on theming alone, ten need a wrapper and eleven need replacing outright — the disagreements are structural rather than stylistic and research §1.3 counts them. What this earns its place on is the date picker or the autocomplete a consumer already depends on and is not going to rewrite.

It must be wrapped inside a KvadrantTheme, because everything it provides is read from one.

What it cannot reach. Theming squares every component that reads MaterialTheme.shapesCardDefaults.shape under this adapter is a zero corner, measured — and it reaches nothing that hard-codes its own. ButtonDefaults.shape is RoundedCornerShape(50%) from a token and ignores the theme entirely, so a Material Button stays a pill here no matter how many Shapes slots are filled. That is not a gap in this adapter; it is the "shapes forced round" cause behind the ten or so components research §1.3 counts as needing a wrapper rather than theming. Pass shape = MaterialTheme.shapes.small at the call site for those, and expect to find more of them the same way this one was found — by measuring a corner.