Delete the recipe code nothing uses, and the leftovers (#272)
The recipe engine had two features with no consumers. `extend` was
declared on both config shapes and implemented across three functions,
including the recursive config merging that was also the only untested
logic in the file. Slotted compound variants were similar: the four
slot-using recipes declare no compound variants, and the two recipes that
do are both single part. Deleting both takes recipe.ts from 457 to 354
lines. Single-part compound variants stay, because button and text use
them. Re-add either the day a second recipe needs it.
Delete the nine hand-written Text variant types rather than deriving
them. Four string unions and three key arrays duplicated what the recipe
already knows with nothing type-checking the two against each other, so
adding a wrap value or a colour role would have gone stale silently. All
nine were exported publicly with no consumers, invisible to knip because
the barrel is an entry point. Text's own component already derives its
prop types by indexing TextVariants, and button, field and icon already
export only the aggregate, so the barrel now matches that convention.
input-states.css.ts emits no CSS at all, yet the suffix marked it as
having side effects and kept it out of consumer tree shaking. Renamed to
input-states.ts.
The barrel exported loadingSkeleton as a plain class string among twelve
callable recipes, which invited a consumer to call it; it is now
loadingSkeletonClassName. Renaming rather than wrapping it in recipe()
keeps the emitted CSS untouched. Two recipes also both exported something
named `icon`, so icon-button's is now iconButtonIcon.
The emitted stylesheet is byte-identical at 78007 bytes and the v2
goldens are unchanged, which is expected: the deleted code paths were
never exercised, and the renames do not reach content-hashed class names.