@klass/core
Version:
Class variant utility
29 lines (28 loc) • 800 B
JavaScript
import { klass as b } from "./index.js";
import "clsx";
const y = (e, o = {}) => {
const { it: u } = o, l = Object.keys(e.base), n = {};
for (const a of l)
n[a] = b(
{
base: e.base[a],
variants: Object.entries(e.variants).reduce(
(s, [t, f]) => (s[t] = Object.entries(f).reduce((r, [d, i]) => (r[d] = i[a], r), {}), s),
{}
),
defaultVariants: e.defaultVariants,
compoundVariants: e.compoundVariants?.map(({ class: s, ...t }) => ({ ...t, class: s?.[a] })).filter((s) => typeof s.class < "u")
},
{ it: u }
);
const c = (a = {}) => {
const s = {};
for (const t of l)
s[t] = (f = {}, r) => n[t]({ ...a, ...f }, r);
return s;
};
return c.o = e, c.klass = n, c;
};
export {
y as default
};