I'm not a fan of the asChild prop used by many component libs.
It's a nice API in theory, but since TypeScript doesn't support type-checking the signature of React elements, you can't verify if the child being used is actually compatible. So it's not type-safe.