UNPKG

css-variants

Version:

Lightweight helpers to compose class names and inline styles using variants. Zero runtime deps, small bundle, and first-class TypeScript support.

2 lines 2.91 kB
'use strict';function C(a){if(typeof a=="string")return a;if(typeof a=="number"||typeof a=="bigint")return String(a);if(a==null||typeof a=="boolean")return "";let s="";if(Array.isArray(a)){let r=0,l,c;for(;r<a.length;r++)(l=a[r])&&(c=C(l))&&(s&&(s+=" "),s+=c);return s}for(let r in a)a[r]&&(s&&(s+=" "),s+=r);return s}function V(...a){let s="",r=0,l,c;for(;r<a.length;r++)(l=a[r])&&(c=C(l))&&(s&&(s+=" "),s+=c);return s}function S(a,s,r){let l={...a};if(s)for(let c in s)s[c]!==void 0&&(!r||!r.includes(c))&&(l[c]=s[c]);return l}var k=a=>{let{base:s,variants:r,compoundVariants:l,defaultVariants:c,classNameResolver:p=V}=a;return r?f=>{let d=S(c,f,["className"]),n=[];for(let e in d){let i=r[e]?.[d[e]];i&&n.push(i);}if(l)for(let e=0;e<l.length;e++){let i=l[e],t=true;for(let o in i){if(o==="className")continue;let y=i[o],u=d[o];if(Array.isArray(y)?!y.includes(u):y!==u){t=false;break}}t&&i.className&&n.push(i.className);}return p(s,n,f?.className)}:f=>p(s,f?.className)};var A=a=>{let{slots:s,base:r,variants:l,compoundVariants:c,defaultVariants:p,classNameResolver:f=V}=a;return l?d=>{let n=S(p,d,["classNames"]),e={};for(let t of s)r?.[t]?e[t]=Array.isArray(r[t])?[...r[t]]:[r[t]]:e[t]=[];for(let t in n){let o=l[t]?.[n[t]];if(o)for(let y in o)e[y]?.push(o[y]);}if(c)for(let t=0;t<c.length;t++){let o=c[t],y=true;for(let u in o){if(u==="classNames")continue;let x=o[u],m=n[u];if(Array.isArray(x)?!x.includes(m):x!==m){y=false;break}}if(y&&o.classNames)for(let u in o.classNames)e[u]?.push(o.classNames[u]);}if(d?.classNames)for(let t in d.classNames)e[t]?.push(d.classNames[t]);let i={};for(let t in e)i[t]=f(e[t]);return i}:d=>{let n={};for(let e of s)n[e]=f(r?.[e],d?.classNames?.[e]);return n}};var E=a=>{let{base:s,variants:r,compoundVariants:l,defaultVariants:c}=a;return r?p=>{let f={...s},d=S(c,p,["style"]);for(let n in d){let e=r[n]?.[d[n]];e&&Object.assign(f,e);}if(l)for(let n=0;n<l.length;n++){let e=l[n],i=true;for(let t in e){if(t==="style")continue;let o=e[t],y=d[t];if(Array.isArray(o)?!o.includes(y):o!==y){i=false;break}}i&&e.style&&Object.assign(f,e.style);}return p?.style&&Object.assign(f,p.style),f}:p=>({...s,...p?.style})};var w=a=>{let{slots:s,base:r,variants:l,compoundVariants:c,defaultVariants:p}=a;return l?f=>{let d=S(p,f,["styles"]),n={};for(let e of s)n[e]={...r?.[e]};for(let e in d){let i=l[e]?.[d[e]];if(i)for(let t in i)Object.assign(n[t],i[t]);}if(c)for(let e=0;e<c.length;e++){let i=c[e],t=true;for(let o in i){if(o==="styles")continue;let y=i[o],u=d[o];if(Array.isArray(y)?!y.includes(u):y!==u){t=false;break}}if(t&&i.styles)for(let o in i.styles)Object.assign(n[o],i.styles[o]);}if(f?.styles)for(let e in f.styles)Object.assign(n[e],f.styles[e]);return n}:f=>{let d={};for(let n of s)d[n]={...r?.[n],...f?.styles?.[n]};return d}};exports.cv=k;exports.cx=V;exports.scv=A;exports.ssv=w;exports.sv=E;//# sourceMappingURL=index.cjs.map //# sourceMappingURL=index.cjs.map