@master/css 2.0.0-beta.143 → 2.0.0-beta.145

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.
@@ -1 +1 @@
1
- var t=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var R=Object.prototype.hasOwnProperty;var h=(r,e)=>{for(var o in e)t(r,o,{get:e[o],enumerable:!0})},B=(r,e,o,d)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of S(e))!R.call(r,s)&&s!==o&&t(r,s,{get:()=>e[s],enumerable:!(d=b(e,s))||d.enumerable});return r};var v=r=>B(t({},"__esModule",{value:!0}),r);var x={};h(x,{breakpoints:()=>i.breakpoints,colors:()=>n.colors,config:()=>Q,functions:()=>C.functions,important:()=>y.important,keyframes:()=>k.keyframes,observe:()=>u.observe,override:()=>f.override,rootSize:()=>m.rootSize,rules:()=>l.rules,scope:()=>a.scope,selectors:()=>p.selectors,semantics:()=>c.semantics,themes:()=>g.themes});module.exports=v(x);var i=require("./breakpoints"),n=require("./colors"),m=require("./root-size"),a=require("./scope"),p=require("./selectors"),c=require("./semantics"),g=require("./themes"),l=require("./rules"),f=require("./override"),u=require("./observe"),y=require("./important"),k=require("./keyframes"),C=require("./functions"),Q={breakpoints:i.breakpoints,colors:n.colors,rootSize:m.rootSize,scope:a.scope,selectors:p.selectors,semantics:c.semantics,themes:g.themes,rules:l.rules,override:f.override,observe:u.observe,important:y.important,functions:C.functions,keyframes:k.keyframes};0&&(module.exports={breakpoints,colors,config,functions,important,keyframes,observe,override,rootSize,rules,scope,selectors,semantics,themes});
1
+ var t=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var R=Object.prototype.hasOwnProperty;var v=(r,e)=>{for(var o in e)t(r,o,{get:e[o],enumerable:!0})},B=(r,e,o,b)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of h(e))!R.call(r,s)&&s!==o&&t(r,s,{get:()=>e[s],enumerable:!(b=S(e,s))||b.enumerable});return r};var Q=r=>B(t({},"__esModule",{value:!0}),r);var M={};v(M,{breakpoints:()=>i.breakpoints,colors:()=>n.colors,config:()=>x,functions:()=>d.functions,important:()=>y.important,keyframes:()=>k.keyframes,observe:()=>u.observe,override:()=>f.override,rootSize:()=>m.rootSize,rules:()=>l.rules,scope:()=>a.scope,selectors:()=>p.selectors,semantics:()=>c.semantics,themeDriver:()=>C.themeDriver,themes:()=>g.themes});module.exports=Q(M);var i=require("./breakpoints"),n=require("./colors"),m=require("./root-size"),a=require("./scope"),p=require("./selectors"),c=require("./semantics"),g=require("./themes"),l=require("./rules"),f=require("./override"),u=require("./observe"),y=require("./important"),k=require("./keyframes"),d=require("./functions"),C=require("./themeDriver"),x={breakpoints:i.breakpoints,colors:n.colors,rootSize:m.rootSize,scope:a.scope,selectors:p.selectors,semantics:c.semantics,themes:g.themes,rules:l.rules,override:f.override,observe:u.observe,important:y.important,functions:d.functions,keyframes:k.keyframes,themeDriver:C.themeDriver};0&&(module.exports={breakpoints,colors,config,functions,important,keyframes,observe,override,rootSize,rules,scope,selectors,semantics,themeDriver,themes});
@@ -0,0 +1 @@
1
+ var c=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var l=(r,e)=>{for(var t in e)c(r,t,{get:e[t],enumerable:!0})},m=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of h(e))!i.call(r,s)&&s!==t&&c(r,s,{get:()=>e[s],enumerable:!(o=a(e,s))||o.enumerable});return r};var n=r=>m(c({},"__esModule",{value:!0}),r);var v={};l(v,{themeDriver:()=>p});module.exports=n(v);var p="class";0&&(module.exports={themeDriver});
package/dist/cjs/css.js CHANGED
@@ -1 +1 @@
1
- var N=Object.defineProperty;var _=Object.getOwnPropertyDescriptor;var Z=Object.getOwnPropertyNames;var q=Object.prototype.hasOwnProperty;var U=(y,t,i)=>t in y?N(y,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):y[t]=i;var Y=(y,t)=>{for(var i in t)N(y,i,{get:t[i],enumerable:!0})},G=(y,t,i,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let u of Z(t))!q.call(y,u)&&u!==i&&N(y,u,{get:()=>t[u],enumerable:!(n=_(t,u))||n.enumerable});return y};var J=y=>G(N({},"__esModule",{value:!0}),y);var T=(y,t,i)=>(U(y,typeof t!="symbol"?t+"":t,i),i);var P={};Y(P,{MasterCSS:()=>M});module.exports=J(P);function I(y){let t=typeof Buffer<"u"?Buffer:null;return!!(t&&y instanceof t||y instanceof Date||y instanceof RegExp)}function $(y){if(typeof Buffer<"u"&&Buffer&&y instanceof Buffer){let t=Buffer.alloc(y.length);return y.copy(t),t}else{if(y instanceof Date)return new Date(y.getTime());if(y instanceof RegExp)return new RegExp(y);throw new Error("Unexpected situation")}}function F(y){let t=[];return y.forEach(function(i,n){typeof i=="object"&&i!==null?Array.isArray(i)?t[n]=F(i):I(i)?t[n]=$(i):t[n]=O({},i):t[n]=i}),t}function W(y,t){return t==="__proto__"?void 0:y[t]}function O(...y){let t={},i,n;return y.forEach(function(u){typeof u!="object"||u===null||Array.isArray(u)||Object.keys(u).forEach(function(v){if(n=W(t,v),i=W(u,v),i!==t)if(typeof i!="object"||i===null){t[v]=i;return}else if(Array.isArray(i)){t[v]=F(i);return}else if(I(i)){t[v]=$(i);return}else if(typeof n!="object"||n===null||Array.isArray(n)){t[v]=O({},i);return}else{t[v]=O(n,i);return}})}),t}var D=require("./rule"),j=require("./config"),H=require("./utils/rgb-to-hex"),Q=require("./constants/selector-symbols");var L=typeof window<"u",V=()=>{let y=document.createElement("style");return y.id="master",y},S=class{constructor(t=j.config){this.config=t;t?.override||(this.config=O(j.config,t),"keyframes"in t&&Object.assign(this.config.keyframes,t.keyframes)),this.cache(),L&&this.config.observe&&this.observe(document),S.instances.push(this)}rules=[];ruleBy={};countBy={};observing=!1;observer;cache(){this.semantics=[],this.classes={},this.colorThemesMap={},this.themeAffectedClassesBy={},this.classesBy={},this.colorNames=[],this.themeNames=[""],this.selectors={},this.values={},this.globalValues={},this.breakpoints={},this.mediaQueries={},this.matches={},this.keyframes={};let{semantics:t,classes:i,selectors:n,themes:u,colors:v,values:E,breakpoints:R,mediaQueries:p,rules:C}=this.config;function B(e){return e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")}function a(e,s,l="",c={}){let m=x=>x?(l?l+"-":"")+x:l,b=Object.entries(e),w=[],A=[];for(let x of b){let k=x[1];(typeof k=="object"&&!Array.isArray(k)?w:A).push(x)}for(let[x,k]of w)a(k,s,m(x),c);if(s&&l)A.length&&(c[l]=A.reduce((x,[k,z])=>(x[k]=z,x),{}));else for(let[x,k]of A)c[m(x)]=k;return c}if(t)for(let[e,s]of Object.entries(a(t,!0)))this.semantics.push([new RegExp("^"+B(e)+"(?=!|\\*|>|\\+|~|:|\\[|@|_|\\.|$)","m"),[e,s]]);if(n)for(let[e,s]of Object.entries(a(n,!1))){let l=new RegExp(B(e)+"(?![a-z-])");for(let c of Array.isArray(s)?s:[s]){let m=c.match(/^::-[a-z]+-/m)?.[0]??"",b=this.selectors[m];b||(b=this.selectors[m]=[]);let w=b.find(([A])=>A===l);w||(w=[l,[]],b.push(w)),w[1].push(c)}}E&&(this.globalValues=a(E,!1)),R&&(this.breakpoints=a(R,!1)),p&&(this.mediaQueries=a(p,!1));let d=i?a(i,!1):{},g=u&&!Array.isArray(u)?Object.entries(u).filter(([,{classes:e}])=>e).reduce((e,[s,{classes:l}])=>(e[s]=a(l,!1),e),{}):{},h=[...Object.keys(d),...Object.entries(g).flatMap(([e,s])=>Object.keys(s))],f=e=>{if(e in this.classes)return;let s=this.classes[e]=[],l=(c,m)=>{if(!m)return;let b=Array.isArray(m)?m:m.replace(/(?:\n(?:\s*))+/g," ").trim().split(" ");for(let w of b){let A=x=>{x in this.themeAffectedClassesBy?c in this.themeAffectedClassesBy[x]?this.themeAffectedClassesBy[x][c].push(e):this.themeAffectedClassesBy[x][c]=[e]:this.themeAffectedClassesBy[x]={[c]:[e]},s.includes(x)||s.push(x)};if(h.includes(w)){f(w);for(let x of this.classes[w])A(x)}else A(w)}};l("",d?.[e]);for(let[c,m]of Object.entries(g))l(c,m?.[e])};for(let e of h)f(e);for(let e in this.themeAffectedClassesBy){let s=this.classesBy[e]=[];for(let l of Object.values(this.themeAffectedClassesBy[e]))for(let c of l)s.includes(c)||s.push(c)}let o=(e,s)=>{if(!s)return;let l=a(s,!0);for(let[c,m]of Object.entries(l)){let b=typeof m=="string"?{"":m}:m;for(let[w,A]of Object.entries(b)){let x=c+(w?"-"+w:"");x in this.colorThemesMap?this.colorThemesMap[x][e]=A:this.colorThemesMap[x]={[e]:A}}}for(let c in s)this.colorNames.includes(c)||this.colorNames.push(c)};if(o("",v),u)if(Array.isArray(u))this.themeNames.push(...u);else for(let e in u){let s=u[e];o(e,s.colors),this.themeNames.push(e)}let r=e=>{for(let[s,l]of Object.entries(this.colorThemesMap))for(let[c,m]of Object.entries(l))m.startsWith("#")||e(s,l,c,m)};if(r((e,s,l,c)=>{let m=/^rgba?\( *([0-9]{1,3}) *(?: |,) *([0-9]{1,3}) *(?: |,) *([0-9]{1,3}) *(?:(?:\/|,) *0?(\.[0-9]))?\)$/.exec(c);if(m){let b="#"+(0,H.rgbToHex)(+m[1],+m[2],+m[3]);m[4]&&(b+=Math.round(255*+m[4]).toString(16)),s[l]=b}}),r((e,s,l,c)=>{let[m,b]=c.split("/"),w=this.colorThemesMap[m];if(w){let A=(l?w[l]:void 0)??w[""];s[l]=b?A.slice(0,7)+Math.round(255*+b).toString(16):A}else console.warn(`\`${c}\` doesn't exist in the extended config \`.colors\``),delete s[l],Object.keys(s).length||delete this.colorThemesMap[e]}),C)for(let e in C){let s=C[e],{native:l,values:c,colored:m}=s,b=s.match;if(s.id=e,s.native=l===!0?e.replace(/(?!^)[A-Z]/g,w=>"-"+w).toLowerCase():void 0,c&&(this.values[e]=a(c,!1)),b){let w=Object.keys(this.values[e]??{});b.includes("$values")&&(b=w.length?b.replace(/\$values/,w.join("|")):b.replace(/(?:\|)?\$values/,"")),m&&b.includes("$colors")&&(b=this.colorNames.length?b.replace(/\$colors/,"(?:"+this.colorNames.join("|")+")(?![0-9A-Za-z])"):b.replace(/(?:\|)?\$colors/,"")),this.matches[e]=new RegExp(b)}}}observe(t,i={subtree:!0,childList:!0}){if(this.root!==t){if(L&&t){this.root=t;let n=t===document;n&&(S.root=this),this.host=n?document.documentElement:root.host;let u=n?document.head:t,v=n?document.styleSheets:t.styleSheets;for(let R of v){let{ownerNode:p}=R;if(p.id==="master"){this.style=p;break}}if(this.style)for(let R=0;R<this.style.sheet.cssRules.length;R++){let p=this.style.sheet.cssRules[R];if(p.constructor.name==="CSSKeyframesRule")continue;let C=a=>{if(a.selectorText){let g=a.selectorText.split(", ")[0].split(" ");for(let h=0;h<g.length;h++){let f=g[h];if(f[0]==="."){let o=f.slice(1),r="";for(let e=0;e<o.length;e++){let s=o[e],l=o[e+1];if(s==="\\"){if(e++,l!=="\\"){r+=l;continue}}else if(Q.SELECTOR_SYMBOLS.includes(s))break;r+=s}if(!(r in this.ruleBy)&&!(r in this.classes)){let e=this.create(r)[0];if(e)return e}}}}else if(a.cssRules)for(let d=0;d<a.cssRules.length;d++){let g=C(a.cssRules[d]);if(g)return g}},B=C(p);if(B){this.rules.push(B),this.ruleBy[B.className]=B;for(let a=0;a<B.natives.length;a++)B.natives[a].cssRule=this.style.sheet.cssRules[R+a];R+=B.natives.length-1,B.config.insert?.call(B)}}else this.style=V(),u.append(this.style);let E=R=>{R.forEach(p=>{p in this.countBy?this.countBy[p]++:(this.countBy[p]=1,this.insert(p))})};E(this.host.classList),i.subtree&&this.host.querySelectorAll("[class]").forEach(R=>E(R.classList)),this.observer=new MutationObserver(R=>{let p={},C=[],B=[],a=[],d=(o,r)=>{r?o.classList.forEach(h):o.classList.forEach(g);let e=o.children;for(let s=0;s<e.length;s++){let l=e[s];l.classList&&(B.push(l),d(l,r))}},g=o=>{o in p?p[o]++:p[o]=1},h=o=>{o in p?p[o]--:o in this.countBy&&(p[o]=-1)},f=(o,r)=>{for(let e=0;e<o.length;e++){let s=o[e];s.classList&&!B.includes(s)&&!a.includes(s)&&(s.isConnected!==r?(B.push(s),d(s,r)):a.push(s))}};for(let o=0;o<R.length;o++){let r=R[o],{addedNodes:e,removedNodes:s,type:l,target:c}=r;if(l==="attributes"){if(C.find(m=>m.target===c))continue;C.push(r)}else f(e,!1),(!c.isConnected||!B.includes(c))&&f(s,!0)}if(!(!C.length&&!Object.keys(p).length)){for(let{oldValue:o,target:r}of C){let e=B.includes(r),s=r.classList,l=o?o.split(" "):[];if(e){if(r.isConnected)continue;for(let c of l)s.contains(c)||h(c)}else if(r.isConnected){s.forEach(c=>{l.includes(c)||g(c)});for(let c of l)s.contains(c)||h(c)}}for(let o in p){let r=p[o],e=(this.countBy[o]||0)+r;e===0?(delete this.countBy[o],this.delete(o)):(o in this.countBy||this.insert(o),this.countBy[o]=e)}}}),this.observer.observe(t,{...i,attributes:!0,attributeOldValue:!0,attributeFilter:["class"]}),this.host.style.display=null,this.observing=!0}return this}}disconnect(){this.observer&&(this.observer.disconnect(),this.observer=null),this.observing=!1,this.ruleBy={},this.countBy={},this.rules.length=0;let t=this.style?.sheet;if(t?.cssRules)for(let i=t.cssRules.length-1;i>=0;i--)t.deleteRule(i);this.style?.remove(),this.style=null,this.root=null}match(t){for(let i in this.config.rules){let n=this.config.rules[i],u=this.matches[i],{symbol:v,native:E}=n;if(u&&u.test(t))return{origin:"match",config:n};if(v&&t.startsWith(v))return{origin:"symbol",config:n};if(E&&t.startsWith(E+":"))return{origin:"match",config:n}}for(let i of this.semantics)if(t.match(i[0]))return{origin:"semantics",value:i[1]}}create(t){let i=n=>{if(n in this.ruleBy)return this.ruleBy[n];let u=this.match(n);if(u)return new D.Rule(n,u,this)};return(t in this.classes?this.classes[t].map(n=>i(n)):[i(t)]).filter(n=>n&&n.text)}refresh(t){if(t?.override?this.config=t:this.config=O(j.config,t),this.cache(),!this.style)return;let i=V();this.style.replaceWith(i),this.style=i,this.rules.length=0,this.ruleBy={};for(let n in this.countBy)this.insert(n)}destroy(){let t=S.instances;this.disconnect(),t.splice(t.indexOf(this),1)}delete(t){let i=this.style?.sheet,n=u=>{let v=this.ruleBy[u];if(!(!v||u in this.classesBy&&this.classesBy[u].some(E=>E in this.countBy))){if(i&&v.natives.length){let E=v.natives[0];for(let R=0;R<i.cssRules.length;R++)if(i.cssRules[R]===E.cssRule){for(let C=0;C<v.natives.length;C++)i.deleteRule(R);break}}this.rules.splice(this.rules.indexOf(v),1),delete this.ruleBy[u],v.config.delete&&v.config.delete.call(v,u)}};if(t in this.classes){for(let u of this.classes[t])u in this.countBy||n(u);delete this.ruleBy[t]}else n(t)}insert(t){let i=this.create(t);return i.length?(this.insertRules(i),!0):!1}insertRules(t){for(let i of t){if(this.ruleBy[i.className])continue;let n,u=Object.keys(this.keyframes).length,v=this.rules.length-1,{media:E,order:R,priority:p,hasWhere:C,className:B}=i,a=(h,f,o)=>{let r=h;for(;r<=v;r++){let e=this.rules[r];if(f?.(e))return o?-1:r-1;if(o?.(e))return r}return o?-1:r-1},d,g;if(E){let h=this.rules.findIndex(f=>f.media);if(h===-1)n=v+1;else{let{"max-width":f,"min-width":o}=E.features;if(f||o){let r=this.rules.findIndex(e=>e.media?.features["max-width"]||e.media?.features["min-width"]);if(r===-1)n=v+1;else if(f&&o){if(p===-1?(d=a(r,e=>e.priority!==-1,e=>e.media.features["max-width"]&&e.media.features["min-width"]),g=a(r,e=>e.priority!==-1)):(d=a(r,void 0,e=>e.media.features["max-width"]&&e.media.features["min-width"]&&e.priority!==-1),g=v),d!==-1){let e=f.value-o.value,s=g,l=d;for(d=void 0;s>=l;s--){let{"max-width":c,"min-width":m}=this.rules[s].media.features,b=c.value-m.value;if(b<e)g=s-1;else if(b===e)d=s;else break}}if(d!==-1){let e=f.value-o.value;for(let s=g;s>=d;s--){let{"max-width":l,"min-width":c}=this.rules[s].media.features,m=l.value-c.value;if(m<e)g=s-1;else if(m>e){d=s+1;break}}}}else if(o){if(p===-1?(d=a(r,e=>e.media.features["max-width"]&&e.media.features["min-width"]||e.priority!==-1,e=>!e.media.features["max-width"]&&e.media.features["min-width"]),g=a(r,e=>e.media.features["max-width"]&&e.media.features["min-width"]||e.priority!==-1)):(d=a(r,e=>e.media.features["max-width"]&&e.media.features["min-width"]&&e.priority!==-1,e=>!e.media.features["max-width"]&&e.media.features["min-width"]&&e.priority!==-1),g=a(r,e=>e.media.features["max-width"]&&e.media.features["min-width"]&&e.priority!==-1)),d!==-1)for(let e=g;e>=d;e--){let s=this.rules[e].media.features["min-width"].value;if(s>o.value)g=e-1;else if(s<o.value){d=e+1;break}}}else if(p===-1?(d=a(r,e=>e.media.features["min-width"]||e.priority!==-1,e=>e.media.features["max-width"]),g=a(r,e=>e.media.features["min-width"]||e.priority!==-1)):(d=a(r,e=>e.media.features["min-width"]&&e.priority!==-1,e=>e.media.features["max-width"]&&e.priority!==-1),g=a(r,e=>e.media.features["min-width"]&&e.priority!==-1)),d!==-1)for(let e=g;e>=d;e--){let s=this.rules[e].media.features["max-width"].value;if(s<f.value)g=e-1;else if(s>f.value){d=e+1;break}}}else p===-1?(d=h,g=a(h,r=>r.media?.features["max-width"]||r.media?.features["min-width"]||r.priority!==-1)):(d=a(h,r=>r.media?.features["max-width"]||r.media?.features["min-width"],r=>r.priority!==-1),g=a(h,r=>r.media?.features["max-width"]||r.media?.features["min-width"]))}}else{let h=u?1:0;p===-1?(d=h,g=a(h,f=>f.media||f.priority!==-1)):(d=a(h,f=>f.media,f=>f.priority!==-1),g=a(h,f=>f.media))}if(n===void 0)if(d===-1)n=g+1;else{if(p===-1)for(let h=d;h<=g;h++){let f=this.rules[h];if(!(!C&&f.hasWhere)&&(C&&!f.hasWhere||f.order>=R)){n=h;break}}else for(let h=d;h<=g;h++){let f=this.rules[h];if(!(!C&&f.hasWhere)){if(C&&!f.hasWhere){n=h;break}if(f.priority<p){n=h;break}else if(f.priority===p){if(f.order>=R){n=h;break}}else n=h+1}}n===void 0&&(n=g+1)}if(this.rules.splice(n,0,i),this.ruleBy[B]=i,this.style){let h=this.style.sheet,f=0,o=r=>{let e=this.rules[r];if(e){if(!e.natives.length)return o(r-1);let s=e.natives[e.natives.length-1].cssRule;for(let l=0;l<h.cssRules.length;l++)if(h.cssRules[l]===s){f=l+1;break}}};o(n-1);for(let r=0;r<i.natives.length;)try{let e=i.natives[r];h.insertRule(e.text,f),e.cssRule=h.cssRules[f++],r++}catch(e){console.error(e),i.natives.splice(r,1)}}i.config.insert?.call(i)}}get text(){return this.rules.map(t=>t.text).join("")}},M=S;T(M,"root"),T(M,"config",j.config),T(M,"instances",[]),T(M,"refresh",t=>{for(let i of S.instances)i.refresh(t)});L&&(window.MasterCSS=M);0&&(module.exports={MasterCSS});
1
+ var N=Object.defineProperty;var _=Object.getOwnPropertyDescriptor;var Z=Object.getOwnPropertyNames;var q=Object.prototype.hasOwnProperty;var U=(y,t,i)=>t in y?N(y,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):y[t]=i;var Y=(y,t)=>{for(var i in t)N(y,i,{get:t[i],enumerable:!0})},G=(y,t,i,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let u of Z(t))!q.call(y,u)&&u!==i&&N(y,u,{get:()=>t[u],enumerable:!(n=_(t,u))||n.enumerable});return y};var J=y=>G(N({},"__esModule",{value:!0}),y);var T=(y,t,i)=>(U(y,typeof t!="symbol"?t+"":t,i),i);var P={};Y(P,{MasterCSS:()=>M});module.exports=J(P);function I(y){let t=typeof Buffer<"u"?Buffer:null;return!!(t&&y instanceof t||y instanceof Date||y instanceof RegExp)}function $(y){if(typeof Buffer<"u"&&Buffer&&y instanceof Buffer){let t=Buffer.alloc(y.length);return y.copy(t),t}else{if(y instanceof Date)return new Date(y.getTime());if(y instanceof RegExp)return new RegExp(y);throw new Error("Unexpected situation")}}function F(y){let t=[];return y.forEach(function(i,n){typeof i=="object"&&i!==null?Array.isArray(i)?t[n]=F(i):I(i)?t[n]=$(i):t[n]=O({},i):t[n]=i}),t}function W(y,t){return t==="__proto__"?void 0:y[t]}function O(...y){let t={},i,n;return y.forEach(function(u){typeof u!="object"||u===null||Array.isArray(u)||Object.keys(u).forEach(function(v){if(n=W(t,v),i=W(u,v),i!==t)if(typeof i!="object"||i===null){t[v]=i;return}else if(Array.isArray(i)){t[v]=F(i);return}else if(I(i)){t[v]=$(i);return}else if(typeof n!="object"||n===null||Array.isArray(n)){t[v]=O({},i);return}else{t[v]=O(n,i);return}})}),t}var D=require("./rule"),j=require("./config"),H=require("./utils/rgb-to-hex"),Q=require("./constants/selector-symbols");var L=typeof window<"u",V=()=>{let y=document.createElement("style");return y.id="master",y},S=class{constructor(t=j.config){this.config=t;t?.override||(this.config=O(j.config,t),"keyframes"in t&&Object.assign(this.config.keyframes,t.keyframes)),this.cache(),L&&this.config.observe&&this.observe(document),S.instances.push(this)}rules=[];ruleBy={};countBy={};observing=!1;observer;cache(){this.semantics=[],this.classes={},this.colorThemesMap={},this.themeAffectedClassesBy={},this.classesBy={},this.colorNames=[],this.themeNames=[""],this.selectors={},this.values={},this.globalValues={},this.breakpoints={},this.mediaQueries={},this.matches={},this.keyframes={};let{semantics:t,classes:i,selectors:n,themes:u,colors:v,values:E,breakpoints:R,mediaQueries:p,rules:C}=this.config;function B(e){return e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")}function a(e,s,l="",c={}){let m=x=>x?(l?l+"-":"")+x:l,b=Object.entries(e),w=[],A=[];for(let x of b){let k=x[1];(typeof k=="object"&&!Array.isArray(k)?w:A).push(x)}for(let[x,k]of w)a(k,s,m(x),c);if(s&&l)A.length&&(c[l]=A.reduce((x,[k,z])=>(x[k]=z,x),{}));else for(let[x,k]of A)c[m(x)]=k;return c}if(t)for(let[e,s]of Object.entries(a(t,!0)))this.semantics.push([new RegExp("^"+B(e)+"(?=!|\\*|>|\\+|~|:|\\[|@|_|\\.|$)","m"),[e,s]]);if(n)for(let[e,s]of Object.entries(a(n,!1))){let l=new RegExp(B(e)+"(?![a-z-])");for(let c of Array.isArray(s)?s:[s]){let m=c.match(/^::-[a-z]+-/m)?.[0]??"",b=this.selectors[m];b||(b=this.selectors[m]=[]);let w=b.find(([A])=>A===l);w||(w=[l,[]],b.push(w)),w[1].push(c)}}E&&(this.globalValues=a(E,!1)),R&&(this.breakpoints=a(R,!1)),p&&(this.mediaQueries=a(p,!1));let d=i?a(i,!1):{},g=u&&!Array.isArray(u)?Object.entries(u).filter(([,{classes:e}])=>e).reduce((e,[s,{classes:l}])=>(e[s]=a(l,!1),e),{}):{},h=[...Object.keys(d),...Object.entries(g).flatMap(([e,s])=>Object.keys(s))],f=e=>{if(e in this.classes)return;let s=this.classes[e]=[],l=(c,m)=>{if(!m)return;let b=Array.isArray(m)?m:m.replace(/(?:\n(?:\s*))+/g," ").trim().split(" ");for(let w of b){let A=x=>{x in this.themeAffectedClassesBy?c in this.themeAffectedClassesBy[x]?this.themeAffectedClassesBy[x][c].push(e):this.themeAffectedClassesBy[x][c]=[e]:this.themeAffectedClassesBy[x]={[c]:[e]},s.includes(x)||s.push(x)};if(h.includes(w)){f(w);for(let x of this.classes[w])A(x)}else A(w)}};l("",d?.[e]);for(let[c,m]of Object.entries(g))l(c,m?.[e])};for(let e of h)f(e);for(let e in this.themeAffectedClassesBy){let s=this.classesBy[e]=[];for(let l of Object.values(this.themeAffectedClassesBy[e]))for(let c of l)s.includes(c)||s.push(c)}let o=(e,s)=>{if(!s)return;let l=a(s,!0);for(let[c,m]of Object.entries(l)){let b=typeof m=="string"?{"":m}:m;for(let[w,A]of Object.entries(b)){let x=c+(w?"-"+w:"");x in this.colorThemesMap?this.colorThemesMap[x][e]=A:this.colorThemesMap[x]={[e]:A}}}for(let c in s)this.colorNames.includes(c)||this.colorNames.push(c)};if(o("",v),u)if(Array.isArray(u))this.themeNames.push(...u);else for(let e in u){let s=u[e];o(e,s.colors),this.themeNames.push(e)}let r=e=>{for(let[s,l]of Object.entries(this.colorThemesMap))for(let[c,m]of Object.entries(l))m.startsWith("#")||e(s,l,c,m)};if(r((e,s,l,c)=>{let m=/^rgba?\( *([0-9]{1,3}) *(?: |,) *([0-9]{1,3}) *(?: |,) *([0-9]{1,3}) *(?:(?:\/|,) *0?(\.[0-9]))?\)$/.exec(c);if(m){let b="#"+(0,H.rgbToHex)(+m[1],+m[2],+m[3]);m[4]&&(b+=Math.round(255*+m[4]).toString(16)),s[l]=b}}),r((e,s,l,c)=>{let[m,b]=c.split("/"),w=this.colorThemesMap[m];if(w){let A=(l?w[l]:void 0)??w[""];s[l]=b?A.slice(0,7)+Math.round(255*+b).toString(16):A}else console.warn(`\`${c}\` doesn't exist in the extended config \`.colors\``),delete s[l],Object.keys(s).length||delete this.colorThemesMap[e]}),C)for(let e in C){let s=C[e],{native:l,values:c,colored:m}=s,b=s.match;if(s.id=e,s.native=l===!0?e.replace(/(?!^)[A-Z]/g,w=>"-"+w).toLowerCase():void 0,c&&(this.values[e]=a(c,!1)),b){let w=Object.keys(this.values[e]??{});b.includes("$values")&&(b=w.length?b.replace(/\$values/,w.join("|")):b.replace(/(?:\|)?\$values/,"")),m&&b.includes("$colors")&&(b=this.colorNames.length?b.replace(/\$colors/,"(?:"+this.colorNames.join("|")+")(?![0-9A-Za-z])"):b.replace(/(?:\|)?\$colors/,"")),this.matches[e]=new RegExp(b)}}}observe(t,i={subtree:!0,childList:!0}){if(this.root!==t){if(L&&t){this.root=t;let n=t===document;n&&(S.root=this),this.host=n?document.documentElement:this.root.host;let u=n?document.head:t,v=n?document.styleSheets:t.styleSheets;for(let R of v){let{ownerNode:p}=R;if(p.id==="master"){this.style=p;break}}if(this.style)for(let R=0;R<this.style.sheet.cssRules.length;R++){let p=this.style.sheet.cssRules[R];if(p.constructor.name==="CSSKeyframesRule")continue;let C=a=>{if(a.selectorText){let g=a.selectorText.split(", ")[0].split(" ");for(let h=0;h<g.length;h++){let f=g[h];if(f[0]==="."){let o=f.slice(1),r="";for(let e=0;e<o.length;e++){let s=o[e],l=o[e+1];if(s==="\\"){if(e++,l!=="\\"){r+=l;continue}}else if(Q.SELECTOR_SYMBOLS.includes(s))break;r+=s}if(!(r in this.ruleBy)&&!(r in this.classes)){let e=this.create(r)[0];if(e)return e}}}}else if(a.cssRules)for(let d=0;d<a.cssRules.length;d++){let g=C(a.cssRules[d]);if(g)return g}},B=C(p);if(B){this.rules.push(B),this.ruleBy[B.className]=B;for(let a=0;a<B.natives.length;a++)B.natives[a].cssRule=this.style.sheet.cssRules[R+a];R+=B.natives.length-1,B.config.insert?.call(B)}}else this.style=V(),u.append(this.style);let E=R=>{R.forEach(p=>{p in this.countBy?this.countBy[p]++:(this.countBy[p]=1,this.insert(p))})};E(this.host.classList),i.subtree&&this.host.querySelectorAll("[class]").forEach(R=>E(R.classList)),this.observer=new MutationObserver(R=>{let p={},C=[],B=[],a=[],d=(o,r)=>{r?o.classList.forEach(h):o.classList.forEach(g);let e=o.children;for(let s=0;s<e.length;s++){let l=e[s];l.classList&&(B.push(l),d(l,r))}},g=o=>{o in p?p[o]++:p[o]=1},h=o=>{o in p?p[o]--:o in this.countBy&&(p[o]=-1)},f=(o,r)=>{for(let e=0;e<o.length;e++){let s=o[e];s.classList&&!B.includes(s)&&!a.includes(s)&&(s.isConnected!==r?(B.push(s),d(s,r)):a.push(s))}};for(let o=0;o<R.length;o++){let r=R[o],{addedNodes:e,removedNodes:s,type:l,target:c}=r;if(l==="attributes"){if(C.find(m=>m.target===c))continue;C.push(r)}else f(e,!1),(!c.isConnected||!B.includes(c))&&f(s,!0)}if(!(!C.length&&!Object.keys(p).length)){for(let{oldValue:o,target:r}of C){let e=B.includes(r),s=r.classList,l=o?o.split(" "):[];if(e){if(r.isConnected)continue;for(let c of l)s.contains(c)||h(c)}else if(r.isConnected){s.forEach(c=>{l.includes(c)||g(c)});for(let c of l)s.contains(c)||h(c)}}for(let o in p){let r=p[o],e=(this.countBy[o]||0)+r;e===0?(delete this.countBy[o],this.delete(o)):(o in this.countBy||this.insert(o),this.countBy[o]=e)}}}),this.observer.observe(t,{...i,attributes:!0,attributeOldValue:!0,attributeFilter:["class"]}),this.host.style.display=null,this.observing=!0}return this}}disconnect(){this.observer&&(this.observer.disconnect(),this.observer=null),this.observing=!1,this.ruleBy={},this.countBy={},this.rules.length=0;let t=this.style?.sheet;if(t?.cssRules)for(let i=t.cssRules.length-1;i>=0;i--)t.deleteRule(i);this.style?.remove(),this.style=null,this.root=null}match(t){for(let i in this.config.rules){let n=this.config.rules[i],u=this.matches[i],{symbol:v,native:E}=n;if(u&&u.test(t))return{origin:"match",config:n};if(v&&t.startsWith(v))return{origin:"symbol",config:n};if(E&&t.startsWith(E+":"))return{origin:"match",config:n}}for(let i of this.semantics)if(t.match(i[0]))return{origin:"semantics",value:i[1]}}create(t){let i=n=>{if(n in this.ruleBy)return this.ruleBy[n];let u=this.match(n);if(u)return new D.Rule(n,u,this)};return(t in this.classes?this.classes[t].map(n=>i(n)):[i(t)]).filter(n=>n&&n.text)}refresh(t){if(t?.override?this.config=t:this.config=O(j.config,t),this.cache(),!this.style)return;let i=V();this.style.replaceWith(i),this.style=i,this.rules.length=0,this.ruleBy={};for(let n in this.countBy)this.insert(n)}destroy(){let t=S.instances;this.disconnect(),t.splice(t.indexOf(this),1)}delete(t){let i=this.style?.sheet,n=u=>{let v=this.ruleBy[u];if(!(!v||u in this.classesBy&&this.classesBy[u].some(E=>E in this.countBy))){if(i&&v.natives.length){let E=v.natives[0];for(let R=0;R<i.cssRules.length;R++)if(i.cssRules[R]===E.cssRule){for(let C=0;C<v.natives.length;C++)i.deleteRule(R);break}}this.rules.splice(this.rules.indexOf(v),1),delete this.ruleBy[u],v.config.delete&&v.config.delete.call(v,u)}};if(t in this.classes){for(let u of this.classes[t])u in this.countBy||n(u);delete this.ruleBy[t]}else n(t)}insert(t){let i=this.create(t);return i.length?(this.insertRules(i),!0):!1}insertRules(t){for(let i of t){if(this.ruleBy[i.className])continue;let n,u=Object.keys(this.keyframes).length,v=this.rules.length-1,{media:E,order:R,priority:p,hasWhere:C,className:B}=i,a=(h,f,o)=>{let r=h;for(;r<=v;r++){let e=this.rules[r];if(f?.(e))return o?-1:r-1;if(o?.(e))return r}return o?-1:r-1},d,g;if(E){let h=this.rules.findIndex(f=>f.media);if(h===-1)n=v+1;else{let{"max-width":f,"min-width":o}=E.features;if(f||o){let r=this.rules.findIndex(e=>e.media?.features["max-width"]||e.media?.features["min-width"]);if(r===-1)n=v+1;else if(f&&o){if(p===-1?(d=a(r,e=>e.priority!==-1,e=>e.media.features["max-width"]&&e.media.features["min-width"]),g=a(r,e=>e.priority!==-1)):(d=a(r,void 0,e=>e.media.features["max-width"]&&e.media.features["min-width"]&&e.priority!==-1),g=v),d!==-1){let e=f.value-o.value,s=g,l=d;for(d=void 0;s>=l;s--){let{"max-width":c,"min-width":m}=this.rules[s].media.features,b=c.value-m.value;if(b<e)g=s-1;else if(b===e)d=s;else break}}if(d!==-1){let e=f.value-o.value;for(let s=g;s>=d;s--){let{"max-width":l,"min-width":c}=this.rules[s].media.features,m=l.value-c.value;if(m<e)g=s-1;else if(m>e){d=s+1;break}}}}else if(o){if(p===-1?(d=a(r,e=>e.media.features["max-width"]&&e.media.features["min-width"]||e.priority!==-1,e=>!e.media.features["max-width"]&&e.media.features["min-width"]),g=a(r,e=>e.media.features["max-width"]&&e.media.features["min-width"]||e.priority!==-1)):(d=a(r,e=>e.media.features["max-width"]&&e.media.features["min-width"]&&e.priority!==-1,e=>!e.media.features["max-width"]&&e.media.features["min-width"]&&e.priority!==-1),g=a(r,e=>e.media.features["max-width"]&&e.media.features["min-width"]&&e.priority!==-1)),d!==-1)for(let e=g;e>=d;e--){let s=this.rules[e].media.features["min-width"].value;if(s>o.value)g=e-1;else if(s<o.value){d=e+1;break}}}else if(p===-1?(d=a(r,e=>e.media.features["min-width"]||e.priority!==-1,e=>e.media.features["max-width"]),g=a(r,e=>e.media.features["min-width"]||e.priority!==-1)):(d=a(r,e=>e.media.features["min-width"]&&e.priority!==-1,e=>e.media.features["max-width"]&&e.priority!==-1),g=a(r,e=>e.media.features["min-width"]&&e.priority!==-1)),d!==-1)for(let e=g;e>=d;e--){let s=this.rules[e].media.features["max-width"].value;if(s<f.value)g=e-1;else if(s>f.value){d=e+1;break}}}else p===-1?(d=h,g=a(h,r=>r.media?.features["max-width"]||r.media?.features["min-width"]||r.priority!==-1)):(d=a(h,r=>r.media?.features["max-width"]||r.media?.features["min-width"],r=>r.priority!==-1),g=a(h,r=>r.media?.features["max-width"]||r.media?.features["min-width"]))}}else{let h=u?1:0;p===-1?(d=h,g=a(h,f=>f.media||f.priority!==-1)):(d=a(h,f=>f.media,f=>f.priority!==-1),g=a(h,f=>f.media))}if(n===void 0)if(d===-1)n=g+1;else{if(p===-1)for(let h=d;h<=g;h++){let f=this.rules[h];if(!(!C&&f.hasWhere)&&(C&&!f.hasWhere||f.order>=R)){n=h;break}}else for(let h=d;h<=g;h++){let f=this.rules[h];if(!(!C&&f.hasWhere)){if(C&&!f.hasWhere){n=h;break}if(f.priority<p){n=h;break}else if(f.priority===p){if(f.order>=R){n=h;break}}else n=h+1}}n===void 0&&(n=g+1)}if(this.rules.splice(n,0,i),this.ruleBy[B]=i,this.style){let h=this.style.sheet,f=0,o=r=>{let e=this.rules[r];if(e){if(!e.natives.length)return o(r-1);let s=e.natives[e.natives.length-1].cssRule;for(let l=0;l<h.cssRules.length;l++)if(h.cssRules[l]===s){f=l+1;break}}};o(n-1);for(let r=0;r<i.natives.length;)try{let e=i.natives[r];h.insertRule(e.text,f),e.cssRule=h.cssRules[f++],r++}catch(e){console.error(e),i.natives.splice(r,1)}}i.config.insert?.call(i)}}get text(){return this.rules.map(t=>t.text).join("")}},M=S;T(M,"root"),T(M,"config",j.config),T(M,"instances",[]),T(M,"refresh",t=>{for(let i of S.instances)i.refresh(t)});L&&(window.MasterCSS=M);0&&(module.exports={MasterCSS});
package/dist/cjs/rule.js CHANGED
@@ -1 +1 @@
1
- var Q=Object.defineProperty;var ge=Object.getOwnPropertyDescriptor;var he=Object.getOwnPropertyNames;var de=Object.prototype.hasOwnProperty;var pe=(u,i)=>{for(var r in i)Q(u,r,{get:i[r],enumerable:!0})},me=(u,i,r,S)=>{if(i&&typeof i=="object"||typeof i=="function")for(let v of he(i))!de.call(u,v)&&v!==r&&Q(u,v,{get:()=>i[v],enumerable:!(S=ge(i,v))||S.enumerable});return u};var xe=u=>me(Q({},"__esModule",{value:!0}),u);var Se={};pe(Se,{Rule:()=>$});module.exports=xe(Se);var q=require("./constants/start-symbol"),fe=require("./utils/css-escape");function re(u){let i=typeof Buffer<"u"?Buffer:null;return!!(i&&u instanceof i||u instanceof Date||u instanceof RegExp)}function oe(u){if(typeof Buffer<"u"&&Buffer&&u instanceof Buffer){let i=Buffer.alloc(u.length);return u.copy(i),i}else{if(u instanceof Date)return new Date(u.getTime());if(u instanceof RegExp)return new RegExp(u);throw new Error("Unexpected situation")}}function le(u){let i=[];return u.forEach(function(r,S){typeof r=="object"&&r!==null?Array.isArray(r)?i[S]=le(r):re(r)?i[S]=oe(r):i[S]=_({},r):i[S]=r}),i}function se(u,i){return i==="__proto__"?void 0:u[i]}function _(...u){let i={},r,S;return u.forEach(function(v){typeof v!="object"||v===null||Array.isArray(v)||Object.keys(v).forEach(function(k){if(S=se(i,k),r=se(v,k),r!==i)if(typeof r!="object"||r===null){i[k]=r;return}else if(Array.isArray(r)){i[k]=le(r);return}else if(re(r)){i[k]=oe(r);return}else if(typeof S!="object"||S===null||Array.isArray(S)){i[k]=_({},r);return}else{i[k]=_(S,r);return}})}),i}var ye={unit:"",order:0,separators:[","]},$=class{constructor(i,r={},S){this.className=i;this.meta=r;this.css=S;this.config=_(ye,r.config);let{unit:v,order:k,colored:C,native:N,analyze:F,transform:Y,declare:Z,create:H}=this.config,{scope:J,important:ce,functions:ae}=S.config,{themeNames:K,colorNames:X,colorThemesMap:G,selectors:P,breakpoints:ee,mediaQueries:W,themeAffectedClassesBy:ue,globalValues:z}=S,te=ue[i];H&&H.call(this,i);let B,ie,D,A,w;if(r.origin==="semantics"){let[h,c]=r.value;A=i.slice(h.length),B=c}else{let h;if(F)[h,D]=F.call(this,i);else if(r.origin==="match"){let l=i.indexOf(":");this.prefix=i.slice(0,l+1),h=i.slice(l+1)}else r.origin==="symbol"&&(this.symbol=i[0],h=i.slice(1));w=[];let c=this,a=this.values,m=[","];this.config.separators.length&&m.push(...this.config.separators);let n="",t=0;(function l(e,f,o,s=void 0,g=[],b=[],d){let T=s===void 0,x,E=p=>p==="'"||p==='"',V=()=>x=n.length,M=()=>{if(n){let p=n,y=T?p:n.slice(x);if(n="",j="",a&&y in a&&!g.includes(y)){let R=t;t=0,l(a[y].toString(),f,void 0,s,[...g,y],b,d),t=R,T||(n=n.slice(0,x)+n)}else if(z&&y in z&&!b.includes(y)){let R=t;t=0,l(z[y].toString(),f,void 0,s,g,[...b,y],d),t=R,T||(n=n.slice(0,x)+n)}else if(T){let R=!d&&c.analyzeUnitValue(y,f);w.push({value:R?.value??y,unit:R?.unit})}else{let R=!d&&c.analyzeUnitValue(y,f);n=R?p.slice(0,x)+R.value+R.unit:p}V()}},O=E(o);V();let j="";for(;t<e.length;t++){let p=e[t];if(p===o){if(O){n+=p;let y=0;for(let R=n.length-2;n[R]==="\\";R--)y++;if(y%2)continue}else M(),n+=p;return}else if(!O&&p in q.START_SYMBOLS){let y=p==="("&&j&&ae?.[j];y?.name&&(n=n.slice(0,n.length-j.length)+y.name,j=y.name),n+=p,t++;let R=q.START_SYMBOLS[p];l(e,y?.unit??f,R,j||s||"",g,b,d||!!y?.transform),y?.transform&&(n=n.slice(0,x+j.length+1)+y.transform.call(c,n.slice(x+j.length+1,-1))+n.slice(-1)),T&&(E(R)?(w.push(n),n=""):M()),j=""}else if((p==="|"||p===" ")&&o!=="}"&&(!O||s==="path"))M(),T||(n+=" ",x++);else{if(!O){if(p==="."){if(isNaN(+e[t+1]))break;e[t-1]==="-"&&(n+="0")}else if(m.includes(p)){M(),T?w.push(p):(n+=p,x++);continue}else if(T&&(p==="#"&&(n||w.length&&e[t-1]!=="|"&&w[t-1]!==" ")||["!","*",">","+","~",":","[","@","_"].includes(p)))break;j+=p}n+=p}}s===void 0&&M()})(h,v),A=h.slice(t)}this.order=typeof k=="function"?k.call(this,this.prefix):k,A[0]==="!"&&(this.important=!0,A=A.slice(1));let ne=h=>{let c=h.split(/(\\'(?:.*?)[^\\]\\')(?=[*_>~+,)])|(\[[^=]+='(?:.*?)[^\\]'\])/).map((t,l)=>l%3?t:t.replace(/_/g," ")).join(""),a=[],m="",n=0;for(let t=0;t<c.length;t++){let l=c[t];if(l==="\\"){m+=l+c[++t];continue}!n&&l===","?(a.push(m),m=""):(m+=l,n&&l===")"?n--:l==="("&&n++)}return m&&a.push(m),a};this.prefixSelectors=D?ne(D):[""];let I=A.split("@"),U=I[0];if(U){this.vendorSuffixSelectors={};let h=(t,l,e,f)=>{for(let[o,s]of l)if(o.test(t)){for(let g of s)h(t.replace(o,g),l,e,!0);return}f&&e.push(t)},c=[];""in P?h(U,P[""],c,!0):c.push(U);let a={};for(let[t,l]of Object.entries(P)){if(!t)continue;let e=[];for(let f of c)h(f,l,e,!1);e.length&&(a[t]=e)}let m=(t,l)=>{let e=l.reduce((f,o)=>(f.push(...ne(o)),f),[]);t in this.vendorSuffixSelectors?this.vendorSuffixSelectors[t].push(...e):this.vendorSuffixSelectors[t]=e},n=Object.keys(a);if(n.length)for(let t of n)m(t,a[t]);else m("",c);for(let t of Object.values(this.vendorSuffixSelectors))for(let l of t){this.hasWhere!==!1&&(this.hasWhere=l.includes(":where("));let e=[":disabled",":active",":focus",":hover"];for(let f=0;f<e.length;f++)if(l.includes(e[f])){(this.priority===-1||this.priority>f)&&(this.priority=f);break}}}else this.vendorSuffixSelectors={"":[""]};for(let h=1;h<I.length;h++){let c=I[h];if(c)if(K.includes(c))this.theme=c;else if(c==="rtl"||c==="ltr")this.direction=c;else{let a,m,n=c.indexOf("_");if(n!==-1)a=c.slice(0,n),m=c.slice(n);else{let t=c.indexOf("(");t!==-1&&(a=c.slice(0,t),m=c.slice(t))}if(!a){a="media";let t=[];this.media={token:c,features:{}};let l=c.split("&");for(let e of l)if(e==="all"||e==="print"||e==="screen"||e==="speech")this.media.type=e;else if(e==="\u{1F5A8}")this.media.type="print";else if(e==="landscape"||e==="portrait")t.push("(orientation:"+e+")");else if(e==="motion"||e==="reduced-motion")t.push("(prefers-reduced-motion:"+(e==="motion"?"no-preference":"reduce")+")");else if(W&&e in W)t.push(W[e]);else{let f={token:e},o="",s="",g=0;e.startsWith("<=")?(s="<=",o="max-width"):e.startsWith(">=")||ee[e]?(s=">=",o="min-width"):e.startsWith(">")?(s=">",o="min-width",g=.02):e.startsWith("<")&&(s="<",o="max-width",g=-.02);let b=s?e.replace(s,""):e,d=ee[b];switch(o){case"max-width":case"min-width":d?Object.assign(f,this.analyzeUnitValue(d.toString(),"px")):Object.assign(f,this.analyzeUnitValue(b,"px")),f.unit==="px"&&(f.value+=g),this.media.features[o]=f,t.push("("+o+":"+(f.value+f.unit)+")");break}}m="",this.media.type&&(m=this.media.type),t.length&&(m+=(m?" and ":"")+t.join(" and "))}m&&(this.at[a]=(a in this.at?this.at[a]+" and ":"")+m.replace(/_/g," "))}}let L=(h,c)=>{let a,m=(l,e,f)=>{let o="";this.direction&&(o+="[dir="+this.direction+"] ");let s=this.prefixSelectors.map(d=>d+o),g=(d,T)=>s.map(x=>(d?"."+d+" ":"")+(J?J+" ":"")+x).reduce((x,E)=>(x.push(f.reduce((V,M)=>(V.push(E+"."+(0,fe.cssEscape)(T)+M),V),[]).join(",")),x),[]).join(","),b=g(e,i)+(te?Object.entries(te).filter(([d])=>this.theme||!C||!e||!d||d===e).map(([d,T])=>T.reduce((x,E)=>x+","+g(this.theme??((C||ie)&&e||d),E),"")).join(""):"")+"{"+l+"}";for(let d of Object.keys(this.at).sort((T,x)=>x==="supports"?-1:1))b="@"+d+" "+this.at[d]+"{"+b+"}";return b},n=[];if(w){let l=[this.theme??h,""],e,f=!1;for(let o of w)if(typeof o=="string")n.push(o);else{let s=o.value;if(o.unit)s+=o.unit;else if(C&&G&&X){let g=!1;s=s.replace(new RegExp(`(^|,| |\\()((?:${X.join("|")})(?:-(?:[0-9A-Za-z-]+))?)(?:\\/(\\.?[0-9]+%?))?(?=(\\)|\\}|,| |$))`,"gm"),(b,d,T,x)=>{let E=G[T];if(E){let V,M;for(let O of l)if(V=E[O]){M=O;break}if(V){g=!c||M===h,e||(e=g);let O=V;if(x){let j=x.endsWith("%")?parseFloat(x)/100:+x;j=isNaN(j)?1:Math.min(Math.max(j,0),1),O+=Math.round(j*255).toString(16).toUpperCase().padStart(2,"0")}return d+O}else f=!0}return b})}n.push(s)}if(c&&(f||(e===void 0?h:!e)))return;if(a=n.reduce((o,s,g)=>o+s+(s===","||w[g+1]===","||g===w.length-1?"":" "),""),Y&&(a=Y.call(this,a,this.css.config)),C&&a==="current"&&(a="currentColor"),Z){let o,s;if(w.length===1){let g=w[0];typeof g=="object"&&(o=g.value,s=g.unit)}B=Z.call(this,s?o:a,s||"")}else B={[N]:a}}let t={};for(let l in B){let e=(s,g)=>{let b=g+((this.important||ce)&&!g.endsWith("!important")?"!important":"");s in t?t[s].push(b):t[s]=[b]},f=l+":",o=B[l];if(typeof o=="object")if(Array.isArray(o))for(let s of o)e(h,f+s.toString());else{ie=!0;for(let s in o)e(s,f+o[s])}else e(h,f+o.toString())}for(let l of Object.values(this.vendorSuffixSelectors))for(let e in t)this.natives.push({text:m(t[e].join(";"),e,l),theme:e})};if(this.theme)L(this.theme,!1);else if(C)for(let h of K)L(h,!0);else L("",!1)}at={};priority=-1;natives=[];keyframeNames;config;get values(){return this.css.values[this.config.id]}get text(){return this.natives.map(i=>i.text).join("")}resolveValue(i,r){return Number.isNaN(+i)?i:i/(r==="rem"||r==="em"?this.css.config.rootSize:1)+r}analyzeUnitValue(i,r){let S=r??this.config.unit;if(S){let v="",k=i.match(/^([+-.]?\d+(\.?\d+)?)(.*)?/);if(k)if(i.includes("/")){let[C,N]=i.split("/");return{value:+C/+N*100+"%",unit:v}}else{let C=+k[1];return v=k[3]||"",v||((S==="rem"||S==="em")&&(C=C/this.css.config.rootSize),v=S||""),{value:C,unit:v}}}}};0&&(module.exports={Rule});
1
+ var Q=Object.defineProperty;var he=Object.getOwnPropertyDescriptor;var de=Object.getOwnPropertyNames;var pe=Object.prototype.hasOwnProperty;var me=(u,i)=>{for(var r in i)Q(u,r,{get:i[r],enumerable:!0})},xe=(u,i,r,S)=>{if(i&&typeof i=="object"||typeof i=="function")for(let v of de(i))!pe.call(u,v)&&v!==r&&Q(u,v,{get:()=>i[v],enumerable:!(S=he(i,v))||S.enumerable});return u};var ye=u=>xe(Q({},"__esModule",{value:!0}),u);var ve={};me(ve,{Rule:()=>F});module.exports=ye(ve);var q=require("./constants/start-symbol"),ce=require("./utils/css-escape");function oe(u){let i=typeof Buffer<"u"?Buffer:null;return!!(i&&u instanceof i||u instanceof Date||u instanceof RegExp)}function le(u){if(typeof Buffer<"u"&&Buffer&&u instanceof Buffer){let i=Buffer.alloc(u.length);return u.copy(i),i}else{if(u instanceof Date)return new Date(u.getTime());if(u instanceof RegExp)return new RegExp(u);throw new Error("Unexpected situation")}}function fe(u){let i=[];return u.forEach(function(r,S){typeof r=="object"&&r!==null?Array.isArray(r)?i[S]=fe(r):oe(r)?i[S]=le(r):i[S]=_({},r):i[S]=r}),i}function re(u,i){return i==="__proto__"?void 0:u[i]}function _(...u){let i={},r,S;return u.forEach(function(v){typeof v!="object"||v===null||Array.isArray(v)||Object.keys(v).forEach(function(k){if(S=re(i,k),r=re(v,k),r!==i)if(typeof r!="object"||r===null){i[k]=r;return}else if(Array.isArray(r)){i[k]=fe(r);return}else if(oe(r)){i[k]=le(r);return}else if(typeof S!="object"||S===null||Array.isArray(S)){i[k]=_({},r);return}else{i[k]=_(S,r);return}})}),i}var Se={unit:"",order:0,separators:[","]},F=class{constructor(i,r={},S){this.className=i;this.meta=r;this.css=S;this.config=_(Se,r.config);let{unit:v,order:k,colored:C,native:N,analyze:Y,transform:Z,declare:H,create:J}=this.config,{scope:K,important:ae,functions:ue,themeDriver:D}=S.config,{themeNames:X,colorNames:G,colorThemesMap:ee,selectors:P,breakpoints:te,mediaQueries:W,themeAffectedClassesBy:ge,globalValues:z}=S,ie=ge[i];J&&J.call(this,i);let B,ne,I,A,w;if(r.origin==="semantics"){let[h,c]=r.value;A=i.slice(h.length),B=c}else{let h;if(Y)[h,I]=Y.call(this,i);else if(r.origin==="match"){let l=i.indexOf(":");this.prefix=i.slice(0,l+1),h=i.slice(l+1)}else r.origin==="symbol"&&(this.symbol=i[0],h=i.slice(1));w=[];let c=this,a=this.values,m=[","];this.config.separators.length&&m.push(...this.config.separators);let n="",t=0;(function l(e,f,o,s=void 0,g=[],b=[],d){let T=s===void 0,x,E=p=>p==="'"||p==='"',V=()=>x=n.length,M=()=>{if(n){let p=n,y=T?p:n.slice(x);if(n="",j="",a&&y in a&&!g.includes(y)){let R=t;t=0,l(a[y].toString(),f,void 0,s,[...g,y],b,d),t=R,T||(n=n.slice(0,x)+n)}else if(z&&y in z&&!b.includes(y)){let R=t;t=0,l(z[y].toString(),f,void 0,s,g,[...b,y],d),t=R,T||(n=n.slice(0,x)+n)}else if(T){let R=!d&&c.analyzeUnitValue(y,f);w.push({value:R?.value??y,unit:R?.unit})}else{let R=!d&&c.analyzeUnitValue(y,f);n=R?p.slice(0,x)+R.value+R.unit:p}V()}},O=E(o);V();let j="";for(;t<e.length;t++){let p=e[t];if(p===o){if(O){n+=p;let y=0;for(let R=n.length-2;n[R]==="\\";R--)y++;if(y%2)continue}else M(),n+=p;return}else if(!O&&p in q.START_SYMBOLS){let y=p==="("&&j&&ue?.[j];y?.name&&(n=n.slice(0,n.length-j.length)+y.name,j=y.name),n+=p,t++;let R=q.START_SYMBOLS[p];l(e,y?.unit??f,R,j||s||"",g,b,d||!!y?.transform),y?.transform&&(n=n.slice(0,x+j.length+1)+y.transform.call(c,n.slice(x+j.length+1,-1))+n.slice(-1)),T&&(E(R)?(w.push(n),n=""):M()),j=""}else if((p==="|"||p===" ")&&o!=="}"&&(!O||s==="path"))M(),T||(n+=" ",x++);else{if(!O){if(p==="."){if(isNaN(+e[t+1]))break;e[t-1]==="-"&&(n+="0")}else if(m.includes(p)){M(),T?w.push(p):(n+=p,x++);continue}else if(T&&(p==="#"&&(n||w.length&&e[t-1]!=="|"&&w[t-1]!==" ")||["!","*",">","+","~",":","[","@","_"].includes(p)))break;j+=p}n+=p}}s===void 0&&M()})(h,v),A=h.slice(t)}this.order=typeof k=="function"?k.call(this,this.prefix):k,A[0]==="!"&&(this.important=!0,A=A.slice(1));let se=h=>{let c=h.split(/(\\'(?:.*?)[^\\]\\')(?=[*_>~+,)])|(\[[^=]+='(?:.*?)[^\\]'\])/).map((t,l)=>l%3?t:t.replace(/_/g," ")).join(""),a=[],m="",n=0;for(let t=0;t<c.length;t++){let l=c[t];if(l==="\\"){m+=l+c[++t];continue}!n&&l===","?(a.push(m),m=""):(m+=l,n&&l===")"?n--:l==="("&&n++)}return m&&a.push(m),a};this.prefixSelectors=I?se(I):[""];let U=A.split("@"),$=U[0];if($){this.vendorSuffixSelectors={};let h=(t,l,e,f)=>{for(let[o,s]of l)if(o.test(t)){for(let g of s)h(t.replace(o,g),l,e,!0);return}f&&e.push(t)},c=[];""in P?h($,P[""],c,!0):c.push($);let a={};for(let[t,l]of Object.entries(P)){if(!t)continue;let e=[];for(let f of c)h(f,l,e,!1);e.length&&(a[t]=e)}let m=(t,l)=>{let e=l.reduce((f,o)=>(f.push(...se(o)),f),[]);t in this.vendorSuffixSelectors?this.vendorSuffixSelectors[t].push(...e):this.vendorSuffixSelectors[t]=e},n=Object.keys(a);if(n.length)for(let t of n)m(t,a[t]);else m("",c);for(let t of Object.values(this.vendorSuffixSelectors))for(let l of t){this.hasWhere!==!1&&(this.hasWhere=l.includes(":where("));let e=[":disabled",":active",":focus",":hover"];for(let f=0;f<e.length;f++)if(l.includes(e[f])){(this.priority===-1||this.priority>f)&&(this.priority=f);break}}}else this.vendorSuffixSelectors={"":[""]};for(let h=1;h<U.length;h++){let c=U[h];if(c)if(X.includes(c))this.theme=c;else if(c==="rtl"||c==="ltr")this.direction=c;else{let a,m,n=c.indexOf("_");if(n!==-1)a=c.slice(0,n),m=c.slice(n);else{let t=c.indexOf("(");t!==-1&&(a=c.slice(0,t),m=c.slice(t))}if(!a){a="media";let t=[];this.media={token:c,features:{}};let l=c.split("&");for(let e of l)if(e==="all"||e==="print"||e==="screen"||e==="speech")this.media.type=e;else if(e==="\u{1F5A8}")this.media.type="print";else if(e==="landscape"||e==="portrait")t.push("(orientation:"+e+")");else if(e==="motion"||e==="reduced-motion")t.push("(prefers-reduced-motion:"+(e==="motion"?"no-preference":"reduce")+")");else if(W&&e in W)t.push(W[e]);else{let f={token:e},o="",s="",g=0;e.startsWith("<=")?(s="<=",o="max-width"):e.startsWith(">=")||te[e]?(s=">=",o="min-width"):e.startsWith(">")?(s=">",o="min-width",g=.02):e.startsWith("<")&&(s="<",o="max-width",g=-.02);let b=s?e.replace(s,""):e,d=te[b];switch(o){case"max-width":case"min-width":d?Object.assign(f,this.analyzeUnitValue(d.toString(),"px")):Object.assign(f,this.analyzeUnitValue(b,"px")),f.unit==="px"&&(f.value+=g),this.media.features[o]=f,t.push("("+o+":"+(f.value+f.unit)+")");break}}m="",this.media.type&&(m=this.media.type),t.length&&(m+=(m?" and ":"")+t.join(" and "))}m&&(this.at[a]=(a in this.at?this.at[a]+" and ":"")+m.replace(/_/g," "))}}let L=(h,c)=>{let a,m=(l,e,f)=>{let o="";this.direction&&(o+="[dir="+this.direction+"] ");let s=this.prefixSelectors.map(d=>d+o),g=(d,T)=>s.map(x=>(d&&D!=="media"?D==="host"?`:host(.${d}) `:`.${d} `:"")+(K?K+" ":"")+x).reduce((x,E)=>(x.push(f.reduce((V,M)=>(V.push(E+"."+(0,ce.cssEscape)(T)+M),V),[]).join(",")),x),[]).join(","),b=g(e,i)+(ie?Object.entries(ie).filter(([d])=>this.theme||!C||!e||!d||d===e).map(([d,T])=>T.reduce((x,E)=>x+","+g(this.theme??((C||ne)&&e||d),E),"")).join(""):"")+"{"+l+"}";for(let d of Object.keys(this.at).sort((T,x)=>x==="supports"?-1:1))b="@"+d+" "+this.at[d]+"{"+b+"}";return e&&D==="media"&&(b=`@media(prefers-color-scheme:${e}){`+b+"}"),b},n=[];if(w){let l=[this.theme??h,""],e,f=!1;for(let o of w)if(typeof o=="string")n.push(o);else{let s=o.value;if(o.unit)s+=o.unit;else if(C&&ee&&G){let g=!1;s=s.replace(new RegExp(`(^|,| |\\()((?:${G.join("|")})(?:-(?:[0-9A-Za-z-]+))?)(?:\\/(\\.?[0-9]+%?))?(?=(\\)|\\}|,| |$))`,"gm"),(b,d,T,x)=>{let E=ee[T];if(E){let V,M;for(let O of l)if(V=E[O]){M=O;break}if(V){g=!c||M===h,e||(e=g);let O=V;if(x){let j=x.endsWith("%")?parseFloat(x)/100:+x;j=isNaN(j)?1:Math.min(Math.max(j,0),1),O+=Math.round(j*255).toString(16).toUpperCase().padStart(2,"0")}return d+O}else f=!0}return b})}n.push(s)}if(c&&(f||(e===void 0?h:!e)))return;if(a=n.reduce((o,s,g)=>o+s+(s===","||w[g+1]===","||g===w.length-1?"":" "),""),Z&&(a=Z.call(this,a,this.css.config)),C&&a==="current"&&(a="currentColor"),H){let o,s;if(w.length===1){let g=w[0];typeof g=="object"&&(o=g.value,s=g.unit)}B=H.call(this,s?o:a,s||"")}else B={[N]:a}}let t={};for(let l in B){let e=(s,g)=>{let b=g+((this.important||ae)&&!g.endsWith("!important")?"!important":"");s in t?t[s].push(b):t[s]=[b]},f=l+":",o=B[l];if(typeof o=="object")if(Array.isArray(o))for(let s of o)e(h,f+s.toString());else{ne=!0;for(let s in o)e(s,f+o[s])}else e(h,f+o.toString())}for(let l of Object.values(this.vendorSuffixSelectors))for(let e in t)this.natives.push({text:m(t[e].join(";"),e,l),theme:e})};if(this.theme)L(this.theme,!1);else if(C)for(let h of X)L(h,!0);else L("",!1)}at={};priority=-1;natives=[];keyframeNames;config;get values(){return this.css.values[this.config.id]}get text(){return this.natives.map(i=>i.text).join("")}resolveValue(i,r){return Number.isNaN(+i)?i:i/(r==="rem"||r==="em"?this.css.config.rootSize:1)+r}analyzeUnitValue(i,r){let S=r??this.config.unit;if(S){let v="",k=i.match(/^([+-.]?\d+(\.?\d+)?)(.*)?/);if(k)if(i.includes("/")){let[C,N]=i.split("/");return{value:+C/+N*100+"%",unit:v}}else{let C=+k[1];return v=k[3]||"",v||((S==="rem"||S==="em")&&(C=C/this.css.config.rootSize),v=S||""),{value:C,unit:v}}}}};0&&(module.exports={Rule});
@@ -11,8 +11,9 @@ import { observe } from './observe';
11
11
  import { important } from './important';
12
12
  import { keyframes } from './keyframes';
13
13
  import { functions, FunctionConfig } from './functions';
14
+ import { themeDriver } from './themeDriver';
14
15
  declare const config: Config;
15
- export { config, breakpoints, colors, rootSize, scope, selectors, semantics, themes, rules, override, observe, important, functions, keyframes };
16
+ export { config, breakpoints, colors, rootSize, scope, selectors, semantics, themes, rules, override, observe, important, functions, keyframes, themeDriver };
16
17
  import type { RuleConfig } from '../rule';
17
18
  type Classes = {
18
19
  [key: string]: string | Classes;
@@ -59,4 +60,5 @@ export interface Config {
59
60
  functions?: Record<string, FunctionConfig>;
60
61
  keyframes?: Record<string, Record<string, Record<string, string | number>>>;
61
62
  precedence?: 'highest' | 'higher' | 'lowest';
63
+ themeDriver?: 'class' | 'media' | 'host';
62
64
  }
@@ -0,0 +1 @@
1
+ export declare const themeDriver = "class";
@@ -1 +1 @@
1
- import{breakpoints as e}from"./breakpoints.mjs";import{colors as r}from"./colors.mjs";import{rootSize as s}from"./root-size.mjs";import{scope as o}from"./scope.mjs";import{selectors as t}from"./selectors.mjs";import{semantics as i}from"./semantics.mjs";import{themes as n}from"./themes.mjs";import{rules as m}from"./rules.mjs";import{override as a}from"./override.mjs";import{observe as p}from"./observe.mjs";import{important as c}from"./important.mjs";import{keyframes as g}from"./keyframes.mjs";import{functions as l}from"./functions.mjs";var M={breakpoints:e,colors:r,rootSize:s,scope:o,selectors:t,semantics:i,themes:n,rules:m,override:a,observe:p,important:c,functions:l,keyframes:g};export{e as breakpoints,r as colors,M as config,l as functions,c as important,g as keyframes,p as observe,a as override,s as rootSize,m as rules,o as scope,t as selectors,i as semantics,n as themes};
1
+ import{breakpoints as e}from"./breakpoints.mjs";import{colors as r}from"./colors.mjs";import{rootSize as s}from"./root-size.mjs";import{scope as o}from"./scope.mjs";import{selectors as t}from"./selectors.mjs";import{semantics as i}from"./semantics.mjs";import{themes as n}from"./themes.mjs";import{rules as m}from"./rules.mjs";import{override as a}from"./override.mjs";import{observe as p}from"./observe.mjs";import{important as c}from"./important.mjs";import{keyframes as g}from"./keyframes.mjs";import{functions as l}from"./functions.mjs";import{themeDriver as f}from"./themeDriver.mjs";var z={breakpoints:e,colors:r,rootSize:s,scope:o,selectors:t,semantics:i,themes:n,rules:m,override:a,observe:p,important:c,functions:l,keyframes:g,themeDriver:f};export{e as breakpoints,r as colors,z as config,l as functions,c as important,g as keyframes,p as observe,a as override,s as rootSize,m as rules,o as scope,t as selectors,i as semantics,f as themeDriver,n as themes};
@@ -0,0 +1 @@
1
+ var e="class";export{e as themeDriver};
package/dist/esm/css.mjs CHANGED
@@ -1 +1 @@
1
- var D=Object.defineProperty;var H=(v,t,i)=>t in v?D(v,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):v[t]=i;var S=(v,t,i)=>(H(v,typeof t!="symbol"?t+"":t,i),i);function W(v){let t=typeof Buffer<"u"?Buffer:null;return!!(t&&v instanceof t||v instanceof Date||v instanceof RegExp)}function I(v){if(typeof Buffer<"u"&&Buffer&&v instanceof Buffer){let t=Buffer.alloc(v.length);return v.copy(t),t}else{if(v instanceof Date)return new Date(v.getTime());if(v instanceof RegExp)return new RegExp(v);throw new Error("Unexpected situation")}}function $(v){let t=[];return v.forEach(function(i,n){typeof i=="object"&&i!==null?Array.isArray(i)?t[n]=$(i):W(i)?t[n]=I(i):t[n]=M({},i):t[n]=i}),t}function L(v,t){return t==="__proto__"?void 0:v[t]}function M(...v){let t={},i,n;return v.forEach(function(y){typeof y!="object"||y===null||Array.isArray(y)||Object.keys(y).forEach(function(b){if(n=L(t,b),i=L(y,b),i!==t)if(typeof i!="object"||i===null){t[b]=i;return}else if(Array.isArray(i)){t[b]=$(i);return}else if(W(i)){t[b]=I(i);return}else if(typeof n!="object"||n===null||Array.isArray(n)){t[b]=M({},i);return}else{t[b]=M(n,i);return}})}),t}import{Rule as Q}from"./rule.mjs";import{config as T}from"./config/index.mjs";import{rgbToHex as z}from"./utils/rgb-to-hex.mjs";import{SELECTOR_SYMBOLS as _}from"./constants/selector-symbols.mjs";var N=typeof window<"u",F=()=>{let v=document.createElement("style");return v.id="master",v},O=class{constructor(t=T){this.config=t;t?.override||(this.config=M(T,t),"keyframes"in t&&Object.assign(this.config.keyframes,t.keyframes)),this.cache(),N&&this.config.observe&&this.observe(document),O.instances.push(this)}rules=[];ruleBy={};countBy={};observing=!1;observer;cache(){this.semantics=[],this.classes={},this.colorThemesMap={},this.themeAffectedClassesBy={},this.classesBy={},this.colorNames=[],this.themeNames=[""],this.selectors={},this.values={},this.globalValues={},this.breakpoints={},this.mediaQueries={},this.matches={},this.keyframes={};let{semantics:t,classes:i,selectors:n,themes:y,colors:b,values:E,breakpoints:R,mediaQueries:g,rules:C}=this.config;function B(e){return e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")}function a(e,s,l="",c={}){let d=x=>x?(l?l+"-":"")+x:l,p=Object.entries(e),w=[],A=[];for(let x of p){let j=x[1];(typeof j=="object"&&!Array.isArray(j)?w:A).push(x)}for(let[x,j]of w)a(j,s,d(x),c);if(s&&l)A.length&&(c[l]=A.reduce((x,[j,V])=>(x[j]=V,x),{}));else for(let[x,j]of A)c[d(x)]=j;return c}if(t)for(let[e,s]of Object.entries(a(t,!0)))this.semantics.push([new RegExp("^"+B(e)+"(?=!|\\*|>|\\+|~|:|\\[|@|_|\\.|$)","m"),[e,s]]);if(n)for(let[e,s]of Object.entries(a(n,!1))){let l=new RegExp(B(e)+"(?![a-z-])");for(let c of Array.isArray(s)?s:[s]){let d=c.match(/^::-[a-z]+-/m)?.[0]??"",p=this.selectors[d];p||(p=this.selectors[d]=[]);let w=p.find(([A])=>A===l);w||(w=[l,[]],p.push(w)),w[1].push(c)}}E&&(this.globalValues=a(E,!1)),R&&(this.breakpoints=a(R,!1)),g&&(this.mediaQueries=a(g,!1));let u=i?a(i,!1):{},m=y&&!Array.isArray(y)?Object.entries(y).filter(([,{classes:e}])=>e).reduce((e,[s,{classes:l}])=>(e[s]=a(l,!1),e),{}):{},h=[...Object.keys(u),...Object.entries(m).flatMap(([e,s])=>Object.keys(s))],f=e=>{if(e in this.classes)return;let s=this.classes[e]=[],l=(c,d)=>{if(!d)return;let p=Array.isArray(d)?d:d.replace(/(?:\n(?:\s*))+/g," ").trim().split(" ");for(let w of p){let A=x=>{x in this.themeAffectedClassesBy?c in this.themeAffectedClassesBy[x]?this.themeAffectedClassesBy[x][c].push(e):this.themeAffectedClassesBy[x][c]=[e]:this.themeAffectedClassesBy[x]={[c]:[e]},s.includes(x)||s.push(x)};if(h.includes(w)){f(w);for(let x of this.classes[w])A(x)}else A(w)}};l("",u?.[e]);for(let[c,d]of Object.entries(m))l(c,d?.[e])};for(let e of h)f(e);for(let e in this.themeAffectedClassesBy){let s=this.classesBy[e]=[];for(let l of Object.values(this.themeAffectedClassesBy[e]))for(let c of l)s.includes(c)||s.push(c)}let o=(e,s)=>{if(!s)return;let l=a(s,!0);for(let[c,d]of Object.entries(l)){let p=typeof d=="string"?{"":d}:d;for(let[w,A]of Object.entries(p)){let x=c+(w?"-"+w:"");x in this.colorThemesMap?this.colorThemesMap[x][e]=A:this.colorThemesMap[x]={[e]:A}}}for(let c in s)this.colorNames.includes(c)||this.colorNames.push(c)};if(o("",b),y)if(Array.isArray(y))this.themeNames.push(...y);else for(let e in y){let s=y[e];o(e,s.colors),this.themeNames.push(e)}let r=e=>{for(let[s,l]of Object.entries(this.colorThemesMap))for(let[c,d]of Object.entries(l))d.startsWith("#")||e(s,l,c,d)};if(r((e,s,l,c)=>{let d=/^rgba?\( *([0-9]{1,3}) *(?: |,) *([0-9]{1,3}) *(?: |,) *([0-9]{1,3}) *(?:(?:\/|,) *0?(\.[0-9]))?\)$/.exec(c);if(d){let p="#"+z(+d[1],+d[2],+d[3]);d[4]&&(p+=Math.round(255*+d[4]).toString(16)),s[l]=p}}),r((e,s,l,c)=>{let[d,p]=c.split("/"),w=this.colorThemesMap[d];if(w){let A=(l?w[l]:void 0)??w[""];s[l]=p?A.slice(0,7)+Math.round(255*+p).toString(16):A}else console.warn(`\`${c}\` doesn't exist in the extended config \`.colors\``),delete s[l],Object.keys(s).length||delete this.colorThemesMap[e]}),C)for(let e in C){let s=C[e],{native:l,values:c,colored:d}=s,p=s.match;if(s.id=e,s.native=l===!0?e.replace(/(?!^)[A-Z]/g,w=>"-"+w).toLowerCase():void 0,c&&(this.values[e]=a(c,!1)),p){let w=Object.keys(this.values[e]??{});p.includes("$values")&&(p=w.length?p.replace(/\$values/,w.join("|")):p.replace(/(?:\|)?\$values/,"")),d&&p.includes("$colors")&&(p=this.colorNames.length?p.replace(/\$colors/,"(?:"+this.colorNames.join("|")+")(?![0-9A-Za-z])"):p.replace(/(?:\|)?\$colors/,"")),this.matches[e]=new RegExp(p)}}}observe(t,i={subtree:!0,childList:!0}){if(this.root!==t){if(N&&t){this.root=t;let n=t===document;n&&(O.root=this),this.host=n?document.documentElement:root.host;let y=n?document.head:t,b=n?document.styleSheets:t.styleSheets;for(let R of b){let{ownerNode:g}=R;if(g.id==="master"){this.style=g;break}}if(this.style)for(let R=0;R<this.style.sheet.cssRules.length;R++){let g=this.style.sheet.cssRules[R];if(g.constructor.name==="CSSKeyframesRule")continue;let C=a=>{if(a.selectorText){let m=a.selectorText.split(", ")[0].split(" ");for(let h=0;h<m.length;h++){let f=m[h];if(f[0]==="."){let o=f.slice(1),r="";for(let e=0;e<o.length;e++){let s=o[e],l=o[e+1];if(s==="\\"){if(e++,l!=="\\"){r+=l;continue}}else if(_.includes(s))break;r+=s}if(!(r in this.ruleBy)&&!(r in this.classes)){let e=this.create(r)[0];if(e)return e}}}}else if(a.cssRules)for(let u=0;u<a.cssRules.length;u++){let m=C(a.cssRules[u]);if(m)return m}},B=C(g);if(B){this.rules.push(B),this.ruleBy[B.className]=B;for(let a=0;a<B.natives.length;a++)B.natives[a].cssRule=this.style.sheet.cssRules[R+a];R+=B.natives.length-1,B.config.insert?.call(B)}}else this.style=F(),y.append(this.style);let E=R=>{R.forEach(g=>{g in this.countBy?this.countBy[g]++:(this.countBy[g]=1,this.insert(g))})};E(this.host.classList),i.subtree&&this.host.querySelectorAll("[class]").forEach(R=>E(R.classList)),this.observer=new MutationObserver(R=>{let g={},C=[],B=[],a=[],u=(o,r)=>{r?o.classList.forEach(h):o.classList.forEach(m);let e=o.children;for(let s=0;s<e.length;s++){let l=e[s];l.classList&&(B.push(l),u(l,r))}},m=o=>{o in g?g[o]++:g[o]=1},h=o=>{o in g?g[o]--:o in this.countBy&&(g[o]=-1)},f=(o,r)=>{for(let e=0;e<o.length;e++){let s=o[e];s.classList&&!B.includes(s)&&!a.includes(s)&&(s.isConnected!==r?(B.push(s),u(s,r)):a.push(s))}};for(let o=0;o<R.length;o++){let r=R[o],{addedNodes:e,removedNodes:s,type:l,target:c}=r;if(l==="attributes"){if(C.find(d=>d.target===c))continue;C.push(r)}else f(e,!1),(!c.isConnected||!B.includes(c))&&f(s,!0)}if(!(!C.length&&!Object.keys(g).length)){for(let{oldValue:o,target:r}of C){let e=B.includes(r),s=r.classList,l=o?o.split(" "):[];if(e){if(r.isConnected)continue;for(let c of l)s.contains(c)||h(c)}else if(r.isConnected){s.forEach(c=>{l.includes(c)||m(c)});for(let c of l)s.contains(c)||h(c)}}for(let o in g){let r=g[o],e=(this.countBy[o]||0)+r;e===0?(delete this.countBy[o],this.delete(o)):(o in this.countBy||this.insert(o),this.countBy[o]=e)}}}),this.observer.observe(t,{...i,attributes:!0,attributeOldValue:!0,attributeFilter:["class"]}),this.host.style.display=null,this.observing=!0}return this}}disconnect(){this.observer&&(this.observer.disconnect(),this.observer=null),this.observing=!1,this.ruleBy={},this.countBy={},this.rules.length=0;let t=this.style?.sheet;if(t?.cssRules)for(let i=t.cssRules.length-1;i>=0;i--)t.deleteRule(i);this.style?.remove(),this.style=null,this.root=null}match(t){for(let i in this.config.rules){let n=this.config.rules[i],y=this.matches[i],{symbol:b,native:E}=n;if(y&&y.test(t))return{origin:"match",config:n};if(b&&t.startsWith(b))return{origin:"symbol",config:n};if(E&&t.startsWith(E+":"))return{origin:"match",config:n}}for(let i of this.semantics)if(t.match(i[0]))return{origin:"semantics",value:i[1]}}create(t){let i=n=>{if(n in this.ruleBy)return this.ruleBy[n];let y=this.match(n);if(y)return new Q(n,y,this)};return(t in this.classes?this.classes[t].map(n=>i(n)):[i(t)]).filter(n=>n&&n.text)}refresh(t){if(t?.override?this.config=t:this.config=M(T,t),this.cache(),!this.style)return;let i=F();this.style.replaceWith(i),this.style=i,this.rules.length=0,this.ruleBy={};for(let n in this.countBy)this.insert(n)}destroy(){let t=O.instances;this.disconnect(),t.splice(t.indexOf(this),1)}delete(t){let i=this.style?.sheet,n=y=>{let b=this.ruleBy[y];if(!(!b||y in this.classesBy&&this.classesBy[y].some(E=>E in this.countBy))){if(i&&b.natives.length){let E=b.natives[0];for(let R=0;R<i.cssRules.length;R++)if(i.cssRules[R]===E.cssRule){for(let C=0;C<b.natives.length;C++)i.deleteRule(R);break}}this.rules.splice(this.rules.indexOf(b),1),delete this.ruleBy[y],b.config.delete&&b.config.delete.call(b,y)}};if(t in this.classes){for(let y of this.classes[t])y in this.countBy||n(y);delete this.ruleBy[t]}else n(t)}insert(t){let i=this.create(t);return i.length?(this.insertRules(i),!0):!1}insertRules(t){for(let i of t){if(this.ruleBy[i.className])continue;let n,y=Object.keys(this.keyframes).length,b=this.rules.length-1,{media:E,order:R,priority:g,hasWhere:C,className:B}=i,a=(h,f,o)=>{let r=h;for(;r<=b;r++){let e=this.rules[r];if(f?.(e))return o?-1:r-1;if(o?.(e))return r}return o?-1:r-1},u,m;if(E){let h=this.rules.findIndex(f=>f.media);if(h===-1)n=b+1;else{let{"max-width":f,"min-width":o}=E.features;if(f||o){let r=this.rules.findIndex(e=>e.media?.features["max-width"]||e.media?.features["min-width"]);if(r===-1)n=b+1;else if(f&&o){if(g===-1?(u=a(r,e=>e.priority!==-1,e=>e.media.features["max-width"]&&e.media.features["min-width"]),m=a(r,e=>e.priority!==-1)):(u=a(r,void 0,e=>e.media.features["max-width"]&&e.media.features["min-width"]&&e.priority!==-1),m=b),u!==-1){let e=f.value-o.value,s=m,l=u;for(u=void 0;s>=l;s--){let{"max-width":c,"min-width":d}=this.rules[s].media.features,p=c.value-d.value;if(p<e)m=s-1;else if(p===e)u=s;else break}}if(u!==-1){let e=f.value-o.value;for(let s=m;s>=u;s--){let{"max-width":l,"min-width":c}=this.rules[s].media.features,d=l.value-c.value;if(d<e)m=s-1;else if(d>e){u=s+1;break}}}}else if(o){if(g===-1?(u=a(r,e=>e.media.features["max-width"]&&e.media.features["min-width"]||e.priority!==-1,e=>!e.media.features["max-width"]&&e.media.features["min-width"]),m=a(r,e=>e.media.features["max-width"]&&e.media.features["min-width"]||e.priority!==-1)):(u=a(r,e=>e.media.features["max-width"]&&e.media.features["min-width"]&&e.priority!==-1,e=>!e.media.features["max-width"]&&e.media.features["min-width"]&&e.priority!==-1),m=a(r,e=>e.media.features["max-width"]&&e.media.features["min-width"]&&e.priority!==-1)),u!==-1)for(let e=m;e>=u;e--){let s=this.rules[e].media.features["min-width"].value;if(s>o.value)m=e-1;else if(s<o.value){u=e+1;break}}}else if(g===-1?(u=a(r,e=>e.media.features["min-width"]||e.priority!==-1,e=>e.media.features["max-width"]),m=a(r,e=>e.media.features["min-width"]||e.priority!==-1)):(u=a(r,e=>e.media.features["min-width"]&&e.priority!==-1,e=>e.media.features["max-width"]&&e.priority!==-1),m=a(r,e=>e.media.features["min-width"]&&e.priority!==-1)),u!==-1)for(let e=m;e>=u;e--){let s=this.rules[e].media.features["max-width"].value;if(s<f.value)m=e-1;else if(s>f.value){u=e+1;break}}}else g===-1?(u=h,m=a(h,r=>r.media?.features["max-width"]||r.media?.features["min-width"]||r.priority!==-1)):(u=a(h,r=>r.media?.features["max-width"]||r.media?.features["min-width"],r=>r.priority!==-1),m=a(h,r=>r.media?.features["max-width"]||r.media?.features["min-width"]))}}else{let h=y?1:0;g===-1?(u=h,m=a(h,f=>f.media||f.priority!==-1)):(u=a(h,f=>f.media,f=>f.priority!==-1),m=a(h,f=>f.media))}if(n===void 0)if(u===-1)n=m+1;else{if(g===-1)for(let h=u;h<=m;h++){let f=this.rules[h];if(!(!C&&f.hasWhere)&&(C&&!f.hasWhere||f.order>=R)){n=h;break}}else for(let h=u;h<=m;h++){let f=this.rules[h];if(!(!C&&f.hasWhere)){if(C&&!f.hasWhere){n=h;break}if(f.priority<g){n=h;break}else if(f.priority===g){if(f.order>=R){n=h;break}}else n=h+1}}n===void 0&&(n=m+1)}if(this.rules.splice(n,0,i),this.ruleBy[B]=i,this.style){let h=this.style.sheet,f=0,o=r=>{let e=this.rules[r];if(e){if(!e.natives.length)return o(r-1);let s=e.natives[e.natives.length-1].cssRule;for(let l=0;l<h.cssRules.length;l++)if(h.cssRules[l]===s){f=l+1;break}}};o(n-1);for(let r=0;r<i.natives.length;)try{let e=i.natives[r];h.insertRule(e.text,f),e.cssRule=h.cssRules[f++],r++}catch(e){console.error(e),i.natives.splice(r,1)}}i.config.insert?.call(i)}}get text(){return this.rules.map(t=>t.text).join("")}},k=O;S(k,"root"),S(k,"config",T),S(k,"instances",[]),S(k,"refresh",t=>{for(let i of O.instances)i.refresh(t)});N&&(window.MasterCSS=k);export{k as MasterCSS};
1
+ var D=Object.defineProperty;var H=(v,t,i)=>t in v?D(v,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):v[t]=i;var S=(v,t,i)=>(H(v,typeof t!="symbol"?t+"":t,i),i);function W(v){let t=typeof Buffer<"u"?Buffer:null;return!!(t&&v instanceof t||v instanceof Date||v instanceof RegExp)}function I(v){if(typeof Buffer<"u"&&Buffer&&v instanceof Buffer){let t=Buffer.alloc(v.length);return v.copy(t),t}else{if(v instanceof Date)return new Date(v.getTime());if(v instanceof RegExp)return new RegExp(v);throw new Error("Unexpected situation")}}function $(v){let t=[];return v.forEach(function(i,n){typeof i=="object"&&i!==null?Array.isArray(i)?t[n]=$(i):W(i)?t[n]=I(i):t[n]=M({},i):t[n]=i}),t}function L(v,t){return t==="__proto__"?void 0:v[t]}function M(...v){let t={},i,n;return v.forEach(function(y){typeof y!="object"||y===null||Array.isArray(y)||Object.keys(y).forEach(function(b){if(n=L(t,b),i=L(y,b),i!==t)if(typeof i!="object"||i===null){t[b]=i;return}else if(Array.isArray(i)){t[b]=$(i);return}else if(W(i)){t[b]=I(i);return}else if(typeof n!="object"||n===null||Array.isArray(n)){t[b]=M({},i);return}else{t[b]=M(n,i);return}})}),t}import{Rule as Q}from"./rule.mjs";import{config as T}from"./config/index.mjs";import{rgbToHex as z}from"./utils/rgb-to-hex.mjs";import{SELECTOR_SYMBOLS as _}from"./constants/selector-symbols.mjs";var N=typeof window<"u",F=()=>{let v=document.createElement("style");return v.id="master",v},O=class{constructor(t=T){this.config=t;t?.override||(this.config=M(T,t),"keyframes"in t&&Object.assign(this.config.keyframes,t.keyframes)),this.cache(),N&&this.config.observe&&this.observe(document),O.instances.push(this)}rules=[];ruleBy={};countBy={};observing=!1;observer;cache(){this.semantics=[],this.classes={},this.colorThemesMap={},this.themeAffectedClassesBy={},this.classesBy={},this.colorNames=[],this.themeNames=[""],this.selectors={},this.values={},this.globalValues={},this.breakpoints={},this.mediaQueries={},this.matches={},this.keyframes={};let{semantics:t,classes:i,selectors:n,themes:y,colors:b,values:E,breakpoints:R,mediaQueries:g,rules:C}=this.config;function B(e){return e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")}function a(e,s,l="",c={}){let d=x=>x?(l?l+"-":"")+x:l,p=Object.entries(e),w=[],A=[];for(let x of p){let j=x[1];(typeof j=="object"&&!Array.isArray(j)?w:A).push(x)}for(let[x,j]of w)a(j,s,d(x),c);if(s&&l)A.length&&(c[l]=A.reduce((x,[j,V])=>(x[j]=V,x),{}));else for(let[x,j]of A)c[d(x)]=j;return c}if(t)for(let[e,s]of Object.entries(a(t,!0)))this.semantics.push([new RegExp("^"+B(e)+"(?=!|\\*|>|\\+|~|:|\\[|@|_|\\.|$)","m"),[e,s]]);if(n)for(let[e,s]of Object.entries(a(n,!1))){let l=new RegExp(B(e)+"(?![a-z-])");for(let c of Array.isArray(s)?s:[s]){let d=c.match(/^::-[a-z]+-/m)?.[0]??"",p=this.selectors[d];p||(p=this.selectors[d]=[]);let w=p.find(([A])=>A===l);w||(w=[l,[]],p.push(w)),w[1].push(c)}}E&&(this.globalValues=a(E,!1)),R&&(this.breakpoints=a(R,!1)),g&&(this.mediaQueries=a(g,!1));let u=i?a(i,!1):{},m=y&&!Array.isArray(y)?Object.entries(y).filter(([,{classes:e}])=>e).reduce((e,[s,{classes:l}])=>(e[s]=a(l,!1),e),{}):{},h=[...Object.keys(u),...Object.entries(m).flatMap(([e,s])=>Object.keys(s))],f=e=>{if(e in this.classes)return;let s=this.classes[e]=[],l=(c,d)=>{if(!d)return;let p=Array.isArray(d)?d:d.replace(/(?:\n(?:\s*))+/g," ").trim().split(" ");for(let w of p){let A=x=>{x in this.themeAffectedClassesBy?c in this.themeAffectedClassesBy[x]?this.themeAffectedClassesBy[x][c].push(e):this.themeAffectedClassesBy[x][c]=[e]:this.themeAffectedClassesBy[x]={[c]:[e]},s.includes(x)||s.push(x)};if(h.includes(w)){f(w);for(let x of this.classes[w])A(x)}else A(w)}};l("",u?.[e]);for(let[c,d]of Object.entries(m))l(c,d?.[e])};for(let e of h)f(e);for(let e in this.themeAffectedClassesBy){let s=this.classesBy[e]=[];for(let l of Object.values(this.themeAffectedClassesBy[e]))for(let c of l)s.includes(c)||s.push(c)}let o=(e,s)=>{if(!s)return;let l=a(s,!0);for(let[c,d]of Object.entries(l)){let p=typeof d=="string"?{"":d}:d;for(let[w,A]of Object.entries(p)){let x=c+(w?"-"+w:"");x in this.colorThemesMap?this.colorThemesMap[x][e]=A:this.colorThemesMap[x]={[e]:A}}}for(let c in s)this.colorNames.includes(c)||this.colorNames.push(c)};if(o("",b),y)if(Array.isArray(y))this.themeNames.push(...y);else for(let e in y){let s=y[e];o(e,s.colors),this.themeNames.push(e)}let r=e=>{for(let[s,l]of Object.entries(this.colorThemesMap))for(let[c,d]of Object.entries(l))d.startsWith("#")||e(s,l,c,d)};if(r((e,s,l,c)=>{let d=/^rgba?\( *([0-9]{1,3}) *(?: |,) *([0-9]{1,3}) *(?: |,) *([0-9]{1,3}) *(?:(?:\/|,) *0?(\.[0-9]))?\)$/.exec(c);if(d){let p="#"+z(+d[1],+d[2],+d[3]);d[4]&&(p+=Math.round(255*+d[4]).toString(16)),s[l]=p}}),r((e,s,l,c)=>{let[d,p]=c.split("/"),w=this.colorThemesMap[d];if(w){let A=(l?w[l]:void 0)??w[""];s[l]=p?A.slice(0,7)+Math.round(255*+p).toString(16):A}else console.warn(`\`${c}\` doesn't exist in the extended config \`.colors\``),delete s[l],Object.keys(s).length||delete this.colorThemesMap[e]}),C)for(let e in C){let s=C[e],{native:l,values:c,colored:d}=s,p=s.match;if(s.id=e,s.native=l===!0?e.replace(/(?!^)[A-Z]/g,w=>"-"+w).toLowerCase():void 0,c&&(this.values[e]=a(c,!1)),p){let w=Object.keys(this.values[e]??{});p.includes("$values")&&(p=w.length?p.replace(/\$values/,w.join("|")):p.replace(/(?:\|)?\$values/,"")),d&&p.includes("$colors")&&(p=this.colorNames.length?p.replace(/\$colors/,"(?:"+this.colorNames.join("|")+")(?![0-9A-Za-z])"):p.replace(/(?:\|)?\$colors/,"")),this.matches[e]=new RegExp(p)}}}observe(t,i={subtree:!0,childList:!0}){if(this.root!==t){if(N&&t){this.root=t;let n=t===document;n&&(O.root=this),this.host=n?document.documentElement:this.root.host;let y=n?document.head:t,b=n?document.styleSheets:t.styleSheets;for(let R of b){let{ownerNode:g}=R;if(g.id==="master"){this.style=g;break}}if(this.style)for(let R=0;R<this.style.sheet.cssRules.length;R++){let g=this.style.sheet.cssRules[R];if(g.constructor.name==="CSSKeyframesRule")continue;let C=a=>{if(a.selectorText){let m=a.selectorText.split(", ")[0].split(" ");for(let h=0;h<m.length;h++){let f=m[h];if(f[0]==="."){let o=f.slice(1),r="";for(let e=0;e<o.length;e++){let s=o[e],l=o[e+1];if(s==="\\"){if(e++,l!=="\\"){r+=l;continue}}else if(_.includes(s))break;r+=s}if(!(r in this.ruleBy)&&!(r in this.classes)){let e=this.create(r)[0];if(e)return e}}}}else if(a.cssRules)for(let u=0;u<a.cssRules.length;u++){let m=C(a.cssRules[u]);if(m)return m}},B=C(g);if(B){this.rules.push(B),this.ruleBy[B.className]=B;for(let a=0;a<B.natives.length;a++)B.natives[a].cssRule=this.style.sheet.cssRules[R+a];R+=B.natives.length-1,B.config.insert?.call(B)}}else this.style=F(),y.append(this.style);let E=R=>{R.forEach(g=>{g in this.countBy?this.countBy[g]++:(this.countBy[g]=1,this.insert(g))})};E(this.host.classList),i.subtree&&this.host.querySelectorAll("[class]").forEach(R=>E(R.classList)),this.observer=new MutationObserver(R=>{let g={},C=[],B=[],a=[],u=(o,r)=>{r?o.classList.forEach(h):o.classList.forEach(m);let e=o.children;for(let s=0;s<e.length;s++){let l=e[s];l.classList&&(B.push(l),u(l,r))}},m=o=>{o in g?g[o]++:g[o]=1},h=o=>{o in g?g[o]--:o in this.countBy&&(g[o]=-1)},f=(o,r)=>{for(let e=0;e<o.length;e++){let s=o[e];s.classList&&!B.includes(s)&&!a.includes(s)&&(s.isConnected!==r?(B.push(s),u(s,r)):a.push(s))}};for(let o=0;o<R.length;o++){let r=R[o],{addedNodes:e,removedNodes:s,type:l,target:c}=r;if(l==="attributes"){if(C.find(d=>d.target===c))continue;C.push(r)}else f(e,!1),(!c.isConnected||!B.includes(c))&&f(s,!0)}if(!(!C.length&&!Object.keys(g).length)){for(let{oldValue:o,target:r}of C){let e=B.includes(r),s=r.classList,l=o?o.split(" "):[];if(e){if(r.isConnected)continue;for(let c of l)s.contains(c)||h(c)}else if(r.isConnected){s.forEach(c=>{l.includes(c)||m(c)});for(let c of l)s.contains(c)||h(c)}}for(let o in g){let r=g[o],e=(this.countBy[o]||0)+r;e===0?(delete this.countBy[o],this.delete(o)):(o in this.countBy||this.insert(o),this.countBy[o]=e)}}}),this.observer.observe(t,{...i,attributes:!0,attributeOldValue:!0,attributeFilter:["class"]}),this.host.style.display=null,this.observing=!0}return this}}disconnect(){this.observer&&(this.observer.disconnect(),this.observer=null),this.observing=!1,this.ruleBy={},this.countBy={},this.rules.length=0;let t=this.style?.sheet;if(t?.cssRules)for(let i=t.cssRules.length-1;i>=0;i--)t.deleteRule(i);this.style?.remove(),this.style=null,this.root=null}match(t){for(let i in this.config.rules){let n=this.config.rules[i],y=this.matches[i],{symbol:b,native:E}=n;if(y&&y.test(t))return{origin:"match",config:n};if(b&&t.startsWith(b))return{origin:"symbol",config:n};if(E&&t.startsWith(E+":"))return{origin:"match",config:n}}for(let i of this.semantics)if(t.match(i[0]))return{origin:"semantics",value:i[1]}}create(t){let i=n=>{if(n in this.ruleBy)return this.ruleBy[n];let y=this.match(n);if(y)return new Q(n,y,this)};return(t in this.classes?this.classes[t].map(n=>i(n)):[i(t)]).filter(n=>n&&n.text)}refresh(t){if(t?.override?this.config=t:this.config=M(T,t),this.cache(),!this.style)return;let i=F();this.style.replaceWith(i),this.style=i,this.rules.length=0,this.ruleBy={};for(let n in this.countBy)this.insert(n)}destroy(){let t=O.instances;this.disconnect(),t.splice(t.indexOf(this),1)}delete(t){let i=this.style?.sheet,n=y=>{let b=this.ruleBy[y];if(!(!b||y in this.classesBy&&this.classesBy[y].some(E=>E in this.countBy))){if(i&&b.natives.length){let E=b.natives[0];for(let R=0;R<i.cssRules.length;R++)if(i.cssRules[R]===E.cssRule){for(let C=0;C<b.natives.length;C++)i.deleteRule(R);break}}this.rules.splice(this.rules.indexOf(b),1),delete this.ruleBy[y],b.config.delete&&b.config.delete.call(b,y)}};if(t in this.classes){for(let y of this.classes[t])y in this.countBy||n(y);delete this.ruleBy[t]}else n(t)}insert(t){let i=this.create(t);return i.length?(this.insertRules(i),!0):!1}insertRules(t){for(let i of t){if(this.ruleBy[i.className])continue;let n,y=Object.keys(this.keyframes).length,b=this.rules.length-1,{media:E,order:R,priority:g,hasWhere:C,className:B}=i,a=(h,f,o)=>{let r=h;for(;r<=b;r++){let e=this.rules[r];if(f?.(e))return o?-1:r-1;if(o?.(e))return r}return o?-1:r-1},u,m;if(E){let h=this.rules.findIndex(f=>f.media);if(h===-1)n=b+1;else{let{"max-width":f,"min-width":o}=E.features;if(f||o){let r=this.rules.findIndex(e=>e.media?.features["max-width"]||e.media?.features["min-width"]);if(r===-1)n=b+1;else if(f&&o){if(g===-1?(u=a(r,e=>e.priority!==-1,e=>e.media.features["max-width"]&&e.media.features["min-width"]),m=a(r,e=>e.priority!==-1)):(u=a(r,void 0,e=>e.media.features["max-width"]&&e.media.features["min-width"]&&e.priority!==-1),m=b),u!==-1){let e=f.value-o.value,s=m,l=u;for(u=void 0;s>=l;s--){let{"max-width":c,"min-width":d}=this.rules[s].media.features,p=c.value-d.value;if(p<e)m=s-1;else if(p===e)u=s;else break}}if(u!==-1){let e=f.value-o.value;for(let s=m;s>=u;s--){let{"max-width":l,"min-width":c}=this.rules[s].media.features,d=l.value-c.value;if(d<e)m=s-1;else if(d>e){u=s+1;break}}}}else if(o){if(g===-1?(u=a(r,e=>e.media.features["max-width"]&&e.media.features["min-width"]||e.priority!==-1,e=>!e.media.features["max-width"]&&e.media.features["min-width"]),m=a(r,e=>e.media.features["max-width"]&&e.media.features["min-width"]||e.priority!==-1)):(u=a(r,e=>e.media.features["max-width"]&&e.media.features["min-width"]&&e.priority!==-1,e=>!e.media.features["max-width"]&&e.media.features["min-width"]&&e.priority!==-1),m=a(r,e=>e.media.features["max-width"]&&e.media.features["min-width"]&&e.priority!==-1)),u!==-1)for(let e=m;e>=u;e--){let s=this.rules[e].media.features["min-width"].value;if(s>o.value)m=e-1;else if(s<o.value){u=e+1;break}}}else if(g===-1?(u=a(r,e=>e.media.features["min-width"]||e.priority!==-1,e=>e.media.features["max-width"]),m=a(r,e=>e.media.features["min-width"]||e.priority!==-1)):(u=a(r,e=>e.media.features["min-width"]&&e.priority!==-1,e=>e.media.features["max-width"]&&e.priority!==-1),m=a(r,e=>e.media.features["min-width"]&&e.priority!==-1)),u!==-1)for(let e=m;e>=u;e--){let s=this.rules[e].media.features["max-width"].value;if(s<f.value)m=e-1;else if(s>f.value){u=e+1;break}}}else g===-1?(u=h,m=a(h,r=>r.media?.features["max-width"]||r.media?.features["min-width"]||r.priority!==-1)):(u=a(h,r=>r.media?.features["max-width"]||r.media?.features["min-width"],r=>r.priority!==-1),m=a(h,r=>r.media?.features["max-width"]||r.media?.features["min-width"]))}}else{let h=y?1:0;g===-1?(u=h,m=a(h,f=>f.media||f.priority!==-1)):(u=a(h,f=>f.media,f=>f.priority!==-1),m=a(h,f=>f.media))}if(n===void 0)if(u===-1)n=m+1;else{if(g===-1)for(let h=u;h<=m;h++){let f=this.rules[h];if(!(!C&&f.hasWhere)&&(C&&!f.hasWhere||f.order>=R)){n=h;break}}else for(let h=u;h<=m;h++){let f=this.rules[h];if(!(!C&&f.hasWhere)){if(C&&!f.hasWhere){n=h;break}if(f.priority<g){n=h;break}else if(f.priority===g){if(f.order>=R){n=h;break}}else n=h+1}}n===void 0&&(n=m+1)}if(this.rules.splice(n,0,i),this.ruleBy[B]=i,this.style){let h=this.style.sheet,f=0,o=r=>{let e=this.rules[r];if(e){if(!e.natives.length)return o(r-1);let s=e.natives[e.natives.length-1].cssRule;for(let l=0;l<h.cssRules.length;l++)if(h.cssRules[l]===s){f=l+1;break}}};o(n-1);for(let r=0;r<i.natives.length;)try{let e=i.natives[r];h.insertRule(e.text,f),e.cssRule=h.cssRules[f++],r++}catch(e){console.error(e),i.natives.splice(r,1)}}i.config.insert?.call(i)}}get text(){return this.rules.map(t=>t.text).join("")}},k=O;S(k,"root"),S(k,"config",T),S(k,"instances",[]),S(k,"refresh",t=>{for(let i of O.instances)i.refresh(t)});N&&(window.MasterCSS=k);export{k as MasterCSS};
package/dist/esm/rule.mjs CHANGED
@@ -1 +1 @@
1
- import{START_SYMBOLS as re}from"./constants/start-symbol.mjs";import{cssEscape as ae}from"./utils/css-escape.mjs";function ie(y){let n=typeof Buffer<"u"?Buffer:null;return!!(n&&y instanceof n||y instanceof Date||y instanceof RegExp)}function ne(y){if(typeof Buffer<"u"&&Buffer&&y instanceof Buffer){let n=Buffer.alloc(y.length);return y.copy(n),n}else{if(y instanceof Date)return new Date(y.getTime());if(y instanceof RegExp)return new RegExp(y);throw new Error("Unexpected situation")}}function se(y){let n=[];return y.forEach(function(f,S){typeof f=="object"&&f!==null?Array.isArray(f)?n[S]=se(f):ie(f)?n[S]=ne(f):n[S]=_({},f):n[S]=f}),n}function te(y,n){return n==="__proto__"?void 0:y[n]}function _(...y){let n={},f,S;return y.forEach(function(j){typeof j!="object"||j===null||Array.isArray(j)||Object.keys(j).forEach(function(R){if(S=te(n,R),f=te(j,R),f!==n)if(typeof f!="object"||f===null){n[R]=f;return}else if(Array.isArray(f)){n[R]=se(f);return}else if(ie(f)){n[R]=ne(f);return}else if(typeof S!="object"||S===null||Array.isArray(S)){n[R]=_({},f);return}else{n[R]=_(S,f);return}})}),n}var ue={unit:"",order:0,separators:[","]},oe=class{constructor(n,f={},S){this.className=n;this.meta=f;this.css=S;this.config=_(ue,f.config);let{unit:j,order:R,colored:C,native:N,analyze:Q,transform:q,declare:$,create:F}=this.config,{scope:Y,important:le,functions:fe}=S.config,{themeNames:Z,colorNames:H,colorThemesMap:J,selectors:P,breakpoints:K,mediaQueries:W,themeAffectedClassesBy:ce,globalValues:z}=S,X=ce[n];F&&F.call(this,n);let B,G,D,A,w;if(f.origin==="semantics"){let[g,c]=f.value;A=n.slice(g.length),B=c}else{let g;if(Q)[g,D]=Q.call(this,n);else if(f.origin==="match"){let o=n.indexOf(":");this.prefix=n.slice(0,o+1),g=n.slice(o+1)}else f.origin==="symbol"&&(this.symbol=n[0],g=n.slice(1));w=[];let c=this,a=this.values,p=[","];this.config.separators.length&&p.push(...this.config.separators);let i="",t=0;(function o(e,l,r,s=void 0,u=[],v=[],h){let k=s===void 0,m,E=d=>d==="'"||d==='"',V=()=>m=i.length,M=()=>{if(i){let d=i,x=k?d:i.slice(m);if(i="",T="",a&&x in a&&!u.includes(x)){let b=t;t=0,o(a[x].toString(),l,void 0,s,[...u,x],v,h),t=b,k||(i=i.slice(0,m)+i)}else if(z&&x in z&&!v.includes(x)){let b=t;t=0,o(z[x].toString(),l,void 0,s,u,[...v,x],h),t=b,k||(i=i.slice(0,m)+i)}else if(k){let b=!h&&c.analyzeUnitValue(x,l);w.push({value:b?.value??x,unit:b?.unit})}else{let b=!h&&c.analyzeUnitValue(x,l);i=b?d.slice(0,m)+b.value+b.unit:d}V()}},O=E(r);V();let T="";for(;t<e.length;t++){let d=e[t];if(d===r){if(O){i+=d;let x=0;for(let b=i.length-2;i[b]==="\\";b--)x++;if(x%2)continue}else M(),i+=d;return}else if(!O&&d in re){let x=d==="("&&T&&fe?.[T];x?.name&&(i=i.slice(0,i.length-T.length)+x.name,T=x.name),i+=d,t++;let b=re[d];o(e,x?.unit??l,b,T||s||"",u,v,h||!!x?.transform),x?.transform&&(i=i.slice(0,m+T.length+1)+x.transform.call(c,i.slice(m+T.length+1,-1))+i.slice(-1)),k&&(E(b)?(w.push(i),i=""):M()),T=""}else if((d==="|"||d===" ")&&r!=="}"&&(!O||s==="path"))M(),k||(i+=" ",m++);else{if(!O){if(d==="."){if(isNaN(+e[t+1]))break;e[t-1]==="-"&&(i+="0")}else if(p.includes(d)){M(),k?w.push(d):(i+=d,m++);continue}else if(k&&(d==="#"&&(i||w.length&&e[t-1]!=="|"&&w[t-1]!==" ")||["!","*",">","+","~",":","[","@","_"].includes(d)))break;T+=d}i+=d}}s===void 0&&M()})(g,j),A=g.slice(t)}this.order=typeof R=="function"?R.call(this,this.prefix):R,A[0]==="!"&&(this.important=!0,A=A.slice(1));let ee=g=>{let c=g.split(/(\\'(?:.*?)[^\\]\\')(?=[*_>~+,)])|(\[[^=]+='(?:.*?)[^\\]'\])/).map((t,o)=>o%3?t:t.replace(/_/g," ")).join(""),a=[],p="",i=0;for(let t=0;t<c.length;t++){let o=c[t];if(o==="\\"){p+=o+c[++t];continue}!i&&o===","?(a.push(p),p=""):(p+=o,i&&o===")"?i--:o==="("&&i++)}return p&&a.push(p),a};this.prefixSelectors=D?ee(D):[""];let I=A.split("@"),U=I[0];if(U){this.vendorSuffixSelectors={};let g=(t,o,e,l)=>{for(let[r,s]of o)if(r.test(t)){for(let u of s)g(t.replace(r,u),o,e,!0);return}l&&e.push(t)},c=[];""in P?g(U,P[""],c,!0):c.push(U);let a={};for(let[t,o]of Object.entries(P)){if(!t)continue;let e=[];for(let l of c)g(l,o,e,!1);e.length&&(a[t]=e)}let p=(t,o)=>{let e=o.reduce((l,r)=>(l.push(...ee(r)),l),[]);t in this.vendorSuffixSelectors?this.vendorSuffixSelectors[t].push(...e):this.vendorSuffixSelectors[t]=e},i=Object.keys(a);if(i.length)for(let t of i)p(t,a[t]);else p("",c);for(let t of Object.values(this.vendorSuffixSelectors))for(let o of t){this.hasWhere!==!1&&(this.hasWhere=o.includes(":where("));let e=[":disabled",":active",":focus",":hover"];for(let l=0;l<e.length;l++)if(o.includes(e[l])){(this.priority===-1||this.priority>l)&&(this.priority=l);break}}}else this.vendorSuffixSelectors={"":[""]};for(let g=1;g<I.length;g++){let c=I[g];if(c)if(Z.includes(c))this.theme=c;else if(c==="rtl"||c==="ltr")this.direction=c;else{let a,p,i=c.indexOf("_");if(i!==-1)a=c.slice(0,i),p=c.slice(i);else{let t=c.indexOf("(");t!==-1&&(a=c.slice(0,t),p=c.slice(t))}if(!a){a="media";let t=[];this.media={token:c,features:{}};let o=c.split("&");for(let e of o)if(e==="all"||e==="print"||e==="screen"||e==="speech")this.media.type=e;else if(e==="\u{1F5A8}")this.media.type="print";else if(e==="landscape"||e==="portrait")t.push("(orientation:"+e+")");else if(e==="motion"||e==="reduced-motion")t.push("(prefers-reduced-motion:"+(e==="motion"?"no-preference":"reduce")+")");else if(W&&e in W)t.push(W[e]);else{let l={token:e},r="",s="",u=0;e.startsWith("<=")?(s="<=",r="max-width"):e.startsWith(">=")||K[e]?(s=">=",r="min-width"):e.startsWith(">")?(s=">",r="min-width",u=.02):e.startsWith("<")&&(s="<",r="max-width",u=-.02);let v=s?e.replace(s,""):e,h=K[v];switch(r){case"max-width":case"min-width":h?Object.assign(l,this.analyzeUnitValue(h.toString(),"px")):Object.assign(l,this.analyzeUnitValue(v,"px")),l.unit==="px"&&(l.value+=u),this.media.features[r]=l,t.push("("+r+":"+(l.value+l.unit)+")");break}}p="",this.media.type&&(p=this.media.type),t.length&&(p+=(p?" and ":"")+t.join(" and "))}p&&(this.at[a]=(a in this.at?this.at[a]+" and ":"")+p.replace(/_/g," "))}}let L=(g,c)=>{let a,p=(o,e,l)=>{let r="";this.direction&&(r+="[dir="+this.direction+"] ");let s=this.prefixSelectors.map(h=>h+r),u=(h,k)=>s.map(m=>(h?"."+h+" ":"")+(Y?Y+" ":"")+m).reduce((m,E)=>(m.push(l.reduce((V,M)=>(V.push(E+"."+ae(k)+M),V),[]).join(",")),m),[]).join(","),v=u(e,n)+(X?Object.entries(X).filter(([h])=>this.theme||!C||!e||!h||h===e).map(([h,k])=>k.reduce((m,E)=>m+","+u(this.theme??((C||G)&&e||h),E),"")).join(""):"")+"{"+o+"}";for(let h of Object.keys(this.at).sort((k,m)=>m==="supports"?-1:1))v="@"+h+" "+this.at[h]+"{"+v+"}";return v},i=[];if(w){let o=[this.theme??g,""],e,l=!1;for(let r of w)if(typeof r=="string")i.push(r);else{let s=r.value;if(r.unit)s+=r.unit;else if(C&&J&&H){let u=!1;s=s.replace(new RegExp(`(^|,| |\\()((?:${H.join("|")})(?:-(?:[0-9A-Za-z-]+))?)(?:\\/(\\.?[0-9]+%?))?(?=(\\)|\\}|,| |$))`,"gm"),(v,h,k,m)=>{let E=J[k];if(E){let V,M;for(let O of o)if(V=E[O]){M=O;break}if(V){u=!c||M===g,e||(e=u);let O=V;if(m){let T=m.endsWith("%")?parseFloat(m)/100:+m;T=isNaN(T)?1:Math.min(Math.max(T,0),1),O+=Math.round(T*255).toString(16).toUpperCase().padStart(2,"0")}return h+O}else l=!0}return v})}i.push(s)}if(c&&(l||(e===void 0?g:!e)))return;if(a=i.reduce((r,s,u)=>r+s+(s===","||w[u+1]===","||u===w.length-1?"":" "),""),q&&(a=q.call(this,a,this.css.config)),C&&a==="current"&&(a="currentColor"),$){let r,s;if(w.length===1){let u=w[0];typeof u=="object"&&(r=u.value,s=u.unit)}B=$.call(this,s?r:a,s||"")}else B={[N]:a}}let t={};for(let o in B){let e=(s,u)=>{let v=u+((this.important||le)&&!u.endsWith("!important")?"!important":"");s in t?t[s].push(v):t[s]=[v]},l=o+":",r=B[o];if(typeof r=="object")if(Array.isArray(r))for(let s of r)e(g,l+s.toString());else{G=!0;for(let s in r)e(s,l+r[s])}else e(g,l+r.toString())}for(let o of Object.values(this.vendorSuffixSelectors))for(let e in t)this.natives.push({text:p(t[e].join(";"),e,o),theme:e})};if(this.theme)L(this.theme,!1);else if(C)for(let g of Z)L(g,!0);else L("",!1)}at={};priority=-1;natives=[];keyframeNames;config;get values(){return this.css.values[this.config.id]}get text(){return this.natives.map(n=>n.text).join("")}resolveValue(n,f){return Number.isNaN(+n)?n:n/(f==="rem"||f==="em"?this.css.config.rootSize:1)+f}analyzeUnitValue(n,f){let S=f??this.config.unit;if(S){let j="",R=n.match(/^([+-.]?\d+(\.?\d+)?)(.*)?/);if(R)if(n.includes("/")){let[C,N]=n.split("/");return{value:+C/+N*100+"%",unit:j}}else{let C=+R[1];return j=R[3]||"",j||((S==="rem"||S==="em")&&(C=C/this.css.config.rootSize),j=S||""),{value:C,unit:j}}}}};export{oe as Rule};
1
+ import{START_SYMBOLS as oe}from"./constants/start-symbol.mjs";import{cssEscape as ue}from"./utils/css-escape.mjs";function ne(y){let n=typeof Buffer<"u"?Buffer:null;return!!(n&&y instanceof n||y instanceof Date||y instanceof RegExp)}function se(y){if(typeof Buffer<"u"&&Buffer&&y instanceof Buffer){let n=Buffer.alloc(y.length);return y.copy(n),n}else{if(y instanceof Date)return new Date(y.getTime());if(y instanceof RegExp)return new RegExp(y);throw new Error("Unexpected situation")}}function re(y){let n=[];return y.forEach(function(f,S){typeof f=="object"&&f!==null?Array.isArray(f)?n[S]=re(f):ne(f)?n[S]=se(f):n[S]=_({},f):n[S]=f}),n}function ie(y,n){return n==="__proto__"?void 0:y[n]}function _(...y){let n={},f,S;return y.forEach(function(j){typeof j!="object"||j===null||Array.isArray(j)||Object.keys(j).forEach(function(R){if(S=ie(n,R),f=ie(j,R),f!==n)if(typeof f!="object"||f===null){n[R]=f;return}else if(Array.isArray(f)){n[R]=re(f);return}else if(ne(f)){n[R]=se(f);return}else if(typeof S!="object"||S===null||Array.isArray(S)){n[R]=_({},f);return}else{n[R]=_(S,f);return}})}),n}var ge={unit:"",order:0,separators:[","]},le=class{constructor(n,f={},S){this.className=n;this.meta=f;this.css=S;this.config=_(ge,f.config);let{unit:j,order:R,colored:C,native:N,analyze:Q,transform:q,declare:F,create:Y}=this.config,{scope:Z,important:fe,functions:ce,themeDriver:D}=S.config,{themeNames:H,colorNames:J,colorThemesMap:K,selectors:P,breakpoints:X,mediaQueries:W,themeAffectedClassesBy:ae,globalValues:z}=S,G=ae[n];Y&&Y.call(this,n);let B,ee,I,A,w;if(f.origin==="semantics"){let[g,c]=f.value;A=n.slice(g.length),B=c}else{let g;if(Q)[g,I]=Q.call(this,n);else if(f.origin==="match"){let o=n.indexOf(":");this.prefix=n.slice(0,o+1),g=n.slice(o+1)}else f.origin==="symbol"&&(this.symbol=n[0],g=n.slice(1));w=[];let c=this,a=this.values,p=[","];this.config.separators.length&&p.push(...this.config.separators);let i="",t=0;(function o(e,l,r,s=void 0,u=[],v=[],h){let k=s===void 0,m,E=d=>d==="'"||d==='"',V=()=>m=i.length,M=()=>{if(i){let d=i,x=k?d:i.slice(m);if(i="",T="",a&&x in a&&!u.includes(x)){let b=t;t=0,o(a[x].toString(),l,void 0,s,[...u,x],v,h),t=b,k||(i=i.slice(0,m)+i)}else if(z&&x in z&&!v.includes(x)){let b=t;t=0,o(z[x].toString(),l,void 0,s,u,[...v,x],h),t=b,k||(i=i.slice(0,m)+i)}else if(k){let b=!h&&c.analyzeUnitValue(x,l);w.push({value:b?.value??x,unit:b?.unit})}else{let b=!h&&c.analyzeUnitValue(x,l);i=b?d.slice(0,m)+b.value+b.unit:d}V()}},O=E(r);V();let T="";for(;t<e.length;t++){let d=e[t];if(d===r){if(O){i+=d;let x=0;for(let b=i.length-2;i[b]==="\\";b--)x++;if(x%2)continue}else M(),i+=d;return}else if(!O&&d in oe){let x=d==="("&&T&&ce?.[T];x?.name&&(i=i.slice(0,i.length-T.length)+x.name,T=x.name),i+=d,t++;let b=oe[d];o(e,x?.unit??l,b,T||s||"",u,v,h||!!x?.transform),x?.transform&&(i=i.slice(0,m+T.length+1)+x.transform.call(c,i.slice(m+T.length+1,-1))+i.slice(-1)),k&&(E(b)?(w.push(i),i=""):M()),T=""}else if((d==="|"||d===" ")&&r!=="}"&&(!O||s==="path"))M(),k||(i+=" ",m++);else{if(!O){if(d==="."){if(isNaN(+e[t+1]))break;e[t-1]==="-"&&(i+="0")}else if(p.includes(d)){M(),k?w.push(d):(i+=d,m++);continue}else if(k&&(d==="#"&&(i||w.length&&e[t-1]!=="|"&&w[t-1]!==" ")||["!","*",">","+","~",":","[","@","_"].includes(d)))break;T+=d}i+=d}}s===void 0&&M()})(g,j),A=g.slice(t)}this.order=typeof R=="function"?R.call(this,this.prefix):R,A[0]==="!"&&(this.important=!0,A=A.slice(1));let te=g=>{let c=g.split(/(\\'(?:.*?)[^\\]\\')(?=[*_>~+,)])|(\[[^=]+='(?:.*?)[^\\]'\])/).map((t,o)=>o%3?t:t.replace(/_/g," ")).join(""),a=[],p="",i=0;for(let t=0;t<c.length;t++){let o=c[t];if(o==="\\"){p+=o+c[++t];continue}!i&&o===","?(a.push(p),p=""):(p+=o,i&&o===")"?i--:o==="("&&i++)}return p&&a.push(p),a};this.prefixSelectors=I?te(I):[""];let U=A.split("@"),$=U[0];if($){this.vendorSuffixSelectors={};let g=(t,o,e,l)=>{for(let[r,s]of o)if(r.test(t)){for(let u of s)g(t.replace(r,u),o,e,!0);return}l&&e.push(t)},c=[];""in P?g($,P[""],c,!0):c.push($);let a={};for(let[t,o]of Object.entries(P)){if(!t)continue;let e=[];for(let l of c)g(l,o,e,!1);e.length&&(a[t]=e)}let p=(t,o)=>{let e=o.reduce((l,r)=>(l.push(...te(r)),l),[]);t in this.vendorSuffixSelectors?this.vendorSuffixSelectors[t].push(...e):this.vendorSuffixSelectors[t]=e},i=Object.keys(a);if(i.length)for(let t of i)p(t,a[t]);else p("",c);for(let t of Object.values(this.vendorSuffixSelectors))for(let o of t){this.hasWhere!==!1&&(this.hasWhere=o.includes(":where("));let e=[":disabled",":active",":focus",":hover"];for(let l=0;l<e.length;l++)if(o.includes(e[l])){(this.priority===-1||this.priority>l)&&(this.priority=l);break}}}else this.vendorSuffixSelectors={"":[""]};for(let g=1;g<U.length;g++){let c=U[g];if(c)if(H.includes(c))this.theme=c;else if(c==="rtl"||c==="ltr")this.direction=c;else{let a,p,i=c.indexOf("_");if(i!==-1)a=c.slice(0,i),p=c.slice(i);else{let t=c.indexOf("(");t!==-1&&(a=c.slice(0,t),p=c.slice(t))}if(!a){a="media";let t=[];this.media={token:c,features:{}};let o=c.split("&");for(let e of o)if(e==="all"||e==="print"||e==="screen"||e==="speech")this.media.type=e;else if(e==="\u{1F5A8}")this.media.type="print";else if(e==="landscape"||e==="portrait")t.push("(orientation:"+e+")");else if(e==="motion"||e==="reduced-motion")t.push("(prefers-reduced-motion:"+(e==="motion"?"no-preference":"reduce")+")");else if(W&&e in W)t.push(W[e]);else{let l={token:e},r="",s="",u=0;e.startsWith("<=")?(s="<=",r="max-width"):e.startsWith(">=")||X[e]?(s=">=",r="min-width"):e.startsWith(">")?(s=">",r="min-width",u=.02):e.startsWith("<")&&(s="<",r="max-width",u=-.02);let v=s?e.replace(s,""):e,h=X[v];switch(r){case"max-width":case"min-width":h?Object.assign(l,this.analyzeUnitValue(h.toString(),"px")):Object.assign(l,this.analyzeUnitValue(v,"px")),l.unit==="px"&&(l.value+=u),this.media.features[r]=l,t.push("("+r+":"+(l.value+l.unit)+")");break}}p="",this.media.type&&(p=this.media.type),t.length&&(p+=(p?" and ":"")+t.join(" and "))}p&&(this.at[a]=(a in this.at?this.at[a]+" and ":"")+p.replace(/_/g," "))}}let L=(g,c)=>{let a,p=(o,e,l)=>{let r="";this.direction&&(r+="[dir="+this.direction+"] ");let s=this.prefixSelectors.map(h=>h+r),u=(h,k)=>s.map(m=>(h&&D!=="media"?D==="host"?`:host(.${h}) `:`.${h} `:"")+(Z?Z+" ":"")+m).reduce((m,E)=>(m.push(l.reduce((V,M)=>(V.push(E+"."+ue(k)+M),V),[]).join(",")),m),[]).join(","),v=u(e,n)+(G?Object.entries(G).filter(([h])=>this.theme||!C||!e||!h||h===e).map(([h,k])=>k.reduce((m,E)=>m+","+u(this.theme??((C||ee)&&e||h),E),"")).join(""):"")+"{"+o+"}";for(let h of Object.keys(this.at).sort((k,m)=>m==="supports"?-1:1))v="@"+h+" "+this.at[h]+"{"+v+"}";return e&&D==="media"&&(v=`@media(prefers-color-scheme:${e}){`+v+"}"),v},i=[];if(w){let o=[this.theme??g,""],e,l=!1;for(let r of w)if(typeof r=="string")i.push(r);else{let s=r.value;if(r.unit)s+=r.unit;else if(C&&K&&J){let u=!1;s=s.replace(new RegExp(`(^|,| |\\()((?:${J.join("|")})(?:-(?:[0-9A-Za-z-]+))?)(?:\\/(\\.?[0-9]+%?))?(?=(\\)|\\}|,| |$))`,"gm"),(v,h,k,m)=>{let E=K[k];if(E){let V,M;for(let O of o)if(V=E[O]){M=O;break}if(V){u=!c||M===g,e||(e=u);let O=V;if(m){let T=m.endsWith("%")?parseFloat(m)/100:+m;T=isNaN(T)?1:Math.min(Math.max(T,0),1),O+=Math.round(T*255).toString(16).toUpperCase().padStart(2,"0")}return h+O}else l=!0}return v})}i.push(s)}if(c&&(l||(e===void 0?g:!e)))return;if(a=i.reduce((r,s,u)=>r+s+(s===","||w[u+1]===","||u===w.length-1?"":" "),""),q&&(a=q.call(this,a,this.css.config)),C&&a==="current"&&(a="currentColor"),F){let r,s;if(w.length===1){let u=w[0];typeof u=="object"&&(r=u.value,s=u.unit)}B=F.call(this,s?r:a,s||"")}else B={[N]:a}}let t={};for(let o in B){let e=(s,u)=>{let v=u+((this.important||fe)&&!u.endsWith("!important")?"!important":"");s in t?t[s].push(v):t[s]=[v]},l=o+":",r=B[o];if(typeof r=="object")if(Array.isArray(r))for(let s of r)e(g,l+s.toString());else{ee=!0;for(let s in r)e(s,l+r[s])}else e(g,l+r.toString())}for(let o of Object.values(this.vendorSuffixSelectors))for(let e in t)this.natives.push({text:p(t[e].join(";"),e,o),theme:e})};if(this.theme)L(this.theme,!1);else if(C)for(let g of H)L(g,!0);else L("",!1)}at={};priority=-1;natives=[];keyframeNames;config;get values(){return this.css.values[this.config.id]}get text(){return this.natives.map(n=>n.text).join("")}resolveValue(n,f){return Number.isNaN(+n)?n:n/(f==="rem"||f==="em"?this.css.config.rootSize:1)+f}analyzeUnitValue(n,f){let S=f??this.config.unit;if(S){let j="",R=n.match(/^([+-.]?\d+(\.?\d+)?)(.*)?/);if(R)if(n.includes("/")){let[C,N]=n.split("/");return{value:+C/+N*100+"%",unit:j}}else{let C=+R[1];return j=R[3]||"",j||((S==="rem"||S==="em")&&(C=C/this.css.config.rootSize),j=S||""),{value:C,unit:j}}}}};export{le as Rule};