UNPKG

@stylezjs/stylez

Version:

Stylez → ā€œZā€ of Zero Runtime | A lightweight utility for generating CSS class names dynamically.

3 lines (2 loc) • 1.01 kB
import C from"crypto";var S=(t,e)=>`${e}${C.createHash("md5").update(`stylez${t}`).digest("hex").slice(0,8)}`;var n=t=>S(JSON.stringify(t),"z_");var g=t=>Object.freeze({className:n(t)});var f=t=>{let e=t.match(/min-width:\s*(\d+)px/);return e?parseInt(e[1]):1/0},y=t=>t.sort((e,s)=>{let r=e[0],o=s[0],p=r.startsWith("@media"),i=o.startsWith("@media");return r==="root"?-1:o==="root"?1:!p&&i?-1:p&&!i?1:p&&i?f(r)-f(o):r.localeCompare(o)});var l=(t,e={lg:"1280px",md:"1024px",sm:"768px",xl:"1640px",xs:"520px"})=>t.map(([s,r])=>s.startsWith("@")?[`@media (min-width: ${e[s.replace("@","")]})`,r]:[s,r]);var d=t=>{let e,s={};for(let i of t){let m=`.${n(i)}`;for(let[a,c]of Object.entries(i))a==="breakpoints"?e=c:a.startsWith("@")?(s[a]??={})[m]??=c:(s[m]??={})[a]??=c}let r=Object.entries(s),o=l(r,e);return y(o)};var x=new Set,h=[],u=t=>{let e=n(t);return x.has(e)||(x.add(e),h.push(t)),t},j=()=>Object.fromEntries(d(h));export{g as className,u as create,j as getAllCss}; //# sourceMappingURL=index.mjs.map