tailwind-variants 0.0.28 → 0.0.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/chunk-FUBUDMV2.js +7 -0
- package/dist/generated.d.ts +3 -0
- package/dist/generator.cjs +9 -0
- package/dist/generator.d.ts +7 -0
- package/dist/generator.js +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +1 -1
- package/dist/transformer.cjs +12 -7
- package/dist/transformer.d.ts +6 -3
- package/dist/transformer.js +9 -6
- package/package.json +4 -1
- package/utils.d.ts +1 -0
- package/utils.js +1 -0
package/README.md
CHANGED
|
@@ -101,7 +101,7 @@ module.exports = withTV({
|
|
|
101
101
|
## Acknowledgements
|
|
102
102
|
|
|
103
103
|
- [**cva**](https://github.com/joe-bell/cva) ([Joe Bell](https://github.com/joe-bell))
|
|
104
|
-
This project as started as an extension of Joe's work on `cva` – a great tool for generating variants for a single element with Tailwind CSS. Big shoutout to [Joe Bell](https://github.com/joe-bell) and [contributors](https://github.com/joe-bell/cva/graphs/contributors) you guys rock! 🤘 - we recommend to use `cva` if don't need
|
|
104
|
+
This project as started as an extension of Joe's work on `cva` – a great tool for generating variants for a single element with Tailwind CSS. Big shoutout to [Joe Bell](https://github.com/joe-bell) and [contributors](https://github.com/joe-bell/cva/graphs/contributors) you guys rock! 🤘 - we recommend to use `cva` if don't need if don't need any of the **Tailwind Variants** features listed [here](https://www.tailwind-variants.org/docs/comparison).
|
|
105
105
|
|
|
106
106
|
- [**Stitches**](https://stitches.dev/) ([Modulz](https://modulz.app))
|
|
107
107
|
The pioneers of the `variants` API movement. Inmense thanks to [Modulz](https://modulz.app) for their work on Stitches and the community around it. 🙏
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import n from 'fs';
|
|
2
|
+
import s from 'path';
|
|
3
|
+
|
|
4
|
+
var t=e=>{n.writeFileSync(s.join(__dirname,"generated.d.ts"),e);},c=e=>`export type TVGeneratedScreens = ${Object.keys(e).map(r=>`"${r}"`).join(" | ")};
|
|
5
|
+
`,p=e=>{queueMicrotask(()=>{if(e!=null&&e.screens){let r=c(e.screens);t(r);}});};
|
|
6
|
+
|
|
7
|
+
export { p as a };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var n = require('fs');
|
|
4
|
+
var s = require('path');
|
|
5
|
+
|
|
6
|
+
var t=e=>{n.writeFileSync(s.join(__dirname,"generated.d.ts"),e);},c=e=>`export type TVGeneratedScreens = ${Object.keys(e).map(r=>`"${r}"`).join(" | ")};
|
|
7
|
+
`,p=e=>{queueMicrotask(()=>{if(e!=null&&e.screens){let r=c(e.screens);t(r);}});};
|
|
8
|
+
|
|
9
|
+
exports.generateTypes = p;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { a as generateTypes } from './chunk-FUBUDMV2.js';
|
package/dist/index.cjs
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
var tailwindMerge = require('tailwind-merge');
|
|
4
4
|
|
|
5
|
-
var h=(...e)=>e.flat(1/0).filter(Boolean).join(" "),V=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,g=e=>!e||typeof e!="object"||Object.keys(e).length===0,H=(...e)=>[...e].flat().filter(Boolean),M=(...e)=>(l={})=>l.twMerge?(g(l.twMergeConfig)?tailwindMerge.twMerge:tailwindMerge.extendTailwindMerge(l.twMergeConfig))(h(e)):h(e),B=(e,l)=>{let y={};return typeof e!="object"||typeof l!="object"||Object.keys(e).forEach(c=>{l[c]?y[c]=h([e[c],l[c]]):y[c]=e[c];}),y},E=(e,l)=>{let y={};for(let c in e)l!=null&&l.hasOwnProperty(c)?y[c]=typeof e[c]=="object"?E(e[c],l[c]):l[c]+" "+e[c]:y[c]=e[c];for(let c in l)y.hasOwnProperty(c)||(y[c]=l[c]);return y},S=e=>!e||typeof e!="string"?e:e.replace(/\s+/g," ").trim();var re=(e,l={twMerge:!0,twMergeConfig:{}})=>{var N,T,v,k
|
|
5
|
+
var h=(...e)=>e.flat(1/0).filter(Boolean).join(" "),V=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,g=e=>!e||typeof e!="object"||Object.keys(e).length===0,H=(...e)=>[...e].flat().filter(Boolean),M=(...e)=>(l={})=>l.twMerge?(g(l.twMergeConfig)?tailwindMerge.twMerge:tailwindMerge.extendTailwindMerge(l.twMergeConfig))(h(e)):h(e),B=(e,l)=>{let y={};return typeof e!="object"||typeof l!="object"||Object.keys(e).forEach(c=>{l[c]?y[c]=h([e[c],l[c]]):y[c]=e[c];}),y},E=(e,l)=>{let y={};for(let c in e)l!=null&&l.hasOwnProperty(c)?y[c]=typeof e[c]=="object"?E(e[c],l[c]):l[c]+" "+e[c]:y[c]=e[c];for(let c in l)y.hasOwnProperty(c)||(y[c]=l[c]);return y},S=e=>!e||typeof e!="string"?e:e.replace(/\s+/g," ").trim();var re=(e,l={twMerge:!0,twMergeConfig:{}})=>{var N,T,v,F,k;let{slots:y={},variants:c={},compoundVariants:b=[],defaultVariants:J={}}=e,A=h((N=e==null?void 0:e.extend)==null?void 0:N.base,e==null?void 0:e.base),i=E(c,(T=e==null?void 0:e.extend)==null?void 0:T.variants),j=Object.assign({},(v=e==null?void 0:e.extend)==null?void 0:v.defaultVariants,J),C=g(y)?{}:{base:e==null?void 0:e.base,...y},w=g((F=e==null?void 0:e.extend)==null?void 0:F.slots)?C:B((k=e==null?void 0:e.extend)==null?void 0:k.slots,g(C)?{base:e==null?void 0:e.base}:C),x=u=>{var W,q,z;if(g(i)&&g(y)&&g((W=e==null?void 0:e.extend)==null?void 0:W.slots))return M(A,u==null?void 0:u.class,u==null?void 0:u.className)(l);if(b&&!Array.isArray(b))throw new TypeError(`The "compoundVariants" prop must be an array. Received: ${typeof b}`);let P=(t,r,a=[],n)=>{let f=a;if(typeof r=="string")f.push(S(r).split(" ").map(s=>`${t}:${s}`));else if(Array.isArray(r))f.push(r.flatMap(s=>`${t}:${s}`));else if(typeof r=="object"&&typeof n=="string"){let s=r==null?void 0:r[n];if(s&&typeof s=="string"){let m=S(s);f[n]=f[n]?[...f[n],...m.split(" ").map(d=>`${t}:${d}`)]:m.split(" ").map(d=>`${t}:${d}`);}else Array.isArray(s)&&s.length>0&&(f[n]=s.flatMap(m=>`${t}:${m}`));}return f},I=(t,r=i,a=null)=>{let n=r==null?void 0:r[t];if(typeof n!="object"||g(n))return null;let f=u==null?void 0:u[t],s=j==null?void 0:j[t],m=[];if(f===null)return null;let d=V(f);typeof d=="object"&&(m=Object.keys(d).reduce((D,$)=>{let G=d[$],_=n==null?void 0:n[G];return $==="initial"?(s=G,D):P($,_,D,a)},[]));let O=n[d]||n[V(s)];return typeof m=="object"&&typeof a=="string"&&m[a]?B(m,O):m.length>0?[O,...m]:O},Q=()=>i?Object.keys(i).map(t=>I(t,i)):null,X=t=>!i||typeof i!="object"?null:Object.keys(i).map(r=>{let a=I(r,i,t);return t==="base"&&typeof a=="string"?a:a&&a[t]}).filter(Boolean),Y=u&&Object.fromEntries(Object.entries(u).filter(([,t])=>t!==void 0)),R=(t=[])=>t==null?void 0:t.filter(({class:r,className:a,...n})=>Object.entries(n).every(([f,s])=>{var O;let m=typeof(u==null?void 0:u[f])=="object"?(O=u[f])==null?void 0:O.initial:{},d={...j,...m,...Y};return Array.isArray(s)?s.includes(d[f]):d[f]===s})).flatMap(({class:r,className:a})=>[r,a]),U=()=>{var a;let t=R(b),r=R((a=e==null?void 0:e.extend)==null?void 0:a.compoundVariants);return H(r,t)},Z=()=>{let t=U();return Array.isArray(t)?t.reduce((r,a)=>(typeof a=="string"&&(r.base=M(r.base,a)(l)),typeof a=="object"&&Object.entries(a).forEach(([n,f])=>{r[n]=M(r[n],f)(l);}),r),{}):t};if(!g(y)||!g((q=e==null?void 0:e.extend)==null?void 0:q.slots)){let t=(z=Z())!=null?z:[];return {...typeof w=="object"&&!g(w)?Object.keys(w).reduce((a,n)=>(a[n]=f=>M(w[n],X(n),t==null?void 0:t[n],f==null?void 0:f.class,f==null?void 0:f.className)(l),a),{}):{}}}return M(A,Q(),U(),u==null?void 0:u.class,u==null?void 0:u.className)(l)},L=()=>{if(!(!i||typeof i!="object"))return Object.keys(i)};return x.variantKeys=L(),x.base=A,x.slots=w,x.variants=i,x.defaultVariants=j,x.compoundVariants=b,x};
|
|
6
6
|
|
|
7
7
|
exports.tv = re;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import {TVConfig} from "./config";
|
|
2
|
+
import {TVGeneratedScreens} from "./generated";
|
|
2
3
|
import {ClassValue, ClassProp, OmitUndefined, StringToBoolean} from "./utils";
|
|
3
4
|
|
|
4
5
|
type TVBaseName = "base";
|
|
5
6
|
|
|
6
|
-
type TVScreens = "initial" |
|
|
7
|
+
type TVScreens = "initial" | TVGeneratedScreens;
|
|
7
8
|
|
|
8
9
|
type TVSlots = Record<string, ClassValue> | undefined;
|
|
9
10
|
|
|
@@ -89,7 +90,7 @@ export type TVReturnProps<V extends TVVariants<S>, S extends TVSlots, B extends
|
|
|
89
90
|
variants: V;
|
|
90
91
|
defaultVariants: TVDefaultVariants<V, S>;
|
|
91
92
|
compoundVariants: TVCompoundVariants<V, S, B>;
|
|
92
|
-
|
|
93
|
+
variantKeys: TVVariantKeys<V, S>;
|
|
93
94
|
};
|
|
94
95
|
|
|
95
96
|
export type TVReturnType<
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a, g, c, f, e, d, b, h } from './chunk-C5RUXROF.js';
|
|
2
2
|
|
|
3
|
-
var o=(e$1,i={twMerge:!0,twMergeConfig:{}})=>{var M,S,E,w,B;let{slots:A={},variants:I={},compoundVariants:s=[],defaultVariants:J={}}=e$1,$=a((M=e$1==null?void 0:e$1.extend)==null?void 0:M.base,e$1==null?void 0:e$1.base),l=g(I,(S=e$1==null?void 0:e$1.extend)==null?void 0:S.variants),x=Object.assign({},(E=e$1==null?void 0:e$1.extend)==null?void 0:E.defaultVariants,J),C=c(A)?{}:{base:e$1==null?void 0:e$1.base,...A},O=c((w=e$1==null?void 0:e$1.extend)==null?void 0:w.slots)?C:f((B=e$1==null?void 0:e$1.extend)==null?void 0:B.slots,c(C)?{base:e$1==null?void 0:e$1.base}:C),y=c$1=>{var R,U,W;if(c(l)&&c(A)&&c((R=e$1==null?void 0:e$1.extend)==null?void 0:R.slots))return e($,c$1==null?void 0:c$1.class,c$1==null?void 0:c$1.className)(i);if(s&&!Array.isArray(s))throw new TypeError(`The "compoundVariants" prop must be an array. Received: ${typeof s}`);let Q=(t,a,r=[],n)=>{let u=r;if(typeof a=="string")u.push(h(a).split(" ").map(f=>`${t}:${f}`));else if(Array.isArray(a))u.push(a.flatMap(f=>`${t}:${f}`));else if(typeof a=="object"&&typeof n=="string"){let f=a==null?void 0:a[n];if(f&&typeof f=="string"){let b=h(f);u[n]=u[n]?[...u[n],...b.split(" ").map(d=>`${t}:${d}`)]:b.split(" ").map(d=>`${t}:${d}`);}else Array.isArray(f)&&f.length>0&&(u[n]=f.flatMap(b=>`${t}:${b}`));}return u},
|
|
3
|
+
var o=(e$1,i={twMerge:!0,twMergeConfig:{}})=>{var M,S,E,w,B;let{slots:A={},variants:I={},compoundVariants:s=[],defaultVariants:J={}}=e$1,$=a((M=e$1==null?void 0:e$1.extend)==null?void 0:M.base,e$1==null?void 0:e$1.base),l=g(I,(S=e$1==null?void 0:e$1.extend)==null?void 0:S.variants),x=Object.assign({},(E=e$1==null?void 0:e$1.extend)==null?void 0:E.defaultVariants,J),C=c(A)?{}:{base:e$1==null?void 0:e$1.base,...A},O=c((w=e$1==null?void 0:e$1.extend)==null?void 0:w.slots)?C:f((B=e$1==null?void 0:e$1.extend)==null?void 0:B.slots,c(C)?{base:e$1==null?void 0:e$1.base}:C),y=c$1=>{var R,U,W;if(c(l)&&c(A)&&c((R=e$1==null?void 0:e$1.extend)==null?void 0:R.slots))return e($,c$1==null?void 0:c$1.class,c$1==null?void 0:c$1.className)(i);if(s&&!Array.isArray(s))throw new TypeError(`The "compoundVariants" prop must be an array. Received: ${typeof s}`);let Q=(t,a,r=[],n)=>{let u=r;if(typeof a=="string")u.push(h(a).split(" ").map(f=>`${t}:${f}`));else if(Array.isArray(a))u.push(a.flatMap(f=>`${t}:${f}`));else if(typeof a=="object"&&typeof n=="string"){let f=a==null?void 0:a[n];if(f&&typeof f=="string"){let b=h(f);u[n]=u[n]?[...u[n],...b.split(" ").map(d=>`${t}:${d}`)]:b.split(" ").map(d=>`${t}:${d}`);}else Array.isArray(f)&&f.length>0&&(u[n]=f.flatMap(b=>`${t}:${b}`));}return u},T=(t,a=l,r=null)=>{let n=a==null?void 0:a[t];if(typeof n!="object"||c(n))return null;let u=c$1==null?void 0:c$1[t],f$1=x==null?void 0:x[t],b$1=[];if(u===null)return null;let d=b(u);typeof d=="object"&&(b$1=Object.keys(d).reduce((q,V)=>{let z=d[V],P=n==null?void 0:n[z];return V==="initial"?(f$1=z,q):Q(V,P,q,r)},[]));let j=n[d]||n[b(f$1)];return typeof b$1=="object"&&typeof r=="string"&&b$1[r]?f(b$1,j):b$1.length>0?[j,...b$1]:j},X=()=>l?Object.keys(l).map(t=>T(t,l)):null,Y=t=>!l||typeof l!="object"?null:Object.keys(l).map(a=>{let r=T(a,l,t);return t==="base"&&typeof r=="string"?r:r&&r[t]}).filter(Boolean),Z=c$1&&Object.fromEntries(Object.entries(c$1).filter(([,t])=>t!==void 0)),k=(t=[])=>t==null?void 0:t.filter(({class:a,className:r,...n})=>Object.entries(n).every(([u,f])=>{var j;let b=typeof(c$1==null?void 0:c$1[u])=="object"?(j=c$1[u])==null?void 0:j.initial:{},d={...x,...b,...Z};return Array.isArray(f)?f.includes(d[u]):d[u]===f})).flatMap(({class:a,className:r})=>[a,r]),F=()=>{var r;let t=k(s),a=k((r=e$1==null?void 0:e$1.extend)==null?void 0:r.compoundVariants);return d(a,t)},_=()=>{let t=F();return Array.isArray(t)?t.reduce((a,r)=>(typeof r=="string"&&(a.base=e(a.base,r)(i)),typeof r=="object"&&Object.entries(r).forEach(([n,u])=>{a[n]=e(a[n],u)(i);}),a),{}):t};if(!c(A)||!c((U=e$1==null?void 0:e$1.extend)==null?void 0:U.slots)){let t=(W=_())!=null?W:[];return {...typeof O=="object"&&!c(O)?Object.keys(O).reduce((r,n)=>(r[n]=u=>e(O[n],Y(n),t==null?void 0:t[n],u==null?void 0:u.class,u==null?void 0:u.className)(i),r),{}):{}}}return e($,X(),F(),c$1==null?void 0:c$1.class,c$1==null?void 0:c$1.className)(i)},L=()=>{if(!(!l||typeof l!="object"))return Object.keys(l)};return y.variantKeys=L(),y.base=$,y.slots=O,y.variants=l,y.defaultVariants=x,y.compoundVariants=s,y};
|
|
4
4
|
|
|
5
5
|
export { o as tv };
|
package/dist/transformer.cjs
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
|
|
3
|
+
var w = require('tailwindcss/resolveConfig');
|
|
4
|
+
var h = require('fs');
|
|
5
|
+
var C = require('path');
|
|
5
6
|
|
|
6
|
-
${
|
|
7
|
+
var S=t=>{h.writeFileSync(C.join(__dirname,"generated.d.ts"),t);},j=t=>`export type TVGeneratedScreens = ${Object.keys(t).map(n=>`"${n}"`).join(" | ")};
|
|
8
|
+
`,v=t=>{queueMicrotask(()=>{if(t!=null&&t.screens){let n=j(t.screens);S(n);}});};var m={tv:/tv\({[\s\S]*?}\)/g,tvContent:/\({[\s\S]*?}\)/g,comment:/\/\*[\s\S]*?\*\/|([^\\:]|^)\/\/.*$/gm,blankLine:/^\s*$(?:\r\n?|\n)/gm,extension:/\.\w+/g},l=t=>Array.isArray(t),b=t=>typeof t=="string",u=t=>typeof t=="object",y=t=>typeof t=="function",a=t=>!!(!t||l(t)&&t.length===0||b(t)&&t.length===0||u(t)&&Object.keys(t).length===0),$=(t,n)=>{let e="https://github.com/nextui-org/tailwind-variants/issues/new/choose";console.log("\x1B[31m%s\x1B[0m",`${t}: ${n.message}`),console.log(`If you think this is an issue, please submit it at ${e}`);},x=(...t)=>n=>t.reduce((e,r)=>r(e),n),O=t=>t.replace(m.comment,"$1").toString().replace(m.blankLine,"").toString().match(m.tv),k=t=>{let n=O(t);if(!a(n))return n.map(e=>new Function(`return ${e.match(m.tvContent).toString()}`)())},E=t=>t.flatMap(n=>n).toString().replaceAll(","," ").split(" "),V=(t,n)=>{let e={};for(let[r,s]of Object.entries(t))e[r]={},e[r].original=s,!a(s)&&(e.temp=l(s)?E(s):s.split(" "),n.forEach(c=>{let o="";e.temp.forEach(i=>{o+=`${c}:${i} `;}),e[r][c]=o.trimEnd();}),delete e.temp);return e},A=(t,n)=>b(t)?t.split(" "):l(t)?E(t):u(t)?V(t,n):t,F=(t,n)=>{let{variants:e={}}=t;if(a(e))return;let r={};for(let[s,c]of Object.entries(e))if(r[s]={},!a(c))for(let[o,i]of Object.entries(c)){if(r[s][o]={},r[s][o].original=i,a(i))continue;let f=A(i,n);if(!a(f)){if(!l(f)){r[s][o]=f;continue}n.forEach(g=>{let d="";f.forEach(T=>{d+=`${g}:${T} `;}),r[s][o][g]=d.trimEnd();});}}return r},L=(t,n)=>{try{if(!t.includes("tailwind-variants"))return t;let e=k(t);if(a(e))return t;let r=JSON.stringify(e.map(o=>F(o,n)),void 0,2),s=`
|
|
9
|
+
/* Tailwind Variants Transformed Content Start
|
|
7
10
|
|
|
8
|
-
|
|
9
|
-
`)}catch{return n}},p=n=>{let t=n.map(e=>{if(m(e)&&e.extension)return e.extension;let r=e.match(a.ext);return r||(r=e.split("{"),r=r.pop().replace("}","").split(",")),r.map(o=>o.replace(".","").split(".")).flat()}).flatMap(e=>e);return Array.from(new Set(t)).filter(e=>e!=="html")},T=n=>{var e,r;let t=Object.assign({},n);if(f(t==null?void 0:t.content)||g(t.content))return t;if(u(t.content)){let s=p(t.content).map(i=>[i,l]);return t.content={},t.content.files=n.content,t.content.transform=Object.fromEntries(s),t}if(m(t.content)){if(f((e=t.content)==null?void 0:e.files)||g(t.content.files))return t;if(f((r=t.content)==null?void 0:r.transform)){let s=p(t.content.files).map(i=>[i,l]);return t.content.transform=Object.fromEntries(s),t}if(y(t.content.transform)){let{transform:o}=n.content,i=p(t.content.files).map(c=>[c,E(l,o)]);return t.content.transform=Object.fromEntries(i),t}if(m(t.content.transform)){let{transform:o}=n.content,i=p(t.content.files).map(c=>[c,E(l,o[c]&&o[c])]);return t.content.transform=Object.fromEntries(i),t}return t}return t};
|
|
11
|
+
`,c=`
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
+
Tailwind Variants Transformed Content End */
|
|
14
|
+
`;return t.concat(s+r+c)}catch(e){return $("Tailwind Variants Transform Failed",e),t}},p=t=>{let n=t.map(e=>{if(u(e)&&e.extension)return e.extension;let r=e.match(m.extension);return r||(r=e.split("{"),r=r.pop().replace("}","").split(",")),r.map(s=>s.replace(".","").split(".")).flat()}).flatMap(e=>e);return Array.from(new Set(n)).filter(e=>e!=="html")},q=t=>{var s;let n=w(t);if(v(n.theme),a((s=n.content)==null?void 0:s.files)||!l(n.content.files))return n;let e=c=>{var o,i;return L(c,Object.keys((i=(o=n.theme)==null?void 0:o.screens)!=null?i:{}))},r=n.content.transform;if(a(r)){let o=p(n.content.files).map(i=>[i,e]);return n.content.transform=Object.fromEntries(o),n}if(y(r)){let o=p(n.content.files).map(i=>[i,x(e,r)]);return n.content.transform=Object.fromEntries(o),n}if(u(r)){let o=p(n.content.files).map(i=>y(r[i])?[i,x(e,r[i])]:[i,e]);return n.content.transform=Object.fromEntries(o),n}return n};
|
|
15
|
+
|
|
16
|
+
exports.tvTransformer = L;
|
|
17
|
+
exports.withTV = q;
|
package/dist/transformer.d.ts
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import type {Config} from "tailwindcss/types/config";
|
|
2
|
+
import type {DefaultTheme} from "tailwindcss/types/generated/default-theme";
|
|
2
3
|
|
|
3
|
-
export type
|
|
4
|
+
export type DefaultScreens = keyof DefaultTheme["screens"];
|
|
4
5
|
|
|
5
6
|
export type WithTV = {
|
|
6
|
-
<
|
|
7
|
+
<C extends Config = {}>(tvConfig: Config): C;
|
|
7
8
|
};
|
|
8
9
|
|
|
9
10
|
export declare const withTV: WithTV;
|
|
10
11
|
|
|
11
|
-
export type TVTransformer = {
|
|
12
|
+
export type TVTransformer = {
|
|
13
|
+
(content: string, screens?: string[] | DefaultScreens[]): string;
|
|
14
|
+
};
|
|
12
15
|
|
|
13
16
|
export declare const tvTransformer: TVTransformer;
|
package/dist/transformer.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { a } from './chunk-FUBUDMV2.js';
|
|
2
|
+
import y from 'tailwindcss/resolveConfig';
|
|
3
3
|
|
|
4
|
-
${e}
|
|
4
|
+
var m={tv:/tv\({[\s\S]*?}\)/g,tvContent:/\({[\s\S]*?}\)/g,comment:/\/\*[\s\S]*?\*\/|([^\\:]|^)\/\/.*$/gm,blankLine:/^\s*$(?:\r\n?|\n)/gm,extension:/\.\w+/g},l=t=>Array.isArray(t),E=t=>typeof t=="string",u=t=>typeof t=="object",h=t=>typeof t=="function",c=t=>!!(!t||l(t)&&t.length===0||E(t)&&t.length===0||u(t)&&Object.keys(t).length===0),T=(t,n)=>{let e="https://github.com/nextui-org/tailwind-variants/issues/new/choose";console.log("\x1B[31m%s\x1B[0m",`${t}: ${n.message}`),console.log(`If you think this is an issue, please submit it at ${e}`);},x=(...t)=>n=>t.reduce((e,r)=>r(e),n),S=t=>t.replace(m.comment,"$1").toString().replace(m.blankLine,"").toString().match(m.tv),j=t=>{let n=S(t);if(!c(n))return n.map(e=>new Function(`return ${e.match(m.tvContent).toString()}`)())},b=t=>t.flatMap(n=>n).toString().replaceAll(","," ").split(" "),w=(t,n)=>{let e={};for(let[r,o]of Object.entries(t))e[r]={},e[r].original=o,!c(o)&&(e.temp=l(o)?b(o):o.split(" "),n.forEach(a=>{let s="";e.temp.forEach(i=>{s+=`${a}:${i} `;}),e[r][a]=s.trimEnd();}),delete e.temp);return e},O=(t,n)=>E(t)?t.split(" "):l(t)?b(t):u(t)?w(t,n):t,$=(t,n)=>{let{variants:e={}}=t;if(c(e))return;let r={};for(let[o,a]of Object.entries(e))if(r[o]={},!c(a))for(let[s,i]of Object.entries(a)){if(r[o][s]={},r[o][s].original=i,c(i))continue;let f=O(i,n);if(!c(f)){if(!l(f)){r[o][s]=f;continue}n.forEach(g=>{let v="";f.forEach(C=>{v+=`${g}:${C} `;}),r[o][s][g]=v.trimEnd();});}}return r},k=(t,n)=>{try{if(!t.includes("tailwind-variants"))return t;let e=j(t);if(c(e))return t;let r=JSON.stringify(e.map(s=>$(s,n)),void 0,2),o=`
|
|
5
|
+
/* Tailwind Variants Transformed Content Start
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
`)}catch{return n}},p=n=>{let t=n.map(e=>{if(m(e)&&e.extension)return e.extension;let r=e.match(a.ext);return r||(r=e.split("{"),r=r.pop().replace("}","").split(",")),r.map(o=>o.replace(".","").split(".")).flat()}).flatMap(e=>e);return Array.from(new Set(t)).filter(e=>e!=="html")},T=n=>{var e,r;let t=Object.assign({},n);if(f(t==null?void 0:t.content)||g(t.content))return t;if(u(t.content)){let s=p(t.content).map(i=>[i,l]);return t.content={},t.content.files=n.content,t.content.transform=Object.fromEntries(s),t}if(m(t.content)){if(f((e=t.content)==null?void 0:e.files)||g(t.content.files))return t;if(f((r=t.content)==null?void 0:r.transform)){let s=p(t.content.files).map(i=>[i,l]);return t.content.transform=Object.fromEntries(s),t}if(y(t.content.transform)){let{transform:o}=n.content,i=p(t.content.files).map(c=>[c,E(l,o)]);return t.content.transform=Object.fromEntries(i),t}if(m(t.content.transform)){let{transform:o}=n.content,i=p(t.content.files).map(c=>[c,E(l,o[c]&&o[c])]);return t.content.transform=Object.fromEntries(i),t}return t}return t};
|
|
7
|
+
`,a=`
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Tailwind Variants Transformed Content End */
|
|
10
|
+
`;return t.concat(o+r+a)}catch(e){return T("Tailwind Variants Transform Failed",e),t}},p=t=>{let n=t.map(e=>{if(u(e)&&e.extension)return e.extension;let r=e.match(m.extension);return r||(r=e.split("{"),r=r.pop().replace("}","").split(",")),r.map(o=>o.replace(".","").split(".")).flat()}).flatMap(e=>e);return Array.from(new Set(n)).filter(e=>e!=="html")},L=t=>{var o;let n=y(t);if(a(n.theme),c((o=n.content)==null?void 0:o.files)||!l(n.content.files))return n;let e=a=>{var s,i;return k(a,Object.keys((i=(s=n.theme)==null?void 0:s.screens)!=null?i:{}))},r=n.content.transform;if(c(r)){let s=p(n.content.files).map(i=>[i,e]);return n.content.transform=Object.fromEntries(s),n}if(h(r)){let s=p(n.content.files).map(i=>[i,x(e,r)]);return n.content.transform=Object.fromEntries(s),n}if(u(r)){let s=p(n.content.files).map(i=>h(r[i])?[i,x(e,r[i])]:[i,e]);return n.content.transform=Object.fromEntries(s),n}return n};
|
|
11
|
+
|
|
12
|
+
export { k as tvTransformer, L as withTV };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tailwind-variants",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.30",
|
|
4
4
|
"description": "🦄 Tailwindcss first-class variant API",
|
|
5
5
|
"author": "Junior Garcia <jrgarciadev@gmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -22,6 +22,8 @@
|
|
|
22
22
|
"dist",
|
|
23
23
|
"transformer.js",
|
|
24
24
|
"transformer.d.ts",
|
|
25
|
+
"utils.js",
|
|
26
|
+
"utils.d.ts",
|
|
25
27
|
"README.md",
|
|
26
28
|
"LICENSE"
|
|
27
29
|
],
|
|
@@ -43,6 +45,7 @@
|
|
|
43
45
|
"@swc-node/jest": "^1.5.2",
|
|
44
46
|
"@swc/cli": "0.1.57",
|
|
45
47
|
"@swc/core": "1.2.198",
|
|
48
|
+
"@swc/helpers": "^0.4.14",
|
|
46
49
|
"@types/jest": "28.1.1",
|
|
47
50
|
"@types/node": "^18.11.18",
|
|
48
51
|
"@typescript-eslint/eslint-plugin": "^5.42.0",
|
package/utils.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./dist/utils";
|
package/utils.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require("./dist/utils");
|