TypeScript, end to end

The types and the docs describe the same surface.

Variants, slot names, and component overrides resolve from the public API itself. That means autocomplete follows the documented contract instead of a parallel, accidental type layer.