UNPKG

@klass/solid

Version:

Class variant utility for Solid

69 lines (68 loc) 1.42 kB
import { createComponent as C, Dynamic as g, mergeProps as L } from "solid-js/web"; import { splitProps as h, mergeProps as t } from "solid-js"; import { klass as _, reklass as b } from "@klass/core"; const j = (s) => s !== "class" && s !== "classList", K = (s) => Object.keys(s).filter(j), F = ["as"], v = ["class", "classList"], S = (s) => [s.class, s.classList]; function $(s, e, c = {}) { const { dp: { class: n, classList: i, ...p } = {}, it: m } = c, a = _(e, { it: m }), r = K(e.variants), u = { as: s }, d = { class: n, classList: i }, l = (o) => { const [f, P, k, y] = h(o, F, v, r); return C(g, L({ get component() { return t(u, f).as; } }, () => t(p, y), { get class() { return a(k, S(t(d, P))); } })); }; return l.klass = a, l; } function q(s, e, c = {}) { const { dp: { class: n, classList: i, ...p } = {}, as: m, it: a } = c, r = b(e, { as: m, it: a }), u = K(e.variants), d = { as: s }, l = { class: n, classList: i }, o = (f) => { const [P, k, y, V] = h(f, F, v, u); return C(g, L({ get component() { return t(d, P).as; } }, () => t(p, V), { get class() { return r(y, S(t(l, k))); } })); }; return o.reklass = r, o; } export { $ as klassed, q as reklassed };