@unocss/runtime 0.55.3 → 0.55.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/attributify.global.js +3 -3
- package/core.global.js +2 -2
- package/dist/index.d.mts +21 -1
- package/dist/index.d.ts +21 -1
- package/dist/index.js +6 -4
- package/dist/index.mjs +6 -4
- package/full.global.js +3 -3
- package/mini.global.js +3 -3
- package/package.json +4 -4
- package/uno.global.js +3 -3
package/core.global.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(()=>{function Ae(t){let e=t.length,r=-1,n,s="",i=t.charCodeAt(0);for(;++r<e;){if(n=t.charCodeAt(r),n===0){s+="\uFFFD";continue}if(n===44){s+="\\,";continue}if(n>=1&&n<=31||n===127||r===0&&n>=48&&n<=57||r===1&&n>=48&&n<=57&&i===45){s+=`\\${n.toString(16)} `;continue}if(r===0&&e===1&&n===45){s+=`\\${t.charAt(r)}`;continue}if(n>=128||n===45||n===95||n>=48&&n<=57||n>=65&&n<=90||n>=97&&n<=122){s+=t.charAt(r);continue}s+=`\\${t.charAt(r)}`}return s}var
|
|
2
|
-
`,p=new Set([Y]),m=u?new Map:new Set,x=new Map,A={},w=Array.from(f).map(async a=>{if(m.has(a))return;let h=await this.parseToken(a);if(h!=null){m instanceof Map?m.set(a,{data:h,count:B(f)?f.getCount(a):-1}):m.add(a);for(let E of h){let U=E[3]||"",_=E[4]?.layer;x.has(U)||x.set(U,[]),x.get(U).push(E),_&&p.add(_)}}});await Promise.all(w),await(async()=>{if(!i)return;let a={generator:this,theme:this.config.theme},h=new Set([]);this.config.preflights.forEach(({layer:E=q})=>{p.add(E),h.add(E)}),A=Object.fromEntries(await Promise.all(Array.from(h).map(async E=>{let _=(await Promise.all(this.config.preflights.filter(O=>(O.layer||q)===E).map(async O=>await O.getCSS(a)))).filter(Boolean).join(o);return[E,_]})))})();let y=this.config.sortLayers(Array.from(p).sort((a,h)=>(this.config.layers[a]??0)-(this.config.layers[h]??0)||a.localeCompare(h))),T={},S=a=>{if(T[a])return T[a];let h=Array.from(x).sort((U,_)=>(this.parentOrders.get(U[0])??0)-(this.parentOrders.get(_[0])??0)||U[0]?.localeCompare(_[0]||"")||0).map(([U,_])=>{let O=_.length,k=_.filter(d=>(d[4]?.layer||Y)===a).sort((d,R)=>d[0]-R[0]||(d[4]?.sort||0)-(R[4]?.sort||0)||d[5]?.currentSelector?.localeCompare(R[5]?.currentSelector??"")||d[1]?.localeCompare(R[1]||"")||d[2]?.localeCompare(R[2]||"")||0).map(([,d,R,,V,,j])=>[[[(d&&Ke(d,s))??"",V?.sort??0]],R,!!(j??V?.noMerge)]);if(!k.length)return;let g=k.reverse().map(([d,R,V],j)=>{if(!V&&this.config.mergeSelectors)for(let P=j+1;P<O;P++){let $=k[P];if($&&!$[2]&&(d&&$[0]||d==null&&$[0]==null)&&$[1]===R)return d&&$[0]&&$[0].push(...d),null}let Z=d?D(d.sort((P,$)=>P[1]-$[1]||P[0]?.localeCompare($[0]||"")||0).map(P=>P[0]).filter(Boolean)):[];return Z.length?`${Z.join(`,${o}`)}{${R}}`:R}).filter(Boolean).reverse().join(o);if(!U)return g;let C=U.split(" $$ ");return`${C.join("{")}{${o}${g}${o}}${C.map(d=>"").join("}")}`}).filter(Boolean).join(o);i&&(h=[A[a],h].filter(Boolean).join(o));let E=l?"":`/* layer: ${a} */${o}`;return T[a]=h?E+h:""},b=(a=y,h)=>a.filter(E=>!h?.includes(E)).map(E=>S(E)||"").filter(Boolean).join(o);return{get css(){return b()},layers:y,matched:m,getLayers:b,getLayer:S}}async matchVariants(e,r){let n=new Set,s=[],i=r||e,c=!1,l={rawSelector:e,theme:this.config.theme,generator:this};for(;;){c=!1;for(let u of this.config.variants){if(!u.multiPass&&n.has(u))continue;let f=await u.match(i,l);if(f){if(v(f)){if(f===i)continue;f={matcher:f}}i=f.matcher,s.unshift(f),n.add(u),c=!0;break}}if(!c)break;if(s.length>500)throw new Error(`Too many variants applied to "${e}"`)}return[e,i,s,n]}applyVariants(e,r=e[4],n=e[1]){let i=r.slice().sort((f,o)=>(f.order||0)-(o.order||0)).reduceRight((f,o)=>p=>{let m=o.body?.(p.entries)||p.entries,x=Array.isArray(o.parent)?o.parent:[o.parent,void 0];return(o.handle??He)({...p,entries:m,selector:o.selector?.(p.selector,m)||p.selector,parent:x[0]||p.parent,parentOrder:x[1]||p.parentOrder,layer:o.layer||p.layer,sort:o.sort||p.sort},f)},f=>f)({prefix:"",selector:Ge(n),pseudo:"",entries:e[2]}),{parent:c,parentOrder:l}=i;c!=null&&l!=null&&this.parentOrders.set(c,l);let u={selector:[i.prefix,i.selector,i.pseudo].join(""),entries:i.entries,parent:c,layer:i.layer,sort:i.sort,noMerge:i.noMerge};for(let f of this.config.postprocess)f(u);return u}constructCustomCSS(e,r,n){let s=L(r);if(v(s))return s;let{selector:i,entries:c,parent:l}=this.applyVariants([0,n||e.rawSelector,s,void 0,e.variantHandlers]),u=`${i}{${F(c)}}`;return l?`${l}{${u}}`:u}async parseUtil(e,r,n=!1,s){let[i,c,l]=v(e)?await this.matchVariants(e):e;this.config.details&&(r.rules=r.rules??[]);let u=this.config.rulesStaticMap[c];if(u&&u[1]&&(n||!u[2]?.internal)){this.config.details&&r.rules.push(u[3]);let o=u[0],p=L(u[1]),m=u[2];return v(p)?[[o,p,m]]:[[o,i,p,m,l]]}r.variantHandlers=l;let{rulesDynamic:f}=this.config;for(let[o,p,m,x]of f){if(x?.internal&&!n)continue;let A=c;if(x?.prefix){let S=M(x.prefix);if(s){let b=M(s);if(!S.some(a=>b.includes(a)))continue}else{let b=S.find(a=>c.startsWith(a));if(b==null)continue;A=c.slice(b.length)}}let w=A.match(p);if(!w)continue;let y=await m(w,r);if(!y)continue;this.config.details&&r.rules.push([p,m,x]);let T=ne(y).filter(S=>S.length);if(T.length)return T.map(S=>v(S)?[o,S,x]:[o,i,S,x,l])}}stringifyUtil(e,r){if(!e)return;if(X(e))return[e[0],void 0,e[1],void 0,e[2],this.config.details?r:void 0,void 0];let{selector:n,entries:s,parent:i,layer:c,sort:l,noMerge:u}=this.applyVariants(e),f=F(s);if(!f)return;let{layer:o,sort:p,...m}=e[3]??{},x={...m,layer:c??o,sort:l??p};return[e[0],n,f,i,x,this.config.details?r:void 0,u]}async expandShortcut(e,r,n=5){if(n===0)return;let s=this.config.details?l=>{r.shortcuts=r.shortcuts??[],r.shortcuts.push(l)}:ce,i,c;for(let l of this.config.shortcuts){let u=e;if(l[2]?.prefix){let o=M(l[2].prefix).find(p=>e.startsWith(p));if(o==null)continue;u=e.slice(o.length)}if(ie(l)){if(l[0]===u){i=i||l[2],c=l[1],s(l);break}}else{let f=u.match(l[0]);if(f&&(c=l[1](f,r)),c){i=i||l[2],s(l);break}}}if(v(c)&&(c=le(c.trim()).split(/\s+/g)),!c){let[l,u]=v(e)?await this.matchVariants(e):e;if(l!==u){let f=await this.expandShortcut(u,r,n-1);f&&(c=f[0].map(o=>v(o)?l.replace(u,o):o))}}if(c)return[(await Promise.all(c.map(async l=>(v(l)?(await this.expandShortcut(l,r,n-1))?.[0]:void 0)||[l]))).flat(1).filter(Boolean),i]}async stringifyShortcuts(e,r,n,s={layer:this.config.shortcutsLayer}){let i=new N,c=(await Promise.all(D(n).map(async o=>{let p=v(o)?await this.parseUtil(o,r,!0,s.prefix):[[Number.POSITIVE_INFINITY,"{inline}",L(o),void 0,[]]];return p||fe(`unmatched utility "${o}" in shortcut "${e[1]}"`),p||[]}))).flat(1).filter(Boolean).sort((o,p)=>o[0]-p[0]),[l,,u]=e,f=[];for(let o of c){if(X(o)){f.push([o[0],void 0,o[1],void 0,o[2],r,void 0]);continue}let{selector:p,entries:m,parent:x,sort:A,noMerge:w}=this.applyVariants(o,[...o[4],...u],l);i.getFallback(p,x,[[],o[0]])[0].push([m,!!(w??o[3]?.noMerge),A??0])}return f.concat(i.map(([o,p],m,x)=>{let A=(y,T,S)=>{let b=Math.max(...S.map(h=>h[1])),a=S.map(h=>h[0]);return(y?[a.flat(1)]:a).map(h=>{let E=F(h);if(E)return[p,m,E,x,{...s,noMerge:T,sort:b},r,void 0]})};return[[o.filter(([,y])=>y).map(([y,,T])=>[y,T]),!0],[o.filter(([,y])=>!y).map(([y,,T])=>[y,T]),!1]].map(([y,T])=>[...A(!1,T,y.filter(([S])=>S.some(b=>b[0]===Q))),...A(!0,T,y.filter(([S])=>S.every(b=>b[0]!==Q)))])}).flat(2).filter(Boolean))}isBlocked(e){return!e||this.config.blocklist.some(r=>v(r)?r===e:r.test(e))}};function Ce(t,e){return new te(t,e)}var Le=/\s\$\$\s+/g;function ke(t){return t.match(/\s\$\$\s/)}function Ke(t,e){return ke(t)?t.replace(Le,e?` ${e} `:" "):e?`${e} ${t}`:t}var Se=/^\[(.+?)(~?=)"(.*)"\]$/;function Ge(t){return Se.test(t)?t.replace(Se,(e,r,n,s)=>`[${H(r)}${n}"${H(s)}"]`):`.${H(t)}`}function He(t,e){return e(t)}function Ie(t){return t.replace(/-(\w)/g,(e,r)=>r?r.toUpperCase():"")}function be(t){return t.charAt(0).toUpperCase()+t.slice(1)}function Te(t){return t.replace(/(?:^|\B)([A-Z])/g,"-$1").toLowerCase()}var Ee=["Webkit","Moz","ms"];function Re(t){let e={};function r(n){let s=e[n];if(s)return s;let i=Ie(n);if(i!=="filter"&&i in t)return e[n]=Te(i);i=be(i);for(let c=0;c<Ee.length;c++){let l=`${Ee[c]}${i}`;if(l in t)return e[n]=Te(be(l))}return n}return({entries:n})=>n.forEach(s=>{s[0].startsWith("--")||(s[0]=r(s[0]))})}function ve(t){return t.replace(/&/g,"&").replace(/>/g,">").replace(/</g,"<")}function re(t={}){if(typeof window>"u"){console.warn("@unocss/runtime been used in non-browser environment, skipped.");return}let e=window,r=window.document,n=()=>r.documentElement,s=e.__unocss||{},i=Object.assign({},t,s.runtime),c=i.defaults||{},l=i.cloakAttribute??"un-cloak";i.autoPrefix&&(c.postprocess=M(c.postprocess)).unshift(Re(r.createElement("div").style)),i.configResolved?.(s,c);let u=Ce(s,c),f=new Map,o=!0,p=new Set,m,x,A=[],w=()=>new Promise(g=>{A.push(g),x!=null&&clearTimeout(x),x=setTimeout(()=>S().then(()=>{let C=A;A=[],C.forEach(d=>d())}),0)});function y(g){if(g.nodeType!==1)return;let C=g;C.hasAttribute(l)&&C.removeAttribute(l),C.querySelectorAll(`[${l}]`).forEach(d=>{d.removeAttribute(l)})}function T(g,C){let d=f.get(g);if(!d)if(d=r.createElement("style"),d.setAttribute("data-unocss-runtime-layer",g),f.set(g,d),C==null)n().prepend(d);else{let R=T(C),V=R.parentNode;V?V.insertBefore(d,R.nextSibling):n().prepend(d)}return d}async function S(){let g=await u.generate(p);return g.layers.reduce((C,d)=>(T(d,C).innerHTML=g.getLayer(d)??"",d),void 0),p=g.matched,{...g,getStyleElement:C=>f.get(C),getStyleElements:()=>f}}async function b(g){let C=p.size;await u.applyExtractors(g,void 0,p),C!==p.size&&await w()}async function a(){let g=r.body,C=g&&g.outerHTML;C&&(await b(`${C} ${ve(C)}`),y(n()),y(g))}let h=new MutationObserver(g=>{o||g.forEach(async C=>{if(C.target.nodeType!==1)return;let d=C.target;for(let R of f)if(d===R[1])return;if(C.type==="childList")C.addedNodes.forEach(async R=>{if(R.nodeType!==1)return;let V=R;m&&!m(V)||(await b(V.outerHTML),y(V))});else{if(m&&!m(d))return;if(C.attributeName!==l){let R=Array.from(d.attributes).map(j=>j.value?`${j.name}="${j.value}"`:j.name).join(" "),V=`<${d.tagName.toLowerCase()} ${R}>`;await b(V)}d.hasAttribute(l)&&d.removeAttribute(l)}})}),E=!1;function U(){if(E)return;let g=n()||r.body;g&&(h.observe(g,{childList:!0,subtree:!0,attributes:!0}),E=!0)}function _(){i.bypassDefined&&Fe(u.blocked),a(),U()}function O(){r.readyState==="loading"?e.addEventListener("DOMContentLoaded",_):_()}let k=e.__unocss_runtime=e.__unocss_runtime={version:u.version,uno:u,async extract(g){v(g)||(g.forEach(C=>p.add(C)),g=""),await b(g)},extractAll:a,inspect(g){m=g},toggleObserver(g){g===void 0?o=!o:o=!!g,!E&&!o&&O()},update:S};i.ready?.(k)!==!1&&(o=!1,O())}function Fe(t=new Set){for(let e=0;e<document.styleSheets.length;e++){let r=document.styleSheets[e],n;try{if(n=r.cssRules||r.rules,!n)continue;Array.from(n).flatMap(s=>s.selectorText?.split(/,/g)||[]).forEach(s=>{s&&(s=s.trim(),s.startsWith(".")&&(s=s.slice(1)),t.add(s))})}catch{continue}}return t}re();})();
|
|
1
|
+
"use strict";(()=>{function Ae(t){let e=t.length,r=-1,n,s="",i=t.charCodeAt(0);for(;++r<e;){if(n=t.charCodeAt(r),n===0){s+="\uFFFD";continue}if(n===37){s+="\\%";continue}if(n===44){s+="\\,";continue}if(n>=1&&n<=31||n===127||r===0&&n>=48&&n<=57||r===1&&n>=48&&n<=57&&i===45){s+=`\\${n.toString(16)} `;continue}if(r===0&&e===1&&n===45){s+=`\\${t.charAt(r)}`;continue}if(n>=128||n===45||n===95||n>=48&&n<=57||n>=65&&n<=90||n>=97&&n<=122){s+=t.charAt(r);continue}s+=`\\${t.charAt(r)}`}return s}var F=Ae;function M(t=[]){return Array.isArray(t)?t:[t]}function D(t){return Array.from(new Set(t))}function v(t){return typeof t=="string"}function k(t){return v(t)?t:(Array.isArray(t)?t:Object.entries(t)).filter(e=>e[1]!=null)}function ne(t){return Array.isArray(t)?t.find(e=>!Array.isArray(e)||Array.isArray(e[0]))?t.map(e=>k(e)):[t]:[k(t)]}function we(t){return t.filter(([e,r],n)=>{if(e.startsWith("$$"))return!1;for(let s=n-1;s>=0;s--)if(t[s][0]===e&&t[s][1]===r)return!1;return!0})}function N(t){return t==null?"":we(t).map(([e,r])=>r!=null?`${e}:${r};`:void 0).filter(Boolean).join("")}function I(t){return t&&typeof t=="object"&&!Array.isArray(t)}function J(t,e,r=!1){let n=t,s=e;if(Array.isArray(s))return r&&Array.isArray(s)?[...n,...s]:[...s];let i={...n};return I(n)&&I(s)&&Object.keys(s).forEach(c=>{I(n[c])&&I(s[c])||Array.isArray(n[c])&&Array.isArray(s[c])?i[c]=J(n[c],s[c],r):Object.assign(i,{[c]:s[c]})}),i}function K(t){let e,r,n;if(Array.isArray(t)){for(r=Array(e=t.length);e--;)r[e]=(n=t[e])&&typeof n=="object"?K(n):n;return r}if(Object.prototype.toString.call(t)==="[object Object]"){r={};for(e in t)e==="__proto__"?Object.defineProperty(r,e,{value:K(t[e]),configurable:!0,enumerable:!0,writable:!0}):r[e]=(n=t[e])&&typeof n=="object"?K(n):n;return r}return t}function se(t){return v(t[0])}function ie(t){return v(t[0])}var Q="$$shortcut-no-merge";function oe(t){return typeof t=="function"?{match:t}:t}function X(t){return t.length===3}function ae(t){return t!=null}function ce(){}var B=class{_map=new Map;get(e,r){let n=this._map.get(e);if(n)return n.get(r)}getFallback(e,r,n){let s=this._map.get(e);return s||(s=new Map,this._map.set(e,s)),s.has(r)||s.set(r,n),s.get(r)}set(e,r,n){let s=this._map.get(e);return s||(s=new Map,this._map.set(e,s)),s.set(r,n),this}has(e,r){return this._map.get(e)?.has(r)}delete(e,r){return this._map.get(e)?.delete(r)||!1}deleteTop(e){return this._map.delete(e)}map(e){return Array.from(this._map.entries()).flatMap(([r,n])=>Array.from(n.entries()).map(([s,i])=>e(i,r,s)))}};var G=class extends Set{_map;constructor(e){super(e),this._map??=new Map}add(e){return this._map??=new Map,this._map.set(e,(this._map.get(e)??0)+1),super.add(e)}delete(e){return this._map.delete(e),super.delete(e)}clear(){this._map.clear(),super.clear()}getCount(e){return this._map.get(e)??0}setCount(e,r){return this._map.set(e,r),super.add(e)}};function z(t){return t instanceof G}var W={};function Me(t=["-",":"]){let e=t.join("|");return W[e]||(W[e]=new RegExp(`((?:[!@<~\\w+:_/-]|\\[&?>?:?\\S*\\])+?)(${e})\\(((?:[~!<>\\w\\s:/\\\\,%#.$?-]|\\[.*?\\])+?)\\)(?!\\s*?=>)`,"gm")),W[e].lastIndex=0,W[e]}function Ue(t,e=["-",":"],r=5){let n=Me(e),s,i=t.toString(),c=new Set,l=new Map;do s=!1,i=i.replace(n,(f,o,p,x,y)=>{if(!e.includes(p))return f;s=!0,c.add(o+p);let A=y+o.length+p.length+1,R={length:f.length,items:[]};l.set(y,R);for(let b of[...x.matchAll(/\S+/g)]){let C=A+b.index,S=l.get(C)?.items;S?l.delete(C):S=[{offset:C,length:b[0].length,className:b[0]}];for(let T of S)T.className=T.className==="~"?o:T.className.replace(/^(!?)(.*)/,`$1${o}${p}$2`),R.items.push(T)}return"$".repeat(f.length)}),r-=1;while(s&&r);let u;if(typeof t=="string"){u="";let f=0;for(let[o,p]of l)u+=t.slice(f,o),u+=p.items.map(x=>x.className).join(" "),f=o+p.length;u+=t.slice(f)}else{u=t;for(let[f,o]of l)u.overwrite(f,f+o.length,o.items.map(p=>p.className).join(" "))}return{prefixes:Array.from(c),hasChanged:s,groupsByOffset:l,get expanded(){return u.toString()}}}function le(t,e=["-",":"],r=5){let n=Ue(t,e,r);return typeof t=="string"?n.expanded:t}var ue=new Set;function fe(t){ue.has(t)||(console.warn("[unocss]",t),ue.add(t))}var pe=/[\\:]?[\s'"`;{}]+/g;function Ve(t){return t.split(pe)}var Y={name:"@unocss/core/extractor-split",order:0,extract({code:t}){return Ve(t)}};function de(){return{events:{},emit(t,...e){(this.events[t]||[]).forEach(r=>r(...e))},on(t,e){return(this.events[t]=this.events[t]||[]).push(e),()=>this.events[t]=(this.events[t]||[]).filter(r=>r!==e)}}}var q="default",Z="preflights",_e="shortcuts",$e="imports",ge={[$e]:-200,[Z]:-100,[_e]:-10,[q]:0};function me(t){return M(t).flatMap(e=>Array.isArray(e)?[e]:Object.entries(e))}var he="_uno_resolved";function Oe(t){if(he in t)return t;t={...t},Object.defineProperty(t,he,{value:!0,enumerable:!1});let e=t.shortcuts?me(t.shortcuts):void 0;if(t.shortcuts=e,t.prefix||t.layer){let r=n=>{n[2]||(n[2]={});let s=n[2];s.prefix==null&&t.prefix&&(s.prefix=M(t.prefix)),s.layer==null&&t.layer&&(s.layer=t.layer)};e?.forEach(r),t.rules?.forEach(r)}return t}function xe(t){let e=Oe(t);if(!e.presets)return[e];let r=(e.presets||[]).flatMap(M).flatMap(xe);return[e,...r]}function ee(t={},e={}){let r=Object.assign({},e,t),n=D((r.presets||[]).flatMap(M).flatMap(xe)),s=[...n.filter(a=>a.enforce==="pre"),...n.filter(a=>!a.enforce),...n.filter(a=>a.enforce==="post")],i=[...s,r],c=[...i].reverse(),l=Object.assign({},ge,...i.map(a=>a.layers));function u(a){return D(i.flatMap(h=>M(h[a]||[])))}let f=u("extractors"),o=c.find(a=>a.extractorDefault!==void 0)?.extractorDefault;o===void 0&&(o=Y),o&&!f.includes(o)&&f.unshift(o),f.sort((a,h)=>(a.order||0)-(h.order||0));let p=u("rules"),x={},y=p.length,A=p.map((a,h)=>{if(se(a)){M(a[2]?.prefix||"").forEach(w=>{x[w+a[0]]=[h,a[1],a[2],a]});return}return[h,...a]}).filter(Boolean).reverse(),R=je(i.map(a=>a.theme)),b=u("extendTheme");for(let a of b)R=a(R)||R;let C={templates:D(i.flatMap(a=>M(a.autocomplete?.templates))),extractors:i.flatMap(a=>M(a.autocomplete?.extractors)).sort((a,h)=>(a.order||0)-(h.order||0)),shorthands:Pe(i.map(a=>a.autocomplete?.shorthands||{}))},S=u("separators");S.length||(S=[":","-"]);let T={mergeSelectors:!0,warn:!0,blocklist:[],sortLayers:a=>a,...r,presets:s,envMode:r.envMode||"build",shortcutsLayer:r.shortcutsLayer||"shortcuts",layers:l,theme:R,rulesSize:y,rulesDynamic:A,rulesStaticMap:x,preprocess:u("preprocess"),postprocess:u("postprocess"),preflights:u("preflights"),autocomplete:C,variants:u("variants").map(oe).sort((a,h)=>(a.order||0)-(h.order||0)),shortcuts:me(u("shortcuts")).reverse(),extractors:f,safelist:u("safelist"),separators:S,details:r.details??r.envMode==="dev"};for(let a of i)a?.configResolved?.(T);return T}function je(t){return t.map(e=>e?K(e):{}).reduce((e,r)=>J(e,r),{})}function Pe(t){return t.reduce((e,r)=>{let n={};for(let s in r){let i=r[s];Array.isArray(i)?n[s]=`(${i.join("|")})`:n[s]=i}return{...e,...n}},{})}var ye="0.55.4";var te=class{constructor(e={},r={}){this.userConfig=e;this.defaults=r;this.config=ee(e,r),this.events.emit("config",this.config)}version=ye;_cache=new Map;config;blocked=new Set;parentOrders=new Map;events=de();setConfig(e,r){e&&(r&&(this.defaults=r),this.userConfig=e,this.blocked.clear(),this.parentOrders.clear(),this._cache.clear(),this.config=ee(e,this.defaults),this.events.emit("config",this.config))}async applyExtractors(e,r,n=new Set){let s={original:e,code:e,id:r,extracted:n,envMode:this.config.envMode};for(let i of this.config.extractors){let c=await i.extract?.(s);if(c)if(z(c)&&z(n))for(let l of c)n.setCount(l,n.getCount(l)+c.getCount(l));else for(let l of c)n.add(l)}return n}makeContext(e,r){let n={rawSelector:e,currentSelector:r[1],theme:this.config.theme,generator:this,variantHandlers:r[2],constructCSS:(...s)=>this.constructCustomCSS(n,...s),variantMatch:r};return n}async parseToken(e,r){if(this.blocked.has(e))return;let n=`${e}${r?` ${r}`:""}`;if(this._cache.has(n))return this._cache.get(n);let s=e;for(let f of this.config.preprocess)s=f(e);if(this.isBlocked(s)){this.blocked.add(e),this._cache.set(n,null);return}let i=await this.matchVariants(e,s);if(!i||this.isBlocked(i[1])){this.blocked.add(e),this._cache.set(n,null);return}let c=this.makeContext(e,[r||i[0],i[1],i[2],i[3]]);this.config.details&&(c.variants=[...i[3]]);let l=await this.expandShortcut(c.currentSelector,c),u=l?await this.stringifyShortcuts(c.variantMatch,c,l[0],l[1]):(await this.parseUtil(c.variantMatch,c))?.map(f=>this.stringifyUtil(f,c)).filter(ae);if(u?.length)return this._cache.set(n,u),u;this._cache.set(n,null)}async generate(e,r={}){let{id:n,scope:s,preflights:i=!0,safelist:c=!0,minify:l=!1,extendedInfo:u=!1}=r,f=v(e)?await this.applyExtractors(e,n,u?new G:new Set):Array.isArray(e)?new Set(e):e;c&&this.config.safelist.forEach(a=>{f.has(a)||f.add(a)});let o=l?"":`
|
|
2
|
+
`,p=new Set([q]),x=u?new Map:new Set,y=new Map,A={},R=Array.from(f).map(async a=>{if(x.has(a))return;let h=await this.parseToken(a);if(h!=null){x instanceof Map?x.set(a,{data:h,count:z(f)?f.getCount(a):-1}):x.add(a);for(let E of h){let w=E[3]||"",V=E[4]?.layer;y.has(w)||y.set(w,[]),y.get(w).push(E),V&&p.add(V)}}});await Promise.all(R),await(async()=>{if(!i)return;let a={generator:this,theme:this.config.theme},h=new Set([]);this.config.preflights.forEach(({layer:E=Z})=>{p.add(E),h.add(E)}),A=Object.fromEntries(await Promise.all(Array.from(h).map(async E=>{let V=(await Promise.all(this.config.preflights.filter(O=>(O.layer||Z)===E).map(async O=>await O.getCSS(a)))).filter(Boolean).join(o);return[E,V]})))})();let b=this.config.sortLayers(Array.from(p).sort((a,h)=>(this.config.layers[a]??0)-(this.config.layers[h]??0)||a.localeCompare(h))),C={},S=a=>{if(C[a])return C[a];let h=Array.from(y).sort((w,V)=>(this.parentOrders.get(w[0])??0)-(this.parentOrders.get(V[0])??0)||w[0]?.localeCompare(V[0]||"")||0).map(([w,V])=>{let O=V.length,L=V.filter(d=>(d[4]?.layer||q)===a).sort((d,m)=>d[0]-m[0]||(d[4]?.sort||0)-(m[4]?.sort||0)||d[5]?.currentSelector?.localeCompare(m[5]?.currentSelector??"")||d[1]?.localeCompare(m[1]||"")||d[2]?.localeCompare(m[2]||"")||0).map(([,d,m,,U,,_])=>[[[(d&&Ke(d,s))??"",U?.sort??0]],m,!!(_??U?.noMerge)]);if(!L.length)return;let H=L.reverse().map(([d,m,U],_)=>{if(!U&&this.config.mergeSelectors)for(let P=_+1;P<O;P++){let $=L[P];if($&&!$[2]&&(d&&$[0]||d==null&&$[0]==null)&&$[1]===m)return d&&$[0]&&$[0].push(...d),null}let j=d?D(d.sort((P,$)=>P[1]-$[1]||P[0]?.localeCompare($[0]||"")||0).map(P=>P[0]).filter(Boolean)):[];return j.length?`${j.join(`,${o}`)}{${m}}`:m}).filter(Boolean).reverse().join(o);if(!w)return H;let g=w.split(" $$ ");return`${g.join("{")}{${o}${H}${o}${"}".repeat(g.length)}`}).filter(Boolean).join(o);i&&(h=[A[a],h].filter(Boolean).join(o));let E=l?"":`/* layer: ${a} */${o}`;return C[a]=h?E+h:""},T=(a=b,h)=>a.filter(E=>!h?.includes(E)).map(E=>S(E)||"").filter(Boolean).join(o);return{get css(){return T()},layers:b,matched:x,getLayers:T,getLayer:S}}async matchVariants(e,r){let n=new Set,s=[],i=r||e,c=!1,l={rawSelector:e,theme:this.config.theme,generator:this};for(;;){c=!1;for(let u of this.config.variants){if(!u.multiPass&&n.has(u))continue;let f=await u.match(i,l);if(f){if(v(f)){if(f===i)continue;f={matcher:f}}i=f.matcher,s.unshift(f),n.add(u),c=!0;break}}if(!c)break;if(s.length>500)throw new Error(`Too many variants applied to "${e}"`)}return[e,i,s,n]}applyVariants(e,r=e[4],n=e[1]){let i=r.slice().sort((f,o)=>(f.order||0)-(o.order||0)).reduceRight((f,o)=>p=>{let x=o.body?.(p.entries)||p.entries,y=Array.isArray(o.parent)?o.parent:[o.parent,void 0];return(o.handle??He)({...p,entries:x,selector:o.selector?.(p.selector,x)||p.selector,parent:y[0]||p.parent,parentOrder:y[1]||p.parentOrder,layer:o.layer||p.layer,sort:o.sort||p.sort},f)},f=>f)({prefix:"",selector:Ge(n),pseudo:"",entries:e[2]}),{parent:c,parentOrder:l}=i;c!=null&&l!=null&&this.parentOrders.set(c,l);let u={selector:[i.prefix,i.selector,i.pseudo].join(""),entries:i.entries,parent:c,layer:i.layer,sort:i.sort,noMerge:i.noMerge};for(let f of this.config.postprocess)f(u);return u}constructCustomCSS(e,r,n){let s=k(r);if(v(s))return s;let{selector:i,entries:c,parent:l}=this.applyVariants([0,n||e.rawSelector,s,void 0,e.variantHandlers]),u=`${i}{${N(c)}}`;return l?`${l}{${u}}`:u}async parseUtil(e,r,n=!1,s){let[i,c,l]=v(e)?await this.matchVariants(e):e;this.config.details&&(r.rules=r.rules??[]);let u=this.config.rulesStaticMap[c];if(u&&u[1]&&(n||!u[2]?.internal)){this.config.details&&r.rules.push(u[3]);let o=u[0],p=k(u[1]),x=u[2];return v(p)?[[o,p,x]]:[[o,i,p,x,l]]}r.variantHandlers=l;let{rulesDynamic:f}=this.config;for(let[o,p,x,y]of f){if(y?.internal&&!n)continue;let A=c;if(y?.prefix){let S=M(y.prefix);if(s){let T=M(s);if(!S.some(a=>T.includes(a)))continue}else{let T=S.find(a=>c.startsWith(a));if(T==null)continue;A=c.slice(T.length)}}let R=A.match(p);if(!R)continue;let b=await x(R,r);if(!b)continue;this.config.details&&r.rules.push([p,x,y]);let C=ne(b).filter(S=>S.length);if(C.length)return C.map(S=>v(S)?[o,S,y]:[o,i,S,y,l])}}stringifyUtil(e,r){if(!e)return;if(X(e))return[e[0],void 0,e[1],void 0,e[2],this.config.details?r:void 0,void 0];let{selector:n,entries:s,parent:i,layer:c,sort:l,noMerge:u}=this.applyVariants(e),f=N(s);if(!f)return;let{layer:o,sort:p,...x}=e[3]??{},y={...x,layer:c??o,sort:l??p};return[e[0],n,f,i,y,this.config.details?r:void 0,u]}async expandShortcut(e,r,n=5){if(n===0)return;let s=this.config.details?l=>{r.shortcuts=r.shortcuts??[],r.shortcuts.push(l)}:ce,i,c;for(let l of this.config.shortcuts){let u=e;if(l[2]?.prefix){let o=M(l[2].prefix).find(p=>e.startsWith(p));if(o==null)continue;u=e.slice(o.length)}if(ie(l)){if(l[0]===u){i=i||l[2],c=l[1],s(l);break}}else{let f=u.match(l[0]);if(f&&(c=l[1](f,r)),c){i=i||l[2],s(l);break}}}if(v(c)&&(c=le(c.trim()).split(/\s+/g)),!c){let[l,u]=v(e)?await this.matchVariants(e):e;if(l!==u){let f=await this.expandShortcut(u,r,n-1);f&&(c=f[0].map(o=>v(o)?l.replace(u,o):o))}}if(c)return[(await Promise.all(c.map(async l=>(v(l)?(await this.expandShortcut(l,r,n-1))?.[0]:void 0)||[l]))).flat(1).filter(Boolean),i]}async stringifyShortcuts(e,r,n,s={layer:this.config.shortcutsLayer}){let i=new B,c=(await Promise.all(D(n).map(async o=>{let p=v(o)?await this.parseUtil(o,r,!0,s.prefix):[[Number.POSITIVE_INFINITY,"{inline}",k(o),void 0,[]]];return p||fe(`unmatched utility "${o}" in shortcut "${e[1]}"`),p||[]}))).flat(1).filter(Boolean).sort((o,p)=>o[0]-p[0]),[l,,u]=e,f=[];for(let o of c){if(X(o)){f.push([o[0],void 0,o[1],void 0,o[2],r,void 0]);continue}let{selector:p,entries:x,parent:y,sort:A,noMerge:R}=this.applyVariants(o,[...o[4],...u],l);i.getFallback(p,y,[[],o[0]])[0].push([x,!!(R??o[3]?.noMerge),A??0])}return f.concat(i.map(([o,p],x,y)=>{let A=(b,C,S)=>{let T=Math.max(...S.map(h=>h[1])),a=S.map(h=>h[0]);return(b?[a.flat(1)]:a).map(h=>{let E=N(h);if(E)return[p,x,E,y,{...s,noMerge:C,sort:T},r,void 0]})};return[[o.filter(([,b])=>b).map(([b,,C])=>[b,C]),!0],[o.filter(([,b])=>!b).map(([b,,C])=>[b,C]),!1]].map(([b,C])=>[...A(!1,C,b.filter(([S])=>S.some(T=>T[0]===Q))),...A(!0,C,b.filter(([S])=>S.every(T=>T[0]!==Q)))])}).flat(2).filter(Boolean))}isBlocked(e){return!e||this.config.blocklist.some(r=>v(r)?r===e:r.test(e))}};function be(t,e){return new te(t,e)}var Le=/\s\$\$\s+/g;function ke(t){return t.match(/\s\$\$\s/)}function Ke(t,e){return ke(t)?t.replace(Le,e?` ${e} `:" "):e?`${e} ${t}`:t}var Se=/^\[(.+?)(~?=)"(.*)"\]$/;function Ge(t){return Se.test(t)?t.replace(Se,(e,r,n,s)=>`[${F(r)}${n}"${F(s)}"]`):`.${F(t)}`}function He(t,e){return e(t)}function Fe(t){return t.replace(/-(\w)/g,(e,r)=>r?r.toUpperCase():"")}function Ce(t){return t.charAt(0).toUpperCase()+t.slice(1)}function Te(t){return t.replace(/(?:^|\B)([A-Z])/g,"-$1").toLowerCase()}var Ee=["Webkit","Moz","ms"];function Re(t){let e={};function r(n){let s=e[n];if(s)return s;let i=Fe(n);if(i!=="filter"&&i in t)return e[n]=Te(i);i=Ce(i);for(let c=0;c<Ee.length;c++){let l=`${Ee[c]}${i}`;if(l in t)return e[n]=Te(Ce(l))}return n}return({entries:n})=>n.forEach(s=>{s[0].startsWith("--")||(s[0]=r(s[0]))})}function ve(t){return t.replace(/&/g,"&").replace(/>/g,">").replace(/</g,"<")}function re(t={}){if(typeof window>"u"){console.warn("@unocss/runtime been used in non-browser environment, skipped.");return}let e=window,r=window.document,n=()=>r.documentElement,s=e.__unocss||{},i=Object.assign({},t,s.runtime),c=i.defaults||{},l=i.cloakAttribute??"un-cloak";i.autoPrefix&&(c.postprocess=M(c.postprocess)).unshift(Re(r.createElement("div").style)),i.configResolved?.(s,c);let u=be(s,c),f=g=>i.inject?i.inject(g):n().prepend(g),o=new Map,p=!0,x=new Set,y,A,R=[],b=()=>new Promise(g=>{R.push(g),A!=null&&clearTimeout(A),A=setTimeout(()=>T().then(()=>{let d=R;R=[],d.forEach(m=>m())}),0)});function C(g){if(g.nodeType!==1)return;let d=g;d.hasAttribute(l)&&d.removeAttribute(l),d.querySelectorAll(`[${l}]`).forEach(m=>{m.removeAttribute(l)})}function S(g,d){let m=o.get(g);if(!m)if(m=r.createElement("style"),m.setAttribute("data-unocss-runtime-layer",g),o.set(g,m),d==null)f(m);else{let U=S(d),_=U.parentNode;_?_.insertBefore(m,U.nextSibling):f(m)}return m}async function T(){let g=await u.generate(x);return g.layers.reduce((d,m)=>(S(m,d).innerHTML=g.getLayer(m)??"",m),void 0),x=g.matched,{...g,getStyleElement:d=>o.get(d),getStyleElements:()=>o}}async function a(g){let d=x.size;await u.applyExtractors(g,void 0,x),d!==x.size&&await b()}async function h(){let g=r.body,d=g&&g.outerHTML;d&&(await a(`${d} ${ve(d)}`),C(n()),C(g))}let E=new MutationObserver(g=>{p||g.forEach(async d=>{if(d.target.nodeType!==1)return;let m=d.target;for(let U of o)if(m===U[1])return;if(d.type==="childList")d.addedNodes.forEach(async U=>{if(U.nodeType!==1)return;let _=U;y&&!y(_)||(await a(_.outerHTML),C(_))});else{if(y&&!y(m))return;if(d.attributeName!==l){let U=Array.from(m.attributes).map(j=>j.value?`${j.name}="${j.value}"`:j.name).join(" "),_=`<${m.tagName.toLowerCase()} ${U}>`;await a(_)}m.hasAttribute(l)&&m.removeAttribute(l)}})}),w=!1;function V(){if(w)return;let g=i.observer?.target?i.observer.target():n()||r.body;g&&(E.observe(g,{childList:!0,subtree:!0,attributes:!0,attributeFilter:i.observer?.attributeFilter}),w=!0)}function O(){i.bypassDefined&&Ie(u.blocked),h(),V()}function L(){r.readyState==="loading"?e.addEventListener("DOMContentLoaded",O):O()}let H=e.__unocss_runtime=e.__unocss_runtime={version:u.version,uno:u,async extract(g){v(g)||(g.forEach(d=>x.add(d)),g=""),await a(g)},extractAll:h,inspect(g){y=g},toggleObserver(g){g===void 0?p=!p:p=!!g,!w&&!p&&L()},update:T};i.ready?.(H)!==!1&&(p=!1,L())}function Ie(t=new Set){for(let e=0;e<document.styleSheets.length;e++){let r=document.styleSheets[e],n;try{if(n=r.cssRules||r.rules,!n)continue;Array.from(n).flatMap(s=>s.selectorText?.split(/,/g)||[]).forEach(s=>{s&&(s=s.trim(),s.startsWith(".")&&(s=s.slice(1)),t.add(s))})}catch{continue}}return t}re();})();
|
package/dist/index.d.mts
CHANGED
|
@@ -4,6 +4,17 @@ interface RuntimeGenerateResult extends GenerateResult {
|
|
|
4
4
|
getStyleElement(name: string): HTMLStyleElement | undefined;
|
|
5
5
|
getStyleElements(): Map<string, HTMLStyleElement>;
|
|
6
6
|
}
|
|
7
|
+
interface RuntimeObserverConfig {
|
|
8
|
+
/**
|
|
9
|
+
* A function that returns an HTML Element for the MutationObserver to watch.
|
|
10
|
+
*/
|
|
11
|
+
target?: () => Element;
|
|
12
|
+
/**
|
|
13
|
+
* An array of attribute names for the MutationObserver to limit which attributes
|
|
14
|
+
* are watched for mutations.
|
|
15
|
+
*/
|
|
16
|
+
attributeFilter?: Array<string>;
|
|
17
|
+
}
|
|
7
18
|
interface RuntimeOptions {
|
|
8
19
|
/**
|
|
9
20
|
* Default config of UnoCSS
|
|
@@ -23,10 +34,19 @@ interface RuntimeOptions {
|
|
|
23
34
|
* Callback to modify config
|
|
24
35
|
*/
|
|
25
36
|
configResolved?: (config: UserConfig, defaults: UserConfigDefaults) => void;
|
|
37
|
+
/**
|
|
38
|
+
* Optional function to control UnoCSS style element(s) injection into DOM.
|
|
39
|
+
* When provided, the default injection logic will be overridden.
|
|
40
|
+
*/
|
|
41
|
+
inject?: (styleElement: HTMLStyleElement) => void;
|
|
26
42
|
/**
|
|
27
43
|
* Callback when the runtime is ready. Returning false will prevent default extraction
|
|
28
44
|
*/
|
|
29
45
|
ready?: (runtime: RuntimeContext) => false | any;
|
|
46
|
+
/**
|
|
47
|
+
* Runtime MutationObserver configuration options
|
|
48
|
+
*/
|
|
49
|
+
observer?: RuntimeObserverConfig;
|
|
30
50
|
/**
|
|
31
51
|
* When enabled, UnoCSS will look for the existing selectors defined in the stylesheet and bypass them.
|
|
32
52
|
* This is useful when using the runtime alongwith the build-time UnoCSS.
|
|
@@ -92,4 +112,4 @@ declare global {
|
|
|
92
112
|
}
|
|
93
113
|
declare function init(inlineConfig?: RuntimeOptions): void;
|
|
94
114
|
|
|
95
|
-
export { RuntimeContext, RuntimeGenerateResult, RuntimeInspectorCallback, RuntimeOptions, init as default };
|
|
115
|
+
export { RuntimeContext, RuntimeGenerateResult, RuntimeInspectorCallback, RuntimeObserverConfig, RuntimeOptions, init as default };
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,17 @@ interface RuntimeGenerateResult extends GenerateResult {
|
|
|
4
4
|
getStyleElement(name: string): HTMLStyleElement | undefined;
|
|
5
5
|
getStyleElements(): Map<string, HTMLStyleElement>;
|
|
6
6
|
}
|
|
7
|
+
interface RuntimeObserverConfig {
|
|
8
|
+
/**
|
|
9
|
+
* A function that returns an HTML Element for the MutationObserver to watch.
|
|
10
|
+
*/
|
|
11
|
+
target?: () => Element;
|
|
12
|
+
/**
|
|
13
|
+
* An array of attribute names for the MutationObserver to limit which attributes
|
|
14
|
+
* are watched for mutations.
|
|
15
|
+
*/
|
|
16
|
+
attributeFilter?: Array<string>;
|
|
17
|
+
}
|
|
7
18
|
interface RuntimeOptions {
|
|
8
19
|
/**
|
|
9
20
|
* Default config of UnoCSS
|
|
@@ -23,10 +34,19 @@ interface RuntimeOptions {
|
|
|
23
34
|
* Callback to modify config
|
|
24
35
|
*/
|
|
25
36
|
configResolved?: (config: UserConfig, defaults: UserConfigDefaults) => void;
|
|
37
|
+
/**
|
|
38
|
+
* Optional function to control UnoCSS style element(s) injection into DOM.
|
|
39
|
+
* When provided, the default injection logic will be overridden.
|
|
40
|
+
*/
|
|
41
|
+
inject?: (styleElement: HTMLStyleElement) => void;
|
|
26
42
|
/**
|
|
27
43
|
* Callback when the runtime is ready. Returning false will prevent default extraction
|
|
28
44
|
*/
|
|
29
45
|
ready?: (runtime: RuntimeContext) => false | any;
|
|
46
|
+
/**
|
|
47
|
+
* Runtime MutationObserver configuration options
|
|
48
|
+
*/
|
|
49
|
+
observer?: RuntimeObserverConfig;
|
|
30
50
|
/**
|
|
31
51
|
* When enabled, UnoCSS will look for the existing selectors defined in the stylesheet and bypass them.
|
|
32
52
|
* This is useful when using the runtime alongwith the build-time UnoCSS.
|
|
@@ -92,4 +112,4 @@ declare global {
|
|
|
92
112
|
}
|
|
93
113
|
declare function init(inlineConfig?: RuntimeOptions): void;
|
|
94
114
|
|
|
95
|
-
export { RuntimeContext, RuntimeGenerateResult, RuntimeInspectorCallback, RuntimeOptions, init as default };
|
|
115
|
+
export { RuntimeContext, RuntimeGenerateResult, RuntimeInspectorCallback, RuntimeObserverConfig, RuntimeOptions, init as default };
|
package/dist/index.js
CHANGED
|
@@ -81,6 +81,7 @@ function init(inlineConfig = {}) {
|
|
|
81
81
|
}
|
|
82
82
|
runtimeOptions.configResolved?.(userConfig, userConfigDefaults);
|
|
83
83
|
const uno = (0, import_core.createGenerator)(userConfig, userConfigDefaults);
|
|
84
|
+
const inject = (styleElement) => runtimeOptions.inject ? runtimeOptions.inject(styleElement) : html().prepend(styleElement);
|
|
84
85
|
const styleElements = /* @__PURE__ */ new Map();
|
|
85
86
|
let paused = true;
|
|
86
87
|
let tokens = /* @__PURE__ */ new Set();
|
|
@@ -114,14 +115,14 @@ function init(inlineConfig = {}) {
|
|
|
114
115
|
styleElement.setAttribute("data-unocss-runtime-layer", layer);
|
|
115
116
|
styleElements.set(layer, styleElement);
|
|
116
117
|
if (previousLayer == null) {
|
|
117
|
-
|
|
118
|
+
inject(styleElement);
|
|
118
119
|
} else {
|
|
119
120
|
const previousStyle = getStyleElement(previousLayer);
|
|
120
121
|
const parentNode = previousStyle.parentNode;
|
|
121
122
|
if (parentNode)
|
|
122
123
|
parentNode.insertBefore(styleElement, previousStyle.nextSibling);
|
|
123
124
|
else
|
|
124
|
-
|
|
125
|
+
inject(styleElement);
|
|
125
126
|
}
|
|
126
127
|
}
|
|
127
128
|
return styleElement;
|
|
@@ -192,13 +193,14 @@ function init(inlineConfig = {}) {
|
|
|
192
193
|
function observe() {
|
|
193
194
|
if (observing)
|
|
194
195
|
return;
|
|
195
|
-
const target = html() || defaultDocument.body;
|
|
196
|
+
const target = runtimeOptions.observer?.target ? runtimeOptions.observer.target() : html() || defaultDocument.body;
|
|
196
197
|
if (!target)
|
|
197
198
|
return;
|
|
198
199
|
mutationObserver.observe(target, {
|
|
199
200
|
childList: true,
|
|
200
201
|
subtree: true,
|
|
201
|
-
attributes: true
|
|
202
|
+
attributes: true,
|
|
203
|
+
attributeFilter: runtimeOptions.observer?.attributeFilter
|
|
202
204
|
});
|
|
203
205
|
observing = true;
|
|
204
206
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -57,6 +57,7 @@ function init(inlineConfig = {}) {
|
|
|
57
57
|
}
|
|
58
58
|
runtimeOptions.configResolved?.(userConfig, userConfigDefaults);
|
|
59
59
|
const uno = createGenerator(userConfig, userConfigDefaults);
|
|
60
|
+
const inject = (styleElement) => runtimeOptions.inject ? runtimeOptions.inject(styleElement) : html().prepend(styleElement);
|
|
60
61
|
const styleElements = /* @__PURE__ */ new Map();
|
|
61
62
|
let paused = true;
|
|
62
63
|
let tokens = /* @__PURE__ */ new Set();
|
|
@@ -90,14 +91,14 @@ function init(inlineConfig = {}) {
|
|
|
90
91
|
styleElement.setAttribute("data-unocss-runtime-layer", layer);
|
|
91
92
|
styleElements.set(layer, styleElement);
|
|
92
93
|
if (previousLayer == null) {
|
|
93
|
-
|
|
94
|
+
inject(styleElement);
|
|
94
95
|
} else {
|
|
95
96
|
const previousStyle = getStyleElement(previousLayer);
|
|
96
97
|
const parentNode = previousStyle.parentNode;
|
|
97
98
|
if (parentNode)
|
|
98
99
|
parentNode.insertBefore(styleElement, previousStyle.nextSibling);
|
|
99
100
|
else
|
|
100
|
-
|
|
101
|
+
inject(styleElement);
|
|
101
102
|
}
|
|
102
103
|
}
|
|
103
104
|
return styleElement;
|
|
@@ -168,13 +169,14 @@ function init(inlineConfig = {}) {
|
|
|
168
169
|
function observe() {
|
|
169
170
|
if (observing)
|
|
170
171
|
return;
|
|
171
|
-
const target = html() || defaultDocument.body;
|
|
172
|
+
const target = runtimeOptions.observer?.target ? runtimeOptions.observer.target() : html() || defaultDocument.body;
|
|
172
173
|
if (!target)
|
|
173
174
|
return;
|
|
174
175
|
mutationObserver.observe(target, {
|
|
175
176
|
childList: true,
|
|
176
177
|
subtree: true,
|
|
177
|
-
attributes: true
|
|
178
|
+
attributes: true,
|
|
179
|
+
attributeFilter: runtimeOptions.observer?.attributeFilter
|
|
178
180
|
});
|
|
179
181
|
observing = true;
|
|
180
182
|
}
|