@deepsquare/turbine
Version:
Zero-dependencies efficient wrapper to build Tailwind-based React components easily.
21 lines (19 loc) • 856 B
TypeScript
import { FC } from "react";
type ElementsWithClass = {
[K in keyof JSX.IntrinsicElements]: Extract<JSX.IntrinsicElements[K], {
className?: string | undefined;
}>;
};
/**
* Build a turbine component based a the `T` HTML tag.
* @param {T} As The HTML tag.
* @param {string} className The class to apply.
* @param {Omit<JSX.IntrinsicElements[T], "className">} defaultProps The default props to pass to the component.
* @returns {React.FC<JSX.IntrinsicElements[T]>} The "turbine" component.
*
* @example Bootstrap-like cards:
* const Card = turbine('div', 'px-6 py-4 rounded bg-grey-200');
* export default Card
*/
export default function turbine<T extends keyof ElementsWithClass>(As: T, className: string, defaultProps?: Omit<ElementsWithClass[T], 'className'>): FC<ElementsWithClass[T]>;
//# sourceMappingURL=turbine.d.ts.map