@salty-css/vite 0.0.1-alpha.179 → 0.0.1-alpha.180
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.cjs +23 -23
- package/index.js +227 -227
- package/package.json +2 -2
package/index.cjs
CHANGED
@@ -1,36 +1,36 @@
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const me=require("esbuild"),Se=require("child_process"),
|
2
|
-
${
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const me=require("esbuild"),Se=require("child_process"),l=require("path"),u=require("fs"),G=require("fs/promises"),H=require("winston");var v=typeof document<"u"?document.currentScript:null;function be(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 oe=be(me),te=e=>String.fromCharCode(e+(e>25?39:97)),je=(e,t)=>{let s="",n;for(n=Math.abs(e);n>52;n=n/52|0)s=te(n%52)+s;return s=te(n%52)+s,s.length<t?s=s.padStart(t,"a"):s.length>t&&(s=s.slice(-t)),s},$e=(e,t)=>{let s=t.length;for(;s;)e=e*33^t.charCodeAt(--s);return e},L=(e,t=5)=>{const s=$e(5381,JSON.stringify(e))>>>0;return je(s,t)};function R(e){return e?typeof e!="string"?R(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 we=(e,t)=>{if(typeof e!="string")return{result:e};if(!t)return{result:e};const s=[];return Object.values(t).forEach(n=>{const{pattern:c,transform:a}=n;e=e.replace(c,i=>{const{value:d,css:r}=a(i);return r&&s.push(r),d})}),{result:e,additionalCss:s}},re=e=>typeof e!="string"?{result:e}:/\{[^{}]+\}/g.test(e)?{result:e.replace(/\{([^{}]+)\}/g,(...n)=>`var(--${R(n[1].replaceAll(".","-"))})`)}:{result:e},M=(e,t,s)=>{if(!e)return"";const n=[],c=Object.entries(e).reduce((i,[d,r])=>{const o=d.trim();if(typeof r=="function"&&(r=r()),typeof r=="object"){if(!r)return i;if(o==="variants")return Object.entries(r).forEach(([P,b])=>{b&&Object.entries(b).forEach(([O,f])=>{if(!f)return;const $=`${t}.${P}-${O}`,S=M(f,$);n.push(S)})}),i;if(o==="defaultVariants")return i;if(o==="compoundVariants")return r.forEach(P=>{const{css:b,...O}=P,f=Object.entries(O).reduce((S,[w,h])=>`${S}.${w}-${h}`,t),$=M(b,f);n.push($)}),i;if(o.startsWith("@")){const P=M(r,t),b=`${o} {
|
2
|
+
${P.replace(`
|
3
3
|
`,`
|
4
4
|
`)}
|
5
|
-
}`;return n.push(
|
5
|
+
}`;return n.push(b),i}const j=d.includes("&")?o.replace("&",t):o.startsWith(":")?`${t}${o}`:`${t} ${o}`,F=M(r,j);return n.push(F),i}const g=o.startsWith("-")?o:R(o),p=(j,F=";")=>i=`${i}${j}${F}`,y=j=>p(`${g}:${j}`);if(typeof r=="number")return y(r);if(typeof r!="string")if("toString"in r)r=r.toString();else return i;const{modifiers:x}={},T=function*(){yield re(r),yield we(r,x)}();for(const{result:j,additionalCss:F=[]}of T)r=j,F.forEach(P=>{const b=M(P,"");p(b,"")});return y(r)},"");return c?t?[`${t} { ${c} }`,...n].join(`
|
6
6
|
`):c:n.join(`
|
7
|
-
`)},ie=(e,t=[])=>{if(!e)return"";const s=[],n={};if(Object.entries(e).forEach(([c,
|
8
|
-
`)},Fe=e=>e?Object.entries(e).reduce((t,[s,n])=>(typeof n=="object"&&(t[s]=ce(n).map(c=>`"${c}"`).join(" | ")),t),{}):{},ce=(e,t="",s=new Set)=>e?(Object.entries(e).forEach(([n,c])=>{const
|
7
|
+
`)},ie=(e,t=[])=>{if(!e)return"";const s=[],n={};if(Object.entries(e).forEach(([c,a])=>{if(typeof a=="object"){if(!a)return;const i=c.trim(),d=ie(a,[...t,i]);s.push(d)}else n[c]=a}),Object.keys(n).length){const c=t.map(R).join("-"),a=M(n,`.${c}`);s.push(a)}return s.join(`
|
8
|
+
`)},Fe=e=>e?Object.entries(e).reduce((t,[s,n])=>(typeof n=="object"&&(t[s]=ce(n).map(c=>`"${c}"`).join(" | ")),t),{}):{},ce=(e,t="",s=new Set)=>e?(Object.entries(e).forEach(([n,c])=>{const a=t?`${t}.${n}`:n;return typeof c=="object"?ce(c,a,s):s.add(t)}),[...s]):[],ae=e=>{if(!e||e==="/")throw new Error("Could not find package.json file");const t=l.join(e,"package.json");return u.existsSync(t)?t:ae(l.join(e,".."))},Ce=async e=>{const t=ae(e);return await G.readFile(t,"utf-8").then(JSON.parse).catch(()=>{})},ke=async e=>{const t=await Ce(e);if(t)return t.type};let A;const le=async e=>{if(A)return A;const t=await ke(e);return t==="module"?A="esm":(t==="commonjs"||(typeof document>"u"?require("url").pathToFileURL(__filename).href:v&&v.tagName.toUpperCase()==="SCRIPT"&&v.src||new URL("index.cjs",document.baseURI).href).endsWith(".cjs"))&&(A="cjs"),A||"esm"},Q=H.createLogger({level:"debug",format:H.format.combine(H.format.colorize(),H.format.cli()),transports:[new H.transports.Console({})]});function fe(e){return e?typeof e!="string"?fe(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 xe={"*, *::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"}},q=(...e)=>e.flat().reduce((t,s)=>s!=null&&s._current?{...t,...s._current}:{...t,...s},{}),V={externalModules:[],rcFile:void 0,destDir:void 0},ue=e=>{if(V.externalModules.length>0)return V.externalModules;const s=u.readFileSync(e,"utf8").match(/externalModules:\s?\[(.*)\]/);if(!s)return[];const n=s[1].split(",").map(c=>c.replace(/['"`]/g,"").trim());return V.externalModules=n,n},z=async e=>{if(V.destDir)return V.destDir;const t=await X(e),s=l.join(e,(t==null?void 0:t.saltygenDir)||"saltygen");return V.destDir=s,s},de=["salty","css","styles","styled"],Ne=(e=[])=>new RegExp(`\\.(${[...de,...e].join("|")})\\.`),W=(e,t=[])=>Ne(t).test(e),pe=async e=>{if(V.rcFile)return V.rcFile;if(e==="/")throw new Error("Could not find .saltyrc.json file");const t=l.join(e,".saltyrc.json"),s=await G.readFile(t,"utf-8").then(JSON.parse).catch(()=>{});return s?(V.rcFile=s,s):pe(l.join(e,".."))},X=async e=>{var n,c;const t=await pe(e),s=(n=t.projects)==null?void 0:n.find(a=>e.endsWith(a.dir||""));return s||((c=t.projects)==null?void 0:c.find(a=>a.dir===t.defaultProject))},De=async e=>{const t=await X(e),s=await z(e),n=l.join(e,(t==null?void 0:t.configDir)||"","salty.config.ts"),c=l.join(s,"salty.config.js"),a=await le(e),i=ue(n);await oe.build({entryPoints:[n],minify:!0,treeShaking:!0,bundle:!0,outfile:c,format:a,external:i});const d=Date.now(),{config:r}=await import(`${c}?t=${d}`);return r},Pe=async(e,t)=>{const s=await De(e),n={...s},c=new Set,a=(N,k=[])=>N?Object.entries(N).flatMap(([E,_])=>{if(!_)return;if(typeof _=="object")return a(_,[...k,E]);const J=fe(E),B=R(E),K=[...k,J].join(".");c.add(`"${K}"`);const U=[...k.map(R),B].join("-"),{result:he}=re(_);return`--${U}: ${he};`}):[],i=N=>N?Object.entries(N).flatMap(([k,E])=>{const _=a(E);return k==="base"?_.join(""):`${k} { ${_.join("")} }`}):[],d=N=>N?Object.entries(N).flatMap(([k,E])=>Object.entries(E).flatMap(([_,J])=>{const B=a(J,[k]),K=`.${k}-${_}, [data-${k}="${_}"]`,U=B.join("");return`${K} { ${U} }`})):[],r=N=>t.variables.map(k=>k._current[N]),o=a(q(s.variables,r("variables"))),g=i(q(s.responsiveVariables,r("responsiveVariables"))),p=d(q(s.conditionalVariables,r("conditionalVariables"))),y=await z(e),x=l.join(y,"css/_variables.css"),D=`:root { ${o.join("")} ${g.join("")} } ${p.join("")}`;u.writeFileSync(x,D);const T=l.join(y,"css/_global.css"),j=q(s.global,t.globalStyles),F=M(j,"");u.writeFileSync(T,`@layer global { ${F} }`);const P=l.join(y,"css/_reset.css"),O=s.reset==="none"?{}:typeof s.reset=="object"?s.reset:xe,f=M(O,"");u.writeFileSync(P,`@layer reset { ${f} }`);const $=l.join(y,"css/_templates.css"),S=q(s.templates,t.templates);console.log("all",S);const w=ie(S),h=Fe(S);u.writeFileSync($,w),n.templates=S;const C=l.join(y,"types/css-tokens.d.ts"),Z=`
|
9
9
|
// Variable types
|
10
10
|
type VariableTokens = ${[...c].join("|")};
|
11
11
|
type PropertyValueToken = \`{\${VariableTokens}}\`;
|
12
12
|
|
13
13
|
// Template types
|
14
14
|
type TemplateTokens = {
|
15
|
-
${Object.entries(
|
15
|
+
${Object.entries(h).map(([N,k])=>`${N}?: ${k}`).join(`
|
16
16
|
`)}
|
17
17
|
}
|
18
|
-
`;
|
19
|
-
`),
|
20
|
-
`);let
|
18
|
+
`;u.writeFileSync(C,Z);const I=l.join(y,"cache/config-cache.json");u.writeFileSync(I,JSON.stringify(n,null,2))},se=e=>e.replace(/styled\(([^"'`{,]+),/g,(t,s)=>{if(/^['"`]/.test(s))return t;const c=new RegExp(`import[^;]*${s}[,\\s{][^;]*from\\s?([^{};]+);`);if(!c.test(e))return t;const i=c.exec(e);if(i){const d=i.at(1);if(de.some(o=>d==null?void 0:d.includes(o)))return t}return"styled('div',"}),Y=async(e,t,s)=>{const n=L(t),c=l.join(s,"./temp");u.existsSync(c)||u.mkdirSync(c);const a=l.parse(t);let i=u.readFileSync(t,"utf8");i=se(i);const d=l.join(s,"js",n+".js"),r=await X(e),o=l.join(e,(r==null?void 0:r.configDir)||"","salty.config.ts"),g=ue(o),p=await le(e);await oe.build({stdin:{contents:i,sourcefile:a.base,resolveDir:a.dir,loader:"tsx"},minify:!1,treeShaking:!0,bundle:!0,outfile:d,format:p,target:["node20"],keepNames:!0,external:g,packages:"external",plugins:[{name:"test",setup:D=>{D.onLoad({filter:/.*\.css|salty|styles|styled\.ts/},T=>{const j=u.readFileSync(T.path,"utf8");return{contents:se(j),loader:"ts"}})}}]});const y=Date.now();return await import(`${d}?t=${y}`)},ee=async e=>{const t=await z(e),s=l.join(t,"cache/config-cache.json"),n=u.readFileSync(s,"utf8");if(!n)throw new Error("Could not find config cache file");return JSON.parse(n)},ye=()=>{try{return process.env.NODE_ENV==="production"}catch{return!1}},_e=async(e,t=ye(),s=!0)=>{try{const n=Date.now();t?Q.info("Generating CSS in production mode! 🔥"):Q.info("Generating CSS in development mode! 🚀");const c=[],a=[],i=await z(e),d=l.join(i,"index.css");s&&(()=>{u.existsSync(i)&&Se.execSync("rm -rf "+i),u.mkdirSync(i,{recursive:!0}),u.mkdirSync(l.join(i,"css")),u.mkdirSync(l.join(i,"types")),u.mkdirSync(l.join(i,"js")),u.mkdirSync(l.join(i,"cache"))})();const o={keyframes:[],mediaQueries:[],globalStyles:[],variables:[],components:[],templates:[]};async function g(f){const $=["node_modules","saltygen"],S=u.statSync(f);if(S.isDirectory()){const w=u.readdirSync(f);if($.some(C=>f.includes(C)))return;await Promise.all(w.map(C=>g(l.join(f,C))))}else if(S.isFile()&&W(f)){const h=await Y(e,f,i);Object.entries(h).forEach(([C,m])=>{m.isKeyframes?o.keyframes.push({value:m,src:f,name:C}):m.isMedia?o.mediaQueries.push(m):m.isGlobalDefine?o.globalStyles.push(m):m.isDefineVariables?o.variables.push(m):m.isDefineTemplates?o.templates.push(m):m.generator&&o.components.push({value:m.generator,src:f,name:C})})}}await g(e),await Pe(e,o);const p=await ee(e);for(const f of o.keyframes){const{value:$}=f,S=`a_${$.animationName}.css`,w=`css/${S}`,h=l.join(i,w);c.push(S),u.writeFileSync(h,$.css)}const y={};for(const f of o.components){const{value:$,name:S,src:w}=f,h=$._withBuildContext({name:S,config:p,prod:t});a[h.priority]||(a[h.priority]=[]),a[h.priority].push(h.cssFileName),p.importStrategy==="component"&&(y[w]?y[w].push(h.cssFileName):y[w]=[h.cssFileName]);const C=`css/${h.cssFileName}`,m=l.join(i,C);u.writeFileSync(m,h.css)}p.importStrategy==="component"&&Object.entries(y).forEach(([f,$])=>{const S=$.map(Z=>`@import url('./${Z}');`).join(`
|
19
|
+
`),w=L(f,6),h=l.parse(f),C=R(h.name),m=l.join(i,`css/f_${C}-${w}.css`);u.writeFileSync(m,S)});const x=c.map(f=>`@import url('./css/${f}');`).join(`
|
20
|
+
`);let F=`@layer reset, global, l0, l1, l2, l3, l4, l5, l6, l7, l8;
|
21
21
|
|
22
|
-
${["_variables.css","_reset.css","_global.css","_templates.css"].filter(f=>{try{return
|
22
|
+
${["_variables.css","_reset.css","_global.css","_templates.css"].filter(f=>{try{return u.readFileSync(l.join(i,"css",f),"utf8").length>0}catch{return!1}}).map(f=>`@import url('./css/${f}');`).join(`
|
23
23
|
`)}
|
24
|
-
${
|
25
|
-
/*start:${
|
26
|
-
${
|
27
|
-
/*end:${
|
28
|
-
`},""),
|
29
|
-
}`;return
|
30
|
-
@import url('./css/${
|
31
|
-
${
|
32
|
-
/*end:${
|
33
|
-
`;
|
34
|
-
${
|
35
|
-
}`}}),
|
36
|
-
${
|
24
|
+
${x}`;if(p.importStrategy!=="component"){const f=a.reduce(($,S,w)=>{const h=S.reduce((I,N)=>{var J;const k=l.join(i,"css",N),E=u.readFileSync(k,"utf8"),_=((J=/.*-([^-]+)-\d+.css/.exec(N))==null?void 0:J.at(1))||L(k,6);return I.includes(_)?I:`${I}
|
25
|
+
/*start:${_}*/
|
26
|
+
${E}
|
27
|
+
/*end:${_}*/
|
28
|
+
`},""),C=`l_${w}.css`,m=l.join(i,"css",C),Z=`@layer l${w} { ${h}
|
29
|
+
}`;return u.writeFileSync(m,Z),`${$}
|
30
|
+
@import url('./css/${C}');`},"");F+=f}u.writeFileSync(d,F);const b=Date.now()-n,O=b<200?"🔥":b<500?"🚀":b<1e3?"🎉":b<2e3?"🚗":b<5e3?"🤔":"🥴";Q.info(`Generated CSS in ${b}ms! ${O}`)}catch(n){console.error(n)}},Te=async(e,t)=>{try{const s=await z(e);if(W(t)){const c=[],a=await ee(e),i=await Y(e,t,s);Object.entries(i).forEach(([d,r])=>{if(r.isKeyframes&&r.css){const x=`css/${`a_${r.animationName}.css`}`,D=l.join(s,x);u.writeFileSync(D,r.css);return}if(!r.generator)return;const o=r.generator._withBuildContext({name:d,config:a}),g=`css/${o.cssFileName}`,p=l.join(s,g);u.writeFileSync(p,o.css),c[o.priority]||(c[o.priority]=[]),c[o.priority].push(o.cssFileName)}),a.importStrategy!=="component"&&c.forEach((d,r)=>{const o=`l_${r}.css`,g=l.join(s,"css",o);let p=u.readFileSync(g,"utf8");d.forEach(y=>{var j;const x=l.join(s,"css",y),D=((j=/.*-([^-]+)-\d+.css/.exec(y))==null?void 0:j.at(1))||L(x,6);if(!p.includes(D)){const F=u.readFileSync(x,"utf8"),P=`/*start:${D}*/
|
31
|
+
${F}
|
32
|
+
/*end:${D}*/
|
33
|
+
`;p=`${p.replace(/\}$/,"")}
|
34
|
+
${P}
|
35
|
+
}`}}),u.writeFileSync(g,p)})}}catch(s){console.error(s)}},Oe=async(e,t,s=ye())=>{try{const n=await z(e);if(W(t)){const a=u.readFileSync(t,"utf8");a.replace(/^(?!export\s)const\s.*/gm,g=>`export ${g}`)!==a&&await G.writeFile(t,a);const d=await ee(e),r=await Y(e,t,n);let o=a;if(Object.entries(r).forEach(([g,p])=>{var C;if(p.isKeyframes||!p.generator)return;const y=p.generator._withBuildContext({name:g,config:d,prod:s}),x=new RegExp(`\\s${g}[=\\s]+[^()]+styled\\(([^,]+),`,"g").exec(a);if(!x)return console.error("Could not find the original declaration");const D=(C=x.at(1))==null?void 0:C.trim(),T=new RegExp(`\\s${g}[=\\s]+styled\\(`,"g").exec(o);if(!T)return console.error("Could not find the original declaration");const{index:j}=T;let F=!1;const P=setTimeout(()=>F=!0,5e3);let b=0,O=!1,f=0;for(;!O&&!F;){const m=o[j+b];m==="("&&f++,m===")"&&f--,f===0&&m===")"&&(O=!0),b>o.length&&(F=!0),b++}if(!F)clearTimeout(P);else throw new Error("Failed to find the end of the styled call and timed out");const $=j+b,S=o.slice(j,$),w=o,h=` ${g} = styled(${D}, "${y.classNames}", ${JSON.stringify(y.props)});`;o=o.replace(S,h),w===o&&console.error("Minimize file failed to change content",{name:g,tagName:D})}),d.importStrategy==="component"){const g=L(t,6),p=l.parse(t);o=`import '../../saltygen/css/${`f_${R(p.name)}-${g}.css`}';
|
36
|
+
${o}`}return 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)}},ne=async e=>{if(!e||e.includes("node_modules")||e.includes("saltygen"))return!1;if(e.includes("salty.config"))return!0;if(!W(e))return!1;const n=await G.readFile(e,"utf-8");return!!/.+define[A-Z]\w+/.test(n)},ge=e=>({name:"stylegen",buildStart:()=>_e(e),load:async t=>{if(W(t))return await Oe(e,t)},handleHotUpdate:async({file:t,server:s})=>{await ne(t)&&await s.restart()},watchChange:{handler:async t=>{W(t)&&(await ne(t)||await Te(e,t))}}});exports.default=ge;exports.saltyPlugin=ge;
|
package/index.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import * as ct from "esbuild";
|
2
2
|
import { execSync as bt } from "child_process";
|
3
|
-
import { join as
|
4
|
-
import { existsSync as v, mkdirSync as
|
3
|
+
import { join as f, parse as Y } from "path";
|
4
|
+
import { existsSync as v, mkdirSync as Z, statSync as St, readdirSync as wt, writeFileSync as P, readFileSync as M } from "fs";
|
5
5
|
import { readFile as tt, writeFile as jt } from "fs/promises";
|
6
6
|
import { createLogger as Ct, format as U, transports as Ft } from "winston";
|
7
7
|
const ot = (t) => String.fromCharCode(t + (t > 25 ? 39 : 97)), xt = (t, e) => {
|
@@ -12,7 +12,7 @@ const ot = (t) => String.fromCharCode(t + (t > 25 ? 39 : 97)), xt = (t, e) => {
|
|
12
12
|
let s = e.length;
|
13
13
|
for (; s; ) t = t * 33 ^ e.charCodeAt(--s);
|
14
14
|
return t;
|
15
|
-
},
|
15
|
+
}, B = (t, e = 5) => {
|
16
16
|
const s = kt(5381, JSON.stringify(t)) >>> 0;
|
17
17
|
return xt(s, e);
|
18
18
|
};
|
@@ -24,58 +24,58 @@ const Nt = (t, e) => {
|
|
24
24
|
if (!e) return { result: t };
|
25
25
|
const s = [];
|
26
26
|
return Object.values(e).forEach((n) => {
|
27
|
-
const { pattern: c, transform:
|
28
|
-
t = t.replace(c, (
|
29
|
-
const { value: u, css:
|
30
|
-
return
|
27
|
+
const { pattern: c, transform: a } = n;
|
28
|
+
t = t.replace(c, (i) => {
|
29
|
+
const { value: u, css: r } = a(i);
|
30
|
+
return r && s.push(r), u;
|
31
31
|
});
|
32
32
|
}), { result: t, additionalCss: s };
|
33
33
|
}, at = (t) => typeof t != "string" ? { result: t } : /\{[^{}]+\}/g.test(t) ? { result: t.replace(/\{([^{}]+)\}/g, (...n) => `var(--${J(n[1].replaceAll(".", "-"))})`) } : { result: t }, R = (t, e, s) => {
|
34
34
|
if (!t) return "";
|
35
|
-
const n = [], c = Object.entries(t).reduce((
|
36
|
-
const
|
37
|
-
if (typeof
|
38
|
-
if (!
|
39
|
-
if (
|
40
|
-
return Object.entries(
|
41
|
-
|
42
|
-
if (!
|
43
|
-
const
|
44
|
-
n.push(
|
35
|
+
const n = [], c = Object.entries(t).reduce((i, [u, r]) => {
|
36
|
+
const o = u.trim();
|
37
|
+
if (typeof r == "function" && (r = r()), typeof r == "object") {
|
38
|
+
if (!r) return i;
|
39
|
+
if (o === "variants")
|
40
|
+
return Object.entries(r).forEach(([D, $]) => {
|
41
|
+
$ && Object.entries($).forEach(([O, l]) => {
|
42
|
+
if (!l) return;
|
43
|
+
const S = `${e}.${D}-${O}`, m = R(l, S);
|
44
|
+
n.push(m);
|
45
45
|
});
|
46
|
-
}),
|
47
|
-
if (
|
48
|
-
return
|
49
|
-
if (
|
50
|
-
return
|
51
|
-
const { css:
|
52
|
-
n.push(
|
53
|
-
}),
|
54
|
-
if (
|
55
|
-
const
|
56
|
-
${
|
46
|
+
}), i;
|
47
|
+
if (o === "defaultVariants")
|
48
|
+
return i;
|
49
|
+
if (o === "compoundVariants")
|
50
|
+
return r.forEach((D) => {
|
51
|
+
const { css: $, ...O } = D, l = Object.entries(O).reduce((m, [w, h]) => `${m}.${w}-${h}`, e), S = R($, l);
|
52
|
+
n.push(S);
|
53
|
+
}), i;
|
54
|
+
if (o.startsWith("@")) {
|
55
|
+
const D = R(r, e), $ = `${o} {
|
56
|
+
${D.replace(`
|
57
57
|
`, `
|
58
58
|
`)}
|
59
59
|
}`;
|
60
|
-
return n.push(
|
60
|
+
return n.push($), i;
|
61
61
|
}
|
62
|
-
const b = u.includes("&") ?
|
63
|
-
return n.push(
|
62
|
+
const b = u.includes("&") ? o.replace("&", e) : o.startsWith(":") ? `${e}${o}` : `${e} ${o}`, j = R(r, b);
|
63
|
+
return n.push(j), i;
|
64
64
|
}
|
65
|
-
const
|
66
|
-
if (typeof
|
67
|
-
if (typeof
|
68
|
-
if ("toString" in
|
69
|
-
else return
|
70
|
-
const { modifiers:
|
71
|
-
yield at(
|
65
|
+
const g = o.startsWith("-") ? o : J(o), p = (b, j = ";") => i = `${i}${b}${j}`, d = (b) => p(`${g}:${b}`);
|
66
|
+
if (typeof r == "number") return d(r);
|
67
|
+
if (typeof r != "string")
|
68
|
+
if ("toString" in r) r = r.toString();
|
69
|
+
else return i;
|
70
|
+
const { modifiers: x } = {}, T = function* () {
|
71
|
+
yield at(r), yield Nt(r, x);
|
72
72
|
}();
|
73
|
-
for (const { result: b, additionalCss:
|
74
|
-
|
75
|
-
const
|
76
|
-
|
73
|
+
for (const { result: b, additionalCss: j = [] } of T)
|
74
|
+
r = b, j.forEach((D) => {
|
75
|
+
const $ = R(D, "");
|
76
|
+
p($, "");
|
77
77
|
});
|
78
|
-
return
|
78
|
+
return d(r);
|
79
79
|
}, "");
|
80
80
|
return c ? e ? [`${e} { ${c} }`, ...n].join(`
|
81
81
|
`) : c : n.join(`
|
@@ -83,26 +83,26 @@ const Nt = (t, e) => {
|
|
83
83
|
}, lt = (t, e = []) => {
|
84
84
|
if (!t) return "";
|
85
85
|
const s = [], n = {};
|
86
|
-
if (Object.entries(t).forEach(([c,
|
87
|
-
if (typeof
|
88
|
-
if (!
|
89
|
-
const
|
86
|
+
if (Object.entries(t).forEach(([c, a]) => {
|
87
|
+
if (typeof a == "object") {
|
88
|
+
if (!a) return;
|
89
|
+
const i = c.trim(), u = lt(a, [...e, i]);
|
90
90
|
s.push(u);
|
91
91
|
} else
|
92
|
-
n[c] =
|
92
|
+
n[c] = a;
|
93
93
|
}), Object.keys(n).length) {
|
94
|
-
const c = e.map(J).join("-"),
|
95
|
-
s.push(
|
94
|
+
const c = e.map(J).join("-"), a = R(n, `.${c}`);
|
95
|
+
s.push(a);
|
96
96
|
}
|
97
97
|
return s.join(`
|
98
98
|
`);
|
99
99
|
}, Dt = (t) => t ? Object.entries(t).reduce((e, [s, n]) => (typeof n == "object" && (e[s] = ft(n).map((c) => `"${c}"`).join(" | ")), e), {}) : {}, ft = (t, e = "", s = /* @__PURE__ */ new Set()) => t ? (Object.entries(t).forEach(([n, c]) => {
|
100
|
-
const
|
101
|
-
return typeof c == "object" ? ft(c,
|
100
|
+
const a = e ? `${e}.${n}` : n;
|
101
|
+
return typeof c == "object" ? ft(c, a, s) : s.add(e);
|
102
102
|
}), [...s]) : [], ut = (t) => {
|
103
103
|
if (!t || t === "/") throw new Error("Could not find package.json file");
|
104
|
-
const e =
|
105
|
-
return v(e) ? e : ut(
|
104
|
+
const e = f(t, "package.json");
|
105
|
+
return v(e) ? e : ut(f(t, ".."));
|
106
106
|
}, Et = async (t) => {
|
107
107
|
const e = ut(t);
|
108
108
|
return await tt(e, "utf-8").then(JSON.parse).catch(() => {
|
@@ -112,11 +112,11 @@ const Nt = (t, e) => {
|
|
112
112
|
if (e)
|
113
113
|
return e.type;
|
114
114
|
};
|
115
|
-
let
|
115
|
+
let W;
|
116
116
|
const pt = async (t) => {
|
117
|
-
if (
|
117
|
+
if (W) return W;
|
118
118
|
const e = await Pt(t);
|
119
|
-
return e === "module" ?
|
119
|
+
return e === "module" ? W = "esm" : (e === "commonjs" || import.meta.url.endsWith(".cjs")) && (W = "cjs"), W || "esm";
|
120
120
|
}, X = Ct({
|
121
121
|
level: "debug",
|
122
122
|
format: U.combine(U.colorize(), U.cli()),
|
@@ -171,130 +171,130 @@ const Tt = {
|
|
171
171
|
fontSize: "100%",
|
172
172
|
lineHeight: "1.15em"
|
173
173
|
}
|
174
|
-
},
|
174
|
+
}, L = (...t) => t.flat().reduce((e, s) => s != null && s._current ? { ...e, ...s._current } : { ...e, ...s }, {}), _ = {
|
175
175
|
externalModules: [],
|
176
176
|
rcFile: void 0,
|
177
177
|
destDir: void 0
|
178
178
|
}, gt = (t) => {
|
179
|
-
if (
|
180
|
-
const s =
|
179
|
+
if (_.externalModules.length > 0) return _.externalModules;
|
180
|
+
const s = M(t, "utf8").match(/externalModules:\s?\[(.*)\]/);
|
181
181
|
if (!s) return [];
|
182
182
|
const n = s[1].split(",").map((c) => c.replace(/['"`]/g, "").trim());
|
183
|
-
return
|
184
|
-
},
|
185
|
-
if (
|
186
|
-
const e = await et(t), s =
|
187
|
-
return
|
188
|
-
}, ht = ["salty", "css", "styles", "styled"], Ot = (t = []) => new RegExp(`\\.(${[...ht, ...t].join("|")})\\.`),
|
189
|
-
if (
|
183
|
+
return _.externalModules = n, n;
|
184
|
+
}, H = async (t) => {
|
185
|
+
if (_.destDir) return _.destDir;
|
186
|
+
const e = await et(t), s = f(t, (e == null ? void 0 : e.saltygenDir) || "saltygen");
|
187
|
+
return _.destDir = s, s;
|
188
|
+
}, ht = ["salty", "css", "styles", "styled"], Ot = (t = []) => new RegExp(`\\.(${[...ht, ...t].join("|")})\\.`), z = (t, e = []) => Ot(e).test(t), yt = async (t) => {
|
189
|
+
if (_.rcFile) return _.rcFile;
|
190
190
|
if (t === "/") throw new Error("Could not find .saltyrc.json file");
|
191
|
-
const e =
|
191
|
+
const e = f(t, ".saltyrc.json"), s = await tt(e, "utf-8").then(JSON.parse).catch(() => {
|
192
192
|
});
|
193
|
-
return s ? (
|
193
|
+
return s ? (_.rcFile = s, s) : yt(f(t, ".."));
|
194
194
|
}, et = async (t) => {
|
195
195
|
var n, c;
|
196
|
-
const e = await yt(t), s = (n = e.projects) == null ? void 0 : n.find((
|
197
|
-
return s || ((c = e.projects) == null ? void 0 : c.find((
|
196
|
+
const e = await yt(t), s = (n = e.projects) == null ? void 0 : n.find((a) => t.endsWith(a.dir || ""));
|
197
|
+
return s || ((c = e.projects) == null ? void 0 : c.find((a) => a.dir === e.defaultProject));
|
198
198
|
}, Vt = async (t) => {
|
199
|
-
const e = await et(t), s = await
|
199
|
+
const e = await et(t), s = await H(t), n = f(t, (e == null ? void 0 : e.configDir) || "", "salty.config.ts"), c = f(s, "salty.config.js"), a = await pt(t), i = gt(n);
|
200
200
|
await ct.build({
|
201
201
|
entryPoints: [n],
|
202
202
|
minify: !0,
|
203
203
|
treeShaking: !0,
|
204
204
|
bundle: !0,
|
205
205
|
outfile: c,
|
206
|
-
format:
|
207
|
-
external:
|
206
|
+
format: a,
|
207
|
+
external: i
|
208
208
|
});
|
209
|
-
const u = Date.now(), { config:
|
210
|
-
return
|
209
|
+
const u = Date.now(), { config: r } = await import(`${c}?t=${u}`);
|
210
|
+
return r;
|
211
211
|
}, _t = async (t, e) => {
|
212
|
-
const s = await Vt(t), n = { ...s }, c = /* @__PURE__ */ new Set(),
|
213
|
-
if (!
|
214
|
-
if (typeof
|
215
|
-
const
|
212
|
+
const s = await Vt(t), n = { ...s }, c = /* @__PURE__ */ new Set(), a = (k, F = []) => k ? Object.entries(k).flatMap(([V, E]) => {
|
213
|
+
if (!E) return;
|
214
|
+
if (typeof E == "object") return a(E, [...F, V]);
|
215
|
+
const A = dt(V), K = J(V), q = [...F, A].join(".");
|
216
216
|
c.add(`"${q}"`);
|
217
|
-
const Q = [...
|
217
|
+
const Q = [...F.map(J), K].join("-"), { result: $t } = at(E);
|
218
218
|
return `--${Q}: ${$t};`;
|
219
|
-
}) : [],
|
220
|
-
const
|
221
|
-
return
|
222
|
-
}) : [], u = (k) => k ? Object.entries(k).flatMap(([
|
223
|
-
const K =
|
219
|
+
}) : [], i = (k) => k ? Object.entries(k).flatMap(([F, V]) => {
|
220
|
+
const E = a(V);
|
221
|
+
return F === "base" ? E.join("") : `${F} { ${E.join("")} }`;
|
222
|
+
}) : [], u = (k) => k ? Object.entries(k).flatMap(([F, V]) => Object.entries(V).flatMap(([E, A]) => {
|
223
|
+
const K = a(A, [F]), q = `.${F}-${E}, [data-${F}="${E}"]`, Q = K.join("");
|
224
224
|
return `${q} { ${Q} }`;
|
225
|
-
})) : [],
|
226
|
-
|
227
|
-
const
|
228
|
-
|
229
|
-
const
|
230
|
-
|
231
|
-
const
|
232
|
-
console.log("all",
|
233
|
-
const
|
234
|
-
|
235
|
-
const
|
225
|
+
})) : [], r = (k) => e.variables.map((F) => F._current[k]), o = a(L(s.variables, r("variables"))), g = i(L(s.responsiveVariables, r("responsiveVariables"))), p = u(L(s.conditionalVariables, r("conditionalVariables"))), d = await H(t), x = f(d, "css/_variables.css"), N = `:root { ${o.join("")} ${g.join("")} } ${p.join("")}`;
|
226
|
+
P(x, N);
|
227
|
+
const T = f(d, "css/_global.css"), b = L(s.global, e.globalStyles), j = R(b, "");
|
228
|
+
P(T, `@layer global { ${j} }`);
|
229
|
+
const D = f(d, "css/_reset.css"), O = s.reset === "none" ? {} : typeof s.reset == "object" ? s.reset : Tt, l = R(O, "");
|
230
|
+
P(D, `@layer reset { ${l} }`);
|
231
|
+
const S = f(d, "css/_templates.css"), m = L(s.templates, e.templates);
|
232
|
+
console.log("all", m);
|
233
|
+
const w = lt(m), h = Dt(m);
|
234
|
+
P(S, w), n.templates = m;
|
235
|
+
const C = f(d, "types/css-tokens.d.ts"), I = `
|
236
236
|
// Variable types
|
237
237
|
type VariableTokens = ${[...c].join("|")};
|
238
238
|
type PropertyValueToken = \`{\${VariableTokens}}\`;
|
239
239
|
|
240
240
|
// Template types
|
241
241
|
type TemplateTokens = {
|
242
|
-
${Object.entries(
|
242
|
+
${Object.entries(h).map(([k, F]) => `${k}?: ${F}`).join(`
|
243
243
|
`)}
|
244
244
|
}
|
245
245
|
`;
|
246
|
-
|
247
|
-
const
|
248
|
-
|
246
|
+
P(C, I);
|
247
|
+
const G = f(d, "cache/config-cache.json");
|
248
|
+
P(G, JSON.stringify(n, null, 2));
|
249
249
|
}, rt = (t) => t.replace(/styled\(([^"'`{,]+),/g, (e, s) => {
|
250
250
|
if (/^['"`]/.test(s)) return e;
|
251
251
|
const c = new RegExp(`import[^;]*${s}[,\\s{][^;]*from\\s?([^{};]+);`);
|
252
252
|
if (!c.test(t)) return e;
|
253
|
-
const
|
254
|
-
if (
|
255
|
-
const u =
|
256
|
-
if (ht.some((
|
253
|
+
const i = c.exec(t);
|
254
|
+
if (i) {
|
255
|
+
const u = i.at(1);
|
256
|
+
if (ht.some((o) => u == null ? void 0 : u.includes(o))) return e;
|
257
257
|
}
|
258
258
|
return "styled('div',";
|
259
259
|
}), st = async (t, e, s) => {
|
260
|
-
const n =
|
261
|
-
v(c) ||
|
262
|
-
const
|
263
|
-
let
|
264
|
-
|
265
|
-
const u =
|
260
|
+
const n = B(e), c = f(s, "./temp");
|
261
|
+
v(c) || Z(c);
|
262
|
+
const a = Y(e);
|
263
|
+
let i = M(e, "utf8");
|
264
|
+
i = rt(i);
|
265
|
+
const u = f(s, "js", n + ".js"), r = await et(t), o = f(t, (r == null ? void 0 : r.configDir) || "", "salty.config.ts"), g = gt(o), p = await pt(t);
|
266
266
|
await ct.build({
|
267
267
|
stdin: {
|
268
|
-
contents:
|
269
|
-
sourcefile:
|
270
|
-
resolveDir:
|
268
|
+
contents: i,
|
269
|
+
sourcefile: a.base,
|
270
|
+
resolveDir: a.dir,
|
271
271
|
loader: "tsx"
|
272
272
|
},
|
273
273
|
minify: !1,
|
274
274
|
treeShaking: !0,
|
275
275
|
bundle: !0,
|
276
276
|
outfile: u,
|
277
|
-
format:
|
277
|
+
format: p,
|
278
278
|
target: ["node20"],
|
279
279
|
keepNames: !0,
|
280
|
-
external:
|
280
|
+
external: g,
|
281
281
|
packages: "external",
|
282
282
|
plugins: [
|
283
283
|
{
|
284
284
|
name: "test",
|
285
|
-
setup: (
|
286
|
-
|
287
|
-
const b =
|
285
|
+
setup: (N) => {
|
286
|
+
N.onLoad({ filter: /.*\.css|salty|styles|styled\.ts/ }, (T) => {
|
287
|
+
const b = M(T.path, "utf8");
|
288
288
|
return { contents: rt(b), loader: "ts" };
|
289
289
|
});
|
290
290
|
}
|
291
291
|
}
|
292
292
|
]
|
293
293
|
});
|
294
|
-
const
|
295
|
-
return await import(`${u}?t=${
|
294
|
+
const d = Date.now();
|
295
|
+
return await import(`${u}?t=${d}`);
|
296
296
|
}, nt = async (t) => {
|
297
|
-
const e = await
|
297
|
+
const e = await H(t), s = f(e, "cache/config-cache.json"), n = M(s, "utf8");
|
298
298
|
if (!n) throw new Error("Could not find config cache file");
|
299
299
|
return JSON.parse(n);
|
300
300
|
}, mt = () => {
|
@@ -303,13 +303,13 @@ const Tt = {
|
|
303
303
|
} catch {
|
304
304
|
return !1;
|
305
305
|
}
|
306
|
-
}, Mt = async (t, e = mt()) => {
|
306
|
+
}, Mt = async (t, e = mt(), s = !0) => {
|
307
307
|
try {
|
308
|
-
const
|
308
|
+
const n = Date.now();
|
309
309
|
e ? X.info("Generating CSS in production mode! 🔥") : X.info("Generating CSS in development mode! 🚀");
|
310
|
-
const
|
311
|
-
(() => {
|
312
|
-
v(
|
310
|
+
const c = [], a = [], i = await H(t), u = f(i, "index.css");
|
311
|
+
s && (() => {
|
312
|
+
v(i) && bt("rm -rf " + i), Z(i, { recursive: !0 }), Z(f(i, "css")), Z(f(i, "types")), Z(f(i, "js")), Z(f(i, "cache"));
|
313
313
|
})();
|
314
314
|
const o = {
|
315
315
|
keyframes: [],
|
@@ -319,118 +319,118 @@ const Tt = {
|
|
319
319
|
components: [],
|
320
320
|
templates: []
|
321
321
|
};
|
322
|
-
async function
|
323
|
-
const
|
324
|
-
if (
|
325
|
-
const
|
326
|
-
if (
|
327
|
-
await Promise.all(
|
328
|
-
} else if (
|
329
|
-
const h = await st(t, l,
|
330
|
-
Object.entries(h).forEach(([
|
322
|
+
async function g(l) {
|
323
|
+
const S = ["node_modules", "saltygen"], m = St(l);
|
324
|
+
if (m.isDirectory()) {
|
325
|
+
const w = wt(l);
|
326
|
+
if (S.some((C) => l.includes(C))) return;
|
327
|
+
await Promise.all(w.map((C) => g(f(l, C))));
|
328
|
+
} else if (m.isFile() && z(l)) {
|
329
|
+
const h = await st(t, l, i);
|
330
|
+
Object.entries(h).forEach(([C, y]) => {
|
331
331
|
y.isKeyframes ? o.keyframes.push({
|
332
332
|
value: y,
|
333
333
|
src: l,
|
334
|
-
name:
|
334
|
+
name: C
|
335
335
|
}) : y.isMedia ? o.mediaQueries.push(y) : y.isGlobalDefine ? o.globalStyles.push(y) : y.isDefineVariables ? o.variables.push(y) : y.isDefineTemplates ? o.templates.push(y) : y.generator && o.components.push({
|
336
336
|
value: y.generator,
|
337
337
|
src: l,
|
338
|
-
name:
|
338
|
+
name: C
|
339
339
|
});
|
340
340
|
});
|
341
341
|
}
|
342
342
|
}
|
343
|
-
await
|
343
|
+
await g(t), await _t(t, o);
|
344
344
|
const p = await nt(t);
|
345
345
|
for (const l of o.keyframes) {
|
346
|
-
const { value:
|
347
|
-
|
346
|
+
const { value: S } = l, m = `a_${S.animationName}.css`, w = `css/${m}`, h = f(i, w);
|
347
|
+
c.push(m), P(h, S.css);
|
348
348
|
}
|
349
349
|
const d = {};
|
350
350
|
for (const l of o.components) {
|
351
|
-
const { value:
|
352
|
-
name:
|
351
|
+
const { value: S, name: m, src: w } = l, h = S._withBuildContext({
|
352
|
+
name: m,
|
353
353
|
config: p,
|
354
354
|
prod: e
|
355
355
|
});
|
356
|
-
|
357
|
-
const
|
358
|
-
|
356
|
+
a[h.priority] || (a[h.priority] = []), a[h.priority].push(h.cssFileName), p.importStrategy === "component" && (d[w] ? d[w].push(h.cssFileName) : d[w] = [h.cssFileName]);
|
357
|
+
const C = `css/${h.cssFileName}`, y = f(i, C);
|
358
|
+
P(y, h.css);
|
359
359
|
}
|
360
|
-
p.importStrategy === "component" && Object.entries(d).forEach(([l,
|
361
|
-
const
|
362
|
-
`),
|
363
|
-
|
360
|
+
p.importStrategy === "component" && Object.entries(d).forEach(([l, S]) => {
|
361
|
+
const m = S.map((I) => `@import url('./${I}');`).join(`
|
362
|
+
`), w = B(l, 6), h = Y(l), C = J(h.name), y = f(i, `css/f_${C}-${w}.css`);
|
363
|
+
P(y, m);
|
364
364
|
});
|
365
|
-
const
|
365
|
+
const x = c.map((l) => `@import url('./css/${l}');`).join(`
|
366
366
|
`);
|
367
|
-
let
|
367
|
+
let j = `@layer reset, global, l0, l1, l2, l3, l4, l5, l6, l7, l8;
|
368
368
|
|
369
369
|
${["_variables.css", "_reset.css", "_global.css", "_templates.css"].filter((l) => {
|
370
370
|
try {
|
371
|
-
return
|
371
|
+
return M(f(i, "css", l), "utf8").length > 0;
|
372
372
|
} catch {
|
373
373
|
return !1;
|
374
374
|
}
|
375
375
|
}).map((l) => `@import url('./css/${l}');`).join(`
|
376
376
|
`)}
|
377
|
-
${
|
377
|
+
${x}`;
|
378
378
|
if (p.importStrategy !== "component") {
|
379
|
-
const l =
|
380
|
-
const h =
|
381
|
-
var
|
382
|
-
const
|
383
|
-
return
|
384
|
-
/*start:${
|
385
|
-
${
|
386
|
-
/*end:${
|
379
|
+
const l = a.reduce((S, m, w) => {
|
380
|
+
const h = m.reduce((G, k) => {
|
381
|
+
var A;
|
382
|
+
const F = f(i, "css", k), V = M(F, "utf8"), E = ((A = /.*-([^-]+)-\d+.css/.exec(k)) == null ? void 0 : A.at(1)) || B(F, 6);
|
383
|
+
return G.includes(E) ? G : `${G}
|
384
|
+
/*start:${E}*/
|
385
|
+
${V}
|
386
|
+
/*end:${E}*/
|
387
387
|
`;
|
388
|
-
}, ""),
|
388
|
+
}, ""), C = `l_${w}.css`, y = f(i, "css", C), I = `@layer l${w} { ${h}
|
389
389
|
}`;
|
390
|
-
return
|
391
|
-
@import url('./css/${
|
390
|
+
return P(y, I), `${S}
|
391
|
+
@import url('./css/${C}');`;
|
392
392
|
}, "");
|
393
|
-
|
393
|
+
j += l;
|
394
394
|
}
|
395
|
-
|
396
|
-
const
|
397
|
-
X.info(`Generated CSS in ${
|
398
|
-
} catch (
|
399
|
-
console.error(
|
395
|
+
P(u, j);
|
396
|
+
const $ = Date.now() - n, O = $ < 200 ? "🔥" : $ < 500 ? "🚀" : $ < 1e3 ? "🎉" : $ < 2e3 ? "🚗" : $ < 5e3 ? "🤔" : "🥴";
|
397
|
+
X.info(`Generated CSS in ${$}ms! ${O}`);
|
398
|
+
} catch (n) {
|
399
|
+
console.error(n);
|
400
400
|
}
|
401
401
|
}, Rt = async (t, e) => {
|
402
402
|
try {
|
403
|
-
const s = await
|
404
|
-
if (
|
405
|
-
const c = [],
|
406
|
-
Object.entries(
|
407
|
-
if (
|
408
|
-
const
|
409
|
-
|
403
|
+
const s = await H(t);
|
404
|
+
if (z(e)) {
|
405
|
+
const c = [], a = await nt(t), i = await st(t, e, s);
|
406
|
+
Object.entries(i).forEach(([u, r]) => {
|
407
|
+
if (r.isKeyframes && r.css) {
|
408
|
+
const x = `css/${`a_${r.animationName}.css`}`, N = f(s, x);
|
409
|
+
P(N, r.css);
|
410
410
|
return;
|
411
411
|
}
|
412
|
-
if (!
|
413
|
-
const
|
412
|
+
if (!r.generator) return;
|
413
|
+
const o = r.generator._withBuildContext({
|
414
414
|
name: u,
|
415
|
-
config:
|
416
|
-
}),
|
417
|
-
|
418
|
-
}),
|
419
|
-
const
|
420
|
-
let
|
421
|
-
u.forEach((
|
415
|
+
config: a
|
416
|
+
}), g = `css/${o.cssFileName}`, p = f(s, g);
|
417
|
+
P(p, o.css), c[o.priority] || (c[o.priority] = []), c[o.priority].push(o.cssFileName);
|
418
|
+
}), a.importStrategy !== "component" && c.forEach((u, r) => {
|
419
|
+
const o = `l_${r}.css`, g = f(s, "css", o);
|
420
|
+
let p = M(g, "utf8");
|
421
|
+
u.forEach((d) => {
|
422
422
|
var b;
|
423
|
-
const
|
424
|
-
if (!
|
425
|
-
const
|
426
|
-
${
|
427
|
-
/*end:${
|
423
|
+
const x = f(s, "css", d), N = ((b = /.*-([^-]+)-\d+.css/.exec(d)) == null ? void 0 : b.at(1)) || B(x, 6);
|
424
|
+
if (!p.includes(N)) {
|
425
|
+
const j = M(x, "utf8"), D = `/*start:${N}*/
|
426
|
+
${j}
|
427
|
+
/*end:${N}*/
|
428
428
|
`;
|
429
|
-
|
430
|
-
${
|
429
|
+
p = `${p.replace(/\}$/, "")}
|
430
|
+
${D}
|
431
431
|
}`;
|
432
432
|
}
|
433
|
-
}),
|
433
|
+
}), P(g, p);
|
434
434
|
});
|
435
435
|
}
|
436
436
|
} catch (s) {
|
@@ -438,41 +438,41 @@ ${S}
|
|
438
438
|
}
|
439
439
|
}, Jt = async (t, e, s = mt()) => {
|
440
440
|
try {
|
441
|
-
const n = await
|
442
|
-
if (
|
443
|
-
const
|
444
|
-
|
445
|
-
const u = await nt(t),
|
446
|
-
let
|
447
|
-
if (Object.entries(
|
448
|
-
var
|
449
|
-
if (
|
450
|
-
const
|
451
|
-
name:
|
441
|
+
const n = await H(t);
|
442
|
+
if (z(e)) {
|
443
|
+
const a = M(e, "utf8");
|
444
|
+
a.replace(/^(?!export\s)const\s.*/gm, (g) => `export ${g}`) !== a && await jt(e, a);
|
445
|
+
const u = await nt(t), r = await st(t, e, n);
|
446
|
+
let o = a;
|
447
|
+
if (Object.entries(r).forEach(([g, p]) => {
|
448
|
+
var C;
|
449
|
+
if (p.isKeyframes || !p.generator) return;
|
450
|
+
const d = p.generator._withBuildContext({
|
451
|
+
name: g,
|
452
452
|
config: u,
|
453
453
|
prod: s
|
454
|
-
}),
|
455
|
-
if (!
|
456
|
-
const
|
457
|
-
if (!
|
458
|
-
const { index: b } =
|
459
|
-
let
|
460
|
-
const
|
461
|
-
let
|
462
|
-
for (; !
|
463
|
-
const
|
464
|
-
|
454
|
+
}), x = new RegExp(`\\s${g}[=\\s]+[^()]+styled\\(([^,]+),`, "g").exec(a);
|
455
|
+
if (!x) return console.error("Could not find the original declaration");
|
456
|
+
const N = (C = x.at(1)) == null ? void 0 : C.trim(), T = new RegExp(`\\s${g}[=\\s]+styled\\(`, "g").exec(o);
|
457
|
+
if (!T) return console.error("Could not find the original declaration");
|
458
|
+
const { index: b } = T;
|
459
|
+
let j = !1;
|
460
|
+
const D = setTimeout(() => j = !0, 5e3);
|
461
|
+
let $ = 0, O = !1, l = 0;
|
462
|
+
for (; !O && !j; ) {
|
463
|
+
const y = o[b + $];
|
464
|
+
y === "(" && l++, y === ")" && l--, l === 0 && y === ")" && (O = !0), $ > o.length && (j = !0), $++;
|
465
465
|
}
|
466
|
-
if (!
|
466
|
+
if (!j) clearTimeout(D);
|
467
467
|
else throw new Error("Failed to find the end of the styled call and timed out");
|
468
|
-
const
|
469
|
-
|
468
|
+
const S = b + $, m = o.slice(b, S), w = o, h = ` ${g} = styled(${N}, "${d.classNames}", ${JSON.stringify(d.props)});`;
|
469
|
+
o = o.replace(m, h), w === o && console.error("Minimize file failed to change content", { name: g, tagName: N });
|
470
470
|
}), u.importStrategy === "component") {
|
471
|
-
const
|
472
|
-
|
473
|
-
${
|
471
|
+
const g = B(e, 6), p = Y(e);
|
472
|
+
o = `import '../../saltygen/css/${`f_${J(p.name)}-${g}.css`}';
|
473
|
+
${o}`;
|
474
474
|
}
|
475
|
-
return
|
475
|
+
return o = o.replace("{ styled }", "{ styledClient as styled }"), o = o.replace("@salty-css/react/styled", "@salty-css/react/styled-client"), o;
|
476
476
|
}
|
477
477
|
} catch (n) {
|
478
478
|
console.error("Error in minimizeFile:", n);
|
@@ -480,14 +480,14 @@ ${i}`;
|
|
480
480
|
}, it = async (t) => {
|
481
481
|
if (!t || t.includes("node_modules") || t.includes("saltygen")) return !1;
|
482
482
|
if (t.includes("salty.config")) return !0;
|
483
|
-
if (!
|
483
|
+
if (!z(t)) return !1;
|
484
484
|
const n = await tt(t, "utf-8");
|
485
485
|
return !!/.+define[A-Z]\w+/.test(n);
|
486
486
|
}, It = (t) => ({
|
487
487
|
name: "stylegen",
|
488
488
|
buildStart: () => Mt(t),
|
489
489
|
load: async (e) => {
|
490
|
-
if (
|
490
|
+
if (z(e))
|
491
491
|
return await Jt(t, e);
|
492
492
|
},
|
493
493
|
handleHotUpdate: async ({ file: e, server: s }) => {
|
@@ -495,7 +495,7 @@ ${i}`;
|
|
495
495
|
},
|
496
496
|
watchChange: {
|
497
497
|
handler: async (e) => {
|
498
|
-
|
498
|
+
z(e) && (await it(e) || await Rt(t, e));
|
499
499
|
}
|
500
500
|
}
|
501
501
|
});
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@salty-css/vite",
|
3
|
-
"version": "0.0.1-alpha.
|
3
|
+
"version": "0.0.1-alpha.180",
|
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.
|
37
|
+
"@salty-css/core": "^0.0.1-alpha.180"
|
38
38
|
}
|
39
39
|
}
|