import{c as O,p as H}from"./vendor-lezer-html-D-6QB8dd.js";import{cssLanguage as _,css as U}from"./cm-lang-css-NVaY7c0M.js";import{typescriptLanguage as W,jsxLanguage as J,tsxLanguage as K,javascriptLanguage as $,javascript as Q}from"./cm-lang-javascript-E0JyLAes.js";import{E as X}from"./cm-view-CiSFjroV.js";import{E as Y}from"./cm-state-X9WpHEQO.js";import{L as Z,s as z,c as ee,d as te,f as le,l as ae}from"./cm-language-CDsY7zq0.js";import"./vendor-lezer-lr-eZ5kYecM.js";import"./vendor-lezer-common-tVQBIsvN.js";import"./vendor-lezer-highlight-DuEf3ZFH.js";import"./vendor-lezer-css-BMlSRxbI.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-style-mod-Bs6eFhZE.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-lezer-javascript-BsA5KTFy.js";import"./cm-autocomplete-t9rzw_D0.js";const T=["_blank","_self","_top","_parent"],S=["ascii","utf-8","utf-16","latin1","latin1"],N=["get","post","put","delete"],E=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],c=["true","false"],l={},ne={a:{attrs:{href:null,ping:null,type:null,media:null,target:T,hreflang:null}},abbr:l,address:l,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:l,aside:l,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:l,base:{attrs:{href:null,target:T}},bdi:l,bdo:l,blockquote:{attrs:{cite:null}},body:l,br:l,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:E,formmethod:N,formnovalidate:["novalidate"],formtarget:T,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:l,center:l,cite:l,code:l,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:l,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:l,div:l,dl:l,dt:l,em:l,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:l,figure:l,footer:l,form:{attrs:{action:null,name:null,"accept-charset":S,autocomplete:["on","off"],enctype:E,method:N,novalidate:["novalidate"],target:T}},h1:l,h2:l,h3:l,h4:l,h5:l,h6:l,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:l,hgroup:l,hr:l,html:{attrs:{manifest:null}},i:l,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:E,formmethod:N,formnovalidate:["novalidate"],formtarget:T,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:l,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:l,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:l,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:S,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:l,noscript:l,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:l,param:{attrs:{name:null,value:null}},pre:l,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:l,rt:l,ruby:l,samp:l,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:S}},section:l,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:l,source:{attrs:{src:null,type:null,media:null}},span:l,strong:l,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:l,summary:l,sup:l,table:l,tbody:l,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:l,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:l,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:l,time:{attrs:{datetime:null}},title:l,tr:l,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:l,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:l},D={accesskey:null,class:null,contenteditable:c,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:c,autocorrect:c,autocapitalize:c,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":c,"aria-autocomplete":["inline","list","both","none"],"aria-busy":c,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":c,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":c,"aria-hidden":c,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":c,"aria-multiselectable":c,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":c,"aria-relevant":null,"aria-required":c,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},F="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(e=>"on"+e);for(let e of F)D[e]=null;class C{constructor(n,r){this.tags={...ne,...n},this.globalAttrs={...D,...r},this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}C.default=new C;function y(e,n,r=e.length){if(!n)return"";let a=n.firstChild,t=a&&a.getChild("TagName");return t?e.sliceString(t.from,Math.min(t.to,r)):""}function v(e,n=!1){for(;e;e=e.parent)if(e.name=="Element")if(n)n=!1;else return e;return null}function P(e,n,r){let a=r.tags[y(e,v(n))];return a?.children||r.allTags}function j(e,n){let r=[];for(let a=v(n);a&&!a.type.isTop;a=v(a.parent)){let t=y(e,a);if(t&&a.lastChild.name=="CloseTag")break;t&&r.indexOf(t)<0&&(n.name=="EndTag"||n.from>=a.firstChild.to)&&r.push(t)}return r}const V=/^[:\-\.\w\u00b7-\uffff]*$/;function L(e,n,r,a,t){let s=/\s*>/.test(e.sliceDoc(t,t+5))?"":">",o=v(r,r.name=="StartTag"||r.name=="TagName");return{from:a,to:t,options:P(e.doc,o,n).map(u=>({label:u,type:"type"})).concat(j(e.doc,r).map((u,i)=>({label:"/"+u,apply:"/"+u+s,type:"type",boost:99-i}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function I(e,n,r,a){let t=/\s*>/.test(e.sliceDoc(a,a+5))?"":">";return{from:r,to:a,options:j(e.doc,n).map((s,o)=>({label:s,apply:s+t,type:"type",boost:99-o})),validFor:V}}function re(e,n,r,a){let t=[],s=0;for(let o of P(e.doc,r,n))t.push({label:"<"+o,type:"type"});for(let o of j(e.doc,r))t.push({label:"",type:"type",boost:99-s++});return{from:a,to:a,options:t,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function oe(e,n,r,a,t){let s=v(r),o=s?n.tags[y(e.doc,s)]:null,u=o&&o.attrs?Object.keys(o.attrs):[],i=o&&o.globalAttrs===!1?u:u.length?u.concat(n.globalAttrNames):n.globalAttrNames;return{from:a,to:t,options:i.map(f=>({label:f,type:"property"})),validFor:V}}function se(e,n,r,a,t){var s;let o=(s=r.parent)===null||s===void 0?void 0:s.getChild("AttributeName"),u=[],i;if(o){let f=e.sliceDoc(o.from,o.to),g=n.globalAttrs[f];if(!g){let p=v(r),m=p?n.tags[y(e.doc,p)]:null;g=m?.attrs&&m.attrs[f]}if(g){let p=e.sliceDoc(a,t).toLowerCase(),m='"',d='"';/^['"]/.test(p)?(i=p[0]=='"'?/^[^"]*$/:/^[^']*$/,m="",d=e.sliceDoc(t,t+1)==p[0]?"":p[0],p=p.slice(1),a++):i=/^[^\s<>='"]*$/;for(let h of g)u.push({label:h,apply:m+h+d,type:"constant"})}}return{from:a,to:t,options:u,validFor:i}}function B(e,n){let{state:r,pos:a}=n,t=z(r).resolveInner(a,-1),s=t.resolve(a);for(let o=a,u;s==t&&(u=t.childBefore(o));){let i=u.lastChild;if(!i||!i.type.isError||i.fromB(a,t)}const ue=$.parser.configure({top:"SingleExpression"}),M=[{tag:"script",attrs:e=>e.type=="text/typescript"||e.lang=="ts",parser:W.parser},{tag:"script",attrs:e=>e.type=="text/babel"||e.type=="text/jsx",parser:J.parser},{tag:"script",attrs:e=>e.type=="text/typescript-jsx",parser:K.parser},{tag:"script",attrs(e){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(e.type)},parser:ue},{tag:"script",attrs(e){return!e.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(e.type)},parser:$.parser},{tag:"style",attrs(e){return(!e.lang||e.lang=="css")&&(!e.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(e.type))},parser:_.parser}],G=[{name:"style",parser:_.parser.configure({top:"Styles"})}].concat(F.map(e=>({name:e,parser:$.parser}))),R=Z.define({name:"html",parser:H.configure({props:[te.add({Element(e){let n=/^(\s*)(<\/)?/.exec(e.textAfter);return e.node.to<=e.pos+n[0].length?e.continue():e.lineIndent(e.node.from)+(n[2]?0:e.unit)},"OpenTag CloseTag SelfClosingTag"(e){return e.column(e.node.from)+e.unit},Document(e){if(e.pos+/\s*/.exec(e.textAfter)[0].lengthe.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:""}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),x=R.configure({wrap:O(M,G)});function Ee(e={}){let n="",r;e.matchClosingTags===!1&&(n="noMatch"),e.selfClosingTags===!0&&(n=(n?n+" ":"")+"selfClosing"),(e.nestedLanguages&&e.nestedLanguages.length||e.nestedAttributes&&e.nestedAttributes.length)&&(r=O((e.nestedLanguages||[]).concat(M),(e.nestedAttributes||[]).concat(G)));let a=r?R.configure({wrap:r,dialect:n}):n?x.configure({dialect:n}):x;return new ee(a,[x.data.of({autocomplete:ie(e)}),e.autoCloseTags!==!1?de:[],Q().support,U().support])}const q=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),de=X.inputHandler.of((e,n,r,a,t)=>{if(e.composing||e.state.readOnly||n!=r||a!=">"&&a!="/"||!x.isActiveAt(e.state,n,-1))return!1;let s=t(),{state:o}=s,u=o.changeByRange(i=>{var f,g,p;let m=o.doc.sliceString(i.from-1,i.to)==a,{head:d}=i,h=z(o).resolveInner(d,-1),b;if(m&&a==">"&&h.name=="EndTag"){let w=h.parent;if(((g=(f=w.parent)===null||f===void 0?void 0:f.lastChild)===null||g===void 0?void 0:g.name)!="CloseTag"&&(b=y(o.doc,w.parent,d))&&!q.has(b)){let A=d+(o.doc.sliceString(d,d+1)===">"?1:0),k=``;return{range:i,changes:{from:d,to:A,insert:k}}}}else if(m&&a=="/"&&h.name=="IncompleteCloseTag"){let w=h.parent;if(h.from==d-2&&((p=w.lastChild)===null||p===void 0?void 0:p.name)!="CloseTag"&&(b=y(o.doc,w,d))&&!q.has(b)){let A=d+(o.doc.sliceString(d,d+1)===">"?1:0),k=`${b}>`;return{range:Y.cursor(d+k.length,-1),changes:{from:d,to:A,insert:k}}}}return{range:i}});return u.changes.empty?!1:(e.dispatch([s,o.update(u,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});export{de as autoCloseTags,Ee as html,Ne as htmlCompletionSource,ie as htmlCompletionSourceWith,x as htmlLanguage};