@klass/solid
Version:
Class variant utility for Solid
69 lines (68 loc) • 1.42 kB
JavaScript
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
};