@klass/core
Version:
Class variant utility
2 lines (1 loc) • 1.59 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("clsx"),x=(n,t)=>`${n??t}`,$=n=>n,j="prefix",M=(n,t)=>`${n}${t}`,p=(n,t)=>`${t}${n}`,b=n=>{const t={};let r;for(r in n)t[r]=f.clsx(n[r]);return t},g=n=>{const t=b(n.variant),r=d=>{let a;return`${a=x(d,n.defaultVariant)}`in n.variant?t[a]:void 0};return r.o=n,r},A=({class:n,...t})=>t,P=n=>Object.keys(n),S=({class:n})=>f.clsx(n),G=(n,t={})=>{const{it:r=$}=t,d=f.clsx(n.base),a=[],u=Object.entries(n.variants).reduce((v,[V,l])=>(a.push(V),v[V]=g({variant:l,defaultVariant:n.defaultVariants?.[V]}),v),{}),s=n.compoundVariants??[],i=s.length>0,e=s.map(A),o=e.map(P),F=s.map(S),m=(v,V)=>{let l="",c,C;for(c=0;c<a.length;c++)(C=u[a[c]](v?.[a[c]]))&&(l&&(l+=" "),l+=C);if(i)for(c=0;c<e.length;c++){let O=e[c],y;o[c].every(k=>typeof(y=O[k])<"u"&&(v?.[k]??n.defaultVariants?.[k])===y)&&(C=F[c])&&(l&&(l+=" "),l+=C)}return r(f.clsx(d,l,V))};return m.o=n,m.v=u,m.vk=a,m},h=(n,t={})=>{const{as:r=j}=t,d=Object.keys(n.conditions),a=b(n.variant),u=r==="suffix"?p:M,s=i=>{let e;return typeof i!="object"?`${e=x(i)}`in n.variant?u(n.conditions[n.defaultCondition],a[e]):void 0:f.clsx(d.map(o=>o in i&&`${e=x(i[o])}`in n.variant&&u(n.conditions[o],a[e])))};return s.o=n,s},q=(n,t={})=>{const{as:r,it:d=$}=t,a=[],u=Object.entries(n.variants).reduce((i,[e,o])=>(a.push(e),i[e]=h({conditions:n.conditions,defaultCondition:n.defaultCondition,variant:o},{as:r}),i),{}),s=(i,e)=>d(f.clsx(a.map(o=>u[o](i?.[o])),e));return s.o=n,s.rv=u,s.rvk=a,s};exports.klass=G;exports.reklass=q;exports.revariant=h;exports.variant=g;