838eec30a8
- Implemented a new composable `useTheme` for managing theme state. - Added functions to read and write theme preference to local storage. - Applied theme styles to the DOM based on user preference. - Introduced a toggle function to switch between light and dark themes. refactor: enhance copilot plugin functionality - Improved request handling with sequence and document versioning. - Refactored ghost text handling to improve clarity and efficiency. - Updated markdown insertion logic to handle parsed content more robustly. - Enhanced error handling and logging for better debugging. style: update global styles for light and dark themes - Defined CSS variables for light and dark themes to streamline styling. - Improved overall styling consistency and responsiveness. - Added transitions for smoother theme changes and interactions.
2 lines
14 KiB
JavaScript
2 lines
14 KiB
JavaScript
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:"</"+o+">",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.from<i.to)break;s=t=u,o=i.from}return t.name=="TagName"?t.parent&&/CloseTag$/.test(t.parent.name)?I(r,t,t.from,a):L(r,e,t,t.from,a):t.name=="StartTag"||t.name=="IncompleteTag"?L(r,e,t,a,a):t.name=="StartCloseTag"||t.name=="IncompleteCloseTag"?I(r,t,a,a):t.name=="OpenTag"||t.name=="SelfClosingTag"||t.name=="AttributeName"?oe(r,e,t,t.name=="AttributeName"?t.from:a,a):t.name=="Is"||t.name=="AttributeValue"||t.name=="UnquotedAttributeValue"?se(r,e,t,t.name=="Is"?a:t.from,a):n.explicit&&(s.name=="Element"||s.name=="Text"||s.name=="Document")?re(r,e,t,a):null}function Ne(e){return B(C.default,e)}function ie(e){let{extraTags:n,extraGlobalAttributes:r}=e,a=r||n?new C(n,r):C.default;return t=>B(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].length<e.node.to)return e.continue();let n=null,r;for(let a=e.node;;){let t=a.lastChild;if(!t||t.name!="Element"||t.to!=a.to)break;n=a=t}return n&&!((r=n.lastChild)&&(r.name=="CloseTag"||r.name=="SelfClosingTag"))?e.lineIndent(n.from)+e.unit:null}}),le.add({Element(e){let n=e.firstChild,r=e.lastChild;return!n||n.name!="OpenTag"?null:{from:n.to,to:r.name=="CloseTag"?r.from:e.to}}}),ae.add({"OpenTag CloseTag":e=>e.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"<!--",close:"-->"}},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=`</${b}>`;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};
|