UNPKG

tailwind-variants

Version:

🦄 Tailwindcss first-class variant API

1 lines • 4.34 kB
import {a}from'./chunk-2DBF3ZSA.js';import {c,h,d,g,b,i}from'./chunk-HK3UQQ6K.js';var st={twMerge:true,twMergeConfig:{},responsiveVariants:false},x=(...l)=>{let u=[];X(l,u);let t="";for(let d=0;d<u.length;d++)u[d]&&(t&&(t+=" "),t+=u[d]);return t||void 0};function X(l,u){for(let t=0;t<l.length;t++){let d=l[t];Array.isArray(d)?X(d,u):d&&u.push(d);}}var P=null,B={},F=false,S=(...l)=>u=>{let t=x(l);return !t||!u.twMerge?t:((!P||F)&&(F=false,P=a(B)),P(t)||void 0)},Q=(l,u)=>{for(let t in u)t in l?l[t]=x(l[t],u[t]):l[t]=u[t];return l},rt=(l,u)=>{let{extend:t=null,slots:d$1={},variants:R={},compoundVariants:q=[],compoundSlots:A=[],defaultVariants:L={}}=l,m={...st,...u},M=t?.base?x(t.base,l?.base):l?.base,y=t?.variants&&!c(t.variants)?h(R,t.variants):R,T=t?.defaultVariants&&!c(t.defaultVariants)?{...t.defaultVariants,...L}:L;!c(m.twMergeConfig)&&!d(m.twMergeConfig,B)&&(F=true,B=m.twMergeConfig);let j=c(t?.slots),$=c(d$1)?{}:{base:x(l?.base,j&&t?.base),...d$1},N=j?$:Q({...t?.slots},c($)?{base:l?.base}:$),w=c(t?.compoundVariants)?q:g(t?.compoundVariants,q),V=b$1=>{if(c(y)&&c(d$1)&&j)return S(M,b$1?.class,b$1?.className)(m);if(w&&!Array.isArray(w))throw new TypeError(`The "compoundVariants" prop must be an array. Received: ${typeof w}`);if(A&&!Array.isArray(A))throw new TypeError(`The "compoundSlots" prop must be an array. Received: ${typeof A}`);let Z=(n,e,s=[],o)=>{let a=s;if(typeof e=="string"){let c=i(e).split(" ");for(let f=0;f<c.length;f++)a.push(`${n}:${c[f]}`);}else if(Array.isArray(e))for(let r=0;r<e.length;r++)a.push(`${n}:${e[r]}`);else if(typeof e=="object"&&typeof o=="string"&&o in e){let r=e[o];if(r&&typeof r=="string"){let f=i(r).split(" "),p=[];for(let i=0;i<f.length;i++)p.push(`${n}:${f[i]}`);a[o]=a[o]?a[o].concat(p):p;}else if(Array.isArray(r)&&r.length>0){let c=[];for(let f=0;f<r.length;f++)c.push(`${n}:${r[f]}`);a[o]=c;}}return a},U=(n,e=y,s=null,o=null)=>{let a=e[n];if(!a||c(a))return null;let r=o?.[n]??b$1?.[n];if(r===null)return null;let c$1=b(r),f=Array.isArray(m.responsiveVariants)&&m.responsiveVariants.length>0||m.responsiveVariants===true,p=T?.[n],i=[];if(typeof c$1=="object"&&f)for(let[C,G]of Object.entries(c$1)){let nt=a[G];if(C==="initial"){p=G;continue}Array.isArray(m.responsiveVariants)&&!m.responsiveVariants.includes(C)||(i=Z(C,nt,i,s));}let v=c$1!=null&&typeof c$1!="object"?c$1:b(p),h=a[v||"false"];return typeof i=="object"&&typeof s=="string"&&i[s]?Q(i,h):i.length>0?(i.push(h),s==="base"?i.join(" "):i):h},_=()=>{if(!y)return null;let n=Object.keys(y),e=[];for(let s=0;s<n.length;s++){let o=U(n[s],y);o&&e.push(o);}return e},K=(n,e)=>{if(!y||typeof y!="object")return null;let s=[];for(let o in y){let a=U(o,y,n,e),r=n==="base"&&typeof a=="string"?a:a&&a[n];r&&s.push(r);}return s},W={};for(let n in b$1){let e=b$1[n];e!==void 0&&(W[n]=e);}let z=(n,e)=>{let s=typeof b$1?.[n]=="object"?{[n]:b$1[n]?.initial}:{};return {...T,...W,...s,...e}},D=(n=[],e)=>{let s=[],o=n.length;for(let a=0;a<o;a++){let{class:r,className:c,...f}=n[a],p=true,i=z(null,e);for(let v in f){let h=f[v],C=i[v];if(Array.isArray(h)){if(!h.includes(C)){p=false;break}}else {if((h==null||h===false)&&(C==null||C===false))continue;if(C!==h){p=false;break}}}p&&(r&&s.push(r),c&&s.push(c));}return s},tt=n=>{let e=D(w,n);if(!Array.isArray(e))return e;let s={},o=S;for(let a=0;a<e.length;a++){let r=e[a];if(typeof r=="string")s.base=o(s.base,r)(m);else if(typeof r=="object")for(let c in r)s[c]=o(s[c],r[c])(m);}return s},et=n=>{if(A.length<1)return null;let e={},s=z(null,n);for(let o=0;o<A.length;o++){let{slots:a=[],class:r,className:c$1,...f}=A[o];if(!c(f)){let p=true;for(let i in f){let v=s[i],h=f[i];if(v===void 0||(Array.isArray(h)?!h.includes(v):h!==v)){p=false;break}}if(!p)continue}for(let p=0;p<a.length;p++){let i=a[p];e[i]||(e[i]=[]),e[i].push([r,c$1]);}}return e};if(!c(d$1)||!j){let n={};if(typeof N=="object"&&!c(N)){let e=S;for(let s in N)n[s]=o=>{let a=tt(o),r=et(o);return e(N[s],K(s,o),a?a[s]:void 0,r?r[s]:void 0,o?.class,o?.className)(m)};}return n}return S(M,_(),D(w),b$1?.class,b$1?.className)(m)},Y=()=>{if(!(!y||typeof y!="object"))return Object.keys(y)};return V.variantKeys=Y(),V.extend=t,V.base=M,V.slots=N,V.variants=y,V.defaultVariants=T,V.compoundSlots=A,V.compoundVariants=w,V},it=l=>(u,t)=>rt(u,t?h(l,t):l);export{S as cn,x as cnBase,it as createTV,st as defaultConfig,rt as tv};