Don't bundle label + input + description into a single component with props for every variation (size, descriptionPlacement, iconLeft, iconRight, layout). This leads to "prop city" — an ever-growing API that can never anticipate every use case.
Instead, expose composable child components:
<!-- ❌ Monolithic prop-driven API -->
<Input label="Price" description="Set your price" icon="dollar" icon-right="help" description-placement="top" size="md" layout="horizontal" />