@tailwindcss/language-server 0.0.0-insiders.8df1bde → 0.0.0-insiders.908ddd2

Sign up to get free protection for your applications and to get access to all the features.
@@ -2874,7 +2874,7 @@ ${c}
2874
2874
  ${a}}`;for(let u=i.length-1;u>=0;u--)n+=`${s.repeat(u)}
2875
2875
  }`;return n=aI(n,r.tailwindCSS),n}function RRe(e,t){let r=t.__pseudo.join("");return`${t.__scope?`${t.__scope} `:""}.${(0,rQ.default)(e)}${r}`}var CQ=Xt(Ds());var kI=["aspnetcorerazor","astro","astro-markdown","blade","django-html","edge","ejs","erb","gohtml","GoHTML","gohtmltmpl","haml","handlebars","hbs","html","HTML (Eex)","HTML (EEx)","html-eex","htmldjango","jade","leaf","liquid","markdown","mdx","mustache","njk","nunjucks","phoenix-heex","php","razor","slim","surface","twig"],MI=["css","less","postcss","sass","scss","stylus","sugarss","tailwindcss"],NI=["javascript","javascriptreact","reason","rescript","typescript","typescriptreact","glimmer-js","glimmer-ts"],FRe=["vue","svelte"],Rbt=[...MI,...kI,...NI,...FRe],iQ=["sass","sugarss","stylus"];function OI(e,t={}){return iQ.includes(e)||iQ.includes(t[e])}var fQ=Xt(eM());function hp(e,t){return e.line===t.start.line&&e.character>=t.start.character?!(e.line===t.end.line&&e.character>t.end.character):e.line===t.end.line&&e.character<=t.end.character?!(e.line===t.start.line&&e.character<t.end.character):e.line>t.start.line&&e.line<t.end.line}function mp(e,t){let r=Object.keys(e.editor.userLanguages).filter(n=>NI.includes(e.editor.userLanguages[n]));return[...NI,...r].indexOf(t.languageId)!==-1}function bE(e,t,r){let n=t.getText({start:{line:0,character:0},end:r}),s=Xi(e,t,n);return s?["jsx","tsx"].includes(s[s.length-1].type):!1}var SE=Xt(FI());var tM=e=>{let t=!1,r=null,n=function(){return t||(r=e.apply(this,arguments),t=!0),r};return n.isLazy=!0,n};var uQ=()=>({doubleClassList:{arb:{match:new RegExp("(?<!\\\\)\\["),push:"arbitrary"},lbrace:{match:new RegExp("(?<!\\\\)\\{"),push:"interpBrace"},rbrace:{match:new RegExp("(?<!\\\\)\\}"),pop:1},end:{match:new RegExp('(?<!\\\\)"'),pop:1},classlist:{match:new RegExp("[\\s\\S]"),lineBreaks:!0}},singleClassList:{lbrace:{match:new RegExp("(?<!\\\\)\\{"),push:"interpBrace"},rbrace:{match:new RegExp("(?<!\\\\)\\}"),pop:1},end:{match:new RegExp("(?<!\\\\)'"),pop:1},classlist:{match:new RegExp("[\\s\\S]"),lineBreaks:!0}},tickClassList:{lbrace:{match:new RegExp("(?<=(?<!\\\\)\\$)\\{"),push:"interpBrace"},rbrace:{match:new RegExp("(?<!\\\\)\\}"),pop:1},end:{match:new RegExp("(?<!\\\\)`"),pop:1},classlist:{match:new RegExp("[\\s\\S]"),lineBreaks:!0}},interpBrace:{startSingle:{match:new RegExp("(?<!\\\\)'"),push:"singleClassList"},startDouble:{match:new RegExp('(?<!\\\\)"'),push:"doubleClassList"},startTick:{match:new RegExp("(?<!\\\\)`"),push:"tickClassList"},lbrace:{match:new RegExp("(?<!\\\\)\\{"),push:"interpBrace"},rbrace:{match:new RegExp("(?<!\\\\)\\}"),pop:1},text:{match:new RegExp("[\\s\\S]"),lineBreaks:!0}},interpSingle:{startDouble:{match:new RegExp('(?<!\\\\)"'),push:"doubleClassList"},startTick:{match:new RegExp("(?<!\\\\)`"),push:"tickClassList"},single:{match:new RegExp("(?<!\\\\)'"),pop:1},text:{match:new RegExp("[\\s\\S]"),lineBreaks:!0}},interpDouble:{startSingle:{match:new RegExp("(?<!\\\\)'"),push:"singleClassList"},startTick:{match:new RegExp("(?<!\\\\)`"),push:"tickClassList"},double:{match:new RegExp('(?<!\\\\)"'),pop:1},text:{match:new RegExp("[\\s\\S]"),lineBreaks:!0}},arbitrary:{arb:{match:new RegExp("(?<!\\\\)\\]"),pop:1},space:{match:/\s/,pop:1,lineBreaks:!0},arb2:{match:new RegExp("[\\s\\S]"),lineBreaks:!0}}}),cQ={main:{start:{match:'"',push:"doubleClassList"}},doubleClassList:{end:{match:'"',pop:1},classlist:{match:/[\s\S]/,lineBreaks:!0}}},BI=tM(()=>{let e=!0;try{new RegExp("(?<!)")}catch{e=!1}return e?SE.default.states({main:{start1:{match:'"',push:"doubleClassList"},start2:{match:"'",push:"singleClassList"},start3:{match:"{",push:"interpBrace"}},...uQ()}):SE.default.states(cQ)}),UI=tM(()=>{let e=!0;try{new RegExp("(?<!)")}catch{e=!1}return e?SE.default.states({main:{lbrace:{match:"{",push:"interpBrace"},single:{match:"'",push:"interpSingle"},double:{match:'"',push:"interpDouble"}},...uQ()}):SE.default.states(cQ)});function rM(e,t){return{start:{line:(t?.start.line||0)+e.start.line,character:(e.end.line===0&&t?.start.character||0)+e.start.character},end:{line:(t?.start.line||0)+e.end.line,character:(e.end.line===0&&t?.start.character||0)+e.end.character}}}var dQ=Xt(FI());function Ni(e,t,r){let n=typeof e=="string"?e:e.getText(r);return t==="js"||t==="jsx"?qRe(n):t==="css"?n.replace(/\/\*.*?\*\//gs,pQ):n.replace(/<!--.*?-->/gs,pQ)}function pQ(e){return e.replace(/./gs,t=>t===`
2876
2876
  `?`
