UNPKG

cvb

Version:

Class Variance Builder 👷🏼

2 lines (1 loc) 2.03 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=s=>typeof s=="boolean"?`${s}`:s===0?"0":s,N=(s={},a)=>{const r={...a};for(const t in s){const l=s[t];typeof l<"u"&&(r[t]=l)}return r},V=(s={},a,r={})=>{let t="";for(const l in a){const c=s[l]??r[l],e=g(c),o=a[l][e];o&&(t&&(t+=" "),t+=o)}return t},S=(s,a)=>{let r="";for(const t of s){let l=!0;for(const c in t){if(c==="class"||c==="className")continue;const e=t[c],o=a[c];if(!(Array.isArray(e)?e.includes(o):o===e)){l=!1;break}}l&&(r&&(r+=" "),r+=t.class??t.className)}return r},k=(s={},a,r,t={})=>{var c;let l="";for(const e in r){const o=s[e]??t[e],f=g(o),i=(c=r[e][f])==null?void 0:c[a];i&&(l&&(l+=" "),l+=i)}return l},x=(s,a,r)=>{var l,c;let t="";for(const e of a){let o=!0;for(const i in e){if(i==="class"||i==="className")continue;const n=e[i],m=r[i];if(!(Array.isArray(n)?n.includes(m):m===n)){o=!1;break}}const f=((l=e.class)==null?void 0:l[s])??((c=e.className)==null?void 0:c[s]);o&&f&&(t&&(t+=" "),t+=f)}return t},b=(...s)=>{let a="",r=0,t;for(;r<s.length;)(t=s[r++])&&typeof t=="string"&&(a&&(a+=" "),a+=t);return a},h=s=>{const a=(...c)=>{var e;return typeof((e=s==null?void 0:s.hooks)==null?void 0:e.onComplete)=="function"?s.hooks.onComplete(b(...c)):b(...c)};return{compose:(...c)=>e=>{const{class:o,className:f,...i}=e??{};return a(...c.map(n=>n(i)),o??f)},cvb:c=>{const{base:e,variants:o,compoundVariants:f=[],defaultVariants:i={}}=c??{};return o===void 0?n=>a(e,(n==null?void 0:n.class)??(n==null?void 0:n.className)):n=>{const m=V(n,o,i),v=S(f,N(n,i));return a(e,m,v,(n==null?void 0:n.class)??(n==null?void 0:n.className))}},svb:c=>{const{slots:e=[],base:o,variants:f={},compoundVariants:i=[],defaultVariants:n={}}=c??{};return m=>{const v={},{class:d,className:C,...y}=m??{};for(const u of e)v[u]=a(o==null?void 0:o[u],k(y,u,f,n),x(u,i,N(y,n)),(d==null?void 0:d[u])??(C==null?void 0:C[u]));return v}},cx:a}},{compose:A,cvb:K,svb:P,cx:M}=h();exports.compose=A;exports.cvb=K;exports.cx=M;exports.defineConfig=h;exports.svb=P;