UNPKG

@klass/core

Version:

Class variant utility

29 lines (28 loc) 800 B
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 };