2877
- `:" ")}var jI;function qRe(e){jI||(jI=dQ.default.states({main:{commentLine:/\/\/.*?$/,commentBlock:{match:/\/\*[^]*?\*\//,lineBreaks:!0},stringDouble:/"(?:[^"\\]|\\.)*"/,stringSingle:/'(?:[^'\\]|\\.)*'/,stringBacktick:/`(?:[^`\\]|\\.)*`/,other:{match:/[^]/,lineBreaks:!0}}}));let t="";jI.reset(e);for(let r of jI)r.type==="commentLine"?t+=" ".repeat(r.value.length):r.type==="commentBlock"?t+=r.value.replace(/./g," "):t+=r.value;return t}function*WI({text:e,filters:t,cursor:r=null}){for(let n of t){let[s,i]=Array.isArray(n)?n:[n],o=new RegExp(s,"gd"),a=i?new RegExp(i,"gd"):void 0;for(let c of KRe(e,o,a,r))yield c}}function*KRe(e,t,r,n){for(let s of e.matchAll(t)){if(s[1]===void 0){console.warn(`Regex /${t.source}/ must have exactly one capture group`);continue}let i=s.indices[1][0],o=i+s[1].length;if(!(n!==null&&(n<i||n>o))){if(!r){yield{classList:n!==null?s[1].slice(0,n-i):s[1],range:[i,o]};continue}for(let a of s[1].matchAll(r)){if(a[1]===void 0){console.warn(`Regex /${r.source}/ must have exactly one capture group`);continue}let c=i+a.indices[1][0],u=c+a[1].length;n!==null&&(n<c||n>u)||(yield{classList:n!==null?a[1].slice(0,n-c):a[1],range:[c,u]})}}}}function fo(e,t){let r,n=[];for(;(r=e.exec(t))!==null;)n.push({...r});return n}function hQ(e,t){let r=fo(e,t);return r.length===0?null:r[r.length-1]}function qu({classList:e,range:t,important:r},n){let s=e.split(/(\s+)/),i=[],o=0;for(let a=0;a<s.length;a++){if(a%2===0&&!n.includes(s[a])){let c=ei(e,o),u=ei(e,o+s[a].length);i.push({className:s[a],classList:{classList:e,range:t,important:r},relativeRange:{start:c,end:u},range:{start:{line:t.start.line+c.line,character:(u.line===0?t.start.character:0)+c.character},end:{line:t.start.line+u.line,character:(u.line===0?t.start.character:0)+u.character}}})}o+=s[a].length}return i}async function Lf(e,t,r,n,s=!0){let i=await GRe(e,t,r,n,s);return ul(i.map(o=>qu(o,e.blocklist)))}function VI(e,t,r,n){let s=Ni(t,"css",r),i=OI(n??t.languageId,e.editor?.userLanguages)?/(@apply\s+)(?<classList>[^}\r\n]+?)(?<important>\s*!important)?(?:\r|\n|}|$)/g:/(@apply\s+)(?<classList>[^;}]+?)(?<important>\s*!important)?\s*[;}]/g,o=fo(i,s),a=r?r.start:{line:0,character:0};return o.map(c=>{let u=ei(s,c.index+c[1].length),H=ei(s,c.index+c[1].length+c.groups.classList.length);return{classList:c.groups.classList,important:!!c.groups.important,range:{start:{line:a.line+u.line,character:(H.line===0?a.character:0)+u.character},end:{line:a.line+H.line,character:(H.line===0?a.character:0)+H.character}}}})}async function mQ(e,t,r){let s=(await e.editor.getConfiguration(t.uri)).tailwindCSS.experimental.classRegex;if(!Array.isArray(s)||s.length===0)return[];let i=t.getText(r?{...r,start:t.positionAt(0)}:void 0),o=[];try{for(let a of WI({text:i,filters:s}))o.push({classList:a.classList,range:{start:t.positionAt(a.range[0]),end:t.positionAt(a.range[1])}})}catch{throw console.log(JSON.stringify({text:i,filters:s})),new Error("Failed to parse custom class regex")}return o}function nM(e,t){let r=t.filter(s=>typeof s=="string").flatMap(s=>[s,`\\[${s}\\]`]),n=/(?:\s|:|\()(ATTRS)\s*=\s*['"`{]/;return fo(new RegExp(n.source.replace("ATTRS",r.join("|")),"gi"),e)}async function XI(e,t,r,n){let s=Ni(t,r,n),i=nM(s,(await e.editor.getConfiguration(t.uri)).tailwindCSS.classAttributes),o=[];return i.forEach(a=>{let c=s.substr(a.index+a[0].length-1),u=a[0][0]===":"||a[1].startsWith("[")&&a[1].endsWith("]")?UI():BI();u.reset(c);let H=[],l,d;try{for(let f of u)f.type==="classlist"||f.type.startsWith("arb")?d?d.value+=f.value:d={value:f.value,offset:f.offset}:(d&&H.push({value:d.value,offset:d.offset}),d=void 0)}catch{}d&&H.push({value:d.value,offset:d.offset}),o.push(...H.map(({value:f,offset:h})=>{if(f.trim()==="")return null;let m=f.match(/^\s*/),L=m===null?0:m[0].length,E=f.match(/\s*$/),_=E===null?0:-E[0].length,I=ei(s,a.index+a[0].length-1+h+L),S=ei(s,a.index+a[0].length-1+h+f.length+_);return{classList:f.substr(L,f.length+_),range:{start:{line:(n?.start.line||0)+I.line,character:(S.line===0&&n?.start.character||0)+I.character},end:{line:(n?.start.line||0)+S.line,character:(S.line===0&&n?.start.character||0)+S.character}}}}).filter(f=>f!==null))}),o}async function GRe(e,t,r,n,s=!0){let i=[];return n==="css"?i=VI(e,t,r):(n==="html"||n==="jsx")&&(i=await XI(e,t,n,r)),zp([...i,...s?await mQ(e,t,r):[]])}async function If(e,t){if(Ha(e,t))return VI(e,t);let r=Xi(e,t);return r?zp(ul([...await Promise.all(r.filter(n=>n.type==="html"||n.type==="jsx").map(({type:n,range:s})=>XI(e,t,n==="html"?"html":"jsx",s))),...r.filter(n=>n.type==="css").map(({range:n,lang:s})=>VI(e,t,n,s)),await mQ(e,t)])):[]}function KI(e,t){if(Ha(e,t))return qI(t);let r=Xi(e,t);return r?ul(r.filter(n=>n.type==="css").map(({range:n})=>qI(t,n))):[]}function ZRe(e){let t;for(let r=0;r<e.length;r++){let n=e[r];if(n===","&&!t)return r;!t&&(n==='"'||n==="'")?t=n:n===t&&(t=void 0)}return null}function qI(e,t){let r=Ni(e,"css",t);return fo(/(?<prefix>[\s:;/*(){}])(?<helper>config|theme)(?<innerPrefix>\(\s*)(?<path>[^)]*?)\s*\)/g,r).map(s=>{let i="",o=s.groups.path,a=ZRe(o);a!==null&&(o=o.slice(0,a).trimEnd()),o=o.replace(/['"]+$/,"").replace(/^['"]+/,H=>(i=H,""));let c=o.match(/^([^\s]+)(?![^\[]*\])(?:\s*\/\s*([^\/\s]+))$/);c&&(o=c[1]),o=o.replace(/['"]*\s*$/,"");let u=s.index+s.groups.prefix.length+s.groups.helper.length+s.groups.innerPrefix.length;return{helper:s.groups.helper==="theme"?"theme":"config",path:o,ranges:{full:rM({start:ei(r,u),end:ei(r,u+s.groups.path.length)},t),path:rM({start:ei(r,u+i.length),end:ei(r,u+i.length+o.length)},t)}}})}function ei(e,t){let{line:r,col:n}=(0,fQ.default)(e+`
2877
+ `:" ")}var jI;function qRe(e){jI||(jI=dQ.default.states({main:{commentLine:/\/\/.*?$/,commentBlock:{match:/\/\*[^]*?\*\//,lineBreaks:!0},stringDouble:/"(?:[^"\\]|\\.)*"/,stringSingle:/'(?:[^'\\]|\\.)*'/,stringBacktick:/`(?:[^`\\]|\\.)*`/,other:{match:/[^]/,lineBreaks:!0}}}));let t="";jI.reset(e);for(let r of jI)r.type==="commentLine"?t+=" ".repeat(r.value.length):r.type==="commentBlock"?t+=r.value.replace(/./g," "):t+=r.value;return t}function*WI({text:e,filters:t,cursor:r=null}){for(let n of t){let[s,i]=Array.isArray(n)?n:[n],o=new RegExp(s,"gd"),a=i?new RegExp(i,"gd"):void 0;for(let c of KRe(e,o,a,r))yield c}}function*KRe(e,t,r,n){for(let s of e.matchAll(t)){if(s[1]===void 0){console.warn(`Regex /${t.source}/ must have exactly one capture group`);continue}let i=s.indices[1][0],o=i+s[1].length;if(!(n!==null&&(n<i||n>o))){if(!r){yield{classList:n!==null?s[1].slice(0,n-i):s[1],range:[i,o]};continue}for(let a of s[1].matchAll(r)){if(a[1]===void 0){console.warn(`Regex /${r.source}/ must have exactly one capture group`);continue}let c=i+a.indices[1][0],u=c+a[1].length;n!==null&&(n<c||n>u)||(yield{classList:n!==null?a[1].slice(0,n-c):a[1],range:[c,u]})}}}}function fo(e,t){let r,n=[];for(;(r=e.exec(t))!==null;)n.push({...r});return n}function hQ(e,t){let r=fo(e,t);return r.length===0?null:r[r.length-1]}function qu({classList:e,range:t,important:r},n){let s=e.split(/(\s+)/),i=[],o=0;for(let a=0;a<s.length;a++){if(a%2===0&&!n.includes(s[a])){let c=ei(e,o),u=ei(e,o+s[a].length);i.push({className:s[a],classList:{classList:e,range:t,important:r},relativeRange:{start:c,end:u},range:{start:{line:t.start.line+c.line,character:(u.line===0?t.start.character:0)+c.character},end:{line:t.start.line+u.line,character:(u.line===0?t.start.character:0)+u.character}}})}o+=s[a].length}return i}async function Lf(e,t,r,n,s=!0){let i=await GRe(e,t,r,n,s);return ul(i.map(o=>qu(o,e.blocklist)))}function VI(e,t,r,n){let s=Ni(t,"css",r),i=OI(n??t.languageId,e.editor?.userLanguages)?/(@apply\s+)(?<classList>[^}\r\n]+?)(?<important>\s*!important)?(?:\r|\n|}|$)/g:/(@apply\s+)(?<classList>[^;}]+?)(?<important>\s*!important)?\s*[;}]/g,o=fo(i,s),a=r?r.start:{line:0,character:0};return o.map(c=>{let u=ei(s,c.index+c[1].length),H=ei(s,c.index+c[1].length+c.groups.classList.length);return{classList:c.groups.classList,important:!!c.groups.important,range:{start:{line:a.line+u.line,character:(H.line===0?a.character:0)+u.character},end:{line:a.line+H.line,character:(H.line===0?a.character:0)+H.character}}}})}async function mQ(e,t,r){let s=(await e.editor.getConfiguration(t.uri)).tailwindCSS.experimental.classRegex;if(!Array.isArray(s)||s.length===0)return[];let i=t.getText(r?{...r,start:t.positionAt(0)}:void 0),o=[];try{for(let a of WI({text:i,filters:s}))o.push({classList:a.classList,range:{start:t.positionAt(a.range[0]),end:t.positionAt(a.range[1])}})}catch(a){throw console.error(a),console.log({text:i,filters:s}),new Error("Failed to parse custom class regex")}return o}function nM(e,t){let r=t.filter(s=>typeof s=="string").flatMap(s=>[s,`\\[${s}\\]`]),n=/(?:\s|:|\()(ATTRS)\s*=\s*['"`{]/;return fo(new RegExp(n.source.replace("ATTRS",r.join("|")),"gi"),e)}async function XI(e,t,r,n){let s=Ni(t,r,n),i=nM(s,(await e.editor.getConfiguration(t.uri)).tailwindCSS.classAttributes),o=[];return i.forEach(a=>{let c=s.substr(a.index+a[0].length-1),u=a[0][0]===":"||a[1].startsWith("[")&&a[1].endsWith("]")?UI():BI();u.reset(c);let H=[],l,d;try{for(let f of u)f.type==="classlist"||f.type.startsWith("arb")?d?d.value+=f.value:d={value:f.value,offset:f.offset}:(d&&H.push({value:d.value,offset:d.offset}),d=void 0)}catch{}d&&H.push({value:d.value,offset:d.offset}),o.push(...H.map(({value:f,offset:h})=>{if(f.trim()==="")return null;let m=f.match(/^\s*/),L=m===null?0:m[0].length,E=f.match(/\s*$/),_=E===null?0:-E[0].length,I=ei(s,a.index+a[0].length-1+h+L),S=ei(s,a.index+a[0].length-1+h+f.length+_);return{classList:f.substr(L,f.length+_),range:{start:{line:(n?.start.line||0)+I.line,character:(S.line===0&&n?.start.character||0)+I.character},end:{line:(n?.start.line||0)+S.line,character:(S.line===0&&n?.start.character||0)+S.character}}}}).filter(f=>f!==null))}),o}async function GRe(e,t,r,n,s=!0){let i=[];return n==="css"?i=VI(e,t,r):(n==="html"||n==="jsx")&&(i=await XI(e,t,n,r)),zp([...i,...s?await mQ(e,t,r):[]])}async function If(e,t){if(Ha(e,t))return VI(e,t);let r=Xi(e,t);return r?zp(ul([...await Promise.all(r.filter(n=>n.type==="html"||n.type==="jsx").map(({type:n,range:s})=>XI(e,t,n==="html"?"html":"jsx",s))),...r.filter(n=>n.type==="css").map(({range:n,lang:s})=>VI(e,t,n,s)),await mQ(e,t)])):[]}function KI(e,t){if(Ha(e,t))return qI(t);let r=Xi(e,t);return r?ul(r.filter(n=>n.type==="css").map(({range:n})=>qI(t,n))):[]}function ZRe(e){let t;for(let r=0;r<e.length;r++){let n=e[r];if(n===","&&!t)return r;!t&&(n==='"'||n==="'")?t=n:n===t&&(t=void 0)}return null}function qI(e,t){let r=Ni(e,"css",t);return fo(/(?<prefix>[\s:;/*(){}])(?<helper>config|theme)(?<innerPrefix>\(\s*)(?<path>[^)]*?)\s*\)/g,r).map(s=>{let i="",o=s.groups.path,a=ZRe(o);a!==null&&(o=o.slice(0,a).trimEnd()),o=o.replace(/['"]+$/,"").replace(/^['"]+/,H=>(i=H,""));let c=o.match(/^([^\s]+)(?![^\[]*\])(?:\s*\/\s*([^\/\s]+))$/);c&&(o=c[1]),o=o.replace(/['"]*\s*$/,"");let u=s.index+s.groups.prefix.length+s.groups.helper.length+s.groups.innerPrefix.length;return{helper:s.groups.helper==="theme"?"theme":"config",path:o,ranges:{full:rM({start:ei(r,u),end:ei(r,u+s.groups.path.length)},t),path:rM({start:ei(r,u+i.length),end:ei(r,u+i.length+o.length)},t)}}})}function ei(e,t){let{line:r,col:n}=(0,fQ.default)(e+`
2878
2878
  `).fromIndex(t)??{line:1,col:1};return{line:r-1,character:n-1}}async function _Q(e,t,r){let n=[],s=t.offsetAt(r),i={start:t.positionAt(Math.max(0,s-2e3)),end:t.positionAt(s+2e3)};if(Af(t)){let a=Xi(e,t),c=await Promise.all(a.map(async({type:u,range:H,lang:l})=>u==="css"?VI(e,t,H,l):u==="html"?await XI(e,t,"html",H):u==="jsx"?await XI(e,t,"jsx",H):[]));n=zp(ul(c)).flatMap(u=>qu(u,e.blocklist))}else Ks(e,t,r)?n=await Lf(e,t,i,"css"):vE(e,t,r)?n=await Lf(e,t,i,"html"):bE(e,t,r)?n=await Lf(e,t,i,"jsx"):n=await Lf(e,t,i);if(n.length===0)return null;let o=n.find(({range:a})=>hp(r,a));return o||null}var sM=Xt(FI()),gQ=Xt(yQ());var zRe=["text/html","text/x-template","text/x-handlebars-template"],JRe=["text/babel"],ho={text:{match:/[^]/,lineBreaks:!0}},ZI={main:{cssBlockStart:{match:/<style(?=[>\s])/,push:"cssBlock"},jsBlockStart:{match:"<script",push:"jsBlock"},...ho},cssBlock:{styleStart:{match:">",next:"style"},cssBlockEnd:{match:"/>",pop:1},attrStartDouble:{match:'"',push:"attrDouble"},attrStartSingle:{match:"'",push:"attrSingle"},interp:{match:"{",push:"interp"},...ho},jsBlock:{scriptStart:{match:">",next:"script"},jsBlockEnd:{match:"/>",pop:1},langAttrStartDouble:{match:'lang="',push:"langAttrDouble"},langAttrStartSingle:{match:"lang='",push:"langAttrSingle"},typeAttrStartDouble:{match:'type="',push:"typeAttrDouble"},typeAttrStartSingle:{match:"type='",push:"typeAttrSingle"},attrStartDouble:{match:'"',push:"attrDouble"},attrStartSingle:{match:"'",push:"attrSingle"},interp:{match:"{",push:"interp"},...ho},interp:{interp:{match:"{",push:"interp"},end:{match:"}",pop:1},...ho},langAttrDouble:{langAttrEnd:{match:'"',pop:1},lang:{match:/[^"]+/,lineBreaks:!0}},langAttrSingle:{langAttrEnd:{match:"'",pop:1},lang:{match:/[^']+/,lineBreaks:!0}},typeAttrDouble:{langAttrEnd:{match:'"',pop:1},type:{match:/[^"]+/,lineBreaks:!0}},typeAttrSingle:{langAttrEnd:{match:"'",pop:1},type:{match:/[^']+/,lineBreaks:!0}},attrDouble:{attrEnd:{match:'"',pop:1},...ho},attrSingle:{attrEnd:{match:"'",pop:1},...ho},style:{cssBlockEnd:{match:/<\/style\s*>/,pop:1},...ho},script:{jsBlockEnd:{match:/<\/script\s*>/,pop:1},...ho}},YRe={...ZI,main:{htmlBlockStart:{match:"<template",push:"htmlBlock"},...ZI.main},cssBlock:{langAttrStartDouble:{match:'lang="',push:"langAttrDouble"},langAttrStartSingle:{match:"lang='",push:"langAttrSingle"},...ZI.cssBlock},htmlBlock:{htmlStart:{match:">",next:"html"},htmlBlockEnd:{match:"/>",pop:1},attrStartDouble:{match:'"',push:"attrDouble"},attrStartSingle:{match:"'",push:"attrSingle"},interp:{match:"{",push:"interp"},...ho},html:{htmlBlockEnd:{match:"</template>",pop:1},nestedBlockStart:{match:"<template",push:"nestedBlock"},...ho},nestedBlock:{nestedStart:{match:">",next:"nested"},nestedBlockEnd:{match:"/>",pop:1},...ho},nested:{nestedBlockEnd:{match:"</template>",pop:1},nestedBlockStart:{match:"<template",push:"nestedBlock"},...ho}},QRe=sM.default.states(ZI),e9e=sM.default.states(YRe),GI=new gQ.default({max:25,maxAge:1e3});function Xi(e,t,r=t.getText()){let n=`${t.languageId}:${r}`,s=GI.get(n);if(s!==void 0)return s;let i=mp(e,t),o=Af(t)?"none":zI(e,t)||JI(t)?"html":i?"jsx":null;if(o===null)return GI.set(n,null),null;r=Ni(r,i?"js":"html");let a=o==="none"?e9e:QRe;a.reset(r);let c=o,u=[{type:o,range:{start:{line:0,character:0},end:void 0}}],H=0;try{for(let l of a){if(!l.type.startsWith("nested"))if(l.type.endsWith("BlockStart")){let d=ei(r,H);u[u.length-1].range.end||(u[u.length-1].range.end=d),c=l.type.replace(/BlockStart$/,""),u.push({type:c,range:{start:d,end:void 0}})}else if(l.type.endsWith("BlockEnd")){let d=ei(r,H);u[u.length-1].range.end=d,u.push({type:o,range:{start:d,end:void 0}})}else l.type==="lang"?u[u.length-1].type=l.text:l.type==="type"&&zRe.includes(l.text)?u[u.length-1].type="html":l.type==="type"&&JRe.includes(l.text)&&(u[u.length-1].type="jsx");H+=l.text.length}}catch{return GI.set(n,null),null}u[u.length-1].range.end||(u[u.length-1].range.end=ei(r,H)),GI.set(n,u);for(let l of u)l.type!=="css"&&aM(e,l.type)&&(l.lang=l.type,l.type="css");return u}function zI(e,t){let r=Object.keys(e.editor.userLanguages).filter(n=>kI.includes(e.editor.userLanguages[n]));return[...kI,...r].indexOf(t.languageId)!==-1}function Af(e){return e.languageId==="vue"}function JI(e){return e.languageId==="svelte"}function vE(e,t,r){let n=t.getText({start:{line:0,character:0},end:r}),s=Xi(e,t,n);return s?s[s.length-1].type==="html":!1}function t9e(e){let t=Object.keys(e.editor.userLanguages).filter(r=>MI.includes(e.editor.userLanguages[r]));return[...MI,...t]}function aM(e,t){return t9e(e).indexOf(t)!==-1}function Ha(e,t){return aM(e,t.languageId)}function Ks(e,t,r){if(Ha(e,t))return!0;if(zI(e,t)||Af(t)||JI(t)||mp(e,t)){let n=t.getText({start:{line:0,character:0},end:r}),s=Xi(e,t,n);return s?s[s.length-1].type==="css":!1}return!1}var LQ=Xt(Ds());function _p(e,t){let r=Array.isArray(t)?t:BH(e,t);if(!r)return null;let n=(0,LQ.default)(e.classNames.classNames,[...r,"__info"]);return Array.isArray(n)?n.map(s=>({source:s.__source,pseudo:s.__pseudo,scope:s.__scope,context:s.__context})):{source:n.__source,pseudo:n.__pseudo,scope:n.__scope,context:n.__context}}var oM=Xt(Ds());function YI(e,t){return e.featureFlags.future.includes(t)?e.config.future==="all"||(0,oM.default)(e.config,["future",t],!1):e.featureFlags.experimental.includes(t)?e.config.experimental==="all"||(0,oM.default)(e.config,["experimental",t],!1):!1}function Ku(e,t){if(e.jit)return{isApplyable:!0};let r=_p(e,t);if(!r)return null;if(Pr(e.version,"2.0.0-alpha.1")||YI(e,"applyComplexClasses"))return{isApplyable:!0};let n=Array.isArray(t)?t.join(e.separator):t,s;return Array.isArray(r)?s=`'@apply' cannot be used with '${n}' because it is included in multiple rulesets.`:r.source!=="utilities"?s=`'@apply' cannot be used with '${n}' because it is not a utility.`:r.context&&r.context.length>0?r.context.length===1?s=`'@apply' cannot be used with '${n}' because it is nested inside of an at-rule ('${r.context[0]}').`:s=`'@apply' cannot be used with '${n}' because it is nested inside of at-rules (${r.context.map(i=>`'${i}'`).join(", ")}).`:r.pseudo&&r.pseudo.length>0&&(r.pseudo.length===1?s=`'@apply' cannot be used with '${n}' because its definition includes a pseudo-selector ('${r.pseudo[0]}')`:s=`'@apply' cannot be used with '${n}' because its definition includes pseudo-selectors (${r.pseudo.map(i=>`'${i}'`).join(", ")}).`),s?{isApplyable:!1,reason:s}:{isApplyable:!0}}function IQ(e){return e.code==="cssConflict"}function AQ(e){return e.code==="invalidApply"}function bQ(e){return e.code==="invalidScreen"}function SQ(e){return e.code==="invalidVariant"}function vQ(e){return e.code==="invalidConfigPath"}function TQ(e){return e.code==="invalidTailwindDirective"}function PQ(e){return e.code==="recommendedVariantOrder"}var r9e=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,n9e=/\\(\\)?/g;function QI(e){let t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(r9e,(r,n,s,i)=>{t.push(s?i.replace(n9e,"$1"):n||r)}),t}var HM=Xt(DQ());function Gu(e,t){return t.concat([]).sort((r,n)=>(0,HM.default)(e,r)-(0,HM.default)(e,n))[0]}var eA=Xt(Ds());function Cl(e){return typeof e=="string"?e:e.reduce((t,r,n)=>n===0?r:r.includes(".")?`${t}[${r}]`:`${t}.${r}`,"")}function bf(e,t,r=[]){let n=Array.isArray(t)?t:QI(t),s=[...r,...n],i=(0,eA.default)(e.config,s),o=[],a=e.modules?.transformThemeValue?.module??(H=>l=>l);s[0]==="theme"&&s[1]&&(i=a(s[1])(i));function c(){return sI("123456789".substr(0,n.length-1)).map(d=>d.split("").map(f=>parseInt(f,10))).map(d=>{let f=[],h=0;return d.forEach(m=>{f.push(n.slice(h,m).join(".")),h=m}),f.push(n.slice(h).join(".")),f}).slice(1).find(d=>bf(e,d,r).isValid)}if(typeof i>"u"){let H=`'${Cl(t)}' does not exist in your theme config.`,l=[...r,...n.slice(0,n.length-1)],d=(0,eA.default)(e.config,l);if(Wi(d)){let f=Gu(n[n.length-1],Object.keys(d).filter(h=>bf(e,[...l,h]).isValid));f&&(o.push(Cl([...n.slice(0,n.length-1),f])),H+=` Did you mean '${o[0]}'?`)}else{let f=c();if(f)return{isValid:!1,reason:`${H} Did you mean '${Cl(f)}'?`,suggestions:[Cl(f)]}}return{isValid:!1,reason:H,suggestions:o}}if(!(typeof i=="string"||typeof i=="number"||i instanceof String||i instanceof Number||Array.isArray(i)||typeof i=="function")){let H=`'${Cl(t)}' was found but does not resolve to a valid theme value.`;if(Wi(i)){let l=Object.keys(i).filter(d=>bf(e,[...n,d],r).isValid);l.length&&(o.push(...l.map(d=>Cl([...n,d]))),H+=` Did you mean something like '${o[0]}'?`)}return{isValid:!1,reason:H,suggestions:o}}let u=!0;for(let H=n.length-1;H>=0;H--){let l=n[H],d=(0,eA.default)(e.config,[...r,...n.slice(0,H)]);if(/^[0-9]+$/.test(l)){if(!Wi(d)&&!Array.isArray(d)){u=!1;break}}else if(!Wi(d)){u=!1;break}}if(!u){let H=`'${Cl(t)}' does not exist in your theme config.`,l=c();return l?{isValid:!1,reason:`${H} Did you mean '${Cl(l)}'?`,suggestions:[Cl(l)]}:{isValid:!1,reason:H,suggestions:[]}}return{isValid:!0,value:i}}function xQ(e,t,r){let n=r.tailwindCSS.lint.invalidConfigPath;if(n==="ignore")return[];let s=[];return KI(e,t).forEach(i=>{let o=i.helper==="theme"?["theme"]:[],a=bf(e,i.path,o);a.isValid!==!0&&s.push({code:"invalidConfigPath",range:i.ranges.path,severity:n==="error"?1:2,message:a.reason,suggestions:a.suggestions})}),s}async function wQ(e,t,r){return await s9e(e,t,r)||await i9e(e,t,r)}async function i9e(e,t,r){if(!Ks(e,t,r))return null;let n=await e.editor.getConfiguration(t.uri),s=qI(t,{start:{line:r.line,character:0},end:{line:r.line+1,character:0}});for(let i of s){if(!hp(r,i.ranges.path))continue;let o=bf(e,i.path,i.helper==="theme"?["theme"]:[]),a=o.isValid?wI(o.value):null;return a===null?null:(n.tailwindCSS.showPixelEquivalents&&(a=Kd(a,n.tailwindCSS.rootFontSize)),{contents:{kind:"markdown",value:["```plaintext",a,"```"].join(`
2879
2879
  `)},range:i.ranges.path})}return null}async function s9e(e,t,r){let n=await _Q(e,t,r);if(n===null)return null;if(e.v4){let a=e.designSystem.compile([n.className])[0];return a.nodes.length===0?null:{contents:{language:"css",value:await Hf(e,a,t.uri)},range:n.range}}if(e.jit){let{root:a,rules:c}=aa(e,[n.className]);return c.length===0?null:{contents:{language:"css",value:await Hf(e,a,t.uri)},range:n.range}}let s=BH(e,n.className);if(!s)return null;if(Ks(e,t,r)){let a=Ku(e,s);if(a===null||a.isApplyable===!1)return null}let i=await e.editor.getConfiguration(t.uri),o=AE(n.className,(0,CQ.default)(e.classNames.classNames,[...s,"__info"]),i);return o?{contents:{language:"css",value:o},range:n.range}:null}var Zs=Xt(_$()),ka=Xt(Ds());function a9e(e){return Wi(e)&&e.raw!==void 0}function kQ(e){if(!e)return;if(typeof e=="string")return`@media (min-width: ${e})`;if(a9e(e))return`@media ${e.raw}`;let t=(Array.isArray(e)?e:[e]).map(r=>[typeof r.min=="string"?`(min-width: ${r.min})`:null,typeof r.max=="string"?`(max-width: ${r.max})`:null].filter(Boolean).join(" and ")).join(", ");return t?`@media ${t}`:void 0}function lM(e){let t=0;for(let r=e.length-1;r>=0;r--){let n=e.charCodeAt(r);t+=+(n===123)-+(n===125)}return t}var Sf=Xt(NQ());function OQ(e,t){let r="<",n=">",s="\\",i="?",o={line:0,character:0},a=e.getText({start:{line:o.line,character:o.character},end:{line:t.start.line,character:t.start.character}});if(a.length>500&&(a=a.substr(a.length-500)),!a.trim())return!0;let c=!0,u=!1,H=a.length-1;if(a[H]===r)return!1;for(;H>=0;){let l=a[H];if(H--,!u&&/\s/.test(l)){u=!0;continue}if(l===i&&a[H]===r){H--;continue}if(/\s/.test(l)&&a[H]===r){H--;continue}if(!(l!==r&&l!==n)){if(H>=0&&a[H]===s){H--;continue}if(l===n){if(H>=0&&a[H]==="=")continue;break}if(l===r){c=!u;break}}}return c}function la(e,t){let r=typeof t=="number"?t.toString().length:8;return("0".repeat(r)+e).slice(-r)}function Gs(e,t){let r=0,n="https://tailwindcss-v0.netlify.app/docs/";Pr(e,"0.99.0")&&(r=1,n="https://v1.tailwindcss.com/docs/"),Pr(e,"1.99.0")&&(r=2,n="https://tailwindcss.com/docs/");let s=Array.isArray(t)?t[r]||t[t.length-1]:t;return`${n}${s}`}function TE(e,t){let r=e.variants.flatMap(o=>o.values.length?o.values.map(a=>a==="DEFAULT"?o.name:`${o.name}${o.hasDash?"-":""}${a}`):[o.name]),n=new Set,s=0,i=o9e(t,e.separator);if(i.length<2)return{variants:Array.from(n),offset:s};i=i.filter(Boolean);for(let o of i){if(r.includes(o)||e.jit&&(o.includes("[")&&o.endsWith("]")||o.includes("/"))&&aa(e,[`${o}${e.separator}[color:red]`]).rules.length>0){n.add(o),s+=o.length+e.separator.length;continue}break}return{variants:Array.from(n),offset:s}}function o9e(e,t){let r=[],n=[],s=0;for(let i=0;i<e.length;i++){let o=e[i];r.length===0&&o===t[0]&&(t.length===1||e.slice(i,i+t.length)===t)&&(n.push(e.slice(s,i)),s=i+t.length),o==="("||o==="["||o==="{"?r.push(o):(o===")"&&r[r.length-1]==="("||o==="]"&&r[r.length-1]==="["||o==="}"&&r[r.length-1]==="{")&&r.pop()}return n.push(e.slice(s)),n}var H9e=e=>Array.isArray(e.__info)?e.__info.some(t=>t.__source==="utilities"):e.__info.__source==="utilities";function tA(e,t,r,n,s,i){let o=t.split(/[\s+]/),a=o[o.length-1],c=e.separator,u=a.split(c),H,l=[],d=!1,f={...r,start:{...r.start,character:r.end.character-a.length}};if(e.v4){let S=function($){return{kind:9,data:{...e.completionItemData??{},_type:"variant"},command:$.insertTextFormat===2?void 0:{title:"",command:"editor.action.triggerSuggest"},sortText:"-"+la(I++),...$}},{variants:h,offset:m}=TE(e,a);if(i&&(i.triggerKind===1||i.triggerKind===2&&i.triggerCharacter==="/")&&a.includes("/")){let $,A=a.split("/").slice(0,-1).join("/"),T=A.slice(m);if($=e.classList.find(b=>Array.isArray(b)&&b[0]===T)?.[1]?.modifiers,$)return ua({isIncomplete:!1,items:$.map((b,P)=>{let x=`${A}/${b}`,v=Zs.CompletionItemKind.Constant,k,C=po(e,x);return C!==null&&(v=Zs.CompletionItemKind.Color,typeof C!="string"&&(C.alpha??1)!==0&&(k=jH(C))),{label:x,...k?{documentation:k}:{},kind:v,sortText:la(P)}})},{range:f,data:e.completionItemData},e.editor.capabilities.itemDefaults)}f.start.character+=m;let L=a.substr(m).endsWith("!");L&&(f.end.character-=1);let E=[],_=new Set,I=0;for(let $ of e.variants)if(!h.includes($.name)&&!_.has($.name)){if(_.add($.name),$.isArbitrary)E.push(S({label:`${$.name}${$.hasDash?"-":""}[]${c}`,insertTextFormat:2,textEditText:`${$.name}${$.hasDash?"-":""}[\${1}]${c}\${0}`}));else{let A=!Pr(e.version,"2.99.0"),T=[...h,$.name];if(A){let P=e.variants.map(({name:x})=>x);T=T.sort((x,v)=>P.indexOf(v)-P.indexOf(x))}let b=[];try{b=$.selectors()}catch(P){console.log("Error while trying to get selectors for variant"),console.log({variant:$,err:P})}if(b.length===0)continue;E.push(S({label:`${$.name}${c}`,detail:b.map(P=>uw(P,n)).join(", "),textEditText:T[T.length-1]+c,additionalTextEdits:A&&T.length>1?[{newText:T.slice(0,T.length-1).join(c)+c,range:{start:{...r.start,character:r.end.character-a.length},end:{...f.start,character:f.start.character}}}]:[]}))}for(let A of $.values??[]){if(h.includes(`${$.name}-${A}`)||_.has(`${$.name}-${A}`))continue;_.add(`${$.name}-${A}`);let T=[];try{T=$.selectors({value:A})}catch(b){console.log("Error while trying to get selectors for variant"),console.log({variant:$,err:b})}T.length!==0&&E.push(S({label:A==="DEFAULT"?`${$.name}${c}`:`${$.name}${$.hasDash?"-":""}${A}${c}`,detail:T.join(", ")}))}}return ua({isIncomplete:!1,items:E.concat(e.classList.reduce(($,[A,{color:T}],b)=>{if(e.blocklist?.includes([...h,A].join(e.separator)))return $;let P=T?Zs.CompletionItemKind.Color:Zs.CompletionItemKind.Constant,x;return T&&typeof T!="string"&&(x=jH(T)),$.push({label:A,kind:P,...x?{documentation:x}:{},sortText:la(b,e.classList.length)}),$},[]))},{data:{...e.completionItemData??{},...L?{important:L}:{},variants:h},range:f},e.editor.capabilities.itemDefaults)}if(e.jit){let{variants:h,offset:m}=TE(e,a);if(i&&(i.triggerKind===1||i.triggerKind===2&&i.triggerCharacter==="/")&&a.includes("/")){let I,S=a.split("/").slice(0,-1).join("/");if(e.classListContainsMetadata){let $=S.slice(m);I=e.classList.find(A=>Array.isArray(A)&&A[0]===$)?.[1]?.modifiers}else{let $=S+"/[0]",{rules:A}=aa(e,[$]);if(A.length>0){let T=(0,ka.default)(e.config,"theme.opacity",{});Wi(T)||(T={}),I=Object.keys(T)}}if(I)return ua({isIncomplete:!1,items:I.map(($,A)=>{let T=`${S}/${$}`,b=Zs.CompletionItemKind.Constant,P,x=po(e,T);return x!==null&&(b=Zs.CompletionItemKind.Color,typeof x!="string"&&(x.alpha??1)!==0&&(P=jH(x))),{label:T,...P?{documentation:P}:{},kind:b,sortText:la(A)}})},{range:f,data:e.completionItemData},e.editor.capabilities.itemDefaults)}f.start.character+=m;let L=a.substr(m).startsWith("!");L&&(f.start.character+=1);let E=[],_=new Set;if(!L){let S=function($){return{kind:9,data:{...e.completionItemData??{},_type:"variant"},command:$.insertTextFormat===2?void 0:{title:"",command:"editor.action.triggerSuggest"},sortText:"-"+la(I++),...$}},I=0;for(let $ of e.variants)if(!h.includes($.name)&&!_.has($.name)){if(_.add($.name),$.isArbitrary)E.push(S({label:`${$.name}${$.hasDash?"-":""}[]${c}`,insertTextFormat:2,textEditText:`${$.name}${$.hasDash?"-":""}[\${1}]${c}\${0}`}));else{let A=!Pr(e.version,"2.99.0"),T=[...h,$.name];if(A){let b=e.variants.map(({name:P})=>P);T=T.sort((P,x)=>b.indexOf(x)-b.indexOf(P))}E.push(S({label:`${$.name}${c}`,detail:$.selectors().map(b=>uw(b,n)).join(", "),textEditText:T[T.length-1]+c,additionalTextEdits:A&&T.length>1?[{newText:T.slice(0,T.length-1).join(c)+c,range:{start:{...r.start,character:r.end.character-a.length},end:{...f.start,character:f.start.character}}}]:[]}))}for(let A of $.values??[])h.includes(`${$.name}-${A}`)||_.has(`${$.name}-${A}`)||(_.add(`${$.name}-${A}`),E.push(S({label:A==="DEFAULT"?`${$.name}${c}`:`${$.name}${$.hasDash?"-":""}${A}${c}`,detail:$.selectors({value:A}).join(", ")})))}}return e.classList?ua({isIncomplete:!1,items:E.concat(e.classList.reduce((I,[S,{color:$}],A)=>{if(e.blocklist?.includes([...h,S].join(e.separator)))return I;let T=$?Zs.CompletionItemKind.Color:Zs.CompletionItemKind.Constant,b;return $&&typeof $!="string"&&(b=jH($)),I.push({label:S,kind:T,...b?{documentation:b}:{},sortText:la(A,e.classList.length)}),I},[]))},{data:{...e.completionItemData??{},...L?{important:L}:{},variants:h},range:f},e.editor.capabilities.itemDefaults):ua({isIncomplete:!1,items:E.concat(Object.keys(e.classNames.classNames).filter(I=>{let S=e.classNames.classNames[I];return h.length===0?S.__info:S.__info&&H9e(S)}).map((I,S,$)=>{let A=Zs.CompletionItemKind.Constant,T,b=po(e,I);return b!==null&&(A=Zs.CompletionItemKind.Color,typeof b!="string"&&(b.alpha??1)!==0&&(T=jH(b))),{label:I,kind:A,...T?{documentation:T}:{},sortText:la(S,$.length)}})).filter(I=>!(I===null||s&&!s(I)))},{range:f,data:{...e.completionItemData??{},variants:h,...L?{important:L}:{}}},e.editor.capabilities.itemDefaults)}for(let h=u.length-1;h>0;h--){let m=u.slice(0,h).filter(Boolean);if(H=(0,ka.default)(e.classNames.classNames,m),typeof H<"u"&&typeof(0,ka.default)(H,["__info","__rule"])>"u"){d=!0,l=m,f={...f,start:{...f.start,character:f.start.character+m.join(c).length+c.length}};break}}return ua({isIncomplete:!1,items:Object.keys(d?H:e.classNames.classNames).filter(h=>h!=="__info").filter(h=>A9e(e,[...l,h])).map((h,m,L)=>({label:h+c,kind:9,command:{title:"",command:"editor.action.triggerSuggest"},sortText:"-"+la(m,L.length),data:{...e.completionItemData??{},className:h,variants:l}})).concat(Object.keys(d?H:e.classNames.classNames).filter(h=>(0,ka.default)(e.classNames.classNames,[...l,h,"__info"])).map((h,m,L)=>{let E=Zs.CompletionItemKind.Constant,_,I=po(e,h);return I!==null&&(E=Zs.CompletionItemKind.Color,typeof I!="string"&&(I.alpha??1)!==0&&(_=jH(I))),{label:h,kind:E,..._?{documentation:_}:{},sortText:la(m,L.length)}})).filter(h=>!(h===null||s&&!s(h)))},{range:f,data:{...e.completionItemData??{},variants:l}},e.editor.capabilities.itemDefaults)}async function l9e(e,t,r,n){let s=t.getText({start:t.positionAt(Math.max(0,t.offsetAt(r)-2e3)),end:r}),i=(await e.editor.getConfiguration(t.uri)).tailwindCSS,o=nM(s,i.classAttributes);if(o.length===0)return null;let a=o[o.length-1],c=a[0][0]===":"||a[1].startsWith("[")&&a[1].endsWith("]")?UI():BI();c.reset(s.substr(a.index+a[0].length-1));try{let u=Array.from(c),H=u[u.length-1];if(H.type.startsWith("start")||H.type==="classlist"||H.type.startsWith("arb")){let l="";for(let d=u.length-1;d>=0&&(u[d].type==="classlist"||u[d].type.startsWith("arb"));d--)l=u[d].value+l;return tA(e,l,{start:{line:r.line,character:r.character-l.length},end:r},i.rootFontSize,void 0,n)}}catch{}return null}async function u9e(e,t,r,n){let s=await e.editor.getConfiguration(t.uri),i=s.tailwindCSS.experimental.classRegex;if(i.length===0)return null;let o=t.offsetAt(r),a=t.getText({start:t.positionAt(0),end:t.positionAt(o+2e3)});for(let c of WI({text:a,cursor:o,filters:i}))return tA(e,c.classList,{start:{line:r.line,character:r.character-c.classList.length},end:r},s.tailwindCSS.rootFontSize,void 0,n);return null}function c9e(e,t,r,n){if(!Ks(e,t,r))return null;let s=Ni(t,"css",{start:{line:0,character:0},end:r});if(!s.endsWith("-"))return null;let i=s.lastIndexOf("@theme");if(i===-1||lM(s.slice(i))!==1)return null;function o(c){return{label:c,kind:Zs.CompletionItemKind.Variable}}function a(c){return{label:`${c}-`,kind:Zs.CompletionItemKind.Variable}}return ua({isIncomplete:!1,items:[o("--default-transition-duration"),o("--default-transition-timing-function"),o("--default-font-family"),o("--default-font-feature-settings"),o("--default-font-variation-settings"),o("--default-mono-font-family"),o("--default-mono-font-feature-settings"),o("--default-mono-font-variation-settings"),a("--breakpoint"),a("--color"),a("--animate"),a("--blur"),a("--radius"),a("--shadow"),a("--inset-shadow"),a("--drop-shadow"),a("--spacing"),a("--width"),a("--font-family"),a("--font-size"),a("--letter-spacing"),a("--line-height"),a("--transition-timing-function")]},{data:{...e.completionItemData??{}}},e.editor.capabilities.itemDefaults)}async function p9e(e,t,r,n){let s=(await e.editor.getConfiguration(t.uri)).tailwindCSS,i=t.getText({start:{line:Math.max(r.line-30,0),character:0},end:r}),o=hQ(/@apply\s+(?<classList>[^;}]*)$/gi,i);if(o===null)return null;let a=o.groups.classList;return tA(e,a,{start:{line:r.line,character:r.character-a.length},end:r},s.rootFontSize,c=>{if(c.kind===9)return Pr(e.version,"2.0.0-alpha.1")||YI(e,"applyComplexClasses");let u=c.data?.variants??[],H=c.data?.className??c.label,l=Ku(e,[...u,H]);return l!==null&&l.isApplyable===!0},n)}var d9e=/^(\d+\.?|\d*\.\d+)$/;function RQ(e){return d9e.test(e)}async function f9e(e,t,r,n){return Ks(e,t,r)?p9e(e,t,r,n):vE(e,t,r)||bE(e,t,r)?l9e(e,t,r,n):null}function h9e(e,t,r){if(!Ks(e,t,r))return null;let n=t.getText({start:{line:r.line,character:0},end:{line:r.line,character:r.character+1}}),s=n.substr(0,n.length-1).match(/[\s:;/*(){}](?<helper>config|theme)\(\s*['"]?(?<path>[^)'"]*)$/);if(s===null)return null;let i,o=s.groups.path.replace(/^['"]+/g,""),a=o.match(/^([^\s]+)(?![^\[]*\])(?:\s*\/\s*([^\/\s]*))$/);if(a&&(o=a[1],i=a[2]),i!==void 0)return null;let c=s.groups.helper==="config"?e.config:(0,ka.default)(e.config,"theme",{}),u=o.split(/([\[\].]+)/),H=u.filter((E,_)=>_%2===0),l=u.filter((E,_)=>_%2!==0);function d(E){return E.reduce((_,I)=>_+I.length,0)}let f,h=H[H.length-1].length,m=l.length?l[l.length-1]:null;if(H.length===1)f=c;else for(let E=H.length-1;E>0;E--){let _=(0,ka.default)(c,H.slice(0,E));if(Wi(_)){f=_,h=d(u.slice(E*2)),m=l[E-1];break}}if(!f)return null;let L={start:{line:r.line,character:r.character-h},end:r};return ua({isIncomplete:!1,items:Object.keys(f).sort((E,_)=>{let I=RQ(E),S=RQ(_);return I&&!S?-1:!I&&S?1:I&&S?parseFloat(E)-parseFloat(_):0}).map((E,_,I)=>{let S=yf(f[E]),$=E.indexOf(".")!==-1&&m&&m.endsWith("."),A=n.charAt(n.length-1)!=="]"&&($||m&&m.endsWith("[")),T=wI(f[E]);return{label:E,sortText:la(_,I.length),commitCharacters:[!E.includes(".")&&".",!E.includes("[")&&"["].filter(Boolean),kind:S?16:Wi(f[E])?9:10,detail:T==="0"||T==="transparent"?`${T} `:T,...S&&typeof S!="string"&&(S.alpha??1)!==0?{documentation:jH(S)}:{},...A?{textEditText:`${E}]`}:{},additionalTextEdits:$?[{newText:"[",range:{start:{...L.start,character:L.start.character-1},end:L.start}}]:[]}})},{range:L,data:{...e.completionItemData??{},_type:"helper"}},e.editor.capabilities.itemDefaults)}function m9e(e,t,r){if(!Ks(e,t,r))return null;let s=t.getText({start:{line:r.line,character:0},end:r}).match(/^\s*@tailwind\s+(?<partial>[^\s]*)$/i);if(s===null)return null;let i=[Pr(e.version,"1.0.0-beta.1")?{label:"base",documentation:{kind:"markdown",value:`This injects Tailwind\u2019s base styles and any base styles registered by plugins.
2880
2880
 
@@ -2915,9 +2915,9 @@ If omitted, Tailwind will append these classes to the very end of your styleshee
2915
2915
  `,{origin:0}),s=[];r.forEach(a=>{let c=n.toIndex(a.start.line,a.start.character),u=n.toIndex(a.end.line,a.end.character);for(let H=c-1;H>=0&&/\s/.test(e.charAt(H));H--)c=H;s.push({start:c,end:u})}),s.sort((a,c)=>a.start-c.start);let i="",o=0;return s.forEach(a=>{i+=e.substring(o,a.start),o=a.end}),i+=e.substring(o),i.trim()}async function tee(e,t,r){return[{title:`Delete ${vf(r.otherClassNames.map(n=>`'${n.className}'`))}`,kind:"quickfix",diagnostics:[r],edit:{changes:{[t.textDocument.uri]:[{range:r.className.classList.range,newText:iA(r.className.classList.classList,r.otherClassNames.map(n=>n.relativeRange))}]}}}]}var lee=Xt(Ds());var uee=Xt(nee());var iee=/\s*!important\s*$/i,C9e={"box-flex":!0,"box-flex-group":!0,"column-count":!0,flex:!0,"flex-grow":!0,"flex-positive":!0,"flex-shrink":!0,"flex-negative":!0,"font-weight":!0,"line-clamp":!0,"line-height":!0,opacity:!0,order:!0,orphans:!0,"tab-size":!0,widows:!0,"z-index":!0,zoom:!0,"fill-opacity":!0,"stroke-dashoffset":!0,"stroke-opacity":!0,"stroke-width":!0};function w9e(e){return e.replace(/([A-Z])/g,"-$1").replace(/^ms-/,"-ms-").toLowerCase()}function see(e,t,r,n){r===!1||r===null||(t=w9e(t),typeof r=="number"&&(r===0||C9e[t]?r=r.toString():r=r.toString()+"px"),t==="css-float"&&(t="float"),iee.test(r)?(r=r.replace(iee,""),e.push(n.decl({prop:t,value:r,important:!0}))):e.push(n.decl({prop:t,value:r})))}function aee(e,t,r,n){var s=n.atRule({name:t[1],params:t[3]||""});typeof r=="object"&&(s.nodes=[],pM(r,s,n)),e.push(s)}function pM(e,t,r){var n,s,i,o;for(n in e)if(e.hasOwnProperty(n)){if(s=e[n],s===null||typeof s>"u")continue;if(n[0]==="@"){var a=n.match(/@([^\s]+)(\s+([\w\W]*)\s*)?/);if(Array.isArray(s))for(o=0;o<s.length;o++)aee(t,a,s[o],r);else aee(t,a,s,r)}else if(Array.isArray(s))for(o=0;o<s.length;o++)see(t,n,s[o],r);else typeof s=="object"?(i=r.rule({selector:n}),pM(s,i,r),t.push(i)):see(t,n,s,r)}}function oee(e,t){var r=t.root();return pM(e,r,t),r}var dM=Xt(c0());async function cee(e,t,r){if(!t)return[];let n=Ni(t,"css"),s,i=n,{postcss:o}=e.modules,a=[],c=r.className.classList.classList.split(/\s+/).length,u=r.className.className,H=BH(e,u),l=(0,lee.default)(e.classNames.classNames,H);if(Array.isArray(l))return[];if(!Ha(e,t)){let d=Xi(e,t);if(!d)return[];if(s=d.filter(f=>f.type==="css").find(({range:f})=>hp(r.range.start,f))?.range,!s)return[];i=Ni(t,"css",s)}try{await o.module([o.module.plugin("",(d={})=>f=>{f.walkRules(h=>{if(a.length)return!1;h.walkAtRules("apply",m=>{let L=Hee(m.source);if(s&&(L=aH(L,s)),!hp(r.range.start,L))return;let E=k9e(e,H,h.selector,r.className.classList.important);if(!E)return!1;h.after(E.nodes);let _=h.next();if(!_)return!1;c===1?m.remove():a.push({range:r.className.classList.range,newText:iA(r.className.classList.classList,r.className.relativeRange)});let I=Hee(h.source);s&&(I=aH(I,s));let S,$=(0,uee.default)(i);return a.push({range:I,newText:h.toString()+(_.raws.before||`
2916
2916
 
2917
2917
  `)+_.toString().replace(/\n\s*\n/g,`
2918
- `).replace(/(@apply [^;\n]+)$/gm,"$1;").replace(/([^\s^]){$/gm,"$1 {").replace(/^\s+/gm,A=>(typeof S>"u"&&(S=A),A.replace(new RegExp(S,"g"),$.indent))).replace(/^(\s+)(.*?[^{}]\n)([^\s}])/gm,"$1$2$1$3")}),!1})})})]).process(i,{from:void 0})}catch{return[]}return a.length?[{title:"Extract to new rule",kind:"quickfix",diagnostics:[r],edit:{changes:{[t.uri]:a}}}]:[]}function Hee(e){return{start:{line:e.start.line-1,character:e.start.column-1},end:{line:e.end.line-1,character:e.end.column}}}function k9e(e,t,r,n=!1){let s=t[t.length-1],i=Ku(e,[s]);if(i===null||i.isApplyable===!1)return null;let o=_p(e,t);if(Array.isArray(o))return null;let a=o.context,c=o.pseudo,u=e.classNames.context,H=[];for(let f=0;f<t.length-1;f++){let h=t[f],m=u[h];if(!m)return null;e.screens.includes(h)&&(H.push(`@screen ${h}`),a=a.filter(L=>!m.includes(L)))}H.push(...a);let l={};for(let f=1;f<=H.length;f++)$a(l,H.slice(0,f),{});if(r=M9e(r,c),r===null)return null;let d={[r]:{[`@apply ${s}${n?" !important":""}`]:""}};return H.length?$a(l,H,d):l=d,oee(l,e.modules.postcss)}function M9e(e,t){if(t.length===0)return e;let r=!0,n=(0,dM.default)(s=>{ul(s.split(i=>!0)).forEach(i=>{for(let o=i.nodes.length-1;o>=0&&i.nodes[o].type==="pseudo";o--)if(t.includes(i.nodes[o].value)){r=!1;break}r&&t.forEach(o=>{i.append(dM.default.pseudo({value:o}))})})}).processSync(e);return r?n:null}function pee(e,t,r){return r.suggestions.map(n=>({title:`Replace with '${n}'`,kind:"quickfix",diagnostics:[r],edit:{changes:{[t.textDocument.uri]:[{range:r.range,newText:n}]}}}))}async function N9e(e,t,r,n){if(!r)return[];let s=await rA(e,r,n);return t.context.diagnostics.map(i=>s.find(o=>o.code===i.code&&o.message===i.message&&Xy(o.range,i.range))).filter(Boolean)}async function dee(e,t,r){if(!e.enabled)return[];let n=await N9e(e,t,r,t.context.diagnostics.map(s=>s.code).filter(Boolean));return Promise.all(n.map(s=>AQ(s)?cee(e,r,s):IQ(s)?tee(e,t,s):vQ(s)||TQ(s)||bQ(s)||SQ(s)||PQ(s)?pee(e,t,s):[])).then(ul).then(s=>G4(s,i=>JSON.stringify(i.edit)))}var fee=Xt(Ds());async function hee(e,t){let r=[];return!e.enabled||(await e.editor.getConfiguration(t.uri)).tailwindCSS.colorDecorators===!1?r:((await If(e,t)).forEach(o=>{qu(o,e.blocklist).forEach(c=>{let u=po(e,c.className);u===null||typeof u=="string"||(u.alpha??1)===0||r.push({range:c.range,color:Jk(u)})})}),KI(e,t).forEach(o=>{let a=QI(o.path),c=o.helper==="theme"?["theme"]:[],u=(0,fee.default)(e.config,[...c,...a]),H=yf(u);H&&typeof H!="string"&&(H.alpha??1)!==0&&r.push({range:o.ranges.path,color:Jk(H)})}),zp(r))}function mee(e,t,r){return O9e(e,t,r)}function O9e(e,t,r){if(!Pr(e.version,"3.2.0"))return[];let n=[],s=[];if(Ha(e,t))s.push(void 0);else{let i=Xi(e,t);if(!i)return[];s.push(...i.filter(o=>o.type==="css").map(({range:o})=>o))}for(let i of s){let o=Ni(t,"css",i),a=fo(/@config\s*(?<path>'[^']+'|"[^"]+")/g,o);for(let c of a)n.push({target:r(c.groups.path.slice(1,-1)),range:aH({start:ei(o,c.index+c[0].length-c.groups.path.length),end:ei(o,c.index+c[0].length)},i)})}return n}var nde=Xt(Eee());var PE=Xt(require("fs")),Tf=Xt(require("path"));var R9e=[".js",".cjs",".mjs"],F9e=["",".js",".cjs",".mjs",".ts",".cts",".mts",".jsx",".tsx"],B9e=["",".ts",".cts",".mts",".tsx",".js",".cjs",".mjs",".jsx"];function U9e(e,t){for(let r of t){let n=`${e}${r}`;if(PE.default.existsSync(n)&&PE.default.statSync(n).isFile())return n}for(let r of t){let n=`${e}/index${r}`;if(PE.default.existsSync(n))return n}return null}function*yee(e,t,r,n=Tf.default.extname(e)){let s=U9e(Tf.default.resolve(t,e),R9e.includes(n)?F9e:B9e);if(s===null||r.has(s))return;r.add(s),yield s,t=Tf.default.dirname(s),n=Tf.default.extname(s);let i=PE.default.readFileSync(s,"utf-8");for(let o of[...i.matchAll(/import[\s\S]*?['"](.{3,}?)['"]/gi),...i.matchAll(/import[\s\S]*from[\s\S]*?['"](.{3,}?)['"]/gi),...i.matchAll(/require\(['"`](.+)['"`]\)/gi)])o[1].startsWith(".")&&(yield*yee(o[1],t,r,n))}function sA(e){return Array.from(yee(e,Tf.default.dirname(e),new Set)).filter(t=>t!==e).map(t=>$s(ts(t)))}var py=Xt(require("assert"));var ide=Xt(ck());function $E(e){let t=[];return Pr(e,"4.0.0-alpha.1")?["css-at-theme","layer:base","content-list"]:e.startsWith("0.0.0-oxide")?["css-at-theme","layer:base","content-list"]:(Pr(e,"0.99.0")?(t.push("layer:base"),t.push("separator:root")):(t.push("layer:preflight"),t.push("separator:options")),Pr(e,"1.4.0")&&YL(e,"1.99.0")&&t.push("browserslist-in-plugins"),Pr(e,"3.0.0")||(Pr(e,"1.99.0")?t.push("apply-complex-classes"):Pr(e,"1.7.0")&&t.push("apply-complex-classes:flagged")),Pr(e,"3.0.0")?t.push("content-list"):t.push("purge-list"),Pr(e,"3.0.0")?t.push("jit"):Pr(e,"2.1.0"),Pr(e,"3.2.0")&&(t.push("css-at-config"),t.push("relative-content-paths")),Pr(e,"3.3.0")&&t.push("transpiled-configs"),t)}var vte=Xt(Ste());var q8e=sg({extensions:[".css"],mainFields:["style"],conditionNames:["style"]}),K8e=sH([(0,vte.default)({resolve(e,t){let r=q8e.resolveSync({},t,e);return r||e}})]);function pA(){return K8e}var G8e=/@import\s*(?:'tailwindcss'|"tailwindcss")/,Z8e=/@theme\s*\{/;async function z8e(e){return Z8e.test(e)||G8e.test(e)}async function TM(e,t,r){if(!e.__unstable__loadDesignSystem||!z8e(r))return null;let n=await pA().process(r,{from:t}),s=e.__unstable__loadDesignSystem(n.css);return Object.assign(s,{compile(i){let o=s.candidatesToCss(i),a=[],c=o.map(u=>{if(u===null)return sH.root();try{return sH.parse(u.trimEnd())}catch(H){return a.push(H),sH.root()}});return a.length>0&&console.error(JSON.stringify(a)),c},toCss(i){return Array.isArray(i)?sH.root({nodes:i}).toString().trim():i.toString().trim()}}),s}var Tte=require("node:fs/promises");async function Lp(e){try{let t=await(0,Tte.readFile)(e,"utf8");return Ni(t,"css")}catch{return null}}var zpe=Object.keys(ide.default);function Jpe(e,t){return JSON.stringify([e,...t].map(r=>[r,Fp.statSync(r).mtimeMs]))}function sde(e){if(typeof e.mode<"u")return e.mode;if(Array.isArray(e.presets))for(let t=e.presets.length-1;t>=0;t--){let r=sde(e.presets[t]);if(typeof r<"u")return r}}function ade(e){if(delete e.mode,Array.isArray(e.presets))for(let t of e.presets)ade(t)}function xS(e,t){let r,n=kn.dirname(e),s=[e,n];if(n===t)return s;for(;n=kn.dirname(r=n),r!==n;)if(s.push(n),n===t)break;return s}async function ode(e,t,r,n,s,i,o,a,c,u,H,l){let d=!1,f=t.folder,h=[],m=t.documentSelector,L=n.capabilities.textDocument?.completion?.completionList?.itemDefaults??[];n.clientInfo?.name?.includes("Visual Studio Code")&&!L.includes("data")&&L.push("data");let E={enabled:!1,completionItemData:{_projectKey:e},editor:{connection:r,folder:f,userLanguages:l,capabilities:{configuration:!0,diagnosticRelatedInformation:!0,itemDefaults:L},getConfiguration:H,getDocumentSymbols:P=>r.sendRequest("@/tailwindCSS/getDocumentSymbols",{uri:P}),async readDirectory(P,x){try{x=kn.resolve(kn.dirname(nA(P.uri)),x);let v=await Fp.promises.readdir(x,{withFileTypes:!0});return(await Promise.all(v.map(async C=>{let M=C.isDirectory();return await Zu(E,P,kn.join(x,C.name,M?"/":""))?null:[C.name,{isDirectory:M}]}))).filter(C=>C!==null)}catch{return[]}}}};if(t.configPath&&t.config.source==="js"){let P=[];try{P=sA(t.configPath)}catch{}c([...xS(t.configPath,t.folder),...P.flatMap(x=>xS(x,t.folder))])}function _(...P){console.log(`[${kn.relative(t.folder,t.configPath)}] ${P.join(" ")}`)}function I(P){let x=!1,v=!1,k=(0,ede.default)(`**/${Id}`,{dot:!0});for(let C of P){let M=$s(ts(C.file)),N=bd(M,[t.configPath]),F=bd(M,E.dependencies??[]),j=k(M);if(!(!N&&!F&&!j)){if(!d){!t.isUserConfigured&&t.configPath&&(N||F)&&(m=[...m.filter(({priority:V})=>V!==1),...Qpe(t.configPath,u,t.folder)],o());continue}if(C.type===CS.FileChangeType.Created){_("File created:",C.file),x=!0;break}else if(C.type===CS.FileChangeType.Changed)if(_("File changed:",C.file),!E.enabled||j){x=!0;break}else v=!0;else if(C.type===CS.FileChangeType.Deleted)if(_("File deleted:",C.file),!E.enabled||N||j){x=!0;break}else v=!0}}x?$():v&&A()}function S(){Object.keys(E).forEach(P=>{P!=="editor"&&P!=="dependencies"&&delete E[P]}),E.enabled=!1,a(),i(),r.sendNotification("@/tailwindCSS/projectReset")}async function $(){if(d)try{await T(),r.sendNotification("@/tailwindCSS/projectInitialized")}catch(P){S(),w$(r,P)}}async function A(){if(d)try{await b()}catch(P){S(),w$(r,P)}}async function T(){_("Initializing..."),gm();let P=t.configPath;if(!P)throw new fL("No config file found.");c(xS(P,t.folder));let x=_c.default.sync(Q=>{let oe=kn.join(Q,".pnp.js");if(_c.default.sync.exists(oe)||(oe=kn.join(Q,".pnp.cjs"),_c.default.sync.exists(oe)))return oe;if(Q===kn.normalize(f))return _c.default.stop},{cwd:f});if(x){let Q=require(x);Q.setup(),Z5(Q)}let v=t.config.source==="js"?sA(P):[],k=Jpe(P,v),C=kn.dirname(P),M,N,F,j,V,Z,K,X,te,Y,W,U={future:[],experimental:[]},q;try{let Q=qr(C,"tailwindcss"),oe=qr(C,"tailwindcss/package.json"),le=kn.dirname(oe);V=require(oe).version;let me=$E(V);if(_(`supported features: ${JSON.stringify(me)}`),Q=uL(Q).href,M=await import(Q),M=M.default??M,_(`Loaded tailwindcss v${V}: ${le}`),me.includes("css-at-theme"))return E.configPath=P,E.version=V,E.isCssConfig=!0,E.v4=!0,E.jit=!0,E.modules={tailwindcss:{version:V,module:M},postcss:{version:null,module:null},resolveConfig:{module:null},loadConfig:{module:null}},A();if(t.config.source==="css"){_("CSS-based configuration is not supported before Tailwind CSS v4"),E.enabled=!1,d=!1;return}let ve=qr(le,"postcss"),Ne=qr(le,"postcss/package.json"),We=kn.dirname(Ne),he=qr(le,"postcss-selector-parser");if(Z=require(Ne).version,K=Object.keys(jL).map(ue=>{try{return require(qr(C,`${ue}/package.json`)).version}catch{return""}}).join(","),E.enabled&&Z===E.modules.postcss.version&&V===E.modules.tailwindcss.version&&K===E.pluginVersions&&P===E.configPath&&k===E.configId)return;_(`Loaded Tailwind CSS config file: ${P}`),N=require(ve),F=require(he),_(`Loaded postcss v${Z}: ${We}`);try{te=require(qr(le,"./resolveConfig.js"))}catch{try{let B=require(qr(le,"./lib/util/resolveConfig.js")),Le=require(qr(le,"./stubs/defaultConfig.stub.js"));te=Me=>B([Me,Le])}catch{try{let Le=require(qr(le,"./lib/util/mergeConfigWithDefaults.js")),Me=require(qr(le,"./defaultConfig.js"));te=_e=>Le.default(_e,Me())}catch{throw Error("Failed to load resolveConfig function.")}}}try{let ue=require(qr(le,"./lib/util/transformThemeValue.js"));Y=ue.default??ue}catch{}try{W=require(qr(le,"./loadConfig.js"))}catch{}if(Pr(V,"1.4.0")&&YL(V,"1.99.0")){let ue=qr(le,"browserslist");X=require(ue)(void 0,{path:f})}Pr(V,"1.99.0")?q=x$(()=>require(qr(le,"./lib/lib/substituteClassApplyAtRules"))):Pr(V,"1.7.0")&&(q=require(qr(le,"./lib/flagged/applyComplexClasses")));try{U=require(qr(le,"./lib/featureFlags.js")).default}catch{}let Ee=new Set,xe=N.root(),Ce={opts:{},messages:[]},Xe=()=>{};try{let ue=lL(()=>{let B=require(qr(C,"tailwindcss/lib/lib/setupContextUtils")).createContext;return py.default.strictEqual(typeof B,"function"),Le=>B(Le.config)},()=>{let B=require(qr(C,"tailwindcss/lib/jit/lib/setupContextUtils")).createContext;return py.default.strictEqual(typeof B,"function"),Le=>B(Le.config)},()=>{let B=require(qr(C,"tailwindcss/lib/jit/lib/setupTrackingContext")).default;return py.default.strictEqual(typeof B,"function"),Le=>B(Le.configPath,Ee,Xe)(Ce,xe)},()=>{let B=require(qr(C,"tailwindcss/lib/jit/lib/setupContext")).default;return py.default.strictEqual(typeof B,"function"),Le=>B(Le.configPath,Ee)(Ce,xe)});j={generateRules:{module:lL(()=>require(qr(C,"tailwindcss/lib/lib/generateRules")).generateRules,()=>require(qr(C,"tailwindcss/lib/jit/lib/generateRules")).generateRules)},createContext:{module:ue},expandApplyAtRules:{module:lL(()=>require(qr(C,"tailwindcss/lib/lib/expandApplyAtRules")).default,()=>require(qr(C,"tailwindcss/lib/jit/lib/expandApplyAtRules")).default)},evaluateTailwindFunctions:{module:x$(()=>require(qr(C,"tailwindcss/lib/lib/evaluateTailwindFunctions")).default)}}}catch{try{let B=require(qr(C,"tailwindcss/jit/lib/setupContext"));j={generateRules:{module:require(qr(C,"tailwindcss/jit/lib/generateRules")).generateRules},createContext:{module:Le=>B(Le.configPath,Ee)(Ce,xe)},expandApplyAtRules:{module:require(qr(C,"tailwindcss/jit/lib/expandApplyAtRules"))}}}catch{}}}catch(Q){let oe=await import("node:util");console.error(oe.format(Q)),M=Xpe(),te=Bx(),Y=Cf().default,W=Gpe(),N=oa(),V=T1().version,Z=Zpe().version,F=c0(),j={generateRules:{module:$1().generateRules},createContext:{module:le=>Rf().createContext(le.config)},expandApplyAtRules:{module:Q8().default}},_("Failed to load workspace modules."),_(`Using bundled version of \`tailwindcss\`: v${V}`),_(`Using bundled version of \`postcss\`: v${Z}`)}E.configPath=P,E.modules={tailwindcss:{version:V,module:M},postcss:{version:Z,module:N},postcssSelectorParser:{module:F},resolveConfig:{module:te},loadConfig:{module:W},transformThemeValue:{module:Y},jit:j},E.browserslist=X,E.featureFlags=U,E.version=V,E.pluginVersions=K;try{E.corePlugins=Object.keys(require(qr(kn.dirname(E.configPath),"tailwindcss/lib/plugins/index.js")))}catch{}if(q&&!q.default.__patched){let Q=q.default;q.default=(oe,...le)=>{if(E.jit)return E.modules.jit.expandApplyAtRules.module(E.jitContext);let me=xu(oe);me.separator=typeof E.separator>"u"?":":E.separator;let ve=Q(me,...le);return async Ne=>(Ne.walkRules(We=>{let he=We.selector.replace(/__TWSEP__(.*?)__TWSEP__/g,"$1");he!==We.selector&&(We.before(N.comment({text:"__ORIGINAL_SELECTOR__:"+We.selector})),We.selector=he)}),await ve(Ne),Ne.walkComments(We=>{We.text.startsWith("__ORIGINAL_SELECTOR__:")&&(We.next().selector=We.text.replace(/^__ORIGINAL_SELECTOR__:/,""),We.remove())}),Ne)},q.default.__patched=!0}await A()}async function b(){_("Building..."),gm();let{tailwindcss:P,postcss:x,resolveConfig:v,loadConfig:k}=E.modules,C=Pr(P.version,"0.99.0")?["separator"]:["options","separator"],M=[],N,F=Pr(P.version,"2.99.0"),j;if(E.isCssConfig)try{let K=await Lp(E.configPath),X=await TM(E.modules.tailwindcss.module,E.configPath,K);E.designSystem=X,N={theme:{}}}catch{d=!1,E.enabled=!1;return}else if(k.module){j=new Rd(Fp.realpathSync(E.configPath));try{N=await k.module(E.configPath),N=N.default??N,E.jit=!0}finally{j.unhook()}}else{j=new Rd(Fp.realpathSync(E.configPath),K=>{N=xu(K);let X=(0,_H.default)(K,C);typeof X!="string"&&(X=":"),$a(K,C,`__TWSEP__${X}__TWSEP__`),K[F?"content":"purge"]=[];let te=sde(K);if(ade(K),F||E.modules.jit&&te==="jit"){if(E.jit=!0,K.variants=[],Array.isArray(K.presets))for(let W of K.presets)M.push(W.variants),W.variants=[]}else E.jit=!1;if(E.corePlugins){let W={};for(let U of E.corePlugins)W[U]=!0;K.corePlugins=W}return Array.isArray(K.plugins)&&(K.plugins=K.plugins.map(W=>{if(W.__isOptionsFunction&&(W=W()),typeof W=="function"){let U=(...q)=>(q[0].matchUtilities||(q[0].matchUtilities=()=>{}),W(...q));return U.__intellisense_cache_bust=Math.random(),U}return W.handler?{...W,handler:(...U)=>(U[0].matchUtilities||(U[0].matchUtilities=()=>{}),W.handler(...U)),__intellisense_cache_bust:Math.random()}:W})),K});try{t.config.source==="js"&&require(E.configPath)}catch(K){throw j.unhook(),K}}if(!N)throw new fL(`Failed to load config file: ${E.configPath}`);t.isUserConfigured||(m=[...m.filter(({priority:K})=>K!==1),...Qpe(E.configPath,P.version,t.folder,N)]);try{if(E.config=E.isCssConfig?N:v.module(N),E.separator=(0,_H.default)(E.config,C),typeof E.separator!="string"&&(E.separator=":"),E.blocklist=Array.isArray(E.config.blocklist)?E.config.blocklist:[],delete E.config.blocklist,E.v4){let K=E.designSystem.getClassList();E.classList=K.map(X=>[X[0],{...X[1],color:po(E,X[0])}])}else if(E.jit){if(E.jitContext=E.modules.jit.createContext.module(E),E.jitContext.tailwindConfig.separator=E.config.separator,E.jitContext.getClassList){let K=E.jitContext.getClassList({includeMetadata:!0}).filter(X=>X!=="*");E.classListContainsMetadata=K.some(X=>Array.isArray(X)),E.classList=K.map(X=>Array.isArray(X)?[X[0],{color:po(E,X[0]),...X[1]??{}}]:[X,{color:po(E,X)}])}}else delete E.jitContext,delete E.classList}catch(K){throw j?.unhook(),K}let V;if(E.classList)j?.unhook();else try{V=await x.module([P.module(E.configPath)]).process([Pr(P.version,"0.99.0")?"base":"preflight","components","utilities"].map(K=>`/*__tw_intellisense_layer_${K}__*/
2918
+ `).replace(/(@apply [^;\n]+)$/gm,"$1;").replace(/([^\s^]){$/gm,"$1 {").replace(/^\s+/gm,A=>(typeof S>"u"&&(S=A),A.replace(new RegExp(S,"g"),$.indent))).replace(/^(\s+)(.*?[^{}]\n)([^\s}])/gm,"$1$2$1$3")}),!1})})})]).process(i,{from:void 0})}catch{return[]}return a.length?[{title:"Extract to new rule",kind:"quickfix",diagnostics:[r],edit:{changes:{[t.uri]:a}}}]:[]}function Hee(e){return{start:{line:e.start.line-1,character:e.start.column-1},end:{line:e.end.line-1,character:e.end.column}}}function k9e(e,t,r,n=!1){let s=t[t.length-1],i=Ku(e,[s]);if(i===null||i.isApplyable===!1)return null;let o=_p(e,t);if(Array.isArray(o))return null;let a=o.context,c=o.pseudo,u=e.classNames.context,H=[];for(let f=0;f<t.length-1;f++){let h=t[f],m=u[h];if(!m)return null;e.screens.includes(h)&&(H.push(`@screen ${h}`),a=a.filter(L=>!m.includes(L)))}H.push(...a);let l={};for(let f=1;f<=H.length;f++)$a(l,H.slice(0,f),{});if(r=M9e(r,c),r===null)return null;let d={[r]:{[`@apply ${s}${n?" !important":""}`]:""}};return H.length?$a(l,H,d):l=d,oee(l,e.modules.postcss)}function M9e(e,t){if(t.length===0)return e;let r=!0,n=(0,dM.default)(s=>{ul(s.split(i=>!0)).forEach(i=>{for(let o=i.nodes.length-1;o>=0&&i.nodes[o].type==="pseudo";o--)if(t.includes(i.nodes[o].value)){r=!1;break}r&&t.forEach(o=>{i.append(dM.default.pseudo({value:o}))})})}).processSync(e);return r?n:null}function pee(e,t,r){return r.suggestions.map(n=>({title:`Replace with '${n}'`,kind:"quickfix",diagnostics:[r],edit:{changes:{[t.textDocument.uri]:[{range:r.range,newText:n}]}}}))}async function N9e(e,t,r,n){if(!r)return[];let s=await rA(e,r,n);return t.context.diagnostics.map(i=>s.find(o=>o.code===i.code&&o.message===i.message&&Xy(o.range,i.range))).filter(Boolean)}async function dee(e,t,r){if(!e.enabled)return[];let n=await N9e(e,t,r,t.context.diagnostics.map(s=>s.code).filter(Boolean));return Promise.all(n.map(s=>AQ(s)?cee(e,r,s):IQ(s)?tee(e,t,s):vQ(s)||TQ(s)||bQ(s)||SQ(s)||PQ(s)?pee(e,t,s):[])).then(ul).then(s=>G4(s,i=>JSON.stringify(i.edit)))}var fee=Xt(Ds());async function hee(e,t){let r=[];return!e.enabled||(await e.editor.getConfiguration(t.uri)).tailwindCSS.colorDecorators===!1?r:((await If(e,t)).forEach(o=>{qu(o,e.blocklist).forEach(c=>{let u=po(e,c.className);u===null||typeof u=="string"||(u.alpha??1)===0||r.push({range:c.range,color:Jk(u)})})}),KI(e,t).forEach(o=>{let a=QI(o.path),c=o.helper==="theme"?["theme"]:[],u=(0,fee.default)(e.config,[...c,...a]),H=yf(u);H&&typeof H!="string"&&(H.alpha??1)!==0&&r.push({range:o.ranges.path,color:Jk(H)})}),zp(r))}function mee(e,t,r){return O9e(e,t,r)}function O9e(e,t,r){if(!Pr(e.version,"3.2.0"))return[];let n=[],s=[];if(Ha(e,t))s.push(void 0);else{let i=Xi(e,t);if(!i)return[];s.push(...i.filter(o=>o.type==="css").map(({range:o})=>o))}for(let i of s){let o=Ni(t,"css",i),a=fo(/@config\s*(?<path>'[^']+'|"[^"]+")/g,o);for(let c of a)n.push({target:r(c.groups.path.slice(1,-1)),range:aH({start:ei(o,c.index+c[0].length-c.groups.path.length),end:ei(o,c.index+c[0].length)},i)})}return n}var nde=Xt(Eee());var PE=Xt(require("fs")),Tf=Xt(require("path"));var R9e=[".js",".cjs",".mjs"],F9e=["",".js",".cjs",".mjs",".ts",".cts",".mts",".jsx",".tsx"],B9e=["",".ts",".cts",".mts",".tsx",".js",".cjs",".mjs",".jsx"];function U9e(e,t){for(let r of t){let n=`${e}${r}`;if(PE.default.existsSync(n)&&PE.default.statSync(n).isFile())return n}for(let r of t){let n=`${e}/index${r}`;if(PE.default.existsSync(n))return n}return null}function*yee(e,t,r,n=Tf.default.extname(e)){let s=U9e(Tf.default.resolve(t,e),R9e.includes(n)?F9e:B9e);if(s===null||r.has(s))return;r.add(s),yield s,t=Tf.default.dirname(s),n=Tf.default.extname(s);let i=PE.default.readFileSync(s,"utf-8");for(let o of[...i.matchAll(/import[\s\S]*?['"](.{3,}?)['"]/gi),...i.matchAll(/import[\s\S]*from[\s\S]*?['"](.{3,}?)['"]/gi),...i.matchAll(/require\(['"`](.+)['"`]\)/gi)])o[1].startsWith(".")&&(yield*yee(o[1],t,r,n))}function sA(e){return Array.from(yee(e,Tf.default.dirname(e),new Set)).filter(t=>t!==e).map(t=>$s(ts(t)))}var py=Xt(require("assert"));var ide=Xt(ck());function $E(e){let t=[],r=e.startsWith("0.0.0-insiders");return!r&&Pr(e,"4.0.0-alpha.1")?["css-at-theme","layer:base","content-list"]:!r&&e.startsWith("0.0.0-oxide")?["css-at-theme","layer:base","content-list"]:(Pr(e,"0.99.0")?(t.push("layer:base"),t.push("separator:root")):(t.push("layer:preflight"),t.push("separator:options")),Pr(e,"1.4.0")&&YL(e,"1.99.0")&&t.push("browserslist-in-plugins"),Pr(e,"3.0.0")||(Pr(e,"1.99.0")?t.push("apply-complex-classes"):Pr(e,"1.7.0")&&t.push("apply-complex-classes:flagged")),Pr(e,"3.0.0")?t.push("content-list"):t.push("purge-list"),Pr(e,"3.0.0")?t.push("jit"):Pr(e,"2.1.0"),Pr(e,"3.2.0")&&(t.push("css-at-config"),t.push("relative-content-paths")),Pr(e,"3.3.0")&&t.push("transpiled-configs"),t)}var vte=Xt(Ste());var q8e=sg({extensions:[".css"],mainFields:["style"],conditionNames:["style"]}),K8e=sH([(0,vte.default)({resolve(e,t){let r=q8e.resolveSync({},t,e);return r||e}})]);function pA(){return K8e}var G8e=/@import\s*(?:'tailwindcss'|"tailwindcss")/,Z8e=/@theme\s*\{/;async function z8e(e){return Z8e.test(e)||G8e.test(e)}async function TM(e,t,r){if(!e.__unstable__loadDesignSystem||!z8e(r))return null;let n=await pA().process(r,{from:t}),s=e.__unstable__loadDesignSystem(n.css);return Object.assign(s,{compile(i){let o=s.candidatesToCss(i),a=[],c=o.map(u=>{if(u===null)return sH.root();try{return sH.parse(u.trimEnd())}catch(H){return a.push(H),sH.root()}});return a.length>0&&console.error(JSON.stringify(a)),c},toCss(i){return Array.isArray(i)?sH.root({nodes:i}).toString().trim():i.toString().trim()}}),s}var Tte=require("node:fs/promises");async function Lp(e){try{let t=await(0,Tte.readFile)(e,"utf8");return Ni(t,"css")}catch{return null}}var zpe=Object.keys(ide.default);function Jpe(e,t){return JSON.stringify([e,...t].map(r=>[r,Fp.statSync(r).mtimeMs]))}function sde(e){if(typeof e.mode<"u")return e.mode;if(Array.isArray(e.presets))for(let t=e.presets.length-1;t>=0;t--){let r=sde(e.presets[t]);if(typeof r<"u")return r}}function ade(e){if(delete e.mode,Array.isArray(e.presets))for(let t of e.presets)ade(t)}function xS(e,t){let r,n=kn.dirname(e),s=[e,n];if(n===t)return s;for(;n=kn.dirname(r=n),r!==n;)if(s.push(n),n===t)break;return s}async function ode(e,t,r,n,s,i,o,a,c,u,H,l){let d=!1,f=t.folder,h=[],m=t.documentSelector,L=n.capabilities.textDocument?.completion?.completionList?.itemDefaults??[];n.clientInfo?.name?.includes("Visual Studio Code")&&!L.includes("data")&&L.push("data");let E={enabled:!1,completionItemData:{_projectKey:e},editor:{connection:r,folder:f,userLanguages:l,capabilities:{configuration:!0,diagnosticRelatedInformation:!0,itemDefaults:L},getConfiguration:H,getDocumentSymbols:P=>r.sendRequest("@/tailwindCSS/getDocumentSymbols",{uri:P}),async readDirectory(P,x){try{x=kn.resolve(kn.dirname(nA(P.uri)),x);let v=await Fp.promises.readdir(x,{withFileTypes:!0});return(await Promise.all(v.map(async C=>{let M=C.isDirectory();return await Zu(E,P,kn.join(x,C.name,M?"/":""))?null:[C.name,{isDirectory:M}]}))).filter(C=>C!==null)}catch{return[]}}}};if(t.configPath&&t.config.source==="js"){let P=[];try{P=sA(t.configPath)}catch{}c([...xS(t.configPath,t.folder),...P.flatMap(x=>xS(x,t.folder))])}function _(...P){console.log(`[${kn.relative(t.folder,t.configPath)}] ${P.join(" ")}`)}function I(P){let x=!1,v=!1,k=(0,ede.default)(`**/${Id}`,{dot:!0});for(let C of P){let M=$s(ts(C.file)),N=bd(M,[t.configPath]),F=bd(M,E.dependencies??[]),j=k(M);if(!(!N&&!F&&!j)){if(!d){!t.isUserConfigured&&t.configPath&&(N||F)&&(m=[...m.filter(({priority:V})=>V!==1),...Qpe(t.configPath,u,t.folder)],o());continue}if(C.type===CS.FileChangeType.Created){_("File created:",C.file),x=!0;break}else if(C.type===CS.FileChangeType.Changed)if(_("File changed:",C.file),!E.enabled||j){x=!0;break}else v=!0;else if(C.type===CS.FileChangeType.Deleted)if(_("File deleted:",C.file),!E.enabled||N||j){x=!0;break}else v=!0}}x?$():v&&A()}function S(){Object.keys(E).forEach(P=>{P!=="editor"&&P!=="dependencies"&&delete E[P]}),E.enabled=!1,a(),i(),r.sendNotification("@/tailwindCSS/projectReset")}async function $(){if(d)try{await T(),r.sendNotification("@/tailwindCSS/projectInitialized")}catch(P){S(),w$(r,P)}}async function A(){if(d)try{await b()}catch(P){S(),w$(r,P)}}async function T(){_("Initializing..."),gm();let P=t.configPath;if(!P)throw new fL("No config file found.");c(xS(P,t.folder));let x=_c.default.sync(Q=>{let oe=kn.join(Q,".pnp.js");if(_c.default.sync.exists(oe)||(oe=kn.join(Q,".pnp.cjs"),_c.default.sync.exists(oe)))return oe;if(Q===kn.normalize(f))return _c.default.stop},{cwd:f});if(x){let Q=require(x);Q.setup(),Z5(Q)}let v=t.config.source==="js"?sA(P):[],k=Jpe(P,v),C=kn.dirname(P),M,N,F,j,V,Z,K,X,te,Y,W,U={future:[],experimental:[]},q;try{let Q=qr(C,"tailwindcss"),oe=qr(C,"tailwindcss/package.json"),le=kn.dirname(oe);V=require(oe).version;let me=$E(V);if(_(`supported features: ${JSON.stringify(me)}`),Q=uL(Q).href,M=await import(Q),M=M.default??M,_(`Loaded tailwindcss v${V}: ${le}`),me.includes("css-at-theme"))return E.configPath=P,E.version=V,E.isCssConfig=!0,E.v4=!0,E.jit=!0,E.modules={tailwindcss:{version:V,module:M},postcss:{version:null,module:null},resolveConfig:{module:null},loadConfig:{module:null}},A();if(t.config.source==="css"){_("CSS-based configuration is not supported before Tailwind CSS v4"),E.enabled=!1,d=!1;return}let ve=qr(le,"postcss"),Ne=qr(le,"postcss/package.json"),We=kn.dirname(Ne),he=qr(le,"postcss-selector-parser");if(Z=require(Ne).version,K=Object.keys(jL).map(ue=>{try{return require(qr(C,`${ue}/package.json`)).version}catch{return""}}).join(","),E.enabled&&Z===E.modules.postcss.version&&V===E.modules.tailwindcss.version&&K===E.pluginVersions&&P===E.configPath&&k===E.configId)return;_(`Loaded Tailwind CSS config file: ${P}`),N=require(ve),F=require(he),_(`Loaded postcss v${Z}: ${We}`);try{te=require(qr(le,"./resolveConfig.js"))}catch{try{let B=require(qr(le,"./lib/util/resolveConfig.js")),Le=require(qr(le,"./stubs/defaultConfig.stub.js"));te=Me=>B([Me,Le])}catch{try{let Le=require(qr(le,"./lib/util/mergeConfigWithDefaults.js")),Me=require(qr(le,"./defaultConfig.js"));te=_e=>Le.default(_e,Me())}catch{throw Error("Failed to load resolveConfig function.")}}}try{let ue=require(qr(le,"./lib/util/transformThemeValue.js"));Y=ue.default??ue}catch{}try{W=require(qr(le,"./loadConfig.js"))}catch{}if(Pr(V,"1.4.0")&&YL(V,"1.99.0")){let ue=qr(le,"browserslist");X=require(ue)(void 0,{path:f})}Pr(V,"1.99.0")?q=x$(()=>require(qr(le,"./lib/lib/substituteClassApplyAtRules"))):Pr(V,"1.7.0")&&(q=require(qr(le,"./lib/flagged/applyComplexClasses")));try{U=require(qr(le,"./lib/featureFlags.js")).default}catch{}let Ee=new Set,xe=N.root(),Ce={opts:{},messages:[]},Xe=()=>{};try{let ue=lL(()=>{let B=require(qr(C,"tailwindcss/lib/lib/setupContextUtils")).createContext;return py.default.strictEqual(typeof B,"function"),Le=>B(Le.config)},()=>{let B=require(qr(C,"tailwindcss/lib/jit/lib/setupContextUtils")).createContext;return py.default.strictEqual(typeof B,"function"),Le=>B(Le.config)},()=>{let B=require(qr(C,"tailwindcss/lib/jit/lib/setupTrackingContext")).default;return py.default.strictEqual(typeof B,"function"),Le=>B(Le.configPath,Ee,Xe)(Ce,xe)},()=>{let B=require(qr(C,"tailwindcss/lib/jit/lib/setupContext")).default;return py.default.strictEqual(typeof B,"function"),Le=>B(Le.configPath,Ee)(Ce,xe)});j={generateRules:{module:lL(()=>require(qr(C,"tailwindcss/lib/lib/generateRules")).generateRules,()=>require(qr(C,"tailwindcss/lib/jit/lib/generateRules")).generateRules)},createContext:{module:ue},expandApplyAtRules:{module:lL(()=>require(qr(C,"tailwindcss/lib/lib/expandApplyAtRules")).default,()=>require(qr(C,"tailwindcss/lib/jit/lib/expandApplyAtRules")).default)},evaluateTailwindFunctions:{module:x$(()=>require(qr(C,"tailwindcss/lib/lib/evaluateTailwindFunctions")).default)}}}catch{try{let B=require(qr(C,"tailwindcss/jit/lib/setupContext"));j={generateRules:{module:require(qr(C,"tailwindcss/jit/lib/generateRules")).generateRules},createContext:{module:Le=>B(Le.configPath,Ee)(Ce,xe)},expandApplyAtRules:{module:require(qr(C,"tailwindcss/jit/lib/expandApplyAtRules"))}}}catch{}}}catch(Q){let oe=await import("node:util");console.error(oe.format(Q)),M=Xpe(),te=Bx(),Y=Cf().default,W=Gpe(),N=oa(),V=T1().version,Z=Zpe().version,F=c0(),j={generateRules:{module:$1().generateRules},createContext:{module:le=>Rf().createContext(le.config)},expandApplyAtRules:{module:Q8().default}},_("Failed to load workspace modules."),_(`Using bundled version of \`tailwindcss\`: v${V}`),_(`Using bundled version of \`postcss\`: v${Z}`)}E.configPath=P,E.modules={tailwindcss:{version:V,module:M},postcss:{version:Z,module:N},postcssSelectorParser:{module:F},resolveConfig:{module:te},loadConfig:{module:W},transformThemeValue:{module:Y},jit:j},E.browserslist=X,E.featureFlags=U,E.version=V,E.pluginVersions=K;try{E.corePlugins=Object.keys(require(qr(kn.dirname(E.configPath),"tailwindcss/lib/plugins/index.js")))}catch{}if(q&&!q.default.__patched){let Q=q.default;q.default=(oe,...le)=>{if(E.jit)return E.modules.jit.expandApplyAtRules.module(E.jitContext);let me=xu(oe);me.separator=typeof E.separator>"u"?":":E.separator;let ve=Q(me,...le);return async Ne=>(Ne.walkRules(We=>{let he=We.selector.replace(/__TWSEP__(.*?)__TWSEP__/g,"$1");he!==We.selector&&(We.before(N.comment({text:"__ORIGINAL_SELECTOR__:"+We.selector})),We.selector=he)}),await ve(Ne),Ne.walkComments(We=>{We.text.startsWith("__ORIGINAL_SELECTOR__:")&&(We.next().selector=We.text.replace(/^__ORIGINAL_SELECTOR__:/,""),We.remove())}),Ne)},q.default.__patched=!0}await A()}async function b(){_("Building..."),gm();let{tailwindcss:P,postcss:x,resolveConfig:v,loadConfig:k}=E.modules,C=Pr(P.version,"0.99.0")?["separator"]:["options","separator"],M=[],N,F=Pr(P.version,"2.99.0"),j;if(E.isCssConfig)try{let K=await Lp(E.configPath),X=await TM(E.modules.tailwindcss.module,E.configPath,K);E.designSystem=X,N={theme:{}}}catch{d=!1,E.enabled=!1;return}else if(k.module){j=new Rd(Fp.realpathSync(E.configPath));try{N=await k.module(E.configPath),N=N.default??N,E.jit=!0}finally{j.unhook()}}else{j=new Rd(Fp.realpathSync(E.configPath),K=>{N=xu(K);let X=(0,_H.default)(K,C);typeof X!="string"&&(X=":"),$a(K,C,`__TWSEP__${X}__TWSEP__`),K[F?"content":"purge"]=[];let te=sde(K);if(ade(K),F||E.modules.jit&&te==="jit"){if(E.jit=!0,K.variants=[],Array.isArray(K.presets))for(let W of K.presets)M.push(W.variants),W.variants=[]}else E.jit=!1;if(E.corePlugins){let W={};for(let U of E.corePlugins)W[U]=!0;K.corePlugins=W}return Array.isArray(K.plugins)&&(K.plugins=K.plugins.map(W=>{if(W.__isOptionsFunction&&(W=W()),typeof W=="function"){let U=(...q)=>(q[0].matchUtilities||(q[0].matchUtilities=()=>{}),W(...q));return U.__intellisense_cache_bust=Math.random(),U}return W.handler?{...W,handler:(...U)=>(U[0].matchUtilities||(U[0].matchUtilities=()=>{}),W.handler(...U)),__intellisense_cache_bust:Math.random()}:W})),K});try{t.config.source==="js"&&require(E.configPath)}catch(K){throw j.unhook(),K}}if(!N)throw new fL(`Failed to load config file: ${E.configPath}`);t.isUserConfigured||(m=[...m.filter(({priority:K})=>K!==1),...Qpe(E.configPath,P.version,t.folder,N)]);try{if(E.config=E.isCssConfig?N:v.module(N),E.separator=(0,_H.default)(E.config,C),typeof E.separator!="string"&&(E.separator=":"),E.blocklist=Array.isArray(E.config.blocklist)?E.config.blocklist:[],delete E.config.blocklist,E.v4){let K=E.designSystem.getClassList();E.classList=K.map(X=>[X[0],{...X[1],color:po(E,X[0])}])}else if(E.jit){if(E.jitContext=E.modules.jit.createContext.module(E),E.jitContext.tailwindConfig.separator=E.config.separator,E.jitContext.getClassList){let K=E.jitContext.getClassList({includeMetadata:!0}).filter(X=>X!=="*");E.classListContainsMetadata=K.some(X=>Array.isArray(X)),E.classList=K.map(X=>Array.isArray(X)?[X[0],{color:po(E,X[0]),...X[1]??{}}]:[X,{color:po(E,X)}])}}else delete E.jitContext,delete E.classList}catch(K){throw j?.unhook(),K}let V;if(E.classList)j?.unhook();else try{V=await x.module([P.module(E.configPath)]).process([Pr(P.version,"0.99.0")?"base":"preflight","components","utilities"].map(K=>`/*__tw_intellisense_layer_${K}__*/
2919
2919
  @tailwind ${K};`).join(`
2920
- `),{from:void 0})}catch(K){throw K}finally{j?.unhook()}E.dependencies=sA(E.configPath),c((E.dependencies??[]).flatMap(K=>xS(K,t.folder))),E.configId=Jpe(E.configPath,E.dependencies),E.plugins=await Eat(N),V&&(E.classNames=await FG(V.root)),E.variants=_at(E);let Z=(0,_H.default)(E.config,"theme.screens",(0,_H.default)(E.config,"screens",{}));E.screens=Go(Z)?Object.keys(Z):[],E.enabled=!0,a(),i()}return{projectConfig:t,enabled(){return d},enable(){d=!0},async reload(){if(!E.v4)return;console.log("---- RELOADING DESIGN SYSTEM ----");let P=await Lp(E.configPath),x=await TM(E.modules.tailwindcss.module,E.configPath,P),v=Object.create(E,{designSystem:{value:x}}),k=x.getClassList().map(C=>[C[0],{...C[1],color:po(v,C[0])}]);E.designSystem=x,E.classList=k,console.log("---- RELOADED ----")},state:E,documentSelector(){return m},tryInit:$,async dispose(){E={enabled:!1};for(let P of h)(await P).dispose()},async onUpdateSettings(P){E.enabled&&a(),P.editor?.colorDecorators?i():r.sendNotification("@/tailwindCSS/clearColors")},onFileEvents:I,async onHover(P){return Ad(async()=>{if(!E.enabled)return null;let x=s.getDocument(P.textDocument.uri);return!x||!(await E.editor.getConfiguration(x.uri)).tailwindCSS.hovers||await Zu(E,x)?null:wQ(E,x,P.position)},null)},async onCompletion(P){return Ad(async()=>{if(!E.enabled)return null;let x=s.getDocument(P.textDocument.uri);return!x||!(await E.editor.getConfiguration(x.uri)).tailwindCSS.suggestions||await Zu(E,x)?null:FQ(E,x,P.position,P.context)},null)},onCompletionResolve(P){return Ad(()=>E.enabled?BQ(E,P):null,null)},async onCodeAction(P){return Ad(async()=>{if(!E.enabled)return null;let x=s.getDocument(P.textDocument.uri);return!x||!(await E.editor.getConfiguration(x.uri)).tailwindCSS.codeActions?null:dee(E,P,x)},null)},onDocumentLinks(P){if(!E.enabled)return null;let x=s.getDocument(P.textDocument.uri);return x?mee(E,x,v=>AF.URI.file(kn.resolve(kn.dirname(AF.URI.parse(x.uri).fsPath),v)).toString()):null},provideDiagnostics:(0,nde.debounce)(P=>{E.enabled&&cM(E,P)},n.initializationOptions?.testMode?0:500),provideDiagnosticsForce:P=>{E.enabled&&cM(E,P)},async onDocumentColor(P){return Ad(async()=>{if(!E.enabled)return[];let x=s.getDocument(P.textDocument.uri);return x?await Zu(E,x)?null:hee(E,x):[]},null)},async onColorPresentation(P){let x=s.getDocument(P.textDocument.uri);if(!x)return[];let v=x.getText(P.range),k=v.match(new RegExp(`-\\[(${zpe.join("|")}|(?:(?:#|rgba?\\(|hsla?\\())[^\\]]+)\\]$`,"i"));if(k===null)return[];let C=k[1],M=zpe.includes(C),N={mode:"rgb",r:P.color.red,g:P.color.green,b:P.color.blue,alpha:P.color.alpha},F=eE(N);if(!M&&(C.length===4||C.length===5)){let[,...V]=F.match(/^#([a-f\d])\1([a-f\d])\2([a-f\d])\3(?:([a-f\d])\4)?$/i)??[];V.length&&(F=`#${V.filter(Boolean).join("")}`)}F.length===5?F=F.replace(/f$/,""):F.length===9&&(F=F.replace(/ff$/,""));let j=v.substr(0,k.index);return[F,af(N).replace(/ /g,""),ak(N).replace(/ /g,"").replace(/\d+\.\d+(%?)/g,(V,Z)=>`${Math.round(parseFloat(V))}${Z}`)].map(V=>({label:`${j}-[${V}]`}))},sortClassLists(P){return E.jit?P.map(x=>{let v="",k=x.split(/(\s+)/),C=k.filter((F,j)=>j%2===0),M=k.filter((F,j)=>j%2!==0);C[C.length-1]===""&&C.pop();let N;E.v4?N=E.designSystem.getClassOrder(C):E.jitContext.getClassOrder?N=E.jitContext.getClassOrder(C):N=fat(E,C),C=N.sort(([,F],[,j])=>F===j?0:F===null?-1:j===null?1:of(F-j)).map(([F])=>F);for(let F=0;F<C.length;F++)v+=`${C[F]}${M[F]??""}`;return v}):P}}}function Ype(e,t){let r=e.config.prefix;return typeof r=="function"?r(t):r+t}function fat(e,t){let r=new Set([Ype(e,"group"),Ype(e,"peer")]),n=[];for(let s of t){let i=e.modules.jit.generateRules.module(new Set([s]),e.jitContext).sort(([o],[a])=>of(a-o))[0]?.[0]??null;i===null&&r.has(s)&&(i=e.jitContext.layerOrder.components),n.push([s,i])}return n}function hat(e,t,r={}){let n=t.config,s=t.modules.postcss.module,i=t.browserslist,o=i&&i.includes("ie 11")?"ie11":"relaxed",a=typeof e=="function"?e:e.handler;try{a({addUtilities:()=>{},addComponents:()=>{},addBase:()=>{},matchUtilities:()=>{},addVariant:()=>{},e:c=>c,prefix:c=>c,theme:(c,u)=>(0,_H.default)(n,`theme.${c}`,u),variants:()=>[],config:(c,u)=>(0,_H.default)(n,c,u),corePlugins:c=>Array.isArray(n.corePlugins)?n.corePlugins.includes(c):(0,_H.default)(n,`corePlugins.${c}`,!0),target:c=>{if(typeof n.target=="string")return n.target==="browserslist"?o:n.target;let[u,H]=(0,_H.default)(n,"target"),l=(0,_H.default)(H,c,u);return l==="browserslist"?o:l},postcss:s,...r})}catch{}}function mat(e){return e.type==="atrule"}function _at(e){if(e.v4)return e.designSystem.getVariants();if(e.jitContext?.getVariants)return e.jitContext.getVariants();if(e.jit){let i=[];return Array.from(e.jitContext.variantMap).forEach(([o,a])=>{i.push({name:o,values:[],isArbitrary:!1,hasDash:!0,selectors:()=>{function c(L){let E=e.modules.postcssSelectorParser.module.className();return E.value=L,(0,_H.default)(E,"raws.value",E.value)}let u=(Array.isArray(a[0])?a:[a]).map(([L,E])=>E),H="__variant_placeholder__",l=e.modules.postcss.module.root({nodes:[e.modules.postcss.module.rule({selector:`.${c(H)}`,nodes:[]})]}),d=e.modules.postcssSelectorParser.module(L=>L.first.filter(({type:E})=>E==="class").pop().value);function f(L){return d.transformSync(L)}function h(L){return l.each(E=>{E.type==="rule"&&(E.selectors=E.selectors.map(_=>L({get className(){return f(_)},selector:_})))}),l}let m=[];for(let L of u){let E,_=l.clone(),I=H6(()=>L({container:_,separator:e.separator,modifySelectors:h,format:S=>{E=S.replace(/:merge\(([^)]+)\)/g,"$1")},wrap:S=>{mat(S)&&(E=`@${S.name} ${S.params}`)}}));if(E||(E=I),E){m.push(E);continue}_.walkDecls(S=>{S.remove()}),E=_.toString().replace(`.${c(`${o}:${H}`)}`,"&").replace(/(?<!\\)[{}]/g,"").replace(/\s*\n\s*/g," ").trim(),E.includes(H)||m.push(E)}return m}})}),i}let t=e.config,r=e.modules.tailwindcss.version,n=["responsive","hover"];return Pr(r,"0.3.0")&&n.push("focus","group-hover"),Pr(r,"0.5.0")&&n.push("active"),Pr(r,"0.7.0")&&n.push("focus-within"),Pr(r,"1.0.0-beta.1")&&n.push("default"),Pr(r,"1.1.0")&&n.push("first","last","odd","even","disabled","visited"),Pr(r,"1.3.0")&&n.push("group-focus"),Pr(r,"1.5.0")&&n.push("focus-visible","checked"),Pr(r,"1.6.0")&&n.push("motion-safe","motion-reduce"),Pr(r,"2.0.0-alpha.1")&&n.push("dark"),(Array.isArray(t.plugins)?t.plugins:[]).forEach(i=>{hat(i,e,{addVariant:o=>{n.push(o)}})}),n.map(i=>({name:i,values:[],isArbitrary:!1,hasDash:!0,selectors:()=>[]}))}async function Eat(e){let t=e.plugins;return Array.isArray(t)?Promise.all(t.map(async r=>{let n=r.config;Go(n)||(n={});let s={theme:Go(n.theme)?Object.keys(n.theme):[],variants:Go(n.variants)?Object.keys(n.variants):[]},i=r.handler||r,o=typeof i.name=="string"&&i.name!=="handler"&&i.name!==""?i.name:null;try{i()}catch(a){let c=rde.default.parse(a);if(c.length===0)return{name:o};let u=c[0].fileName,H=kn.dirname(u);if(!tde.default.sync({cwd:H}))return{name:o};let d;try{d=require(d)}catch{return{name:o}}if(d.name&&kn.resolve(H,d.main||"index.js")===u)return{name:d.name,homepage:d.homepage,contributes:s}}return{name:o}})):[]}function yat(e,t){try{let r=_c.default.sync(n=>{let s=kn.join(n,"package.json");if(_c.default.sync.exists(s))return s;if(n===kn.normalize(t))return _c.default.stop},{cwd:e});return r?kn.dirname(r):t}catch{return t}}function Qpe(e,t,r,n){let s=n??require(e),i=s.content?.files??s.content,o=Array.isArray(i)?i:[],a=Pr(t,"3.2.0")?s.future?.relativeContentPathsByDefault||s.content?.relative:!1,c;return a?c=kn.dirname(e):c=yat(kn.dirname(e),r),o.filter(u=>typeof u=="string").map(u=>u.startsWith("!")?`!${kn.resolve(c,u.slice(1))}`:kn.resolve(c,u)).map(u=>({pattern:$s(ts(u)),priority:1}))}var pde=Xt(cde());function wat(){return{editor:{tabSize:2},tailwindCSS:{emmetCompletions:!1,classAttributes:["class","className","ngClass","class:list"],codeActions:!0,hovers:!0,suggestions:!0,validate:!0,colorDecorators:!0,rootFontSize:16,lint:{cssConflict:"warning",invalidApply:"error",invalidScreen:"error",invalidVariant:"error",invalidConfigPath:"error",invalidTailwindDirective:"error",recommendedVariantOrder:"warning"},showPixelEquivalents:!0,includeLanguages:{},files:{exclude:["**/.git/**","**/node_modules/**","**/.hg/**","**/.svn/**"]},experimental:{classRegex:[],configFile:null}}}}function dde(e){let t=new Map;async function r(s){let i=t.get(s);return i||(i=await n(s),t.set(s,i)),i}async function n(s){let[i,o]=await Promise.all([e.workspace.getConfiguration({section:"editor",scopeUri:s}),e.workspace.getConfiguration({section:"tailwindCSS",scopeUri:s})]);return i=Go(i)?i:{},o=Go(o)?o:{},(0,pde.default)(wat(),{editor:i,tailwindCSS:o},{arrayMerge:(a,c,u)=>c})}return{get:r,clear(){t.clear()}}}var Yde=Xt(require("node:os")),os=Xt(require("node:path")),Qde=Xt(require("node:fs/promises")),efe=Xt(Jde()),tfe=Xt(ym());var FS=class{constructor(){this.parents=new Map;this.children=new Map;this.nodes=new Map}add(t,r){return this.nodes.has(t)?this.nodes.get(t):(this.nodes.set(t,r),this.parents.set(t,new Set),this.children.set(t,new Set),r)}connect(t,r){let n=this.children.get(t);if(!n)throw new Error(`Node ${t} does not exist`);let s=this.parents.get(r);if(!s)throw new Error(`Node ${r} does not exist`);s.add(t),n.add(r)}*descendants(t){let r=[],n=new Set;for(let s of this.children.get(t))r.push(s);for(;r.length>0;){let s=r.shift();if(!n.has(s)){yield this.nodes.get(s),n.add(s);for(let i of this.children.get(s))r.push(i)}}}*roots(){for(let[t,r]of this.parents)r.size===0&&(yield this.nodes.get(t))}*leaves(){for(let[t,r]of this.children)r.size===0&&(yield this.nodes.get(t))}};var BS=class extends Map{remember(t,r){let n=super.get(t);return n||(n=r(t),this.set(t,n)),n}};var US=Xt(F$()),bh=Xt(require("node:path"));async function o4(e,t){async function r(n){let s=bh.join(n,"package.json");if(await US.default.exists(s))return s;if(n===bh.normalize(t))return US.default.stop}try{let n=await(0,US.default)(r,{cwd:e});return n?bh.dirname(n):t}catch{return t}}var jS=class{constructor(t,r){this.base=t;this.settings=r}async search(){let t=await this.findConfigs(),r=await Promise.allSettled(t.map(s=>this.createProject(s))),n=[];for(let s of r)s.status==="rejected"?console.error(`[GLOBAL] Error creating project: ${s.reason}`):s.status==="fulfilled"&&s.value&&n.push(s.value);n.length===1&&n[0].documentSelector.push({pattern:ts(os.join(this.base,"**")),priority:5});for(let s of n){s.folder=$s(s.folder),s.configPath=$s(s.configPath),s.config.path=$s(s.config.path);for(let i of s.config.entries)i.path=$s(i.path);for(let i of s.documentSelector)i.pattern=$s(i.pattern)}return n}async loadAllFromWorkspace(t){return Promise.all(t.map(r=>this.loadFromWorkspace(r[0],r[1])))}async loadFromWorkspace(t,r){let n={type:"js",path:t,source:"js",entries:[],content:[],packageRoot:""},s=await this.detectTailwindVersion(n);return n.packageRoot=await o4(os.dirname(n.path),this.base),{config:n,folder:this.base,isUserConfigured:!0,configPath:n.path,documentSelector:r.map(i=>({priority:0,pattern:i})),tailwind:s}}async createProject(t){let r=await this.detectTailwindVersion(t);if(console.log(JSON.stringify({tailwind:r})),t.type==="js"&&t.source==="css"&&(r.isDefaultVersion||!r.features.includes("css-at-config"))||t.type==="css"&&!r.features.includes("css-at-theme")||t.type==="js"&&r.features.includes("css-at-theme")||t.type==="js"&&(t.path.endsWith(".ts")||t.path.endsWith(".mjs"))&&!r.features.includes("transpiled-configs"))return null;t.packageRoot=await o4(os.dirname(t.path),this.base);let n=[];for(let s of t.entries)s.type==="css"&&n.push({pattern:s.path,priority:0});n.push({pattern:t.path,priority:0});for await(let s of sHt(t,r.features))n.push(s);for(let s of t.entries)s.type==="css"&&n.push({pattern:ts(os.join(os.dirname(s.path),"**")),priority:2});return n.push({pattern:ts(os.join(os.dirname(t.path),"**")),priority:3}),n.push({pattern:ts(os.join(t.packageRoot,"**")),priority:4}),n.sort((s,i)=>s.priority-i.priority),n=n.filter(({pattern:s},i,o)=>o.findIndex(({pattern:a})=>a===s)===i),{config:t,folder:this.base,isUserConfigured:!1,configPath:t.path,documentSelector:n,tailwind:r}}async findConfigs(){let t=await(0,efe.default)([`**/${Ld}`,`**/${Au}`],{cwd:this.base,ignore:this.settings.tailwindCSS.files.exclude,onlyFiles:!0,absolute:!0,suppressErrors:!0,dot:!0,concurrency:Math.max(Yde.cpus().length,1)});t=await Promise.all(t.map(async l=>{let d=await Qde.realpath(l);return d.startsWith("\\")&&process.platform==="win32"?ts(l):ts(d)})),t=Array.from(new Set(t)).sort();let r=new BS,n=(0,tfe.default)(`**/${Au}`,{dot:!0}),s=t.map(l=>n(l)?new fy("css",l):new fy("js",l,[r.remember(l,()=>({source:"js",type:"js",path:l,entries:[],packageRoot:null,content:[]}))])),i=s.filter(l=>l.type==="css");await Promise.all(i.map(l=>l.read()));let o=[];for(let l of i){if(!l.content)continue;let d=l.configPathInCss();if(d){l.content=null,l.configs.push(r.remember(d,()=>({source:"css",type:"js",path:d,entries:[],packageRoot:null,content:[]})));continue}if(l.isMaybeTailwindRelated()){o.push(l);continue}}await Promise.all(o.map(l=>l.resolveImports()));let a=new FS,c=null,u=null,H=null;for(let l of o){a.add(l.path,l);for(let d of l.deps){let f=ts(d.file);a.add(f,new fy("css",f)),a.connect(l.path,f)}l.path.includes("node_modules/tailwindcss/index.css")?c=l.path:l.path.includes("node_modules/tailwindcss/theme.css")?u=l.path:l.path.includes("node_modules/tailwindcss/utilities.css")&&(H=l.path)}c&&u&&a.connect(c,u),c&&H&&a.connect(c,H);for(let l of a.roots()){let d=r.remember(l.path,()=>({source:"css",type:"css",path:l.path,entries:[],packageRoot:null,content:[{kind:"auto"}]}));l.configs.push(d);for(let f of a.descendants(l.path))f.configs.push(d)}for(let l of s)for(let d of l.configs)d.entries.push(l);return Array.from(r.values())}async detectTailwindVersion(t){try{let s=qr(os.dirname(t.path),"tailwindcss/package.json"),{version:i}=require(s),o=$E(i);if(typeof i=="string")return{version:i,features:o,isDefaultVersion:!1}}catch{}let{version:r}=T1(),n=$E(r);return{version:r,features:n,isDefaultVersion:!0}}};function sHt(e,t,r){if(e.type==="css")return oHt(e);if(e.type==="js")return aHt(e,t,r)}async function*aHt(e,t,r){let n;try{n=r??require(e.path)}catch{return}let s=n.content?.files??n.content,i=Array.isArray(s)?s:[],a=(t.includes("relative-content-paths")?n.future?.relativeContentPathsByDefault||n.content?.relative:!1)?os.dirname(e.path):e.packageRoot;for(let c of i){if(typeof c!="string")continue;let u=c.startsWith("!")?`!${os.resolve(a,c.slice(1))}`:os.resolve(a,c);yield{pattern:ts(u),priority:1}}}async function*oHt(e){let t=!1;for(let r of e.content)if(r.kind==="file")yield{pattern:ts(r.file),priority:1};else if(r.kind==="auto"&&!t){t=!0;for await(let n of HHt(e.packageRoot))yield{pattern:n,priority:1}}}async function*HHt(e){try{let t=qr(os.dirname(e),"@tailwindcss/oxide");t=uL(t).href;let r=await import(t);if(!r.scanDir)return;let{files:n,globs:s}=r.scanDir({base:e,globs:!0});for(let i of n)yield ts(i);for(let{base:i,glob:o}of s)yield ts(i)+"/"+o}catch{}}var fy=class{constructor(t,r,n=[]){this.type=t;this.path=r;this.configs=n;this.deps=[]}async read(){try{this.content=await Lp(this.path)}catch{this.content=null}}async resolveImports(){try{let t=await pA().process(this.content,{from:this.path});this.deps=t.messages.filter(r=>r.type==="dependency"),this.content=t.css}catch{}}configPathInCss(){if(!this.content)return null;let t=this.content.match(/@config\s*(?<config>'[^']+'|"[^"]+")/);return t?ts(os.resolve(os.dirname(this.path),t.groups.config.slice(1,-1))):null}isMaybeTailwindRelated(){if(!this.content)return!1;let t=/@import\s*(?<config>'[^']+'|"[^"]+");/,r=/@tailwind\s*[^;]+;/,n=/@theme\s*\{/;return t.test(this.content)||r.test(this.content)||n.test(this.content)}};var Vfe=['"',"'","`"," ",".","(","[","]","!","/","-"];async function Xfe(e){let t=await Lp(e);if(!t)return null;let r=t.match(/@config\s*(?<config>'[^']+'|"[^"]+")/);return r?$s((0,Ph.default)(Do.resolve(Do.dirname(e),r.groups.config.slice(1,-1)))):null}var tv=class{constructor(t){this.connection=t;this.lspHandlersAdded=!1;this.disposables=[];this.watchPatterns=()=>{};this.watched=[];this.documentService=new dL(this.connection),this.projects=new Map,this.projectCounter=0,this.settingsCache=dde(t)}async init(){this.initPromise||(this.initPromise=this._init()),await this.initPromise}getWorkspaceFolders(){return this.initializeParams.workspaceFolders?.length?this.initializeParams.workspaceFolders.map(t=>({uri:Yl.URI.parse(t.uri).fsPath,name:t.name})):this.initializeParams.rootUri?[{uri:Yl.URI.parse(this.initializeParams.rootUri).fsPath,name:"Root"}]:this.initializeParams.rootPath?[{uri:Yl.URI.file(this.initializeParams.rootPath).fsPath,name:"Root"}]:[]}async _init(){gm();let t=this.getWorkspaceFolders().map(n=>(0,Ph.default)(n.uri));if(t.length===0){console.error("No workspace folders found, not initializing.");return}let r=await Promise.allSettled(t.map(n=>this._initFolder(Yl.URI.file(n))));for(let[n,s]of r.entries())s.status==="rejected"&&console.error("Failed to initialize workspace folder",t[n],s.reason);await this.listenForEvents()}async _initFolder(t){let r=t.fsPath,n=[],s=await this.settingsCache.get(),i=s.tailwindCSS.files.exclude,a=(await this.settingsCache.get(t.toString())).tailwindCSS.includeLanguages;Go(a)||(a=this.initializeParams.initializationOptions?.userLanguages??{});let c=new Map,u=new Map,H=this.initializeParams.initializationOptions?.workspaceFile?Do.dirname(this.initializeParams.initializationOptions.workspaceFile):r;function l(I){function S(T){return $s((0,Ph.default)(Do.resolve(H,T)))}let $=I.experimental.configFile,A={};if(typeof $=="string"){let T=S($),b=[S(Do.resolve(r,"**"))];A[T]=b}else if(Go($))for(let[T,b]of Object.entries($)){if(typeof T!="string")return null;T=S(T);let P;if(typeof b=="string")P=[S(b)];else if(Array.isArray(b))P=b.map(S);else return null;A[T]=P}else if($)return null;return Object.entries(A)}let d=l(s.tailwindCSS);if(d===null){console.error("Invalid `experimental.configFile` configuration, not initializing.");return}let f=new jS(r,s);d.length>0?(console.log("Loading Tailwind CSS projects from the workspace settings."),n=await f.loadAllFromWorkspace(d)):(console.log("Searching for Tailwind CSS projects in the workspace's folders."),n=await f.search());for(let I of n)if(u.set(I.config.path,I.tailwind.version),I.config.source==="css")for(let S of I.config.entries)S.type==="css"&&c.set(S.path,I.config.path);let h=n.map(I=>({folder:I.folder,config:I.config.path,selectors:I.documentSelector,user:I.isUserConfigured,tailwind:I.tailwind}));console.log(`[Global] Creating projects: ${JSON.stringify(h)}`);let m=async I=>{let S=!1,$=!1,A=(0,Ql.default)(`**/${Id}`,{dot:!0}),T=(0,Ql.default)(`**/${Au}`,{dot:!0}),b=(0,Ql.default)(`**/${Ld}`,{dot:!0});e:for(let P of I){let x=(0,Ph.default)(P.file);x=$s(x);for(let M of i)if((0,Ql.default)(M,{dot:!0})(x))continue e;if(A(x))for(let[,M]of this.projects){let N=T1().version;try{let F=require(qr(Do.dirname(M.projectConfig.configPath),"tailwindcss/package.json")).version;typeof F=="string"&&(N=F)}catch{}if(u.get(M.projectConfig.configPath)!==N){S=!0;break e}}for(let[,M]of this.projects){if(!M.state.v4)continue;let N=[M.projectConfig.configPath,...M.projectConfig.config.entries.map(F=>F.path)];if(bd(x,N)){$=!0;break e}}if(T(`**/${Au}`)&&P.type!==Rn.FileChangeType.Deleted){let M=await Xfe(x)||await Xfe(P.file);if(c.has(x)&&c.get(x)!==M){S=!0;break}else if(!c.has(x)&&M){S=!0;break}}if(b(x)&&P.type===Rn.FileChangeType.Created){S=!0;break}for(let[,M]of this.projects)if(P.type===Rn.FileChangeType.Deleted&&bd(x,[M.projectConfig.configPath])){S=!0;break e}}if(S){this.restart();return}if($){try{await this.softRestart()}catch{this.restart()}return}for(let[,P]of this.projects)P.onFileEvents(I)};if(this.initializeParams.capabilities.workspace?.didChangeWatchedFiles?.dynamicRegistration){this.disposables.push(this.connection.onDidChangeWatchedFiles(async({changes:S})=>{let $=S.map(({uri:A,type:T})=>({file:Yl.URI.parse(A).fsPath,type:T})).filter((A,T,b)=>b.findIndex(P=>P.file===A.file&&P.type===A.type)===T);await m($)}));let I=await this.connection.client.register(Rn.DidChangeWatchedFilesNotification.type,{watchers:[{globPattern:`**/${Ld}`},{globPattern:`**/${Id}`},{globPattern:`**/${Au}`}]});this.disposables.push(I),this.watchPatterns=S=>{let $=this.filterNewWatchPatterns(S);$.length&&(console.log(`[Global] Adding watch patterns: ${$.join(", ")}`),this.connection.client.register(Rn.DidChangeWatchedFilesNotification.type,{watchers:$.map(A=>({globPattern:A}))}).then(A=>{this.disposables.push(A)}))}}else if(rv.getBinding()){let I={create:Rn.FileChangeType.Created,update:Rn.FileChangeType.Changed,delete:Rn.FileChangeType.Deleted},S=await rv.subscribe(r,($,A)=>{m(A.map(T=>({file:T.path,type:I[T.type]})))},{ignore:i.map($=>Do.resolve(r,$.replace(/^[*/]+/,"").replace(/[*/]+$/,"")))});this.disposables.push({dispose(){S.unsubscribe()}})}else{let I=Wfe().watch,S=I([`**/${Ld}`,`**/${Id}`,`**/${Au}`],{cwd:r,ignorePermissionErrors:!0,ignoreInitial:!0,ignored:i,awaitWriteFinish:{stabilityThreshold:100,pollInterval:20}});await new Promise($=>{S.on("ready",()=>$())}),S.on("add",$=>m([{file:Do.resolve(r,$),type:Rn.FileChangeType.Created}])).on("change",$=>m([{file:Do.resolve(r,$),type:Rn.FileChangeType.Changed}])).on("unlink",$=>m([{file:Do.resolve(r,$),type:Rn.FileChangeType.Deleted}])),this.disposables.push({dispose(){S.close()}}),this.watchPatterns=$=>{let A=this.filterNewWatchPatterns($);A.length&&(console.log(`[Global] Adding watch patterns: ${A.join(", ")}`),S.add(A))}}console.log("[Global] Preparing projects..."),await Promise.all(n.map(I=>this.addProject(I,this.initializeParams,this.watchPatterns,u.get(I.configPath),a))),console.log("[Global] Initializing projects...");let L=[],E=0;for(let I of this.documentService.getAllDocuments()){let S=this.getProject(I);S&&!S.enabled()&&(S.enable(),await S.tryInit(),E++),L.push(I.uri)}console.log(`[Global] Initialized ${E} projects`),this.setupLSPHandlers(),this.disposables.push(this.connection.onDidChangeConfiguration(async({settings:I})=>{let S=s.tailwindCSS.files.exclude;if(this.settingsCache.clear(),s=await this.settingsCache.get(),!Za(S,s.tailwindCSS.files.exclude)){this.restart();return}for(let[,$]of this.projects)$.onUpdateSettings(I)})),(this.initializeParams.initializationOptions?.testMode??!1)&&(console.log("[Global][Test] Sending document notifications..."),await Promise.all(L.map(I=>this.connection.sendNotification("@/tailwindCSS/documentReady",{uri:I}))))}async listenForEvents(){let t=this.initializeParams.initializationOptions?.testMode??!1;this.disposables.push(this.connection.onShutdown(()=>{this.dispose()})),this.disposables.push(this.documentService.onDidChangeContent(r=>{this.getProject(r.document)?.provideDiagnostics(r.document)})),this.disposables.push(this.documentService.onDidOpen(async r=>{let n=this.getProject(r.document);n&&(n.enabled()||(n.enable(),await n.tryInit()),t&&await this.connection.sendNotification("@/tailwindCSS/documentReady",{uri:r.document.uri}))})),this.initializeParams.capabilities.workspace.workspaceFolders&&this.disposables.push(this.connection.workspace.onDidChangeWorkspaceFolders(async r=>{let n=r.added.map(s=>({uri:Yl.URI.parse(s.uri).fsPath,name:s.name})).map(s=>(0,Ph.default)(s.uri));await Promise.allSettled(n.map(s=>this._initFolder(Yl.URI.file(s))))}))}filterNewWatchPatterns(t){let r=t.filter(n=>!this.watched.includes(n));return this.watched.push(...r),r}async addProject(t,r,n,s,i){let o=String(this.projectCounter++),a=await ode(o,t,this.connection,r,this.documentService,()=>this.updateCapabilities(),()=>{for(let c of this.documentService.getAllDocuments()){let u=this.getProject(c);if(u&&!u.enabled()){u.enable(),u.tryInit();break}}},()=>this.refreshDiagnostics(),c=>n(c),s,this.settingsCache.get,i);this.projects.set(o,a),this.supportsTailwindProjectDetails&&this.connection.sendNotification("@/tailwindCSS/projectDetails",{config:t.configPath,tailwind:t.tailwind})}get supportsTailwindProjectDetails(){return this.initializeParams.capabilities.experimental?.tailwind?.projectDetails??!1}refreshDiagnostics(){for(let t of this.documentService.getAllDocuments()){let r=this.getProject(t);r?r.provideDiagnosticsForce(t):this.connection.sendDiagnostics({uri:t.uri,diagnostics:[]})}}setupLSPHandlers(){this.lspHandlersAdded||(this.lspHandlersAdded=!0,this.connection.onHover(this.onHover.bind(this)),this.connection.onCompletion(this.onCompletion.bind(this)),this.connection.onCompletionResolve(this.onCompletionResolve.bind(this)),this.connection.onDocumentColor(this.onDocumentColor.bind(this)),this.connection.onColorPresentation(this.onColorPresentation.bind(this)),this.connection.onCodeAction(this.onCodeAction.bind(this)),this.connection.onDocumentLinks(this.onDocumentLinks.bind(this)),this.connection.onRequest(this.onRequest.bind(this)))}onRequest(t,r){if(t==="@/tailwindCSS/sortSelection"){let n=this.getProject({uri:r.uri});if(!n)return{error:"no-project"};try{return{classLists:n.sortClassLists(r.classLists)}}catch{return{error:"unknown"}}}if(t==="@/tailwindCSS/getProject"){let n=this.getProject({uri:r.uri});return!n||!n.enabled()||!n.state?.enabled?null:{version:n.state.version}}}updateCapabilities(){if(!qfe(this.initializeParams))return;this.registrations&&this.registrations.then(n=>n.dispose());let t=Array.from(this.projects.values()),r=Rn.BulkRegistration.create();r.add(Rn.HoverRequest.type,{documentSelector:null}),r.add(Rn.DocumentColorRequest.type,{documentSelector:null}),r.add(Rn.CodeActionRequest.type,{documentSelector:null}),r.add(Rn.DocumentLinkRequest.type,{documentSelector:null}),r.add(Rn.CompletionRequest.type,{documentSelector:null,resolveProvider:!0,triggerCharacters:[...Vfe,...t.map(n=>n.state.separator).filter(n=>typeof n=="string").map(n=>n.slice(-1))].filter(Boolean)}),this.registrations=this.connection.client.register(r)}getProject(t){let r,n,s=1/0;for(let[,i]of this.projects)if(i.projectConfig.configPath){let o=i.documentSelector().concat().sort((a,c)=>a.pattern.startsWith("!")&&!c.pattern.startsWith("!")?-1:!a.pattern.startsWith("!")&&c.pattern.startsWith("!")?1:0);for(let a of o){let c=Yl.URI.parse(t.uri),u=a.pattern.replace(/[\[\]{}]/g,d=>`\\${d}`),H=c.fsPath,l=c.path;if(H=$s(H),u.startsWith("!")&&((0,Ql.default)(u.slice(1),{dot:!0})(H)||(0,Ql.default)(u.slice(1),{dot:!0})(l)))break;if((0,Ql.default)(u,{dot:!0})(H)&&a.priority<s){n=i,s=a.priority;continue}if((0,Ql.default)(u,{dot:!0})(l)&&a.priority<s){n=i,s=a.priority;continue}}}else r||(r=i);return n||r}async onDocumentColor(t){return await this.init(),this.getProject(t.textDocument)?.onDocumentColor(t)??[]}async onColorPresentation(t){return await this.init(),this.getProject(t.textDocument)?.onColorPresentation(t)??[]}async onHover(t){return await this.init(),this.getProject(t.textDocument)?.onHover(t)??null}async onCompletion(t){return await this.init(),this.getProject(t.textDocument)?.onCompletion(t)??null}async onCompletionResolve(t){return await this.init(),this.projects.get(t.data?._projectKey)?.onCompletionResolve(t)??null}async onCodeAction(t){return await this.init(),this.getProject(t.textDocument)?.onCodeAction(t)??null}async onDocumentLinks(t){return await this.init(),this.getProject(t.textDocument)?.onDocumentLinks(t)??null}setup(){this.connection.onInitialize(async t=>(this.initializeParams=t,qfe(t)?{capabilities:{textDocumentSync:Rn.TextDocumentSyncKind.Full}}:(this.setupLSPHandlers(),{capabilities:{textDocumentSync:Rn.TextDocumentSyncKind.Full,hoverProvider:!0,colorProvider:!0,codeActionProvider:!0,documentLinkProvider:{},completionProvider:{resolveProvider:!0,triggerCharacters:[...Vfe,":"]}}}))),this.connection.onInitialized(()=>this.init())}listen(){this.connection.listen()}dispose(){this.connection.sendNotification("@/tailwindCSS/projectsDestroyed");for(let[,t]of this.projects)t.dispose();this.projects=new Map,this.refreshDiagnostics(),this.registrations&&(this.registrations.then(t=>t.dispose()),this.registrations=void 0),this.disposables.forEach(t=>t.dispose()),this.disposables.length=0,this.watched.length=0}restart(){console.log(`----------
2920
+ `),{from:void 0})}catch(K){throw K}finally{j?.unhook()}E.dependencies=sA(E.configPath),c((E.dependencies??[]).flatMap(K=>xS(K,t.folder))),E.configId=Jpe(E.configPath,E.dependencies),E.plugins=await Eat(N),V&&(E.classNames=await FG(V.root)),E.variants=_at(E);let Z=(0,_H.default)(E.config,"theme.screens",(0,_H.default)(E.config,"screens",{}));E.screens=Go(Z)?Object.keys(Z):[],E.enabled=!0,a(),i()}return{projectConfig:t,enabled(){return d},enable(){d=!0},async reload(){if(!E.v4)return;console.log("---- RELOADING DESIGN SYSTEM ----");let P=await Lp(E.configPath),x=await TM(E.modules.tailwindcss.module,E.configPath,P),v=Object.create(E,{designSystem:{value:x}}),k=x.getClassList().map(C=>[C[0],{...C[1],color:po(v,C[0])}]);E.designSystem=x,E.classList=k,console.log("---- RELOADED ----")},state:E,documentSelector(){return m},tryInit:$,async dispose(){E={enabled:!1};for(let P of h)(await P).dispose()},async onUpdateSettings(P){E.enabled&&a(),P.editor?.colorDecorators?i():r.sendNotification("@/tailwindCSS/clearColors")},onFileEvents:I,async onHover(P){return Ad(async()=>{if(!E.enabled)return null;let x=s.getDocument(P.textDocument.uri);return!x||!(await E.editor.getConfiguration(x.uri)).tailwindCSS.hovers||await Zu(E,x)?null:wQ(E,x,P.position)},null)},async onCompletion(P){return Ad(async()=>{if(!E.enabled)return null;let x=s.getDocument(P.textDocument.uri);return!x||!(await E.editor.getConfiguration(x.uri)).tailwindCSS.suggestions||await Zu(E,x)?null:FQ(E,x,P.position,P.context)},null)},onCompletionResolve(P){return Ad(()=>E.enabled?BQ(E,P):null,null)},async onCodeAction(P){return Ad(async()=>{if(!E.enabled)return null;let x=s.getDocument(P.textDocument.uri);return!x||!(await E.editor.getConfiguration(x.uri)).tailwindCSS.codeActions?null:dee(E,P,x)},null)},onDocumentLinks(P){if(!E.enabled)return null;let x=s.getDocument(P.textDocument.uri);return x?mee(E,x,v=>AF.URI.file(kn.resolve(kn.dirname(AF.URI.parse(x.uri).fsPath),v)).toString()):null},provideDiagnostics:(0,nde.debounce)(P=>{E.enabled&&cM(E,P)},n.initializationOptions?.testMode?0:500),provideDiagnosticsForce:P=>{E.enabled&&cM(E,P)},async onDocumentColor(P){return Ad(async()=>{if(!E.enabled)return[];let x=s.getDocument(P.textDocument.uri);return x?await Zu(E,x)?null:hee(E,x):[]},null)},async onColorPresentation(P){let x=s.getDocument(P.textDocument.uri);if(!x)return[];let v=x.getText(P.range),k=v.match(new RegExp(`-\\[(${zpe.join("|")}|(?:(?:#|rgba?\\(|hsla?\\())[^\\]]+)\\]$`,"i"));if(k===null)return[];let C=k[1],M=zpe.includes(C),N={mode:"rgb",r:P.color.red,g:P.color.green,b:P.color.blue,alpha:P.color.alpha},F=eE(N);if(!M&&(C.length===4||C.length===5)){let[,...V]=F.match(/^#([a-f\d])\1([a-f\d])\2([a-f\d])\3(?:([a-f\d])\4)?$/i)??[];V.length&&(F=`#${V.filter(Boolean).join("")}`)}F.length===5?F=F.replace(/f$/,""):F.length===9&&(F=F.replace(/ff$/,""));let j=v.substr(0,k.index);return[F,af(N).replace(/ /g,""),ak(N).replace(/ /g,"").replace(/\d+\.\d+(%?)/g,(V,Z)=>`${Math.round(parseFloat(V))}${Z}`)].map(V=>({label:`${j}-[${V}]`}))},sortClassLists(P){return E.jit?P.map(x=>{let v="",k=x.split(/(\s+)/),C=k.filter((F,j)=>j%2===0),M=k.filter((F,j)=>j%2!==0);C[C.length-1]===""&&C.pop();let N;E.v4?N=E.designSystem.getClassOrder(C):E.jitContext.getClassOrder?N=E.jitContext.getClassOrder(C):N=fat(E,C),C=N.sort(([,F],[,j])=>F===j?0:F===null?-1:j===null?1:of(F-j)).map(([F])=>F);for(let F=0;F<C.length;F++)v+=`${C[F]}${M[F]??""}`;return v}):P}}}function Ype(e,t){let r=e.config.prefix;return typeof r=="function"?r(t):r+t}function fat(e,t){let r=new Set([Ype(e,"group"),Ype(e,"peer")]),n=[];for(let s of t){let i=e.modules.jit.generateRules.module(new Set([s]),e.jitContext).sort(([o],[a])=>of(a-o))[0]?.[0]??null;i===null&&r.has(s)&&(i=e.jitContext.layerOrder.components),n.push([s,i])}return n}function hat(e,t,r={}){let n=t.config,s=t.modules.postcss.module,i=t.browserslist,o=i&&i.includes("ie 11")?"ie11":"relaxed",a=typeof e=="function"?e:e.handler;try{a({addUtilities:()=>{},addComponents:()=>{},addBase:()=>{},matchUtilities:()=>{},addVariant:()=>{},e:c=>c,prefix:c=>c,theme:(c,u)=>(0,_H.default)(n,`theme.${c}`,u),variants:()=>[],config:(c,u)=>(0,_H.default)(n,c,u),corePlugins:c=>Array.isArray(n.corePlugins)?n.corePlugins.includes(c):(0,_H.default)(n,`corePlugins.${c}`,!0),target:c=>{if(typeof n.target=="string")return n.target==="browserslist"?o:n.target;let[u,H]=(0,_H.default)(n,"target"),l=(0,_H.default)(H,c,u);return l==="browserslist"?o:l},postcss:s,...r})}catch{}}function mat(e){return e.type==="atrule"}function _at(e){if(e.v4)return e.designSystem.getVariants();if(e.jitContext?.getVariants)return e.jitContext.getVariants();if(e.jit){let i=[];return Array.from(e.jitContext.variantMap).forEach(([o,a])=>{i.push({name:o,values:[],isArbitrary:!1,hasDash:!0,selectors:()=>{function c(L){let E=e.modules.postcssSelectorParser.module.className();return E.value=L,(0,_H.default)(E,"raws.value",E.value)}let u=(Array.isArray(a[0])?a:[a]).map(([L,E])=>E),H="__variant_placeholder__",l=e.modules.postcss.module.root({nodes:[e.modules.postcss.module.rule({selector:`.${c(H)}`,nodes:[]})]}),d=e.modules.postcssSelectorParser.module(L=>L.first.filter(({type:E})=>E==="class").pop().value);function f(L){return d.transformSync(L)}function h(L){return l.each(E=>{E.type==="rule"&&(E.selectors=E.selectors.map(_=>L({get className(){return f(_)},selector:_})))}),l}let m=[];for(let L of u){let E,_=l.clone(),I=H6(()=>L({container:_,separator:e.separator,modifySelectors:h,format:S=>{E=S.replace(/:merge\(([^)]+)\)/g,"$1")},wrap:S=>{mat(S)&&(E=`@${S.name} ${S.params}`)}}));if(E||(E=I),E){m.push(E);continue}_.walkDecls(S=>{S.remove()}),E=_.toString().replace(`.${c(`${o}:${H}`)}`,"&").replace(/(?<!\\)[{}]/g,"").replace(/\s*\n\s*/g," ").trim(),E.includes(H)||m.push(E)}return m}})}),i}let t=e.config,r=e.modules.tailwindcss.version,n=["responsive","hover"];return Pr(r,"0.3.0")&&n.push("focus","group-hover"),Pr(r,"0.5.0")&&n.push("active"),Pr(r,"0.7.0")&&n.push("focus-within"),Pr(r,"1.0.0-beta.1")&&n.push("default"),Pr(r,"1.1.0")&&n.push("first","last","odd","even","disabled","visited"),Pr(r,"1.3.0")&&n.push("group-focus"),Pr(r,"1.5.0")&&n.push("focus-visible","checked"),Pr(r,"1.6.0")&&n.push("motion-safe","motion-reduce"),Pr(r,"2.0.0-alpha.1")&&n.push("dark"),(Array.isArray(t.plugins)?t.plugins:[]).forEach(i=>{hat(i,e,{addVariant:o=>{n.push(o)}})}),n.map(i=>({name:i,values:[],isArbitrary:!1,hasDash:!0,selectors:()=>[]}))}async function Eat(e){let t=e.plugins;return Array.isArray(t)?Promise.all(t.map(async r=>{let n=r.config;Go(n)||(n={});let s={theme:Go(n.theme)?Object.keys(n.theme):[],variants:Go(n.variants)?Object.keys(n.variants):[]},i=r.handler||r,o=typeof i.name=="string"&&i.name!=="handler"&&i.name!==""?i.name:null;try{i()}catch(a){let c=rde.default.parse(a);if(c.length===0)return{name:o};let u=c[0].fileName,H=kn.dirname(u);if(!tde.default.sync({cwd:H}))return{name:o};let d;try{d=require(d)}catch{return{name:o}}if(d.name&&kn.resolve(H,d.main||"index.js")===u)return{name:d.name,homepage:d.homepage,contributes:s}}return{name:o}})):[]}function yat(e,t){try{let r=_c.default.sync(n=>{let s=kn.join(n,"package.json");if(_c.default.sync.exists(s))return s;if(n===kn.normalize(t))return _c.default.stop},{cwd:e});return r?kn.dirname(r):t}catch{return t}}function Qpe(e,t,r,n){let s=n??require(e),i=s.content?.files??s.content,o=Array.isArray(i)?i:[],a=Pr(t,"3.2.0")?s.future?.relativeContentPathsByDefault||s.content?.relative:!1,c;return a?c=kn.dirname(e):c=yat(kn.dirname(e),r),o.filter(u=>typeof u=="string").map(u=>u.startsWith("!")?`!${kn.resolve(c,u.slice(1))}`:kn.resolve(c,u)).map(u=>({pattern:$s(ts(u)),priority:1}))}var pde=Xt(cde());function wat(){return{editor:{tabSize:2},tailwindCSS:{emmetCompletions:!1,classAttributes:["class","className","ngClass","class:list"],codeActions:!0,hovers:!0,suggestions:!0,validate:!0,colorDecorators:!0,rootFontSize:16,lint:{cssConflict:"warning",invalidApply:"error",invalidScreen:"error",invalidVariant:"error",invalidConfigPath:"error",invalidTailwindDirective:"error",recommendedVariantOrder:"warning"},showPixelEquivalents:!0,includeLanguages:{},files:{exclude:["**/.git/**","**/node_modules/**","**/.hg/**","**/.svn/**"]},experimental:{classRegex:[],configFile:null}}}}function dde(e){let t=new Map;async function r(s){let i=t.get(s);return i||(i=await n(s),t.set(s,i)),i}async function n(s){let[i,o]=await Promise.all([e.workspace.getConfiguration({section:"editor",scopeUri:s}),e.workspace.getConfiguration({section:"tailwindCSS",scopeUri:s})]);return i=Go(i)?i:{},o=Go(o)?o:{},(0,pde.default)(wat(),{editor:i,tailwindCSS:o},{arrayMerge:(a,c,u)=>c})}return{get:r,clear(){t.clear()}}}var Yde=Xt(require("node:os")),os=Xt(require("node:path")),Qde=Xt(require("node:fs/promises")),efe=Xt(Jde()),tfe=Xt(ym());var FS=class{constructor(){this.parents=new Map;this.children=new Map;this.nodes=new Map}add(t,r){return this.nodes.has(t)?this.nodes.get(t):(this.nodes.set(t,r),this.parents.set(t,new Set),this.children.set(t,new Set),r)}connect(t,r){let n=this.children.get(t);if(!n)throw new Error(`Node ${t} does not exist`);let s=this.parents.get(r);if(!s)throw new Error(`Node ${r} does not exist`);s.add(t),n.add(r)}*descendants(t){let r=[],n=new Set;for(let s of this.children.get(t))r.push(s);for(;r.length>0;){let s=r.shift();if(!n.has(s)){yield this.nodes.get(s),n.add(s);for(let i of this.children.get(s))r.push(i)}}}*roots(){for(let[t,r]of this.parents)r.size===0&&(yield this.nodes.get(t))}*leaves(){for(let[t,r]of this.children)r.size===0&&(yield this.nodes.get(t))}};var BS=class extends Map{remember(t,r){let n=super.get(t);return n||(n=r(t),this.set(t,n)),n}};var US=Xt(F$()),bh=Xt(require("node:path"));async function o4(e,t){async function r(n){let s=bh.join(n,"package.json");if(await US.default.exists(s))return s;if(n===bh.normalize(t))return US.default.stop}try{let n=await(0,US.default)(r,{cwd:e});return n?bh.dirname(n):t}catch{return t}}var jS=class{constructor(t,r){this.base=t;this.settings=r}async search(){let t=await this.findConfigs(),r=await Promise.allSettled(t.map(s=>this.createProject(s))),n=[];for(let s of r)s.status==="rejected"?console.error(`[GLOBAL] Error creating project: ${s.reason}`):s.status==="fulfilled"&&s.value&&n.push(s.value);n.length===1&&n[0].documentSelector.push({pattern:ts(os.join(this.base,"**")),priority:5});for(let s of n){s.folder=$s(s.folder),s.configPath=$s(s.configPath),s.config.path=$s(s.config.path);for(let i of s.config.entries)i.path=$s(i.path);for(let i of s.documentSelector)i.pattern=$s(i.pattern)}return n}async loadAllFromWorkspace(t){return Promise.all(t.map(r=>this.loadFromWorkspace(r[0],r[1])))}async loadFromWorkspace(t,r){let n={type:"js",path:t,source:"js",entries:[],content:[],packageRoot:""},s=await this.detectTailwindVersion(n);return n.packageRoot=await o4(os.dirname(n.path),this.base),{config:n,folder:this.base,isUserConfigured:!0,configPath:n.path,documentSelector:r.map(i=>({priority:0,pattern:i})),tailwind:s}}async createProject(t){let r=await this.detectTailwindVersion(t);if(console.log(JSON.stringify({tailwind:r})),t.type==="js"&&t.source==="css"&&(r.isDefaultVersion||!r.features.includes("css-at-config"))||t.type==="css"&&!r.features.includes("css-at-theme")||t.type==="js"&&r.features.includes("css-at-theme")||t.type==="js"&&(t.path.endsWith(".ts")||t.path.endsWith(".mjs"))&&!r.features.includes("transpiled-configs"))return null;t.packageRoot=await o4(os.dirname(t.path),this.base);let n=[];for(let s of t.entries)s.type==="css"&&n.push({pattern:s.path,priority:0});n.push({pattern:t.path,priority:0});for await(let s of sHt(t,r.features))n.push(s);for(let s of t.entries)s.type==="css"&&n.push({pattern:ts(os.join(os.dirname(s.path),"**")),priority:2});return n.push({pattern:ts(os.join(os.dirname(t.path),"**")),priority:3}),n.push({pattern:ts(os.join(t.packageRoot,"**")),priority:4}),n.sort((s,i)=>s.priority-i.priority),n=n.filter(({pattern:s},i,o)=>o.findIndex(({pattern:a})=>a===s)===i),{config:t,folder:this.base,isUserConfigured:!1,configPath:t.path,documentSelector:n,tailwind:r}}async findConfigs(){let t=await(0,efe.default)([`**/${Ld}`,`**/${Au}`],{cwd:this.base,ignore:this.settings.tailwindCSS.files.exclude,onlyFiles:!0,absolute:!0,suppressErrors:!0,dot:!0,concurrency:Math.max(Yde.cpus().length,1)});t=await Promise.all(t.map(async l=>{let d=await Qde.realpath(l);return d.startsWith("\\")&&process.platform==="win32"?ts(l):ts(d)})),t=Array.from(new Set(t)).sort();let r=new BS,n=(0,tfe.default)(`**/${Au}`,{dot:!0}),s=t.map(l=>n(l)?new fy("css",l):new fy("js",l,[r.remember(l,()=>({source:"js",type:"js",path:l,entries:[],packageRoot:null,content:[]}))])),i=s.filter(l=>l.type==="css");await Promise.all(i.map(l=>l.read()));let o=[];for(let l of i){if(!l.content)continue;let d=l.configPathInCss();if(d){l.content=null,l.configs.push(r.remember(d,()=>({source:"css",type:"js",path:d,entries:[],packageRoot:null,content:[]})));continue}if(l.isMaybeTailwindRelated()){o.push(l);continue}}await Promise.all(o.map(l=>l.resolveImports()));let a=new FS,c=null,u=null,H=null;for(let l of o){a.add(l.path,l);for(let d of l.deps){let f=ts(d.file);a.add(f,new fy("css",f)),a.connect(l.path,f)}l.path.includes("node_modules/tailwindcss/index.css")?c=l.path:l.path.includes("node_modules/tailwindcss/theme.css")?u=l.path:l.path.includes("node_modules/tailwindcss/utilities.css")&&(H=l.path)}c&&u&&a.connect(c,u),c&&H&&a.connect(c,H);for(let l of a.roots()){let d=r.remember(l.path,()=>({source:"css",type:"css",path:l.path,entries:[],packageRoot:null,content:[{kind:"auto"}]}));l.configs.push(d);for(let f of a.descendants(l.path))f.configs.push(d)}for(let l of s)for(let d of l.configs)d.entries.push(l);return Array.from(r.values())}async detectTailwindVersion(t){try{let s=qr(os.dirname(t.path),"tailwindcss/package.json"),{version:i}=require(s),o=$E(i);if(typeof i=="string")return{version:i,features:o,isDefaultVersion:!1}}catch{}let{version:r}=T1(),n=$E(r);return{version:r,features:n,isDefaultVersion:!0}}};function sHt(e,t,r){if(e.type==="css")return oHt(e);if(e.type==="js")return aHt(e,t,r)}async function*aHt(e,t,r){let n;try{n=r??require(e.path)}catch{return}let s=n.content?.files??n.content,i=Array.isArray(s)?s:[],a=(t.includes("relative-content-paths")?n.future?.relativeContentPathsByDefault||n.content?.relative:!1)?os.dirname(e.path):e.packageRoot;for(let c of i){if(typeof c!="string")continue;let u=c.startsWith("!")?`!${os.resolve(a,c.slice(1))}`:os.resolve(a,c);yield{pattern:ts(u),priority:1}}}async function*oHt(e){let t=!1;for(let r of e.content)if(r.kind==="file")yield{pattern:ts(r.file),priority:1};else if(r.kind==="auto"&&!t){t=!0;for await(let n of HHt(e.packageRoot))yield{pattern:n,priority:1}}}async function*HHt(e){try{let t=qr(os.dirname(e),"@tailwindcss/oxide");t=uL(t).href;let r=await import(t);if(!r.scanDir)return;let{files:n,globs:s}=r.scanDir({base:e,globs:!0});for(let i of n)yield ts(i);for(let{base:i,glob:o}of s)yield ts(i)+"/"+o}catch{}}var fy=class{constructor(t,r,n=[]){this.type=t;this.path=r;this.configs=n;this.deps=[]}async read(){try{this.content=await Lp(this.path)}catch{this.content=null}}async resolveImports(){try{let t=await pA().process(this.content,{from:this.path});this.deps=t.messages.filter(r=>r.type==="dependency"),this.content=t.css}catch{}}configPathInCss(){if(!this.content)return null;let t=this.content.match(/@config\s*(?<config>'[^']+'|"[^"]+")/);return t?ts(os.resolve(os.dirname(this.path),t.groups.config.slice(1,-1))):null}isMaybeTailwindRelated(){if(!this.content)return!1;let t=/@import\s*(?<config>'[^']+'|"[^"]+");/,r=/@tailwind\s*[^;]+;/,n=/@theme\s*\{/;return t.test(this.content)||r.test(this.content)||n.test(this.content)}};var Vfe=['"',"'","`"," ",".","(","[","]","!","/","-"];async function Xfe(e){let t=await Lp(e);if(!t)return null;let r=t.match(/@config\s*(?<config>'[^']+'|"[^"]+")/);return r?$s((0,Ph.default)(Do.resolve(Do.dirname(e),r.groups.config.slice(1,-1)))):null}var tv=class{constructor(t){this.connection=t;this.lspHandlersAdded=!1;this.disposables=[];this.watchPatterns=()=>{};this.watched=[];this.documentService=new dL(this.connection),this.projects=new Map,this.projectCounter=0,this.settingsCache=dde(t)}async init(){this.initPromise||(this.initPromise=this._init()),await this.initPromise}getWorkspaceFolders(){return this.initializeParams.workspaceFolders?.length?this.initializeParams.workspaceFolders.map(t=>({uri:Yl.URI.parse(t.uri).fsPath,name:t.name})):this.initializeParams.rootUri?[{uri:Yl.URI.parse(this.initializeParams.rootUri).fsPath,name:"Root"}]:this.initializeParams.rootPath?[{uri:Yl.URI.file(this.initializeParams.rootPath).fsPath,name:"Root"}]:[]}async _init(){gm();let t=this.getWorkspaceFolders().map(n=>(0,Ph.default)(n.uri));if(t.length===0){console.error("No workspace folders found, not initializing.");return}let r=await Promise.allSettled(t.map(n=>this._initFolder(Yl.URI.file(n))));for(let[n,s]of r.entries())s.status==="rejected"&&console.error("Failed to initialize workspace folder",t[n],s.reason);await this.listenForEvents()}async _initFolder(t){let r=t.fsPath,n=[],s=await this.settingsCache.get(),i=s.tailwindCSS.files.exclude,a=(await this.settingsCache.get(t.toString())).tailwindCSS.includeLanguages;Go(a)||(a=this.initializeParams.initializationOptions?.userLanguages??{});let c=new Map,u=new Map,H=this.initializeParams.initializationOptions?.workspaceFile?Do.dirname(this.initializeParams.initializationOptions.workspaceFile):r;function l(I){function S(T){return $s((0,Ph.default)(Do.resolve(H,T)))}let $=I.experimental.configFile,A={};if(typeof $=="string"){let T=S($),b=[S(Do.resolve(r,"**"))];A[T]=b}else if(Go($))for(let[T,b]of Object.entries($)){if(typeof T!="string")return null;T=S(T);let P;if(typeof b=="string")P=[S(b)];else if(Array.isArray(b))P=b.map(S);else return null;A[T]=P}else if($)return null;return Object.entries(A)}let d=l(s.tailwindCSS);if(d===null){console.error("Invalid `experimental.configFile` configuration, not initializing.");return}let f=new jS(r,s);d.length>0?(console.log("Loading Tailwind CSS projects from the workspace settings."),n=await f.loadAllFromWorkspace(d)):(console.log("Searching for Tailwind CSS projects in the workspace's folders."),n=await f.search());for(let I of n)if(u.set(I.config.path,I.tailwind.version),I.config.source==="css")for(let S of I.config.entries)S.type==="css"&&c.set(S.path,I.config.path);let h=n.map(I=>({folder:I.folder,config:I.config.path,selectors:I.documentSelector,user:I.isUserConfigured,tailwind:I.tailwind}));console.log(`[Global] Creating projects: ${JSON.stringify(h)}`);let m=async I=>{let S=!1,$=!1,A=(0,Ql.default)(`**/${Id}`,{dot:!0}),T=(0,Ql.default)(`**/${Au}`,{dot:!0}),b=(0,Ql.default)(`**/${Ld}`,{dot:!0});e:for(let P of I){let x=(0,Ph.default)(P.file);x=$s(x);for(let M of i)if((0,Ql.default)(M,{dot:!0})(x))continue e;if(A(x))for(let[,M]of this.projects){let N=T1().version;try{let F=require(qr(Do.dirname(M.projectConfig.configPath),"tailwindcss/package.json")).version;typeof F=="string"&&(N=F)}catch{}if(u.get(M.projectConfig.configPath)!==N){S=!0;break e}}for(let[,M]of this.projects){if(!M.state.v4)continue;let N=[M.projectConfig.configPath,...M.projectConfig.config.entries.map(F=>F.path)];if(bd(x,N)){$=!0;break e}}if(T(`**/${Au}`)&&P.type!==Rn.FileChangeType.Deleted){let M=await Xfe(x)||await Xfe(P.file);if(c.has(x)&&c.get(x)!==M){S=!0;break}else if(!c.has(x)&&M){S=!0;break}}if(b(x)&&P.type===Rn.FileChangeType.Created){S=!0;break}for(let[,M]of this.projects)if(P.type===Rn.FileChangeType.Deleted&&bd(x,[M.projectConfig.configPath])){S=!0;break e}}if(S){this.restart();return}if($){try{await this.softRestart()}catch{this.restart()}return}for(let[,P]of this.projects)P.onFileEvents(I)};if(this.initializeParams.capabilities.workspace?.didChangeWatchedFiles?.dynamicRegistration){this.disposables.push(this.connection.onDidChangeWatchedFiles(async({changes:S})=>{let $=S.map(({uri:A,type:T})=>({file:Yl.URI.parse(A).fsPath,type:T})).filter((A,T,b)=>b.findIndex(P=>P.file===A.file&&P.type===A.type)===T);await m($)}));let I=await this.connection.client.register(Rn.DidChangeWatchedFilesNotification.type,{watchers:[{globPattern:`**/${Ld}`},{globPattern:`**/${Id}`},{globPattern:`**/${Au}`}]});this.disposables.push(I),this.watchPatterns=S=>{let $=this.filterNewWatchPatterns(S);$.length&&(console.log(`[Global] Adding watch patterns: ${$.join(", ")}`),this.connection.client.register(Rn.DidChangeWatchedFilesNotification.type,{watchers:$.map(A=>({globPattern:A}))}).then(A=>{this.disposables.push(A)}))}}else if(rv.getBinding()){let I={create:Rn.FileChangeType.Created,update:Rn.FileChangeType.Changed,delete:Rn.FileChangeType.Deleted},S=await rv.subscribe(r,($,A)=>{m(A.map(T=>({file:T.path,type:I[T.type]})))},{ignore:i.map($=>Do.resolve(r,$.replace(/^[*/]+/,"").replace(/[*/]+$/,"")))});this.disposables.push({dispose(){S.unsubscribe()}})}else{let I=Wfe().watch,S=I([`**/${Ld}`,`**/${Id}`,`**/${Au}`],{cwd:r,ignorePermissionErrors:!0,ignoreInitial:!0,ignored:i,awaitWriteFinish:{stabilityThreshold:100,pollInterval:20}});await new Promise($=>{S.on("ready",()=>$())}),S.on("add",$=>m([{file:Do.resolve(r,$),type:Rn.FileChangeType.Created}])).on("change",$=>m([{file:Do.resolve(r,$),type:Rn.FileChangeType.Changed}])).on("unlink",$=>m([{file:Do.resolve(r,$),type:Rn.FileChangeType.Deleted}])),this.disposables.push({dispose(){S.close()}}),this.watchPatterns=$=>{let A=this.filterNewWatchPatterns($);A.length&&(console.log(`[Global] Adding watch patterns: ${A.join(", ")}`),S.add(A))}}console.log("[Global] Preparing projects..."),await Promise.all(n.map(I=>this.addProject(I,this.initializeParams,this.watchPatterns,u.get(I.configPath),a))),console.log("[Global] Initializing projects...");let L=[],E=0;for(let I of this.documentService.getAllDocuments()){let S=this.getProject(I);S&&!S.enabled()&&(S.enable(),await S.tryInit(),E++),L.push(I.uri)}console.log(`[Global] Initialized ${E} projects`),this.setupLSPHandlers(),this.disposables.push(this.connection.onDidChangeConfiguration(async({settings:I})=>{let S=s.tailwindCSS.files.exclude;if(this.settingsCache.clear(),s=await this.settingsCache.get(),!Za(S,s.tailwindCSS.files.exclude)){this.restart();return}for(let[,$]of this.projects)$.onUpdateSettings(I)})),(this.initializeParams.initializationOptions?.testMode??!1)&&(console.log("[Global][Test] Sending document notifications..."),await Promise.all(L.map(I=>this.connection.sendNotification("@/tailwindCSS/documentReady",{uri:I}))))}async listenForEvents(){let t=this.initializeParams.initializationOptions?.testMode??!1;this.disposables.push(this.connection.onShutdown(()=>{this.dispose()})),this.disposables.push(this.documentService.onDidChangeContent(r=>{this.getProject(r.document)?.provideDiagnostics(r.document)})),this.disposables.push(this.documentService.onDidOpen(async r=>{let n=this.getProject(r.document);n&&(n.enabled()||(n.enable(),await n.tryInit()),t&&await this.connection.sendNotification("@/tailwindCSS/documentReady",{uri:r.document.uri}))})),this.initializeParams.capabilities.workspace.workspaceFolders&&this.disposables.push(this.connection.workspace.onDidChangeWorkspaceFolders(async r=>{let n=r.added.map(s=>({uri:Yl.URI.parse(s.uri).fsPath,name:s.name})).map(s=>(0,Ph.default)(s.uri));await Promise.allSettled(n.map(s=>this._initFolder(Yl.URI.file(s))))}))}filterNewWatchPatterns(t){let r=t.filter(n=>!this.watched.includes(n));return this.watched.push(...r),r}async addProject(t,r,n,s,i){let o=String(this.projectCounter++),a=await ode(o,t,this.connection,r,this.documentService,()=>this.updateCapabilities(),()=>{for(let c of this.documentService.getAllDocuments()){let u=this.getProject(c);if(u&&!u.enabled()){u.enable(),u.tryInit();break}}},()=>this.refreshDiagnostics(),c=>n(c),s,this.settingsCache.get,i);this.projects.set(o,a),this.supportsTailwindProjectDetails&&this.connection.sendNotification("@/tailwindCSS/projectDetails",{config:t.configPath,tailwind:t.tailwind})}get supportsTailwindProjectDetails(){return this.initializeParams.capabilities.experimental?.tailwind?.projectDetails??!1}refreshDiagnostics(){for(let t of this.documentService.getAllDocuments()){let r=this.getProject(t);r?r.provideDiagnosticsForce(t):this.connection.sendDiagnostics({uri:t.uri,diagnostics:[]})}}setupLSPHandlers(){this.lspHandlersAdded||(this.lspHandlersAdded=!0,this.connection.onHover(this.onHover.bind(this)),this.connection.onCompletion(this.onCompletion.bind(this)),this.connection.onCompletionResolve(this.onCompletionResolve.bind(this)),this.connection.onDocumentColor(this.onDocumentColor.bind(this)),this.connection.onColorPresentation(this.onColorPresentation.bind(this)),this.connection.onCodeAction(this.onCodeAction.bind(this)),this.connection.onDocumentLinks(this.onDocumentLinks.bind(this)),this.connection.onRequest(this.onRequest.bind(this)))}onRequest(t,r){if(t==="@/tailwindCSS/sortSelection"){let n=this.getProject({uri:r.uri});if(!n)return{error:"no-project"};try{return{classLists:n.sortClassLists(r.classLists)}}catch{return{error:"unknown"}}}if(t==="@/tailwindCSS/getProject"){let n=this.getProject({uri:r.uri});return!n||!n.enabled()||!n.state?.enabled?null:{version:n.state.version}}}updateCapabilities(){if(!qfe(this.initializeParams))return;this.registrations&&this.registrations.then(n=>n.dispose());let t=Array.from(this.projects.values()),r=Rn.BulkRegistration.create();r.add(Rn.HoverRequest.type,{documentSelector:null}),r.add(Rn.DocumentColorRequest.type,{documentSelector:null}),r.add(Rn.CodeActionRequest.type,{documentSelector:null}),r.add(Rn.DocumentLinkRequest.type,{documentSelector:null}),r.add(Rn.CompletionRequest.type,{documentSelector:null,resolveProvider:!0,triggerCharacters:[...Vfe,...t.map(n=>n.state.separator).filter(n=>typeof n=="string").map(n=>n.slice(-1))].filter(Boolean)}),this.registrations=this.connection.client.register(r)}getProject(t){let r,n,s=1/0,i=Yl.URI.parse(t.uri),o=i.fsPath,a=i.path;o=$s(o),console.debug("[GLOBAL] Matching project to document",{fsPath:o,normalPath:a});for(let c of this.projects.values()){if(!c.projectConfig.configPath){r=r??c;continue}let u=c.documentSelector().concat().sort((H,l)=>H.pattern.startsWith("!")&&!l.pattern.startsWith("!")?-1:!H.pattern.startsWith("!")&&l.pattern.startsWith("!")?1:0);for(let H of u){let l=H.pattern.replace(/[\[\]{}()]/g,d=>`\\${d}`);if(l.startsWith("!")&&((0,Ql.default)(l.slice(1),{dot:!0})(o)||(0,Ql.default)(l.slice(1),{dot:!0})(a)))break;if((0,Ql.default)(l,{dot:!0})(o)&&H.priority<s){n=c,s=H.priority;continue}if((0,Ql.default)(l,{dot:!0})(a)&&H.priority<s){n=c,s=H.priority;continue}}}return n??r}async onDocumentColor(t){return await this.init(),this.getProject(t.textDocument)?.onDocumentColor(t)??[]}async onColorPresentation(t){return await this.init(),this.getProject(t.textDocument)?.onColorPresentation(t)??[]}async onHover(t){return await this.init(),this.getProject(t.textDocument)?.onHover(t)??null}async onCompletion(t){return await this.init(),this.getProject(t.textDocument)?.onCompletion(t)??null}async onCompletionResolve(t){return await this.init(),this.projects.get(t.data?._projectKey)?.onCompletionResolve(t)??null}async onCodeAction(t){return await this.init(),this.getProject(t.textDocument)?.onCodeAction(t)??null}async onDocumentLinks(t){return await this.init(),this.getProject(t.textDocument)?.onDocumentLinks(t)??null}setup(){this.connection.onInitialize(async t=>(this.initializeParams=t,qfe(t)?{capabilities:{textDocumentSync:Rn.TextDocumentSyncKind.Full}}:(this.setupLSPHandlers(),{capabilities:{textDocumentSync:Rn.TextDocumentSyncKind.Full,hoverProvider:!0,colorProvider:!0,codeActionProvider:!0,documentLinkProvider:{},completionProvider:{resolveProvider:!0,triggerCharacters:[...Vfe,":"]}}}))),this.connection.onInitialized(()=>this.init())}listen(){this.connection.listen()}dispose(){this.connection.sendNotification("@/tailwindCSS/projectsDestroyed");for(let[,t]of this.projects)t.dispose();this.projects=new Map,this.refreshDiagnostics(),this.registrations&&(this.registrations.then(t=>t.dispose()),this.registrations=void 0),this.disposables.forEach(t=>t.dispose()),this.disposables.length=0,this.watched.length=0}restart(){console.log(`----------
2921
2921
  RESTARTING
2922
2922
  ----------`),this.dispose(),this.initPromise=void 0,this.init()}async softRestart(){for(let[,t]of this.projects)if(t.state.v4)try{await t.reload()}catch{}}};function qfe(e){return e.capabilities.textDocument.hover?.dynamicRegistration&&e.capabilities.textDocument.colorProvider?.dynamicRegistration&&e.capabilities.textDocument.codeAction?.dynamicRegistration&&e.capabilities.textDocument.completion?.dynamicRegistration&&e.capabilities.textDocument.documentLink?.dynamicRegistration}var Kfe=require("node:util");function Ay(e){return e.map(t=>(0,Kfe.format)(t)).join(" ")}function Gfe(e,t){e.debug=(...r)=>t.console.info(Ay(r)),e.error=(...r)=>t.console.error(Ay(r)),e.warn=(...r)=>t.console.warn(Ay(r)),e.info=(...r)=>t.console.info(Ay(r)),e.log=(...r)=>t.console.log(Ay(r))}global.__preflight=s7;new Function("require","__dirname",`
2923
2923
  let oldReadFileSync = require('fs').readFileSync
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@tailwindcss/language-server",
3
3
  "description": "Tailwind CSS Language Server",
4
4
  "license": "MIT",
5
- "version": "0.0.0-insiders.8df1bde",
5
+ "version": "0.0.0-insiders.908ddd2",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "git+https://github.com/tailwindlabs/tailwindcss-intellisense.git",