@salty-css/vite 0.0.1-alpha.234 → 0.0.1-alpha.235

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 +19 -19
  2. package/index.js +109 -109
  3. package/package.json +2 -2
package/index.cjs CHANGED
@@ -1,42 +1,42 @@
1
- "use strict";var Rt=Object.defineProperty;var Mt=(e,t,s)=>t in e?Rt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s;var nt=(e,t,s)=>Mt(e,typeof t!="symbol"?t+"":t,s);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const vt=require("esbuild"),At=require("child_process"),c=require("path"),f=require("fs"),dt=require("fs/promises"),Q=require("winston"),lt=require("typescript");var ft=typeof document<"u"?document.currentScript:null;function zt(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 jt=zt(vt),bt=e=>String.fromCharCode(e+(e>25?39:97)),Jt=(e,t)=>{let s="",n;for(n=Math.abs(e);n>52;n=n/52|0)s=bt(n%52)+s;return s=bt(n%52)+s,s.length<t?s=s.padStart(t,"a"):s.length>t&&(s=s.slice(-t)),s},Wt=(e,t)=>{let s=t.length;for(;s;)e=e*33^t.charCodeAt(--s);return e},J=(e,t=5)=>{const s=Wt(5381,JSON.stringify(e))>>>0;return Jt(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 Zt=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,y=>{const{value:g,css:h}=i(y);return h&&n.push(h),g})}),{transformed:s,additionalCss:n}},Ft=e=>t=>typeof t!="string"||!/\{[^{}]+\}/g.test(t)?void 0:{transformed:t.replace(/\{([^{}]+)\}/g,(...o)=>`var(--${v(o[1].replaceAll(".","-"))})`)},qt=Ft(),It=["top","right","bottom","left","min-width",/.*width.*/,/^[^line]*height.*/,/padding.*/,/margin.*/,/border.*/,/inset.*/,/.*radius.*/,/.*spacing.*/,/.*gap.*/,/.*indent.*/,/.*offset.*/,/.*size.*/,/.*thickness.*/,/.*font-size.*/],Ht=(e,t,s)=>It.some(o=>typeof o=="string"?o===e:o.test(e))?`${t}px`:`${t}`,Lt=["Webkit","Moz","ms","O"],Gt=e=>e.startsWith("-")?e:Lt.some(t=>e.startsWith(t))?`-${v(e)}`:v(e),ot=async(e,t="",s,n=!1)=>{if(!e)throw new Error("No styles provided to parseStyles function!");const o=new Set,r=Object.entries(e),i=async([p,d])=>{const $=p.trim(),P=Gt($),x=(R,k=";")=>`${P}:${R}${k}`,E={scope:t,config:s};if(typeof d=="function")return i([p,d(E)]);if(d instanceof Promise)return i([p,await d]);if(typeof d=="object"){if(!d)return;if(d.isColor)return x(d.toString());if($==="defaultVariants")return;if($==="variants"){const D=Object.entries(d);for(const[a,b]of D){if(!b)return;const C=Object.entries(b);for(const[l,j]of C){if(!j)return;const N=`${t}.${a}-${l}`;(await ot(j,N,s)).forEach(z=>o.add(z))}}return}if($==="compoundVariants"){for(const D of d){const{css:a,...b}=D,C=Object.entries(b).reduce((j,[N,O])=>`${j}.${N}-${O}`,t);(await ot(a,C,s)).forEach(j=>o.add(j))}return}if($.startsWith("@")){const D=$,a=await B(d,t,s),b=`${D} { ${a} }`;o.add(b);return}const R=p.includes("&")?$.replace("&",t):$.startsWith(":")?`${t}${$}`:`${t} ${$}`;(await ot(d,R,s)).forEach(D=>o.add(D));return}if(typeof d=="number"){const R=Ht(P,d);return x(R)}if(typeof d!="string")if("toString"in d)d=d.toString();else throw new Error(`Invalid value type for property ${P}`);return x(d)},y=r.map(i),{modifiers:g}={},h=[Ft(),Zt(g)],w=(await Promise.all(y).then(p=>Promise.all(p.map(d=>h.reduce(async($,P)=>{const x=await $;if(!x)return x;const E=await P(x);if(!E)return x;const{transformed:R,additionalCss:k}=E;let D="";if(k)for(const a of k)D+=await B(a,"");return`${D}${R}`},Promise.resolve(d)))))).filter(p=>p!==void 0).join(`
2
- `);if(!w.trim())return Array.from(o);const m=t?`${t} {
1
+ "use strict";var Rt=Object.defineProperty;var Mt=(t,e,s)=>e in t?Rt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;var nt=(t,e,s)=>Mt(t,typeof e!="symbol"?e+"":e,s);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const vt=require("esbuild"),zt=require("child_process"),c=require("path"),f=require("fs"),dt=require("fs/promises"),Z=require("winston"),lt=require("typescript");var ft=typeof document<"u"?document.currentScript:null;function Jt(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 jt=Jt(vt),bt=t=>String.fromCharCode(t+(t>25?39:97)),Wt=(t,e)=>{let s="",n;for(n=Math.abs(t);n>52;n=n/52|0)s=bt(n%52)+s;return s=bt(n%52)+s,s.length<e?s=s.padStart(e,"a"):s.length>e&&(s=s.slice(-e)),s},At=(t,e)=>{let s=e.length;for(;s;)t=t*33^e.charCodeAt(--s);return t},W=(t,e=5)=>{const s=At(5381,JSON.stringify(t))>>>0;return Wt(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 qt=t=>e=>{if(typeof e!="string"||!t)return;let s=e;const n=[];return Object.values(t).forEach(o=>{const{pattern:r,transform:i}=o;s=s.replace(r,y=>{const{value:g,css:h}=i(y);return h&&n.push(h),g})}),{transformed:s,additionalCss:n}},Ft=t=>e=>typeof e!="string"||!/\{[^{}]+\}/g.test(e)?void 0:{transformed:e.replace(/\{([^{}]+)\}/g,(...o)=>`var(--${v(o[1].replaceAll(".","-"))})`)},It=Ft(),Ht=["top","right","bottom","left","min-width",/.*width.*/,/^[^line]*height.*/,/padding.*/,/margin.*/,/border.*/,/inset.*/,/.*radius.*/,/.*spacing.*/,/.*gap.*/,/.*indent.*/,/.*offset.*/,/.*size.*/,/.*thickness.*/,/.*font-size.*/],Lt=(t,e,s)=>Ht.some(o=>typeof o=="string"?o===t:o.test(t))?`${e}px`:`${e}`,Gt=["Webkit","Moz","ms","O"],Kt=t=>t.startsWith("-")?t:Gt.some(e=>t.startsWith(e))?`-${v(t)}`:v(t),ot=async(t,e="",s,n=!1)=>{if(!t)throw new Error("No styles provided to parseStyles function!");const o=new Set,r=Object.entries(t),i=async([p,d])=>{const $=p.trim(),P=Kt($),x=(R,k=";")=>`${P}:${R}${k}`,E={scope:e,config:s};if(typeof d=="function")return i([p,d(E)]);if(d instanceof Promise)return i([p,await d]);if(typeof d=="object"){if(!d)return;if(d.isColor)return x(d.toString());if($==="defaultVariants")return;if($==="variants"){const D=Object.entries(d);for(const[a,b]of D){if(!b)return;const C=Object.entries(b);for(const[l,j]of C){if(!j)return;const N=`${e}.${a}-${l}`;(await ot(j,N,s)).forEach(J=>o.add(J))}}return}if($==="compoundVariants"){for(const D of d){const{css:a,...b}=D,C=Object.entries(b).reduce((j,[N,O])=>`${j}.${N}-${O}`,e);(await ot(a,C,s)).forEach(j=>o.add(j))}return}if($.startsWith("@")){const D=$,a=await B(d,e,s),b=`${D} { ${a} }`;o.add(b);return}const R=p.includes("&")?$.replace("&",e):$.startsWith(":")?`${e}${$}`:`${e} ${$}`;(await ot(d,R,s)).forEach(D=>o.add(D));return}if(typeof d=="number"){const R=Lt(P,d);return x(R)}if(typeof d!="string")if("toString"in d)d=d.toString();else throw new Error(`Invalid value type for property ${P}`);return x(d)},y=r.map(i),{modifiers:g}={},h=[Ft(),qt(g)],w=(await Promise.all(y).then(p=>Promise.all(p.map(d=>h.reduce(async($,P)=>{const x=await $;if(!x)return x;const E=await P(x);if(!E)return x;const{transformed:R,additionalCss:k}=E;let D="";if(k)for(const a of k)D+=await B(a,"");return`${D}${R}`},Promise.resolve(d)))))).filter(p=>p!==void 0).join(`
2
+ `);if(!w.trim())return Array.from(o);const m=e?`${e} {
3
3
  ${w}
4
- }`:w;return o.has(m)?Array.from(o):[m,...o]},B=async(e,t,s,n=!1)=>(await ot(e,t,s,n)).join(`
5
- `),Ct=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(),y=await Ct(r,[...t,i]);s.push(y)}else n[o]=r;if(Object.keys(n).length){const o=t.map(v).join("-"),r="t_"+J(o,4),i=await B(n,`.${o}, .${r}`);s.push(i)}return s.join(`
6
- `)},Kt=e=>e?Object.entries(e).reduce((t,[s,n])=>(typeof n=="function"?t[s]="any":typeof n=="object"&&(t[s]=Pt(n).map(o=>`"${o}"`).join(" | ")),t),{}):{},Pt=(e,t="",s=new Set)=>e?(Object.entries(e).forEach(([n,o])=>{const r=t?`${t}.${n}`:n;return typeof o=="object"?Pt(o,r,s):s.add(t)}),[...s]):[],Nt=e=>{if(!e||e==="/")throw new Error("Could not find package.json file");const t=c.join(e,"package.json");return f.existsSync(t)?t:Nt(c.join(e,".."))},Ut=async e=>{const t=Nt(e);return await dt.readFile(t,"utf-8").then(JSON.parse).catch(()=>{})},Qt=async e=>{const t=await Ut(e);if(t)return t.type};let q;const _t=async e=>{if(q)return q;const t=await Qt(e);return t==="module"?q="esm":(t==="commonjs"||(typeof document>"u"?require("url").pathToFileURL(__filename).href:ft&&ft.tagName.toUpperCase()==="SCRIPT"&&ft.src||new URL("index.cjs",document.baseURI).href).endsWith(".cjs"))&&(q="cjs"),q||"esm"},ut=Q.createLogger({level:"debug",format:Q.format.combine(Q.format.colorize(),Q.format.cli()),transports:[new Q.transports.Console({})]});function xt(e){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()):""}const Bt={"*, *::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},{}),Xt=(...e)=>e.flat().reduce((t,s)=>({...t,...s._children}),{});class Yt{constructor(t){nt(this,"_path");this.params=t}get _current(){return this.params.template}get isDefineTemplate(){return!0}_setPath(t){return this._path=t,this}}class te{constructor(t){nt(this,"_path");nt(this,"templates",[]);this.params=t,Object.entries(t).forEach(([s,n])=>{this.templates.push(new Yt({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 ee=e=>new te(e),se=(e,t)=>new Promise((s,n)=>{const o=setTimeout(()=>{n(new Error("Timeout"))},100),r=lt.createSourceFile("temp.ts",e,lt.ScriptTarget.Latest,!0);function i(y){if(lt.isVariableDeclaration(y)&&y.name.getText()===t){const g=y.getStart(),h=y.getEnd();clearTimeout(o),s([g,h])}y.forEachChild(i)}i(r)}),A={externalModules:[],rcFile:void 0,destDir:void 0},Tt=e=>{if(A.externalModules.length>0)return A.externalModules;const s=f.readFileSync(e,"utf8").match(/externalModules:\s?\[(.*)\]/);if(!s)return[];const n=s[1].split(",").map(o=>o.replace(/['"`]/g,"").trim());return A.externalModules=n,n},W=async e=>{if(A.destDir)return A.destDir;const t=await pt(e),s=c.join(e,(t==null?void 0:t.saltygenDir)||"saltygen");return A.destDir=s,s},kt=["salty","css","styles","styled"],ne=(e=[])=>new RegExp(`\\.(${[...kt,...e].join("|")})\\.`),H=(e,t=[])=>ne(t).test(e),Dt=async e=>{if(A.rcFile)return A.rcFile;if(e==="/")throw new Error("Could not find .saltyrc.json file");const t=c.join(e,".saltyrc.json"),s=await dt.readFile(t,"utf-8").then(JSON.parse).catch(()=>{});return s?(A.rcFile=s,s):Dt(c.join(e,".."))},pt=async e=>{var n,o;const t=await Dt(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))},oe=async e=>{const t=await pt(e),s=await W(e),n=c.join(e,(t==null?void 0:t.configDir)||"","salty.config.ts"),o=c.join(s,"salty.config.js"),r=await _t(e),i=Tt(n);await jt.build({entryPoints:[n],minify:!0,treeShaking:!0,bundle:!0,outfile:o,format:r,external:i});const y=Date.now(),{config:g}=await import(`${o}?t=${y}`);return{config:g,path:o}},re=async(e,t)=>{var ht,gt;const s=await W(e),n={mediaQueries:[],globalStyles:[],variables:[],templates:[]};await Promise.all([...t].map(async F=>{const{contents:_,outputFilePath:U}=await rt(e,F,s);Object.entries(_).forEach(([M,T])=>{T.isMedia?n.mediaQueries.push([M,T]):T.isGlobalDefine?n.globalStyles.push(T):T.isDefineVariables?n.variables.push(T):T.isDefineTemplates&&n.templates.push(T._setPath(`${M};;${U}`))})}));const{config:o,path:r}=await oe(e),i={...o},y=new Set,g=async(F,_=[])=>{if(!F)return[];const U=Object.entries(F).map(async([T,Z])=>{const et=async V=>{if(!V)return;if(V instanceof Promise)return await et(await V);if(typeof V=="function")return await et(await V());if(typeof V=="object")return await g(V,[..._,T]);const it=xt(T),at=v(T),ct=[..._,it].join(".");y.add(`"${ct}"`);const st=[..._.map(v),at].join("-"),wt=qt(V);return wt?`--${st}: ${wt.transformed};`:`--${st}: ${V};`};return await et(Z)});return(await Promise.all(U)).flat()},h=async F=>{if(!F)return[];const _=Object.entries(F).map(async([M,T])=>{const Z=await g(T);return M==="base"?Z.join(""):`${M} { ${Z.join("")} }`});return(await Promise.all(_)).flat()},u=async F=>{if(!F)return[];const _=Object.entries(F).map(async([M,T])=>{const Z=Object.entries(T).map(async([V,it])=>{const at=await g(it,[M]),ct=`.${M}-${V}, [data-${M}="${V}"]`,st=at.join("");return`${ct} { ${st} }`});return(await Promise.all(Z)).flat()});return(await Promise.all(_)).flat()},w=F=>({...F,responsive:void 0,conditional:void 0}),m=F=>n.variables.map(_=>F==="static"?w(_._current):_._current[F]),S=I(w(o.variables),m("static")),p=await g(S),d=I((ht=o.variables)==null?void 0:ht.responsive,m("responsive")),$=await h(d),P=I((gt=o.variables)==null?void 0:gt.conditional,m("conditional")),x=await u(P),E=c.join(s,"css/_variables.css"),R=`:root { ${p.join("")} ${$.join("")} } ${x.join("")}`;f.writeFileSync(E,R),i.staticVariables=S;const k=c.join(s,"css/_global.css"),D=I(o.global,n.globalStyles),a=await B(D,"");f.writeFileSync(k,`@layer global { ${a} }`);const b=c.join(s,"css/_reset.css"),l=o.reset==="none"?{}:typeof o.reset=="object"?o.reset:Bt,j=await B(l,"");f.writeFileSync(b,`@layer reset { ${j} }`);const N=c.join(s,"css/_templates.css"),O=I(o.templates,n.templates),z=await Ct(O),L=Kt(O);f.writeFileSync(N,`@layer templates { ${z} }`),i.templates=O;const G=o.templates?[ee(o.templates)._setPath(`config;;${r}`)]:[],X=Xt(n.templates,G);i.templatePaths=Object.fromEntries(Object.entries(X).map(([F,_])=>[F,_._path]));const{mediaQueries:Y}=n;i.mediaQueries=Object.fromEntries(Y.map(([F,_])=>[`@${F}`,_]));const K=Y.map(([F])=>`'@${F}'`).join(" | "),tt=c.join(s,"types/css-tokens.d.ts"),Et=`
4
+ }`:w;return o.has(m)?Array.from(o):[m,...o]},B=async(t,e,s,n=!1)=>(await ot(t,e,s,n)).join(`
5
+ `),Ct=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 i=o.trim(),y=await Ct(r,[...e,i]);s.push(y)}else n[o]=r;if(Object.keys(n).length){const o=e.map(v).join("-"),r="t_"+W(o,4),i=await B(n,`.${o}, .${r}`);s.push(i)}return s.join(`
6
+ `)},Ut=t=>t?Object.entries(t).reduce((e,[s,n])=>(typeof n=="function"?e[s]="any":typeof n=="object"&&(e[s]=Pt(n).map(o=>`"${o}"`).join(" | ")),e),{}):{},Pt=(t,e="",s=new Set)=>t?(Object.entries(t).forEach(([n,o])=>{const r=e?`${e}.${n}`:n;return typeof o=="object"?Pt(o,r,s):s.add(e)}),[...s]):[],Nt=t=>{if(!t||t==="/")throw new Error("Could not find package.json file");const e=c.join(t,"package.json");return f.existsSync(e)?e:Nt(c.join(t,".."))},Qt=async t=>{const e=Nt(t);return await dt.readFile(e,"utf-8").then(JSON.parse).catch(()=>{})},Zt=async t=>{const e=await Qt(t);if(e)return e.type};let I;const _t=async t=>{if(I)return I;const e=await Zt(t);return e==="module"?I="esm":(e==="commonjs"||(typeof document>"u"?require("url").pathToFileURL(__filename).href:ft&&ft.tagName.toUpperCase()==="SCRIPT"&&ft.src||new URL("index.cjs",document.baseURI).href).endsWith(".cjs"))&&(I="cjs"),I||"esm"},ut=Z.createLogger({level:"debug",format:Z.format.combine(Z.format.colorize(),Z.format.cli()),transports:[new Z.transports.Console({})]});function xt(t){return t?typeof t!="string"?xt(String(t)):t.replace(/[^\d\w]/g,"."):""}const Bt={"*, *::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"}},H=(...t)=>t.flat().reduce((e,s)=>s!=null&&s._current?{...e,...s._current}:{...e,...s},{}),Xt=(...t)=>t.flat().reduce((e,s)=>({...e,...s._children}),{});class Yt{constructor(e){nt(this,"_path");this.params=e}get _current(){return this.params.template}get isDefineTemplate(){return!0}_setPath(e){return this._path=e,this}}class te{constructor(e){nt(this,"_path");nt(this,"templates",[]);this.params=e,Object.entries(e).forEach(([s,n])=>{this.templates.push(new Yt({name:s,template:n}))})}get _current(){return this.params}get _children(){return Object.fromEntries(this.templates.map(e=>[e.params.name,e]))}get isDefineTemplates(){return!0}_setPath(e){return this._path=e,this.templates.forEach(s=>s._setPath(e)),this}}const ee=t=>new te(t),se=(t,e)=>new Promise((s,n)=>{const o=setTimeout(()=>{n(new Error("Timeout"))},100),r=lt.createSourceFile("temp.ts",t,lt.ScriptTarget.Latest,!0);function i(y){if(lt.isVariableDeclaration(y)&&y.name.getText()===e){const g=y.getStart(),h=y.getEnd();clearTimeout(o),s([g,h])}y.forEachChild(i)}i(r)}),z={externalModules:[],rcFile:void 0,destDir:void 0},Tt=t=>{if(z.externalModules.length>0)return z.externalModules;const s=f.readFileSync(t,"utf8").match(/externalModules:\s?\[(.*)\]/);if(!s)return[];const n=s[1].split(",").map(o=>o.replace(/['"`]/g,"").trim());return z.externalModules=n,n},A=async t=>{if(z.destDir)return z.destDir;const e=await pt(t),s=c.join(t,(e==null?void 0:e.saltygenDir)||"saltygen");return z.destDir=s,s},kt=["salty","css","styles","styled"],ne=(t=[])=>new RegExp(`\\.(${[...kt,...t].join("|")})\\.`),L=(t,e=[])=>ne(e).test(t),Dt=async t=>{if(z.rcFile)return z.rcFile;if(t==="/")throw new Error("Could not find .saltyrc.json file");const e=c.join(t,".saltyrc.json"),s=await dt.readFile(e,"utf-8").then(JSON.parse).catch(()=>{});return s?(z.rcFile=s,s):Dt(c.join(t,".."))},pt=async t=>{var n,o;const e=await Dt(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))},oe=async t=>{const e=await pt(t),s=await A(t),n=c.join(t,(e==null?void 0:e.configDir)||"","salty.config.ts"),o=c.join(s,"salty.config.js"),r=await _t(t),i=Tt(n);await jt.build({entryPoints:[n],minify:!0,treeShaking:!0,bundle:!0,outfile:o,format:r,external:i});const y=Date.now(),{config:g}=await import(`${o}?t=${y}`);return{config:g,path:o}},re=async(t,e)=>{var ht,gt;const s=await A(t),n={mediaQueries:[],globalStyles:[],variables:[],templates:[]};await Promise.all([...e].map(async F=>{const{contents:_,outputFilePath:Q}=await rt(t,F,s);Object.entries(_).forEach(([M,T])=>{T.isMedia?n.mediaQueries.push([M,T]):T.isGlobalDefine?n.globalStyles.push(T):T.isDefineVariables?n.variables.push(T):T.isDefineTemplates&&n.templates.push(T._setPath(`${M};;${Q}`))})}));const{config:o,path:r}=await oe(t),i={...o},y=new Set,g=async(F,_=[])=>{if(!F)return[];const Q=Object.entries(F).map(async([T,q])=>{const et=async V=>{if(!V)return;if(V instanceof Promise)return await et(await V);if(typeof V=="function")return await et(await V());if(typeof V=="object")return await g(V,[..._,T]);const it=xt(T),at=v(T),ct=[..._,it].join(".");y.add(`"${ct}"`);const st=[..._.map(v),at].join("-"),wt=It(V);return wt?`--${st}: ${wt.transformed};`:`--${st}: ${V};`};return await et(q)});return(await Promise.all(Q)).flat()},h=async F=>{if(!F)return[];const _=Object.entries(F).map(async([M,T])=>{const q=await g(T);return M==="base"?q.join(""):`${M} { ${q.join("")} }`});return(await Promise.all(_)).flat()},u=async F=>{if(!F)return[];const _=Object.entries(F).map(async([M,T])=>{const q=Object.entries(T).map(async([V,it])=>{const at=await g(it,[M]),ct=`.${M}-${V}, [data-${M}="${V}"]`,st=at.join("");return`${ct} { ${st} }`});return(await Promise.all(q)).flat()});return(await Promise.all(_)).flat()},w=F=>({...F,responsive:void 0,conditional:void 0}),m=F=>n.variables.map(_=>F==="static"?w(_._current):_._current[F]),S=H(w(o.variables),m("static")),p=await g(S),d=H((ht=o.variables)==null?void 0:ht.responsive,m("responsive")),$=await h(d),P=H((gt=o.variables)==null?void 0:gt.conditional,m("conditional")),x=await u(P),E=c.join(s,"css/_variables.css"),R=`:root { ${p.join("")} ${$.join("")} } ${x.join("")}`;f.writeFileSync(E,R),i.staticVariables=S;const k=c.join(s,"css/_global.css"),D=H(o.global,n.globalStyles),a=await B(D,"");f.writeFileSync(k,`@layer global { ${a} }`);const b=c.join(s,"css/_reset.css"),l=o.reset==="none"?{}:typeof o.reset=="object"?o.reset:Bt,j=await B(l,"");f.writeFileSync(b,`@layer reset { ${j} }`);const N=c.join(s,"css/_templates.css"),O=H(o.templates,n.templates),J=await Ct(O),G=Ut(O);f.writeFileSync(N,`@layer templates { ${J} }`),i.templates=O;const K=o.templates?[ee(o.templates)._setPath(`config;;${r}`)]:[],X=Xt(n.templates,K);i.templatePaths=Object.fromEntries(Object.entries(X).map(([F,_])=>[F,_._path]));const{mediaQueries:Y}=n;i.mediaQueries=Object.fromEntries(Y.map(([F,_])=>[`@${F}`,_]));const U=Y.map(([F])=>`'@${F}'`).join(" | "),tt=c.join(s,"types/css-tokens.d.ts"),Et=`
7
7
  // Variable types
8
8
  type VariableTokens = ${[...y].join("|")};
9
9
  type PropertyValueToken = \`{\${VariableTokens}}\`;
10
10
 
11
11
  // Template types
12
12
  type TemplateTokens = {
13
- ${Object.entries(L).map(([F,_])=>`${F}?: ${_}`).join(`
13
+ ${Object.entries(G).map(([F,_])=>`${F}?: ${_}`).join(`
14
14
  `)}
15
15
  }
16
16
 
17
17
  // Media query types
18
- type MediaQueryKeys = ${K||"''"};
19
- `;f.writeFileSync(tt,Et);const Vt=c.join(s,"cache/config-cache.json");f.writeFileSync(Vt,JSON.stringify(i,null,2))},$t=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 y=i.at(1);if(kt.some(h=>y==null?void 0:y.includes(h)))return t}return"styled('div',"}),ie=(e,t)=>{try{const s=f.readFileSync(c.join(t,"saltygen/cache/config-cache.json"),"utf8");return s?`globalThis.saltyConfig = ${s};
18
+ type MediaQueryKeys = ${U||"''"};
19
+ `;f.writeFileSync(tt,Et);const Vt=c.join(s,"cache/config-cache.json");f.writeFileSync(Vt,JSON.stringify(i,null,2))},$t=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 i=o.exec(t);if(i){const y=i.at(1);if(kt.some(h=>y==null?void 0:y.includes(h)))return e}return"styled('div',"}),ie=(t,e)=>{try{const s=f.readFileSync(c.join(e,"saltygen/cache/config-cache.json"),"utf8");return s?`globalThis.saltyConfig = ${s};
20
20
 
21
- ${e}`:`globalThis.saltyConfig = {};
21
+ ${t}`:`globalThis.saltyConfig = {};
22
22
 
23
- ${e}`}catch{return e}},rt=async(e,t,s)=>{const n=J(t),o=c.join(s,"./temp");f.existsSync(o)||f.mkdirSync(o);const r=c.parse(t);let i=f.readFileSync(t,"utf8");i=$t(i),i=ie(i,e);const y=c.join(s,"js",n+".js"),g=await pt(e),h=c.join(e,(g==null?void 0:g.configDir)||"","salty.config.ts"),u=Tt(h),w=await _t(e);await jt.build({stdin:{contents:i,sourcefile:r.base,resolveDir:r.dir,loader:"tsx"},minify:!1,treeShaking:!0,bundle:!0,outfile:y,format:w,target:["node20"],keepNames:!0,external:u,packages:"external",plugins:[{name:"test",setup:p=>{p.onLoad({filter:/.*\.css|salty|styles|styled\.ts/},d=>{const $=f.readFileSync(d.path,"utf8");return{contents:$t($),loader:"ts"}})}}]});const m=Date.now();return{contents:await import(`${y}?t=${m}`),outputFilePath:y}},ae=async e=>{const t=await W(e),s=c.join(t,"cache/config-cache.json"),n=f.readFileSync(s,"utf8");if(!n)throw new Error("Could not find config cache file");return JSON.parse(n)},mt=async e=>{const t=await ae(e),s=await W(e),n=c.join(s,"salty.config.js"),o=Date.now(),{config:r}=await import(`${n}?t=${o}`);return I(r,t)},yt=()=>{try{return process.env.NODE_ENV==="production"}catch{return!1}},ce=async(e,t=yt(),s=!0)=>{try{const n=Date.now();t?ut.info("Generating CSS in production mode! 🔥"):ut.info("Generating CSS in development mode! 🚀");const o=[],r=[],i=await W(e),y=c.join(i,"index.css");s&&(()=>{f.existsSync(i)&&At.execSync("rm -rf "+i),f.mkdirSync(i,{recursive:!0}),f.mkdirSync(c.join(i,"css")),f.mkdirSync(c.join(i,"types")),f.mkdirSync(c.join(i,"js")),f.mkdirSync(c.join(i,"cache"))})();const h=new Set,u=new Set;async function w(a){const b=["node_modules","saltygen"],C=f.statSync(a);if(C.isDirectory()){const l=f.readdirSync(a);if(b.some(N=>a.includes(N)))return;await Promise.all(l.map(N=>w(c.join(a,N))))}else if(C.isFile()&&H(a)){h.add(a);const j=f.readFileSync(a,"utf8");/define[\w\d]+\(/.test(j)&&u.add(a)}}await w(e),await re(e,u);const m={keyframes:[],components:[],classNames:[]};await Promise.all([...h].map(async a=>{const{contents:b}=await rt(e,a,i);for(let[C,l]of Object.entries(b))l instanceof Promise&&(l=await l),l.isKeyframes?m.keyframes.push({value:l,src:a,name:C}):l.isClassName?m.classNames.push({...l,src:a,name:C}):l.generator&&m.components.push({...l,src:a,name:C})}));const S=await mt(e);for(const a of m.keyframes){const{value:b}=a,C=`a_${b.animationName}.css`,l=`css/${C}`,j=c.join(i,l);o.push(C),f.writeFileSync(j,b.css)}const p={};for(const a of m.components){const{src:b,name:C}=a;p[b]||(p[b]=[]);const l=a.generator._withBuildContext({callerName:C,isProduction:t,config:S});r[l.priority]||(r[l.priority]=[]);const j=await l.css;if(!j)continue;r[l.priority].push(l.cssFileName);const N=`css/${l.cssFileName}`,O=c.join(i,N);f.writeFileSync(O,j),S.importStrategy==="component"&&p[b].push(l.cssFileName)}for(const a of m.classNames){const{src:b,name:C}=a;p[b]||(p[b]=[]);const l=a.generator._withBuildContext({callerName:C,isProduction:t,config:S}),j=await l.css;if(!j)continue;r[l.priority]||(r[l.priority]=[]),r[l.priority].push(l.cssFileName);const N=`css/${l.cssFileName}`,O=c.join(i,N);f.writeFileSync(O,j),S.importStrategy==="component"&&p[b].push(l.cssFileName)}S.importStrategy==="component"&&Object.entries(p).forEach(([a,b])=>{const C=b.map(z=>`@import url('./${z}');`).join(`
24
- `),l=J(a,6),j=c.parse(a),N=v(j.name),O=c.join(i,`css/f_${N}-${l}.css`);f.writeFileSync(O,C||"/* Empty file */")});const d=o.map(a=>`@import url('./css/${a}');`).join(`
23
+ ${t}`}catch{return t}},rt=async(t,e,s)=>{const n=W(e),o=c.join(s,"./temp");f.existsSync(o)||f.mkdirSync(o);const r=c.parse(e);let i=f.readFileSync(e,"utf8");i=$t(i),i=ie(i,t);const y=c.join(s,"js",n+".js"),g=await pt(t),h=c.join(t,(g==null?void 0:g.configDir)||"","salty.config.ts"),u=Tt(h),w=await _t(t);await jt.build({stdin:{contents:i,sourcefile:r.base,resolveDir:r.dir,loader:"tsx"},minify:!1,treeShaking:!0,bundle:!0,outfile:y,format:w,target:["node20"],keepNames:!0,external:u,packages:"external",plugins:[{name:"test",setup:p=>{p.onLoad({filter:/.*\.css|salty|styles|styled\.ts/},d=>{const $=f.readFileSync(d.path,"utf8");return{contents:$t($),loader:"ts"}})}}]});const m=Date.now();return{contents:await import(`${y}?t=${m}`),outputFilePath:y}},ae=async t=>{const e=await A(t),s=c.join(e,"cache/config-cache.json"),n=f.readFileSync(s,"utf8");if(!n)throw new Error("Could not find config cache file");return JSON.parse(n)},mt=async t=>{const e=await ae(t),s=await A(t),n=c.join(s,"salty.config.js"),o=Date.now(),{config:r}=await import(`${n}?t=${o}`);return H(r,e)},yt=()=>{try{return process.env.NODE_ENV==="production"}catch{return!1}},ce=async(t,e=yt(),s=!0)=>{try{const n=Date.now();e?ut.info("Generating CSS in production mode! 🔥"):ut.info("Generating CSS in development mode! 🚀");const o=[],r=[],i=await A(t),y=c.join(i,"index.css");s&&(()=>{f.existsSync(i)&&zt.execSync("rm -rf "+i),f.mkdirSync(i,{recursive:!0}),f.mkdirSync(c.join(i,"css")),f.mkdirSync(c.join(i,"types")),f.mkdirSync(c.join(i,"js")),f.mkdirSync(c.join(i,"cache"))})();const h=new Set,u=new Set;async function w(a){const b=["node_modules","saltygen"],C=f.statSync(a);if(C.isDirectory()){const l=f.readdirSync(a);if(b.some(N=>a.includes(N)))return;await Promise.all(l.map(N=>w(c.join(a,N))))}else if(C.isFile()&&L(a)){h.add(a);const j=f.readFileSync(a,"utf8");/define[\w\d]+\(/.test(j)&&u.add(a)}}await w(t),await re(t,u);const m={keyframes:[],components:[],classNames:[]};await Promise.all([...h].map(async a=>{const{contents:b}=await rt(t,a,i);for(let[C,l]of Object.entries(b))l instanceof Promise&&(l=await l),l.isKeyframes?m.keyframes.push({value:l,src:a,name:C}):l.isClassName?m.classNames.push({...l,src:a,name:C}):l.generator&&m.components.push({...l,src:a,name:C})}));const S=await mt(t);for(const a of m.keyframes){const{value:b}=a,C=`a_${b.animationName}.css`,l=`css/${C}`,j=c.join(i,l);o.push(C),f.writeFileSync(j,b.css)}const p={};for(const a of m.components){const{src:b,name:C}=a;p[b]||(p[b]=[]);const l=a.generator._withBuildContext({callerName:C,isProduction:e,config:S});r[l.priority]||(r[l.priority]=[]);const j=await l.css;if(!j)continue;r[l.priority].push(l.cssFileName);const N=`css/${l.cssFileName}`,O=c.join(i,N);f.writeFileSync(O,j),S.importStrategy==="component"&&p[b].push(l.cssFileName)}for(const a of m.classNames){const{src:b,name:C}=a;p[b]||(p[b]=[]);const l=a.generator._withBuildContext({callerName:C,isProduction:e,config:S}),j=await l.css;if(!j)continue;r[l.priority]||(r[l.priority]=[]),r[l.priority].push(l.cssFileName);const N=`css/${l.cssFileName}`,O=c.join(i,N);f.writeFileSync(O,j),S.importStrategy==="component"&&p[b].push(l.cssFileName)}S.importStrategy==="component"&&Object.entries(p).forEach(([a,b])=>{const C=b.map(J=>`@import url('./${J}');`).join(`
24
+ `),l=W(a,6),j=c.parse(a),N=v(j.name),O=c.join(i,`css/f_${N}-${l}.css`);f.writeFileSync(O,C||"/* Empty file */")});const d=o.map(a=>`@import url('./css/${a}');`).join(`
25
25
  `);let E=`@layer reset, global, templates, l0, l1, l2, l3, l4, l5, l6, l7, l8;
26
26
 
27
27
  ${["_variables.css","_reset.css","_global.css","_templates.css"].filter(a=>{try{return f.readFileSync(c.join(i,"css",a),"utf8").length>0}catch{return!1}}).map(a=>`@import url('./css/${a}');`).join(`
28
28
  `)}
29
- ${d}`;if(S.importStrategy!=="component"){const a=r.reduce((b,C,l)=>{const j=C.reduce((L,G)=>{var tt;const X=c.join(i,"css",G),Y=f.readFileSync(X,"utf8"),K=((tt=/.*-([^-]+)-\d+.css/.exec(G))==null?void 0:tt.at(1))||J(X,6);return L.includes(K)?L:`${L}
30
- /*start:${K}-${G}*/
29
+ ${d}`;if(S.importStrategy!=="component"){const a=r.reduce((b,C,l)=>{const j=C.reduce((G,K)=>{var tt;const X=c.join(i,"css",K),Y=f.readFileSync(X,"utf8"),U=((tt=/.*-([^-]+)-\d+.css/.exec(K))==null?void 0:tt.at(1))||W(X,6);return G.includes(U)?G:`${G}
30
+ /*start:${U}-${K}*/
31
31
  ${Y}
32
- /*end:${K}*/
33
- `},""),N=`l_${l}.css`,O=c.join(i,"css",N),z=`@layer l${l} { ${j}
34
- }`;return f.writeFileSync(O,z),`${b}
35
- @import url('./css/${N}');`},"");E+=a}f.writeFileSync(y,E);const k=Date.now()-n,D=k<200?"🔥":k<500?"🚀":k<1e3?"🎉":k<2e3?"🚗":k<5e3?"🤔":"🥴";ut.info(`Generated CSS in ${k}ms! ${D}`)}catch(n){console.error(n)}},le=async(e,t,s=yt())=>{try{const n=await W(e);if(H(t)){const r=[],i=await mt(e),{contents:y}=await rt(e,t,n);for(const[g,h]of Object.entries(y)){if(h.isKeyframes&&h.css){const d=`css/${`a_${h.animationName}.css`}`,$=c.join(n,d);f.writeFileSync($,await h.css);return}if(h.isClassName){const p=h.generator._withBuildContext({callerName:g,isProduction:s,config:i}),d=await p.css;if(!d)continue;r[p.priority]||(r[p.priority]=[]),r[p.priority].push(p.cssFileName);const $=`css/${p.cssFileName}`,P=c.join(n,$);f.writeFileSync(P,d)}if(!h.generator)return;const u=h.generator._withBuildContext({callerName:g,isProduction:s,config:i}),w=await u.css;if(!w)continue;const m=`css/${u.cssFileName}`,S=c.join(n,m);f.writeFileSync(S,w),r[u.priority]||(r[u.priority]=[]),r[u.priority].push(u.cssFileName)}if(i.importStrategy!=="component")r.forEach((g,h)=>{const u=`l_${h}.css`,w=c.join(n,"css",u);let m=f.readFileSync(w,"utf8");g.forEach(S=>{var P;const p=c.join(n,"css",S),d=((P=/.*-([^-]+)-\d+.css/.exec(S))==null?void 0:P.at(1))||J(p,6);if(!m.includes(d)){const x=f.readFileSync(p,"utf8"),E=`/*start:${d}-${S}*/
32
+ /*end:${U}*/
33
+ `},""),N=`l_${l}.css`,O=c.join(i,"css",N),J=`@layer l${l} { ${j}
34
+ }`;return f.writeFileSync(O,J),`${b}
35
+ @import url('./css/${N}');`},"");E+=a}f.writeFileSync(y,E);const k=Date.now()-n,D=k<200?"🔥":k<500?"🚀":k<1e3?"🎉":k<2e3?"🚗":k<5e3?"🤔":"🥴";ut.info(`Generated CSS in ${k}ms! ${D}`)}catch(n){console.error(n)}},le=async(t,e,s=yt())=>{try{const n=await A(t);if(L(e)){const r=[],i=await mt(t),{contents:y}=await rt(t,e,n);for(const[g,h]of Object.entries(y)){if(h.isKeyframes&&h.css){const d=`css/${`a_${h.animationName}.css`}`,$=c.join(n,d);f.writeFileSync($,await h.css);return}if(h.isClassName){const p=h.generator._withBuildContext({callerName:g,isProduction:s,config:i}),d=await p.css;if(!d)continue;r[p.priority]||(r[p.priority]=[]),r[p.priority].push(p.cssFileName);const $=`css/${p.cssFileName}`,P=c.join(n,$);f.writeFileSync(P,d)}if(!h.generator)return;const u=h.generator._withBuildContext({callerName:g,isProduction:s,config:i}),w=await u.css;if(!w)continue;const m=`css/${u.cssFileName}`,S=c.join(n,m);f.writeFileSync(S,w),r[u.priority]||(r[u.priority]=[]),r[u.priority].push(u.cssFileName)}if(i.importStrategy!=="component")r.forEach((g,h)=>{const u=`l_${h}.css`,w=c.join(n,"css",u);let m=f.readFileSync(w,"utf8");g.forEach(S=>{var P;const p=c.join(n,"css",S),d=((P=/.*-([^-]+)-\d+.css/.exec(S))==null?void 0:P.at(1))||W(p,6);if(!m.includes(d)){const x=f.readFileSync(p,"utf8"),E=`/*start:${d}-${S}*/
36
36
  ${x}
37
37
  /*end:${d}*/
38
38
  `;m=`${m.replace(/\}$/,"")}
39
39
  ${E}
40
40
  }`}}),f.writeFileSync(w,m)});else{const g=r.flat().map(S=>`@import url('./${S}');`).join(`
41
- `),h=J(t,6),u=c.parse(t),w=v(u.name),m=c.join(n,`css/f_${w}-${h}.css`);f.writeFileSync(m,g||"/* Empty file */")}}}catch(n){console.error(n)}},fe=async(e,t,s=yt())=>{var n,o;try{const r=await W(e);if(H(t)){const y=f.readFileSync(t,"utf8"),g=await mt(e),{contents:h}=await rt(e,t,r);let u=y;for(const[w,m]of Object.entries(h)){if(m.isKeyframes||!m.generator)continue;const S=m.generator._withBuildContext({callerName:w,isProduction:s,config:g}),[p,d]=await se(u,w),$=u.slice(p,d);if(m.isClassName){const P=u,x=` ${w} = className("${S.classNames}")`;u=u.replace($,x),P===u&&console.error("Minimize file failed to change content",{name:w})}if($.includes("styled")){const P=(o=(n=/styled\(([^,]+),/.exec($))==null?void 0:n.at(1))==null?void 0:o.trim(),x=u,E=` ${w} = styled(${P}, "${S.classNames}", ${JSON.stringify(S.clientProps)})`;u=u.replace($,E),x===u&&console.error("Minimize file failed to change content",{name:w,tagName:P})}}if(g.importStrategy==="component"){const w=J(t,6),m=c.parse(t);u=`import '../../saltygen/css/${`f_${v(m.name)}-${w}.css`}';
42
- ${u}`}return u=u.replace("@salty-css/react/class-name","@salty-css/react/class-name-client"),u=u.replace("{ styled }","{ styledClient as styled }"),u=u.replace("@salty-css/react/styled","@salty-css/react/styled-client"),u}}catch(r){console.error("Error in minimizeFile:",r)}},St=async e=>{if(!e||e.includes("node_modules")||e.includes("saltygen"))return!1;if(e.includes("salty.config"))return!0;if(!H(e))return!1;const n=await dt.readFile(e,"utf-8");return!!/.+define[A-Z]\w+/.test(n)},Ot=e=>({name:"stylegen",buildStart:()=>ce(e),load:async t=>{if(H(t))return await fe(e,t)},handleHotUpdate:async({file:t,server:s})=>{await St(t)&&s.restart()},watchChange:{handler:async t=>{H(t)&&(await St(t)||await le(e,t))}}});exports.default=Ot;exports.saltyPlugin=Ot;
41
+ `),h=W(e,6),u=c.parse(e),w=v(u.name),m=c.join(n,`css/f_${w}-${h}.css`);f.writeFileSync(m,g||"/* Empty file */")}}}catch(n){console.error(n)}},fe=async(t,e,s=yt())=>{var n,o;try{const r=await A(t);if(L(e)){const y=f.readFileSync(e,"utf8"),g=await mt(t),{contents:h}=await rt(t,e,r);let u=y;for(const[w,m]of Object.entries(h)){if(m.isKeyframes||!m.generator)continue;const S=m.generator._withBuildContext({callerName:w,isProduction:s,config:g}),[p,d]=await se(u,w),$=u.slice(p,d);if(m.isClassName){const P=u,x=` ${w} = className("${S.classNames}")`;u=u.replace($,x),P===u&&console.error("Minimize file failed to change content",{name:w})}if($.includes("styled")){const P=(o=(n=/styled\(([^,]+),/.exec($))==null?void 0:n.at(1))==null?void 0:o.trim(),x=u,E=` ${w} = styled(${P}, "${S.classNames}", ${JSON.stringify(S.clientProps)})`;u=u.replace($,E),x===u&&console.error("Minimize file failed to change content",{name:w,tagName:P})}}if(g.importStrategy==="component"){const w=W(e,6),m=c.parse(e);u=`import '../../saltygen/css/${`f_${v(m.name)}-${w}.css`}';
42
+ ${u}`}return u=u.replace("@salty-css/react/class-name","@salty-css/react/class-name-client"),u=u.replace("{ styled }","{ styledClient as styled }"),u=u.replace("@salty-css/react/styled","@salty-css/react/styled-client"),u}}catch(r){console.error("Error in minimizeFile:",r)}},St=async t=>{if(!t||t.includes("node_modules")||t.includes("saltygen"))return!1;if(t.includes("salty.config"))return!0;if(!L(t))return!1;const n=await dt.readFile(t,"utf-8");return!!/.+define[A-Z]\w+/.test(n)},Ot=t=>({name:"stylegen",buildStart:()=>ce(t),load:async e=>{if(L(e))return await fe(t,e)},handleHotUpdate:async({file:e,server:s})=>{await St(e)&&s.restart()},watchChange:{handler:async e=>{L(e)&&(await St(e)||await le(t,e))}}});exports.default=Ot;exports.saltyPlugin=Ot;
package/index.js CHANGED
@@ -1,29 +1,29 @@
1
1
  var vt = Object.defineProperty;
2
- var At = (e, t, s) => t in e ? vt(e, t, { enumerable: !0, configurable: !0, writable: !0, value: s }) : e[t] = s;
3
- var ot = (e, t, s) => At(e, typeof t != "symbol" ? t + "" : t, s);
2
+ var Jt = (e, t, s) => t in e ? vt(e, t, { enumerable: !0, configurable: !0, writable: !0, value: s }) : e[t] = s;
3
+ var ot = (e, t, s) => Jt(e, typeof t != "symbol" ? t + "" : t, s);
4
4
  import * as Pt from "esbuild";
5
- import { execSync as Jt } from "child_process";
5
+ import { execSync as zt } from "child_process";
6
6
  import { join as u, parse as at } from "path";
7
- import { existsSync as mt, mkdirSync as G, statSync as zt, readdirSync as Wt, readFileSync as M, writeFileSync as x } from "fs";
7
+ import { existsSync as mt, mkdirSync as K, statSync as Wt, readdirSync as At, readFileSync as M, writeFileSync as x } from "fs";
8
8
  import { readFile as ht } from "fs/promises";
9
- import { createLogger as Zt, format as ut, transports as Ht } from "winston";
9
+ import { createLogger as Ht, format as ut, transports as It } from "winston";
10
10
  import pt from "typescript";
11
- const St = (e) => String.fromCharCode(e + (e > 25 ? 39 : 97)), It = (e, t) => {
11
+ const Ct = (e) => String.fromCharCode(e + (e > 25 ? 39 : 97)), Gt = (e, t) => {
12
12
  let s = "", n;
13
- for (n = Math.abs(e); n > 52; n = n / 52 | 0) s = St(n % 52) + s;
14
- return s = St(n % 52) + s, s.length < t ? s = s.padStart(t, "a") : s.length > t && (s = s.slice(-t)), s;
15
- }, Gt = (e, t) => {
13
+ for (n = Math.abs(e); n > 52; n = n / 52 | 0) s = Ct(n % 52) + s;
14
+ return s = Ct(n % 52) + s, s.length < t ? s = s.padStart(t, "a") : s.length > t && (s = s.slice(-t)), s;
15
+ }, Kt = (e, t) => {
16
16
  let s = t.length;
17
17
  for (; s; ) e = e * 33 ^ t.charCodeAt(--s);
18
18
  return e;
19
- }, W = (e, t = 5) => {
20
- const s = Gt(5381, JSON.stringify(e)) >>> 0;
21
- return It(s, t);
19
+ }, A = (e, t = 5) => {
20
+ const s = Kt(5381, JSON.stringify(e)) >>> 0;
21
+ return Gt(s, t);
22
22
  };
23
- function A(e) {
24
- 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()) : "";
23
+ function J(e) {
24
+ return e ? typeof e != "string" ? J(String(e)) : e.replace(/[\s.]/g, "-").replace(/[A-Z](?:(?=[^A-Z])|[A-Z]*(?=[A-Z][^A-Z]|$))/g, (t, s) => (s > 0 ? "-" : "") + t.toLowerCase()) : "";
25
25
  }
26
- const Kt = (e) => (t) => {
26
+ const Lt = (e) => (t) => {
27
27
  if (typeof t != "string" || !e) return;
28
28
  let s = t;
29
29
  const n = [];
@@ -34,7 +34,7 @@ const Kt = (e) => (t) => {
34
34
  return h && n.push(h), y;
35
35
  });
36
36
  }), { transformed: s, additionalCss: n };
37
- }, Nt = (e) => (t) => typeof t != "string" || !/\{[^{}]+\}/g.test(t) ? void 0 : { transformed: t.replace(/\{([^{}]+)\}/g, (...o) => `var(--${A(o[1].replaceAll(".", "-"))})`) }, Lt = Nt(), Qt = [
37
+ }, Nt = (e) => (t) => typeof t != "string" || !/\{[^{}]+\}/g.test(t) ? void 0 : { transformed: t.replace(/\{([^{}]+)\}/g, (...o) => `var(--${J(o[1].replaceAll(".", "-"))})`) }, Qt = Nt(), Zt = [
38
38
  "top",
39
39
  "right",
40
40
  "bottom",
@@ -55,7 +55,7 @@ const Kt = (e) => (t) => {
55
55
  /.*size.*/,
56
56
  /.*thickness.*/,
57
57
  /.*font-size.*/
58
- ], Bt = (e, t, s) => Qt.some((o) => typeof o == "string" ? o === e : o.test(e)) ? `${t}px` : `${t}`, Ut = ["Webkit", "Moz", "ms", "O"], qt = (e) => e.startsWith("-") ? e : Ut.some((t) => e.startsWith(t)) ? `-${A(e)}` : A(e), rt = async (e, t = "", s, n = !1) => {
58
+ ], Bt = (e, t, s) => Zt.some((o) => typeof o == "string" ? o === e : o.test(e)) ? `${t}px` : `${t}`, Ut = ["Webkit", "Moz", "ms", "O"], qt = (e) => e.startsWith("-") ? e : Ut.some((t) => e.startsWith(t)) ? `-${J(e)}` : J(e), rt = async (e, t = "", s, n = !1) => {
59
59
  if (!e) throw new Error("No styles provided to parseStyles function!");
60
60
  const o = /* @__PURE__ */ new Set(), r = Object.entries(e), a = async ([p, f]) => {
61
61
  const $ = p.trim(), F = qt($), _ = (R, D = ";") => `${F}:${R}${D}`, O = { scope: t, config: s };
@@ -70,18 +70,18 @@ const Kt = (e) => (t) => {
70
70
  for (const [i, w] of k) {
71
71
  if (!w) return;
72
72
  const j = Object.entries(w);
73
- for (const [c, C] of j) {
74
- if (!C) return;
73
+ for (const [c, S] of j) {
74
+ if (!S) return;
75
75
  const P = `${t}.${i}-${c}`;
76
- (await rt(C, P, s)).forEach((z) => o.add(z));
76
+ (await rt(S, P, s)).forEach((W) => o.add(W));
77
77
  }
78
78
  }
79
79
  return;
80
80
  }
81
81
  if ($ === "compoundVariants") {
82
82
  for (const k of f) {
83
- const { css: i, ...w } = k, j = Object.entries(w).reduce((C, [P, E]) => `${C}.${P}-${E}`, t);
84
- (await rt(i, j, s)).forEach((C) => o.add(C));
83
+ const { css: i, ...w } = k, j = Object.entries(w).reduce((S, [P, E]) => `${S}.${P}-${E}`, t);
84
+ (await rt(i, j, s)).forEach((S) => o.add(S));
85
85
  }
86
86
  return;
87
87
  }
@@ -102,7 +102,7 @@ const Kt = (e) => (t) => {
102
102
  if ("toString" in f) f = f.toString();
103
103
  else throw new Error(`Invalid value type for property ${F}`);
104
104
  return _(f);
105
- }, m = r.map(a), { modifiers: y } = {}, h = [Nt(), Kt(y)], g = (await Promise.all(m).then((p) => Promise.all(
105
+ }, m = r.map(a), { modifiers: y } = {}, h = [Nt(), Lt(y)], g = (await Promise.all(m).then((p) => Promise.all(
106
106
  p.map((f) => h.reduce(async ($, F) => {
107
107
  const _ = await $;
108
108
  if (!_) return _;
@@ -133,7 +133,7 @@ const Kt = (e) => (t) => {
133
133
  } else
134
134
  n[o] = r;
135
135
  if (Object.keys(n).length) {
136
- const o = t.map(A).join("-"), r = "t_" + W(o, 4), a = await X(n, `.${o}, .${r}`);
136
+ const o = t.map(J).join("-"), r = "t_" + A(o, 4), a = await X(n, `.${o}, .${r}`);
137
137
  s.push(a);
138
138
  }
139
139
  return s.join(`
@@ -154,18 +154,18 @@ const Kt = (e) => (t) => {
154
154
  if (t)
155
155
  return t.type;
156
156
  };
157
- let I;
157
+ let G;
158
158
  const Dt = async (e) => {
159
- if (I) return I;
159
+ if (G) return G;
160
160
  const t = await te(e);
161
- return t === "module" ? I = "esm" : (t === "commonjs" || import.meta.url.endsWith(".cjs")) && (I = "cjs"), I || "esm";
162
- }, dt = Zt({
161
+ return t === "module" ? G = "esm" : (t === "commonjs" || import.meta.url.endsWith(".cjs")) && (G = "cjs"), G || "esm";
162
+ }, dt = Ht({
163
163
  level: "debug",
164
164
  format: ut.combine(ut.colorize(), ut.cli()),
165
- transports: [new Ht.Console({})]
165
+ transports: [new It.Console({})]
166
166
  });
167
167
  function kt(e) {
168
- return e ? typeof e != "string" ? kt(String(e)) : e.replace(/[\s-]/g, ".").replace(/[A-Z](?:(?=[^A-Z])|[A-Z]*(?=[A-Z][^A-Z]|$))/g, (t, s) => (s > 0 ? "." : "") + t.toLowerCase()) : "";
168
+ return e ? typeof e != "string" ? kt(String(e)) : e.replace(/[^\d\w]/g, ".") : "";
169
169
  }
170
170
  const ee = {
171
171
  /** Set box model to border-box */
@@ -213,7 +213,7 @@ const ee = {
213
213
  fontSize: "100%",
214
214
  lineHeight: "1.15em"
215
215
  }
216
- }, K = (...e) => e.flat().reduce((t, s) => s != null && s._current ? { ...t, ...s._current } : { ...t, ...s }, {}), se = (...e) => e.flat().reduce((t, s) => ({ ...t, ...s._children }), {});
216
+ }, L = (...e) => e.flat().reduce((t, s) => s != null && s._current ? { ...t, ...s._current } : { ...t, ...s }, {}), se = (...e) => e.flat().reduce((t, s) => ({ ...t, ...s._children }), {});
217
217
  class ne {
218
218
  constructor(t) {
219
219
  ot(this, "_path");
@@ -269,32 +269,32 @@ const re = (e) => new oe(e), ae = (e, t) => new Promise((s, n) => {
269
269
  m.forEachChild(a);
270
270
  }
271
271
  a(r);
272
- }), J = {
272
+ }), z = {
273
273
  externalModules: [],
274
274
  rcFile: void 0,
275
275
  destDir: void 0
276
276
  }, Et = (e) => {
277
- if (J.externalModules.length > 0) return J.externalModules;
277
+ if (z.externalModules.length > 0) return z.externalModules;
278
278
  const s = M(e, "utf8").match(/externalModules:\s?\[(.*)\]/);
279
279
  if (!s) return [];
280
280
  const n = s[1].split(",").map((o) => o.replace(/['"`]/g, "").trim());
281
- return J.externalModules = n, n;
282
- }, Z = async (e) => {
283
- if (J.destDir) return J.destDir;
281
+ return z.externalModules = n, n;
282
+ }, H = async (e) => {
283
+ if (z.destDir) return z.destDir;
284
284
  const t = await yt(e), s = u(e, (t == null ? void 0 : t.saltygenDir) || "saltygen");
285
- return J.destDir = s, s;
286
- }, Ot = ["salty", "css", "styles", "styled"], ie = (e = []) => new RegExp(`\\.(${[...Ot, ...e].join("|")})\\.`), L = (e, t = []) => ie(t).test(e), Vt = async (e) => {
287
- if (J.rcFile) return J.rcFile;
285
+ return z.destDir = s, s;
286
+ }, Ot = ["salty", "css", "styles", "styled"], ie = (e = []) => new RegExp(`\\.(${[...Ot, ...e].join("|")})\\.`), Q = (e, t = []) => ie(t).test(e), Vt = async (e) => {
287
+ if (z.rcFile) return z.rcFile;
288
288
  if (e === "/") throw new Error("Could not find .saltyrc.json file");
289
289
  const t = u(e, ".saltyrc.json"), s = await ht(t, "utf-8").then(JSON.parse).catch(() => {
290
290
  });
291
- return s ? (J.rcFile = s, s) : Vt(u(e, ".."));
291
+ return s ? (z.rcFile = s, s) : Vt(u(e, ".."));
292
292
  }, yt = async (e) => {
293
293
  var n, o;
294
294
  const t = await Vt(e), s = (n = t.projects) == null ? void 0 : n.find((r) => e.endsWith(r.dir || ""));
295
295
  return s || ((o = t.projects) == null ? void 0 : o.find((r) => r.dir === t.defaultProject));
296
296
  }, ce = async (e) => {
297
- const t = await yt(e), s = await Z(e), n = u(e, (t == null ? void 0 : t.configDir) || "", "salty.config.ts"), o = u(s, "salty.config.js"), r = await Dt(e), a = Et(n);
297
+ const t = await yt(e), s = await H(e), n = u(e, (t == null ? void 0 : t.configDir) || "", "salty.config.ts"), o = u(s, "salty.config.js"), r = await Dt(e), a = Et(n);
298
298
  await Pt.build({
299
299
  entryPoints: [n],
300
300
  minify: !0,
@@ -308,73 +308,73 @@ const re = (e) => new oe(e), ae = (e, t) => new Promise((s, n) => {
308
308
  return { config: y, path: o };
309
309
  }, le = async (e, t) => {
310
310
  var $t, bt;
311
- const s = await Z(e), n = {
311
+ const s = await H(e), n = {
312
312
  mediaQueries: [],
313
313
  globalStyles: [],
314
314
  variables: [],
315
315
  templates: []
316
316
  };
317
317
  await Promise.all(
318
- [...t].map(async (S) => {
319
- const { contents: N, outputFilePath: q } = await it(e, S, s);
318
+ [...t].map(async (C) => {
319
+ const { contents: N, outputFilePath: q } = await it(e, C, s);
320
320
  Object.entries(N).forEach(([v, T]) => {
321
321
  T.isMedia ? n.mediaQueries.push([v, T]) : T.isGlobalDefine ? n.globalStyles.push(T) : T.isDefineVariables ? n.variables.push(T) : T.isDefineTemplates && n.templates.push(T._setPath(`${v};;${q}`));
322
322
  });
323
323
  })
324
324
  );
325
- const { config: o, path: r } = await ce(e), a = { ...o }, m = /* @__PURE__ */ new Set(), y = async (S, N = []) => {
326
- if (!S) return [];
327
- const q = Object.entries(S).map(async ([T, H]) => {
325
+ const { config: o, path: r } = await ce(e), a = { ...o }, m = /* @__PURE__ */ new Set(), y = async (C, N = []) => {
326
+ if (!C) return [];
327
+ const q = Object.entries(C).map(async ([T, I]) => {
328
328
  const st = async (V) => {
329
329
  if (!V) return;
330
330
  if (V instanceof Promise) return await st(await V);
331
331
  if (typeof V == "function") return await st(await V());
332
332
  if (typeof V == "object") return await y(V, [...N, T]);
333
- const ct = kt(T), lt = A(T), ft = [...N, ct].join(".");
333
+ const ct = kt(T), lt = J(T), ft = [...N, ct].join(".");
334
334
  m.add(`"${ft}"`);
335
- const nt = [...N.map(A), lt].join("-"), Ct = Lt(V);
336
- return Ct ? `--${nt}: ${Ct.transformed};` : `--${nt}: ${V};`;
335
+ const nt = [...N.map(J), lt].join("-"), St = Qt(V);
336
+ return St ? `--${nt}: ${St.transformed};` : `--${nt}: ${V};`;
337
337
  };
338
- return await st(H);
338
+ return await st(I);
339
339
  });
340
340
  return (await Promise.all(q)).flat();
341
- }, h = async (S) => {
342
- if (!S) return [];
343
- const N = Object.entries(S).map(async ([v, T]) => {
344
- const H = await y(T);
345
- return v === "base" ? H.join("") : `${v} { ${H.join("")} }`;
341
+ }, h = async (C) => {
342
+ if (!C) return [];
343
+ const N = Object.entries(C).map(async ([v, T]) => {
344
+ const I = await y(T);
345
+ return v === "base" ? I.join("") : `${v} { ${I.join("")} }`;
346
346
  });
347
347
  return (await Promise.all(N)).flat();
348
- }, l = async (S) => {
349
- if (!S) return [];
350
- const N = Object.entries(S).map(async ([v, T]) => {
351
- const H = Object.entries(T).map(async ([V, ct]) => {
348
+ }, l = async (C) => {
349
+ if (!C) return [];
350
+ const N = Object.entries(C).map(async ([v, T]) => {
351
+ const I = Object.entries(T).map(async ([V, ct]) => {
352
352
  const lt = await y(ct, [v]), ft = `.${v}-${V}, [data-${v}="${V}"]`, nt = lt.join("");
353
353
  return `${ft} { ${nt} }`;
354
354
  });
355
- return (await Promise.all(H)).flat();
355
+ return (await Promise.all(I)).flat();
356
356
  });
357
357
  return (await Promise.all(N)).flat();
358
- }, g = (S) => ({ ...S, responsive: void 0, conditional: void 0 }), d = (S) => n.variables.map((N) => S === "static" ? g(N._current) : N._current[S]), b = K(g(o.variables), d("static")), p = await y(b), f = K(($t = o.variables) == null ? void 0 : $t.responsive, d("responsive")), $ = await h(f), F = K((bt = o.variables) == null ? void 0 : bt.conditional, d("conditional")), _ = await l(F), O = u(s, "css/_variables.css"), R = `:root { ${p.join("")} ${$.join("")} } ${_.join("")}`;
358
+ }, g = (C) => ({ ...C, responsive: void 0, conditional: void 0 }), d = (C) => n.variables.map((N) => C === "static" ? g(N._current) : N._current[C]), b = L(g(o.variables), d("static")), p = await y(b), f = L(($t = o.variables) == null ? void 0 : $t.responsive, d("responsive")), $ = await h(f), F = L((bt = o.variables) == null ? void 0 : bt.conditional, d("conditional")), _ = await l(F), O = u(s, "css/_variables.css"), R = `:root { ${p.join("")} ${$.join("")} } ${_.join("")}`;
359
359
  x(O, R), a.staticVariables = b;
360
- const D = u(s, "css/_global.css"), k = K(o.global, n.globalStyles), i = await X(k, "");
360
+ const D = u(s, "css/_global.css"), k = L(o.global, n.globalStyles), i = await X(k, "");
361
361
  x(D, `@layer global { ${i} }`);
362
- const w = u(s, "css/_reset.css"), c = o.reset === "none" ? {} : typeof o.reset == "object" ? o.reset : ee, C = await X(c, "");
363
- x(w, `@layer reset { ${C} }`);
364
- const P = u(s, "css/_templates.css"), E = K(o.templates, n.templates), z = await _t(E), Q = Xt(E);
365
- x(P, `@layer templates { ${z} }`), a.templates = E;
362
+ const w = u(s, "css/_reset.css"), c = o.reset === "none" ? {} : typeof o.reset == "object" ? o.reset : ee, S = await X(c, "");
363
+ x(w, `@layer reset { ${S} }`);
364
+ const P = u(s, "css/_templates.css"), E = L(o.templates, n.templates), W = await _t(E), Z = Xt(E);
365
+ x(P, `@layer templates { ${W} }`), a.templates = E;
366
366
  const B = o.templates ? [re(o.templates)._setPath(`config;;${r}`)] : [], Y = se(n.templates, B);
367
- a.templatePaths = Object.fromEntries(Object.entries(Y).map(([S, N]) => [S, N._path]));
367
+ a.templatePaths = Object.fromEntries(Object.entries(Y).map(([C, N]) => [C, N._path]));
368
368
  const { mediaQueries: tt } = n;
369
- a.mediaQueries = Object.fromEntries(tt.map(([S, N]) => [`@${S}`, N]));
370
- const U = tt.map(([S]) => `'@${S}'`).join(" | "), et = u(s, "types/css-tokens.d.ts"), Mt = `
369
+ a.mediaQueries = Object.fromEntries(tt.map(([C, N]) => [`@${C}`, N]));
370
+ const U = tt.map(([C]) => `'@${C}'`).join(" | "), et = u(s, "types/css-tokens.d.ts"), Mt = `
371
371
  // Variable types
372
372
  type VariableTokens = ${[...m].join("|")};
373
373
  type PropertyValueToken = \`{\${VariableTokens}}\`;
374
374
 
375
375
  // Template types
376
376
  type TemplateTokens = {
377
- ${Object.entries(Q).map(([S, N]) => `${S}?: ${N}`).join(`
377
+ ${Object.entries(Z).map(([C, N]) => `${C}?: ${N}`).join(`
378
378
  `)}
379
379
  }
380
380
 
@@ -406,8 +406,8 @@ ${e}`;
406
406
  return e;
407
407
  }
408
408
  }, it = async (e, t, s) => {
409
- const n = W(t), o = u(s, "./temp");
410
- mt(o) || G(o);
409
+ const n = A(t), o = u(s, "./temp");
410
+ mt(o) || K(o);
411
411
  const r = at(t);
412
412
  let a = M(t, "utf8");
413
413
  a = jt(a), a = fe(a, e);
@@ -443,12 +443,12 @@ ${e}`;
443
443
  const d = Date.now();
444
444
  return { contents: await import(`${m}?t=${d}`), outputFilePath: m };
445
445
  }, ue = async (e) => {
446
- const t = await Z(e), s = u(t, "cache/config-cache.json"), n = M(s, "utf8");
446
+ const t = await H(e), s = u(t, "cache/config-cache.json"), n = M(s, "utf8");
447
447
  if (!n) throw new Error("Could not find config cache file");
448
448
  return JSON.parse(n);
449
449
  }, gt = async (e) => {
450
- const t = await ue(e), s = await Z(e), n = u(s, "salty.config.js"), o = Date.now(), { config: r } = await import(`${n}?t=${o}`);
451
- return K(r, t);
450
+ const t = await ue(e), s = await H(e), n = u(s, "salty.config.js"), o = Date.now(), { config: r } = await import(`${n}?t=${o}`);
451
+ return L(r, t);
452
452
  }, wt = () => {
453
453
  try {
454
454
  return process.env.NODE_ENV === "production";
@@ -459,21 +459,21 @@ ${e}`;
459
459
  try {
460
460
  const n = Date.now();
461
461
  t ? dt.info("Generating CSS in production mode! 🔥") : dt.info("Generating CSS in development mode! 🚀");
462
- const o = [], r = [], a = await Z(e), m = u(a, "index.css");
462
+ const o = [], r = [], a = await H(e), m = u(a, "index.css");
463
463
  s && (() => {
464
- mt(a) && Jt("rm -rf " + a), G(a, { recursive: !0 }), G(u(a, "css")), G(u(a, "types")), G(u(a, "js")), G(u(a, "cache"));
464
+ mt(a) && zt("rm -rf " + a), K(a, { recursive: !0 }), K(u(a, "css")), K(u(a, "types")), K(u(a, "js")), K(u(a, "cache"));
465
465
  })();
466
466
  const h = /* @__PURE__ */ new Set(), l = /* @__PURE__ */ new Set();
467
467
  async function g(i) {
468
- const w = ["node_modules", "saltygen"], j = zt(i);
468
+ const w = ["node_modules", "saltygen"], j = Wt(i);
469
469
  if (j.isDirectory()) {
470
- const c = Wt(i);
470
+ const c = At(i);
471
471
  if (w.some((P) => i.includes(P))) return;
472
472
  await Promise.all(c.map((P) => g(u(i, P))));
473
- } else if (j.isFile() && L(i)) {
473
+ } else if (j.isFile() && Q(i)) {
474
474
  h.add(i);
475
- const C = M(i, "utf8");
476
- /define[\w\d]+\(/.test(C) && l.add(i);
475
+ const S = M(i, "utf8");
476
+ /define[\w\d]+\(/.test(S) && l.add(i);
477
477
  }
478
478
  }
479
479
  await g(e), await le(e, l);
@@ -503,8 +503,8 @@ ${e}`;
503
503
  );
504
504
  const b = await gt(e);
505
505
  for (const i of d.keyframes) {
506
- const { value: w } = i, j = `a_${w.animationName}.css`, c = `css/${j}`, C = u(a, c);
507
- o.push(j), x(C, w.css);
506
+ const { value: w } = i, j = `a_${w.animationName}.css`, c = `css/${j}`, S = u(a, c);
507
+ o.push(j), x(S, w.css);
508
508
  }
509
509
  const p = {};
510
510
  for (const i of d.components) {
@@ -516,11 +516,11 @@ ${e}`;
516
516
  config: b
517
517
  });
518
518
  r[c.priority] || (r[c.priority] = []);
519
- const C = await c.css;
520
- if (!C) continue;
519
+ const S = await c.css;
520
+ if (!S) continue;
521
521
  r[c.priority].push(c.cssFileName);
522
522
  const P = `css/${c.cssFileName}`, E = u(a, P);
523
- x(E, C), b.importStrategy === "component" && p[w].push(c.cssFileName);
523
+ x(E, S), b.importStrategy === "component" && p[w].push(c.cssFileName);
524
524
  }
525
525
  for (const i of d.classNames) {
526
526
  const { src: w, name: j } = i;
@@ -529,15 +529,15 @@ ${e}`;
529
529
  callerName: j,
530
530
  isProduction: t,
531
531
  config: b
532
- }), C = await c.css;
533
- if (!C) continue;
532
+ }), S = await c.css;
533
+ if (!S) continue;
534
534
  r[c.priority] || (r[c.priority] = []), r[c.priority].push(c.cssFileName);
535
535
  const P = `css/${c.cssFileName}`, E = u(a, P);
536
- x(E, C), b.importStrategy === "component" && p[w].push(c.cssFileName);
536
+ x(E, S), b.importStrategy === "component" && p[w].push(c.cssFileName);
537
537
  }
538
538
  b.importStrategy === "component" && Object.entries(p).forEach(([i, w]) => {
539
- const j = w.map((z) => `@import url('./${z}');`).join(`
540
- `), c = W(i, 6), C = at(i), P = A(C.name), E = u(a, `css/f_${P}-${c}.css`);
539
+ const j = w.map((W) => `@import url('./${W}');`).join(`
540
+ `), c = A(i, 6), S = at(i), P = J(S.name), E = u(a, `css/f_${P}-${c}.css`);
541
541
  x(E, j || "/* Empty file */");
542
542
  });
543
543
  const f = o.map((i) => `@import url('./css/${i}');`).join(`
@@ -555,17 +555,17 @@ ${["_variables.css", "_reset.css", "_global.css", "_templates.css"].filter((i) =
555
555
  ${f}`;
556
556
  if (b.importStrategy !== "component") {
557
557
  const i = r.reduce((w, j, c) => {
558
- const C = j.reduce((Q, B) => {
558
+ const S = j.reduce((Z, B) => {
559
559
  var et;
560
- const Y = u(a, "css", B), tt = M(Y, "utf8"), U = ((et = /.*-([^-]+)-\d+.css/.exec(B)) == null ? void 0 : et.at(1)) || W(Y, 6);
561
- return Q.includes(U) ? Q : `${Q}
560
+ const Y = u(a, "css", B), tt = M(Y, "utf8"), U = ((et = /.*-([^-]+)-\d+.css/.exec(B)) == null ? void 0 : et.at(1)) || A(Y, 6);
561
+ return Z.includes(U) ? Z : `${Z}
562
562
  /*start:${U}-${B}*/
563
563
  ${tt}
564
564
  /*end:${U}*/
565
565
  `;
566
- }, ""), P = `l_${c}.css`, E = u(a, "css", P), z = `@layer l${c} { ${C}
566
+ }, ""), P = `l_${c}.css`, E = u(a, "css", P), W = `@layer l${c} { ${S}
567
567
  }`;
568
- return x(E, z), `${w}
568
+ return x(E, W), `${w}
569
569
  @import url('./css/${P}');`;
570
570
  }, "");
571
571
  O += i;
@@ -578,8 +578,8 @@ ${tt}
578
578
  }
579
579
  }, de = async (e, t, s = wt()) => {
580
580
  try {
581
- const n = await Z(e);
582
- if (L(t)) {
581
+ const n = await H(e);
582
+ if (Q(t)) {
583
583
  const r = [], a = await gt(e), { contents: m } = await it(e, t, n);
584
584
  for (const [y, h] of Object.entries(m)) {
585
585
  if (h.isKeyframes && h.css) {
@@ -614,7 +614,7 @@ ${tt}
614
614
  let d = M(g, "utf8");
615
615
  y.forEach((b) => {
616
616
  var F;
617
- const p = u(n, "css", b), f = ((F = /.*-([^-]+)-\d+.css/.exec(b)) == null ? void 0 : F.at(1)) || W(p, 6);
617
+ const p = u(n, "css", b), f = ((F = /.*-([^-]+)-\d+.css/.exec(b)) == null ? void 0 : F.at(1)) || A(p, 6);
618
618
  if (!d.includes(f)) {
619
619
  const _ = M(p, "utf8"), O = `/*start:${f}-${b}*/
620
620
  ${_}
@@ -628,7 +628,7 @@ ${O}
628
628
  });
629
629
  else {
630
630
  const y = r.flat().map((b) => `@import url('./${b}');`).join(`
631
- `), h = W(t, 6), l = at(t), g = A(l.name), d = u(n, `css/f_${g}-${h}.css`);
631
+ `), h = A(t, 6), l = at(t), g = J(l.name), d = u(n, `css/f_${g}-${h}.css`);
632
632
  x(d, y || "/* Empty file */");
633
633
  }
634
634
  }
@@ -638,8 +638,8 @@ ${O}
638
638
  }, me = async (e, t, s = wt()) => {
639
639
  var n, o;
640
640
  try {
641
- const r = await Z(e);
642
- if (L(t)) {
641
+ const r = await H(e);
642
+ if (Q(t)) {
643
643
  const m = M(t, "utf8"), y = await gt(e), { contents: h } = await it(e, t, r);
644
644
  let l = m;
645
645
  for (const [g, d] of Object.entries(h)) {
@@ -659,8 +659,8 @@ ${O}
659
659
  }
660
660
  }
661
661
  if (y.importStrategy === "component") {
662
- const g = W(t, 6), d = at(t);
663
- l = `import '../../saltygen/css/${`f_${A(d.name)}-${g}.css`}';
662
+ const g = A(t, 6), d = at(t);
663
+ l = `import '../../saltygen/css/${`f_${J(d.name)}-${g}.css`}';
664
664
  ${l}`;
665
665
  }
666
666
  return l = l.replace("@salty-css/react/class-name", "@salty-css/react/class-name-client"), l = l.replace("{ styled }", "{ styledClient as styled }"), l = l.replace("@salty-css/react/styled", "@salty-css/react/styled-client"), l;
@@ -671,14 +671,14 @@ ${l}`;
671
671
  }, Ft = async (e) => {
672
672
  if (!e || e.includes("node_modules") || e.includes("saltygen")) return !1;
673
673
  if (e.includes("salty.config")) return !0;
674
- if (!L(e)) return !1;
674
+ if (!Q(e)) return !1;
675
675
  const n = await ht(e, "utf-8");
676
676
  return !!/.+define[A-Z]\w+/.test(n);
677
677
  }, je = (e) => ({
678
678
  name: "stylegen",
679
679
  buildStart: () => pe(e),
680
680
  load: async (t) => {
681
- if (L(t))
681
+ if (Q(t))
682
682
  return await me(e, t);
683
683
  },
684
684
  handleHotUpdate: async ({ file: t, server: s }) => {
@@ -686,7 +686,7 @@ ${l}`;
686
686
  },
687
687
  watchChange: {
688
688
  handler: async (t) => {
689
- L(t) && (await Ft(t) || await de(e, t));
689
+ Q(t) && (await Ft(t) || await de(e, t));
690
690
  }
691
691
  }
692
692
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salty-css/vite",
3
- "version": "0.0.1-alpha.234",
3
+ "version": "0.0.1-alpha.235",
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.234"
37
+ "@salty-css/core": "^0.0.1-alpha.235"
38
38
  }
39
39
  }