@salty-css/vite 0.0.1-alpha.101 → 0.0.1-alpha.102

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 +14 -14
  2. package/index.js +147 -136
  3. package/package.json +2 -2
package/index.cjs CHANGED
@@ -1,18 +1,18 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const ot=require("esbuild"),rt=require("child_process"),u=require("path"),d=require("fs"),L=require("fs/promises"),V=require("winston");var R=typeof document<"u"?document.currentScript:null;function it(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 U=it(ot),B=t=>String.fromCharCode(t+(t>25?39:97)),ct=(t,e)=>{let s="",n;for(n=Math.abs(t);n>52;n=n/52|0)s=B(n%52)+s;return s=B(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},q=(t,e=3)=>{const s=at(5381,JSON.stringify(t))>>>0;return ct(s,e)};function E(t){return t?typeof t!="string"?E(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 lt=(t,e)=>{if(typeof t!="string")return{result:t};if(!e)return{result:t};const s=[];return Object.values(e).forEach(n=>{const{pattern:r,transform:c}=n;t=t.replace(r,m=>{const{value:a,css:j}=c(m);return j&&s.push(j),a})}),{result:t,additionalCss:s}},G=t=>typeof t!="string"?{result:t}:/\{[^{}]+\}/g.test(t)?{result:t.replace(/\{([^{}]+)\}/g,(...n)=>`var(--${E(n[1].replaceAll(".","-"))})`)}:{result:t},T=(t,e,s,n)=>{if(!t)return"";const r=[],c=Object.entries(t).reduce((a,[j,o])=>{const y=j.trim();if(typeof o=="function"&&(o=o()),typeof o=="object"){if(!o)return a;if(y==="variants")return Object.entries(o).forEach(([f,i])=>{i&&Object.entries(i).forEach(([h,p])=>{if(!p)return;const P=`${e}.${f}-${h}`,C=T(p,P);r.push(C)})}),a;if(y==="defaultVariants")return a;if(y==="compoundVariants")return o.forEach(f=>{const{css:i,...h}=f,p=Object.entries(h).reduce((C,[S,x])=>`${C}.${S}-${x}`,e),P=T(i,p);r.push(P)}),a;if(y.startsWith("@")){const f=T(o,e),i=`${y} {
2
- ${f.replace(`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const ot=require("esbuild"),rt=require("child_process"),l=require("path"),f=require("fs"),Z=require("fs/promises"),V=require("winston");var R=typeof document<"u"?document.currentScript:null;function it(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 U=it(ot),B=t=>String.fromCharCode(t+(t>25?39:97)),ct=(t,e)=>{let s="",n;for(n=Math.abs(t);n>52;n=n/52|0)s=B(n%52)+s;return s=B(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},q=(t,e=3)=>{const s=at(5381,JSON.stringify(t))>>>0;return ct(s,e)};function E(t){return t?typeof t!="string"?E(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 lt=(t,e)=>{if(typeof t!="string")return{result:t};if(!e)return{result:t};const s=[];return Object.values(e).forEach(n=>{const{pattern:r,transform:c}=n;t=t.replace(r,g=>{const{value:a,css:h}=c(g);return h&&s.push(h),a})}),{result:t,additionalCss:s}},G=t=>typeof t!="string"?{result:t}:/\{[^{}]+\}/g.test(t)?{result:t.replace(/\{([^{}]+)\}/g,(...n)=>`var(--${E(n[1].replaceAll(".","-"))})`)}:{result:t},O=(t,e,s,n)=>{if(!t)return"";const r=[],c=Object.entries(t).reduce((a,[h,o])=>{const y=h.trim();if(typeof o=="function"&&(o=o()),typeof o=="object"){if(!o)return a;if(y==="variants")return Object.entries(o).forEach(([p,i])=>{i&&Object.entries(i).forEach(([j,d])=>{if(!d)return;const P=`${e}.${p}-${j}`,k=O(d,P);r.push(k)})}),a;if(y==="defaultVariants")return a;if(y==="compoundVariants")return o.forEach(p=>{const{css:i,...j}=p,d=Object.entries(j).reduce((k,[$,x])=>`${k}.${$}-${x}`,e),P=O(i,d);r.push(P)}),a;if(y.startsWith("@")){const p=O(o,e),i=`${y} {
2
+ ${p.replace(`
3
3
  `,`
4
4
  `)}
5
- }`;return r.push(i),a}const g=j.includes("&")?y.replace("&",e):y.startsWith(":")?`${e}${y}`:`${e} ${y}`,b=T(o,g);return r.push(b),a}const $=y.startsWith("-")?y:E(y),w=(g,b=";")=>a=`${a}${g}${b}`,k=g=>w(`${$}:${g}`);if(typeof o=="number")return k(o);if(typeof o!="string")if("toString"in o)o=o.toString();else return a;const{modifiers:l}={},O=function*(){yield G(o),yield lt(o,l)}();for(const{result:g,additionalCss:b=[]}of O)o=g,b.forEach(f=>{const i=T(f,"");w(i,"")});return k(o)},"");if(!c)return r.join(`
6
- `);if(!e)return c;let m="";return m=`${e} { ${c} }`,[m,...r].join(`
7
- `)},H=(t,e=[])=>{if(!t)return"";const s=[],n={};if(Object.entries(t).forEach(([r,c])=>{if(typeof c=="object"){if(!c)return;const m=r.trim(),a=H(c,[...e,m]);s.push(a)}else n[r]=c}),Object.keys(n).length){const r=e.map(E).join("-"),c=T(n,`.${r}`);s.push(c)}return s.join(`
8
- `)},K=t=>{if(!t||t==="/")throw new Error("Could not find package.json file");const e=u.join(t,"package.json");return d.existsSync(e)?e:K(u.join(t,".."))},ut=async t=>{const e=K(t);return await L.readFile(e,"utf-8").then(JSON.parse).catch(()=>{})},ft=async t=>{const e=await ut(t);if(e)return e.type};let D;const X=async t=>{if(D)return D;const e=await ft(t);return e==="module"?D="esm":(e==="commonjs"||(typeof document>"u"?require("url").pathToFileURL(__filename).href:R&&R.tagName.toUpperCase()==="SCRIPT"&&R.src||new URL("index.cjs",document.baseURI).href).endsWith(".cjs"))&&(D="cjs"),D||"esm"},Z=V.createLogger({level:"debug",format:V.format.combine(V.format.colorize(),V.format.cli()),transports:[new V.transports.Console({})]}),A={externalModules:[]},Y=t=>{if(A.externalModules.length>0)return A.externalModules;const e=u.join(t,"salty.config.ts"),n=d.readFileSync(e,"utf8").match(/externalModules:\s?\[(.*)\]/);if(!n)return[];const r=n[1].split(",").map(c=>c.replace(/['"`]/g,"").trim());return A.externalModules=r,r},J=t=>u.join(t,"./saltygen"),pt=["salty","css","styles","styled"],dt=(t=[])=>new RegExp(`\\.(${[...pt,...t].join("|")})\\.`),_=(t,e=[])=>dt(e).test(t),yt=async t=>{const e=J(t),s=u.join(t,"salty.config.ts"),n=u.join(e,"salty.config.js"),r=await X(t),c=Y(t);await U.build({entryPoints:[s],minify:!0,treeShaking:!0,bundle:!0,outfile:n,format:r,external:c});const m=Date.now(),{config:a}=await import(`${n}?t=${m}`);return a},Q=async t=>{const e=await yt(t),s=new Set,n=(f,i=[])=>f?Object.entries(f).flatMap(([h,p])=>{if(!p)return;if(typeof p=="object")return n(p,[...i,h]);const P=[...i,h].join(".");s.add(`"${P}"`);const C=[...i.map(E),E(h)].join("-"),{result:S}=G(p);return`--${C}: ${S};`}):[],r=f=>f?Object.entries(f).flatMap(([i,h])=>{const p=n(h);return i==="base"?p.join(""):`${i} { ${p.join("")} }`}):[],c=f=>f?Object.entries(f).flatMap(([i,h])=>Object.entries(h).flatMap(([p,P])=>{const C=n(P,[i]),S=`.${i}-${p}, [data-${i}="${p}"]`,x=C.join("");return`${S} { ${x} }`})):[],m=n(e.variables),a=r(e.responsiveVariables),j=c(e.conditionalVariables),o=J(t),y=u.join(o,"css/variables.css"),$=`:root { ${m.join("")} ${a.join("")} } ${j.join("")}`;d.writeFileSync(y,$);const w=u.join(o,"types/css-tokens.d.ts"),l=`type VariableTokens = ${[...s].join("|")||'""'}; type PropertyValueToken = \`{\${VariableTokens}}\``;d.writeFileSync(w,l);const F=u.join(o,"css/global.css"),O=T(e.global,"");d.writeFileSync(F,O);const g=u.join(o,"css/templates.css"),b=H(e.templates);d.writeFileSync(g,b)},I=async(t,e,s)=>{const n=q(e),r=u.join(s,"js",n+".js"),c=await X(t),m=Y(t);await U.build({entryPoints:[e],minify:!0,treeShaking:!0,bundle:!0,outfile:r,format:c,target:["es2022"],keepNames:!0,external:m});const a=Date.now();return await import(`${r}?t=${a}`)},W=async t=>{const e=J(t),s=u.join(e,"salty.config.js"),{config:n}=await import(s);return n},v=()=>{try{return process.env.NODE_ENV==="production"}catch{return!1}},gt=async(t,e=v())=>{try{e?Z.info("Generating CSS in production mode! 🔥"):Z.info("Generating CSS in development mode! 🚀");const s=[],n=[],r=J(t),c=u.join(r,"index.css");(()=>{d.existsSync(r)&&rt.execSync("rm -rf "+r),d.mkdirSync(r),d.mkdirSync(u.join(r,"css")),d.mkdirSync(u.join(r,"types"))})(),await Q(t);const a=await W(t);async function j(l,F){const O=["node_modules","saltygen"],g=d.statSync(l);if(g.isDirectory()){const b=d.readdirSync(l);if(O.some(i=>l.includes(i)))return;await Promise.all(b.map(i=>j(u.join(l,i),u.join(F,i))))}else if(g.isFile()&&_(l)){const f=await I(t,l,r),i=[];Object.entries(f).forEach(([C,S])=>{if(S.isKeyframes&&S.css){const z=`${S.animationName}.css`,st=`css/${z}`,nt=u.join(r,st);s.push(z),d.writeFileSync(nt,S.css);return}if(!S.generator)return;const x=S.generator._withBuildContext({name:C,config:a,prod:e}),M=`${x.hash}-${x.priority}.css`;n[x.priority]||(n[x.priority]=[]),n[x.priority].push(M),i.push(M);const N=`css/${M}`,et=u.join(r,N);d.writeFileSync(et,x.css)});const h=i.map(C=>`@import url('./${C}');`).join(`
9
- `),p=q(l,6),P=u.join(r,`css/${p}.css`);d.writeFileSync(P,h)}}await j(t,r);const o=s.map(l=>`@import url('./css/${l}');`).join(`
10
- `);let k=`@layer l0, l1, l2, l3, l4, l5, l6, l7, l8;
5
+ }`;return r.push(i),a}const m=h.includes("&")?y.replace("&",e):y.startsWith(":")?`${e}${y}`:`${e} ${y}`,S=O(o,m);return r.push(S),a}const b=y.startsWith("-")?y:E(y),w=(m,S=";")=>a=`${a}${m}${S}`,C=m=>w(`${b}:${m}`);if(typeof o=="number")return C(o);if(typeof o!="string")if("toString"in o)o=o.toString();else return a;const{modifiers:u}={},D=function*(){yield G(o),yield lt(o,u)}();for(const{result:m,additionalCss:S=[]}of D)o=m,S.forEach(p=>{const i=O(p,"");w(i,"")});return C(o)},"");if(!c)return r.join(`
6
+ `);if(!e)return c;let g="";return g=`${e} { ${c} }`,[g,...r].join(`
7
+ `)},H=(t,e=[])=>{if(!t)return"";const s=[],n={};if(Object.entries(t).forEach(([r,c])=>{if(typeof c=="object"){if(!c)return;const g=r.trim(),a=H(c,[...e,g]);s.push(a)}else n[r]=c}),Object.keys(n).length){const r=e.map(E).join("-"),c=O(n,`.${r}`);s.push(c)}return s.join(`
8
+ `)},K=t=>{if(!t||t==="/")throw new Error("Could not find package.json file");const e=l.join(t,"package.json");return f.existsSync(e)?e:K(l.join(t,".."))},ut=async t=>{const e=K(t);return await Z.readFile(e,"utf-8").then(JSON.parse).catch(()=>{})},ft=async t=>{const e=await ut(t);if(e)return e.type};let M;const X=async t=>{if(M)return M;const e=await ft(t);return e==="module"?M="esm":(e==="commonjs"||(typeof document>"u"?require("url").pathToFileURL(__filename).href:R&&R.tagName.toUpperCase()==="SCRIPT"&&R.src||new URL("index.cjs",document.baseURI).href).endsWith(".cjs"))&&(M="cjs"),M||"esm"},L=V.createLogger({level:"debug",format:V.format.combine(V.format.colorize(),V.format.cli()),transports:[new V.transports.Console({})]}),A={externalModules:[]},Y=t=>{if(A.externalModules.length>0)return A.externalModules;const e=l.join(t,"salty.config.ts"),n=f.readFileSync(e,"utf8").match(/externalModules:\s?\[(.*)\]/);if(!n)return[];const r=n[1].split(",").map(c=>c.replace(/['"`]/g,"").trim());return A.externalModules=r,r},J=t=>l.join(t,"./saltygen"),pt=["salty","css","styles","styled"],dt=(t=[])=>new RegExp(`\\.(${[...pt,...t].join("|")})\\.`),_=(t,e=[])=>dt(e).test(t),yt=async t=>{const e=J(t),s=l.join(t,"salty.config.ts"),n=l.join(e,"salty.config.js"),r=await X(t),c=Y(t);await U.build({entryPoints:[s],minify:!0,treeShaking:!0,bundle:!0,outfile:n,format:r,external:c});const g=Date.now(),{config:a}=await import(`${n}?t=${g}`);return a},v=async t=>{const e=await yt(t),s=new Set,n=(p,i=[])=>p?Object.entries(p).flatMap(([j,d])=>{if(!d)return;if(typeof d=="object")return n(d,[...i,j]);const P=[...i,j].join(".");s.add(`"${P}"`);const k=[...i.map(E),E(j)].join("-"),{result:$}=G(d);return`--${k}: ${$};`}):[],r=p=>p?Object.entries(p).flatMap(([i,j])=>{const d=n(j);return i==="base"?d.join(""):`${i} { ${d.join("")} }`}):[],c=p=>p?Object.entries(p).flatMap(([i,j])=>Object.entries(j).flatMap(([d,P])=>{const k=n(P,[i]),$=`.${i}-${d}, [data-${i}="${d}"]`,x=k.join("");return`${$} { ${x} }`})):[],g=n(e.variables),a=r(e.responsiveVariables),h=c(e.conditionalVariables),o=J(t),y=l.join(o,"css/variables.css"),b=`:root { ${g.join("")} ${a.join("")} } ${h.join("")}`;f.writeFileSync(y,b);const w=l.join(o,"types/css-tokens.d.ts"),u=`type VariableTokens = ${[...s].join("|")||'""'}; type PropertyValueToken = \`{\${VariableTokens}}\``;f.writeFileSync(w,u);const F=l.join(o,"css/global.css"),D=O(e.global,"");f.writeFileSync(F,D);const m=l.join(o,"css/templates.css"),S=H(e.templates);f.writeFileSync(m,S)},I=async(t,e,s)=>{const n=q(e),r=l.join(s,"./temp");f.existsSync(r)||f.mkdirSync(r);const c=l.parse(e);let g=f.readFileSync(e,"utf8");g=g.replace("styled(DynaLink","styled('div'");const a=l.join(s,"js",n+".js"),h=Y(t),o=await X(t);await U.build({stdin:{contents:g,sourcefile:c.base,resolveDir:c.dir,loader:"ts"},minify:!1,treeShaking:!0,bundle:!0,outfile:a,format:o,target:["node20"],keepNames:!0,external:h,packages:"external"});const y=Date.now();return await import(`${a}?t=${y}`)},W=async t=>{const e=J(t),s=l.join(e,"salty.config.js"),{config:n}=await import(s);return n},Q=()=>{try{return process.env.NODE_ENV==="production"}catch{return!1}},gt=async(t,e=Q())=>{try{e?L.info("Generating CSS in production mode! 🔥"):L.info("Generating CSS in development mode! 🚀");const s=[],n=[],r=J(t),c=l.join(r,"index.css");(()=>{f.existsSync(r)&&rt.execSync("rm -rf "+r),f.mkdirSync(r),f.mkdirSync(l.join(r,"css")),f.mkdirSync(l.join(r,"types"))})(),await v(t);const a=await W(t);async function h(u,F){const D=["node_modules","saltygen"],m=f.statSync(u);if(m.isDirectory()){const S=f.readdirSync(u);if(D.some(i=>u.includes(i)))return;await Promise.all(S.map(i=>h(l.join(u,i),l.join(F,i))))}else if(m.isFile()&&_(u)){const p=await I(t,u,r),i=[];Object.entries(p).forEach(([k,$])=>{if($.isKeyframes&&$.css){const z=`${$.animationName}.css`,st=`css/${z}`,nt=l.join(r,st);s.push(z),f.writeFileSync(nt,$.css);return}if(!$.generator)return;const x=$.generator._withBuildContext({name:k,config:a,prod:e}),T=`${x.hash}-${x.priority}.css`;n[x.priority]||(n[x.priority]=[]),n[x.priority].push(T),i.push(T);const N=`css/${T}`,et=l.join(r,N);f.writeFileSync(et,x.css)});const j=i.map(k=>`@import url('./${k}');`).join(`
9
+ `),d=q(u,6),P=l.join(r,`css/${d}.css`);f.writeFileSync(P,j)}}await h(t,r);const o=s.map(u=>`@import url('./css/${u}');`).join(`
10
+ `);let C=`@layer l0, l1, l2, l3, l4, l5, l6, l7, l8;
11
11
 
12
- ${["variables.css","global.css","templates.css"].filter(l=>{try{return d.readFileSync(u.join(r,"css",l),"utf8").length>0}catch{return!1}}).map(l=>`@import url('./css/${l}');`).join(`
12
+ ${["variables.css","global.css","templates.css"].filter(u=>{try{return f.readFileSync(l.join(r,"css",u),"utf8").length>0}catch{return!1}}).map(u=>`@import url('./css/${u}');`).join(`
13
13
  `)}
14
- ${o}`;if(a.importStrategy!=="component"){const l=n.flat().map(F=>`@import url('./css/${F}');`).join(`
15
- `);k+=l}d.writeFileSync(c,k)}catch(s){console.error(s)}},mt=async(t,e)=>{try{const s=[],n=u.join(t,"./saltygen"),r=u.join(n,"index.css");if(_(e)){const m=await W(t),a=await I(t,e,n);Object.entries(a).forEach(([w,k])=>{if(!k.generator)return;const l=k.generator._withBuildContext({name:w,config:m}),F=`${l.hash}-${l.priority}.css`,O=`css/${F}`,g=u.join(n,O);s.push(F),d.writeFileSync(g,l.css)});const j=d.readFileSync(r,"utf8").split(`
16
- `),o=s.map(w=>`@import url('../saltygen/css/${w}');`),$=[...new Set([...j,...o])].join(`
17
- `);d.writeFileSync(r,$)}}catch(s){console.error(s)}},ht=async(t,e,s=v())=>{try{const n=u.join(t,"./saltygen");if(_(e)){const c=d.readFileSync(e,"utf8");c.replace(/^(?!export\s)const\s.*/gm,$=>`export ${$}`)!==c&&await L.writeFile(e,c);const a=await W(t),j=await I(t,e,n);let o=c;Object.entries(j).forEach(([$,w])=>{var M;if(w.isKeyframes||!w.generator)return;const k=w.generator._withBuildContext({name:$,config:a,prod:s}),l=new RegExp(`\\s${$}[=\\s]+[^()]+styled\\(([^,]+),`,"g").exec(c);if(!l)return console.error("Could not find the original declaration");const F=(M=l.at(1))==null?void 0:M.trim(),O=new RegExp(`\\s${$}[=\\s]+styled\\(`,"g").exec(o);if(!O)return console.error("Could not find the original declaration");const{index:g}=O;let b=!1;const f=setTimeout(()=>b=!0,5e3);let i=0,h=!1,p=0;for(;!h&&!b;){const N=o[g+i];N==="("&&p++,N===")"&&p--,p===0&&N===")"&&(h=!0),i>o.length&&(b=!0),i++}if(!b)clearTimeout(f);else throw new Error("Failed to find the end of the styled call and timed out");const P=g+i,C=o.slice(g,P),S=o,x=` ${$} = styled(${F}, "${k.classNames}", ${JSON.stringify(k.props)});`;o=o.replace(C,x),S===o&&console.error("Minimize file failed to change content",{name:$,tagName:F})});const y=q(e,6);return a.importStrategy==="component"&&(o=`import '../../saltygen/css/${y}.css';
18
- ${o}`),o=o.replace("{ styled }","{ styledClient as styled }"),o=o.replace("@salty-css/react/styled","@salty-css/react/styled-client"),o}}catch(n){console.error("Error in minimizeFile:",n)}},tt=t=>({name:"stylegen",buildStart:()=>gt(t),load:async e=>{if(_(e))return await ht(t,e)},watchChange:{handler:async e=>{_(e)&&await mt(t,e),e.includes("salty.config")&&await Q(t)}}});exports.default=tt;exports.saltyPlugin=tt;
14
+ ${o}`;if(a.importStrategy!=="component"){const u=n.flat().map(F=>`@import url('./css/${F}');`).join(`
15
+ `);C+=u}f.writeFileSync(c,C)}catch(s){console.error(s)}},mt=async(t,e)=>{try{const s=[],n=l.join(t,"./saltygen"),r=l.join(n,"index.css");if(_(e)){const g=await W(t),a=await I(t,e,n);Object.entries(a).forEach(([w,C])=>{if(!C.generator)return;const u=C.generator._withBuildContext({name:w,config:g}),F=`${u.hash}-${u.priority}.css`,D=`css/${F}`,m=l.join(n,D);s.push(F),f.writeFileSync(m,u.css)});const h=f.readFileSync(r,"utf8").split(`
16
+ `),o=s.map(w=>`@import url('../saltygen/css/${w}');`),b=[...new Set([...h,...o])].join(`
17
+ `);f.writeFileSync(r,b)}}catch(s){console.error(s)}},ht=async(t,e,s=Q())=>{try{const n=l.join(t,"./saltygen");if(_(e)){const c=f.readFileSync(e,"utf8");c.replace(/^(?!export\s)const\s.*/gm,b=>`export ${b}`)!==c&&await Z.writeFile(e,c);const a=await W(t),h=await I(t,e,n);let o=c;Object.entries(h).forEach(([b,w])=>{var T;if(w.isKeyframes||!w.generator)return;const C=w.generator._withBuildContext({name:b,config:a,prod:s}),u=new RegExp(`\\s${b}[=\\s]+[^()]+styled\\(([^,]+),`,"g").exec(c);if(!u)return console.error("Could not find the original declaration");const F=(T=u.at(1))==null?void 0:T.trim(),D=new RegExp(`\\s${b}[=\\s]+styled\\(`,"g").exec(o);if(!D)return console.error("Could not find the original declaration");const{index:m}=D;let S=!1;const p=setTimeout(()=>S=!0,5e3);let i=0,j=!1,d=0;for(;!j&&!S;){const N=o[m+i];N==="("&&d++,N===")"&&d--,d===0&&N===")"&&(j=!0),i>o.length&&(S=!0),i++}if(!S)clearTimeout(p);else throw new Error("Failed to find the end of the styled call and timed out");const P=m+i,k=o.slice(m,P),$=o,x=` ${b} = styled(${F}, "${C.classNames}", ${JSON.stringify(C.props)});`;o=o.replace(k,x),$===o&&console.error("Minimize file failed to change content",{name:b,tagName:F})});const y=q(e,6);return a.importStrategy==="component"&&(o=`import '../../saltygen/css/${y}.css';
18
+ ${o}`),o=o.replace("{ styled }","{ styledClient as styled }"),o=o.replace("@salty-css/react/styled","@salty-css/react/styled-client"),o}}catch(n){console.error("Error in minimizeFile:",n)}},tt=t=>({name:"stylegen",buildStart:()=>gt(t),load:async e=>{if(_(e))return await ht(t,e)},watchChange:{handler:async e=>{_(e)&&await mt(t,e),e.includes("salty.config")&&await v(t)}}});exports.default=tt;exports.saltyPlugin=tt;
package/index.js CHANGED
@@ -1,113 +1,113 @@
1
1
  import * as K from "esbuild";
2
2
  import { execSync as ot } from "child_process";
3
- import { join as f } from "path";
4
- import { existsSync as L, writeFileSync as E, mkdirSync as R, statSync as rt, readdirSync as ct, readFileSync as J } from "fs";
5
- import { readFile as it, writeFile as at } from "fs/promises";
6
- import { createLogger as lt, format as _, transports as ft } from "winston";
7
- const G = (t) => String.fromCharCode(t + (t > 25 ? 39 : 97)), ut = (t, e) => {
3
+ import { join as f, parse as rt } from "path";
4
+ import { existsSync as B, writeFileSync as P, mkdirSync as A, statSync as it, readdirSync as ct, readFileSync as J } from "fs";
5
+ import { readFile as at, writeFile as lt } from "fs/promises";
6
+ import { createLogger as ft, format as _, transports as pt } from "winston";
7
+ const H = (t) => String.fromCharCode(t + (t > 25 ? 39 : 97)), ut = (t, e) => {
8
8
  let s = "", o;
9
- for (o = Math.abs(t); o > 52; o = o / 52 | 0) s = G(o % 52) + s;
10
- return s = G(o % 52) + s, s.length < e ? s = s.padStart(e, "a") : s.length > e && (s = s.slice(-e)), s;
11
- }, pt = (t, e) => {
9
+ for (o = Math.abs(t); o > 52; o = o / 52 | 0) s = H(o % 52) + s;
10
+ return s = H(o % 52) + s, s.length < e ? s = s.padStart(e, "a") : s.length > e && (s = s.slice(-e)), s;
11
+ }, gt = (t, e) => {
12
12
  let s = e.length;
13
13
  for (; s; ) t = t * 33 ^ e.charCodeAt(--s);
14
14
  return t;
15
- }, B = (t, e = 3) => {
16
- const s = pt(5381, JSON.stringify(t)) >>> 0;
15
+ }, I = (t, e = 3) => {
16
+ const s = gt(5381, JSON.stringify(t)) >>> 0;
17
17
  return ut(s, e);
18
18
  };
19
19
  function N(t) {
20
20
  return t ? typeof t != "string" ? N(String(t)) : t.replace(/\s/g, "-").replace(/[A-Z](?:(?=[^A-Z])|[A-Z]*(?=[A-Z][^A-Z]|$))/g, (e, s) => (s > 0 ? "-" : "") + e.toLowerCase()) : "";
21
21
  }
22
- const gt = (t, e) => {
22
+ const dt = (t, e) => {
23
23
  if (typeof t != "string") return { result: t };
24
24
  if (!e) return { result: t };
25
25
  const s = [];
26
26
  return Object.values(e).forEach((o) => {
27
- const { pattern: r, transform: i } = o;
27
+ const { pattern: r, transform: c } = o;
28
28
  t = t.replace(r, (d) => {
29
- const { value: a, css: h } = i(d);
30
- return h && s.push(h), a;
29
+ const { value: a, css: m } = c(d);
30
+ return m && s.push(m), a;
31
31
  });
32
32
  }), { result: t, additionalCss: s };
33
- }, q = (t) => typeof t != "string" ? { result: t } : /\{[^{}]+\}/g.test(t) ? { result: t.replace(/\{([^{}]+)\}/g, (...o) => `var(--${N(o[1].replaceAll(".", "-"))})`) } : { result: t }, D = (t, e, s, o) => {
33
+ }, q = (t) => typeof t != "string" ? { result: t } : /\{[^{}]+\}/g.test(t) ? { result: t.replace(/\{([^{}]+)\}/g, (...o) => `var(--${N(o[1].replaceAll(".", "-"))})`) } : { result: t }, E = (t, e, s, o) => {
34
34
  if (!t) return "";
35
- const r = [], i = Object.entries(t).reduce((a, [h, n]) => {
36
- const g = h.trim();
35
+ const r = [], c = Object.entries(t).reduce((a, [m, n]) => {
36
+ const g = m.trim();
37
37
  if (typeof n == "function" && (n = n()), typeof n == "object") {
38
38
  if (!n) return a;
39
39
  if (g === "variants")
40
- return Object.entries(n).forEach(([u, c]) => {
41
- c && Object.entries(c).forEach(([m, p]) => {
42
- if (!p) return;
43
- const x = `${e}.${u}-${m}`, F = D(p, x);
40
+ return Object.entries(n).forEach(([p, i]) => {
41
+ i && Object.entries(i).forEach(([h, u]) => {
42
+ if (!u) return;
43
+ const x = `${e}.${p}-${h}`, F = E(u, x);
44
44
  r.push(F);
45
45
  });
46
46
  }), a;
47
47
  if (g === "defaultVariants")
48
48
  return a;
49
49
  if (g === "compoundVariants")
50
- return n.forEach((u) => {
51
- const { css: c, ...m } = u, p = Object.entries(m).reduce((F, [w, k]) => `${F}.${w}-${k}`, e), x = D(c, p);
50
+ return n.forEach((p) => {
51
+ const { css: i, ...h } = p, u = Object.entries(h).reduce((F, [w, k]) => `${F}.${w}-${k}`, e), x = E(i, u);
52
52
  r.push(x);
53
53
  }), a;
54
54
  if (g.startsWith("@")) {
55
- const u = D(n, e), c = `${g} {
56
- ${u.replace(`
55
+ const p = E(n, e), i = `${g} {
56
+ ${p.replace(`
57
57
  `, `
58
58
  `)}
59
59
  }`;
60
- return r.push(c), a;
60
+ return r.push(i), a;
61
61
  }
62
- const y = h.includes("&") ? g.replace("&", e) : g.startsWith(":") ? `${e}${g}` : `${e} ${g}`, $ = D(n, y);
63
- return r.push($), a;
62
+ const y = m.includes("&") ? g.replace("&", e) : g.startsWith(":") ? `${e}${g}` : `${e} ${g}`, b = E(n, y);
63
+ return r.push(b), a;
64
64
  }
65
- const b = g.startsWith("-") ? g : N(g), S = (y, $ = ";") => a = `${a}${y}${$}`, C = (y) => S(`${b}:${y}`);
65
+ const $ = g.startsWith("-") ? g : N(g), S = (y, b = ";") => a = `${a}${y}${b}`, C = (y) => S(`${$}:${y}`);
66
66
  if (typeof n == "number") return C(n);
67
67
  if (typeof n != "string")
68
68
  if ("toString" in n) n = n.toString();
69
69
  else return a;
70
- const { modifiers: l } = {}, P = function* () {
71
- yield q(n), yield gt(n, l);
70
+ const { modifiers: l } = {}, D = function* () {
71
+ yield q(n), yield dt(n, l);
72
72
  }();
73
- for (const { result: y, additionalCss: $ = [] } of P)
74
- n = y, $.forEach((u) => {
75
- const c = D(u, "");
76
- S(c, "");
73
+ for (const { result: y, additionalCss: b = [] } of D)
74
+ n = y, b.forEach((p) => {
75
+ const i = E(p, "");
76
+ S(i, "");
77
77
  });
78
78
  return C(n);
79
79
  }, "");
80
- if (!i) return r.join(`
80
+ if (!c) return r.join(`
81
81
  `);
82
- if (!e) return i;
82
+ if (!e) return c;
83
83
  let d = "";
84
- return d = `${e} { ${i} }`, [d, ...r].join(`
84
+ return d = `${e} { ${c} }`, [d, ...r].join(`
85
85
  `);
86
86
  }, U = (t, e = []) => {
87
87
  if (!t) return "";
88
88
  const s = [], o = {};
89
- if (Object.entries(t).forEach(([r, i]) => {
90
- if (typeof i == "object") {
91
- if (!i) return;
92
- const d = r.trim(), a = U(i, [...e, d]);
89
+ if (Object.entries(t).forEach(([r, c]) => {
90
+ if (typeof c == "object") {
91
+ if (!c) return;
92
+ const d = r.trim(), a = U(c, [...e, d]);
93
93
  s.push(a);
94
94
  } else
95
- o[r] = i;
95
+ o[r] = c;
96
96
  }), Object.keys(o).length) {
97
- const r = e.map(N).join("-"), i = D(o, `.${r}`);
98
- s.push(i);
97
+ const r = e.map(N).join("-"), c = E(o, `.${r}`);
98
+ s.push(c);
99
99
  }
100
100
  return s.join(`
101
101
  `);
102
102
  }, X = (t) => {
103
103
  if (!t || t === "/") throw new Error("Could not find package.json file");
104
104
  const e = f(t, "package.json");
105
- return L(e) ? e : X(f(t, ".."));
105
+ return B(e) ? e : X(f(t, ".."));
106
106
  }, yt = async (t) => {
107
107
  const e = X(t);
108
- return await it(e, "utf-8").then(JSON.parse).catch(() => {
108
+ return await at(e, "utf-8").then(JSON.parse).catch(() => {
109
109
  });
110
- }, dt = async (t) => {
110
+ }, mt = async (t) => {
111
111
  const e = await yt(t);
112
112
  if (e)
113
113
  return e.type;
@@ -115,22 +115,22 @@ const gt = (t, e) => {
115
115
  let T;
116
116
  const Y = async (t) => {
117
117
  if (T) return T;
118
- const e = await dt(t);
118
+ const e = await mt(t);
119
119
  return e === "module" ? T = "esm" : (e === "commonjs" || import.meta.url.endsWith(".cjs")) && (T = "cjs"), T || "esm";
120
- }, H = lt({
120
+ }, L = ft({
121
121
  level: "debug",
122
122
  format: _.combine(_.colorize(), _.cli()),
123
- transports: [new ft.Console({})]
123
+ transports: [new pt.Console({})]
124
124
  }), W = {
125
125
  externalModules: []
126
126
  }, Q = (t) => {
127
127
  if (W.externalModules.length > 0) return W.externalModules;
128
128
  const e = f(t, "salty.config.ts"), o = J(e, "utf8").match(/externalModules:\s?\[(.*)\]/);
129
129
  if (!o) return [];
130
- const r = o[1].split(",").map((i) => i.replace(/['"`]/g, "").trim());
130
+ const r = o[1].split(",").map((c) => c.replace(/['"`]/g, "").trim());
131
131
  return W.externalModules = r, r;
132
- }, A = (t) => f(t, "./saltygen"), mt = ["salty", "css", "styles", "styled"], ht = (t = []) => new RegExp(`\\.(${[...mt, ...t].join("|")})\\.`), V = (t, e = []) => ht(e).test(t), $t = async (t) => {
133
- const e = A(t), s = f(t, "salty.config.ts"), o = f(e, "salty.config.js"), r = await Y(t), i = Q(t);
132
+ }, R = (t) => f(t, "./saltygen"), ht = ["salty", "css", "styles", "styled"], $t = (t = []) => new RegExp(`\\.(${[...ht, ...t].join("|")})\\.`), V = (t, e = []) => $t(e).test(t), bt = async (t) => {
133
+ const e = R(t), s = f(t, "salty.config.ts"), o = f(e, "salty.config.js"), r = await Y(t), c = Q(t);
134
134
  await K.build({
135
135
  entryPoints: [s],
136
136
  minify: !0,
@@ -138,49 +138,60 @@ const Y = async (t) => {
138
138
  bundle: !0,
139
139
  outfile: o,
140
140
  format: r,
141
- external: i
141
+ external: c
142
142
  });
143
143
  const d = Date.now(), { config: a } = await import(`${o}?t=${d}`);
144
144
  return a;
145
145
  }, v = async (t) => {
146
- const e = await $t(t), s = /* @__PURE__ */ new Set(), o = (u, c = []) => u ? Object.entries(u).flatMap(([m, p]) => {
147
- if (!p) return;
148
- if (typeof p == "object") return o(p, [...c, m]);
149
- const x = [...c, m].join(".");
146
+ const e = await bt(t), s = /* @__PURE__ */ new Set(), o = (p, i = []) => p ? Object.entries(p).flatMap(([h, u]) => {
147
+ if (!u) return;
148
+ if (typeof u == "object") return o(u, [...i, h]);
149
+ const x = [...i, h].join(".");
150
150
  s.add(`"${x}"`);
151
- const F = [...c.map(N), N(m)].join("-"), { result: w } = q(p);
151
+ const F = [...i.map(N), N(h)].join("-"), { result: w } = q(u);
152
152
  return `--${F}: ${w};`;
153
- }) : [], r = (u) => u ? Object.entries(u).flatMap(([c, m]) => {
154
- const p = o(m);
155
- return c === "base" ? p.join("") : `${c} { ${p.join("")} }`;
156
- }) : [], i = (u) => u ? Object.entries(u).flatMap(([c, m]) => Object.entries(m).flatMap(([p, x]) => {
157
- const F = o(x, [c]), w = `.${c}-${p}, [data-${c}="${p}"]`, k = F.join("");
153
+ }) : [], r = (p) => p ? Object.entries(p).flatMap(([i, h]) => {
154
+ const u = o(h);
155
+ return i === "base" ? u.join("") : `${i} { ${u.join("")} }`;
156
+ }) : [], c = (p) => p ? Object.entries(p).flatMap(([i, h]) => Object.entries(h).flatMap(([u, x]) => {
157
+ const F = o(x, [i]), w = `.${i}-${u}, [data-${i}="${u}"]`, k = F.join("");
158
158
  return `${w} { ${k} }`;
159
- })) : [], d = o(e.variables), a = r(e.responsiveVariables), h = i(e.conditionalVariables), n = A(t), g = f(n, "css/variables.css"), b = `:root { ${d.join("")} ${a.join("")} } ${h.join("")}`;
160
- E(g, b);
159
+ })) : [], d = o(e.variables), a = r(e.responsiveVariables), m = c(e.conditionalVariables), n = R(t), g = f(n, "css/variables.css"), $ = `:root { ${d.join("")} ${a.join("")} } ${m.join("")}`;
160
+ P(g, $);
161
161
  const S = f(n, "types/css-tokens.d.ts"), l = `type VariableTokens = ${[...s].join("|") || '""'}; type PropertyValueToken = \`{\${VariableTokens}}\``;
162
- E(S, l);
163
- const j = f(n, "css/global.css"), P = D(e.global, "");
164
- E(j, P);
165
- const y = f(n, "css/templates.css"), $ = U(e.templates);
166
- E(y, $);
167
- }, I = async (t, e, s) => {
168
- const o = B(e), r = f(s, "js", o + ".js"), i = await Y(t), d = Q(t);
162
+ P(S, l);
163
+ const j = f(n, "css/global.css"), D = E(e.global, "");
164
+ P(j, D);
165
+ const y = f(n, "css/templates.css"), b = U(e.templates);
166
+ P(y, b);
167
+ }, Z = async (t, e, s) => {
168
+ const o = I(e), r = f(s, "./temp");
169
+ B(r) || A(r);
170
+ const c = rt(e);
171
+ let d = J(e, "utf8");
172
+ d = d.replace("styled(DynaLink", "styled('div'");
173
+ const a = f(s, "js", o + ".js"), m = Q(t), n = await Y(t);
169
174
  await K.build({
170
- entryPoints: [e],
171
- minify: !0,
175
+ stdin: {
176
+ contents: d,
177
+ sourcefile: c.base,
178
+ resolveDir: c.dir,
179
+ loader: "ts"
180
+ },
181
+ minify: !1,
172
182
  treeShaking: !0,
173
183
  bundle: !0,
174
- outfile: r,
175
- format: i,
176
- target: ["es2022"],
184
+ outfile: a,
185
+ format: n,
186
+ target: ["node20"],
177
187
  keepNames: !0,
178
- external: d
188
+ external: m,
189
+ packages: "external"
179
190
  });
180
- const a = Date.now();
181
- return await import(`${r}?t=${a}`);
182
- }, Z = async (t) => {
183
- const e = A(t), s = f(e, "salty.config.js"), { config: o } = await import(s);
191
+ const g = Date.now();
192
+ return await import(`${a}?t=${g}`);
193
+ }, z = async (t) => {
194
+ const e = R(t), s = f(e, "salty.config.js"), { config: o } = await import(s);
184
195
  return o;
185
196
  }, tt = () => {
186
197
  try {
@@ -188,26 +199,26 @@ const Y = async (t) => {
188
199
  } catch {
189
200
  return !1;
190
201
  }
191
- }, bt = async (t, e = tt()) => {
202
+ }, wt = async (t, e = tt()) => {
192
203
  try {
193
- e ? H.info("Generating CSS in production mode! 🔥") : H.info("Generating CSS in development mode! 🚀");
194
- const s = [], o = [], r = A(t), i = f(r, "index.css");
204
+ e ? L.info("Generating CSS in production mode! 🔥") : L.info("Generating CSS in development mode! 🚀");
205
+ const s = [], o = [], r = R(t), c = f(r, "index.css");
195
206
  (() => {
196
- L(r) && ot("rm -rf " + r), R(r), R(f(r, "css")), R(f(r, "types"));
207
+ B(r) && ot("rm -rf " + r), A(r), A(f(r, "css")), A(f(r, "types"));
197
208
  })(), await v(t);
198
- const a = await Z(t);
199
- async function h(l, j) {
200
- const P = ["node_modules", "saltygen"], y = rt(l);
209
+ const a = await z(t);
210
+ async function m(l, j) {
211
+ const D = ["node_modules", "saltygen"], y = it(l);
201
212
  if (y.isDirectory()) {
202
- const $ = ct(l);
203
- if (P.some((c) => l.includes(c))) return;
204
- await Promise.all($.map((c) => h(f(l, c), f(j, c))));
213
+ const b = ct(l);
214
+ if (D.some((i) => l.includes(i))) return;
215
+ await Promise.all(b.map((i) => m(f(l, i), f(j, i))));
205
216
  } else if (y.isFile() && V(l)) {
206
- const u = await I(t, l, r), c = [];
207
- Object.entries(u).forEach(([F, w]) => {
217
+ const p = await Z(t, l, r), i = [];
218
+ Object.entries(p).forEach(([F, w]) => {
208
219
  if (w.isKeyframes && w.css) {
209
- const z = `${w.animationName}.css`, st = `css/${z}`, nt = f(r, st);
210
- s.push(z), E(nt, w.css);
220
+ const G = `${w.animationName}.css`, st = `css/${G}`, nt = f(r, st);
221
+ s.push(G), P(nt, w.css);
211
222
  return;
212
223
  }
213
224
  if (!w.generator) return;
@@ -216,16 +227,16 @@ const Y = async (t) => {
216
227
  config: a,
217
228
  prod: e
218
229
  }), M = `${k.hash}-${k.priority}.css`;
219
- o[k.priority] || (o[k.priority] = []), o[k.priority].push(M), c.push(M);
230
+ o[k.priority] || (o[k.priority] = []), o[k.priority].push(M), i.push(M);
220
231
  const O = `css/${M}`, et = f(r, O);
221
- E(et, k.css);
232
+ P(et, k.css);
222
233
  });
223
- const m = c.map((F) => `@import url('./${F}');`).join(`
224
- `), p = B(l, 6), x = f(r, `css/${p}.css`);
225
- E(x, m);
234
+ const h = i.map((F) => `@import url('./${F}');`).join(`
235
+ `), u = I(l, 6), x = f(r, `css/${u}.css`);
236
+ P(x, h);
226
237
  }
227
238
  }
228
- await h(t, r);
239
+ await m(t, r);
229
240
  const n = s.map((l) => `@import url('./css/${l}');`).join(`
230
241
  `);
231
242
  let C = `@layer l0, l1, l2, l3, l4, l5, l6, l7, l8;
@@ -244,64 +255,64 @@ ${n}`;
244
255
  `);
245
256
  C += l;
246
257
  }
247
- E(i, C);
258
+ P(c, C);
248
259
  } catch (s) {
249
260
  console.error(s);
250
261
  }
251
- }, wt = async (t, e) => {
262
+ }, St = async (t, e) => {
252
263
  try {
253
264
  const s = [], o = f(t, "./saltygen"), r = f(o, "index.css");
254
265
  if (V(e)) {
255
- const d = await Z(t), a = await I(t, e, o);
266
+ const d = await z(t), a = await Z(t, e, o);
256
267
  Object.entries(a).forEach(([S, C]) => {
257
268
  if (!C.generator) return;
258
269
  const l = C.generator._withBuildContext({
259
270
  name: S,
260
271
  config: d
261
- }), j = `${l.hash}-${l.priority}.css`, P = `css/${j}`, y = f(o, P);
262
- s.push(j), E(y, l.css);
272
+ }), j = `${l.hash}-${l.priority}.css`, D = `css/${j}`, y = f(o, D);
273
+ s.push(j), P(y, l.css);
263
274
  });
264
- const h = J(r, "utf8").split(`
265
- `), n = s.map((S) => `@import url('../saltygen/css/${S}');`), b = [.../* @__PURE__ */ new Set([...h, ...n])].join(`
275
+ const m = J(r, "utf8").split(`
276
+ `), n = s.map((S) => `@import url('../saltygen/css/${S}');`), $ = [.../* @__PURE__ */ new Set([...m, ...n])].join(`
266
277
  `);
267
- E(r, b);
278
+ P(r, $);
268
279
  }
269
280
  } catch (s) {
270
281
  console.error(s);
271
282
  }
272
- }, St = async (t, e, s = tt()) => {
283
+ }, jt = async (t, e, s = tt()) => {
273
284
  try {
274
285
  const o = f(t, "./saltygen");
275
286
  if (V(e)) {
276
- const i = J(e, "utf8");
277
- i.replace(/^(?!export\s)const\s.*/gm, (b) => `export ${b}`) !== i && await at(e, i);
278
- const a = await Z(t), h = await I(t, e, o);
279
- let n = i;
280
- Object.entries(h).forEach(([b, S]) => {
287
+ const c = J(e, "utf8");
288
+ c.replace(/^(?!export\s)const\s.*/gm, ($) => `export ${$}`) !== c && await lt(e, c);
289
+ const a = await z(t), m = await Z(t, e, o);
290
+ let n = c;
291
+ Object.entries(m).forEach(([$, S]) => {
281
292
  var M;
282
293
  if (S.isKeyframes || !S.generator) return;
283
294
  const C = S.generator._withBuildContext({
284
- name: b,
295
+ name: $,
285
296
  config: a,
286
297
  prod: s
287
- }), l = new RegExp(`\\s${b}[=\\s]+[^()]+styled\\(([^,]+),`, "g").exec(i);
298
+ }), l = new RegExp(`\\s${$}[=\\s]+[^()]+styled\\(([^,]+),`, "g").exec(c);
288
299
  if (!l) return console.error("Could not find the original declaration");
289
- const j = (M = l.at(1)) == null ? void 0 : M.trim(), P = new RegExp(`\\s${b}[=\\s]+styled\\(`, "g").exec(n);
290
- if (!P) return console.error("Could not find the original declaration");
291
- const { index: y } = P;
292
- let $ = !1;
293
- const u = setTimeout(() => $ = !0, 5e3);
294
- let c = 0, m = !1, p = 0;
295
- for (; !m && !$; ) {
296
- const O = n[y + c];
297
- O === "(" && p++, O === ")" && p--, p === 0 && O === ")" && (m = !0), c > n.length && ($ = !0), c++;
300
+ const j = (M = l.at(1)) == null ? void 0 : M.trim(), D = new RegExp(`\\s${$}[=\\s]+styled\\(`, "g").exec(n);
301
+ if (!D) return console.error("Could not find the original declaration");
302
+ const { index: y } = D;
303
+ let b = !1;
304
+ const p = setTimeout(() => b = !0, 5e3);
305
+ let i = 0, h = !1, u = 0;
306
+ for (; !h && !b; ) {
307
+ const O = n[y + i];
308
+ O === "(" && u++, O === ")" && u--, u === 0 && O === ")" && (h = !0), i > n.length && (b = !0), i++;
298
309
  }
299
- if (!$) clearTimeout(u);
310
+ if (!b) clearTimeout(p);
300
311
  else throw new Error("Failed to find the end of the styled call and timed out");
301
- const x = y + c, F = n.slice(y, x), w = n, k = ` ${b} = styled(${j}, "${C.classNames}", ${JSON.stringify(C.props)});`;
302
- n = n.replace(F, k), w === n && console.error("Minimize file failed to change content", { name: b, tagName: j });
312
+ const x = y + i, F = n.slice(y, x), w = n, k = ` ${$} = styled(${j}, "${C.classNames}", ${JSON.stringify(C.props)});`;
313
+ n = n.replace(F, k), w === n && console.error("Minimize file failed to change content", { name: $, tagName: j });
303
314
  });
304
- const g = B(e, 6);
315
+ const g = I(e, 6);
305
316
  return a.importStrategy === "component" && (n = `import '../../saltygen/css/${g}.css';
306
317
  ${n}`), n = n.replace("{ styled }", "{ styledClient as styled }"), n = n.replace("@salty-css/react/styled", "@salty-css/react/styled-client"), n;
307
318
  }
@@ -310,14 +321,14 @@ ${n}`), n = n.replace("{ styled }", "{ styledClient as styled }"), n = n.replace
310
321
  }
311
322
  }, Pt = (t) => ({
312
323
  name: "stylegen",
313
- buildStart: () => bt(t),
324
+ buildStart: () => wt(t),
314
325
  load: async (e) => {
315
326
  if (V(e))
316
- return await St(t, e);
327
+ return await jt(t, e);
317
328
  },
318
329
  watchChange: {
319
330
  handler: async (e) => {
320
- V(e) && await wt(t, e), e.includes("salty.config") && await v(t);
331
+ V(e) && await St(t, e), e.includes("salty.config") && await v(t);
321
332
  }
322
333
  }
323
334
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salty-css/vite",
3
- "version": "0.0.1-alpha.101",
3
+ "version": "0.0.1-alpha.102",
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.101"
37
+ "@salty-css/core": "^0.0.1-alpha.102"
38
38
  }
39
39
  }