@oxidia/style-variance-authority
Version:
Style Variance Authority
32 lines • 982 B
JavaScript
function falsyToString(value) {
if (typeof value == "boolean") {
return `${value}`;
}
if (value === 0) {
return "0";
}
return value;
}
export default function sva(config) {
return function (props) {
if (!config?.variants) {
return config?.base;
}
const { variants, defaultVariants } = config;
const styles = Object.keys(variants).map((variant) => {
// e.g: variant = size
// e.g: variantProp = md
const variantProp = props?.[variant];
// e.g: variantProp = sm
const defaultVariantProp = defaultVariants?.[variant];
const variantKey = (falsyToString(variantProp) ||
falsyToString(defaultVariantProp));
return variants[variant][variantKey];
});
if (config.base) {
return [config.base, ...styles];
}
return styles;
};
}
//# sourceMappingURL=index.js.map