=4)return!1;if((u=pe(o)).length&&""===u[0]&&u.shift(),u.length&&""===u[u.length-1]&&u.pop(),0===(p=u.length)||p!==f.length)return!1;if(n)return!0;for(_=e.parentType,e.parentType="table",k=e.md.block.ruler.getRules("blockquote"),(h=e.push("table_open","table",1)).map=m=[r,0],(h=e.push("thead_open","thead",1)).map=[r,r+1],(h=e.push("tr_open","tr",1)).map=[r,r+1],a=0;a=4)break;for((u=pe(o)).length&&""===u[0]&&u.shift(),u.length&&""===u[u.length-1]&&u.pop(),l===r+2&&((h=e.push("tbody_open","tbody",1)).map=g=[r+2,0]),(h=e.push("tr_open","tr",1)).map=[l,l+1],a=0;a=4))break;s=++n}return e.line=s,(o=e.push("code_block","code",0)).content=e.getLines(r,s,4+e.blkIndent,!1)+"\n",o.map=[r,e.line],!0}],["fence",function(e,r,t,n){var s,o,i,a,c,l,u,p=!1,h=e.bMarks[r]+e.tShift[r],f=e.eMarks[r];if(e.sCount[r]-e.blkIndent>=4)return!1;if(h+3>f)return!1;if(126!==(s=e.src.charCodeAt(h))&&96!==s)return!1;if(c=h,(o=(h=e.skipChars(h,s))-c)<3)return!1;if(u=e.src.slice(c,h),i=e.src.slice(h,f),96===s&&i.indexOf(String.fromCharCode(s))>=0)return!1;if(n)return!0;for(a=r;!(++a>=t)&&!((h=c=e.bMarks[a]+e.tShift[a])<(f=e.eMarks[a])&&e.sCount[a]=4||(h=e.skipChars(h,s))-c=4)return!1;if(62!==e.src.charCodeAt(D++))return!1;if(n)return!0;for(a=h=e.sCount[r]+1,32===e.src.charCodeAt(D)?(D++,a++,h++,s=!1,k=!0):9===e.src.charCodeAt(D)?(k=!0,(e.bsCount[r]+h)%4==3?(D++,a++,h++,s=!1):s=!0):k=!1,f=[e.bMarks[r]],e.bMarks[r]=D;D=w,_=[e.sCount[r]],e.sCount[r]=h-a,b=[e.tShift[r]],e.tShift[r]=D-e.bMarks[r],C=e.md.block.ruler.getRules("blockquote"),g=e.parentType,e.parentType="blockquote",p=r+1;p=(w=e.eMarks[p])));p++)if(62!==e.src.charCodeAt(D++)||A){if(l)break;for(v=!1,i=0,c=C.length;i=w,d.push(e.bsCount[p]),e.bsCount[p]=e.sCount[p]+1+(k?1:0),_.push(e.sCount[p]),e.sCount[p]=h-a,b.push(e.tShift[p]),e.tShift[p]=D-e.bMarks[p]}for(m=e.blkIndent,e.blkIndent=0,(y=e.push("blockquote_open","blockquote",1)).markup=">",y.map=u=[r,0],e.md.block.tokenize(e,r,p),(y=e.push("blockquote_close","blockquote",-1)).markup=">",e.lineMax=x,e.parentType=g,u[1]=e.line,i=0;i=4)return!1;if(42!==(s=e.src.charCodeAt(c++))&&45!==s&&95!==s)return!1;for(o=1;c=4)return!1;if(e.listIndent>=0&&e.sCount[r]-e.listIndent>=4&&e.sCount[r]=e.blkIndent&&(z=!0),(w=ge(e,r))>=0){if(u=!0,q=e.bMarks[r]+e.tShift[r],g=Number(e.src.slice(q,w-1)),z&&1!==g)return!1}else{if(!((w=me(e,r))>=0))return!1;u=!1}if(z&&e.skipSpaces(w)>=e.eMarks[r])return!1;if(m=e.src.charCodeAt(w-1),n)return!0;for(d=e.tokens.length,u?(L=e.push("ordered_list_open","ol",1),1!==g&&(L.attrs=[["start",g]])):L=e.push("bullet_list_open","ul",1),L.map=f=[r,0],L.markup=String.fromCharCode(m),b=r,E=!1,F=e.md.block.ruler.getRules("list"),C=e.parentType,e.parentType="list";b=_?1:k-l)>4&&(c=1),a=l+c,(L=e.push("list_item_open","li",1)).markup=String.fromCharCode(m),L.map=p=[r,0],u&&(L.info=e.src.slice(q,w-1)),x=e.tight,A=e.tShift[r],y=e.sCount[r],v=e.listIndent,e.listIndent=e.blkIndent,e.blkIndent=a,e.tight=!0,e.tShift[r]=o-e.bMarks[r],e.sCount[r]=k,o>=_&&e.isEmpty(r+1)?e.line=Math.min(e.line+2,t):e.md.block.tokenize(e,r,t,!0),e.tight&&!E||(T=!1),E=e.line-r>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=v,e.tShift[r]=A,e.sCount[r]=y,e.tight=x,(L=e.push("list_item_close","li",-1)).markup=String.fromCharCode(m),b=r=e.line,p[1]=b,o=e.bMarks[r],b>=t)break;if(e.sCount[b]=4)break;for(S=!1,i=0,h=F.length;i=4)return!1;if(91!==e.src.charCodeAt(C))return!1;for(;++C3||e.sCount[A]<0)){for(_=!1,l=0,u=b.length;l=4)return!1;if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(c))return!1;for(a=e.src.slice(c,l),s=0;s=4)return!1;if(35!==(s=e.src.charCodeAt(c))||c>=l)return!1;for(o=1,s=e.src.charCodeAt(++c);35===s&&c6||cc&&xe(e.src.charCodeAt(i-1))&&(l=i),e.line=r+1,(a=e.push("heading_open","h"+String(o),1)).markup="########".slice(0,o),a.map=[r,e.line],(a=e.push("inline","",0)).content=e.src.slice(c,l).trim(),a.map=[r,e.line],a.children=[],(a=e.push("heading_close","h"+String(o),-1)).markup="########".slice(0,o)),!0)},["paragraph","reference","blockquote"]],["lheading",function(e,r,t){var n,s,o,i,a,c,l,u,p,h,f=r+1,d=e.md.block.ruler.getRules("paragraph");if(e.sCount[r]-e.blkIndent>=4)return!1;for(h=e.parentType,e.parentType="paragraph";f3)){if(e.sCount[f]>=e.blkIndent&&(c=e.bMarks[f]+e.tShift[f])<(l=e.eMarks[f])&&(45===(p=e.src.charCodeAt(c))||61===p)&&(c=e.skipChars(c,p),(c=e.skipSpaces(c))>=l)){u=61===p?1:2;break}if(!(e.sCount[f]<0)){for(s=!1,o=0,i=d.length;o3||e.sCount[c]<0)){for(n=!1,s=0,o=l.length;s=t))&&!(e.sCount[i]=c){e.line=t;break}for(n=0;n?@[]^_`{|}~-".split("").forEach((function(e){Ie[e.charCodeAt(0)]=1}));function Re(e,r){var t,n,s,o,i,a=[],c=r.length;for(t=0;t=0;t--)95!==(n=r[t]).marker&&42!==n.marker||-1!==n.end&&(s=r[n.end],a=t>0&&r[t-1].end===n.end+1&&r[t-1].token===n.token-1&&r[n.end+1].token===s.token+1&&r[t-1].marker===n.marker,i=String.fromCharCode(n.marker),(o=e.tokens[n.token]).type=a?"strong_open":"em_open",o.tag=a?"strong":"em",o.nesting=1,o.markup=a?i+i:i,o.content="",(o=e.tokens[s.token]).type=a?"strong_close":"em_close",o.tag=a?"strong":"em",o.nesting=-1,o.markup=a?i+i:i,o.content="",a&&(e.tokens[r[t-1].token].content="",e.tokens[r[n.end+1].token].content="",t--))}var Oe={tokenize:function(e,r){var t,n,s=e.pos,o=e.src.charCodeAt(s);if(r)return!1;if(95!==o&&42!==o)return!1;for(n=e.scanDelims(e.pos,42===o),t=0;t\x00-\x20]*)$/,$e=Ce.HTML_TAG_RE;var He=w.has,Je=w.isValidEntityCode,We=w.fromCodePoint,Ye=/^((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,Ke=/^&([a-z][a-z0-9]{1,31});/i;function Qe(e,r){var t,n,s,o,i,a,c,l,u={},p=r.length;for(t=0;ti;n-=o.jump+1)if((o=r[n]).marker===s.marker&&o.open&&o.end<0&&(c=!1,(o.close||s.open)&&(o.length+s.length)%3==0&&(o.length%3==0&&s.length%3==0||(c=!0)),!c)){l=n>0&&!r[n-1].open?r[n-1].jump+1:0,s.jump=t-n+l,s.open=!1,o.end=t,o.jump=l,o.close=!1,a=-1;break}-1!==a&&(u[s.marker][(s.open?3:0)+(s.length||0)%3]=a)}}var Xe=w.isWhiteSpace,er=w.isPunctChar,rr=w.isMdAsciiPunct;function tr(e,r,t,n){this.src=e,this.env=t,this.md=r,this.tokens=n,this.tokens_meta=Array(n.length),this.pos=0,this.posMax=this.src.length,this.level=0,this.pending="",this.pendingLevel=0,this.cache={},this.delimiters=[],this._prev_delimiters=[],this.backticks={},this.backticksScanned=!1}tr.prototype.pushPending=function(){var e=new ne("text","",0);return e.content=this.pending,e.level=this.pendingLevel,this.tokens.push(e),this.pending="",e},tr.prototype.push=function(e,r,t){this.pending&&this.pushPending();var n=new ne(e,r,t),s=null;return t<0&&(this.level--,this.delimiters=this._prev_delimiters.pop()),n.level=this.level,t>0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],s={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(n),this.tokens_meta.push(s),n},tr.prototype.scanDelims=function(e,r){var t,n,s,o,i,a,c,l,u,p=e,h=!0,f=!0,d=this.posMax,m=this.src.charCodeAt(e);for(t=e>0?this.src.charCodeAt(e-1):32;p=0&&32===e.pending.charCodeAt(t)?t>=1&&32===e.pending.charCodeAt(t-1)?(e.pending=e.pending.replace(/ +$/,""),e.push("hardbreak","br",0)):(e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0)):e.push("softbreak","br",0)),s++;s=f)return!1;if(d=a,(c=e.md.helpers.parseLinkDestination(e.src,a,e.posMax)).ok){for(u=e.md.normalizeLink(c.str),e.md.validateLink(u)?a=c.pos:u="",d=a;a=f||41!==e.src.charCodeAt(a))&&(m=!0),a++}if(m){if(void 0===e.env.references)return!1;if(a=0?s=e.src.slice(d,a++):a=o+1):a=o+1,s||(s=e.src.slice(i,o)),!(l=e.env.references[Pe(s)]))return e.pos=h,!1;u=l.href,p=l.title}return r||(e.pos=i,e.posMax=o,e.push("link_open","a",1).attrs=t=[["href",u]],p&&t.push(["title",p]),e.md.inline.tokenize(e),e.push("link_close","a",-1)),e.pos=a,e.posMax=f,!0}],["image",function(e,r){var t,n,s,o,i,a,c,l,u,p,h,f,d,m="",g=e.pos,_=e.posMax;if(33!==e.src.charCodeAt(e.pos))return!1;if(91!==e.src.charCodeAt(e.pos+1))return!1;if(a=e.pos+2,(i=e.md.helpers.parseLinkLabel(e,e.pos+1,!1))<0)return!1;if((c=i+1)<_&&40===e.src.charCodeAt(c)){for(c++;c<_&&(n=e.src.charCodeAt(c),Ve(n)||10===n);c++);if(c>=_)return!1;for(d=c,(u=e.md.helpers.parseLinkDestination(e.src,c,e.posMax)).ok&&(m=e.md.normalizeLink(u.str),e.md.validateLink(m)?c=u.pos:m=""),d=c;c<_&&(n=e.src.charCodeAt(c),Ve(n)||10===n);c++);if(u=e.md.helpers.parseLinkTitle(e.src,c,e.posMax),c<_&&d!==c&&u.ok)for(p=u.str,c=u.pos;c<_&&(n=e.src.charCodeAt(c),Ve(n)||10===n);c++);else p="";if(c>=_||41!==e.src.charCodeAt(c))return e.pos=g,!1;c++}else{if(void 0===e.env.references)return!1;if(c<_&&91===e.src.charCodeAt(c)?(d=c+1,(c=e.md.helpers.parseLinkLabel(e,c))>=0?o=e.src.slice(d,c++):c=i+1):c=i+1,o||(o=e.src.slice(a,i)),!(l=e.env.references[Ue(o)]))return e.pos=g,!1;m=l.href,p=l.title}return r||(s=e.src.slice(a,i),e.md.inline.parse(s,e.md,e.env,f=[]),(h=e.push("image","img",0)).attrs=t=[["src",m],["alt",""]],h.children=f,h.content=s,p&&t.push(["title",p])),e.pos=c,e.posMax=_,!0}],["autolink",function(e,r){var t,n,s,o,i,a,c=e.pos;if(60!==e.src.charCodeAt(c))return!1;for(i=e.pos,a=e.posMax;;){if(++c>=a)return!1;if(60===(o=e.src.charCodeAt(c)))return!1;if(62===o)break}return t=e.src.slice(i+1,c),Ge.test(t)?(n=e.md.normalizeLink(t),!!e.md.validateLink(n)&&(r||((s=e.push("link_open","a",1)).attrs=[["href",n]],s.markup="autolink",s.info="auto",(s=e.push("text","",0)).content=e.md.normalizeLinkText(t),(s=e.push("link_close","a",-1)).markup="autolink",s.info="auto"),e.pos+=t.length+2,!0)):!!Ze.test(t)&&(n=e.md.normalizeLink("mailto:"+t),!!e.md.validateLink(n)&&(r||((s=e.push("link_open","a",1)).attrs=[["href",n]],s.markup="autolink",s.info="auto",(s=e.push("text","",0)).content=e.md.normalizeLinkText(t),(s=e.push("link_close","a",-1)).markup="autolink",s.info="auto"),e.pos+=t.length+2,!0))}],["html_inline",function(e,r){var t,n,s,o=e.pos;return!!e.md.options.html&&(s=e.posMax,!(60!==e.src.charCodeAt(o)||o+2>=s)&&(!(33!==(t=e.src.charCodeAt(o+1))&&63!==t&&47!==t&&!function(e){var r=32|e;return r>=97&&r<=122}(t))&&(!!(n=e.src.slice(o).match($e))&&(r||(e.push("html_inline","",0).content=e.src.slice(o,o+n[0].length)),e.pos+=n[0].length,!0))))}],["entity",function(e,t){var n,s,o=e.pos,i=e.posMax;if(38!==e.src.charCodeAt(o))return!1;if(o+10&&n++,"text"===s[r].type&&r+1=o)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},ir.prototype.parse=function(e,r,t,n){var s,o,i,a=new this.State(e,r,t,n);for(this.tokenize(a),i=(o=this.ruler2.getRules("")).length,s=0;s=3&&":"===e[r-3]||r>=3&&"/"===e[r-3]?0:n.match(t.re.no_http)[0].length:0}},"mailto:":{validate:function(e,r,t){var n=e.slice(r);return t.re.mailto||(t.re.mailto=new RegExp("^"+t.re.src_email_name+"@"+t.re.src_host_strict,"i")),t.re.mailto.test(n)?n.match(t.re.mailto)[0].length:0}}},dr="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|\u0440\u0444".split("|");function mr(e){var r=e.re=function(e){var r={};return r.src_Any=y.source,r.src_Cc=A.source,r.src_Z=x.source,r.src_P=t.source,r.src_ZPCc=[r.src_Z,r.src_P,r.src_Cc].join("|"),r.src_ZCc=[r.src_Z,r.src_Cc].join("|"),r.src_pseudo_letter="(?:(?![><\uff5c]|"+r.src_ZPCc+")"+r.src_Any+")",r.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",r.src_auth="(?:(?:(?!"+r.src_ZCc+"|[@/\\[\\]()]).)+@)?",r.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",r.src_host_terminator="(?=$|[><\uff5c]|"+r.src_ZPCc+")(?!-|_|:\\d|\\.-|\\.(?!$|"+r.src_ZPCc+"))",r.src_path="(?:[/?#](?:(?!"+r.src_ZCc+"|[><\uff5c]|[()[\\]{}.,\"'?!\\-]).|\\[(?:(?!"+r.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+r.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+r.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+r.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+r.src_ZCc+"|[']).)+\\'|\\'(?="+r.src_pseudo_letter+"|[-]).|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+r.src_ZCc+"|[.]).|"+(e&&e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+"\\,(?!"+r.src_ZCc+").|\\!+(?!"+r.src_ZCc+"|[!]).|\\?(?!"+r.src_ZCc+"|[?]).)+|\\/)?",r.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',r.src_xn="xn--[a-z0-9\\-]{1,59}",r.src_domain_root="(?:"+r.src_xn+"|"+r.src_pseudo_letter+"{1,63})",r.src_domain="(?:"+r.src_xn+"|(?:"+r.src_pseudo_letter+")|(?:"+r.src_pseudo_letter+"(?:-|"+r.src_pseudo_letter+"){0,61}"+r.src_pseudo_letter+"))",r.src_host="(?:(?:(?:(?:"+r.src_domain+")\\.)*"+r.src_domain+"))",r.tpl_host_fuzzy="(?:"+r.src_ip4+"|(?:(?:(?:"+r.src_domain+")\\.)+(?:%TLDS%)))",r.tpl_host_no_ip_fuzzy="(?:(?:(?:"+r.src_domain+")\\.)+(?:%TLDS%))",r.src_host_strict=r.src_host+r.src_host_terminator,r.tpl_host_fuzzy_strict=r.tpl_host_fuzzy+r.src_host_terminator,r.src_host_port_strict=r.src_host+r.src_port+r.src_host_terminator,r.tpl_host_port_fuzzy_strict=r.tpl_host_fuzzy+r.src_port+r.src_host_terminator,r.tpl_host_port_no_ip_fuzzy_strict=r.tpl_host_no_ip_fuzzy+r.src_port+r.src_host_terminator,r.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+r.src_ZPCc+"|>|$))",r.tpl_email_fuzzy='(^|[><\uff5c]|"|\\(|'+r.src_ZCc+")("+r.src_email_name+"@"+r.tpl_host_fuzzy_strict+")",r.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`|\uff5c]|"+r.src_ZPCc+"))((?![$+<=>^`|\uff5c])"+r.tpl_host_port_fuzzy_strict+r.src_path+")",r.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`|\uff5c]|"+r.src_ZPCc+"))((?![$+<=>^`|\uff5c])"+r.tpl_host_port_no_ip_fuzzy_strict+r.src_path+")",r}(e.__opts__),n=e.__tlds__.slice();function s(e){return e.replace("%TLDS%",r.src_tlds)}e.onCompile(),e.__tlds_replaced__||n.push("a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]"),n.push(r.src_xn),r.src_tlds=n.join("|"),r.email_fuzzy=RegExp(s(r.tpl_email_fuzzy),"i"),r.link_fuzzy=RegExp(s(r.tpl_link_fuzzy),"i"),r.link_no_ip_fuzzy=RegExp(s(r.tpl_link_no_ip_fuzzy),"i"),r.host_fuzzy_test=RegExp(s(r.tpl_host_fuzzy_test),"i");var o=[];function i(e,r){throw new Error('(LinkifyIt) Invalid schema "'+e+'": '+r)}e.__compiled__={},Object.keys(e.__schemas__).forEach((function(r){var t=e.__schemas__[r];if(null!==t){var n={validate:null,link:null};if(e.__compiled__[r]=n,"[object Object]"===lr(t))return!function(e){return"[object RegExp]"===lr(e)}(t.validate)?ur(t.validate)?n.validate=t.validate:i(r,t):n.validate=function(e){return function(r,t){var n=r.slice(t);return e.test(n)?n.match(e)[0].length:0}}(t.validate),void(ur(t.normalize)?n.normalize=t.normalize:t.normalize?i(r,t):n.normalize=function(e,r){r.normalize(e)});!function(e){return"[object String]"===lr(e)}(t)?i(r,t):o.push(r)}})),o.forEach((function(r){e.__compiled__[e.__schemas__[r]]&&(e.__compiled__[r].validate=e.__compiled__[e.__schemas__[r]].validate,e.__compiled__[r].normalize=e.__compiled__[e.__schemas__[r]].normalize)})),e.__compiled__[""]={validate:null,normalize:function(e,r){r.normalize(e)}};var a=Object.keys(e.__compiled__).filter((function(r){return r.length>0&&e.__compiled__[r]})).map(pr).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><\uff5c]|"+r.src_ZPCc+"))("+a+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><\uff5c]|"+r.src_ZPCc+"))("+a+")","ig"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),function(e){e.__index__=-1,e.__text_cache__=""}(e)}function gr(e,r){var t=e.__index__,n=e.__last_index__,s=e.__text_cache__.slice(t,n);this.schema=e.__schema__.toLowerCase(),this.index=t+r,this.lastIndex=n+r,this.raw=s,this.text=s,this.url=s}function _r(e,r){var t=new gr(e,r);return e.__compiled__[t.schema].normalize(t,e),t}function br(e,r){if(!(this instanceof br))return new br(e,r);var t;r||(t=e,Object.keys(t||{}).reduce((function(e,r){return e||hr.hasOwnProperty(r)}),!1)&&(r=e,e={})),this.__opts__=cr({},hr,r),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=cr({},fr,e),this.__compiled__={},this.__tlds__=dr,this.__tlds_replaced__=!1,this.re={},mr(this)}br.prototype.add=function(e,r){return this.__schemas__[e]=r,mr(this),this},br.prototype.set=function(e){return this.__opts__=cr(this.__opts__,e),this},br.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;var r,t,n,s,o,i,a,c;if(this.re.schema_test.test(e))for((a=this.re.schema_search).lastIndex=0;null!==(r=a.exec(e));)if(s=this.testSchemaAt(e,r[2],a.lastIndex)){this.__schema__=r[2],this.__index__=r.index+r[1].length,this.__last_index__=r.index+r[0].length+s;break}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(c=e.search(this.re.host_fuzzy_test))>=0&&(this.__index__<0||c=0&&null!==(n=e.match(this.re.email_fuzzy))&&(o=n.index+n[1].length,i=n.index+n[0].length,(this.__index__<0||othis.__last_index__)&&(this.__schema__="mailto:",this.__index__=o,this.__last_index__=i)),this.__index__>=0},br.prototype.pretest=function(e){return this.re.pretest.test(e)},br.prototype.testSchemaAt=function(e,r,t){return this.__compiled__[r.toLowerCase()]?this.__compiled__[r.toLowerCase()].validate(e,t,this):0},br.prototype.match=function(e){var r=0,t=[];this.__index__>=0&&this.__text_cache__===e&&(t.push(_r(this,r)),r=this.__last_index__);for(var n=r?e.slice(r):e;this.test(n);)t.push(_r(this,r)),n=n.slice(this.__last_index__),r+=this.__last_index__;return t.length?t:null},br.prototype.tlds=function(e,r){return e=Array.isArray(e)?e:[e],r?(this.__tlds__=this.__tlds__.concat(e).sort().filter((function(e,r,t){return e!==t[r-1]})).reverse(),mr(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,mr(this),this)},br.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url)},br.prototype.onCompile=function(){};var kr=br,vr=2147483647,Cr=36,yr=/^xn--/,Ar=/[^\x20-\x7E]/,xr=/[\x2E\u3002\uFF0E\uFF61]/g,Dr={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},wr=Math.floor,Er=String.fromCharCode;
+/**
+ * Punycode v1.4.1
+ * @license MIT
+ * @source https://mths.be/punycode
+ */
+function qr(e){throw new RangeError(Dr[e])}function Sr(e,r){for(var t=e.length,n=[];t--;)n[t]=r(e[t]);return n}function Fr(e,r){var t=e.split("@"),n="";return t.length>1&&(n=t[0]+"@",e=t[1]),n+Sr((e=e.replace(xr,".")).split("."),r).join(".")}function Lr(e){for(var r,t,n=[],s=0,o=e.length;s=55296&&r<=56319&&s65535&&(r+=Er((e-=65536)>>>10&1023|55296),e=56320|1023&e),r+=Er(e)})).join("")}function Tr(e,r){return e+22+75*(e<26)-((0!=r)<<5)}function Ir(e,r,t){var n=0;for(e=t?wr(e/700):e>>1,e+=wr(e/r);e>455;n+=Cr)e=wr(e/35);return wr(n+36*e/(e+38))}function Mr(e){var r,t,n,s,o,i,a,c,l,u,p,h=[],f=e.length,d=0,m=128,g=72;for((t=e.lastIndexOf("-"))<0&&(t=0),n=0;n=128&&qr("not-basic"),h.push(e.charCodeAt(n));for(s=t>0?t+1:0;s=f&&qr("invalid-input"),((c=(p=e.charCodeAt(s++))-48<10?p-22:p-65<26?p-65:p-97<26?p-97:Cr)>=Cr||c>wr((vr-d)/i))&&qr("overflow"),d+=c*i,!(c<(l=a<=g?1:a>=g+26?26:a-g));a+=Cr)i>wr(vr/(u=Cr-l))&&qr("overflow"),i*=u;g=Ir(d-o,r=h.length+1,0==o),wr(d/r)>vr-m&&qr("overflow"),m+=wr(d/r),d%=r,h.splice(d++,0,m)}return zr(h)}function Rr(e){var r,t,n,s,o,i,a,c,l,u,p,h,f,d,m,g=[];for(h=(e=Lr(e)).length,r=128,t=0,o=72,i=0;i=r&&pwr((vr-t)/(f=n+1))&&qr("overflow"),t+=(a-r)*f,r=a,i=0;ivr&&qr("overflow"),p==r){for(c=t,l=Cr;!(c<(u=l<=o?1:l>=o+26?26:l-o));l+=Cr)m=c-u,d=Cr-u,g.push(Er(Tr(u+m%d,0))),c=wr(m/d);g.push(Er(Tr(c,0))),o=Ir(t,f,n==s),t=0,++n}++t,++r}return g.join("")}function Br(e){return Fr(e,(function(e){return yr.test(e)?Mr(e.slice(4).toLowerCase()):e}))}function Nr(e){return Fr(e,(function(e){return Ar.test(e)?"xn--"+Rr(e):e}))}var Or="1.4.1",Pr={decode:Lr,encode:zr},jr={version:Or,ucs2:Pr,toASCII:Nr,toUnicode:Br,encode:Rr,decode:Mr},Ur=e(Object.freeze({__proto__:null,decode:Mr,encode:Rr,toUnicode:Br,toASCII:Nr,version:Or,ucs2:Pr,default:jr})),Vr={default:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"\u201c\u201d\u2018\u2019",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}},zero:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"\u201c\u201d\u2018\u2019",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["paragraph"]},inline:{rules:["text"],rules2:["balance_pairs","text_collapse"]}}},commonmark:{options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"\u201c\u201d\u2018\u2019",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"],rules2:["balance_pairs","emphasis","text_collapse"]}}}},Zr=/^(vbscript|javascript|file|data):/,Gr=/^data:image\/(gif|png|jpeg|webp);/;function $r(e){var r=e.trim().toLowerCase();return!Zr.test(r)||!!Gr.test(r)}var Hr=["http:","https:","mailto:"];function Jr(e){var r=C.parse(e,!0);if(r.hostname&&(!r.protocol||Hr.indexOf(r.protocol)>=0))try{r.hostname=Ur.toASCII(r.hostname)}catch(e){}return C.encode(C.format(r))}function Wr(e){var r=C.parse(e,!0);if(r.hostname&&(!r.protocol||Hr.indexOf(r.protocol)>=0))try{r.hostname=Ur.toUnicode(r.hostname)}catch(e){}return C.decode(C.format(r),C.decode.defaultChars+"%")}function Yr(e,r){if(!(this instanceof Yr))return new Yr(e,r);r||w.isString(e)||(r=e||{},e="default"),this.inline=new ar,this.block=new Fe,this.core=new ce,this.renderer=new M,this.linkify=new kr,this.validateLink=$r,this.normalizeLink=Jr,this.normalizeLinkText=Wr,this.utils=w,this.helpers=w.assign({},S),this.options={},this.configure(e),r&&this.set(r)}return Yr.prototype.set=function(e){return w.assign(this.options,e),this},Yr.prototype.configure=function(e){var r,t=this;if(w.isString(e)&&!(e=Vr[r=e]))throw new Error('Wrong `markdown-it` preset "'+r+'", check name');if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach((function(r){e.components[r].rules&&t[r].ruler.enableOnly(e.components[r].rules),e.components[r].rules2&&t[r].ruler2.enableOnly(e.components[r].rules2)})),this},Yr.prototype.enable=function(e,r){var t=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(r){t=t.concat(this[r].ruler.enable(e,!0))}),this),t=t.concat(this.inline.ruler2.enable(e,!0));var n=e.filter((function(e){return t.indexOf(e)<0}));if(n.length&&!r)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+n);return this},Yr.prototype.disable=function(e,r){var t=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(r){t=t.concat(this[r].ruler.disable(e,!0))}),this),t=t.concat(this.inline.ruler2.disable(e,!0));var n=e.filter((function(e){return t.indexOf(e)<0}));if(n.length&&!r)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+n);return this},Yr.prototype.use=function(e){var r=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,r),this},Yr.prototype.parse=function(e,r){if("string"!=typeof e)throw new Error("Input data should be a String");var t=new this.core.State(e,this,r);return this.core.process(t),t.tokens},Yr.prototype.render=function(e,r){return r=r||{},this.renderer.render(this.parse(e,r),this.options,r)},Yr.prototype.parseInline=function(e,r){var t=new this.core.State(e,this,r);return t.inlineMode=!0,this.core.process(t),t.tokens},Yr.prototype.renderInline=function(e,r){return r=r||{},this.renderer.render(this.parseInline(e,r),this.options,r)},Yr}));
\ No newline at end of file
diff --git a/dep/prism.min.js b/dep/prism.min.js
new file mode 100644
index 0000000..e027665
--- /dev/null
+++ b/dep/prism.min.js
@@ -0,0 +1,13 @@
+/**
+ * PrismJS 1.25.0
+ * @licence MIT
+ * @source https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript+bash+powershell+regex
+ */
+var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(u){var c=/\blang(?:uage)?-([\w-]+)\b/i,n=0,e={},M={manual:u.Prism&&u.Prism.manual,disableWorkerMessageHandler:u.Prism&&u.Prism.disableWorkerMessageHandler,util:{encode:function e(n){return n instanceof W?new W(n.type,e(n.content),n.alias):Array.isArray(n)?n.map(e):n.replace(/&/g,"&").replace(/=l.reach);y+=m.value.length,m=m.next){var b=m.value;if(t.length>n.length)return;if(!(b instanceof W)){var k,x=1;if(h){if(!(k=z(v,y,n,f)))break;var w=k.index,A=k.index+k[0].length,P=y;for(P+=m.value.length;P<=w;)m=m.next,P+=m.value.length;if(P-=m.value.length,y=P,m.value instanceof W)continue;for(var E=m;E!==t.tail&&(Pl.reach&&(l.reach=N);var j=m.prev;O&&(j=I(t,j,O),y+=O.length),q(t,j,x);var C=new W(o,g?M.tokenize(S,g):S,d,S);if(m=I(t,j,C),L&&I(t,m,L),1l.reach&&(l.reach=_.reach)}}}}}}(e,a,n,a.head,0),function(e){var n=[],t=e.head.next;for(;t!==e.tail;)n.push(t.value),t=t.next;return n}(a)},hooks:{all:{},add:function(e,n){var t=M.hooks.all;t[e]=t[e]||[],t[e].push(n)},run:function(e,n){var t=M.hooks.all[e];if(t&&t.length)for(var r,a=0;r=t[a++];)r(n)}},Token:W};function W(e,n,t,r){this.type=e,this.content=n,this.alias=t,this.length=0|(r||"").length}function z(e,n,t,r){e.lastIndex=n;var a=e.exec(t);if(a&&r&&a[1]){var i=a[1].length;a.index+=i,a[0]=a[0].slice(i)}return a}function i(){var e={value:null,prev:null,next:null},n={value:null,prev:e,next:null};e.next=n,this.head=e,this.tail=n,this.length=0}function I(e,n,t){var r=n.next,a={value:t,prev:n,next:r};return n.next=a,r.prev=a,e.length++,a}function q(e,n,t){for(var r=n.next,a=0;a"+a.content+""+a.tag+">"},!u.document)return u.addEventListener&&(M.disableWorkerMessageHandler||u.addEventListener("message",function(e){var n=JSON.parse(e.data),t=n.language,r=n.code,a=n.immediateClose;u.postMessage(M.highlight(r,M.languages[t],t)),a&&u.close()},!1)),M;var t=M.util.currentScript();function r(){M.manual||M.highlightAll()}if(t&&(M.filename=t.src,t.hasAttribute("data-manual")&&(M.manual=!0)),!M.manual){var a=document.readyState;"loading"===a||"interactive"===a&&t&&t.defer?document.addEventListener("DOMContentLoaded",r):window.requestAnimationFrame?window.requestAnimationFrame(r):window.setTimeout(r,16)}return M}(_self);"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism);
+Prism.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/?[\da-f]{1,8};/i]},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup,Prism.hooks.add("wrap",function(a){"entity"===a.type&&(a.attributes.title=a.content.replace(/&/,"&"))}),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(a,e){var s={};s["language-"+e]={pattern:/(^$)/i,lookbehind:!0,inside:Prism.languages[e]},s.cdata=/^$/i;var t={"included-cdata":{pattern://i,inside:s}};t["language-"+e]={pattern:/[\s\S]+/,inside:Prism.languages[e]};var n={};n[a]={pattern:RegExp("(<__[^>]*>)(?:))*\\]\\]>|(?!)".replace(/__/g,function(){return a}),"i"),lookbehind:!0,greedy:!0,inside:t},Prism.languages.insertBefore("markup","cdata",n)}}),Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(a,e){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp("(^|[\"'\\s])(?:"+a+")\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))","i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[e,"language-"+e],inside:Prism.languages[e]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.ssml=Prism.languages.xml,Prism.languages.atom=Prism.languages.xml,Prism.languages.rss=Prism.languages.xml;
+!function(s){var e=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;s.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+e.source+"|(?:[^\\\\\r\n()\"']|\\\\[^])*)\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+e.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+e.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:e,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},s.languages.css.atrule.inside.rest=s.languages.css;var t=s.languages.markup;t&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(Prism);
+Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/};
+Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:/\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}}}),Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute("on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)","javascript")),Prism.languages.js=Prism.languages.javascript;
+!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},a={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:a},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:a},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:a.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:a.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|aptitude|apt-cache|apt-get|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:if|then|else|elif|fi|for|while|in|case|esac|function|select|do|done|until)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|break|cd|continue|eval|exec|exit|export|getopts|hash|pwd|readonly|return|shift|test|times|trap|umask|unset|alias|bind|builtin|caller|command|declare|echo|enable|help|let|local|logout|mapfile|printf|read|readarray|source|type|typeset|ulimit|unalias|set|shopt)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:true|false)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var s=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],i=a.variable[1].inside,o=0;o/,lookbehind:!0},{pattern:/(^|[^`])#.*/,lookbehind:!0}],string:[{pattern:/"(?:`[\s\S]|[^`"])*"/,greedy:!0,inside:{function:{pattern:/(^|[^`])\$\((?:\$\([^\r\n()]*\)|(?!\$\()[^\r\n)])*\)/,lookbehind:!0,inside:{}}}},{pattern:/'(?:[^']|'')*'/,greedy:!0}],namespace:/\[[a-z](?:\[(?:\[[^\]]*\]|[^\[\]])*\]|[^\[\]])*\]/i,boolean:/\$(?:true|false)\b/i,variable:/\$\w+\b/,function:[/\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\b/i,/\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\b/i],keyword:/\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\b/i,operator:{pattern:/(\W?)(?:!|-(?:eq|ne|gt|ge|lt|le|sh[lr]|not|b?(?:and|x?or)|(?:Not)?(?:Like|Match|Contains|In)|Replace|Join|is(?:Not)?|as)\b|-[-=]?|\+[+=]?|[*\/%]=?)/i,lookbehind:!0},punctuation:/[|{}[\];(),.]/},r=i.string[0].inside;r.boolean=i.boolean,r.variable=i.variable,r.function.inside=i}();
+!function(a){var e={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},n=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|c[a-zA-Z]|0[0-7]{0,2}|[123][0-7]{2}|.)/,t="(?:[^\\\\-]|"+n.source+")",s=RegExp(t+"-"+t),i={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"};a.languages.regex={charset:{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"charset-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"charset-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:s,inside:{escape:n,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":e,charclass:{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:n}},"special-escape":e,charclass:{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":i}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:n,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":i}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}}}(Prism);
\ No newline at end of file
diff --git a/dep/style-vendorizer.mjs b/dep/style-vendorizer.mjs
new file mode 100644
index 0000000..fca0d2a
--- /dev/null
+++ b/dep/style-vendorizer.mjs
@@ -0,0 +1,58 @@
+/**
+ * style-vendorizer v2.0.0
+ * @license MIT
+ * @source https://unpkg.com/style-vendorizer@^2.0.0?module
+ */
+
+var i = new Map([
+ ['align-self', '-ms-grid-row-align'],
+ ['color-adjust', '-webkit-print-color-adjust'],
+ ['column-gap', 'grid-column-gap'],
+ ['gap', 'grid-gap'],
+ ['grid-template-columns', '-ms-grid-columns'],
+ ['grid-template-rows', '-ms-grid-rows'],
+ ['justify-self', '-ms-grid-column-align'],
+ ['margin-inline-end', '-webkit-margin-end'],
+ ['margin-inline-start', '-webkit-margin-start'],
+ ['overflow-wrap', 'word-wrap'],
+ ['padding-inline-end', '-webkit-padding-end'],
+ ['padding-inline-start', '-webkit-padding-start'],
+ ['row-gap', 'grid-row-gap'],
+ ['scroll-margin-bottom', 'scroll-snap-margin-bottom'],
+ ['scroll-margin-left', 'scroll-snap-margin-left'],
+ ['scroll-margin-right', 'scroll-snap-margin-right'],
+ ['scroll-margin-top', 'scroll-snap-margin-top'],
+ ['scroll-margin', 'scroll-snap-margin'],
+ ['text-combine-upright', '-ms-text-combine-horizontal'],
+]);
+function r(r) {
+ return i.get(r);
+}
+function n(i) {
+ var r =
+ /^(?:(text-(?:decoration$|e|or|si)|back(?:ground-cl|d|f)|box-d|(?:mask(?:$|-[ispro]|-cl)))|(tab-|column(?!-s)|text-align-l)|(ap)|(u|hy))/i.exec(
+ i
+ );
+ return r ? (r[1] ? 1 : r[2] ? 2 : r[3] ? 3 : 5) : 0;
+}
+function t(i, r) {
+ var n = /^(?:(pos)|(background-i)|((?:max-|min-)?(?:block-s|inl|he|widt))|(dis))/i.exec(i);
+ return n
+ ? n[1]
+ ? /^sti/i.test(r)
+ ? 1
+ : 0
+ : n[2]
+ ? /^image-/i.test(r)
+ ? 1
+ : 0
+ : n[3]
+ ? '-' === r[3]
+ ? 2
+ : 0
+ : /^(inline-)?grid$/i.test(r)
+ ? 4
+ : 0
+ : 0;
+}
+export { r as cssPropertyAlias, n as cssPropertyPrefixFlags, t as cssValuePrefixFlags };
diff --git a/dep/twind-content.mjs b/dep/twind-content.mjs
new file mode 100644
index 0000000..ca4c2bf
--- /dev/null
+++ b/dep/twind-content.mjs
@@ -0,0 +1,43 @@
+/**
+ * Twind v0.16.16
+ * @license MIT
+ * @source https://unpkg.com/@twind/content@0.1.0/content.js?module
+ */
+
+import { directive as o } from './twind.mjs';
+var c = new Set([
+ 'open-quote',
+ 'close-quote',
+ 'no-open-quote',
+ 'no-close-quote',
+ 'normal',
+ 'none',
+ 'inherit',
+ 'initial',
+ 'unset',
+ ]),
+ n = (t) => t.join('-'),
+ s = (t) => {
+ switch (t[0]) {
+ case 'data':
+ return `attr(${n(t)})`;
+ case 'attr':
+ case 'counter':
+ return `${t[0]}(${n(t.slice(1))})`;
+ case 'var':
+ return `var(--${n(t)})`;
+ case void 0:
+ return 'attr(data-content)';
+ default:
+ return JSON.stringify(n(t));
+ }
+ },
+ i = (t, { theme: r }) => {
+ let e = Array.isArray(t) ? n(t) : t;
+ return {
+ content:
+ (e && r('content', [e], '')) || (c.has(e) && e) || (Array.isArray(t) ? s(t) : e),
+ };
+ },
+ u = (t, r) => (Array.isArray(t) ? i(t, r) : o(i, t));
+export { u as content };
diff --git a/dep/twind-css.mjs b/dep/twind-css.mjs
new file mode 100644
index 0000000..f337731
--- /dev/null
+++ b/dep/twind-css.mjs
@@ -0,0 +1,134 @@
+/**
+ * Twind v0.16.16
+ * @license MIT
+ * @source https://unpkg.com/twind@0.16.16/css/css.js?module
+ */
+
+// src/css/index.ts
+import { apply, hash, directive } from "./twind.mjs";
+
+// src/internal/util.ts
+var includes = (value, search) => !!~value.indexOf(search);
+var join = (parts, separator = "-") => parts.join(separator);
+var hyphenate = value => value.replace(/[A-Z]/g, "-$&").toLowerCase();
+var evalThunk = (value, context) => {
+ while (typeof value == "function") {
+ value = value(context);
+ }
+ return value;
+};
+var isCSSProperty = (key, value) => !includes("@:&", key[0]) && (includes("rg", (typeof value)[5]) || Array.isArray(value));
+var merge = (target, source, context) => source ? Object.keys(source).reduce((target2, key) => {
+ const value = evalThunk(source[key], context);
+ if (isCSSProperty(key, value)) {
+ target2[hyphenate(key)] = value;
+ } else {
+ target2[key] = key[0] == "@" && includes("figa", key[1]) ? (target2[key] || []).concat(value) : merge(target2[key] || {}, value, context);
+ }
+ return target2;
+}, target) : target;
+var escape = typeof CSS !== "undefined" && CSS.escape || (className => className.replace(/[!"'`*+.,;:\\/<=>?@#$%&^|~()[\]{}]/g, "\\$&").replace(/^\d/, "\\3$& "));
+var buildMediaQuery = screen2 => {
+ if (!Array.isArray(screen2)) {
+ screen2 = [screen2];
+ }
+ return "@media " + join(screen2.map(screen3 => {
+ if (typeof screen3 == "string") {
+ screen3 = { min: screen3 };
+ }
+ return screen3.raw || join(Object.keys(screen3).map(feature => `(${feature}-width:${screen3[feature]})`), " and ");
+ }), ",");
+};
+
+// src/css/index.ts
+var translate = (tokens, context) => {
+ const collect = (target, token) => Array.isArray(token) ? token.reduce(collect, target) : merge(target, evalThunk(token, context), context);
+ return tokens.reduce(collect, {});
+};
+var newRule = /\s*(?:([\w-%@]+)\s*:?\s*([^{;]+?)\s*(?:;|$|})|([^;}{]*?)\s*{)|(})/gi;
+var ruleClean = /\/\*[\s\S]*?\*\/|\s+|\n/gm;
+var decorate = (selectors, currentBlock) => selectors.reduceRight((rules, selector) => ({ [selector]: rules }), currentBlock);
+var saveBlock = (rules, selectors, currentBlock) => {
+ if (currentBlock) {
+ rules.push(decorate(selectors, currentBlock));
+ }
+};
+var interleave = (strings, interpolations, context) => {
+ let buffer = strings[0];
+ const result = [];
+ for (let index = 0; index < interpolations.length;) {
+ const interpolation = evalThunk(interpolations[index], context);
+ if (interpolation && typeof interpolation == "object") {
+ result.push(buffer, interpolation);
+ buffer = strings[++index];
+ } else {
+ buffer += (interpolation || "") + strings[++index];
+ }
+ }
+ result.push(buffer);
+ return result;
+};
+var astish = (values, context) => {
+ const selectors = [];
+ const rules = [];
+ let currentBlock;
+ let match;
+ for (let index = 0; index < values.length; index++) {
+ const value = values[index];
+ if (typeof value == "string") {
+ while (match = newRule.exec(value.replace(ruleClean, " "))) {
+ if (!match[0])
+ continue;
+ if (match[4]) {
+ currentBlock = saveBlock(rules, selectors, currentBlock);
+ selectors.pop();
+ }
+ if (match[3]) {
+ currentBlock = saveBlock(rules, selectors, currentBlock);
+ selectors.push(match[3]);
+ } else if (!match[4]) {
+ if (!currentBlock)
+ currentBlock = {};
+ const value2 = match[2] && /\S/.test(match[2]) ? match[2] : values[++index];
+ if (value2) {
+ if (match[1] == "@apply") {
+ merge(currentBlock, evalThunk(apply(value2), context), context);
+ } else {
+ currentBlock[match[1]] = value2;
+ }
+ }
+ }
+ }
+ } else {
+ currentBlock = saveBlock(rules, selectors, currentBlock);
+ rules.push(decorate(selectors, value));
+ }
+ }
+ saveBlock(rules, selectors, currentBlock);
+ return rules;
+};
+var cssFactory = (tokens, context) => translate(Array.isArray(tokens[0]) && Array.isArray(tokens[0].raw) ? astish(interleave(tokens[0], tokens.slice(1), context), context) : tokens, context);
+var css = (...tokens) => directive(cssFactory, tokens);
+var keyframesFactory = (tokens, context) => {
+ const waypoints = cssFactory(tokens, context);
+ const id = hash(JSON.stringify(waypoints));
+ context.tw(() => ({ [`@keyframes ${id}`]: waypoints }));
+ return id;
+};
+var keyframes = (...tokens) => directive(keyframesFactory, tokens);
+var animation = (value, waypoints) => waypoints === void 0 ? (...args) => animation(value, keyframes(...args)) : css({
+ ...(value && typeof value == "object" ? value : { animation: value }),
+ animationName: typeof waypoints == "function" ? waypoints : keyframes(waypoints) });
+
+var screenFactory = ({ size, rules }, context) => {
+ const media = buildMediaQuery(context.theme("screens", size));
+ return rules === void 0 ? media : {
+ [media]: typeof rules == "function" ? evalThunk(rules, context) : cssFactory([rules], context) };
+
+};
+var screen = (size, rules) => directive(screenFactory, { size, rules });
+export {
+animation,
+css,
+keyframes,
+screen };
\ No newline at end of file
diff --git a/dep/twind.mjs b/dep/twind.mjs
new file mode 100644
index 0000000..6d0ad35
--- /dev/null
+++ b/dep/twind.mjs
@@ -0,0 +1,2402 @@
+/**
+ * Twind v0.16.16
+ * @license MIT
+ * @source https://unpkg.com/twind@0.16.16/twind.js?module
+ */
+
+// src/internal/util.ts
+var includes = (value, search) => !!~value.indexOf(search);
+var join = (parts, separator = '-') => parts.join(separator);
+var joinTruthy = (parts, separator) => join(parts.filter(Boolean), separator);
+var tail = (array, startIndex = 1) => array.slice(startIndex);
+var identity = (value) => value;
+var noop = () => {};
+var capitalize = (value) => value[0].toUpperCase() + tail(value);
+var hyphenate = (value) => value.replace(/[A-Z]/g, '-$&').toLowerCase();
+var evalThunk = (value, context) => {
+ while (typeof value == 'function') {
+ value = value(context);
+ }
+ return value;
+};
+var ensureMaxSize = (map, max) => {
+ if (map.size > max) {
+ map.delete(map.keys().next().value);
+ }
+};
+var isCSSProperty = (key, value) =>
+ !includes('@:&', key[0]) && (includes('rg', (typeof value)[5]) || Array.isArray(value));
+var merge = (target, source, context) =>
+ source
+ ? Object.keys(source).reduce((target2, key) => {
+ const value = evalThunk(source[key], context);
+ if (isCSSProperty(key, value)) {
+ target2[hyphenate(key)] = value;
+ } else {
+ target2[key] =
+ key[0] == '@' && includes('figa', key[1])
+ ? (target2[key] || []).concat(value)
+ : merge(target2[key] || {}, value, context);
+ }
+ return target2;
+ }, target)
+ : target;
+var escape =
+ (typeof CSS !== 'undefined' && CSS.escape) ||
+ ((className) =>
+ className.replace(/[!"'`*+.,;:\\/<=>?@#$%&^|~()[\]{}]/g, '\\$&').replace(/^\d/, '\\3$& '));
+var buildMediaQuery = (screen) => {
+ if (!Array.isArray(screen)) {
+ screen = [screen];
+ }
+ return (
+ '@media ' +
+ join(
+ screen.map((screen2) => {
+ if (typeof screen2 == 'string') {
+ screen2 = { min: screen2 };
+ }
+ return (
+ screen2.raw ||
+ join(
+ Object.keys(screen2).map((feature) => `(${feature}-width:${screen2[feature]})`),
+ ' and '
+ )
+ );
+ }),
+ ','
+ )
+ );
+};
+var cyrb32 = (value) => {
+ for (var h = 9, index = value.length; index--; ) {
+ h = Math.imul(h ^ value.charCodeAt(index), 1597334677);
+ }
+ return 'tw-' + ((h ^ (h >>> 9)) >>> 0).toString(36);
+};
+var sortedInsertionIndex = (array, element) => {
+ for (var low = 0, high = array.length; low < high; ) {
+ const pivot = (high + low) >> 1;
+ if (array[pivot] <= element) {
+ low = pivot + 1;
+ } else {
+ high = pivot;
+ }
+ }
+ return high;
+};
+
+// src/twind/parse.ts
+var groupings;
+var rules;
+var startGrouping = (value = '') => {
+ groupings.push(value);
+ return '';
+};
+var endGrouping = (isWhitespace) => {
+ groupings.length = Math.max(groupings.lastIndexOf('') + ~~isWhitespace, 0);
+};
+var onlyPrefixes = (s) => s && !includes('!:', s[0]);
+var onlyVariants = (s) => s[0] == ':';
+var addRule = (directive2, negate) => {
+ rules.push({
+ v: groupings.filter(onlyVariants),
+ d: directive2,
+ n: negate,
+ i: includes(groupings, '!'),
+ $: '',
+ });
+};
+var saveRule = (buffer) => {
+ const negate = buffer[0] == '-';
+ if (negate) {
+ buffer = tail(buffer);
+ }
+ const prefix = join(groupings.filter(onlyPrefixes));
+ addRule(buffer == '&' ? prefix : (prefix && prefix + '-') + buffer, negate);
+ return '';
+};
+var parseString = (token, isVariant) => {
+ let buffer = '';
+ for (let char, dynamic = false, position2 = 0; (char = token[position2++]); ) {
+ if (dynamic || char == '[') {
+ buffer += char;
+ dynamic = char != ']';
+ continue;
+ }
+ switch (char) {
+ case ':':
+ buffer =
+ buffer &&
+ startGrouping(':' + (token[position2] == char ? token[position2++] : '') + buffer);
+ break;
+ case '(':
+ buffer = buffer && startGrouping(buffer);
+ startGrouping();
+ break;
+ case '!':
+ startGrouping(char);
+ break;
+ case ')':
+ case ' ':
+ case ' ':
+ case '\n':
+ case '\r':
+ buffer = buffer && saveRule(buffer);
+ endGrouping(char !== ')');
+ break;
+ default:
+ buffer += char;
+ }
+ }
+ if (buffer) {
+ if (isVariant) {
+ startGrouping(':' + buffer);
+ } else if (buffer.slice(-1) == '-') {
+ startGrouping(buffer.slice(0, -1));
+ } else {
+ saveRule(buffer);
+ }
+ }
+};
+var parseGroupedToken = (token) => {
+ startGrouping();
+ parseToken(token);
+ endGrouping();
+};
+var parseGroup = (key, token) => {
+ if (token) {
+ startGrouping();
+ const isVariant = includes('tbu', (typeof token)[1]);
+ parseString(key, isVariant);
+ if (isVariant) {
+ parseGroupedToken(token);
+ }
+ endGrouping();
+ }
+};
+var parseToken = (token) => {
+ switch (typeof token) {
+ case 'string':
+ parseString(token);
+ break;
+ case 'function':
+ addRule(token);
+ break;
+ case 'object':
+ if (Array.isArray(token)) {
+ token.forEach(parseGroupedToken);
+ } else if (token) {
+ Object.keys(token).forEach((key) => {
+ parseGroup(key, token[key]);
+ });
+ }
+ }
+};
+var staticsCaches = new WeakMap();
+var buildStatics = (strings) => {
+ let statics = staticsCaches.get(strings);
+ if (!statics) {
+ let slowModeIndex = NaN;
+ let buffer = '';
+ statics = strings.map((token, index) => {
+ if (
+ slowModeIndex !== slowModeIndex &&
+ (token.slice(-1) == '[' || includes(':-(', (strings[index + 1] || '')[0]))
+ ) {
+ slowModeIndex = index;
+ }
+ if (index >= slowModeIndex) {
+ return (interpolation) => {
+ if (index == slowModeIndex) {
+ buffer = '';
+ }
+ buffer += token;
+ if (includes('rg', (typeof interpolation)[5])) {
+ buffer += interpolation;
+ } else if (interpolation) {
+ parseString(buffer);
+ buffer = '';
+ parseToken(interpolation);
+ }
+ if (index == strings.length - 1) {
+ parseString(buffer);
+ }
+ };
+ }
+ const staticRules = (rules = []);
+ parseString(token);
+ const activeGroupings = [...groupings];
+ rules = [];
+ return (interpolation) => {
+ rules.push(...staticRules);
+ groupings = [...activeGroupings];
+ if (interpolation) {
+ parseToken(interpolation);
+ }
+ };
+ });
+ staticsCaches.set(strings, statics);
+ }
+ return statics;
+};
+var parse = (tokens) => {
+ groupings = [];
+ rules = [];
+ if (Array.isArray(tokens[0]) && Array.isArray(tokens[0].raw)) {
+ buildStatics(tokens[0]).forEach((apply2, index) => apply2(tokens[index + 1]));
+ } else {
+ parseToken(tokens);
+ }
+ return rules;
+};
+
+// src/twind/directive.ts
+var isFunctionFree;
+var detectFunction = (key, value) => {
+ if (typeof value == 'function') {
+ isFunctionFree = false;
+ }
+ return value;
+};
+var stringify = (data) => {
+ isFunctionFree = true;
+ const key = JSON.stringify(data, detectFunction);
+ return isFunctionFree && key;
+};
+var cacheByFactory = new WeakMap();
+var directive = (factory, data) => {
+ const key = stringify(data);
+ let directive2;
+ if (key) {
+ var cache = cacheByFactory.get(factory);
+ if (!cache) {
+ cacheByFactory.set(factory, (cache = new Map()));
+ }
+ directive2 = cache.get(key);
+ }
+ if (!directive2) {
+ directive2 = Object.defineProperty(
+ (params, context) => {
+ context = Array.isArray(params) ? context : params;
+ return evalThunk(factory(data, context), context);
+ },
+ 'toJSON',
+ {
+ value: () => key || data,
+ }
+ );
+
+ if (cache) {
+ cache.set(key, directive2);
+ ensureMaxSize(cache, 1e4);
+ }
+ }
+ return directive2;
+};
+
+// src/twind/apply.ts
+var applyFactory = (tokens, { css }) => css(parse(tokens));
+var apply = (...tokens) => directive(applyFactory, tokens);
+
+// src/twind/helpers.ts
+var positions = (resolve) => (value, position2, prefix, suffix) => {
+ if (value) {
+ const properties = position2 && resolve(position2);
+ if (properties && properties.length > 0) {
+ return properties.reduce((declarations, property2) => {
+ declarations[joinTruthy([prefix, property2, suffix])] = value;
+ return declarations;
+ }, {});
+ }
+ }
+};
+var corners = /* @__PURE__ */ positions(
+ (key) =>
+ ({
+ t: ['top-left', 'top-right'],
+ r: ['top-right', 'bottom-right'],
+ b: ['bottom-left', 'bottom-right'],
+ l: ['bottom-left', 'top-left'],
+ tl: ['top-left'],
+ tr: ['top-right'],
+ bl: ['bottom-left'],
+ br: ['bottom-right'],
+ }[key])
+);
+var expandEdges = (key) => {
+ const parts = ({ x: 'lr', y: 'tb' }[key] || key || '').split('').sort();
+ for (let index = parts.length; index--; ) {
+ if (
+ !(parts[index] = {
+ t: 'top',
+ r: 'right',
+ b: 'bottom',
+ l: 'left',
+ }[parts[index]])
+ )
+ return;
+ }
+ if (parts.length) return parts;
+};
+var edges = /* @__PURE__ */ positions(expandEdges);
+
+// src/twind/plugins.ts
+var _;
+var __;
+var $;
+var toColumnsOrRows = (x) => (x == 'cols' ? 'columns' : 'rows');
+var property = (property2) => (params, context, id) => ({
+ [property2]: id + ((_ = join(params)) && '-' + _),
+});
+
+var propertyValue = (property2, separator) => (params, context, id) =>
+ (_ = join(params, separator)) && {
+ [property2 || id]: _,
+ };
+
+var themeProperty =
+ (section) =>
+ (params, { theme: theme2 }, id) =>
+ (_ = theme2(section || id, params)) && {
+ [section || id]: _,
+ };
+
+var themePropertyFallback =
+ (section, separator) =>
+ (params, { theme: theme2 }, id) =>
+ (_ = theme2(section || id, params, join(params, separator))) && {
+ [section || id]: _,
+ };
+
+var alias = (handler, name) => (params, context) => handler(params, context, name);
+var display = property('display');
+var position = property('position');
+var textTransform = property('textTransform');
+var textDecoration = property('textDecoration');
+var fontStyle = property('fontStyle');
+var fontVariantNumeric = (key) => (params, context, id) => ({
+ ['--tw-' + key]: id,
+ fontVariantNumeric:
+ 'var(--tw-ordinal,/*!*/ /*!*/) var(--tw-slashed-zero,/*!*/ /*!*/) var(--tw-numeric-figure,/*!*/ /*!*/) var(--tw-numeric-spacing,/*!*/ /*!*/) var(--tw-numeric-fraction,/*!*/ /*!*/)',
+});
+
+var inset = (params, { theme: theme2 }, id) => (_ = theme2('inset', params)) && { [id]: _ };
+var opacityProperty = (params, theme2, id, section = id) =>
+ (_ = theme2(section + 'Opacity', tail(params))) && {
+ [`--tw-${id}-opacity`]: _,
+ };
+
+var parseColorComponent = (chars, factor) => Math.round(parseInt(chars, 16) * factor);
+var asRGBA = (color, opacityProperty2, opacityDefault) => {
+ if (
+ color &&
+ color[0] == '#' &&
+ (_ = (color.length - 1) / 3) &&
+ ($ = [17, 1, 0.062272][_ - 1])
+ ) {
+ return `rgba(${parseColorComponent(color.substr(1, _), $)},${parseColorComponent(
+ color.substr(1 + _, _),
+ $
+ )},${parseColorComponent(color.substr(1 + 2 * _, _), $)},${
+ opacityProperty2
+ ? `var(--tw-${opacityProperty2}${opacityDefault ? ',' + opacityDefault : ''})`
+ : opacityDefault || 1
+ })`;
+ }
+ return color;
+};
+var withOpacityFallback = (property2, kind, color) =>
+ color && typeof color == 'string'
+ ? (_ = asRGBA(color, kind + '-opacity')) && _ !== color
+ ? {
+ [`--tw-${kind}-opacity`]: '1',
+ [property2]: [color, _],
+ }
+ : { [property2]: color }
+ : void 0;
+var transparentTo = (color) => (($ = asRGBA(color, '', '0')) == _ ? 'transparent' : $);
+var reversableEdge = (params, { theme: theme2 }, id, section, prefix, suffix) =>
+ (_ = { x: ['right', 'left'], y: ['bottom', 'top'] }[params[0]]) &&
+ ($ = `--tw-${id}-${params[0]}-reverse`)
+ ? params[1] == 'reverse'
+ ? {
+ [$]: '1',
+ }
+ : {
+ [$]: '0',
+ [joinTruthy([prefix, _[0], suffix])]:
+ (__ = theme2(section, tail(params))) && `calc(${__} * var(${$}))`,
+ [joinTruthy([prefix, _[1], suffix])]: __ && [
+ __,
+ `calc(${__} * calc(1 - var(${$})))`,
+ ],
+ }
+ : void 0;
+var placeHelper = (property2, params) =>
+ params[0] && {
+ [property2]: (includes('wun', (params[0] || '')[3]) ? 'space-' : '') + params[0],
+ };
+
+var contentPluginFor = (property2) => (params) =>
+ includes(['start', 'end'], params[0])
+ ? { [property2]: 'flex-' + params[0] }
+ : placeHelper(property2, params);
+var gridPlugin =
+ (kind) =>
+ (params, { theme: theme2 }) => {
+ if ((_ = theme2('grid' + capitalize(kind), params, ''))) {
+ return { ['grid-' + kind]: _ };
+ }
+ switch (params[0]) {
+ case 'span':
+ return (
+ params[1] && {
+ ['grid-' + kind]: `span ${params[1]} / span ${params[1]}`,
+ }
+ );
+
+ case 'start':
+ case 'end':
+ return (
+ (_ = theme2(
+ 'grid' + capitalize(kind) + capitalize(params[0]),
+ tail(params),
+ join(tail(params))
+ )) && {
+ [`grid-${kind}-${params[0]}`]: _,
+ }
+ );
+ }
+ };
+var border = (params, { theme: theme2 }, id) => {
+ switch (params[0]) {
+ case 'solid':
+ case 'dashed':
+ case 'dotted':
+ case 'double':
+ case 'none':
+ return propertyValue('borderStyle')(params);
+ case 'collapse':
+ case 'separate':
+ return propertyValue('borderCollapse')(params);
+ case 'opacity':
+ return opacityProperty(params, theme2, id);
+ }
+
+ return (_ = theme2(id + 'Width', params, ''))
+ ? { borderWidth: _ }
+ : withOpacityFallback('borderColor', id, theme2(id + 'Color', params));
+};
+var transform = (gpu) =>
+ (gpu
+ ? 'translate3d(var(--tw-translate-x,0),var(--tw-translate-y,0),0)'
+ : 'translateX(var(--tw-translate-x,0)) translateY(var(--tw-translate-y,0))') +
+ ' rotate(var(--tw-rotate,0)) skewX(var(--tw-skew-x,0)) skewY(var(--tw-skew-y,0)) scaleX(var(--tw-scale-x,1)) scaleY(var(--tw-scale-y,1))';
+var transformXYFunction = (params, context, id) =>
+ params[0] &&
+ (_ = context.theme(id, params[1] || params[0])) && {
+ [`--tw-${id}-x`]: params[0] !== 'y' && _,
+ [`--tw-${id}-y`]: params[0] !== 'x' && _,
+ transform: [`${id}${params[1] ? params[0].toUpperCase() : ''}(${_})`, transform()],
+ };
+
+var edgesPluginFor = (key) => (params, context, id) =>
+ id[1]
+ ? edges(context.theme(key, params), id[1], key)
+ : themeProperty(key)(params, context, id);
+var padding = edgesPluginFor('padding');
+var margin = edgesPluginFor('margin');
+var minMax = (params, { theme: theme2 }, id) =>
+ (_ = { w: 'width', h: 'height' }[params[0]]) && {
+ [(_ = `${id}${capitalize(_)}`)]: theme2(_, tail(params)),
+ };
+
+var filter = (params, { theme: theme2 }, id) => {
+ const parts = id.split('-');
+ const prefix = parts[0] == 'backdrop' ? parts[0] + '-' : '';
+ if (!prefix) {
+ params.unshift(...parts);
+ }
+ if (params[0] == 'filter') {
+ const filters = [
+ 'blur',
+ 'brightness',
+ 'contrast',
+ 'grayscale',
+ 'hue-rotate',
+ 'invert',
+ prefix && 'opacity',
+ 'saturate',
+ 'sepia',
+ !prefix && 'drop-shadow',
+ ].filter(Boolean);
+ return params[1] == 'none'
+ ? { [prefix + 'filter']: 'none' }
+ : filters.reduce(
+ (css, key) => {
+ css['--tw-' + prefix + key] = 'var(--tw-empty,/*!*/ /*!*/)';
+ return css;
+ },
+ {
+ [prefix + 'filter']: filters.map((key) => `var(--tw-${prefix}${key})`).join(' '),
+ }
+ );
+ }
+ $ = params.shift();
+ if (includes(['hue', 'drop'], $)) $ += capitalize(params.shift());
+ return (
+ (_ = theme2(prefix ? 'backdrop' + capitalize($) : $, params)) && {
+ ['--tw-' + prefix + $]: (Array.isArray(_) ? _ : [_])
+ .map((_4) => `${hyphenate($)}(${_4})`)
+ .join(' '),
+ }
+ );
+};
+var corePlugins = {
+ group: (params, { tag }, id) => tag(join([id, ...params])),
+ hidden: alias(display, 'none'),
+ inline: display,
+ block: display,
+ contents: display,
+ flow: display,
+ table: (params, context, id) =>
+ includes(['auto', 'fixed'], params[0])
+ ? { tableLayout: params[0] }
+ : display(params, context, id),
+ flex(params, context, id) {
+ switch (params[0]) {
+ case 'row':
+ case 'col':
+ return {
+ flexDirection: join(params[0] == 'col' ? ['column', ...tail(params)] : params),
+ };
+
+ case 'nowrap':
+ case 'wrap':
+ return { flexWrap: join(params) };
+ case 'grow':
+ case 'shrink':
+ _ = context.theme('flex' + capitalize(params[0]), tail(params), params[1] || 1);
+ return (
+ _ != null && {
+ ['flex-' + params[0]]: '' + _,
+ }
+ );
+ }
+
+ return (_ = context.theme('flex', params, ''))
+ ? { flex: _ }
+ : display(params, context, id);
+ },
+ grid(params, context, id) {
+ switch (params[0]) {
+ case 'cols':
+ case 'rows':
+ return (
+ (_ = context.theme(
+ 'gridTemplate' + capitalize(toColumnsOrRows(params[0])),
+ tail(params),
+ params.length == 2 && Number(params[1])
+ ? `repeat(${params[1]},minmax(0,1fr))`
+ : join(tail(params))
+ )) && {
+ ['gridTemplate-' + toColumnsOrRows(params[0])]: _,
+ }
+ );
+
+ case 'flow':
+ return (
+ params.length > 1 && {
+ gridAutoFlow: join(
+ params[1] == 'col' ? ['column', ...tail(params, 2)] : tail(params),
+ ' '
+ ),
+ }
+ );
+ }
+
+ return display(params, context, id);
+ },
+ auto: (params, { theme: theme2 }) =>
+ includes(['cols', 'rows'], params[0]) &&
+ (_ = theme2(
+ 'gridAuto' + capitalize(toColumnsOrRows(params[0])),
+ tail(params),
+ join(tail(params))
+ )) && {
+ ['gridAuto-' + toColumnsOrRows(params[0])]: _,
+ },
+
+ static: position,
+ fixed: position,
+ absolute: position,
+ relative: position,
+ sticky: position,
+ visible: { visibility: 'visible' },
+ invisible: { visibility: 'hidden' },
+ antialiased: {
+ WebkitFontSmoothing: 'antialiased',
+ MozOsxFontSmoothing: 'grayscale',
+ },
+
+ 'subpixel-antialiased': {
+ WebkitFontSmoothing: 'auto',
+ MozOsxFontSmoothing: 'auto',
+ },
+
+ truncate: {
+ overflow: 'hidden',
+ whiteSpace: 'nowrap',
+ textOverflow: 'ellipsis',
+ },
+
+ 'sr-only': {
+ position: 'absolute',
+ width: '1px',
+ height: '1px',
+ padding: '0',
+ margin: '-1px',
+ overflow: 'hidden',
+ whiteSpace: 'nowrap',
+ clip: 'rect(0,0,0,0)',
+ borderWidth: '0',
+ },
+
+ 'not-sr-only': {
+ position: 'static',
+ width: 'auto',
+ height: 'auto',
+ padding: '0',
+ margin: '0',
+ overflow: 'visible',
+ whiteSpace: 'normal',
+ clip: 'auto',
+ },
+
+ resize: (params) => ({
+ resize: { x: 'horizontal', y: 'vertical' }[params[0]] || params[0] || 'both',
+ }),
+
+ box: (params) => params[0] && { boxSizing: params[0] + '-box' },
+ appearance: propertyValue(),
+ cursor: themePropertyFallback(),
+ float: propertyValue(),
+ clear: propertyValue(),
+ decoration: propertyValue('boxDecorationBreak'),
+ isolate: { isolation: 'isolate' },
+ isolation: propertyValue(),
+ 'mix-blend': propertyValue('mixBlendMode'),
+ top: inset,
+ right: inset,
+ bottom: inset,
+ left: inset,
+ inset: (params, { theme: theme2 }) =>
+ (_ = expandEdges(params[0]))
+ ? edges(theme2('inset', tail(params)), params[0])
+ : (_ = theme2('inset', params)) && {
+ top: _,
+ right: _,
+ bottom: _,
+ left: _,
+ },
+
+ underline: textDecoration,
+ 'line-through': textDecoration,
+ 'no-underline': alias(textDecoration, 'none'),
+ 'text-underline': alias(textDecoration, 'underline'),
+ 'text-no-underline': alias(textDecoration, 'none'),
+ 'text-line-through': alias(textDecoration, 'line-through'),
+ uppercase: textTransform,
+ lowercase: textTransform,
+ capitalize: textTransform,
+ 'normal-case': alias(textTransform, 'none'),
+ 'text-normal-case': alias(textTransform, 'none'),
+ italic: fontStyle,
+ 'not-italic': alias(fontStyle, 'normal'),
+ 'font-italic': alias(fontStyle, 'italic'),
+ 'font-not-italic': alias(fontStyle, 'normal'),
+ font: (params, context, id) =>
+ (_ = context.theme('fontFamily', params, ''))
+ ? { fontFamily: _ }
+ : themeProperty('fontWeight')(params, context, id),
+ items: (params) =>
+ params[0] && {
+ alignItems: includes(['start', 'end'], params[0]) ? 'flex-' + params[0] : join(params),
+ },
+
+ 'justify-self': propertyValue(),
+ 'justify-items': propertyValue(),
+ justify: contentPluginFor('justifyContent'),
+ content: contentPluginFor('alignContent'),
+ self: contentPluginFor('alignSelf'),
+ place: (params) => params[0] && placeHelper('place-' + params[0], tail(params)),
+ overscroll: (params) =>
+ params[0] && {
+ ['overscrollBehavior' + (params[1] ? '-' + params[0] : '')]: params[1] || params[0],
+ },
+
+ col: gridPlugin('column'),
+ row: gridPlugin('row'),
+ duration: themeProperty('transitionDuration'),
+ delay: themeProperty('transitionDelay'),
+ tracking: themeProperty('letterSpacing'),
+ leading: themeProperty('lineHeight'),
+ z: themeProperty('zIndex'),
+ opacity: themeProperty(),
+ ease: themeProperty('transitionTimingFunction'),
+ p: padding,
+ py: padding,
+ px: padding,
+ pt: padding,
+ pr: padding,
+ pb: padding,
+ pl: padding,
+ m: margin,
+ my: margin,
+ mx: margin,
+ mt: margin,
+ mr: margin,
+ mb: margin,
+ ml: margin,
+ w: themeProperty('width'),
+ h: themeProperty('height'),
+ min: minMax,
+ max: minMax,
+ fill: themeProperty(),
+ order: themeProperty(),
+ origin: themePropertyFallback('transformOrigin', ' '),
+ select: propertyValue('userSelect'),
+ 'pointer-events': propertyValue(),
+ align: propertyValue('verticalAlign'),
+ whitespace: propertyValue('whiteSpace'),
+ 'normal-nums': { fontVariantNumeric: 'normal' },
+ ordinal: fontVariantNumeric('ordinal'),
+ 'slashed-zero': fontVariantNumeric('slashed-zero'),
+ 'lining-nums': fontVariantNumeric('numeric-figure'),
+ 'oldstyle-nums': fontVariantNumeric('numeric-figure'),
+ 'proportional-nums': fontVariantNumeric('numeric-spacing'),
+ 'tabular-nums': fontVariantNumeric('numeric-spacing'),
+ 'diagonal-fractions': fontVariantNumeric('numeric-fraction'),
+ 'stacked-fractions': fontVariantNumeric('numeric-fraction'),
+ overflow: (params, context, id) =>
+ includes(['ellipsis', 'clip'], params[0])
+ ? propertyValue('textOverflow')(params)
+ : params[1]
+ ? { ['overflow-' + params[0]]: params[1] }
+ : propertyValue()(params, context, id),
+ transform: (params) =>
+ params[0] == 'none'
+ ? { transform: 'none' }
+ : {
+ '--tw-translate-x': '0',
+ '--tw-translate-y': '0',
+ '--tw-rotate': '0',
+ '--tw-skew-x': '0',
+ '--tw-skew-y': '0',
+ '--tw-scale-x': '1',
+ '--tw-scale-y': '1',
+ transform: transform(params[0] == 'gpu'),
+ },
+
+ rotate: (params, { theme: theme2 }) =>
+ (_ = theme2('rotate', params)) && {
+ '--tw-rotate': _,
+ transform: [`rotate(${_})`, transform()],
+ },
+
+ scale: transformXYFunction,
+ translate: transformXYFunction,
+ skew: transformXYFunction,
+ gap: (params, context, id) =>
+ (_ = { x: 'column', y: 'row' }[params[0]])
+ ? { [_ + 'Gap']: context.theme('gap', tail(params)) }
+ : themeProperty('gap')(params, context, id),
+ stroke: (params, context, id) =>
+ (_ = context.theme('stroke', params, ''))
+ ? { stroke: _ }
+ : themeProperty('strokeWidth')(params, context, id),
+ outline: (params, { theme: theme2 }) =>
+ (_ = theme2('outline', params)) && {
+ outline: _[0],
+ outlineOffset: _[1],
+ },
+
+ 'break-normal': {
+ wordBreak: 'normal',
+ overflowWrap: 'normal',
+ },
+
+ 'break-words': { overflowWrap: 'break-word' },
+ 'break-all': { wordBreak: 'break-all' },
+ text(params, { theme: theme2 }, id) {
+ switch (params[0]) {
+ case 'left':
+ case 'center':
+ case 'right':
+ case 'justify':
+ return { textAlign: params[0] };
+ case 'uppercase':
+ case 'lowercase':
+ case 'capitalize':
+ return textTransform([], _, params[0]);
+ case 'opacity':
+ return opacityProperty(params, theme2, id);
+ }
+
+ const fontSize = theme2('fontSize', params, '');
+ if (fontSize) {
+ return typeof fontSize == 'string'
+ ? { fontSize }
+ : {
+ fontSize: fontSize[0],
+ ...(typeof fontSize[1] == 'string' ? { lineHeight: fontSize[1] } : fontSize[1]),
+ };
+ }
+ return withOpacityFallback('color', 'text', theme2('textColor', params));
+ },
+ bg(params, { theme: theme2 }, id) {
+ switch (params[0]) {
+ case 'fixed':
+ case 'local':
+ case 'scroll':
+ return propertyValue('backgroundAttachment', ',')(params);
+ case 'bottom':
+ case 'center':
+ case 'left':
+ case 'right':
+ case 'top':
+ return propertyValue('backgroundPosition', ' ')(params);
+ case 'no':
+ return params[1] == 'repeat' && propertyValue('backgroundRepeat')(params);
+ case 'repeat':
+ return includes('xy', params[1])
+ ? propertyValue('backgroundRepeat')(params)
+ : { backgroundRepeat: params[1] || params[0] };
+ case 'opacity':
+ return opacityProperty(params, theme2, id, 'background');
+ case 'clip':
+ case 'origin':
+ return (
+ params[1] && {
+ ['background-' + params[0]]: params[1] + (params[1] == 'text' ? '' : '-box'),
+ }
+ );
+
+ case 'blend':
+ return propertyValue('background-blend-mode')(tail(params));
+ case 'gradient':
+ if (params[1] == 'to' && (_ = expandEdges(params[2]))) {
+ return {
+ backgroundImage: `linear-gradient(to ${join(_, ' ')},var(--tw-gradient-stops))`,
+ };
+ }
+ }
+
+ return (_ = theme2('backgroundPosition', params, ''))
+ ? { backgroundPosition: _ }
+ : (_ = theme2('backgroundSize', params, ''))
+ ? { backgroundSize: _ }
+ : (_ = theme2('backgroundImage', params, ''))
+ ? { backgroundImage: _ }
+ : withOpacityFallback('backgroundColor', 'bg', theme2('backgroundColor', params));
+ },
+ from: (params, { theme: theme2 }) =>
+ (_ = theme2('gradientColorStops', params)) && {
+ '--tw-gradient-from': _,
+ '--tw-gradient-stops': `var(--tw-gradient-from),var(--tw-gradient-to,${transparentTo(
+ _
+ )})`,
+ },
+
+ via: (params, { theme: theme2 }) =>
+ (_ = theme2('gradientColorStops', params)) && {
+ '--tw-gradient-stops': `var(--tw-gradient-from),${_},var(--tw-gradient-to,${transparentTo(
+ _
+ )})`,
+ },
+
+ to: (params, { theme: theme2 }) =>
+ (_ = theme2('gradientColorStops', params)) && {
+ '--tw-gradient-to': _,
+ },
+
+ border: (params, context, id) =>
+ expandEdges(params[0])
+ ? edges(context.theme('borderWidth', tail(params)), params[0], 'border', 'width')
+ : border(params, context, id),
+ divide: (params, context, id) =>
+ (_ =
+ reversableEdge(params, context, id, 'divideWidth', 'border', 'width') ||
+ border(params, context, id)) && {
+ '&>:not([hidden])~:not([hidden])': _,
+ },
+
+ space: (params, context, id) =>
+ (_ = reversableEdge(params, context, id, 'space', 'margin')) && {
+ '&>:not([hidden])~:not([hidden])': _,
+ },
+
+ placeholder: (params, { theme: theme2 }, id) =>
+ (_ =
+ params[0] == 'opacity'
+ ? opacityProperty(params, theme2, id)
+ : withOpacityFallback('color', 'placeholder', theme2('placeholderColor', params))) && {
+ '&::placeholder': _,
+ },
+
+ shadow: (params, { theme: theme2 }) =>
+ (_ = theme2('boxShadow', params)) && {
+ ':global': {
+ '*': {
+ '--tw-shadow': '0 0 transparent',
+ },
+ },
+
+ '--tw-shadow': _ == 'none' ? '0 0 transparent' : _,
+ boxShadow: [
+ _,
+ `var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)`,
+ ],
+ },
+
+ animate: (params, { theme: theme2, tag }) => {
+ if (($ = theme2('animation', params))) {
+ const parts = $.split(' ');
+ if ((_ = theme2('keyframes', parts[0], (__ = {}))) !== __) {
+ return (
+ ($ = tag(parts[0])) && {
+ animation: $ + ' ' + join(tail(parts), ' '),
+ ['@keyframes ' + $]: _,
+ }
+ );
+ }
+ return { animation: $ };
+ }
+ },
+ ring(params, { theme: theme2 }, id) {
+ switch (params[0]) {
+ case 'inset':
+ return { '--tw-ring-inset': 'inset' };
+ case 'opacity':
+ return opacityProperty(params, theme2, id);
+ case 'offset':
+ return (_ = theme2('ringOffsetWidth', tail(params), ''))
+ ? {
+ '--tw-ring-offset-width': _,
+ }
+ : {
+ '--tw-ring-offset-color': theme2('ringOffsetColor', tail(params)),
+ };
+ }
+
+ return (_ = theme2('ringWidth', params, ''))
+ ? {
+ '--tw-ring-offset-shadow': `var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)`,
+ '--tw-ring-shadow': `var(--tw-ring-inset) 0 0 0 calc(${_} + var(--tw-ring-offset-width)) var(--tw-ring-color)`,
+ boxShadow: `var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)`,
+ ':global': {
+ '*': {
+ '--tw-ring-inset': 'var(--tw-empty,/*!*/ /*!*/)',
+ '--tw-ring-offset-width': theme2('ringOffsetWidth', '', '0px'),
+ '--tw-ring-offset-color': theme2('ringOffsetColor', '', '#fff'),
+ '--tw-ring-color': asRGBA(
+ theme2('ringColor', '', '#93c5fd'),
+ 'ring-opacity',
+ theme2('ringOpacity', '', '0.5')
+ ),
+ '--tw-ring-offset-shadow': '0 0 transparent',
+ '--tw-ring-shadow': '0 0 transparent',
+ },
+ },
+ }
+ : {
+ '--tw-ring-opacity': '1',
+ '--tw-ring-color': asRGBA(theme2('ringColor', params), 'ring-opacity'),
+ };
+ },
+ object: (params, context, id) =>
+ includes(['contain', 'cover', 'fill', 'none', 'scale-down'], join(params))
+ ? { objectFit: join(params) }
+ : themePropertyFallback('objectPosition', ' ')(params, context, id),
+ list: (params, context, id) =>
+ join(params) == 'item'
+ ? display(params, context, id)
+ : includes(['inside', 'outside'], join(params))
+ ? { listStylePosition: params[0] }
+ : themePropertyFallback('listStyleType')(params, context, id),
+ rounded: (params, context, id) =>
+ corners(context.theme('borderRadius', tail(params), ''), params[0], 'border', 'radius') ||
+ themeProperty('borderRadius')(params, context, id),
+ 'transition-none': { transitionProperty: 'none' },
+ transition: (params, { theme: theme2 }) => ({
+ transitionProperty: theme2('transitionProperty', params),
+ transitionTimingFunction: theme2('transitionTimingFunction', ''),
+ transitionDuration: theme2('transitionDuration', ''),
+ }),
+
+ container: (params, { theme: theme2 }) => {
+ const { screens = theme2('screens'), center, padding: padding2 } = theme2('container');
+ const paddingFor = (screen) =>
+ (_ =
+ padding2 &&
+ (typeof padding2 == 'string' ? padding2 : padding2[screen] || padding2.DEFAULT))
+ ? {
+ paddingRight: _,
+ paddingLeft: _,
+ }
+ : {};
+ return Object.keys(screens).reduce(
+ (rules2, screen) => {
+ if (($ = screens[screen]) && typeof $ == 'string') {
+ rules2[buildMediaQuery($)] = {
+ '&': {
+ 'max-width': $,
+ ...paddingFor(screen),
+ },
+ };
+ }
+ return rules2;
+ },
+ {
+ width: '100%',
+ ...(center ? { marginRight: 'auto', marginLeft: 'auto' } : {}),
+ ...paddingFor('xs'),
+ }
+ );
+ },
+ filter,
+ blur: filter,
+ brightness: filter,
+ contrast: filter,
+ grayscale: filter,
+ 'hue-rotate': filter,
+ invert: filter,
+ saturate: filter,
+ sepia: filter,
+ 'drop-shadow': filter,
+ backdrop: filter,
+};
+
+// src/twind/preflight.ts
+var createPreflight = (theme2) => ({
+ ':root': { tabSize: 4 },
+ 'body,blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre,fieldset,ol,ul': { margin: '0' },
+ button: { backgroundColor: 'transparent', backgroundImage: 'none' },
+ 'button,[type="button"],[type="reset"],[type="submit"]': { WebkitAppearance: 'button' },
+ 'button:focus': { outline: ['1px dotted', '5px auto -webkit-focus-ring-color'] },
+ 'fieldset,ol,ul,legend': { padding: '0' },
+ 'ol,ul': { listStyle: 'none' },
+ html: {
+ lineHeight: '1.5',
+ WebkitTextSizeAdjust: '100%',
+ fontFamily: theme2('fontFamily.sans', 'ui-sans-serif,system-ui,sans-serif'),
+ },
+
+ body: { fontFamily: 'inherit', lineHeight: 'inherit' },
+ '*,::before,::after': {
+ boxSizing: 'border-box',
+ border: `0 solid ${theme2('borderColor.DEFAULT', 'currentColor')}`,
+ },
+
+ hr: { height: '0', color: 'inherit', borderTopWidth: '1px' },
+ img: { borderStyle: 'solid' },
+ textarea: { resize: 'vertical' },
+ 'input::placeholder,textarea::placeholder': {
+ opacity: '1',
+ color: theme2('placeholderColor.DEFAULT', theme2('colors.gray.400', '#a1a1aa')),
+ },
+
+ 'button,[role="button"]': { cursor: 'pointer' },
+ table: { textIndent: '0', borderColor: 'inherit', borderCollapse: 'collapse' },
+ 'h1,h2,h3,h4,h5,h6': { fontSize: 'inherit', fontWeight: 'inherit' },
+ a: { color: 'inherit', textDecoration: 'inherit' },
+ 'button,input,optgroup,select,textarea': {
+ fontFamily: 'inherit',
+ fontSize: '100%',
+ margin: '0',
+ padding: '0',
+ lineHeight: 'inherit',
+ color: 'inherit',
+ },
+
+ 'button,select': { textTransform: 'none' },
+ '::-moz-focus-inner': { borderStyle: 'none', padding: '0' },
+ ':-moz-focusring': { outline: '1px dotted ButtonText' },
+ ':-moz-ui-invalid': { boxShadow: 'none' },
+ progress: { verticalAlign: 'baseline' },
+ '::-webkit-inner-spin-button,::-webkit-outer-spin-button': { height: 'auto' },
+ '[type="search"]': { WebkitAppearance: 'textfield', outlineOffset: '-2px' },
+ '::-webkit-search-decoration': { WebkitAppearance: 'none' },
+ '::-webkit-file-upload-button': { WebkitAppearance: 'button', font: 'inherit' },
+ summary: { display: 'list-item' },
+ 'abbr[title]': { textDecoration: 'underline dotted' },
+ 'b,strong': { fontWeight: 'bolder' },
+ 'pre,code,kbd,samp': {
+ fontFamily: theme2('fontFamily', 'mono', 'ui-monospace,monospace'),
+ fontSize: '1em',
+ },
+
+ 'sub,sup': {
+ fontSize: '75%',
+ lineHeight: '0',
+ position: 'relative',
+ verticalAlign: 'baseline',
+ },
+ sub: { bottom: '-0.25em' },
+ sup: { top: '-0.5em' },
+ 'img,svg,video,canvas,audio,iframe,embed,object': {
+ display: 'block',
+ verticalAlign: 'middle',
+ },
+ 'img,video': { maxWidth: '100%', height: 'auto' },
+});
+
+// src/twind/variants.ts
+var coreVariants = {
+ dark: '@media (prefers-color-scheme:dark)',
+ sticky: '@supports ((position: -webkit-sticky) or (position:sticky))',
+ 'motion-reduce': '@media (prefers-reduced-motion:reduce)',
+ 'motion-safe': '@media (prefers-reduced-motion:no-preference)',
+ first: '&:first-child',
+ last: '&:last-child',
+ even: '&:nth-child(2n)',
+ odd: '&:nth-child(odd)',
+ children: '&>*',
+ siblings: '&~*',
+ sibling: '&+*',
+ override: '&&',
+};
+
+// src/internal/dom.ts
+var STYLE_ELEMENT_ID = '__twind';
+var getStyleElement = (nonce) => {
+ let element = self[STYLE_ELEMENT_ID];
+ if (!element) {
+ element = document.head.appendChild(document.createElement('style'));
+ element.id = STYLE_ELEMENT_ID;
+ nonce && (element.nonce = nonce);
+ element.appendChild(document.createTextNode(''));
+ }
+ return element;
+};
+
+// src/twind/sheets.ts
+var cssomSheet = ({ nonce, target = getStyleElement(nonce).sheet } = {}) => {
+ const offset = target.cssRules.length;
+ return {
+ target,
+ insert: (rule, index) => target.insertRule(rule, offset + index),
+ };
+};
+var voidSheet = () => ({
+ target: null,
+ insert: noop,
+});
+
+// src/twind/modes.ts
+var mode = (report) => ({
+ unknown(section, key = [], optional, context) {
+ if (!optional) {
+ this.report({ id: 'UNKNOWN_THEME_VALUE', key: section + '.' + join(key) }, context);
+ }
+ },
+ report({ id, ...info }) {
+ return report(`[${id}] ${JSON.stringify(info)}`);
+ },
+});
+
+var warn = /* @__PURE__ */ mode((message) => console.warn(message));
+var strict = /* @__PURE__ */ mode((message) => {
+ throw new Error(message);
+});
+var silent = /* @__PURE__ */ mode(noop);
+
+// src/twind/prefix.ts
+import {
+ cssPropertyAlias,
+ cssPropertyPrefixFlags,
+ cssValuePrefixFlags,
+} from './style-vendorizer.mjs';
+var noprefix = (property2, value, important) =>
+ `${property2}:${value}${important ? ' !important' : ''}`;
+var autoprefix = (property2, value, important) => {
+ let cssText = '';
+ const propertyAlias = cssPropertyAlias(property2);
+ if (propertyAlias) cssText += `${noprefix(propertyAlias, value, important)};`;
+ let flags = cssPropertyPrefixFlags(property2);
+ if (flags & 1) cssText += `-webkit-${noprefix(property2, value, important)};`;
+ if (flags & 2) cssText += `-moz-${noprefix(property2, value, important)};`;
+ if (flags & 4) cssText += `-ms-${noprefix(property2, value, important)};`;
+ flags = cssValuePrefixFlags(property2, value);
+ if (flags & 1) cssText += `${noprefix(property2, `-webkit-${value}`, important)};`;
+ if (flags & 2) cssText += `${noprefix(property2, `-moz-${value}`, important)};`;
+ if (flags & 4) cssText += `${noprefix(property2, `-ms-${value}`, important)};`;
+ cssText += noprefix(property2, value, important);
+ return cssText;
+};
+
+// src/twind/theme.ts
+var ratios = (start, end) => {
+ const result = {};
+ do {
+ for (let dividend = 1; dividend < start; dividend++) {
+ result[`${dividend}/${start}`] = Number(((dividend / start) * 100).toFixed(6)) + '%';
+ }
+ } while (++start <= end);
+ return result;
+};
+var exponential = (stop, unit, start = 0) => {
+ const result = {};
+ for (; start <= stop; start = start * 2 || 1) {
+ result[start] = start + unit;
+ }
+ return result;
+};
+var linear = (stop, unit = '', divideBy = 1, start = 0, step = 1, result = {}) => {
+ for (; start <= stop; start += step) {
+ result[start] = start / divideBy + unit;
+ }
+ return result;
+};
+var alias2 = (section) => (theme2) => theme2(section);
+var themeFactory = (args, { theme: theme2 }) => theme2(...args);
+var theme = (...args) => directive(themeFactory, args);
+var defaultTheme = {
+ screens: {
+ sm: '640px',
+ md: '768px',
+ lg: '1024px',
+ xl: '1280px',
+ '2xl': '1536px',
+ },
+
+ colors: {
+ transparent: 'transparent',
+ current: 'currentColor',
+ black: '#000',
+ white: '#fff',
+ gray: {
+ 50: '#f9fafb',
+ 100: '#f3f4f6',
+ 200: '#e5e7eb',
+ 300: '#d1d5db',
+ 400: '#9ca3af',
+ 500: '#6b7280',
+ 600: '#4b5563',
+ 700: '#374151',
+ 800: '#1f2937',
+ 900: '#111827',
+ },
+
+ red: {
+ 50: '#fef2f2',
+ 100: '#fee2e2',
+ 200: '#fecaca',
+ 300: '#fca5a5',
+ 400: '#f87171',
+ 500: '#ef4444',
+ 600: '#dc2626',
+ 700: '#b91c1c',
+ 800: '#991b1b',
+ 900: '#7f1d1d',
+ },
+
+ yellow: {
+ 50: '#fffbeb',
+ 100: '#fef3c7',
+ 200: '#fde68a',
+ 300: '#fcd34d',
+ 400: '#fbbf24',
+ 500: '#f59e0b',
+ 600: '#d97706',
+ 700: '#b45309',
+ 800: '#92400e',
+ 900: '#78350f',
+ },
+
+ green: {
+ 50: '#ecfdf5',
+ 100: '#d1fae5',
+ 200: '#a7f3d0',
+ 300: '#6ee7b7',
+ 400: '#34d399',
+ 500: '#10b981',
+ 600: '#059669',
+ 700: '#047857',
+ 800: '#065f46',
+ 900: '#064e3b',
+ },
+
+ blue: {
+ 50: '#eff6ff',
+ 100: '#dbeafe',
+ 200: '#bfdbfe',
+ 300: '#93c5fd',
+ 400: '#60a5fa',
+ 500: '#3b82f6',
+ 600: '#2563eb',
+ 700: '#1d4ed8',
+ 800: '#1e40af',
+ 900: '#1e3a8a',
+ },
+
+ indigo: {
+ 50: '#eef2ff',
+ 100: '#e0e7ff',
+ 200: '#c7d2fe',
+ 300: '#a5b4fc',
+ 400: '#818cf8',
+ 500: '#6366f1',
+ 600: '#4f46e5',
+ 700: '#4338ca',
+ 800: '#3730a3',
+ 900: '#312e81',
+ },
+
+ purple: {
+ 50: '#f5f3ff',
+ 100: '#ede9fe',
+ 200: '#ddd6fe',
+ 300: '#c4b5fd',
+ 400: '#a78bfa',
+ 500: '#8b5cf6',
+ 600: '#7c3aed',
+ 700: '#6d28d9',
+ 800: '#5b21b6',
+ 900: '#4c1d95',
+ },
+
+ pink: {
+ 50: '#fdf2f8',
+ 100: '#fce7f3',
+ 200: '#fbcfe8',
+ 300: '#f9a8d4',
+ 400: '#f472b6',
+ 500: '#ec4899',
+ 600: '#db2777',
+ 700: '#be185d',
+ 800: '#9d174d',
+ 900: '#831843',
+ },
+ },
+
+ spacing: {
+ px: '1px',
+ 0: '0px',
+ .../* @__PURE__ */ linear(4, 'rem', 4, 0.5, 0.5),
+ .../* @__PURE__ */ linear(12, 'rem', 4, 5),
+ 14: '3.5rem',
+ .../* @__PURE__ */ linear(64, 'rem', 4, 16, 4),
+ 72: '18rem',
+ 80: '20rem',
+ 96: '24rem',
+ },
+
+ durations: {
+ 75: '75ms',
+ 100: '100ms',
+ 150: '150ms',
+ 200: '200ms',
+ 300: '300ms',
+ 500: '500ms',
+ 700: '700ms',
+ 1e3: '1000ms',
+ },
+
+ animation: {
+ none: 'none',
+ spin: 'spin 1s linear infinite',
+ ping: 'ping 1s cubic-bezier(0, 0, 0.2, 1) infinite',
+ pulse: 'pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite',
+ bounce: 'bounce 1s infinite',
+ },
+
+ backdropBlur: /* @__PURE__ */ alias2('blur'),
+ backdropBrightness: /* @__PURE__ */ alias2('brightness'),
+ backdropContrast: /* @__PURE__ */ alias2('contrast'),
+ backdropGrayscale: /* @__PURE__ */ alias2('grayscale'),
+ backdropHueRotate: /* @__PURE__ */ alias2('hueRotate'),
+ backdropInvert: /* @__PURE__ */ alias2('invert'),
+ backdropOpacity: /* @__PURE__ */ alias2('opacity'),
+ backdropSaturate: /* @__PURE__ */ alias2('saturate'),
+ backdropSepia: /* @__PURE__ */ alias2('sepia'),
+ backgroundColor: /* @__PURE__ */ alias2('colors'),
+ backgroundImage: {
+ none: 'none',
+ },
+
+ backgroundOpacity: /* @__PURE__ */ alias2('opacity'),
+ backgroundSize: {
+ auto: 'auto',
+ cover: 'cover',
+ contain: 'contain',
+ },
+
+ blur: {
+ 0: '0',
+ sm: '4px',
+ DEFAULT: '8px',
+ md: '12px',
+ lg: '16px',
+ xl: '24px',
+ '2xl': '40px',
+ '3xl': '64px',
+ },
+
+ brightness: {
+ .../* @__PURE__ */ linear(200, '', 100, 0, 50),
+ .../* @__PURE__ */ linear(110, '', 100, 90, 5),
+ 75: '0.75',
+ 125: '1.25',
+ },
+
+ borderColor: (theme2) => ({
+ ...theme2('colors'),
+ DEFAULT: theme2('colors.gray.200', 'currentColor'),
+ }),
+
+ borderOpacity: /* @__PURE__ */ alias2('opacity'),
+ borderRadius: {
+ none: '0px',
+ sm: '0.125rem',
+ DEFAULT: '0.25rem',
+ md: '0.375rem',
+ lg: '0.5rem',
+ xl: '0.75rem',
+ '2xl': '1rem',
+ '3xl': '1.5rem',
+ '1/2': '50%',
+ full: '9999px',
+ },
+
+ borderWidth: {
+ DEFAULT: '1px',
+ .../* @__PURE__ */ exponential(8, 'px'),
+ },
+
+ boxShadow: {
+ sm: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',
+ DEFAULT: '0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)',
+ md: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',
+ lg: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',
+ xl: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',
+ '2xl': '0 25px 50px -12px rgba(0, 0, 0, 0.25)',
+ inner: 'inset 0 2px 4px 0 rgba(0, 0, 0, 0.06)',
+ none: 'none',
+ },
+
+ contrast: {
+ .../* @__PURE__ */ linear(200, '', 100, 0, 50),
+ 75: '0.75',
+ 125: '1.25',
+ },
+
+ divideColor: /* @__PURE__ */ alias2('borderColor'),
+ divideOpacity: /* @__PURE__ */ alias2('borderOpacity'),
+ divideWidth: /* @__PURE__ */ alias2('borderWidth'),
+ dropShadow: {
+ sm: '0 1px 1px rgba(0,0,0,0.05)',
+ DEFAULT: ['0 1px 2px rgba(0, 0, 0, 0.1)', '0 1px 1px rgba(0, 0, 0, 0.06)'],
+ md: ['0 4px 3px rgba(0, 0, 0, 0.07)', '0 2px 2px rgba(0, 0, 0, 0.06)'],
+ lg: ['0 10px 8px rgba(0, 0, 0, 0.04)', '0 4px 3px rgba(0, 0, 0, 0.1)'],
+ xl: ['0 20px 13px rgba(0, 0, 0, 0.03)', '0 8px 5px rgba(0, 0, 0, 0.08)'],
+ '2xl': '0 25px 25px rgba(0, 0, 0, 0.15)',
+ none: '0 0 #0000',
+ },
+
+ fill: { current: 'currentColor' },
+ grayscale: {
+ 0: '0',
+ DEFAULT: '100%',
+ },
+
+ hueRotate: {
+ 0: '0deg',
+ 15: '15deg',
+ 30: '30deg',
+ 60: '60deg',
+ 90: '90deg',
+ 180: '180deg',
+ },
+
+ invert: {
+ 0: '0',
+ DEFAULT: '100%',
+ },
+
+ flex: {
+ 1: '1 1 0%',
+ auto: '1 1 auto',
+ initial: '0 1 auto',
+ none: 'none',
+ },
+
+ fontFamily: {
+ sans: 'ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"'.split(
+ ','
+ ),
+ serif: 'ui-serif,Georgia,Cambria,"Times New Roman",Times,serif'.split(','),
+ mono: 'ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace'.split(
+ ','
+ ),
+ },
+
+ fontSize: {
+ xs: ['0.75rem', '1rem'],
+ sm: ['0.875rem', '1.25rem'],
+ base: ['1rem', '1.5rem'],
+ lg: ['1.125rem', '1.75rem'],
+ xl: ['1.25rem', '1.75rem'],
+ '2xl': ['1.5rem', '2rem'],
+ '3xl': ['1.875rem', '2.25rem'],
+ '4xl': ['2.25rem', '2.5rem'],
+ '5xl': ['3rem', '1'],
+ '6xl': ['3.75rem', '1'],
+ '7xl': ['4.5rem', '1'],
+ '8xl': ['6rem', '1'],
+ '9xl': ['8rem', '1'],
+ },
+
+ fontWeight: {
+ thin: '100',
+ extralight: '200',
+ light: '300',
+ normal: '400',
+ medium: '500',
+ semibold: '600',
+ bold: '700',
+ extrabold: '800',
+ black: '900',
+ },
+
+ gridTemplateColumns: {},
+ gridTemplateRows: {},
+ gridAutoColumns: {
+ min: 'min-content',
+ max: 'max-content',
+ fr: 'minmax(0,1fr)',
+ },
+
+ gridAutoRows: {
+ min: 'min-content',
+ max: 'max-content',
+ fr: 'minmax(0,1fr)',
+ },
+
+ gridColumn: {
+ auto: 'auto',
+ 'span-full': '1 / -1',
+ },
+
+ gridRow: {
+ auto: 'auto',
+ 'span-full': '1 / -1',
+ },
+
+ gap: /* @__PURE__ */ alias2('spacing'),
+ gradientColorStops: /* @__PURE__ */ alias2('colors'),
+ height: (theme2) => ({
+ auto: 'auto',
+ ...theme2('spacing'),
+ ...ratios(2, 6),
+ full: '100%',
+ screen: '100vh',
+ }),
+
+ inset: (theme2) => ({
+ auto: 'auto',
+ ...theme2('spacing'),
+ ...ratios(2, 4),
+ full: '100%',
+ }),
+
+ keyframes: {
+ spin: {
+ from: {
+ transform: 'rotate(0deg)',
+ },
+
+ to: {
+ transform: 'rotate(360deg)',
+ },
+ },
+
+ ping: {
+ '0%': {
+ transform: 'scale(1)',
+ opacity: '1',
+ },
+
+ '75%,100%': {
+ transform: 'scale(2)',
+ opacity: '0',
+ },
+ },
+
+ pulse: {
+ '0%,100%': {
+ opacity: '1',
+ },
+
+ '50%': {
+ opacity: '.5',
+ },
+ },
+
+ bounce: {
+ '0%, 100%': {
+ transform: 'translateY(-25%)',
+ animationTimingFunction: 'cubic-bezier(0.8,0,1,1)',
+ },
+
+ '50%': {
+ transform: 'none',
+ animationTimingFunction: 'cubic-bezier(0,0,0.2,1)',
+ },
+ },
+ },
+
+ letterSpacing: {
+ tighter: '-0.05em',
+ tight: '-0.025em',
+ normal: '0em',
+ wide: '0.025em',
+ wider: '0.05em',
+ widest: '0.1em',
+ },
+
+ lineHeight: {
+ none: '1',
+ tight: '1.25',
+ snug: '1.375',
+ normal: '1.5',
+ relaxed: '1.625',
+ loose: '2',
+ .../* @__PURE__ */ linear(10, 'rem', 4, 3),
+ },
+
+ margin: (theme2) => ({
+ auto: 'auto',
+ ...theme2('spacing'),
+ }),
+
+ maxHeight: (theme2) => ({
+ ...theme2('spacing'),
+ full: '100%',
+ screen: '100vh',
+ }),
+
+ maxWidth: (theme2, { breakpoints }) => ({
+ none: 'none',
+ 0: '0rem',
+ xs: '20rem',
+ sm: '24rem',
+ md: '28rem',
+ lg: '32rem',
+ xl: '36rem',
+ '2xl': '42rem',
+ '3xl': '48rem',
+ '4xl': '56rem',
+ '5xl': '64rem',
+ '6xl': '72rem',
+ '7xl': '80rem',
+ full: '100%',
+ min: 'min-content',
+ max: 'max-content',
+ prose: '65ch',
+ ...breakpoints(theme2('screens')),
+ }),
+
+ minHeight: {
+ 0: '0px',
+ full: '100%',
+ screen: '100vh',
+ },
+
+ minWidth: {
+ 0: '0px',
+ full: '100%',
+ min: 'min-content',
+ max: 'max-content',
+ },
+
+ opacity: {
+ .../* @__PURE__ */ linear(100, '', 100, 0, 10),
+ 5: '0.05',
+ 25: '0.25',
+ 75: '0.75',
+ 95: '0.95',
+ },
+
+ order: {
+ first: '-9999',
+ last: '9999',
+ none: '0',
+ .../* @__PURE__ */ linear(12, '', 1, 1),
+ },
+
+ outline: {
+ none: ['2px solid transparent', '2px'],
+ white: ['2px dotted white', '2px'],
+ black: ['2px dotted black', '2px'],
+ },
+
+ padding: /* @__PURE__ */ alias2('spacing'),
+ placeholderColor: /* @__PURE__ */ alias2('colors'),
+ placeholderOpacity: /* @__PURE__ */ alias2('opacity'),
+ ringColor: (theme2) => ({
+ DEFAULT: theme2('colors.blue.500', '#3b82f6'),
+ ...theme2('colors'),
+ }),
+
+ ringOffsetColor: /* @__PURE__ */ alias2('colors'),
+ ringOffsetWidth: /* @__PURE__ */ exponential(8, 'px'),
+ ringOpacity: (theme2) => ({
+ DEFAULT: '0.5',
+ ...theme2('opacity'),
+ }),
+
+ ringWidth: {
+ DEFAULT: '3px',
+ .../* @__PURE__ */ exponential(8, 'px'),
+ },
+
+ rotate: {
+ .../* @__PURE__ */ exponential(2, 'deg'),
+ .../* @__PURE__ */ exponential(12, 'deg', 3),
+ .../* @__PURE__ */ exponential(180, 'deg', 45),
+ },
+
+ saturate: /* @__PURE__ */ linear(200, '', 100, 0, 50),
+ scale: {
+ .../* @__PURE__ */ linear(150, '', 100, 0, 50),
+ .../* @__PURE__ */ linear(110, '', 100, 90, 5),
+ 75: '0.75',
+ 125: '1.25',
+ },
+
+ sepia: {
+ 0: '0',
+ DEFAULT: '100%',
+ },
+
+ skew: {
+ .../* @__PURE__ */ exponential(2, 'deg'),
+ .../* @__PURE__ */ exponential(12, 'deg', 3),
+ },
+
+ space: /* @__PURE__ */ alias2('spacing'),
+ stroke: {
+ current: 'currentColor',
+ },
+
+ strokeWidth: /* @__PURE__ */ linear(2),
+ textColor: /* @__PURE__ */ alias2('colors'),
+ textOpacity: /* @__PURE__ */ alias2('opacity'),
+ transitionDuration: (theme2) => ({
+ DEFAULT: '150ms',
+ ...theme2('durations'),
+ }),
+
+ transitionDelay: /* @__PURE__ */ alias2('durations'),
+ transitionProperty: {
+ none: 'none',
+ all: 'all',
+ DEFAULT:
+ 'background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter',
+ colors: 'background-color,border-color,color,fill,stroke',
+ opacity: 'opacity',
+ shadow: 'box-shadow',
+ transform: 'transform',
+ },
+
+ transitionTimingFunction: {
+ DEFAULT: 'cubic-bezier(0.4,0,0.2,1)',
+ linear: 'linear',
+ in: 'cubic-bezier(0.4,0,1,1)',
+ out: 'cubic-bezier(0,0,0.2,1)',
+ 'in-out': 'cubic-bezier(0.4,0,0.2,1)',
+ },
+
+ translate: (theme2) => ({
+ ...theme2('spacing'),
+ ...ratios(2, 4),
+ full: '100%',
+ }),
+
+ width: (theme2) => ({
+ auto: 'auto',
+ ...theme2('spacing'),
+ ...ratios(2, 6),
+ ...ratios(12, 12),
+ screen: '100vw',
+ full: '100%',
+ min: 'min-content',
+ max: 'max-content',
+ }),
+
+ zIndex: {
+ auto: 'auto',
+ .../* @__PURE__ */ linear(50, '', 1, 0, 10),
+ },
+};
+
+var flattenColorPalette = (colors, target = {}, prefix = []) => {
+ Object.keys(colors).forEach((property2) => {
+ const value = colors[property2];
+ if (property2 == 'DEFAULT') {
+ target[join(prefix)] = value;
+ target[join(prefix, '.')] = value;
+ }
+ const key = [...prefix, property2];
+ target[join(key)] = value;
+ target[join(key, '.')] = value;
+ if (value && typeof value == 'object') {
+ flattenColorPalette(value, target, key);
+ }
+ }, target);
+ return target;
+};
+var resolveContext = {
+ negative: () => ({}),
+ breakpoints: (screens) =>
+ Object.keys(screens)
+ .filter((key) => typeof screens[key] == 'string')
+ .reduce((target, key) => {
+ target['screen-' + key] = screens[key];
+ return target;
+ }, {}),
+};
+
+var handleArbitraryValues = (section, key) =>
+ (key = key[0] == '[' && key.slice(-1) == ']' && key.slice(1, -1)) &&
+ includes(section, 'olor') == /^(#|(hsl|rgb)a?\(|[a-z]+$)/.test(key) &&
+ (includes(key, 'calc(')
+ ? key.replace(
+ /(-?\d*\.?\d(?!\b-.+[,)](?![^+\-/*])\D)(?:%|[a-z]+)?|\))([+\-/*])/g,
+ '$1 $2 '
+ )
+ : key);
+var makeThemeResolver = (config) => {
+ const cache = new Map();
+ const theme2 = { ...defaultTheme, ...config };
+ const deref = (theme3, section) => {
+ const base = theme3 && theme3[section];
+ const value = typeof base == 'function' ? base(resolve, resolveContext) : base;
+ return value && section == 'colors' ? flattenColorPalette(value) : value;
+ };
+ const resolve = (section, key, defaultValue) => {
+ const keypath = section.split('.');
+ section = keypath[0];
+ if (keypath.length > 1) {
+ defaultValue = key;
+ key = join(tail(keypath), '.');
+ }
+ let base = cache.get(section);
+ if (!base) {
+ cache.set(section, (base = { ...deref(theme2, section) }));
+ Object.assign(base, deref(theme2.extend, section));
+ }
+ if (key != null) {
+ key = (Array.isArray(key) ? join(key) : key) || 'DEFAULT';
+ const value = handleArbitraryValues(section, key) || base[key];
+ return value == null
+ ? defaultValue
+ : Array.isArray(value) && !includes(['fontSize', 'outline', 'dropShadow'], section)
+ ? join(value, ',')
+ : value;
+ }
+ return base;
+ };
+ return resolve;
+};
+
+// src/twind/translate.ts
+var translate = (plugins, context) => (rule, isTranslating) => {
+ if (typeof rule.d == 'function') {
+ return rule.d(context);
+ }
+ const parameters = rule.d.split(/-(?![^[]*])/g);
+ if (!isTranslating && parameters[0] == 'tw' && rule.$ == rule.d) {
+ return rule.$;
+ }
+ for (let index = parameters.length; index; index--) {
+ const id = join(parameters.slice(0, index));
+ const plugin = plugins[id];
+ if (plugin) {
+ return typeof plugin == 'function'
+ ? plugin(tail(parameters, index), context, id)
+ : typeof plugin == 'string'
+ ? context[isTranslating ? 'css' : 'tw'](plugin)
+ : plugin;
+ }
+ }
+};
+
+// src/twind/decorate.ts
+var _2;
+var GROUP_RE = /^:(group(?:(?!-focus).+?)*)-(.+)$/;
+var NOT_PREFIX_RE = /^(:not)-(.+)/;
+var prepareVariantSelector = (variant) => (variant[1] == '[' ? tail(variant) : variant);
+var decorate = (darkMode, variants, { theme: theme2, tag }) => {
+ const applyVariant = (translation, variant) => {
+ if ((_2 = theme2('screens', tail(variant), ''))) {
+ return { [buildMediaQuery(_2)]: translation };
+ }
+ if (variant == ':dark' && darkMode == 'class') {
+ return { '.dark &': translation };
+ }
+ if ((_2 = GROUP_RE.exec(variant))) {
+ return { [`.${escape(tag(_2[1]))}:${_2[2]} &`]: translation };
+ }
+ return {
+ [variants[tail(variant)] ||
+ '&' +
+ variant.replace(
+ NOT_PREFIX_RE,
+ (_4, not, variant2) => not + '(' + prepareVariantSelector(':' + variant2) + ')'
+ )]: translation,
+ };
+ };
+ return (translation, rule) => rule.v.reduceRight(applyVariant, translation);
+};
+
+// src/twind/presedence.ts
+var _3;
+var responsivePrecedence = (css) =>
+ (((_3 = /(?:^|min-width: *)(\d+(?:.\d+)?)(p)?/.exec(css))
+ ? +_3[1] / (_3[2] ? 15 : 1) / 10
+ : 0) &
+ 31) <<
+ 22;
+var seperatorPrecedence = (string) => {
+ _3 = 0;
+ for (let index = string.length; index--; ) {
+ _3 += includes('-:,', string[index]);
+ }
+ return _3;
+};
+var atRulePresedence = (css) => (seperatorPrecedence(css) & 15) << 18;
+var PRECEDENCES_BY_PSEUDO_CLASS = [
+ 'rst',
+ 'st',
+ 'en',
+ 'd',
+ 'nk',
+ 'sited',
+ 'pty',
+ 'ecked',
+ 'cus-w',
+ 'ver',
+ 'cus',
+ 'cus-v',
+ 'tive',
+ 'sable',
+ 'ad-on',
+ 'tiona',
+ 'quire',
+];
+
+var pseudoPrecedence = (pseudoClass) =>
+ 1 <<
+ (~(_3 = PRECEDENCES_BY_PSEUDO_CLASS.indexOf(
+ pseudoClass.replace(GROUP_RE, ':$2').slice(3, 8)
+ ))
+ ? _3
+ : 17);
+var makeVariantPresedenceCalculator = (theme2, variants) => (presedence, variant) =>
+ presedence |
+ ((_3 = theme2('screens', tail(variant), ''))
+ ? (1 << 27) | responsivePrecedence(buildMediaQuery(_3))
+ : variant == ':dark'
+ ? 1 << 30
+ : (_3 = variants[variant] || variant.replace(NOT_PREFIX_RE, ':$2'))[0] == '@'
+ ? atRulePresedence(_3)
+ : pseudoPrecedence(variant));
+var declarationPropertyPrecedence = (property2) =>
+ property2[0] == '-'
+ ? 0
+ : seperatorPrecedence(property2) +
+ ((_3 = /^(?:(border-(?!w|c|sty)|[tlbr].{2,4}m?$|c.{7}$)|([fl].{5}l|g.{8}$|pl))/.exec(
+ property2
+ ))
+ ? +!!_3[1] || -!!_3[2]
+ : 0) +
+ 1;
+
+// src/twind/serialize.ts
+var stringifyBlock = (body, selector) => selector + '{' + body + '}';
+var serialize = (prefix, variants, context) => {
+ const { theme: theme2, tag } = context;
+ const tagVar = (_4, property2) => '--' + tag(property2);
+ const tagVars = (value) => `${value}`.replace(/--(tw-[\w-]+)\b/g, tagVar);
+ const stringifyDeclaration = (property2, value, important) => {
+ property2 = tagVars(property2);
+ return Array.isArray(value)
+ ? join(
+ value.filter(Boolean).map((value2) => prefix(property2, tagVars(value2), important)),
+ ';'
+ )
+ : prefix(property2, tagVars(value), important);
+ };
+ let rules2;
+ const stringify3 = (atRules, selector, presedence, css, important) => {
+ if (Array.isArray(css)) {
+ css.forEach(
+ (css2) => css2 && stringify3(atRules, selector, presedence, css2, important)
+ );
+ return;
+ }
+ let declarations = '';
+ let maxPropertyPresedence = 0;
+ let numberOfDeclarations = 0;
+ if (css['@apply']) {
+ css = merge(
+ evalThunk(apply(css['@apply']), context),
+ { ...css, '@apply': void 0 },
+ context
+ );
+ }
+ Object.keys(css).forEach((key) => {
+ const value = evalThunk(css[key], context);
+ if (isCSSProperty(key, value)) {
+ if (value !== '' && key.length > 1) {
+ const property2 = hyphenate(key);
+ numberOfDeclarations += 1;
+ maxPropertyPresedence = Math.max(
+ maxPropertyPresedence,
+ declarationPropertyPrecedence(property2)
+ );
+ declarations =
+ (declarations && declarations + ';') +
+ stringifyDeclaration(property2, value, important);
+ }
+ } else if (value) {
+ if (key == ':global') {
+ key = '@global';
+ }
+ if (key[0] == '@') {
+ if (key[1] == 'g') {
+ stringify3([], '', 0, value, important);
+ } else if (key[1] == 'f') {
+ stringify3([], key, 0, value, important);
+ } else if (key[1] == 'k') {
+ const currentSize = rules2.length;
+ stringify3([], '', 0, value, important);
+ const waypoints = rules2.splice(currentSize, rules2.length - currentSize);
+ rules2.push({
+ r: stringifyBlock(
+ join(
+ waypoints.map((p) => p.r),
+ ''
+ ),
+ key
+ ),
+ p: waypoints.reduce((sum, p) => sum + p.p, 0),
+ });
+ } else if (key[1] == 'i') {
+ (Array.isArray(value) ? value : [value]).forEach(
+ (value2) => value2 && rules2.push({ p: 0, r: `${key} ${value2};` })
+ );
+ } else {
+ if (key[2] == 'c') {
+ key = buildMediaQuery(context.theme('screens', tail(key, 8).trim()));
+ }
+ stringify3(
+ [...atRules, key],
+ selector,
+ presedence | responsivePrecedence(key) | atRulePresedence(key),
+ value,
+ important
+ );
+ }
+ } else {
+ stringify3(
+ atRules,
+ selector
+ ? join(
+ selector.split(/,(?![^[]*])/g).map((selectorPart) =>
+ join(
+ key
+ .split(/,(?![^[]*])/g)
+ .map((keyPart) =>
+ includes(keyPart, '&')
+ ? keyPart.replace(/&/g, selectorPart)
+ : (selectorPart && selectorPart + ' ') + keyPart
+ ),
+ ','
+ )
+ ),
+ ','
+ )
+ : key,
+ presedence,
+ value,
+ important
+ );
+ }
+ }
+ });
+ if (numberOfDeclarations) {
+ rules2.push({
+ r: atRules.reduceRight(stringifyBlock, stringifyBlock(declarations, selector)),
+ p:
+ presedence * (1 << 8) +
+ (((Math.max(0, 15 - numberOfDeclarations) & 15) << 4) |
+ ((maxPropertyPresedence || 15) & 15)),
+ });
+ }
+ };
+ const variantPresedence = makeVariantPresedenceCalculator(theme2, variants);
+ return (css, className, rule, layer = 0) => {
+ layer <<= 28;
+ rules2 = [];
+ stringify3(
+ [],
+ className ? '.' + escape(className) : '',
+ rule ? rule.v.reduceRight(variantPresedence, layer) : layer,
+ css,
+ rule && rule.i
+ );
+ return rules2;
+ };
+};
+
+// src/twind/inject.ts
+var inject = (sheet, mode2, init, context) => {
+ let sortedPrecedences;
+ init((value = []) => (sortedPrecedences = value));
+ let insertedRules;
+ init((value = new Set()) => (insertedRules = value));
+ return ({ r: css, p: presedence }) => {
+ if (!insertedRules.has(css)) {
+ insertedRules.add(css);
+ const index = sortedInsertionIndex(sortedPrecedences, presedence);
+ try {
+ sheet.insert(css, index);
+ sortedPrecedences.splice(index, 0, presedence);
+ } catch (error) {
+ if (!/:-[mwo]/.test(css)) {
+ mode2.report({ id: 'INJECT_CSS_ERROR', css, error }, context);
+ }
+ }
+ }
+ };
+};
+
+// src/twind/configure.ts
+var sanitize = (value, defaultValue, disabled, enabled = defaultValue) =>
+ value === false ? disabled : value === true ? enabled : value || defaultValue;
+var loadMode = (mode2) =>
+ (typeof mode2 == 'string' ? { t: strict, a: warn, i: silent }[mode2[1]] : mode2) || warn;
+var stringifyVariant = (selector, variant) =>
+ selector + (variant[1] == ':' ? tail(variant, 2) + ':' : tail(variant)) + ':';
+var stringify2 = (rule, directive2 = rule.d) =>
+ typeof directive2 == 'function'
+ ? ''
+ : rule.v.reduce(stringifyVariant, '') +
+ (rule.i ? '!' : '') +
+ (rule.n ? '-' : '') +
+ directive2;
+var COMPONENT_PROPS = { _: { value: '', writable: true } };
+var configure = (config = {}) => {
+ const theme2 = makeThemeResolver(config.theme);
+ const mode2 = loadMode(config.mode);
+ const hash = sanitize(config.hash, false, false, cyrb32);
+ const important = config.important;
+ let activeRule = { v: [] };
+ let translateDepth = 0;
+ const lastTranslations = [];
+ const context = {
+ tw: (...tokens) => process(tokens),
+ theme: (section, key, defaultValue) => {
+ var _a;
+ const value =
+ (_a = theme2(section, key, defaultValue)) != null
+ ? _a
+ : mode2.unknown(
+ section,
+ key == null || Array.isArray(key) ? key : key.split('.'),
+ defaultValue != null,
+ context
+ );
+ return activeRule.n && value && includes('rg', (typeof value)[5])
+ ? `calc(${value} * -1)`
+ : value;
+ },
+ tag: (value) => (hash ? hash(value) : value),
+ css: (rules2) => {
+ translateDepth++;
+ const lastTranslationsIndex = lastTranslations.length;
+ try {
+ (typeof rules2 == 'string' ? parse([rules2]) : rules2).forEach(convert);
+ const css = Object.create(null, COMPONENT_PROPS);
+ for (let index = lastTranslationsIndex; index < lastTranslations.length; index++) {
+ const translation = lastTranslations[index];
+ if (translation) {
+ switch (typeof translation) {
+ case 'object':
+ merge(css, translation, context);
+ break;
+ case 'string':
+ css._ += (css._ && ' ') + translation;
+ }
+ }
+ }
+ return css;
+ } finally {
+ lastTranslations.length = lastTranslationsIndex;
+ translateDepth--;
+ }
+ },
+ };
+
+ const translate2 = translate({ ...corePlugins, ...config.plugins }, context);
+ const doTranslate = (rule) => {
+ const parentRule = activeRule;
+ activeRule = rule;
+ try {
+ return evalThunk(translate2(rule), context);
+ } finally {
+ activeRule = parentRule;
+ }
+ };
+ const variants = { ...coreVariants, ...config.variants };
+ const decorate2 = decorate(config.darkMode || 'media', variants, context);
+ const serialize2 = serialize(
+ sanitize(config.prefix, autoprefix, noprefix),
+ variants,
+ context
+ );
+ const sheet =
+ config.sheet || (typeof window == 'undefined' ? voidSheet() : cssomSheet(config));
+ const { init = (callback) => callback() } = sheet;
+ const inject2 = inject(sheet, mode2, init, context);
+ let idToClassName;
+ init((value = new Map()) => (idToClassName = value));
+ const inlineDirectiveName = new WeakMap();
+ const evaluateFunctions = (key, value) =>
+ key == '_'
+ ? void 0
+ : typeof value == 'function'
+ ? JSON.stringify(evalThunk(value, context), evaluateFunctions)
+ : value;
+ const convert = (rule) => {
+ if (!translateDepth && activeRule.v.length) {
+ rule = { ...rule, v: [...activeRule.v, ...rule.v], $: '' };
+ }
+ if (!rule.$) {
+ rule.$ = stringify2(rule, inlineDirectiveName.get(rule.d));
+ }
+ let className = translateDepth ? null : idToClassName.get(rule.$);
+ if (className == null) {
+ let translation = doTranslate(rule);
+ if (!rule.$) {
+ rule.$ = cyrb32(JSON.stringify(translation, evaluateFunctions));
+ inlineDirectiveName.set(rule.d, rule.$);
+ rule.$ = stringify2(rule, rule.$);
+ }
+ if (translation && typeof translation == 'object') {
+ rule.v = rule.v.map(prepareVariantSelector);
+ if (important) rule.i = important;
+ translation = decorate2(translation, rule);
+ if (translateDepth) {
+ lastTranslations.push(translation);
+ } else {
+ const layer =
+ typeof rule.d == 'function' ? (typeof translation._ == 'string' ? 1 : 3) : 2;
+ className =
+ hash || typeof rule.d == 'function' ? (hash || cyrb32)(layer + rule.$) : rule.$;
+ serialize2(translation, className, rule, layer).forEach(inject2);
+ if (translation._) {
+ className += ' ' + translation._;
+ }
+ }
+ } else {
+ if (typeof translation == 'string') {
+ className = translation;
+ } else {
+ className = rule.$;
+ mode2.report({ id: 'UNKNOWN_DIRECTIVE', rule: className }, context);
+ }
+ if (translateDepth && typeof rule.d !== 'function') {
+ lastTranslations.push(className);
+ }
+ }
+ if (!translateDepth) {
+ idToClassName.set(rule.$, className);
+ ensureMaxSize(idToClassName, 3e4);
+ }
+ }
+ return className;
+ };
+ const process = (tokens) => join(parse(tokens).map(convert).filter(Boolean), ' ');
+ const preflight = sanitize(config.preflight, identity, false);
+ if (preflight) {
+ const css = createPreflight(theme2);
+ const styles = serialize2(
+ typeof preflight == 'function'
+ ? evalThunk(preflight(css, context), context) || css
+ : { ...css, ...preflight }
+ );
+ init((injected = (styles.forEach(inject2), true)) => injected);
+ }
+ return {
+ init: () => mode2.report({ id: 'LATE_SETUP_CALL' }, context),
+ process,
+ };
+};
+
+// src/twind/instance.ts
+var create = (config) => {
+ let process = (tokens) => {
+ init();
+ return process(tokens);
+ };
+ let init = (config2) => {
+ ({ process, init } = configure(config2));
+ };
+ if (config) init(config);
+ let context;
+ const fromContext = (key) => () => {
+ if (!context) {
+ process([
+ (_4) => {
+ context = _4;
+ return '';
+ },
+ ]);
+ }
+ return context[key];
+ };
+ return {
+ tw: Object.defineProperties((...tokens) => process(tokens), {
+ theme: {
+ get: fromContext('theme'),
+ },
+ }),
+
+ setup: (config2) => init(config2),
+ };
+};
+
+// src/twind/default.ts
+var { tw, setup } = /* @__PURE__ */ create();
+export {
+ apply,
+ autoprefix,
+ create,
+ cssomSheet,
+ directive,
+ cyrb32 as hash,
+ mode,
+ noprefix,
+ setup,
+ silent,
+ strict,
+ theme,
+ tw,
+ voidSheet,
+ warn,
+};