@salty-css/vite 0.0.1-alpha.210 → 0.0.1-alpha.211

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.
Files changed (3) hide show
  1. package/index.cjs +27 -27
  2. package/index.js +366 -319
  3. package/package.json +2 -2
package/index.cjs CHANGED
@@ -1,42 +1,42 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const kt=require("esbuild"),_t=require("child_process"),l=require("path"),d=require("fs"),tt=require("fs/promises"),B=require("winston");var rt=typeof document<"u"?document.currentScript:null;function Dt(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const s in t)if(s!=="default"){const n=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(e,s,n.get?n:{enumerable:!0,get:()=>t[s]})}}return e.default=t,Object.freeze(e)}const gt=Dt(kt),pt=t=>String.fromCharCode(t+(t>25?39:97)),Ot=(t,e)=>{let s="",n;for(n=Math.abs(t);n>52;n=n/52|0)s=pt(n%52)+s;return s=pt(n%52)+s,s.length<e?s=s.padStart(e,"a"):s.length>e&&(s=s.slice(-e)),s},Et=(t,e)=>{let s=e.length;for(;s;)t=t*33^e.charCodeAt(--s);return t},v=(t,e=5)=>{const s=Et(5381,JSON.stringify(t))>>>0;return Ot(s,e)};function V(t){return t?typeof t!="string"?V(String(t)):t.replace(/[\s.]/g,"-").replace(/[A-Z](?:(?=[^A-Z])|[A-Z]*(?=[A-Z][^A-Z]|$))/g,(e,s)=>(s>0?"-":"")+e.toLowerCase()):""}const Tt=t=>e=>{if(typeof e!="string"||!t)return;let s=e;const n=[];return Object.values(t).forEach(o=>{const{pattern:r,transform:a}=o;s=s.replace(r,g=>{const{value:C,css:f}=a(g);return f&&n.push(f),C})}),{transformed:s,additionalCss:n}},ht=t=>e=>typeof e!="string"||!/\{[^{}]+\}/g.test(e)?void 0:{transformed:e.replace(/\{([^{}]+)\}/g,(...o)=>`var(--${V(o[1].replaceAll(".","-"))})`)},Mt=ht(),Rt=["top","right","bottom","left","min-width",/.*width.*/,/^[^line]*height.*/,/padding.*/,/margin.*/,/border.*/,/inset.*/,/.*radius.*/,/.*spacing.*/,/.*gap.*/,/.*indent.*/,/.*offset.*/,/.*size.*/,/.*thickness.*/,/.*font-size.*/],Vt=(t,e,s)=>Rt.some(o=>typeof o=="string"?o===t:o.test(t))?`${e}px`:`${e}`,At=["Webkit","Moz","ms","O"],Jt=t=>t.startsWith("-")?t:At.some(e=>t.startsWith(e))?`-${V(t)}`:V(t),Y=async(t,e="",s,n=!1)=>{if(!t)throw new Error("No styles provided to parseStyles function!");const o=new Set,a=Object.entries(t).map(async([m,i])=>{const y=m.trim(),k=Jt(y),P=(_,T=";")=>`${k}:${_}${T}`;if(typeof i=="function"&&(i=i({scope:e,config:s})),i instanceof Promise&&(i=await i),typeof i=="object"){if(!i)return;if(i.isColor)return P(i.toString());if(y==="defaultVariants")return;if(y==="variants"){const j=Object.entries(i);for(const[O,c]of j){if(!c)return;const h=Object.entries(c);for(const[b,u]of h){if(!u)return;const S=`${e}.${O}-${b}`;(await Y(u,S,s)).forEach(M=>o.add(M))}}return}if(y==="compoundVariants"){for(const j of i){const{css:O,...c}=j,h=Object.entries(c).reduce((u,[S,N])=>`${u}.${S}-${N}`,e);(await Y(O,h,s)).forEach(u=>o.add(u))}return}if(y.startsWith("@")){const j=y,O=await G(i,e,s),c=`${j} { ${O} }`;o.add(c);return}const _=m.includes("&")?y.replace("&",e):y.startsWith(":")?`${e}${y}`:`${e} ${y}`;(await Y(i,_,s)).forEach(j=>o.add(j));return}if(typeof i=="number"){const _=Vt(k,i);return P(_)}if(typeof i!="string")if("toString"in i)i=i.toString();else throw new Error(`Invalid value type for property ${k}`);return P(i)}),{modifiers:g}={},C=[ht(),Tt(g)],p=(await Promise.all(a).then(m=>Promise.all(m.map(i=>C.reduce(async(y,k)=>{const P=await y;if(!P)return P;const R=await k(P);if(!R)return P;const{transformed:_,additionalCss:T}=R;let j="";if(T)for(const O of T)j+=await G(O,"");return`${j}${_}`},Promise.resolve(i)))))).filter(m=>m!==void 0).join(`
2
- `);if(!p.trim())return Array.from(o);const w=e?`${e} {
1
+ "use strict";var Tt=Object.defineProperty;var Dt=(e,t,s)=>t in e?Tt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s;var tt=(e,t,s)=>Dt(e,typeof t!="symbol"?t+"":t,s);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const Et=require("esbuild"),Ot=require("child_process"),l=require("path"),d=require("fs"),st=require("fs/promises"),G=require("winston");var it=typeof document<"u"?document.currentScript:null;function Mt(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const s in e)if(s!=="default"){const n=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(t,s,n.get?n:{enumerable:!0,get:()=>e[s]})}}return t.default=e,Object.freeze(t)}const gt=Mt(Et),mt=e=>String.fromCharCode(e+(e>25?39:97)),Rt=(e,t)=>{let s="",n;for(n=Math.abs(e);n>52;n=n/52|0)s=mt(n%52)+s;return s=mt(n%52)+s,s.length<t?s=s.padStart(t,"a"):s.length>t&&(s=s.slice(-t)),s},Vt=(e,t)=>{let s=t.length;for(;s;)e=e*33^t.charCodeAt(--s);return e},v=(e,t=5)=>{const s=Vt(5381,JSON.stringify(e))>>>0;return Rt(s,t)};function V(e){return e?typeof e!="string"?V(String(e)):e.replace(/[\s.]/g,"-").replace(/[A-Z](?:(?=[^A-Z])|[A-Z]*(?=[A-Z][^A-Z]|$))/g,(t,s)=>(s>0?"-":"")+t.toLowerCase()):""}const At=e=>t=>{if(typeof t!="string"||!e)return;let s=t;const n=[];return Object.values(e).forEach(o=>{const{pattern:r,transform:i}=o;s=s.replace(r,w=>{const{value:$,css:f}=i(w);return f&&n.push(f),$})}),{transformed:s,additionalCss:n}},wt=e=>t=>typeof t!="string"||!/\{[^{}]+\}/g.test(t)?void 0:{transformed:t.replace(/\{([^{}]+)\}/g,(...o)=>`var(--${V(o[1].replaceAll(".","-"))})`)},Jt=wt(),vt=["top","right","bottom","left","min-width",/.*width.*/,/^[^line]*height.*/,/padding.*/,/margin.*/,/border.*/,/inset.*/,/.*radius.*/,/.*spacing.*/,/.*gap.*/,/.*indent.*/,/.*offset.*/,/.*size.*/,/.*thickness.*/,/.*font-size.*/],zt=(e,t,s)=>vt.some(o=>typeof o=="string"?o===e:o.test(e))?`${t}px`:`${t}`,Wt=["Webkit","Moz","ms","O"],It=e=>e.startsWith("-")?e:Wt.some(t=>e.startsWith(t))?`-${V(e)}`:V(e),et=async(e,t="",s,n=!1)=>{if(!e)throw new Error("No styles provided to parseStyles function!");const o=new Set,i=Object.entries(e).map(async([y,a])=>{const m=y.trim(),x=It(m),P=(N,M=";")=>`${x}:${N}${M}`;if(typeof a=="function"&&(a=a({scope:t,config:s})),a instanceof Promise&&(a=await a),typeof a=="object"){if(!a)return;if(a.isColor)return P(a.toString());if(m==="defaultVariants")return;if(m==="variants"){const j=Object.entries(a);for(const[D,c]of j){if(!c)return;const h=Object.entries(c);for(const[F,u]of h){if(!u)return;const S=`${t}.${D}-${F}`;(await et(u,S,s)).forEach(E=>o.add(E))}}return}if(m==="compoundVariants"){for(const j of a){const{css:D,...c}=j,h=Object.entries(c).reduce((u,[S,k])=>`${u}.${S}-${k}`,t);(await et(D,h,s)).forEach(u=>o.add(u))}return}if(m.startsWith("@")){const j=m,D=await K(a,t,s),c=`${j} { ${D} }`;o.add(c);return}const N=y.includes("&")?m.replace("&",t):m.startsWith(":")?`${t}${m}`:`${t} ${m}`;(await et(a,N,s)).forEach(j=>o.add(j));return}if(typeof a=="number"){const N=zt(x,a);return P(N)}if(typeof a!="string")if("toString"in a)a=a.toString();else throw new Error(`Invalid value type for property ${x}`);return P(a)}),{modifiers:w}={},$=[wt(),At(w)],p=(await Promise.all(i).then(y=>Promise.all(y.map(a=>$.reduce(async(m,x)=>{const P=await m;if(!P)return P;const R=await x(P);if(!R)return P;const{transformed:N,additionalCss:M}=R;let j="";if(M)for(const D of M)j+=await K(D,"");return`${j}${N}`},Promise.resolve(a)))))).filter(y=>y!==void 0).join(`
2
+ `);if(!p.trim())return Array.from(o);const b=t?`${t} {
3
3
  ${p}
4
- }`:p;return o.has(w)?Array.from(o):[w,...o]},G=async(t,e,s,n=!1)=>(await Y(t,e,s,n)).join(`
5
- `),wt=async(t,e=[])=>{if(!t)return"";const s=[],n={};for(const[o,r]of Object.entries(t))if(typeof r!="function")if(r&&typeof r=="object"){const a=o.trim(),g=await wt(r,[...e,a]);s.push(g)}else n[o]=r;if(Object.keys(n).length){const o=e.map(V).join("-"),r="t_"+v(o,4),a=await G(n,`.${o}, .${r}`);s.push(a)}return s.join(`
6
- `)},vt=t=>t?Object.entries(t).reduce((e,[s,n])=>(typeof n=="function"?e[s]="any":typeof n=="object"&&(e[s]=$t(n).map(o=>`"${o}"`).join(" | ")),e),{}):{},$t=(t,e="",s=new Set)=>t?(Object.entries(t).forEach(([n,o])=>{const r=e?`${e}.${n}`:n;return typeof o=="object"?$t(o,r,s):s.add(e)}),[...s]):[],bt=t=>{if(!t||t==="/")throw new Error("Could not find package.json file");const e=l.join(t,"package.json");return d.existsSync(e)?e:bt(l.join(t,".."))},zt=async t=>{const e=bt(t);return await tt.readFile(e,"utf-8").then(JSON.parse).catch(()=>{})},Wt=async t=>{const e=await zt(t);if(e)return e.type};let I;const St=async t=>{if(I)return I;const e=await Wt(t);return e==="module"?I="esm":(e==="commonjs"||(typeof document>"u"?require("url").pathToFileURL(__filename).href:rt&&rt.tagName.toUpperCase()==="SCRIPT"&&rt.src||new URL("index.cjs",document.baseURI).href).endsWith(".cjs"))&&(I="cjs"),I||"esm"},it=B.createLogger({level:"debug",format:B.format.combine(B.format.colorize(),B.format.cli()),transports:[new B.transports.Console({})]});function jt(t){return t?typeof t!="string"?jt(String(t)):t.replace(/[\s-]/g,".").replace(/[A-Z](?:(?=[^A-Z])|[A-Z]*(?=[A-Z][^A-Z]|$))/g,(e,s)=>(s>0?".":"")+e.toLowerCase()):""}const It={"*, *::before, *::after":{boxSizing:"border-box"},"*":{margin:0},html:{lineHeight:1.15,textSizeAdjust:"100%",WebkitFontSmoothing:"antialiased"},"img, picture, video, canvas, svg":{display:"block",maxWidth:"100%"},"p, h1, h2, h3, h4, h5, h6":{overflowWrap:"break-word"},p:{textWrap:"pretty"},"h1, h2, h3, h4, h5, h6":{textWrap:"balance"},a:{color:"currentColor"},button:{lineHeight:"1em",color:"currentColor"},"input, optgroup, select, textarea":{fontFamily:"inherit",fontSize:"100%",lineHeight:"1.15em"}},Z=(...t)=>t.flat().reduce((e,s)=>s!=null&&s._current?{...e,...s._current}:{...e,...s},{}),Zt=(...t)=>t.flat().reduce((e,s)=>({...e,...s._children}),{}),J={externalModules:[],rcFile:void 0,destDir:void 0},Ft=t=>{if(J.externalModules.length>0)return J.externalModules;const s=d.readFileSync(t,"utf8").match(/externalModules:\s?\[(.*)\]/);if(!s)return[];const n=s[1].split(",").map(o=>o.replace(/['"`]/g,"").trim());return J.externalModules=n,n},z=async t=>{if(J.destDir)return J.destDir;const e=await at(t),s=l.join(t,(e==null?void 0:e.saltygenDir)||"saltygen");return J.destDir=s,s},Ct=["salty","css","styles","styled"],qt=(t=[])=>new RegExp(`\\.(${[...Ct,...t].join("|")})\\.`),q=(t,e=[])=>qt(e).test(t),Pt=async t=>{if(J.rcFile)return J.rcFile;if(t==="/")throw new Error("Could not find .saltyrc.json file");const e=l.join(t,".saltyrc.json"),s=await tt.readFile(e,"utf-8").then(JSON.parse).catch(()=>{});return s?(J.rcFile=s,s):Pt(l.join(t,".."))},at=async t=>{var n,o;const e=await Pt(t),s=(n=e.projects)==null?void 0:n.find(r=>t.endsWith(r.dir||""));return s||((o=e.projects)==null?void 0:o.find(r=>r.dir===e.defaultProject))},Ht=async t=>{const e=await at(t),s=await z(t),n=l.join(t,(e==null?void 0:e.configDir)||"","salty.config.ts"),o=l.join(s,"salty.config.js"),r=await St(t),a=Ft(n);await gt.build({entryPoints:[n],minify:!0,treeShaking:!0,bundle:!0,outfile:o,format:r,external:a});const g=Date.now(),{config:C}=await import(`${o}?t=${g}`);return C},Lt=async(t,e)=>{var ft,ut;const s=await z(t),n={mediaQueries:[],globalStyles:[],variables:[],templates:[]};await Promise.all([...e].map(async F=>{const{contents:x,outputFilePath:A}=await et(t,F,s);Object.entries(x).forEach(([D,E])=>{E.isMedia?n.mediaQueries.push([D,E]):E.isGlobalDefine?n.globalStyles.push(E):E.isDefineVariables?n.variables.push(E):E.isDefineTemplates&&n.templates.push(E._setPath(`${D};;${A}`))})}));const o=await Ht(t),r={...o},a=new Set,g=(F,x=[])=>F?Object.entries(F).flatMap(([A,D])=>{if(!D)return;if(typeof D=="object")return g(D,[...x,A]);const E=jt(A),nt=V(A),ot=[...x,E].join(".");a.add(`"${ot}"`);const X=[...x.map(V),nt].join("-"),dt=Mt(D);return dt?`--${X}: ${dt.transformed};`:`--${X}: ${D};`}):[],C=F=>F?Object.entries(F).flatMap(([x,A])=>{const D=g(A);return x==="base"?D.join(""):`${x} { ${D.join("")} }`}):[],f=F=>F?Object.entries(F).flatMap(([x,A])=>Object.entries(A).flatMap(([D,E])=>{const nt=g(E,[x]),ot=`.${x}-${D}, [data-${x}="${D}"]`,X=nt.join("");return`${ot} { ${X} }`})):[],p=F=>({...F,responsive:void 0,conditional:void 0}),w=F=>n.variables.map(x=>F==="static"?p(x._current):x._current[F]),$=Z(p(o.variables),w("static")),m=g($),i=Z((ft=o.variables)==null?void 0:ft.responsive,w("responsive")),y=C(i),k=Z((ut=o.variables)==null?void 0:ut.conditional,w("conditional")),P=f(k),R=l.join(s,"css/_variables.css"),_=`:root { ${m.join("")} ${y.join("")} } ${P.join("")}`;d.writeFileSync(R,_),r.staticVariables=$;const T=l.join(s,"css/_global.css"),j=Z(o.global,n.globalStyles),O=await G(j,"");d.writeFileSync(T,`@layer global { ${O} }`);const c=l.join(s,"css/_reset.css"),b=o.reset==="none"?{}:typeof o.reset=="object"?o.reset:It,u=await G(b,"");d.writeFileSync(c,`@layer reset { ${u} }`);const S=l.join(s,"css/_templates.css"),N=Z(o.templates,n.templates),M=await wt(N),H=vt(N);d.writeFileSync(S,`@layer templates { ${M} }`),r.templates=N;const L=Zt(n.templates);r.templatePaths=Object.fromEntries(Object.entries(L).map(([F,x])=>[F,x._path]));const{mediaQueries:W}=n;r.mediaQueries=Object.fromEntries(W.map(([F,x])=>[`@${F}`,x]));const K=W.map(([F])=>`'@${F}'`).join(" | "),st=l.join(s,"types/css-tokens.d.ts"),Q=`
4
+ }`:p;return o.has(b)?Array.from(o):[b,...o]},K=async(e,t,s,n=!1)=>(await et(e,t,s,n)).join(`
5
+ `),$t=async(e,t=[])=>{if(!e)return"";const s=[],n={};for(const[o,r]of Object.entries(e))if(typeof r!="function")if(r&&typeof r=="object"){const i=o.trim(),w=await $t(r,[...t,i]);s.push(w)}else n[o]=r;if(Object.keys(n).length){const o=t.map(V).join("-"),r="t_"+v(o,4),i=await K(n,`.${o}, .${r}`);s.push(i)}return s.join(`
6
+ `)},Zt=e=>e?Object.entries(e).reduce((t,[s,n])=>(typeof n=="function"?t[s]="any":typeof n=="object"&&(t[s]=bt(n).map(o=>`"${o}"`).join(" | ")),t),{}):{},bt=(e,t="",s=new Set)=>e?(Object.entries(e).forEach(([n,o])=>{const r=t?`${t}.${n}`:n;return typeof o=="object"?bt(o,r,s):s.add(t)}),[...s]):[],St=e=>{if(!e||e==="/")throw new Error("Could not find package.json file");const t=l.join(e,"package.json");return d.existsSync(t)?t:St(l.join(e,".."))},qt=async e=>{const t=St(e);return await st.readFile(t,"utf-8").then(JSON.parse).catch(()=>{})},Ht=async e=>{const t=await qt(e);if(t)return t.type};let W;const jt=async e=>{if(W)return W;const t=await Ht(e);return t==="module"?W="esm":(t==="commonjs"||(typeof document>"u"?require("url").pathToFileURL(__filename).href:it&&it.tagName.toUpperCase()==="SCRIPT"&&it.src||new URL("index.cjs",document.baseURI).href).endsWith(".cjs"))&&(W="cjs"),W||"esm"},at=G.createLogger({level:"debug",format:G.format.combine(G.format.colorize(),G.format.cli()),transports:[new G.transports.Console({})]});function Ft(e){return e?typeof e!="string"?Ft(String(e)):e.replace(/[\s-]/g,".").replace(/[A-Z](?:(?=[^A-Z])|[A-Z]*(?=[A-Z][^A-Z]|$))/g,(t,s)=>(s>0?".":"")+t.toLowerCase()):""}const Lt={"*, *::before, *::after":{boxSizing:"border-box"},"*":{margin:0},html:{lineHeight:1.15,textSizeAdjust:"100%",WebkitFontSmoothing:"antialiased"},"img, picture, video, canvas, svg":{display:"block",maxWidth:"100%"},"p, h1, h2, h3, h4, h5, h6":{overflowWrap:"break-word"},p:{textWrap:"pretty"},"h1, h2, h3, h4, h5, h6":{textWrap:"balance"},a:{color:"currentColor"},button:{lineHeight:"1em",color:"currentColor"},"input, optgroup, select, textarea":{fontFamily:"inherit",fontSize:"100%",lineHeight:"1.15em"}},I=(...e)=>e.flat().reduce((t,s)=>s!=null&&s._current?{...t,...s._current}:{...t,...s},{}),Bt=(...e)=>e.flat().reduce((t,s)=>({...t,...s._children}),{});class Gt{constructor(t){tt(this,"_path");this.params=t}get _current(){return this.params.template}get isDefineTemplate(){return!0}_setPath(t){return this._path=t,this}}class Kt{constructor(t){tt(this,"_path");tt(this,"templates",[]);this.params=t,Object.entries(t).forEach(([s,n])=>{this.templates.push(new Gt({name:s,template:n}))})}get _current(){return this.params}get _children(){return Object.fromEntries(this.templates.map(t=>[t.params.name,t]))}get isDefineTemplates(){return!0}_setPath(t){return this._path=t,this.templates.forEach(s=>s._setPath(t)),this}}const Ut=e=>new Kt(e),J={externalModules:[],rcFile:void 0,destDir:void 0},Ct=e=>{if(J.externalModules.length>0)return J.externalModules;const s=d.readFileSync(e,"utf8").match(/externalModules:\s?\[(.*)\]/);if(!s)return[];const n=s[1].split(",").map(o=>o.replace(/['"`]/g,"").trim());return J.externalModules=n,n},z=async e=>{if(J.destDir)return J.destDir;const t=await ct(e),s=l.join(e,(t==null?void 0:t.saltygenDir)||"saltygen");return J.destDir=s,s},Pt=["salty","css","styles","styled"],Qt=(e=[])=>new RegExp(`\\.(${[...Pt,...e].join("|")})\\.`),Z=(e,t=[])=>Qt(t).test(e),_t=async e=>{if(J.rcFile)return J.rcFile;if(e==="/")throw new Error("Could not find .saltyrc.json file");const t=l.join(e,".saltyrc.json"),s=await st.readFile(t,"utf-8").then(JSON.parse).catch(()=>{});return s?(J.rcFile=s,s):_t(l.join(e,".."))},ct=async e=>{var n,o;const t=await _t(e),s=(n=t.projects)==null?void 0:n.find(r=>e.endsWith(r.dir||""));return s||((o=t.projects)==null?void 0:o.find(r=>r.dir===t.defaultProject))},Xt=async e=>{const t=await ct(e),s=await z(e),n=l.join(e,(t==null?void 0:t.configDir)||"","salty.config.ts"),o=l.join(s,"salty.config.js"),r=await jt(e),i=Ct(n);await gt.build({entryPoints:[n],minify:!0,treeShaking:!0,bundle:!0,outfile:o,format:r,external:i});const w=Date.now(),{config:$}=await import(`${o}?t=${w}`);return{config:$,path:o}},Yt=async(e,t)=>{var ut,dt;const s=await z(e),n={mediaQueries:[],globalStyles:[],variables:[],templates:[]};await Promise.all([...t].map(async C=>{const{contents:_,outputFilePath:A}=await nt(e,C,s);Object.entries(_).forEach(([T,O])=>{O.isMedia?n.mediaQueries.push([T,O]):O.isGlobalDefine?n.globalStyles.push(O):O.isDefineVariables?n.variables.push(O):O.isDefineTemplates&&n.templates.push(O._setPath(`${T};;${A}`))})}));const{config:o,path:r}=await Xt(e),i={...o},w=new Set,$=(C,_=[])=>C?Object.entries(C).flatMap(([A,T])=>{if(!T)return;if(typeof T=="object")return $(T,[..._,A]);const O=Ft(A),ot=V(A),rt=[..._,O].join(".");w.add(`"${rt}"`);const Y=[..._.map(V),ot].join("-"),pt=Jt(T);return pt?`--${Y}: ${pt.transformed};`:`--${Y}: ${T};`}):[],f=C=>C?Object.entries(C).flatMap(([_,A])=>{const T=$(A);return _==="base"?T.join(""):`${_} { ${T.join("")} }`}):[],p=C=>C?Object.entries(C).flatMap(([_,A])=>Object.entries(A).flatMap(([T,O])=>{const ot=$(O,[_]),rt=`.${_}-${T}, [data-${_}="${T}"]`,Y=ot.join("");return`${rt} { ${Y} }`})):[],b=C=>({...C,responsive:void 0,conditional:void 0}),g=C=>n.variables.map(_=>C==="static"?b(_._current):_._current[C]),y=I(b(o.variables),g("static")),a=$(y),m=I((ut=o.variables)==null?void 0:ut.responsive,g("responsive")),x=f(m),P=I((dt=o.variables)==null?void 0:dt.conditional,g("conditional")),R=p(P),N=l.join(s,"css/_variables.css"),M=`:root { ${a.join("")} ${x.join("")} } ${R.join("")}`;d.writeFileSync(N,M),i.staticVariables=y;const j=l.join(s,"css/_global.css"),D=I(o.global,n.globalStyles),c=await K(D,"");d.writeFileSync(j,`@layer global { ${c} }`);const h=l.join(s,"css/_reset.css"),u=o.reset==="none"?{}:typeof o.reset=="object"?o.reset:Lt,S=await K(u,"");d.writeFileSync(h,`@layer reset { ${S} }`);const k=l.join(s,"css/_templates.css"),E=I(o.templates,n.templates),q=await $t(E),H=Zt(E);d.writeFileSync(k,`@layer templates { ${q} }`),i.templates=E;const L=o.templates?[Ut(o.templates)._setPath(`config;;${r}`)]:[],U=Bt(n.templates,L);i.templatePaths=Object.fromEntries(Object.entries(U).map(([C,_])=>[C,_._path]));const{mediaQueries:Q}=n;i.mediaQueries=Object.fromEntries(Q.map(([C,_])=>[`@${C}`,_]));const B=Q.map(([C])=>`'@${C}'`).join(" | "),X=l.join(s,"types/css-tokens.d.ts"),Nt=`
7
7
  // Variable types
8
- type VariableTokens = ${[...a].join("|")};
8
+ type VariableTokens = ${[...w].join("|")};
9
9
  type PropertyValueToken = \`{\${VariableTokens}}\`;
10
10
 
11
11
  // Template types
12
12
  type TemplateTokens = {
13
- ${Object.entries(H).map(([F,x])=>`${F}?: ${x}`).join(`
13
+ ${Object.entries(H).map(([C,_])=>`${C}?: ${_}`).join(`
14
14
  `)}
15
15
  }
16
16
 
17
17
  // Media query types
18
- type MediaQueryKeys = ${K||"''"};
19
- `;d.writeFileSync(st,Q);const Nt=l.join(s,"cache/config-cache.json");d.writeFileSync(Nt,JSON.stringify(r,null,2))},yt=t=>t.replace(/styled\(([^"'`{,]+),/g,(e,s)=>{if(/^['"`]/.test(s))return e;const o=new RegExp(`import[^;]*${s}[,\\s{][^;]*from\\s?([^{};]+);`);if(!o.test(t))return e;const a=o.exec(t);if(a){const g=a.at(1);if(Ct.some(f=>g==null?void 0:g.includes(f)))return e}return"styled('div',"}),Bt=(t,e)=>{try{const s=d.readFileSync(l.join(e,"saltygen/cache/config-cache.json"),"utf8");return s?`globalThis.saltyConfig = ${s};
18
+ type MediaQueryKeys = ${B||"''"};
19
+ `;d.writeFileSync(X,Nt);const kt=l.join(s,"cache/config-cache.json");d.writeFileSync(kt,JSON.stringify(i,null,2))},yt=e=>e.replace(/styled\(([^"'`{,]+),/g,(t,s)=>{if(/^['"`]/.test(s))return t;const o=new RegExp(`import[^;]*${s}[,\\s{][^;]*from\\s?([^{};]+);`);if(!o.test(e))return t;const i=o.exec(e);if(i){const w=i.at(1);if(Pt.some(f=>w==null?void 0:w.includes(f)))return t}return"styled('div',"}),te=(e,t)=>{try{const s=d.readFileSync(l.join(t,"saltygen/cache/config-cache.json"),"utf8");return s?`globalThis.saltyConfig = ${s};
20
20
 
21
- ${t}`:`globalThis.saltyConfig = {};
21
+ ${e}`:`globalThis.saltyConfig = {};
22
22
 
23
- ${t}`}catch{return t}},et=async(t,e,s)=>{const n=v(e),o=l.join(s,"./temp");d.existsSync(o)||d.mkdirSync(o);const r=l.parse(e);let a=d.readFileSync(e,"utf8");a=yt(a),a=Bt(a,t);const g=l.join(s,"js",n+".js"),C=await at(t),f=l.join(t,(C==null?void 0:C.configDir)||"","salty.config.ts"),p=Ft(f),w=await St(t);await gt.build({stdin:{contents:a,sourcefile:r.base,resolveDir:r.dir,loader:"tsx"},minify:!1,treeShaking:!0,bundle:!0,outfile:g,format:w,target:["node20"],keepNames:!0,external:p,packages:"external",plugins:[{name:"test",setup:i=>{i.onLoad({filter:/.*\.css|salty|styles|styled\.ts/},y=>{const k=d.readFileSync(y.path,"utf8");return{contents:yt(k),loader:"ts"}})}}]});const $=Date.now();return{contents:await import(`${g}?t=${$}`),outputFilePath:g}},Gt=async t=>{const e=await z(t),s=l.join(e,"cache/config-cache.json"),n=d.readFileSync(s,"utf8");if(!n)throw new Error("Could not find config cache file");return JSON.parse(n)},ct=async t=>{const e=await Gt(t),s=await z(t),n=l.join(s,"salty.config.js"),o=Date.now(),{config:r}=await import(`${n}?t=${o}`);return Z(r,e)},lt=()=>{try{return process.env.NODE_ENV==="production"}catch{return!1}},Kt=async(t,e=lt(),s=!0)=>{try{const n=Date.now();e?it.info("Generating CSS in production mode! 🔥"):it.info("Generating CSS in development mode! 🚀");const o=[],r=[],a=await z(t),g=l.join(a,"index.css");s&&(()=>{d.existsSync(a)&&_t.execSync("rm -rf "+a),d.mkdirSync(a,{recursive:!0}),d.mkdirSync(l.join(a,"css")),d.mkdirSync(l.join(a,"types")),d.mkdirSync(l.join(a,"js")),d.mkdirSync(l.join(a,"cache"))})();const f=new Set,p=new Set;async function w(c){const h=["node_modules","saltygen"],b=d.statSync(c);if(b.isDirectory()){const u=d.readdirSync(c);if(h.some(N=>c.includes(N)))return;await Promise.all(u.map(N=>w(l.join(c,N))))}else if(b.isFile()&&q(c)){f.add(c);const S=d.readFileSync(c,"utf8");/define[\w\d]+\(/.test(S)&&p.add(c)}}await w(t),await Lt(t,p);const $={keyframes:[],components:[],classNames:[]};await Promise.all([...f].map(async c=>{const{contents:h}=await et(t,c,a);Object.entries(h).forEach(([b,u])=>{u.isKeyframes?$.keyframes.push({value:u,src:c,name:b}):u.isClassName?$.classNames.push({...u,src:c,name:b}):u.generator&&$.components.push({...u,src:c,name:b})})}));const m=await ct(t);for(const c of $.keyframes){const{value:h}=c,b=`a_${h.animationName}.css`,u=`css/${b}`,S=l.join(a,u);o.push(b),d.writeFileSync(S,h.css)}const i={};for(const c of $.components){const{src:h,name:b}=c;i[h]||(i[h]=[]);const u=c.generator._withBuildContext({callerName:b,isProduction:e,config:m});r[u.priority]||(r[u.priority]=[]);const S=await u.css;if(!S)continue;r[u.priority].push(u.cssFileName);const N=`css/${u.cssFileName}`,M=l.join(a,N);d.writeFileSync(M,S),m.importStrategy==="component"&&i[h].push(u.cssFileName)}for(const c of $.classNames){const{src:h,name:b}=c;i[h]||(i[h]=[]);const u=c.generator._withBuildContext({callerName:b,isProduction:e,config:m}),S=await u.css;if(!S)continue;r[0].push(u.cssFileName);const N=`css/${u.cssFileName}`,M=l.join(a,N);d.writeFileSync(M,S),m.importStrategy==="component"&&i[h].push(u.cssFileName)}m.importStrategy==="component"&&Object.entries(i).forEach(([c,h])=>{const b=h.map(H=>`@import url('./${H}');`).join(`
24
- `),u=v(c,6),S=l.parse(c),N=V(S.name),M=l.join(a,`css/f_${N}-${u}.css`);d.writeFileSync(M,b||"/* Empty file */")});const y=o.map(c=>`@import url('./css/${c}');`).join(`
25
- `);let _=`@layer reset, global, templates, l0, l1, l2, l3, l4, l5, l6, l7, l8;
23
+ ${e}`}catch{return e}},nt=async(e,t,s)=>{const n=v(t),o=l.join(s,"./temp");d.existsSync(o)||d.mkdirSync(o);const r=l.parse(t);let i=d.readFileSync(t,"utf8");i=yt(i),i=te(i,e);const w=l.join(s,"js",n+".js"),$=await ct(e),f=l.join(e,($==null?void 0:$.configDir)||"","salty.config.ts"),p=Ct(f),b=await jt(e);await gt.build({stdin:{contents:i,sourcefile:r.base,resolveDir:r.dir,loader:"tsx"},minify:!1,treeShaking:!0,bundle:!0,outfile:w,format:b,target:["node20"],keepNames:!0,external:p,packages:"external",plugins:[{name:"test",setup:a=>{a.onLoad({filter:/.*\.css|salty|styles|styled\.ts/},m=>{const x=d.readFileSync(m.path,"utf8");return{contents:yt(x),loader:"ts"}})}}]});const g=Date.now();return{contents:await import(`${w}?t=${g}`),outputFilePath:w}},ee=async e=>{const t=await z(e),s=l.join(t,"cache/config-cache.json"),n=d.readFileSync(s,"utf8");if(!n)throw new Error("Could not find config cache file");return JSON.parse(n)},lt=async e=>{const t=await ee(e),s=await z(e),n=l.join(s,"salty.config.js"),o=Date.now(),{config:r}=await import(`${n}?t=${o}`);return I(r,t)},ft=()=>{try{return process.env.NODE_ENV==="production"}catch{return!1}},se=async(e,t=ft(),s=!0)=>{try{const n=Date.now();t?at.info("Generating CSS in production mode! 🔥"):at.info("Generating CSS in development mode! 🚀");const o=[],r=[],i=await z(e),w=l.join(i,"index.css");s&&(()=>{d.existsSync(i)&&Ot.execSync("rm -rf "+i),d.mkdirSync(i,{recursive:!0}),d.mkdirSync(l.join(i,"css")),d.mkdirSync(l.join(i,"types")),d.mkdirSync(l.join(i,"js")),d.mkdirSync(l.join(i,"cache"))})();const f=new Set,p=new Set;async function b(c){const h=["node_modules","saltygen"],F=d.statSync(c);if(F.isDirectory()){const u=d.readdirSync(c);if(h.some(k=>c.includes(k)))return;await Promise.all(u.map(k=>b(l.join(c,k))))}else if(F.isFile()&&Z(c)){f.add(c);const S=d.readFileSync(c,"utf8");/define[\w\d]+\(/.test(S)&&p.add(c)}}await b(e),await Yt(e,p);const g={keyframes:[],components:[],classNames:[]};await Promise.all([...f].map(async c=>{const{contents:h}=await nt(e,c,i);Object.entries(h).forEach(([F,u])=>{u.isKeyframes?g.keyframes.push({value:u,src:c,name:F}):u.isClassName?g.classNames.push({...u,src:c,name:F}):u.generator&&g.components.push({...u,src:c,name:F})})}));const y=await lt(e);for(const c of g.keyframes){const{value:h}=c,F=`a_${h.animationName}.css`,u=`css/${F}`,S=l.join(i,u);o.push(F),d.writeFileSync(S,h.css)}const a={};for(const c of g.components){const{src:h,name:F}=c;a[h]||(a[h]=[]);const u=c.generator._withBuildContext({callerName:F,isProduction:t,config:y});r[u.priority]||(r[u.priority]=[]);const S=await u.css;if(!S)continue;r[u.priority].push(u.cssFileName);const k=`css/${u.cssFileName}`,E=l.join(i,k);d.writeFileSync(E,S),y.importStrategy==="component"&&a[h].push(u.cssFileName)}for(const c of g.classNames){const{src:h,name:F}=c;a[h]||(a[h]=[]);const u=c.generator._withBuildContext({callerName:F,isProduction:t,config:y}),S=await u.css;if(!S)continue;r[0].push(u.cssFileName);const k=`css/${u.cssFileName}`,E=l.join(i,k);d.writeFileSync(E,S),y.importStrategy==="component"&&a[h].push(u.cssFileName)}y.importStrategy==="component"&&Object.entries(a).forEach(([c,h])=>{const F=h.map(q=>`@import url('./${q}');`).join(`
24
+ `),u=v(c,6),S=l.parse(c),k=V(S.name),E=l.join(i,`css/f_${k}-${u}.css`);d.writeFileSync(E,F||"/* Empty file */")});const m=o.map(c=>`@import url('./css/${c}');`).join(`
25
+ `);let N=`@layer reset, global, templates, l0, l1, l2, l3, l4, l5, l6, l7, l8;
26
26
 
27
- ${["_variables.css","_reset.css","_global.css","_templates.css"].filter(c=>{try{return d.readFileSync(l.join(a,"css",c),"utf8").length>0}catch{return!1}}).map(c=>`@import url('./css/${c}');`).join(`
27
+ ${["_variables.css","_reset.css","_global.css","_templates.css"].filter(c=>{try{return d.readFileSync(l.join(i,"css",c),"utf8").length>0}catch{return!1}}).map(c=>`@import url('./css/${c}');`).join(`
28
28
  `)}
29
- ${y}`;if(m.importStrategy!=="component"){const c=r.reduce((h,b,u)=>{const S=b.reduce((L,W)=>{var Q;const K=l.join(a,"css",W),st=d.readFileSync(K,"utf8"),U=((Q=/.*-([^-]+)-\d+.css/.exec(W))==null?void 0:Q.at(1))||v(K,6);return L.includes(U)?L:`${L}
30
- /*start:${U}-${W}*/
31
- ${st}
32
- /*end:${U}*/
33
- `},""),N=`l_${u}.css`,M=l.join(a,"css",N),H=`@layer l${u} { ${S}
34
- }`;return d.writeFileSync(M,H),`${h}
35
- @import url('./css/${N}');`},"");_+=c}d.writeFileSync(g,_);const j=Date.now()-n,O=j<200?"🔥":j<500?"🚀":j<1e3?"🎉":j<2e3?"🚗":j<5e3?"🤔":"🥴";it.info(`Generated CSS in ${j}ms! ${O}`)}catch(n){console.error(n)}},Ut=async(t,e,s=lt())=>{try{const n=await z(t);if(q(e)){const r=[],a=await ct(t),{contents:g}=await et(t,e,n);for(const[C,f]of Object.entries(g)){if(f.isKeyframes&&f.css){const y=`css/${`a_${f.animationName}.css`}`,k=l.join(n,y);d.writeFileSync(k,await f.css);return}if(f.isClassName){const i=f.generator._withBuildContext({callerName:C,isProduction:s,config:a}),y=await i.css;if(!y)continue;r[0].push(i.cssFileName);const k=`css/${i.cssFileName}`,P=l.join(n,k);d.writeFileSync(P,y)}if(!f.generator)return;const p=f.generator._withBuildContext({callerName:C,isProduction:s,config:a}),w=await p.css;if(!w)continue;const $=`css/${p.cssFileName}`,m=l.join(n,$);d.writeFileSync(m,w),r[p.priority]||(r[p.priority]=[]),r[p.priority].push(p.cssFileName)}if(a.importStrategy!=="component")r.forEach((C,f)=>{const p=`l_${f}.css`,w=l.join(n,"css",p);let $=d.readFileSync(w,"utf8");C.forEach(m=>{var P;const i=l.join(n,"css",m),y=((P=/.*-([^-]+)-\d+.css/.exec(m))==null?void 0:P.at(1))||v(i,6);if(!$.includes(y)){const R=d.readFileSync(i,"utf8"),_=`/*start:${y}-${m}*/
29
+ ${m}`;if(y.importStrategy!=="component"){const c=r.reduce((h,F,u)=>{const S=F.reduce((H,L)=>{var X;const U=l.join(i,"css",L),Q=d.readFileSync(U,"utf8"),B=((X=/.*-([^-]+)-\d+.css/.exec(L))==null?void 0:X.at(1))||v(U,6);return H.includes(B)?H:`${H}
30
+ /*start:${B}-${L}*/
31
+ ${Q}
32
+ /*end:${B}*/
33
+ `},""),k=`l_${u}.css`,E=l.join(i,"css",k),q=`@layer l${u} { ${S}
34
+ }`;return d.writeFileSync(E,q),`${h}
35
+ @import url('./css/${k}');`},"");N+=c}d.writeFileSync(w,N);const j=Date.now()-n,D=j<200?"🔥":j<500?"🚀":j<1e3?"🎉":j<2e3?"🚗":j<5e3?"🤔":"🥴";at.info(`Generated CSS in ${j}ms! ${D}`)}catch(n){console.error(n)}},ne=async(e,t,s=ft())=>{try{const n=await z(e);if(Z(t)){const r=[],i=await lt(e),{contents:w}=await nt(e,t,n);for(const[$,f]of Object.entries(w)){if(f.isKeyframes&&f.css){const m=`css/${`a_${f.animationName}.css`}`,x=l.join(n,m);d.writeFileSync(x,await f.css);return}if(f.isClassName){const a=f.generator._withBuildContext({callerName:$,isProduction:s,config:i}),m=await a.css;if(!m)continue;r[0].push(a.cssFileName);const x=`css/${a.cssFileName}`,P=l.join(n,x);d.writeFileSync(P,m)}if(!f.generator)return;const p=f.generator._withBuildContext({callerName:$,isProduction:s,config:i}),b=await p.css;if(!b)continue;const g=`css/${p.cssFileName}`,y=l.join(n,g);d.writeFileSync(y,b),r[p.priority]||(r[p.priority]=[]),r[p.priority].push(p.cssFileName)}if(i.importStrategy!=="component")r.forEach(($,f)=>{const p=`l_${f}.css`,b=l.join(n,"css",p);let g=d.readFileSync(b,"utf8");$.forEach(y=>{var P;const a=l.join(n,"css",y),m=((P=/.*-([^-]+)-\d+.css/.exec(y))==null?void 0:P.at(1))||v(a,6);if(!g.includes(m)){const R=d.readFileSync(a,"utf8"),N=`/*start:${m}-${y}*/
36
36
  ${R}
37
- /*end:${y}*/
38
- `;$=`${$.replace(/\}$/,"")}
39
- ${_}
40
- }`}}),d.writeFileSync(w,$)});else{const C=r.flat().map(m=>`@import url('./${m}');`).join(`
41
- `),f=v(e,6),p=l.parse(e),w=V(p.name),$=l.join(n,`css/f_${w}-${f}.css`);d.writeFileSync($,C||"/* Empty file */")}}}catch(n){console.error(n)}},Qt=async(t,e,s=lt())=>{try{const n=await z(t);if(q(e)){const r=d.readFileSync(e,"utf8");r.replace(/^(?!export\s)const\s.*/gm,p=>`export ${p}`)!==r&&await tt.writeFile(e,r);const g=await ct(t),{contents:C}=await et(t,e,n);let f=r;if(Object.entries(C).forEach(([p,w])=>{var u;if(w.isKeyframes||!w.generator)return;const $=w.generator._withBuildContext({callerName:p,isProduction:s,config:g}),m=new RegExp(`\\s${p}[=\\s]+[^()]+styled\\(([^,]+),`,"g").exec(r);if(!m)return console.error("Could not find the original declaration");const i=(u=m.at(1))==null?void 0:u.trim(),y=new RegExp(`\\s${p}[=\\s]+styled\\(`,"g").exec(f);if(!y)return console.error("Could not find the original declaration");const{index:k}=y;let P=!1;const R=setTimeout(()=>P=!0,5e3);let _=0,T=!1,j=0;for(;!T&&!P;){const S=f[k+_];S==="("&&j++,S===")"&&j--,j===0&&S===")"&&(T=!0),_>f.length&&(P=!0),_++}if(!P)clearTimeout(R);else throw new Error("Failed to find the end of the styled call and timed out");const O=k+_,c=f.slice(k,O),h=f,b=` ${p} = styled(${i}, "${$.classNames}", ${JSON.stringify($.clientProps)});`;f=f.replace(c,b),h===f&&console.error("Minimize file failed to change content",{name:p,tagName:i})}),g.importStrategy==="component"){const p=v(e,6),w=l.parse(e);f=`import '../../saltygen/css/${`f_${V(w.name)}-${p}.css`}';
42
- ${f}`}return f=f.replace("{ styled }","{ styledClient as styled }"),f=f.replace("@salty-css/react/styled","@salty-css/react/styled-client"),f}}catch(n){console.error("Error in minimizeFile:",n)}},mt=async t=>{if(!t||t.includes("node_modules")||t.includes("saltygen"))return!1;if(t.includes("salty.config"))return!0;if(!q(t))return!1;const n=await tt.readFile(t,"utf-8");return!!/.+define[A-Z]\w+/.test(n)},xt=t=>({name:"stylegen",buildStart:()=>Kt(t),load:async e=>{if(q(e))return await Qt(t,e)},handleHotUpdate:async({file:e,server:s})=>{await mt(e)&&await s.restart()},watchChange:{handler:async e=>{q(e)&&(await mt(e)||await Ut(t,e))}}});exports.default=xt;exports.saltyPlugin=xt;
37
+ /*end:${m}*/
38
+ `;g=`${g.replace(/\}$/,"")}
39
+ ${N}
40
+ }`}}),d.writeFileSync(b,g)});else{const $=r.flat().map(y=>`@import url('./${y}');`).join(`
41
+ `),f=v(t,6),p=l.parse(t),b=V(p.name),g=l.join(n,`css/f_${b}-${f}.css`);d.writeFileSync(g,$||"/* Empty file */")}}}catch(n){console.error(n)}},oe=async(e,t,s=ft())=>{try{const n=await z(e);if(Z(t)){const r=d.readFileSync(t,"utf8");r.replace(/^(?!export\s)const\s.*/gm,p=>`export ${p}`)!==r&&await st.writeFile(t,r);const w=await lt(e),{contents:$}=await nt(e,t,n);let f=r;if(Object.entries($).forEach(([p,b])=>{var u;if(b.isKeyframes||!b.generator)return;const g=b.generator._withBuildContext({callerName:p,isProduction:s,config:w}),y=new RegExp(`\\s${p}[=\\s]+[^()]+styled\\(([^,]+),`,"g").exec(r);if(!y)return console.error("Could not find the original declaration");const a=(u=y.at(1))==null?void 0:u.trim(),m=new RegExp(`\\s${p}[=\\s]+styled\\(`,"g").exec(f);if(!m)return console.error("Could not find the original declaration");const{index:x}=m;let P=!1;const R=setTimeout(()=>P=!0,5e3);let N=0,M=!1,j=0;for(;!M&&!P;){const S=f[x+N];S==="("&&j++,S===")"&&j--,j===0&&S===")"&&(M=!0),N>f.length&&(P=!0),N++}if(!P)clearTimeout(R);else throw new Error("Failed to find the end of the styled call and timed out");const D=x+N,c=f.slice(x,D),h=f,F=` ${p} = styled(${a}, "${g.classNames}", ${JSON.stringify(g.clientProps)});`;f=f.replace(c,F),h===f&&console.error("Minimize file failed to change content",{name:p,tagName:a})}),w.importStrategy==="component"){const p=v(t,6),b=l.parse(t);f=`import '../../saltygen/css/${`f_${V(b.name)}-${p}.css`}';
42
+ ${f}`}return f=f.replace("{ styled }","{ styledClient as styled }"),f=f.replace("@salty-css/react/styled","@salty-css/react/styled-client"),f}}catch(n){console.error("Error in minimizeFile:",n)}},ht=async e=>{if(!e||e.includes("node_modules")||e.includes("saltygen"))return!1;if(e.includes("salty.config"))return!0;if(!Z(e))return!1;const n=await st.readFile(e,"utf-8");return!!/.+define[A-Z]\w+/.test(n)},xt=e=>({name:"stylegen",buildStart:()=>se(e),load:async t=>{if(Z(t))return await oe(e,t)},handleHotUpdate:async({file:t,server:s})=>{await ht(t)&&await s.restart()},watchChange:{handler:async t=>{Z(t)&&(await ht(t)||await ne(e,t))}}});exports.default=xt;exports.saltyPlugin=xt;
package/index.js CHANGED
@@ -1,36 +1,39 @@
1
- import * as wt from "esbuild";
2
- import { execSync as _t } from "child_process";
3
- import { join as u, parse as et } from "path";
4
- import { existsSync as ct, mkdirSync as I, statSync as Et, readdirSync as Tt, readFileSync as M, writeFileSync as D } from "fs";
5
- import { readFile as lt, writeFile as Ot } from "fs/promises";
6
- import { createLogger as Vt, format as it, transports as Mt } from "winston";
7
- const yt = (t) => String.fromCharCode(t + (t > 25 ? 39 : 97)), Rt = (t, e) => {
1
+ var Tt = Object.defineProperty;
2
+ var Ot = (e, t, s) => t in e ? Tt(e, t, { enumerable: !0, configurable: !0, writable: !0, value: s }) : e[t] = s;
3
+ var et = (e, t, s) => Ot(e, typeof t != "symbol" ? t + "" : t, s);
4
+ import * as bt from "esbuild";
5
+ import { execSync as Vt } from "child_process";
6
+ import { join as u, parse as nt } from "path";
7
+ import { existsSync as lt, mkdirSync as H, statSync as Mt, readdirSync as Rt, readFileSync as M, writeFileSync as k } from "fs";
8
+ import { readFile as ft, writeFile as At } from "fs/promises";
9
+ import { createLogger as Jt, format as at, transports as Wt } from "winston";
10
+ const yt = (e) => String.fromCharCode(e + (e > 25 ? 39 : 97)), zt = (e, t) => {
8
11
  let s = "", n;
9
- for (n = Math.abs(t); n > 52; n = n / 52 | 0) s = yt(n % 52) + s;
10
- return s = yt(n % 52) + s, s.length < e ? s = s.padStart(e, "a") : s.length > e && (s = s.slice(-e)), s;
11
- }, At = (t, e) => {
12
- let s = e.length;
13
- for (; s; ) t = t * 33 ^ e.charCodeAt(--s);
14
- return t;
15
- }, z = (t, e = 5) => {
16
- const s = At(5381, JSON.stringify(t)) >>> 0;
17
- return Rt(s, e);
12
+ for (n = Math.abs(e); n > 52; n = n / 52 | 0) s = yt(n % 52) + s;
13
+ return s = yt(n % 52) + s, s.length < t ? s = s.padStart(t, "a") : s.length > t && (s = s.slice(-t)), s;
14
+ }, vt = (e, t) => {
15
+ let s = t.length;
16
+ for (; s; ) e = e * 33 ^ t.charCodeAt(--s);
17
+ return e;
18
+ }, z = (e, t = 5) => {
19
+ const s = vt(5381, JSON.stringify(e)) >>> 0;
20
+ return zt(s, t);
18
21
  };
19
- function A(t) {
20
- return t ? typeof t != "string" ? A(String(t)) : t.replace(/[\s.]/g, "-").replace(/[A-Z](?:(?=[^A-Z])|[A-Z]*(?=[A-Z][^A-Z]|$))/g, (e, s) => (s > 0 ? "-" : "") + e.toLowerCase()) : "";
22
+ function A(e) {
23
+ return e ? typeof e != "string" ? A(String(e)) : e.replace(/[\s.]/g, "-").replace(/[A-Z](?:(?=[^A-Z])|[A-Z]*(?=[A-Z][^A-Z]|$))/g, (t, s) => (s > 0 ? "-" : "") + t.toLowerCase()) : "";
21
24
  }
22
- const Jt = (t) => (e) => {
23
- if (typeof e != "string" || !t) return;
24
- let s = e;
25
+ const Zt = (e) => (t) => {
26
+ if (typeof t != "string" || !e) return;
27
+ let s = t;
25
28
  const n = [];
26
- return Object.values(t).forEach((o) => {
27
- const { pattern: r, transform: a } = o;
28
- s = s.replace(r, (h) => {
29
- const { value: j, css: l } = a(h);
30
- return l && n.push(l), j;
29
+ return Object.values(e).forEach((o) => {
30
+ const { pattern: r, transform: i } = o;
31
+ s = s.replace(r, (y) => {
32
+ const { value: $, css: l } = i(y);
33
+ return l && n.push(l), $;
31
34
  });
32
35
  }), { transformed: s, additionalCss: n };
33
- }, bt = (t) => (e) => typeof e != "string" || !/\{[^{}]+\}/g.test(e) ? void 0 : { transformed: e.replace(/\{([^{}]+)\}/g, (...o) => `var(--${A(o[1].replaceAll(".", "-"))})`) }, Wt = bt(), zt = [
36
+ }, Ct = (e) => (t) => typeof t != "string" || !/\{[^{}]+\}/g.test(t) ? void 0 : { transformed: t.replace(/\{([^{}]+)\}/g, (...o) => `var(--${A(o[1].replaceAll(".", "-"))})`) }, Ht = Ct(), It = [
34
37
  "top",
35
38
  "right",
36
39
  "bottom",
@@ -51,117 +54,117 @@ const Jt = (t) => (e) => {
51
54
  /.*size.*/,
52
55
  /.*thickness.*/,
53
56
  /.*font-size.*/
54
- ], vt = (t, e, s) => zt.some((o) => typeof o == "string" ? o === t : o.test(t)) ? `${e}px` : `${e}`, Zt = ["Webkit", "Moz", "ms", "O"], Ht = (t) => t.startsWith("-") ? t : Zt.some((e) => t.startsWith(e)) ? `-${A(t)}` : A(t), tt = async (t, e = "", s, n = !1) => {
55
- if (!t) throw new Error("No styles provided to parseStyles function!");
56
- const o = /* @__PURE__ */ new Set(), a = Object.entries(t).map(async ([m, i]) => {
57
- const p = m.trim(), P = Ht(p), F = (k, O = ";") => `${P}:${k}${O}`;
58
- if (typeof i == "function" && (i = i({ scope: e, config: s })), i instanceof Promise && (i = await i), typeof i == "object") {
59
- if (!i) return;
60
- if (i.isColor) return F(i.toString());
57
+ ], Bt = (e, t, s) => It.some((o) => typeof o == "string" ? o === e : o.test(e)) ? `${t}px` : `${t}`, Gt = ["Webkit", "Moz", "ms", "O"], Kt = (e) => e.startsWith("-") ? e : Gt.some((t) => e.startsWith(t)) ? `-${A(e)}` : A(e), st = async (e, t = "", s, n = !1) => {
58
+ if (!e) throw new Error("No styles provided to parseStyles function!");
59
+ const o = /* @__PURE__ */ new Set(), i = Object.entries(e).map(async ([m, a]) => {
60
+ const p = m.trim(), x = Kt(p), F = (N, V = ";") => `${x}:${N}${V}`;
61
+ if (typeof a == "function" && (a = a({ scope: t, config: s })), a instanceof Promise && (a = await a), typeof a == "object") {
62
+ if (!a) return;
63
+ if (a.isColor) return F(a.toString());
61
64
  if (p === "defaultVariants") return;
62
65
  if (p === "variants") {
63
- const C = Object.entries(i);
66
+ const C = Object.entries(a);
64
67
  for (const [E, c] of C) {
65
68
  if (!c) return;
66
- const y = Object.entries(c);
67
- for (const [w, f] of y) {
69
+ const h = Object.entries(c);
70
+ for (const [S, f] of h) {
68
71
  if (!f) return;
69
- const b = `${e}.${E}-${w}`;
70
- (await tt(f, b, s)).forEach((V) => o.add(V));
72
+ const b = `${t}.${E}-${S}`;
73
+ (await st(f, b, s)).forEach((T) => o.add(T));
71
74
  }
72
75
  }
73
76
  return;
74
77
  }
75
78
  if (p === "compoundVariants") {
76
- for (const C of i) {
77
- const { css: E, ...c } = C, y = Object.entries(c).reduce((f, [b, N]) => `${f}.${b}-${N}`, e);
78
- (await tt(E, y, s)).forEach((f) => o.add(f));
79
+ for (const C of a) {
80
+ const { css: E, ...c } = C, h = Object.entries(c).reduce((f, [b, _]) => `${f}.${b}-${_}`, t);
81
+ (await st(E, h, s)).forEach((f) => o.add(f));
79
82
  }
80
83
  return;
81
84
  }
82
85
  if (p.startsWith("@")) {
83
- const C = p, E = await Q(i, e, s), c = `${C} { ${E} }`;
86
+ const C = p, E = await U(a, t, s), c = `${C} { ${E} }`;
84
87
  o.add(c);
85
88
  return;
86
89
  }
87
- const k = m.includes("&") ? p.replace("&", e) : p.startsWith(":") ? `${e}${p}` : `${e} ${p}`;
88
- (await tt(i, k, s)).forEach((C) => o.add(C));
90
+ const N = m.includes("&") ? p.replace("&", t) : p.startsWith(":") ? `${t}${p}` : `${t} ${p}`;
91
+ (await st(a, N, s)).forEach((C) => o.add(C));
89
92
  return;
90
93
  }
91
- if (typeof i == "number") {
92
- const k = vt(P, i);
93
- return F(k);
94
+ if (typeof a == "number") {
95
+ const N = Bt(x, a);
96
+ return F(N);
94
97
  }
95
- if (typeof i != "string")
96
- if ("toString" in i) i = i.toString();
97
- else throw new Error(`Invalid value type for property ${P}`);
98
- return F(i);
99
- }), { modifiers: h } = {}, j = [bt(), Jt(h)], d = (await Promise.all(a).then((m) => Promise.all(
100
- m.map((i) => j.reduce(async (p, P) => {
98
+ if (typeof a != "string")
99
+ if ("toString" in a) a = a.toString();
100
+ else throw new Error(`Invalid value type for property ${x}`);
101
+ return F(a);
102
+ }), { modifiers: y } = {}, $ = [Ct(), Zt(y)], d = (await Promise.all(i).then((m) => Promise.all(
103
+ m.map((a) => $.reduce(async (p, x) => {
101
104
  const F = await p;
102
105
  if (!F) return F;
103
- const R = await P(F);
106
+ const R = await x(F);
104
107
  if (!R) return F;
105
- const { transformed: k, additionalCss: O } = R;
108
+ const { transformed: N, additionalCss: V } = R;
106
109
  let C = "";
107
- if (O)
108
- for (const E of O)
109
- C += await Q(E, "");
110
- return `${C}${k}`;
111
- }, Promise.resolve(i)))
110
+ if (V)
111
+ for (const E of V)
112
+ C += await U(E, "");
113
+ return `${C}${N}`;
114
+ }, Promise.resolve(a)))
112
115
  ))).filter((m) => m !== void 0).join(`
113
116
  `);
114
117
  if (!d.trim()) return Array.from(o);
115
- const g = e ? `${e} {
118
+ const w = t ? `${t} {
116
119
  ${d}
117
120
  }` : d;
118
- return o.has(g) ? Array.from(o) : [g, ...o];
119
- }, Q = async (t, e, s, n = !1) => (await tt(t, e, s, n)).join(`
120
- `), Ct = async (t, e = []) => {
121
- if (!t) return "";
121
+ return o.has(w) ? Array.from(o) : [w, ...o];
122
+ }, U = async (e, t, s, n = !1) => (await st(e, t, s, n)).join(`
123
+ `), St = async (e, t = []) => {
124
+ if (!e) return "";
122
125
  const s = [], n = {};
123
- for (const [o, r] of Object.entries(t))
126
+ for (const [o, r] of Object.entries(e))
124
127
  if (typeof r != "function") if (r && typeof r == "object") {
125
- const a = o.trim(), h = await Ct(r, [...e, a]);
126
- s.push(h);
128
+ const i = o.trim(), y = await St(r, [...t, i]);
129
+ s.push(y);
127
130
  } else
128
131
  n[o] = r;
129
132
  if (Object.keys(n).length) {
130
- const o = e.map(A).join("-"), r = "t_" + z(o, 4), a = await Q(n, `.${o}, .${r}`);
131
- s.push(a);
133
+ const o = t.map(A).join("-"), r = "t_" + z(o, 4), i = await U(n, `.${o}, .${r}`);
134
+ s.push(i);
132
135
  }
133
136
  return s.join(`
134
137
  `);
135
- }, It = (t) => t ? Object.entries(t).reduce((e, [s, n]) => (typeof n == "function" ? e[s] = "any" : typeof n == "object" && (e[s] = St(n).map((o) => `"${o}"`).join(" | ")), e), {}) : {}, St = (t, e = "", s = /* @__PURE__ */ new Set()) => t ? (Object.entries(t).forEach(([n, o]) => {
136
- const r = e ? `${e}.${n}` : n;
137
- return typeof o == "object" ? St(o, r, s) : s.add(e);
138
- }), [...s]) : [], jt = (t) => {
139
- if (!t || t === "/") throw new Error("Could not find package.json file");
140
- const e = u(t, "package.json");
141
- return ct(e) ? e : jt(u(t, ".."));
142
- }, Bt = async (t) => {
143
- const e = jt(t);
144
- return await lt(e, "utf-8").then(JSON.parse).catch(() => {
138
+ }, Lt = (e) => e ? Object.entries(e).reduce((t, [s, n]) => (typeof n == "function" ? t[s] = "any" : typeof n == "object" && (t[s] = jt(n).map((o) => `"${o}"`).join(" | ")), t), {}) : {}, jt = (e, t = "", s = /* @__PURE__ */ new Set()) => e ? (Object.entries(e).forEach(([n, o]) => {
139
+ const r = t ? `${t}.${n}` : n;
140
+ return typeof o == "object" ? jt(o, r, s) : s.add(t);
141
+ }), [...s]) : [], Ft = (e) => {
142
+ if (!e || e === "/") throw new Error("Could not find package.json file");
143
+ const t = u(e, "package.json");
144
+ return lt(t) ? t : Ft(u(e, ".."));
145
+ }, Qt = async (e) => {
146
+ const t = Ft(e);
147
+ return await ft(t, "utf-8").then(JSON.parse).catch(() => {
145
148
  });
146
- }, Gt = async (t) => {
147
- const e = await Bt(t);
148
- if (e)
149
- return e.type;
149
+ }, Ut = async (e) => {
150
+ const t = await Qt(e);
151
+ if (t)
152
+ return t.type;
150
153
  };
151
- let H;
152
- const Ft = async (t) => {
153
- if (H) return H;
154
- const e = await Gt(t);
155
- return e === "module" ? H = "esm" : (e === "commonjs" || import.meta.url.endsWith(".cjs")) && (H = "cjs"), H || "esm";
156
- }, at = Vt({
154
+ let Z;
155
+ const Pt = async (e) => {
156
+ if (Z) return Z;
157
+ const t = await Ut(e);
158
+ return t === "module" ? Z = "esm" : (t === "commonjs" || import.meta.url.endsWith(".cjs")) && (Z = "cjs"), Z || "esm";
159
+ }, ct = Jt({
157
160
  level: "debug",
158
- format: it.combine(it.colorize(), it.cli()),
159
- transports: [new Mt.Console({})]
161
+ format: at.combine(at.colorize(), at.cli()),
162
+ transports: [new Wt.Console({})]
160
163
  });
161
- function xt(t) {
162
- return t ? typeof t != "string" ? xt(String(t)) : t.replace(/[\s-]/g, ".").replace(/[A-Z](?:(?=[^A-Z])|[A-Z]*(?=[A-Z][^A-Z]|$))/g, (e, s) => (s > 0 ? "." : "") + e.toLowerCase()) : "";
164
+ function xt(e) {
165
+ return e ? typeof e != "string" ? xt(String(e)) : e.replace(/[\s-]/g, ".").replace(/[A-Z](?:(?=[^A-Z])|[A-Z]*(?=[A-Z][^A-Z]|$))/g, (t, s) => (s > 0 ? "." : "") + t.toLowerCase()) : "";
163
166
  }
164
- const Kt = {
167
+ const qt = {
165
168
  /** Set box model to border-box */
166
169
  "*, *::before, *::after": {
167
170
  boxSizing: "border-box"
@@ -207,132 +210,176 @@ const Kt = {
207
210
  fontSize: "100%",
208
211
  lineHeight: "1.15em"
209
212
  }
210
- }, B = (...t) => t.flat().reduce((e, s) => s != null && s._current ? { ...e, ...s._current } : { ...e, ...s }, {}), Lt = (...t) => t.flat().reduce((e, s) => ({ ...e, ...s._children }), {}), W = {
213
+ }, I = (...e) => e.flat().reduce((t, s) => s != null && s._current ? { ...t, ...s._current } : { ...t, ...s }, {}), Xt = (...e) => e.flat().reduce((t, s) => ({ ...t, ...s._children }), {});
214
+ class Yt {
215
+ constructor(t) {
216
+ et(this, "_path");
217
+ this.params = t;
218
+ }
219
+ get _current() {
220
+ return this.params.template;
221
+ }
222
+ get isDefineTemplate() {
223
+ return !0;
224
+ }
225
+ _setPath(t) {
226
+ return this._path = t, this;
227
+ }
228
+ }
229
+ class te {
230
+ constructor(t) {
231
+ et(this, "_path");
232
+ et(this, "templates", []);
233
+ this.params = t, Object.entries(t).forEach(([s, n]) => {
234
+ this.templates.push(
235
+ new Yt({
236
+ name: s,
237
+ template: n
238
+ })
239
+ );
240
+ });
241
+ }
242
+ get _current() {
243
+ return this.params;
244
+ }
245
+ get _children() {
246
+ return Object.fromEntries(
247
+ this.templates.map((t) => [t.params.name, t])
248
+ );
249
+ }
250
+ get isDefineTemplates() {
251
+ return !0;
252
+ }
253
+ _setPath(t) {
254
+ return this._path = t, this.templates.forEach((s) => s._setPath(t)), this;
255
+ }
256
+ }
257
+ const ee = (e) => new te(e), W = {
211
258
  externalModules: [],
212
259
  rcFile: void 0,
213
260
  destDir: void 0
214
- }, Nt = (t) => {
261
+ }, Nt = (e) => {
215
262
  if (W.externalModules.length > 0) return W.externalModules;
216
- const s = M(t, "utf8").match(/externalModules:\s?\[(.*)\]/);
263
+ const s = M(e, "utf8").match(/externalModules:\s?\[(.*)\]/);
217
264
  if (!s) return [];
218
265
  const n = s[1].split(",").map((o) => o.replace(/['"`]/g, "").trim());
219
266
  return W.externalModules = n, n;
220
- }, v = async (t) => {
267
+ }, v = async (e) => {
221
268
  if (W.destDir) return W.destDir;
222
- const e = await ft(t), s = u(t, (e == null ? void 0 : e.saltygenDir) || "saltygen");
269
+ const t = await ut(e), s = u(e, (t == null ? void 0 : t.saltygenDir) || "saltygen");
223
270
  return W.destDir = s, s;
224
- }, Pt = ["salty", "css", "styles", "styled"], Qt = (t = []) => new RegExp(`\\.(${[...Pt, ...t].join("|")})\\.`), G = (t, e = []) => Qt(e).test(t), kt = async (t) => {
271
+ }, _t = ["salty", "css", "styles", "styled"], se = (e = []) => new RegExp(`\\.(${[..._t, ...e].join("|")})\\.`), B = (e, t = []) => se(t).test(e), kt = async (e) => {
225
272
  if (W.rcFile) return W.rcFile;
226
- if (t === "/") throw new Error("Could not find .saltyrc.json file");
227
- const e = u(t, ".saltyrc.json"), s = await lt(e, "utf-8").then(JSON.parse).catch(() => {
273
+ if (e === "/") throw new Error("Could not find .saltyrc.json file");
274
+ const t = u(e, ".saltyrc.json"), s = await ft(t, "utf-8").then(JSON.parse).catch(() => {
228
275
  });
229
- return s ? (W.rcFile = s, s) : kt(u(t, ".."));
230
- }, ft = async (t) => {
276
+ return s ? (W.rcFile = s, s) : kt(u(e, ".."));
277
+ }, ut = async (e) => {
231
278
  var n, o;
232
- const e = await kt(t), s = (n = e.projects) == null ? void 0 : n.find((r) => t.endsWith(r.dir || ""));
233
- return s || ((o = e.projects) == null ? void 0 : o.find((r) => r.dir === e.defaultProject));
234
- }, Ut = async (t) => {
235
- const e = await ft(t), s = await v(t), n = u(t, (e == null ? void 0 : e.configDir) || "", "salty.config.ts"), o = u(s, "salty.config.js"), r = await Ft(t), a = Nt(n);
236
- await wt.build({
279
+ const t = await kt(e), s = (n = t.projects) == null ? void 0 : n.find((r) => e.endsWith(r.dir || ""));
280
+ return s || ((o = t.projects) == null ? void 0 : o.find((r) => r.dir === t.defaultProject));
281
+ }, ne = async (e) => {
282
+ const t = await ut(e), s = await v(e), n = u(e, (t == null ? void 0 : t.configDir) || "", "salty.config.ts"), o = u(s, "salty.config.js"), r = await Pt(e), i = Nt(n);
283
+ await bt.build({
237
284
  entryPoints: [n],
238
285
  minify: !0,
239
286
  treeShaking: !0,
240
287
  bundle: !0,
241
288
  outfile: o,
242
289
  format: r,
243
- external: a
290
+ external: i
244
291
  });
245
- const h = Date.now(), { config: j } = await import(`${o}?t=${h}`);
246
- return j;
247
- }, qt = async (t, e) => {
248
- var pt, mt;
249
- const s = await v(t), n = {
292
+ const y = Date.now(), { config: $ } = await import(`${o}?t=${y}`);
293
+ return { config: $, path: o };
294
+ }, oe = async (e, t) => {
295
+ var mt, ht;
296
+ const s = await v(e), n = {
250
297
  mediaQueries: [],
251
298
  globalStyles: [],
252
299
  variables: [],
253
300
  templates: []
254
301
  };
255
302
  await Promise.all(
256
- [...e].map(async (S) => {
257
- const { contents: x, outputFilePath: J } = await st(t, S, s);
258
- Object.entries(x).forEach(([_, T]) => {
259
- T.isMedia ? n.mediaQueries.push([_, T]) : T.isGlobalDefine ? n.globalStyles.push(T) : T.isDefineVariables ? n.variables.push(T) : T.isDefineTemplates && n.templates.push(T._setPath(`${_};;${J}`));
303
+ [...t].map(async (j) => {
304
+ const { contents: P, outputFilePath: J } = await ot(e, j, s);
305
+ Object.entries(P).forEach(([D, O]) => {
306
+ O.isMedia ? n.mediaQueries.push([D, O]) : O.isGlobalDefine ? n.globalStyles.push(O) : O.isDefineVariables ? n.variables.push(O) : O.isDefineTemplates && n.templates.push(O._setPath(`${D};;${J}`));
260
307
  });
261
308
  })
262
309
  );
263
- const o = await Ut(t), r = { ...o }, a = /* @__PURE__ */ new Set(), h = (S, x = []) => S ? Object.entries(S).flatMap(([J, _]) => {
264
- if (!_) return;
265
- if (typeof _ == "object") return h(_, [...x, J]);
266
- const T = xt(J), ot = A(J), rt = [...x, T].join(".");
267
- a.add(`"${rt}"`);
268
- const Y = [...x.map(A), ot].join("-"), ht = Wt(_);
269
- return ht ? `--${Y}: ${ht.transformed};` : `--${Y}: ${_};`;
270
- }) : [], j = (S) => S ? Object.entries(S).flatMap(([x, J]) => {
271
- const _ = h(J);
272
- return x === "base" ? _.join("") : `${x} { ${_.join("")} }`;
273
- }) : [], l = (S) => S ? Object.entries(S).flatMap(([x, J]) => Object.entries(J).flatMap(([_, T]) => {
274
- const ot = h(T, [x]), rt = `.${x}-${_}, [data-${x}="${_}"]`, Y = ot.join("");
275
- return `${rt} { ${Y} }`;
276
- })) : [], d = (S) => ({ ...S, responsive: void 0, conditional: void 0 }), g = (S) => n.variables.map((x) => S === "static" ? d(x._current) : x._current[S]), $ = B(d(o.variables), g("static")), m = h($), i = B((pt = o.variables) == null ? void 0 : pt.responsive, g("responsive")), p = j(i), P = B((mt = o.variables) == null ? void 0 : mt.conditional, g("conditional")), F = l(P), R = u(s, "css/_variables.css"), k = `:root { ${m.join("")} ${p.join("")} } ${F.join("")}`;
277
- D(R, k), r.staticVariables = $;
278
- const O = u(s, "css/_global.css"), C = B(o.global, n.globalStyles), E = await Q(C, "");
279
- D(O, `@layer global { ${E} }`);
280
- const c = u(s, "css/_reset.css"), w = o.reset === "none" ? {} : typeof o.reset == "object" ? o.reset : Kt, f = await Q(w, "");
281
- D(c, `@layer reset { ${f} }`);
282
- const b = u(s, "css/_templates.css"), N = B(o.templates, n.templates), V = await Ct(N), K = It(N);
283
- D(b, `@layer templates { ${V} }`), r.templates = N;
284
- const L = Lt(n.templates);
285
- r.templatePaths = Object.fromEntries(Object.entries(L).map(([S, x]) => [S, x._path]));
286
- const { mediaQueries: Z } = n;
287
- r.mediaQueries = Object.fromEntries(Z.map(([S, x]) => [`@${S}`, x]));
288
- const U = Z.map(([S]) => `'@${S}'`).join(" | "), nt = u(s, "types/css-tokens.d.ts"), X = `
310
+ const { config: o, path: r } = await ne(e), i = { ...o }, y = /* @__PURE__ */ new Set(), $ = (j, P = []) => j ? Object.entries(j).flatMap(([J, D]) => {
311
+ if (!D) return;
312
+ if (typeof D == "object") return $(D, [...P, J]);
313
+ const O = xt(J), rt = A(J), it = [...P, O].join(".");
314
+ y.add(`"${it}"`);
315
+ const tt = [...P.map(A), rt].join("-"), gt = Ht(D);
316
+ return gt ? `--${tt}: ${gt.transformed};` : `--${tt}: ${D};`;
317
+ }) : [], l = (j) => j ? Object.entries(j).flatMap(([P, J]) => {
318
+ const D = $(J);
319
+ return P === "base" ? D.join("") : `${P} { ${D.join("")} }`;
320
+ }) : [], d = (j) => j ? Object.entries(j).flatMap(([P, J]) => Object.entries(J).flatMap(([D, O]) => {
321
+ const rt = $(O, [P]), it = `.${P}-${D}, [data-${P}="${D}"]`, tt = rt.join("");
322
+ return `${it} { ${tt} }`;
323
+ })) : [], w = (j) => ({ ...j, responsive: void 0, conditional: void 0 }), g = (j) => n.variables.map((P) => j === "static" ? w(P._current) : P._current[j]), m = I(w(o.variables), g("static")), a = $(m), p = I((mt = o.variables) == null ? void 0 : mt.responsive, g("responsive")), x = l(p), F = I((ht = o.variables) == null ? void 0 : ht.conditional, g("conditional")), R = d(F), N = u(s, "css/_variables.css"), V = `:root { ${a.join("")} ${x.join("")} } ${R.join("")}`;
324
+ k(N, V), i.staticVariables = m;
325
+ const C = u(s, "css/_global.css"), E = I(o.global, n.globalStyles), c = await U(E, "");
326
+ k(C, `@layer global { ${c} }`);
327
+ const h = u(s, "css/_reset.css"), f = o.reset === "none" ? {} : typeof o.reset == "object" ? o.reset : qt, b = await U(f, "");
328
+ k(h, `@layer reset { ${b} }`);
329
+ const _ = u(s, "css/_templates.css"), T = I(o.templates, n.templates), G = await St(T), K = Lt(T);
330
+ k(_, `@layer templates { ${G} }`), i.templates = T;
331
+ const L = o.templates ? [ee(o.templates)._setPath(`config;;${r}`)] : [], q = Xt(n.templates, L);
332
+ i.templatePaths = Object.fromEntries(Object.entries(q).map(([j, P]) => [j, P._path]));
333
+ const { mediaQueries: X } = n;
334
+ i.mediaQueries = Object.fromEntries(X.map(([j, P]) => [`@${j}`, P]));
335
+ const Q = X.map(([j]) => `'@${j}'`).join(" | "), Y = u(s, "types/css-tokens.d.ts"), Dt = `
289
336
  // Variable types
290
- type VariableTokens = ${[...a].join("|")};
337
+ type VariableTokens = ${[...y].join("|")};
291
338
  type PropertyValueToken = \`{\${VariableTokens}}\`;
292
339
 
293
340
  // Template types
294
341
  type TemplateTokens = {
295
- ${Object.entries(K).map(([S, x]) => `${S}?: ${x}`).join(`
342
+ ${Object.entries(K).map(([j, P]) => `${j}?: ${P}`).join(`
296
343
  `)}
297
344
  }
298
345
 
299
346
  // Media query types
300
- type MediaQueryKeys = ${U || "''"};
347
+ type MediaQueryKeys = ${Q || "''"};
301
348
  `;
302
- D(nt, X);
303
- const Dt = u(s, "cache/config-cache.json");
304
- D(Dt, JSON.stringify(r, null, 2));
305
- }, gt = (t) => t.replace(/styled\(([^"'`{,]+),/g, (e, s) => {
306
- if (/^['"`]/.test(s)) return e;
349
+ k(Y, Dt);
350
+ const Et = u(s, "cache/config-cache.json");
351
+ k(Et, JSON.stringify(i, null, 2));
352
+ }, $t = (e) => e.replace(/styled\(([^"'`{,]+),/g, (t, s) => {
353
+ if (/^['"`]/.test(s)) return t;
307
354
  const o = new RegExp(`import[^;]*${s}[,\\s{][^;]*from\\s?([^{};]+);`);
308
- if (!o.test(t)) return e;
309
- const a = o.exec(t);
310
- if (a) {
311
- const h = a.at(1);
312
- if (Pt.some((l) => h == null ? void 0 : h.includes(l))) return e;
355
+ if (!o.test(e)) return t;
356
+ const i = o.exec(e);
357
+ if (i) {
358
+ const y = i.at(1);
359
+ if (_t.some((l) => y == null ? void 0 : y.includes(l))) return t;
313
360
  }
314
361
  return "styled('div',";
315
- }), Xt = (t, e) => {
362
+ }), re = (e, t) => {
316
363
  try {
317
- const s = M(u(e, "saltygen/cache/config-cache.json"), "utf8");
364
+ const s = M(u(t, "saltygen/cache/config-cache.json"), "utf8");
318
365
  return s ? `globalThis.saltyConfig = ${s};
319
366
 
320
- ${t}` : `globalThis.saltyConfig = {};
367
+ ${e}` : `globalThis.saltyConfig = {};
321
368
 
322
- ${t}`;
369
+ ${e}`;
323
370
  } catch {
324
- return t;
371
+ return e;
325
372
  }
326
- }, st = async (t, e, s) => {
327
- const n = z(e), o = u(s, "./temp");
328
- ct(o) || I(o);
329
- const r = et(e);
330
- let a = M(e, "utf8");
331
- a = gt(a), a = Xt(a, t);
332
- const h = u(s, "js", n + ".js"), j = await ft(t), l = u(t, (j == null ? void 0 : j.configDir) || "", "salty.config.ts"), d = Nt(l), g = await Ft(t);
333
- await wt.build({
373
+ }, ot = async (e, t, s) => {
374
+ const n = z(t), o = u(s, "./temp");
375
+ lt(o) || H(o);
376
+ const r = nt(t);
377
+ let i = M(t, "utf8");
378
+ i = $t(i), i = re(i, e);
379
+ const y = u(s, "js", n + ".js"), $ = await ut(e), l = u(e, ($ == null ? void 0 : $.configDir) || "", "salty.config.ts"), d = Nt(l), w = await Pt(e);
380
+ await bt.build({
334
381
  stdin: {
335
- contents: a,
382
+ contents: i,
336
383
  sourcefile: r.base,
337
384
  resolveDir: r.dir,
338
385
  loader: "tsx"
@@ -340,8 +387,8 @@ ${t}`;
340
387
  minify: !1,
341
388
  treeShaking: !0,
342
389
  bundle: !0,
343
- outfile: h,
344
- format: g,
390
+ outfile: y,
391
+ format: w,
345
392
  target: ["node20"],
346
393
  keepNames: !0,
347
394
  external: d,
@@ -349,123 +396,123 @@ ${t}`;
349
396
  plugins: [
350
397
  {
351
398
  name: "test",
352
- setup: (i) => {
353
- i.onLoad({ filter: /.*\.css|salty|styles|styled\.ts/ }, (p) => {
354
- const P = M(p.path, "utf8");
355
- return { contents: gt(P), loader: "ts" };
399
+ setup: (a) => {
400
+ a.onLoad({ filter: /.*\.css|salty|styles|styled\.ts/ }, (p) => {
401
+ const x = M(p.path, "utf8");
402
+ return { contents: $t(x), loader: "ts" };
356
403
  });
357
404
  }
358
405
  }
359
406
  ]
360
407
  });
361
- const $ = Date.now();
362
- return { contents: await import(`${h}?t=${$}`), outputFilePath: h };
363
- }, Yt = async (t) => {
364
- const e = await v(t), s = u(e, "cache/config-cache.json"), n = M(s, "utf8");
408
+ const g = Date.now();
409
+ return { contents: await import(`${y}?t=${g}`), outputFilePath: y };
410
+ }, ie = async (e) => {
411
+ const t = await v(e), s = u(t, "cache/config-cache.json"), n = M(s, "utf8");
365
412
  if (!n) throw new Error("Could not find config cache file");
366
413
  return JSON.parse(n);
367
- }, ut = async (t) => {
368
- const e = await Yt(t), s = await v(t), n = u(s, "salty.config.js"), o = Date.now(), { config: r } = await import(`${n}?t=${o}`);
369
- return B(r, e);
370
- }, dt = () => {
414
+ }, dt = async (e) => {
415
+ const t = await ie(e), s = await v(e), n = u(s, "salty.config.js"), o = Date.now(), { config: r } = await import(`${n}?t=${o}`);
416
+ return I(r, t);
417
+ }, pt = () => {
371
418
  try {
372
419
  return process.env.NODE_ENV === "production";
373
420
  } catch {
374
421
  return !1;
375
422
  }
376
- }, te = async (t, e = dt(), s = !0) => {
423
+ }, ae = async (e, t = pt(), s = !0) => {
377
424
  try {
378
425
  const n = Date.now();
379
- e ? at.info("Generating CSS in production mode! 🔥") : at.info("Generating CSS in development mode! 🚀");
380
- const o = [], r = [], a = await v(t), h = u(a, "index.css");
426
+ t ? ct.info("Generating CSS in production mode! 🔥") : ct.info("Generating CSS in development mode! 🚀");
427
+ const o = [], r = [], i = await v(e), y = u(i, "index.css");
381
428
  s && (() => {
382
- ct(a) && _t("rm -rf " + a), I(a, { recursive: !0 }), I(u(a, "css")), I(u(a, "types")), I(u(a, "js")), I(u(a, "cache"));
429
+ lt(i) && Vt("rm -rf " + i), H(i, { recursive: !0 }), H(u(i, "css")), H(u(i, "types")), H(u(i, "js")), H(u(i, "cache"));
383
430
  })();
384
431
  const l = /* @__PURE__ */ new Set(), d = /* @__PURE__ */ new Set();
385
- async function g(c) {
386
- const y = ["node_modules", "saltygen"], w = Et(c);
387
- if (w.isDirectory()) {
388
- const f = Tt(c);
389
- if (y.some((N) => c.includes(N))) return;
390
- await Promise.all(f.map((N) => g(u(c, N))));
391
- } else if (w.isFile() && G(c)) {
432
+ async function w(c) {
433
+ const h = ["node_modules", "saltygen"], S = Mt(c);
434
+ if (S.isDirectory()) {
435
+ const f = Rt(c);
436
+ if (h.some((_) => c.includes(_))) return;
437
+ await Promise.all(f.map((_) => w(u(c, _))));
438
+ } else if (S.isFile() && B(c)) {
392
439
  l.add(c);
393
440
  const b = M(c, "utf8");
394
441
  /define[\w\d]+\(/.test(b) && d.add(c);
395
442
  }
396
443
  }
397
- await g(t), await qt(t, d);
398
- const $ = {
444
+ await w(e), await oe(e, d);
445
+ const g = {
399
446
  keyframes: [],
400
447
  components: [],
401
448
  classNames: []
402
449
  };
403
450
  await Promise.all(
404
451
  [...l].map(async (c) => {
405
- const { contents: y } = await st(t, c, a);
406
- Object.entries(y).forEach(([w, f]) => {
407
- f.isKeyframes ? $.keyframes.push({
452
+ const { contents: h } = await ot(e, c, i);
453
+ Object.entries(h).forEach(([S, f]) => {
454
+ f.isKeyframes ? g.keyframes.push({
408
455
  value: f,
409
456
  src: c,
410
- name: w
411
- }) : f.isClassName ? $.classNames.push({
457
+ name: S
458
+ }) : f.isClassName ? g.classNames.push({
412
459
  ...f,
413
460
  src: c,
414
- name: w
415
- }) : f.generator && $.components.push({
461
+ name: S
462
+ }) : f.generator && g.components.push({
416
463
  ...f,
417
464
  src: c,
418
- name: w
465
+ name: S
419
466
  });
420
467
  });
421
468
  })
422
469
  );
423
- const m = await ut(t);
424
- for (const c of $.keyframes) {
425
- const { value: y } = c, w = `a_${y.animationName}.css`, f = `css/${w}`, b = u(a, f);
426
- o.push(w), D(b, y.css);
470
+ const m = await dt(e);
471
+ for (const c of g.keyframes) {
472
+ const { value: h } = c, S = `a_${h.animationName}.css`, f = `css/${S}`, b = u(i, f);
473
+ o.push(S), k(b, h.css);
427
474
  }
428
- const i = {};
429
- for (const c of $.components) {
430
- const { src: y, name: w } = c;
431
- i[y] || (i[y] = []);
475
+ const a = {};
476
+ for (const c of g.components) {
477
+ const { src: h, name: S } = c;
478
+ a[h] || (a[h] = []);
432
479
  const f = c.generator._withBuildContext({
433
- callerName: w,
434
- isProduction: e,
480
+ callerName: S,
481
+ isProduction: t,
435
482
  config: m
436
483
  });
437
484
  r[f.priority] || (r[f.priority] = []);
438
485
  const b = await f.css;
439
486
  if (!b) continue;
440
487
  r[f.priority].push(f.cssFileName);
441
- const N = `css/${f.cssFileName}`, V = u(a, N);
442
- D(V, b), m.importStrategy === "component" && i[y].push(f.cssFileName);
488
+ const _ = `css/${f.cssFileName}`, T = u(i, _);
489
+ k(T, b), m.importStrategy === "component" && a[h].push(f.cssFileName);
443
490
  }
444
- for (const c of $.classNames) {
445
- const { src: y, name: w } = c;
446
- i[y] || (i[y] = []);
491
+ for (const c of g.classNames) {
492
+ const { src: h, name: S } = c;
493
+ a[h] || (a[h] = []);
447
494
  const f = c.generator._withBuildContext({
448
- callerName: w,
449
- isProduction: e,
495
+ callerName: S,
496
+ isProduction: t,
450
497
  config: m
451
498
  }), b = await f.css;
452
499
  if (!b) continue;
453
500
  r[0].push(f.cssFileName);
454
- const N = `css/${f.cssFileName}`, V = u(a, N);
455
- D(V, b), m.importStrategy === "component" && i[y].push(f.cssFileName);
501
+ const _ = `css/${f.cssFileName}`, T = u(i, _);
502
+ k(T, b), m.importStrategy === "component" && a[h].push(f.cssFileName);
456
503
  }
457
- m.importStrategy === "component" && Object.entries(i).forEach(([c, y]) => {
458
- const w = y.map((K) => `@import url('./${K}');`).join(`
459
- `), f = z(c, 6), b = et(c), N = A(b.name), V = u(a, `css/f_${N}-${f}.css`);
460
- D(V, w || "/* Empty file */");
504
+ m.importStrategy === "component" && Object.entries(a).forEach(([c, h]) => {
505
+ const S = h.map((G) => `@import url('./${G}');`).join(`
506
+ `), f = z(c, 6), b = nt(c), _ = A(b.name), T = u(i, `css/f_${_}-${f}.css`);
507
+ k(T, S || "/* Empty file */");
461
508
  });
462
509
  const p = o.map((c) => `@import url('./css/${c}');`).join(`
463
510
  `);
464
- let k = `@layer reset, global, templates, l0, l1, l2, l3, l4, l5, l6, l7, l8;
511
+ let N = `@layer reset, global, templates, l0, l1, l2, l3, l4, l5, l6, l7, l8;
465
512
 
466
513
  ${["_variables.css", "_reset.css", "_global.css", "_templates.css"].filter((c) => {
467
514
  try {
468
- return M(u(a, "css", c), "utf8").length > 0;
515
+ return M(u(i, "css", c), "utf8").length > 0;
469
516
  } catch {
470
517
  return !1;
471
518
  }
@@ -473,121 +520,121 @@ ${["_variables.css", "_reset.css", "_global.css", "_templates.css"].filter((c) =
473
520
  `)}
474
521
  ${p}`;
475
522
  if (m.importStrategy !== "component") {
476
- const c = r.reduce((y, w, f) => {
477
- const b = w.reduce((L, Z) => {
478
- var X;
479
- const U = u(a, "css", Z), nt = M(U, "utf8"), q = ((X = /.*-([^-]+)-\d+.css/.exec(Z)) == null ? void 0 : X.at(1)) || z(U, 6);
480
- return L.includes(q) ? L : `${L}
481
- /*start:${q}-${Z}*/
482
- ${nt}
483
- /*end:${q}*/
523
+ const c = r.reduce((h, S, f) => {
524
+ const b = S.reduce((K, L) => {
525
+ var Y;
526
+ const q = u(i, "css", L), X = M(q, "utf8"), Q = ((Y = /.*-([^-]+)-\d+.css/.exec(L)) == null ? void 0 : Y.at(1)) || z(q, 6);
527
+ return K.includes(Q) ? K : `${K}
528
+ /*start:${Q}-${L}*/
529
+ ${X}
530
+ /*end:${Q}*/
484
531
  `;
485
- }, ""), N = `l_${f}.css`, V = u(a, "css", N), K = `@layer l${f} { ${b}
532
+ }, ""), _ = `l_${f}.css`, T = u(i, "css", _), G = `@layer l${f} { ${b}
486
533
  }`;
487
- return D(V, K), `${y}
488
- @import url('./css/${N}');`;
534
+ return k(T, G), `${h}
535
+ @import url('./css/${_}');`;
489
536
  }, "");
490
- k += c;
537
+ N += c;
491
538
  }
492
- D(h, k);
539
+ k(y, N);
493
540
  const C = Date.now() - n, E = C < 200 ? "🔥" : C < 500 ? "🚀" : C < 1e3 ? "🎉" : C < 2e3 ? "🚗" : C < 5e3 ? "🤔" : "🥴";
494
- at.info(`Generated CSS in ${C}ms! ${E}`);
541
+ ct.info(`Generated CSS in ${C}ms! ${E}`);
495
542
  } catch (n) {
496
543
  console.error(n);
497
544
  }
498
- }, ee = async (t, e, s = dt()) => {
545
+ }, ce = async (e, t, s = pt()) => {
499
546
  try {
500
- const n = await v(t);
501
- if (G(e)) {
502
- const r = [], a = await ut(t), { contents: h } = await st(t, e, n);
503
- for (const [j, l] of Object.entries(h)) {
547
+ const n = await v(e);
548
+ if (B(t)) {
549
+ const r = [], i = await dt(e), { contents: y } = await ot(e, t, n);
550
+ for (const [$, l] of Object.entries(y)) {
504
551
  if (l.isKeyframes && l.css) {
505
- const p = `css/${`a_${l.animationName}.css`}`, P = u(n, p);
506
- D(P, await l.css);
552
+ const p = `css/${`a_${l.animationName}.css`}`, x = u(n, p);
553
+ k(x, await l.css);
507
554
  return;
508
555
  }
509
556
  if (l.isClassName) {
510
- const i = l.generator._withBuildContext({
511
- callerName: j,
557
+ const a = l.generator._withBuildContext({
558
+ callerName: $,
512
559
  isProduction: s,
513
- config: a
514
- }), p = await i.css;
560
+ config: i
561
+ }), p = await a.css;
515
562
  if (!p) continue;
516
- r[0].push(i.cssFileName);
517
- const P = `css/${i.cssFileName}`, F = u(n, P);
518
- D(F, p);
563
+ r[0].push(a.cssFileName);
564
+ const x = `css/${a.cssFileName}`, F = u(n, x);
565
+ k(F, p);
519
566
  }
520
567
  if (!l.generator) return;
521
568
  const d = l.generator._withBuildContext({
522
- callerName: j,
569
+ callerName: $,
523
570
  isProduction: s,
524
- config: a
525
- }), g = await d.css;
526
- if (!g) continue;
527
- const $ = `css/${d.cssFileName}`, m = u(n, $);
528
- D(m, g), r[d.priority] || (r[d.priority] = []), r[d.priority].push(d.cssFileName);
571
+ config: i
572
+ }), w = await d.css;
573
+ if (!w) continue;
574
+ const g = `css/${d.cssFileName}`, m = u(n, g);
575
+ k(m, w), r[d.priority] || (r[d.priority] = []), r[d.priority].push(d.cssFileName);
529
576
  }
530
- if (a.importStrategy !== "component")
531
- r.forEach((j, l) => {
532
- const d = `l_${l}.css`, g = u(n, "css", d);
533
- let $ = M(g, "utf8");
534
- j.forEach((m) => {
577
+ if (i.importStrategy !== "component")
578
+ r.forEach(($, l) => {
579
+ const d = `l_${l}.css`, w = u(n, "css", d);
580
+ let g = M(w, "utf8");
581
+ $.forEach((m) => {
535
582
  var F;
536
- const i = u(n, "css", m), p = ((F = /.*-([^-]+)-\d+.css/.exec(m)) == null ? void 0 : F.at(1)) || z(i, 6);
537
- if (!$.includes(p)) {
538
- const R = M(i, "utf8"), k = `/*start:${p}-${m}*/
583
+ const a = u(n, "css", m), p = ((F = /.*-([^-]+)-\d+.css/.exec(m)) == null ? void 0 : F.at(1)) || z(a, 6);
584
+ if (!g.includes(p)) {
585
+ const R = M(a, "utf8"), N = `/*start:${p}-${m}*/
539
586
  ${R}
540
587
  /*end:${p}*/
541
588
  `;
542
- $ = `${$.replace(/\}$/, "")}
543
- ${k}
589
+ g = `${g.replace(/\}$/, "")}
590
+ ${N}
544
591
  }`;
545
592
  }
546
- }), D(g, $);
593
+ }), k(w, g);
547
594
  });
548
595
  else {
549
- const j = r.flat().map((m) => `@import url('./${m}');`).join(`
550
- `), l = z(e, 6), d = et(e), g = A(d.name), $ = u(n, `css/f_${g}-${l}.css`);
551
- D($, j || "/* Empty file */");
596
+ const $ = r.flat().map((m) => `@import url('./${m}');`).join(`
597
+ `), l = z(t, 6), d = nt(t), w = A(d.name), g = u(n, `css/f_${w}-${l}.css`);
598
+ k(g, $ || "/* Empty file */");
552
599
  }
553
600
  }
554
601
  } catch (n) {
555
602
  console.error(n);
556
603
  }
557
- }, se = async (t, e, s = dt()) => {
604
+ }, le = async (e, t, s = pt()) => {
558
605
  try {
559
- const n = await v(t);
560
- if (G(e)) {
561
- const r = M(e, "utf8");
562
- r.replace(/^(?!export\s)const\s.*/gm, (d) => `export ${d}`) !== r && await Ot(e, r);
563
- const h = await ut(t), { contents: j } = await st(t, e, n);
606
+ const n = await v(e);
607
+ if (B(t)) {
608
+ const r = M(t, "utf8");
609
+ r.replace(/^(?!export\s)const\s.*/gm, (d) => `export ${d}`) !== r && await At(t, r);
610
+ const y = await dt(e), { contents: $ } = await ot(e, t, n);
564
611
  let l = r;
565
- if (Object.entries(j).forEach(([d, g]) => {
612
+ if (Object.entries($).forEach(([d, w]) => {
566
613
  var f;
567
- if (g.isKeyframes || !g.generator) return;
568
- const $ = g.generator._withBuildContext({
614
+ if (w.isKeyframes || !w.generator) return;
615
+ const g = w.generator._withBuildContext({
569
616
  callerName: d,
570
617
  isProduction: s,
571
- config: h
618
+ config: y
572
619
  }), m = new RegExp(`\\s${d}[=\\s]+[^()]+styled\\(([^,]+),`, "g").exec(r);
573
620
  if (!m) return console.error("Could not find the original declaration");
574
- const i = (f = m.at(1)) == null ? void 0 : f.trim(), p = new RegExp(`\\s${d}[=\\s]+styled\\(`, "g").exec(l);
621
+ const a = (f = m.at(1)) == null ? void 0 : f.trim(), p = new RegExp(`\\s${d}[=\\s]+styled\\(`, "g").exec(l);
575
622
  if (!p) return console.error("Could not find the original declaration");
576
- const { index: P } = p;
623
+ const { index: x } = p;
577
624
  let F = !1;
578
625
  const R = setTimeout(() => F = !0, 5e3);
579
- let k = 0, O = !1, C = 0;
580
- for (; !O && !F; ) {
581
- const b = l[P + k];
582
- b === "(" && C++, b === ")" && C--, C === 0 && b === ")" && (O = !0), k > l.length && (F = !0), k++;
626
+ let N = 0, V = !1, C = 0;
627
+ for (; !V && !F; ) {
628
+ const b = l[x + N];
629
+ b === "(" && C++, b === ")" && C--, C === 0 && b === ")" && (V = !0), N > l.length && (F = !0), N++;
583
630
  }
584
631
  if (!F) clearTimeout(R);
585
632
  else throw new Error("Failed to find the end of the styled call and timed out");
586
- const E = P + k, c = l.slice(P, E), y = l, w = ` ${d} = styled(${i}, "${$.classNames}", ${JSON.stringify($.clientProps)});`;
587
- l = l.replace(c, w), y === l && console.error("Minimize file failed to change content", { name: d, tagName: i });
588
- }), h.importStrategy === "component") {
589
- const d = z(e, 6), g = et(e);
590
- l = `import '../../saltygen/css/${`f_${A(g.name)}-${d}.css`}';
633
+ const E = x + N, c = l.slice(x, E), h = l, S = ` ${d} = styled(${a}, "${g.classNames}", ${JSON.stringify(g.clientProps)});`;
634
+ l = l.replace(c, S), h === l && console.error("Minimize file failed to change content", { name: d, tagName: a });
635
+ }), y.importStrategy === "component") {
636
+ const d = z(t, 6), w = nt(t);
637
+ l = `import '../../saltygen/css/${`f_${A(w.name)}-${d}.css`}';
591
638
  ${l}`;
592
639
  }
593
640
  return l = l.replace("{ styled }", "{ styledClient as styled }"), l = l.replace("@salty-css/react/styled", "@salty-css/react/styled-client"), l;
@@ -595,29 +642,29 @@ ${l}`;
595
642
  } catch (n) {
596
643
  console.error("Error in minimizeFile:", n);
597
644
  }
598
- }, $t = async (t) => {
599
- if (!t || t.includes("node_modules") || t.includes("saltygen")) return !1;
600
- if (t.includes("salty.config")) return !0;
601
- if (!G(t)) return !1;
602
- const n = await lt(t, "utf-8");
645
+ }, wt = async (e) => {
646
+ if (!e || e.includes("node_modules") || e.includes("saltygen")) return !1;
647
+ if (e.includes("salty.config")) return !0;
648
+ if (!B(e)) return !1;
649
+ const n = await ft(e, "utf-8");
603
650
  return !!/.+define[A-Z]\w+/.test(n);
604
- }, ce = (t) => ({
651
+ }, ye = (e) => ({
605
652
  name: "stylegen",
606
- buildStart: () => te(t),
607
- load: async (e) => {
608
- if (G(e))
609
- return await se(t, e);
653
+ buildStart: () => ae(e),
654
+ load: async (t) => {
655
+ if (B(t))
656
+ return await le(e, t);
610
657
  },
611
- handleHotUpdate: async ({ file: e, server: s }) => {
612
- await $t(e) && await s.restart();
658
+ handleHotUpdate: async ({ file: t, server: s }) => {
659
+ await wt(t) && await s.restart();
613
660
  },
614
661
  watchChange: {
615
- handler: async (e) => {
616
- G(e) && (await $t(e) || await ee(t, e));
662
+ handler: async (t) => {
663
+ B(t) && (await wt(t) || await ce(e, t));
617
664
  }
618
665
  }
619
666
  });
620
667
  export {
621
- ce as default,
622
- ce as saltyPlugin
668
+ ye as default,
669
+ ye as saltyPlugin
623
670
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salty-css/vite",
3
- "version": "0.0.1-alpha.210",
3
+ "version": "0.0.1-alpha.211",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.mjs",
6
6
  "typings": "./dist/index.d.ts",
@@ -34,6 +34,6 @@
34
34
  }
35
35
  },
36
36
  "dependencies": {
37
- "@salty-css/core": "^0.0.1-alpha.210"
37
+ "@salty-css/core": "^0.0.1-alpha.211"
38
38
  }
39
39
  }