diff --git a/static/assets/app.js b/static/assets/app.js index 21ca8b93d..5f8525d82 100644 --- a/static/assets/app.js +++ b/static/assets/app.js @@ -386,7 +386,7 @@ ${n.message}`)))}function Gie(){return import("./mermaid.core-Y5ZWDILJ.js" `||l=="\r")&&(l="\xA0");let c=s.bottom-s.top;return new h5(s.left-a.left,s.top-a.top+c*(1-o),c*o,i?"cm-fat-cursor cm-cursor-primary":"cm-fat-cursor cm-cursor-secondary",l,o!=1)}var Qoe=xe.theme({".cm-emacsMode .cm-cursorLayer:not(.cm-vimCursorLayer)":{display:"none"},".cm-vim-panel":{padding:"5px 10px",backgroundColor:"#fffa8f",fontFamily:"monospace"},".cm-vim-panel input":{border:"none",outline:"none",backgroundColor:"#fffa8f"}}),_oe=dt.fromClass(class{constructor(t){this.status="",this.view=t,this.em=new ed(t),this.blockCursor=new d5(t),this.view.scrollDOM.classList.add("cm-emacsMode")}update(t){t.docChanged&&(this.em.$emacsMark=null,this.em.updateMarksOnChange(t.changes)),this.blockCursor.update(t)}destroy(){this.view.scrollDOM.classList.remove("cm-emacsMode"),this.blockCursor.destroy()}},{eventHandlers:{mousedown:function(){this.em.$emacsMark=null}},provide:t=>vr.of([{any:function(e,r){var i;return!!(!((i=e.plugin(t))===null||i===void 0)&&i.em.handleKeyboard(r))}}])}),Aoe=De.define(),Roe=Ot.define({create:()=>!1,update(t,e){for(let r of e.effects)r.is(Aoe)&&(t=r.value);return t},provide:t=>an.from(t,e=>e?$oe:null)});function $oe(t){let e=document.createElement("div");return e.className="cm-vim-panel",{top:!1,dom:e}}function IX(t={}){return[Qoe,_oe,Eoe,Roe]}var Xoe={Return:"Return",Escape:"Esc",Insert:"Ins",ArrowLeft:"Left",ArrowRight:"Right",ArrowUp:"Up",ArrowDown:"Down",Enter:"Return",Divide:"/",Slash:"/",Multiply:"*",Subtract:"-",Minus:"-",Equal:"="},Ioe={Shift:1,Alt:1,Command:1,Control:1,CapsLock:1},f5={},ed=class t{constructor(e){this.view=e,this.$data={count:0,keyChain:"",lastCommand:""},this.$emacsMarkRing=[],this.$emacsMark=null}static bindKey(e,r){e.split("|").forEach(function(i){let n="",o=i.split(/\s+/);o.forEach(function(s,a){let l=s.split(/-(?=.)/),c=l.pop();l.length&&(n+=l.sort().join("-")+"-"),n+=c,a===o.length-1?f5[n]=r:(f5[n]="null",n+=" ")})})}static getKey(e){var r=e.code,i=e.key;if(Ioe[i])return["","",""];r.length>1&&(r[0]=="N"&&(r=r.replace(/^Numpad/,"")),r[0]=="K"&&(r=r.replace(/^Key/,""))),r=Xoe[r]||r,r.length==1&&(r=r.toLowerCase());var n="";return e.ctrlKey&&(n+="C-"),e.metaKey&&(n+="CMD-"),e.altKey&&(n+="M-"),e.shiftKey&&(n+="S-"),[r,n,i]}static addCommands(e){Object.keys(e).forEach(function(r){var i=e[r];typeof i=="function"&&(i={exec:i}),t.commands[r]=i})}static execCommand(e,r,i,n=1){var o=void 0;if(typeof e=="function")for(var s=0;s1&&e.handlesCount&&(i||(i={}),typeof i=="object"&&(i.count=n),n=1);for(var s=0;sthis.updateMark(r,e)).filter(Boolean)}updateMark(e,r){if(e){var i=e.map(function(n){return r.mapPos(n,1,qt.TrackDel)}).filter(n=>n!=null);return i.length==0?null:i}}emacsMark(){return this.$emacsMark}setEmacsMark(e){this.$emacsMark=e}pushEmacsMark(e,r){var i=this.$emacsMark;i&&this.$emacsMarkRing.push(i),!e||r?this.setEmacsMark(e):this.$emacsMarkRing.push(e)}popEmacsMark(){var e=this.emacsMark();return e?(this.setEmacsMark(null),e):this.$emacsMarkRing.pop()}getLastEmacsMark(){return this.$emacsMark||this.$emacsMarkRing.slice(-1)[0]}getCopyText(){var e=this.view.state;return e.selection.ranges.map(r=>e.sliceDoc(r.from,r.to)).join(` `)}clearSelection(){var e=this.view,r=e.state.selection,i=!r.ranges.some(o=>o.from!=o.to);if(i)return!1;var n=r.ranges.map(o=>ce.range(o.head,o.head));return e.dispatch({selection:ce.create(n,r.mainIndex)}),!0}onPaste(e){var r=this.view,i=r.state.selection,n;if(i.ranges.length>1){var o=e.split(` `);o.length==i.ranges.length&&(n=o)}var s=0,a=r.state.changeByRange(l=>{var c=n?n[s]:e;return s++,{changes:{from:l.from,to:l.to,insert:c},range:ce.cursor(l.from+c.length)}});r.dispatch(a)}};ed.commands={};var XX={"Up|C-p":{command:"goOrSelect",args:[Lh,Nc]},"Down|C-n":{command:"goOrSelect",args:[zh,jc]},"Left|C-b":{command:"goOrSelect",args:[DO,zw]},"Right|C-f":{command:"goOrSelect",args:[E$,Lw]},"C-Left|M-b":{command:"goOrSelect",args:[UO,WO]},"C-Right|M-f":{command:"goOrSelect",args:[NO,ZO]},"Home|C-a":{command:"goOrSelect",args:[BO,Nh]},"End|C-e":{command:"goOrSelect",args:[VO,jh]},"C-Home|S-M-,":{command:"goOrSelect",args:[Bh,Bc]},"C-End|S-M-.":{command:"goOrSelect",args:[Vh,Vc]},"S-Up|S-C-p":Nc,"S-Down|S-C-n":jc,"S-Left|S-C-b":zw,"S-Right|S-C-f":Lw,"S-C-Left|S-M-b":$$,"S-C-Right|S-M-f":R$,"S-Home|S-C-a":Nh,"S-End|S-C-e":jh,"S-C-Home":Bc,"S-C-End":Vc,"C-l":"recenterTopBottom","M-s":"centerSelection","M-g":"gotoline","C-x C-p|C-x h":YO,"PageDown|C-v|C-Down":{command:"goOrSelect",args:[Uc,vl]},"PageUp|M-v|C-Up":{command:"goOrSelect",args:[Dc,vl]},"S-C-Down":vl,"S-C-Up":Uh,"C-s":Gc,"C-r":Gc,"M-C-s":"findnext","M-C-r":"findprevious","S-M-5":"replace",Backspace:qc,"Delete|C-d":qh,"Return|C-m":{command:"insertstring",args:` -`},"C-o":Fh,"M-d|C-Delete":{command:"killWord",args:"right"},"C-Backspace|M-Backspace|M-Delete":{command:"killWord",args:"left"},"C-k":"killLine","M-h":"selectParagraph","M-@|M-S-2":"markWord","C-y|S-Delete":"yank","M-y":"yankRotate","C-g":"keyboardQuit","C-w|C-S-w":"killRegion","M-w":"killRingSave","C-Space":"setMark","C-x C-x":"exchangePointAndMark","C-t":GO,"M-u":{command:"changeCase",args:{dir:1}},"M-l":{command:"changeCase",args:{dir:-1}},"C-x C-u":{command:"changeCase",args:{dir:1,region:!0}},"C-x C-l":{command:"changeCase",args:{dir:1,region:!0}},"M-/":lh,"C-u":"universalArgument","M-;":Rh,"C-/|C-x u|S-C--|C-z":bl,"S-C-/|S-C-x u|C--|S-C-z":ca,"C-x r":"selectRectangularRegion","M-x":{command:"focusCommandLine",args:"M-x "},Esc:"unsetTransientMark"};for(let t in XX)XX[t];var ns=class t{constructor(e=[]){this.ops=e}retain(e){return e<=0?this:this.append({retain:e})}insert(e){return e===""?this:this.append({insert:e})}delete(e){return e<=0?this:this.append({delete:e})}append(e){if(this.ops.length===0)return this.ops.push(e),this;let r=this.ops.pop();return Ci(e)&&Pi(r)?this.append(e).append(r):Ci(e)&&Ci(r)?(this.ops.push({insert:r.insert+e.insert}),this):Pi(e)&&Pi(r)?(this.ops.push({delete:r.delete+e.delete}),this):$n(e)&&$n(r)?(this.ops.push({retain:r.retain+e.retain}),this):(this.ops.push(r,e),this)}compose(e){let r=new xl(this.ops),i=new xl(e.ops),n=new t;for(;r.hasNext()||i.hasNext();)if(Ci(i.peek()))n.append(i.next());else if(Pi(r.peek()))n.append(r.next());else{let o=Math.min(r.peekLength(),i.peekLength()),s=r.next(o),a=i.next(o);$n(a)?n.append(s):Pi(a)&&$n(s)&&n.append(a)}return n._trim()}transform(e,r){if(r!=="left"&&r!=="right")throw new Error(`Invalid priority "${r}", should be either "left" or "right"`);let i=new xl(this.ops),n=new xl(e.ops),o=new t;for(;i.hasNext()||n.hasNext();)if(Ci(i.peek())&&(!Ci(n.peek())||r==="left")){let s=fg(i.next());o.retain(s)}else if(Ci(n.peek()))o.append(n.next());else{let s=Math.min(i.peekLength(),n.peekLength()),a=i.next(s),l=n.next(s);if(Pi(a))continue;Pi(l)?o.append(l):o.retain(s)}return o._trim()}_trim(){return this.ops.length>0&&$n(this.ops[this.ops.length-1])&&this.ops.pop(),this}transformPosition(e){let r=new xl(this.ops),i=0;for(;r.hasNext()&&i{if(Ci(e))return e.insert;if($n(e))return e.retain;if(Pi(e))return-e.delete;throw new Error(`Invalid operation ${e}`)})}static fromCompressed(e){return e.reduce((r,i)=>{if(typeof i=="string")return r.insert(i);if(typeof i=="number"&&i>=0)return r.retain(i);if(typeof i=="number"&&i<0)return r.delete(-i);throw new Error(`Invalid compressed operation ${i}`)},new this)}applyToString(e){let r="",i=0;return this.ops.forEach(n=>{$n(n)&&(r+=e.slice(i,i+n.retain),i+=n.retain),Ci(n)&&(r+=n.insert),Pi(n)&&(i+=n.delete)}),r+=e.slice(i),r}},xl=class{constructor(e){this.ops=e,this.index=0,this.offset=0}hasNext(){return this.peekLength()<1/0}next(e=1/0){let r=this.ops[this.index];if(r){let i=this.offset,n=fg(r);if(e>=n-i?(e=n-i,this.index+=1,this.offset=0):this.offset+=e,Pi(r))return{delete:e};if($n(r))return{retain:e};if(Ci(r))return{insert:r.insert.substr(i,e)}}else return{retain:e}}peek(){return this.ops[this.index]||{retain:1/0}}peekLength(){return this.ops[this.index]?fg(this.ops[this.index])-this.offset:1/0}};function fg(t){if(Ci(t))return t.insert.length;if($n(t))return t.retain;if(Pi(t))return t.delete}function Ci(t){return typeof t.insert=="string"}function $n(t){return typeof t.retain=="number"}function Pi(t){return typeof t.delete=="number"}var MX=Re.define({combine(t){return Ft(t,{})}}),LX=Kr.define(),Loe=dt.fromClass(class{constructor(t){let{collabClient:e}=t.state.facet(MX);this.collabClient=e,this.deltaSubscription=e.onDelta((r,{remote:i})=>{if(i)return t.dispatch({changes:p5(r),selection:ma(t.state.selection,r),annotations:[Jt.addToHistory.of(!1),Jt.remote.of(!0),LX.of(!0)],filter:!1})})}update(t){if(!t.transactions.some(r=>r.annotation(LX))){if(t.docChanged){let r=zoe(t.changes),i=zX(t);this.collabClient.handleClientDelta(r,i)}else if(t.focusChanged||!t.state.selection.eq(t.startState.selection)){let r=zX(t);this.collabClient.handleClientSelection(r)}}}destroy(){this.deltaSubscription.destroy()}});function p5(t){let e=[],r=0;for(let i of t.ops)$n(i)&&(r+=i.retain),Ci(i)&&e.push({from:r,to:r,insert:i.insert}),Pi(i)&&(e.push({from:r,to:r+i.delete}),r+=i.delete);return e}function zoe(t){let e=[];return t.iterChanges((r,i,n,o,s)=>{let a=new ns;r&&a.retain(r),r!==i&&a.delete(i-r);let l=s.toString();l&&a.insert(l),e.push(a)}),e.reverse().reduce((r,i)=>r.compose(i))}function zX(t){return t.view.hasFocus?t.state.selection:null}function ma(t,e){let r=t.ranges.map(i=>ce.range(e.transformPosition(i.anchor),e.transformPosition(i.head)));return ce.create(r,t.mainIndex)}function DX(t){return[Loe,MX.of({collabClient:t})]}var Moe=xe.baseTheme({".cm-peerCursor":{position:"relative",display:"inline",zIndex:"1"},".cm-peerCursorCaret":{position:"absolute",left:"0",top:"0",bottom:"0",height:"100%",width:"2px"},".cm-peerCursorLabel":{position:"absolute",left:"0",top:"0",transform:"translateY(-100%)",whiteSpace:"nowrap",padding:"1px 8px",fontSize:"12px",color:"#f8fafc",visibility:"hidden",transitionProperty:"visibility",transitionDuration:"0s",transitionDelay:"1.5s"},".cm-peerCursor .cm-peerCursorLabel:hover":{visibility:"visible"},".cm-peerCursor .cm-peerCursorCaret:hover + .cm-peerCursorLabel":{visibility:"visible",transitionDelay:"0s"},".cm-peerCursor.cm-peerCursor-inline .cm-peerCursorLabel":{marginLeft:"4px",transform:"none"}}),NX=Re.define({combine(t){return Ft(t,{})}}),Doe=dt.fromClass(class{constructor(t){let{collabClient:e}=t.state.facet(NX);this.peers=e.getPeers(),this.decorations=Et.of(Object.values(this.peers).flatMap(UX),!0),this.peersSubscription=e.onPeersChange(r=>{let i=this.peers;if(i===r)return;let n=new Set,o=[];for(let s in r){let a=r[s],l=i[s];l&&a.eq(l)?n.add(s):o.push(a)}this.decorations=this.decorations.update({filter:(s,a,l)=>n.has(l.spec.id),add:o.flatMap(UX),sort:!0}),this.peers=r,setTimeout(()=>{t.update([])},0)})}destroy(){this.peersSubscription.destroy()}},{decorations:t=>t.decorations}),m5=class extends Tr{constructor(e,r,i){super(),this.cursorPos=e,this.color=r,this.label=i}toDOM(e){let r=document.createElement("div");r.classList.add("cm-peerCursor"),e.state.doc.lineAt(this.cursorPos).number===1&&r.classList.add("cm-peerCursor-inline");let n=document.createElement("div");n.classList.add("cm-peerCursorCaret"),n.style.backgroundColor=this.color;let o=document.createElement("div");return o.classList.add("cm-peerCursorLabel"),o.textContent=this.label,o.style.backgroundColor=this.color,r.appendChild(n),r.appendChild(o),r}eq(e){return e.cursorPos===this.cursorPos&&e.color===this.color&&e.label===this.label}};function UX(t){let{id:e,selection:r,meta:{hex_color:i,name:n}}=t;if(!r)return[];let o=Le.mark({class:"cm-peerSelection",attributes:{style:`background-color: ${i}30`},id:e}),s=r.ranges.filter(l=>!l.empty).map(({from:l,to:c})=>o.range(l,c)),a=r.ranges.map(l=>{let c=l.head;return Le.widget({widget:new m5(c,i,n),id:e}).range(c)});return s.concat(a)}function jX(t){return[Doe,NX.of({collabClient:t}),Moe]}var Uoe=xe.baseTheme({".cm-doctestDetails":{paddingTop:"4px",paddingBottom:"4px",paddingLeft:"6px"},".cm-doctestDetailsContent":{whiteSpace:"pre-wrap",border:"1px solid #424857",paddingTop:"6px",paddingBottom:"6px",marginLeft:"-8px",paddingLeft:"8px",borderRadius:"4px",marginRight:"16px"},"&light .cm-doctestDetailsContent":{borderColor:"#b6b7b9"},".cm-doctestStatus":{position:"relative"},".cm-doctestStatus::before":{borderRadius:"2px",width:"10px",height:"10px",display:"block",content:"''",position:"absolute",top:"50%",left:"0",transform:"translate(calc(-100% - 6px), -50%)"},".cm-doctestStatus-running::before":{backgroundColor:"#91a4b7"},".cm-doctestStatus-success::before":{backgroundColor:"#4ade80"},".cm-doctestStatus-failed::before":{backgroundColor:"#e97579"}}),BX=De.define(),VX=De.define(),qX=Ot.define({create(t){return Le.none},update(t,e){t=t.map(e.changes);for(let r of e.effects){if(r.is(BX)){let i=r.value;t=t.update({filter:(n,o,s)=>!i.some(a=>s.spec.report.line===a.line),add:i.flatMap(n=>Noe(n,e.state.doc)),sort:!0})}r.is(VX)&&(t=Le.none)}return t},provide(t){return xe.decorations.from(t)}});function Noe(t,e){let r=e.line(t.line).from+t.column,i=[Le.mark({class:`cm-doctestStatus cm-doctestStatus-${t.status}`,report:t}).range(r,r+1)];if(t.status==="failed"){let n=e.line(t.end_line+1);i.push(Le.widget({widget:new O5(t),block:!0,report:t}).range(n.from))}return i}var O5=class extends Tr{constructor(e){super(),this.report=e}toDOM(e){let r=document.createElement("div");r.classList.add("cm-doctestDetails");let i=document.createElement("div");return i.classList.add("cm-doctestDetailsContent"),i.classList.add("editor-theme-aware-ansi"),r.style.marginLeft=`${this.report.column}ch`,i.innerHTML=this.report.details,r.appendChild(i),r}eq(e){return this.report===e.report}};function FX(t,e){let r=[BX.of(e)];t.dispatch({effects:ZX(t.state,r)})}function WX(t){let e=[VX.of(null)];t.dispatch({effects:ZX(t.state,e)})}var joe=[qX,Uoe];function ZX(t,e){return t.field(qX,!1)?e:e.concat(De.appendConfig.of(joe))}var Boe=xe.baseTheme({".cm-signatureHint":{display:"flex"},".cm-signatureHintStepper":{padding:"4px 8px",borderRight:"1px solid black"},".cm-signatureHintContent":{padding:"4px"},".cm-signatureHintActiveArgument":{color:"gray"}}),td=Re.define({combine(t){return Ft(t,{})}}),GX=Re.define({}).from(td,({triggerCharacters:t,retriggerCharacters:e})=>({triggerCharacters:new Set(t),retriggerCharacters:new Set(t.concat(e))})),KX=De.define(),JX=De.define(),y5=De.define(),eI=De.define(),Xn=Ot.define({create(){return{context:null,hint:null}},update({context:t,hint:e},r){e=e&&e.setPosition(r.state.selection.main.head),Voe(r,!!e)&&(t=YX(r.state));for(let n of r.effects)n.is(KX)&&(n.value.signatureResult?e=g5.build(r.state,n.value.signatureResult):(t=null,e=null)),n.is(JX)&&(t=YX(r.state)),n.is(y5)&&(t=null,e=null),n.is(eI)&&(e=e&&e.setSelected(n.value));return{context:t,hint:e}},provide(t){return Yo.from(t,e=>e.hint&&e.hint.tooltip)}});function Voe(t,e){let{activateOnTyping:r}=t.state.facet(td),{triggerCharacters:i,retriggerCharacters:n}=t.state.facet(GX),o=t.startState.selection.main.head,s=t.state.selection.main.head,a=t.isUserEvent("input");if(t.docChanged){let l=!1;return t.changes.iterChangedRanges((c,u,f,d)=>{if(!l){if(cnew b5(i)})}setSelected(e){return new t(this.signatureResult,e,this.tooltip)}setPosition(e){return e===this.tooltip.pos?this:new t(this.signatureResult,this.selectedIdx,Be(ne({},this.tooltip),{pos:e}))}},b5=class{constructor(e){this.view=e;let{signatureResult:r}=e.state.field(Xn).hint;this.dom=document.createElement("div"),this.dom.classList.add("cm-signatureHint"),r.items.length>1&&(this.stepper=document.createElement("div"),this.stepper.classList.add("cm-signatureHintStepper"),this.dom.appendChild(this.stepper));let i=document.createElement("div");i.classList.add("cm-signatureHintContent"),this.contentLeft=document.createElement("span"),this.contentActive=document.createElement("span"),this.contentActive.classList.add("cm-signatureHintActiveArgument"),this.contentRight=document.createElement("span"),i.appendChild(this.contentLeft),i.appendChild(this.contentActive),i.appendChild(this.contentRight),this.dom.appendChild(i)}mount(){this.updateSelected()}update(e){let r=e.startState.field(Xn),i=e.state.field(Xn);r!==i&&this.updateSelected()}updateSelected(){let{signatureResult:e,selectedIdx:r}=this.view.state.field(Xn).hint,{activeArgumentIdx:i,items:n}=e,o=n[r],s=o.arguments[i];this.stepper&&(this.stepper.textContent=`${r+1}/${n.length}`);let a=o.signature.indexOf(s);this.contentLeft.textContent=o.signature.slice(0,a),this.contentActive.textContent=s,this.contentRight.textContent=o.signature.slice(a+s.length)}},qoe=dt.fromClass(class{constructor(t){this.view=t,this.query=null}update(t){let e=t.state.field(Xn);e.context!==t.startState.field(Xn).context&&(this.maybeAbortQuery(),e.context&&this.requestSignature(t.state))}destroy(){this.maybeAbortQuery()}requestSignature(t){let{context:e}=t.field(Xn),{source:r}=t.facet(td),i={aborted:!1};r(e).then(n=>{i.aborted||this.view.dispatch({effects:KX.of({signatureResult:n})})}),this.query=i}maybeAbortQuery(){this.query&&(this.query.aborted=!0,this.query=null)}},{eventHandlers:{blur(t){let e=this.view.state.field(Xn,!1);e&&e.hint&&this.view.state.facet(td).closeOnBlur&&setTimeout(()=>{this.view.dispatch({effects:[y5.of(null)]})},0)}}});function Foe(t){return t.dispatch({effects:[JX.of(null)]}),!0}function Woe(t){let e=t.state.field(Xn,!1);return!e||!e.hint?!1:(t.dispatch({effects:[y5.of(null)]}),!0)}var HX=t=>e=>{let r=e.state.field(Xn,!1);if(!r||!r.hint)return!1;let{signatureResult:i,selectedIdx:n}=r.hint;if(i.items.length===1)return!1;let o=i.items.length,s=n+(t?1:-1);return s<0&&(s+=o),s>=o&&(s-=o),e.dispatch({effects:[eI.of(s)]}),!0},Zoe=[{key:"Mod-Shift-Space",run:Foe},{key:"Escape",run:Woe},{key:"ArrowDown",run:HX(!0)},{key:"ArrowUp",run:HX(!1)}];function tI(t,{activateOnTyping:e=!0,closeOnBlur:r=!0,triggerCharacters:i=["(",","],retriggerCharacters:n=[")"]}={}){return[Xn,qoe,td.of({source:t,activateOnTyping:e,closeOnBlur:r,triggerCharacters:i,retriggerCharacters:n}),GX,cr.high(vr.of(Zoe)),Boe]}var rI=Re.define({combine(t){return Ft(t,{})}}),iI=De.define(),dg=Ot.define({create(){return{doc:null}},update({doc:t},e){e.docChanged&&(t=null);for(let r of e.effects)r.is(iI)&&(t=e.state.doc);return{doc:t}}}),Yoe=dt.fromClass(class{constructor(t){this.view=t,this.query=null}update(t){let e=t.state.field(dg);e.doc!==t.startState.field(dg).doc&&(this.maybeAbortQuery(),e.doc&&this.requestFormatterChanges(t.state))}destroy(){this.maybeAbortQuery()}requestFormatterChanges(t){let{doc:e}=t.field(dg),{source:r}=t.facet(rI),i={aborted:!1};r(e).then(n=>{!i.aborted&&n&&this.view.dispatch({changes:n})}),this.query=i}maybeAbortQuery(){this.query&&(this.query.aborted=!0,this.query=null)}});function Hoe(t){return t.state.readOnly?!1:(t.dispatch({effects:[iI.of(null)]}),!0)}var Goe=[{key:"Ctrl-Shift-i",mac:"Alt-Shift-f",win:"Alt-Shift-f",run:Hoe}];function nI(t){return[dg,Yoe,rI.of({source:t}),vr.of(Goe)]}function oI(t,e){let r=e;for(;!t.endsWith(r);)r=r.slice(0,-1);return r.length}var Koe=xe.baseTheme({".cm-readOnlyHint":{padding:"4px"}}),sI=De.define(),v5=De.define(),pg=Ot.define({create(){return{tooltip:null}},update({tooltip:t},e){e.state.selection.eq(e.startState.selection)||(t=null);for(let r of e.effects)r.is(sI)&&(t={pos:e.state.selection.main.head,above:!0,create:Joe}),r.is(v5)&&(t=null);return{tooltip:t}},provide(t){return Yo.from(t,e=>e.tooltip)}});function Joe(t){let e=document.createElement("div");return e.classList.add("cm-readOnlyHint"),e.textContent="This editor is read-only",{dom:e}}var ese=dt.fromClass(class{constructor(t){this.view=t}},{eventHandlers:{input(t){this.view.state.readOnly&&(this.view.state.field(pg).tooltip||this.view.dispatch({effects:sI.of(null)}))},blur(t){this.view.state.readOnly&&this.view.state.field(pg).tooltip&&setTimeout(()=>{this.view.dispatch({effects:[v5.of(null)]})},0)}}});function tse(t){let e=t.state.field(pg,!1);return!e||!e.tooltip?!1:(t.dispatch({effects:[v5.of(null)]}),!0)}var rse=[{key:"Escape",run:tse}];function aI(){return[pg,ese,vr.of(rse),Koe]}var ise=5e3,rd=class{constructor(e,r){Nt(this,"_onDelta",new Cr);Nt(this,"onDelta",this._onDelta.event);Nt(this,"_onPeersChange",new Cr);Nt(this,"onPeersChange",this._onPeersChange.event);this.connection=e,this.revision=r,this.clientId=e.getClientId(),this.peers={},this.updatePeers(e.getClients()),this.inflightDelta=null,this.bufferDelta=null,this.selection=null,this.selectionChanged=!1,this.revisionReportTimeoutId=null,this.subscriptions=[e.onDelta(this.handleServerDelta.bind(this)),e.onAcknowledgement(this.handleServerAcknowledgement.bind(this)),e.onSelection(this.handleServerSelection.bind(this)),e.onClientsUpdate(this.handleServerClientsUpdate.bind(this))]}destroy(){this.subscriptions.forEach(e=>e.destroy())}getPeers(){return this.peers}handleClientDelta(e,r){this.peers=lI(this.peers,e),this.selection=r,this.inflightDelta?this.bufferDelta?this.bufferDelta=this.bufferDelta.compose(e):this.bufferDelta=e:(this.inflightDelta=e,this.sendDelta()),this._onDelta.dispatch(e,{remote:!1}),this._onPeersChange.dispatch(this.peers)}handleClientSelection(e){this.selection=e,this.inflightDelta?this.selectionChanged=!0:this.sendSelection()}handleServerDelta(e,r,i){this.revision++;let{inflightDelta:n,bufferDelta:o}=this;n&&([e,n]=[n.transform(e,"right"),e.transform(n,"left")],r=r&&ma(r,n)),o&&([e,o]=[o.transform(e,"right"),e.transform(o,"left")],r=r&&ma(r,o)),this.inflightDelta=n,this.bufferDelta=o,this.selection=this.selection&&ma(this.selection,e);let[s,a]=RO(this.peers,i);a=lI(a,e),s&&(a[i]=new Jc(s.id,s.meta,r)),this.peers=a,this._onDelta.dispatch(e,{remote:!0}),this._onPeersChange.dispatch(this.peers),this.maybeScheduleRevisionReport()}handleServerAcknowledgement(){this.revision++,this.inflightDelta=null,this.bufferDelta&&(this.inflightDelta=this.bufferDelta,this.bufferDelta=null,this.sendDelta())}handleServerSelection(e,r){if(!this.peers.hasOwnProperty(r))return;let{inflightDelta:i,bufferDelta:n}=this;i&&(e=e&&ma(e,i)),n&&(e=e&&ma(e,n));let o=this.peers[r];this.peers=Be(ne({},this.peers),{[r]:new Jc(o.id,o.meta,e)}),this._onPeersChange.dispatch(this.peers)}handleServerClientsUpdate(e){this.updatePeers(e),this._onPeersChange.dispatch(this.peers)}sendDelta(){this.connection.sendDelta(this.inflightDelta,this.selection,this.revision),this.selectionChanged=!1,this.maybeCancelRevisionReport()}sendSelection(){Object.keys(this.peers).length>0&&this.connection.sendSelection(this.selection,this.revision),this.selectionChanged=!1}sendRevision(){this.connection.sendRevision(this.revision)}updatePeers(e){let r={};for(let i in e)if(i!==this.clientId){let n=this.peers[i],o=e[i],s=n?n.selection:null;r[i]=new Jc(i,o,s)}this.peers=r}maybeScheduleRevisionReport(){!this.inflightDelta&&!this.revisionReportTimeoutId&&(this.revisionReportTimeoutId=setTimeout(()=>{this.sendRevision(),this.revisionReportTimeoutId=null},ise))}maybeCancelRevisionReport(){this.revisionReportTimeoutId!==null&&(clearTimeout(this.revisionReportTimeoutId),this.revisionReportTimeoutId=null)}},Jc=class{constructor(e,r,i){this.id=e,this.meta=r,this.selection=i}eq(e){return this.id===e.id&&this.meta===e.meta&&(this.selection===e.selection||this.selection&&e.selection&&this.selection.eq(e.selection))}};function lI(t,e){let r={};for(let i in t){let n=t[i],o=n.selection&&ma(n.selection,e);r[i]=new Jc(n.id,n.meta,o)}return r}function cI(t){let e=t.state.selection;return e.ranges.length>1?(t.dispatch({selection:e.asSingle()}),!0):!1}var id=class{constructor(e,r,i,n,o,s,a){Nt(this,"_onMount",new Cr);Nt(this,"onMount",this._onMount.event);Nt(this,"_onChange",new Cr);Nt(this,"onChange",this._onChange.event);Nt(this,"_onBlur",new Cr);Nt(this,"onBlur",this._onBlur.event);Nt(this,"_onFocus",new Cr);Nt(this,"onFocus",this._onFocus.event);this.container=e,this.source=i,this.language=o,this.intellisense=s,this.readOnly=a,this.initialWidgets={},this.connection=r,this.collabClient=new rd(r,n),this.deltaSubscription=this.collabClient.onDelta((l,c)=>{this.source=l.applyToString(this.source),this._onChange.dispatch(this.source)})}isMounted(){return!!this.view}mount(){if(this.isMounted())throw new Error("The editor is already mounted");this.mountEditor(),this.setInitialWidgets(),this._onMount.dispatch()}getSource(){return this.source}getElementAtCursor(){if(!this.isMounted())return this.container;let{node:e}=this.view.domAtPos(this.view.state.selection.main.head);return e instanceof Element?e:e.parentElement}focus(){this.isMounted()||this.mount(),this.view.focus()}blur(){this.isMounted()&&this.view.hasFocus&&this.view.contentDOM.blur()}destroy(){this.isMounted()&&this.view.destroy(),this.collabClient.destroy(),this.deltaSubscription.destroy()}updateDoctests(e){if(this.isMounted())FX(this.view,e);else{this.initialWidgets.doctestReportsByLine=this.initialWidgets.doctestReportsByLine||{};for(let r of e)this.initialWidgets.doctestReportsByLine[r.line]=r}}clearDoctests(){this.isMounted()?WX(this.view):delete this.initialWidgets.doctestReportsByLine}setCodeMarkers(e){if(this.isMounted()){let r=this.view.state.doc,i=e.map(n=>{let o=r.lineAt(n.line),[,s,a]=o.text.match(/^(\s*).*?(\s*)$/),l=o.from+s.length,c=o.to-a.length;return{from:l,to:c,severity:n.severity,message:n.description}});this.view.dispatch(hX(this.view.state,i))}else this.initialWidgets.codeMarkers=e}mountEditor(){let e=er.get(),r=l=>l.toString().padStart(3," "),i=l=>{let c=document.createElement("i");return c.classList.add(l?"ri-arrow-down-s-line":"ri-arrow-right-s-line",l?"cm-gutterFoldMarker-open":null),c},n=xe.theme({"&":{fontSize:`${e.editor_font_size}px`}}),o=this.language==="markdown"&&e.editor_markdown_word_wrap,s=mr.matchLanguageName(vO,this.language,!1),a=[{key:"Escape",run:cI}];this.view=new xe({parent:this.container,doc:this.source,extensions:[dP({formatNumber:r}),lP(),pP(),aP(),oX(),DP({markerDOM:i}),jm({placeholderText:"\u22EF"}),rP(),sP(),cP(),uP(),Tt.allowMultipleSelections.of(!0),VP(),fQ(),_P(),x$(),Tt.readOnly.of(this.readOnly),aI(),vr.of(vX),vr.of(a),Tt.tabSize.of(2),Tt.lineSeparator.of(` +`},"C-o":Fh,"M-d|C-Delete":{command:"killWord",args:"right"},"C-Backspace|M-Backspace|M-Delete":{command:"killWord",args:"left"},"C-k":"killLine","M-h":"selectParagraph","M-@|M-S-2":"markWord","C-y|S-Delete":"yank","M-y":"yankRotate","C-g":"keyboardQuit","C-w|C-S-w":"killRegion","M-w":"killRingSave","C-Space":"setMark","C-x C-x":"exchangePointAndMark","C-t":GO,"M-u":{command:"changeCase",args:{dir:1}},"M-l":{command:"changeCase",args:{dir:-1}},"C-x C-u":{command:"changeCase",args:{dir:1,region:!0}},"C-x C-l":{command:"changeCase",args:{dir:1,region:!0}},"M-/":lh,"C-u":"universalArgument","M-;":Rh,"C-/|C-x u|S-C--|C-z":bl,"S-C-/|S-C-x u|C--|S-C-z":ca,"C-x r":"selectRectangularRegion","M-x":{command:"focusCommandLine",args:"M-x "},Esc:"unsetTransientMark"};for(let t in XX)XX[t];var ns=class t{constructor(e=[]){this.ops=e}retain(e){return e<=0?this:this.append({retain:e})}insert(e){return e===""?this:this.append({insert:e})}delete(e){return e<=0?this:this.append({delete:e})}append(e){if(this.ops.length===0)return this.ops.push(e),this;let r=this.ops.pop();return Ci(e)&&Pi(r)?this.append(e).append(r):Ci(e)&&Ci(r)?(this.ops.push({insert:r.insert+e.insert}),this):Pi(e)&&Pi(r)?(this.ops.push({delete:r.delete+e.delete}),this):$n(e)&&$n(r)?(this.ops.push({retain:r.retain+e.retain}),this):(this.ops.push(r,e),this)}compose(e){let r=new xl(this.ops),i=new xl(e.ops),n=new t;for(;r.hasNext()||i.hasNext();)if(Ci(i.peek()))n.append(i.next());else if(Pi(r.peek()))n.append(r.next());else{let o=Math.min(r.peekLength(),i.peekLength()),s=r.next(o),a=i.next(o);$n(a)?n.append(s):Pi(a)&&$n(s)&&n.append(a)}return n._trim()}transform(e,r){if(r!=="left"&&r!=="right")throw new Error(`Invalid priority "${r}", should be either "left" or "right"`);let i=new xl(this.ops),n=new xl(e.ops),o=new t;for(;i.hasNext()||n.hasNext();)if(Ci(i.peek())&&(!Ci(n.peek())||r==="left")){let s=fg(i.next());o.retain(s)}else if(Ci(n.peek()))o.append(n.next());else{let s=Math.min(i.peekLength(),n.peekLength()),a=i.next(s),l=n.next(s);if(Pi(a))continue;Pi(l)?o.append(l):o.retain(s)}return o._trim()}_trim(){return this.ops.length>0&&$n(this.ops[this.ops.length-1])&&this.ops.pop(),this}transformPosition(e){let r=new xl(this.ops),i=0;for(;r.hasNext()&&i{if(Ci(e))return e.insert;if($n(e))return e.retain;if(Pi(e))return-e.delete;throw new Error(`Invalid operation ${e}`)})}static fromCompressed(e){return e.reduce((r,i)=>{if(typeof i=="string")return r.insert(i);if(typeof i=="number"&&i>=0)return r.retain(i);if(typeof i=="number"&&i<0)return r.delete(-i);throw new Error(`Invalid compressed operation ${i}`)},new this)}applyToString(e){let r="",i=0;return this.ops.forEach(n=>{$n(n)&&(r+=e.slice(i,i+n.retain),i+=n.retain),Ci(n)&&(r+=n.insert),Pi(n)&&(i+=n.delete)}),r+=e.slice(i),r}},xl=class{constructor(e){this.ops=e,this.index=0,this.offset=0}hasNext(){return this.peekLength()<1/0}next(e=1/0){let r=this.ops[this.index];if(r){let i=this.offset,n=fg(r);if(e>=n-i?(e=n-i,this.index+=1,this.offset=0):this.offset+=e,Pi(r))return{delete:e};if($n(r))return{retain:e};if(Ci(r))return{insert:r.insert.substr(i,e)}}else return{retain:e}}peek(){return this.ops[this.index]||{retain:1/0}}peekLength(){return this.ops[this.index]?fg(this.ops[this.index])-this.offset:1/0}};function fg(t){if(Ci(t))return t.insert.length;if($n(t))return t.retain;if(Pi(t))return t.delete}function Ci(t){return typeof t.insert=="string"}function $n(t){return typeof t.retain=="number"}function Pi(t){return typeof t.delete=="number"}var MX=Re.define({combine(t){return Ft(t,{})}}),LX=Kr.define(),Loe=dt.fromClass(class{constructor(t){let{collabClient:e}=t.state.facet(MX);this.collabClient=e,this.deltaSubscription=e.onDelta((r,{remote:i})=>{if(i)return t.dispatch({changes:p5(r),selection:ma(t.state.selection,r),annotations:[Jt.addToHistory.of(!1),Jt.remote.of(!0),LX.of(!0)],filter:!1})})}update(t){if(!t.transactions.some(r=>r.annotation(LX))){if(t.docChanged){let r=zoe(t.changes),i=zX(t);this.collabClient.handleClientDelta(r,i)}else if(t.focusChanged||!t.state.selection.eq(t.startState.selection)){let r=zX(t);this.collabClient.handleClientSelection(r)}}}destroy(){this.deltaSubscription.destroy()}});function p5(t){let e=[],r=0;for(let i of t.ops)$n(i)&&(r+=i.retain),Ci(i)&&e.push({from:r,to:r,insert:i.insert}),Pi(i)&&(e.push({from:r,to:r+i.delete}),r+=i.delete);return e}function zoe(t){let e=[];return t.iterChanges((r,i,n,o,s)=>{let a=new ns;r&&a.retain(r),r!==i&&a.delete(i-r);let l=s.toString();l&&a.insert(l),e.push(a)}),e.reverse().reduce((r,i)=>r.compose(i))}function zX(t){return t.view.hasFocus?t.state.selection:null}function ma(t,e){let r=t.ranges.map(i=>ce.range(e.transformPosition(i.anchor),e.transformPosition(i.head)));return ce.create(r,t.mainIndex)}function DX(t){return[Loe,MX.of({collabClient:t})]}var Moe=xe.baseTheme({".cm-peerCursor":{position:"relative",display:"inline",zIndex:"1"},".cm-peerCursorCaret":{position:"absolute",left:"0",top:"0",bottom:"0",height:"100%",width:"2px"},".cm-peerCursorLabel":{position:"absolute",left:"0",top:"0",transform:"translateY(-100%)",whiteSpace:"nowrap",padding:"1px 8px",fontSize:"12px",color:"#f8fafc",visibility:"hidden",transitionProperty:"visibility",transitionDuration:"0s",transitionDelay:"1.5s"},".cm-peerCursor .cm-peerCursorLabel:hover":{visibility:"visible"},".cm-peerCursor .cm-peerCursorCaret:hover + .cm-peerCursorLabel":{visibility:"visible",transitionDelay:"0s"},".cm-peerCursor.cm-peerCursor-inline .cm-peerCursorLabel":{marginLeft:"4px",transform:"none"}}),NX=Re.define({combine(t){return Ft(t,{})}}),Doe=dt.fromClass(class{constructor(t){let{collabClient:e}=t.state.facet(NX);this.peers=e.getPeers(),this.decorations=Et.of(Object.values(this.peers).flatMap(UX),!0),this.peersSubscription=e.onPeersChange(r=>{let i=this.peers;if(i===r)return;let n=new Set,o=[];for(let s in r){let a=r[s],l=i[s];l&&a.eq(l)?n.add(s):o.push(a)}this.decorations=this.decorations.update({filter:(s,a,l)=>n.has(l.spec.id),add:o.flatMap(UX),sort:!0}),this.peers=r,setTimeout(()=>{t.update([])},0)})}destroy(){this.peersSubscription.destroy()}},{decorations:t=>t.decorations}),m5=class extends Tr{constructor(e,r,i){super(),this.cursorPos=e,this.color=r,this.label=i}toDOM(e){let r=document.createElement("div");r.classList.add("cm-peerCursor"),e.state.doc.lineAt(this.cursorPos).number===1&&r.classList.add("cm-peerCursor-inline");let n=document.createElement("div");n.classList.add("cm-peerCursorCaret"),n.style.backgroundColor=this.color;let o=document.createElement("div");return o.classList.add("cm-peerCursorLabel"),o.textContent=this.label,o.style.backgroundColor=this.color,r.appendChild(n),r.appendChild(o),r}eq(e){return e.cursorPos===this.cursorPos&&e.color===this.color&&e.label===this.label}};function UX(t){let{id:e,selection:r,meta:{hex_color:i,name:n}}=t;if(!r)return[];let o=Le.mark({class:"cm-peerSelection",attributes:{style:`background-color: ${i}30`},id:e}),s=r.ranges.filter(l=>!l.empty).map(({from:l,to:c})=>o.range(l,c)),a=r.ranges.map(l=>{let c=l.head;return Le.widget({widget:new m5(c,i,n),id:e}).range(c)});return s.concat(a)}function jX(t){return[Doe,NX.of({collabClient:t}),Moe]}var Uoe=xe.baseTheme({".cm-doctestDetails":{paddingTop:"4px",paddingBottom:"4px",paddingLeft:"6px"},".cm-doctestDetailsContent":{whiteSpace:"pre-wrap",border:"1px solid #424857",paddingTop:"6px",paddingBottom:"6px",marginLeft:"-8px",paddingLeft:"8px",borderRadius:"4px",marginRight:"16px"},"&light .cm-doctestDetailsContent":{borderColor:"#b6b7b9"},".cm-doctestStatus":{position:"relative"},".cm-doctestStatus::before":{borderRadius:"2px",width:"10px",height:"10px",display:"block",content:"''",position:"absolute",top:"50%",left:"0",transform:"translate(calc(-100% - 6px), -50%)"},".cm-doctestStatus-running::before":{backgroundColor:"#91a4b7"},".cm-doctestStatus-success::before":{backgroundColor:"#4ade80"},".cm-doctestStatus-failed::before":{backgroundColor:"#e97579"}}),BX=De.define(),VX=De.define(),qX=Ot.define({create(t){return Le.none},update(t,e){t=t.map(e.changes);for(let r of e.effects){if(r.is(BX)){let i=r.value;t=t.update({filter:(n,o,s)=>!i.some(a=>s.spec.report.line===a.line),add:i.flatMap(n=>Noe(n,e.state.doc)),sort:!0})}r.is(VX)&&(t=Le.none)}return t},provide(t){return xe.decorations.from(t)}});function Noe(t,e){let r=e.line(t.line).from+t.column,i=[Le.mark({class:`cm-doctestStatus cm-doctestStatus-${t.status}`,report:t}).range(r,r+1)];if(t.status==="failed"){let n=e.line(t.end_line+1);i.push(Le.widget({widget:new O5(t),block:!0,report:t}).range(n.from))}return i}var O5=class extends Tr{constructor(e){super(),this.report=e}toDOM(e){let r=document.createElement("div");r.classList.add("cm-doctestDetails");let i=document.createElement("div");return i.classList.add("cm-doctestDetailsContent"),i.classList.add("editor-theme-aware-ansi"),r.style.marginLeft=`${this.report.column}ch`,i.innerHTML=this.report.details,r.appendChild(i),r}eq(e){return this.report===e.report}};function FX(t,e){let r=[BX.of(e)];t.dispatch({effects:ZX(t.state,r)})}function WX(t){let e=[VX.of(null)];t.dispatch({effects:ZX(t.state,e)})}var joe=[qX,Uoe];function ZX(t,e){return t.field(qX,!1)?e:e.concat(De.appendConfig.of(joe))}var Boe=xe.baseTheme({".cm-signatureHint":{display:"flex"},".cm-signatureHintStepper":{padding:"4px 8px",borderRight:"1px solid black"},".cm-signatureHintContent":{padding:"4px"},".cm-signatureHintActiveArgument":{color:"gray"}}),td=Re.define({combine(t){return Ft(t,{})}}),GX=Re.define({}).from(td,({triggerCharacters:t,retriggerCharacters:e})=>({triggerCharacters:new Set(t),retriggerCharacters:new Set(t.concat(e))})),KX=De.define(),JX=De.define(),y5=De.define(),eI=De.define(),Xn=Ot.define({create(){return{context:null,hint:null}},update({context:t,hint:e},r){e=e&&e.setPosition(r.state.selection.main.head),Voe(r,!!e)&&(t=YX(r.state));for(let n of r.effects)n.is(KX)&&(n.value.signatureResult?e=g5.build(r.state,n.value.signatureResult):(t=null,e=null)),n.is(JX)&&(t=YX(r.state)),n.is(y5)&&(t=null,e=null),n.is(eI)&&(e=e&&e.setSelected(n.value));return{context:t,hint:e}},provide(t){return Yo.from(t,e=>e.hint&&e.hint.tooltip)}});function Voe(t,e){let{activateOnTyping:r}=t.state.facet(td),{triggerCharacters:i,retriggerCharacters:n}=t.state.facet(GX),o=t.startState.selection.main.head,s=t.state.selection.main.head,a=t.isUserEvent("input");if(t.docChanged){let l=!1;return t.changes.iterChangedRanges((c,u,f,d)=>{if(!l){if(cnew b5(i)})}setSelected(e){return new t(this.signatureResult,e,this.tooltip)}setPosition(e){return e===this.tooltip.pos?this:new t(this.signatureResult,this.selectedIdx,Be(ne({},this.tooltip),{pos:e}))}},b5=class{constructor(e){this.view=e;let{signatureResult:r}=e.state.field(Xn).hint;this.dom=document.createElement("div"),this.dom.classList.add("cm-signatureHint"),r.items.length>1&&(this.stepper=document.createElement("div"),this.stepper.classList.add("cm-signatureHintStepper"),this.dom.appendChild(this.stepper));let i=document.createElement("div");i.classList.add("cm-signatureHintContent"),this.contentLeft=document.createElement("span"),this.contentActive=document.createElement("span"),this.contentActive.classList.add("cm-signatureHintActiveArgument"),this.contentRight=document.createElement("span"),i.appendChild(this.contentLeft),i.appendChild(this.contentActive),i.appendChild(this.contentRight),this.dom.appendChild(i)}mount(){this.updateSelected()}update(e){let r=e.startState.field(Xn),i=e.state.field(Xn);r!==i&&this.updateSelected()}updateSelected(){let{signatureResult:e,selectedIdx:r}=this.view.state.field(Xn).hint,{activeArgumentIdx:i,items:n}=e,o=n[r],s=o.arguments[i];this.stepper&&(this.stepper.textContent=`${r+1}/${n.length}`);let a=o.signature.indexOf(s);this.contentLeft.textContent=o.signature.slice(0,a),this.contentActive.textContent=s,this.contentRight.textContent=o.signature.slice(a+s.length)}},qoe=dt.fromClass(class{constructor(t){this.view=t,this.query=null}update(t){let e=t.state.field(Xn);e.context!==t.startState.field(Xn).context&&(this.maybeAbortQuery(),e.context&&this.requestSignature(t.state))}destroy(){this.maybeAbortQuery()}requestSignature(t){let{context:e}=t.field(Xn),{source:r}=t.facet(td),i={aborted:!1};r(e).then(n=>{i.aborted||this.view.dispatch({effects:KX.of({signatureResult:n})})}),this.query=i}maybeAbortQuery(){this.query&&(this.query.aborted=!0,this.query=null)}},{eventHandlers:{blur(t){let e=this.view.state.field(Xn,!1);e&&e.hint&&this.view.state.facet(td).closeOnBlur&&setTimeout(()=>{this.view.dispatch({effects:[y5.of(null)]})},0)}}});function Foe(t){return t.dispatch({effects:[JX.of(null)]}),!0}function Woe(t){let e=t.state.field(Xn,!1);return!e||!e.hint?!1:(t.dispatch({effects:[y5.of(null)]}),!0)}var HX=t=>e=>{let r=e.state.field(Xn,!1);if(!r||!r.hint)return!1;let{signatureResult:i,selectedIdx:n}=r.hint;if(i.items.length===1)return!1;let o=i.items.length,s=n+(t?1:-1);return s<0&&(s+=o),s>=o&&(s-=o),e.dispatch({effects:[eI.of(s)]}),!0},Zoe=[{key:"Mod-Shift-Space",run:Foe},{key:"Escape",run:Woe},{key:"ArrowDown",run:HX(!0)},{key:"ArrowUp",run:HX(!1)}];function tI(t,{activateOnTyping:e=!0,closeOnBlur:r=!0,triggerCharacters:i=["(",","],retriggerCharacters:n=[")"]}={}){return[Xn,qoe,td.of({source:t,activateOnTyping:e,closeOnBlur:r,triggerCharacters:i,retriggerCharacters:n}),GX,cr.high(vr.of(Zoe)),Boe]}var rI=Re.define({combine(t){return Ft(t,{})}}),iI=De.define(),dg=Ot.define({create(){return{doc:null}},update({doc:t},e){e.docChanged&&(t=null);for(let r of e.effects)r.is(iI)&&(t=e.state.doc);return{doc:t}}}),Yoe=dt.fromClass(class{constructor(t){this.view=t,this.query=null}update(t){let e=t.state.field(dg);e.doc!==t.startState.field(dg).doc&&(this.maybeAbortQuery(),e.doc&&this.requestFormatterChanges(t.state))}destroy(){this.maybeAbortQuery()}requestFormatterChanges(t){let{doc:e}=t.field(dg),{source:r}=t.facet(rI),i={aborted:!1};r(e).then(n=>{!i.aborted&&n&&this.view.dispatch({changes:n})}),this.query=i}maybeAbortQuery(){this.query&&(this.query.aborted=!0,this.query=null)}});function Hoe(t){return t.state.readOnly?!1:(t.dispatch({effects:[iI.of(null)]}),!0)}var Goe=[{key:"Ctrl-Shift-i",mac:"Alt-Shift-f",win:"Alt-Shift-f",run:Hoe}];function nI(t){return[dg,Yoe,rI.of({source:t}),vr.of(Goe)]}function oI(t,e){let r=e;for(;!t.endsWith(r);)r=r.slice(0,-1);return r.length}var Koe=xe.baseTheme({".cm-readOnlyHint":{padding:"4px"}}),sI=De.define(),v5=De.define(),pg=Ot.define({create(){return{tooltip:null}},update({tooltip:t},e){e.state.selection.eq(e.startState.selection)||(t=null);for(let r of e.effects)r.is(sI)&&(t={pos:e.state.selection.main.head,above:!0,create:Joe}),r.is(v5)&&(t=null);return{tooltip:t}},provide(t){return Yo.from(t,e=>e.tooltip)}});function Joe(t){let e=document.createElement("div");return e.classList.add("cm-readOnlyHint"),e.textContent="This editor is read-only",{dom:e}}var ese=dt.fromClass(class{constructor(t){this.view=t}},{eventHandlers:{input(t){this.view.state.readOnly&&(this.view.state.field(pg).tooltip||this.view.dispatch({effects:sI.of(null)}))},blur(t){this.view.state.readOnly&&this.view.state.field(pg).tooltip&&setTimeout(()=>{this.view.dispatch({effects:[v5.of(null)]})},0)}}});function tse(t){let e=t.state.field(pg,!1);return!e||!e.tooltip?!1:(t.dispatch({effects:[v5.of(null)]}),!0)}var rse=[{key:"Escape",run:tse}];function aI(){return[pg,ese,vr.of(rse),Koe]}var ise=5e3,rd=class{constructor(e,r){Nt(this,"_onDelta",new Cr);Nt(this,"onDelta",this._onDelta.event);Nt(this,"_onPeersChange",new Cr);Nt(this,"onPeersChange",this._onPeersChange.event);this.connection=e,this.revision=r,this.clientId=e.getClientId(),this.peers={},this.updatePeers(e.getClients()),this.inflightDelta=null,this.bufferDelta=null,this.selection=null,this.selectionChanged=!1,this.revisionReportTimeoutId=null,this.subscriptions=[e.onDelta(this.handleServerDelta.bind(this)),e.onAcknowledgement(this.handleServerAcknowledgement.bind(this)),e.onSelection(this.handleServerSelection.bind(this)),e.onClientsUpdate(this.handleServerClientsUpdate.bind(this))]}destroy(){this.subscriptions.forEach(e=>e.destroy())}getPeers(){return this.peers}handleClientDelta(e,r){this.peers=lI(this.peers,e),this.selection=r,this.inflightDelta?this.bufferDelta?this.bufferDelta=this.bufferDelta.compose(e):this.bufferDelta=e:(this.inflightDelta=e,this.sendDelta()),this._onDelta.dispatch(e,{remote:!1}),this._onPeersChange.dispatch(this.peers)}handleClientSelection(e){this.selection=e,this.inflightDelta?this.selectionChanged=!0:this.sendSelection()}handleServerDelta(e,r,i){this.revision++;let{inflightDelta:n,bufferDelta:o}=this;n&&([e,n]=[n.transform(e,"right"),e.transform(n,"left")],r=r&&ma(r,n)),o&&([e,o]=[o.transform(e,"right"),e.transform(o,"left")],r=r&&ma(r,o)),this.inflightDelta=n,this.bufferDelta=o,this.selection=this.selection&&ma(this.selection,e);let[s,a]=RO(this.peers,i);a=lI(a,e),s&&(a[i]=new Jc(s.id,s.meta,r)),this.peers=a,this._onDelta.dispatch(e,{remote:!0}),this._onPeersChange.dispatch(this.peers),this.maybeScheduleRevisionReport()}handleServerAcknowledgement(){this.revision++,this.inflightDelta=null,this.bufferDelta&&(this.inflightDelta=this.bufferDelta,this.bufferDelta=null,this.sendDelta())}handleServerSelection(e,r){if(!this.peers.hasOwnProperty(r))return;let{inflightDelta:i,bufferDelta:n}=this;i&&(e=e&&ma(e,i)),n&&(e=e&&ma(e,n));let o=this.peers[r];this.peers=Be(ne({},this.peers),{[r]:new Jc(o.id,o.meta,e)}),this._onPeersChange.dispatch(this.peers)}handleServerClientsUpdate(e){this.updatePeers(e),this._onPeersChange.dispatch(this.peers)}sendDelta(){this.connection.sendDelta(this.inflightDelta,this.selection,this.revision),this.selectionChanged=!1,this.maybeCancelRevisionReport()}sendSelection(){Object.keys(this.peers).length>0&&this.connection.sendSelection(this.selection,this.revision),this.selectionChanged=!1}sendRevision(){this.connection.sendRevision(this.revision)}updatePeers(e){let r={};for(let i in e)if(i!==this.clientId){let n=this.peers[i],o=e[i],s=n?n.selection:null;r[i]=new Jc(i,o,s)}this.peers=r}maybeScheduleRevisionReport(){!this.inflightDelta&&!this.revisionReportTimeoutId&&(this.revisionReportTimeoutId=setTimeout(()=>{this.sendRevision(),this.revisionReportTimeoutId=null},ise))}maybeCancelRevisionReport(){this.revisionReportTimeoutId!==null&&(clearTimeout(this.revisionReportTimeoutId),this.revisionReportTimeoutId=null)}},Jc=class{constructor(e,r,i){this.id=e,this.meta=r,this.selection=i}eq(e){return this.id===e.id&&this.meta===e.meta&&(this.selection===e.selection||this.selection&&e.selection&&this.selection.eq(e.selection))}};function lI(t,e){let r={};for(let i in t){let n=t[i],o=n.selection&&ma(n.selection,e);r[i]=new Jc(n.id,n.meta,o)}return r}function cI(t){let e=t.state.selection;return e.ranges.length>1?(t.dispatch({selection:e.asSingle()}),!0):!1}var id=class{constructor(e,r,i,n,o,s,a){Nt(this,"_onMount",new Cr);Nt(this,"onMount",this._onMount.event);Nt(this,"_onChange",new Cr);Nt(this,"onChange",this._onChange.event);Nt(this,"_onBlur",new Cr);Nt(this,"onBlur",this._onBlur.event);Nt(this,"_onFocus",new Cr);Nt(this,"onFocus",this._onFocus.event);this.container=e,this.source=i,this.language=o,this.intellisense=s,this.readOnly=a,this.initialWidgets={},this.connection=r,this.collabClient=new rd(r,n),this.deltaSubscription=this.collabClient.onDelta((l,c)=>{this.source=l.applyToString(this.source),this._onChange.dispatch(this.source)})}isMounted(){return!!this.view}mount(){if(this.isMounted())throw new Error("The editor is already mounted");this.mountEditor(),this.setInitialWidgets(),this._onMount.dispatch()}getSource(){return this.source}getElementAtCursor(){if(!this.isMounted())return this.container;let{node:e}=this.view.domAtPos(this.view.state.selection.main.head);return e instanceof Element?e:e.parentElement}focus(){this.isMounted()||this.mount(),this.view.focus()}blur(){this.isMounted()&&this.view.hasFocus&&this.view.contentDOM.blur()}destroy(){this.isMounted()&&this.view.destroy(),this.collabClient.destroy(),this.deltaSubscription.destroy()}updateDoctests(e){if(this.isMounted())FX(this.view,e);else{this.initialWidgets.doctestReportsByLine=this.initialWidgets.doctestReportsByLine||{};for(let r of e)this.initialWidgets.doctestReportsByLine[r.line]=r}}clearDoctests(){this.isMounted()?WX(this.view):delete this.initialWidgets.doctestReportsByLine}setCodeMarkers(e){if(this.isMounted()){let r=this.view.state.doc,i=e.map(n=>{let o=r.line(n.line),[,s,a]=o.text.match(/^(\s*).*?(\s*)$/),l=o.from+s.length,c=o.to-a.length;return{from:l,to:c,severity:n.severity,message:n.description}});this.view.dispatch(hX(this.view.state,i))}else this.initialWidgets.codeMarkers=e}mountEditor(){let e=er.get(),r=l=>l.toString().padStart(3," "),i=l=>{let c=document.createElement("i");return c.classList.add(l?"ri-arrow-down-s-line":"ri-arrow-right-s-line",l?"cm-gutterFoldMarker-open":null),c},n=xe.theme({"&":{fontSize:`${e.editor_font_size}px`}}),o=this.language==="markdown"&&e.editor_markdown_word_wrap,s=mr.matchLanguageName(vO,this.language,!1),a=[{key:"Escape",run:cI}];this.view=new xe({parent:this.container,doc:this.source,extensions:[dP({formatNumber:r}),lP(),pP(),aP(),oX(),DP({markerDOM:i}),jm({placeholderText:"\u22EF"}),rP(),sP(),cP(),uP(),Tt.allowMultipleSelections.of(!0),VP(),fQ(),_P(),x$(),Tt.readOnly.of(this.readOnly),aI(),vr.of(vX),vr.of(a),Tt.tabSize.of(2),Tt.lineSeparator.of(` `),o?xe.lineWrapping:[],xe.contentAttributes.of({tabIndex:-1}),n,e.editor_theme==="light"?zR:LR,DX(this.collabClient),jX(this.collabClient),q4({activateOnTyping:e.editor_auto_completion,defaultKeymap:!1}),this.intellisense?[q4({override:[this.completionSource.bind(this)]}),_m(this.docsHoverTooltipSource.bind(this)),tI(this.signatureSource.bind(this),{activateOnTyping:e.editor_auto_signature}),nI(this.formatterSource.bind(this))]:[],e.editor_mode==="vim"?[$X()]:[],e.editor_mode==="emacs"?[IX()]:[],s&&s.support,xe.domEventHandlers({keydown:this.handleEditorKeydown.bind(this),blur:this.handleEditorBlur.bind(this),focus:this.handleEditorFocus.bind(this)})]})}handleEditorKeydown(e){return e.key==="Escape"&&this.container.dispatchEvent(new CustomEvent("lb:editor_escape",{bubbles:!0})),!1}handleEditorBlur(e){return this.container.contains(e.relatedTarget)||this._onBlur.dispatch(),!1}handleEditorFocus(e){return this._onFocus.dispatch(),!1}completionSource(e){let r=er.get(),i=e.matchBefore(/[\w?!.]$/),n=e.matchBefore(/^.*/);return!i&&!e.explicit?null:this.connection.intellisenseRequest("completion",{hint:n.text,editor_auto_completion:r.editor_auto_completion}).then(o=>{if(o.items.length===0)return null;let s=o.items.map((l,c)=>{let u=this.completionItemToCompletions(l);return Be(ne({},u),{boost:1-c/o.items.length})}),a=oI(n.text,o.items[0].insert_text);return{from:n.to-a,options:s,validFor:/^\w*[!?]?$/}}).catch(()=>null)}completionItemToCompletions(e){let r={label:e.label,type:e.kind,info:n=>s$(350).then(()=>{let o=document.createElement("div"),s=document.createElement("div");if(s.classList.add("cm-completionInfoDetail"),s.innerHTML=zc(e.detail,this.language),o.appendChild(s),e.documentation){let a=document.createElement("div");a.classList.add("cm-completionInfoDocs"),a.classList.add("cm-markdown"),o.appendChild(a),new ml(a,e.documentation,{defaultCodeLanguage:this.language})}return o})},i=e.insert_text.includes("${}")?e.insert_text:e.insert_text+"${}";return Dr(i,r)}docsHoverTooltipSource(e,r,i){let n=e.state.doc.lineAt(r),o=n.to-n.from,s=n.text,a=r-n.from+(i===1?1:0);return a<1||a>o?null:this.connection.intellisenseRequest("details",{line:s,column:a}).then(l=>({pos:n.from+l.range.from-1,end:n.from+l.range.to-1,above:!0,create:c=>{let u=document.createElement("div");u.classList.add("cm-hoverDocs");for(let f of l.contents){let d=document.createElement("div");d.classList.add("cm-hoverDocsContent"),d.classList.add("cm-markdown"),u.appendChild(d),new ml(d,f,{defaultCodeLanguage:this.language})}return{dom:u}}})).catch(()=>null)}signatureSource({state:e,pos:r}){let i=e.doc.sliceString(0,r);return this.connection.intellisenseRequest("signature",{hint:i}).then(n=>({activeArgumentIdx:n.active_argument,items:n.items})).catch(()=>null)}formatterSource(e){return this.connection.intellisenseRequest("format",{code:e.toString()}).then(r=>{if(this.setCodeMarkers(r.code_markers),r.delta){let i=ns.fromCompressed(r.delta);return p5(i)}else return null}).catch(()=>null)}setInitialWidgets(){if(this.initialWidgets.doctestReportsByLine){let e=Object.values(this.initialWidgets.doctestReportsByLine);this.updateDoctests(e)}this.initialWidgets.codeMarkers&&this.setCodeMarkers(this.initialWidgets.codeMarkers),this.initialWidgets={}}};var nd={},eu=class t{constructor(e){this.id=e,this.pubsub=new Mc,this.map={}}static create(e){let r=new t(e);return nd[e]=r,r}static getStore(e){if(!nd.hasOwnProperty(e))throw new Error(`No store found for id "${e}"`);return nd[e]}destroy(){nd[this.id]===this&&delete nd[this.id]}set(e,r){this.map[e]=r,this.pubsub.broadcast(e,r)}get(e){if(!this.map.hasOwnProperty(e))throw new Error(`Key "${e}" not found in the store`);return this.map[e]}watch(e,r){return this.pubsub.subscribe(e,r)}};var od=class{constructor(e,r,i){Nt(this,"_onDelta",new Cr);Nt(this,"onDelta",this._onDelta.event);Nt(this,"_onAcknowledgement",new Cr);Nt(this,"onAcknowledgement",this._onAcknowledgement.event);Nt(this,"_onSelection",new Cr);Nt(this,"onSelection",this._onSelection.event);Nt(this,"_onClientsUpdate",new Cr);Nt(this,"onClientsUpdate",this._onClientsUpdate.event);this.hook=e,this.cellId=r,this.tag=i,this.sessionStore=eu.getStore("session"),this.handlerByRef={},this.setupCollaborationHandlers(),this.clientsSubscription=this.sessionStore.watch("clients",n=>{this._onClientsUpdate.dispatch(n)}),this.setupIntellisenseHandlers()}destroy(){this.clientsSubscription.destroy()}getClients(){return this.sessionStore.get("clients")}getClientId(){return this.sessionStore.get("clientId")}sendDelta(e,r,i){this.hook.pushEvent("apply_cell_delta",{cell_id:this.cellId,tag:this.tag,delta:e.toCompressed(),selection:r&&uI(r),revision:i})}sendSelection(e,r){this.hook.pushEvent("report_cell_selection",{cell_id:this.cellId,tag:this.tag,selection:e&&uI(e),revision:r})}sendRevision(e){this.hook.pushEvent("report_cell_revision",{cell_id:this.cellId,tag:this.tag,revision:e})}setupCollaborationHandlers(){this.hook.handleEvent(`cell_delta:${this.cellId}:${this.tag}`,({delta:e,selection:r,client_id:i})=>{e=ns.fromCompressed(e),r=r&&fI(r),this._onDelta.dispatch(e,r,i)}),this.hook.handleEvent(`cell_acknowledgement:${this.cellId}:${this.tag}`,()=>{this._onAcknowledgement.dispatch()}),this.hook.handleEvent(`cell_selection:${this.cellId}:${this.tag}`,({selection:e,client_id:r})=>{e=e&&fI(e),this._onSelection.dispatch(e,r)})}setupIntellisenseHandlers(){this.hook.handleEvent("intellisense_response",({ref:e,response:r})=>{let i=this.handlerByRef[e];i&&(i(r),delete this.handlerByRef[e])})}intellisenseRequest(e,r){return new Promise((i,n)=>{this.hook.pushEvent("intellisense_request",ne({cell_id:this.cellId,type:e},r),({ref:o})=>{o?this.handlerByRef[o]=s=>{s?i(s):n(new mg("No relevant intellisense response for the given parameters"))}:n(new mg("Intellisense request could not be completed"))})})}};function uI(t){return t.ranges.map(({anchor:e,head:r})=>[e,r])}function fI(t){let e=t.map(([r,i])=>ce.range(r,i));return ce.create(e)}var mg=class extends Error{constructor(e){super(e),this.name="IntellisenseError"}};var nse={mounted(){this.props=this.getProps(),this.handleEvent(`cell_editor_init:${this.props.cellId}:${this.props.tag}`,({source:t,revision:e,doctest_reports:r,code_markers:i})=>{let n=this.el.querySelector("[data-el-editor-container]"),o=document.createElement("div");n.appendChild(o),this.connection=new od(this,this.props.cellId,this.props.tag),this.liveEditor=new id(o,this.connection,t,e,this.props.language,this.props.intellisense,this.props.readOnly),this.liveEditor.setCodeMarkers(i),this.liveEditor.updateDoctests(r);let s=n.querySelector("[data-el-skeleton]"),a=document.createElement("div");a.classList.add("whitespace-pre","text-editor","font-editor","px-12"),a.textContent=t,s.replaceChildren(a),this.liveEditor.onMount(()=>{s.remove()}),this.el.dispatchEvent(new CustomEvent("lb:cell:editor_created",{detail:{tag:this.props.tag,liveEditor:this.liveEditor},bubbles:!0})),this.visibility=CO(this.el,{root:document.querySelector("[data-el-notebook]"),proximity:2e3}),this.visibility.promise.then(()=>{this.liveEditor.isMounted()||this.liveEditor.mount()})})},disconnected(){this.el.removeAttribute("id")},destroyed(){this.connection&&this.connection.destroy(),this.liveEditor&&(this.el.dispatchEvent(new CustomEvent("lb:cell:editor_removed",{detail:{tag:this.props.tag},bubbles:!0})),this.liveEditor.destroy()),this.visibility&&this.visibility.cancel()},getProps(){return Rt(this.el,["cell-id","tag","language","intellisense","read-only"])}},hI=nse;var w5="data-js-dragging",ose={mounted(){this.el.addEventListener("dragenter",t=>{this.el.setAttribute(w5,"")}),this.el.addEventListener("dragleave",t=>{this.el.contains(t.relatedTarget)||this.el.removeAttribute(w5)}),this.el.addEventListener("drop",t=>{this.el.removeAttribute(w5)})}},dI=ose;var sse={mounted(){let t=er.get(),e=this.el.querySelector('[name="editor_auto_completion"][value="true"]'),r=this.el.querySelector('[name="editor_auto_signature"][value="true"]'),i=this.el.querySelector('[name="editor_font_size"][value="true"]'),n=this.el.querySelector('[name="editor_light_theme"][value="true"]'),o=this.el.querySelector('[name="editor_markdown_word_wrap"][value="true"]'),s=this.el.querySelector('select[name="editor_mode"]');e.checked=t.editor_auto_completion,r.checked=t.editor_auto_signature,i.checked=t.editor_font_size===Qh.large,n.checked=t.editor_theme===Lc.light,o.checked=t.editor_markdown_word_wrap,s.value=t.editor_mode,e.addEventListener("change",a=>{er.update({editor_auto_completion:a.target.checked})}),r.addEventListener("change",a=>{er.update({editor_auto_signature:a.target.checked})}),i.addEventListener("change",a=>{er.update({editor_font_size:a.target.checked?Qh.large:Qh.normal})}),n.addEventListener("change",a=>{er.update({editor_theme:a.target.checked?Lc.light:Lc.default})}),o.addEventListener("change",a=>{er.update({editor_markdown_word_wrap:a.target.checked})}),s.addEventListener("change",a=>{er.update({editor_mode:a.target.value})})}},pI=sse;var ax=(t,e,r)=>{if(!e.has(t))throw TypeError("Cannot "+r)},ss=(t,e,r)=>(ax(t,e,"read from private field"),r?r.call(t):e.get(t)),os=(t,e,r)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,r)},P5=(t,e,r,i)=>(ax(t,e,"write to private field"),i?i.call(t,r):e.set(t,r),r),In=(t,e,r)=>(ax(t,e,"access private method"),r),ase="14.0";function lse(t,e,r){let i=`https://cdn.jsdelivr.net/npm/emojibase-data@${e}/${t}`;return typeof r=="function"?i=r(t,e):typeof r=="string"&&(i=`${r}/${t}`),i}async function lx(t,e={}){let d=e,{local:r=!1,version:i="latest",cdnUrl:n}=d,o=qr(d,["local","version","cdnUrl"]),s=lse(t,i,n),a=r?localStorage:sessionStorage,l=`emojibase/${i}/${t}`,c=a.getItem(l);if(c)return Promise.resolve(JSON.parse(c));let u=await fetch(s,ne({credentials:"omit",mode:"cors",redirect:"error"},o));if(!u.ok)throw new Error("Failed to load Emojibase dataset.");let f=await u.json();try{a.setItem(l,JSON.stringify(f))}catch(p){}return f}var cse={discord:"joypixels",slack:"iamcal"};async function mI(t,e,r){var i;return lx(`${t}/shortcodes/${(i=cse[e])!==null&&i!==void 0?i:e}.json`,r)}function cd(t,e){if(e.length===0)return t;let r=new Set(t.shortcodes);return e.forEach(i=>{let n=i[t.hexcode];Array.isArray(n)?n.forEach(o=>r.add(o)):n&&r.add(n)}),t.shortcodes=[...r],t.skins&&t.skins.forEach(i=>{cd(i,e)}),t}function use(t,e=[]){let r=[];return t.forEach(i=>{if(i.skins){let n=i,{skins:o}=n,s=qr(n,["skins"]);r.push(cd(s,e)),o.forEach(a=>{let l=ne({},a);s.tags&&(l.tags=[...s.tags]),r.push(cd(l,e))})}else r.push(cd(i,e))}),r}function fse(t,e){return e.length===0||t.forEach(r=>{cd(r,e)}),t}async function SI(t,e={}){let l=e,{compact:r=!1,flat:i=!1,shortcodes:n=[]}=l,o=qr(l,["compact","flat","shortcodes"]),s=await lx(`${t}/${r?"compact":"data"}.json`,o),a=[];return n.length>0&&(a=await Promise.all(n.map(c=>{let u;if(c.includes("/")){let[f,d]=c.split("/");u=mI(f,d,o)}else u=mI(t,c,o);return u.catch(()=>({}))}))),i?use(s,a):fse(s,a)}async function TI(t,e){return lx(`${t}/messages.json`,e)}function x5(t,e){let r=t.target.closest("[data-emoji]");if(r){let i=e.find(n=>n.emoji===r.dataset.emoji);if(i)return i}return null}function EI(t){var e;let r=(e=window.matchMedia)==null?void 0:e.call(window,"(prefers-reduced-motion: reduce)");return t.animate&&!(r!=null&&r.matches)}function OI(t,e){return t.toLowerCase().includes(e.toLowerCase())}function hse(t,e){let r=null;return()=>{r||(r=window.setTimeout(()=>{t(),r=null},e))}}function dse(t,e){let r=null;return(...i)=>{r&&window.clearTimeout(r),r=window.setTimeout(()=>{t(...i),r=null},e)}}function kl(t,e,r,i){if(EI(i)&&t.animate)return t.animate(e,r).finished;let n=r.direction==="normal"?1:0,o=Object.entries(e).reduce((s,[a,l])=>Be(ne({},s),{[a]:l[n]}),{});return Object.assign(t.style,o),Promise.resolve()}function Q5(t){var e;let r=document.createElement("template");return r.innerHTML=t,(e=r.content)==null?void 0:e.firstElementChild}async function pse(t){let e=new TextEncoder().encode(t),r=await crypto.subtle.digest("SHA-256",e);return Array.from(new Uint8Array(r)).map(i=>i.toString(16).padStart(2,"0")).join("")}function Ur(...t){return t.reduce((e,r)=>Be(ne({},e),{[r]:cx(r)}),{})}function cx(t){return`picmo__${t}`}function yg(t){for(;t.firstChild;)t.removeChild(t.firstChild);return t}function tu(t,...e){yg(t).append(...e)}function CI(t){try{return window[t].length,!0}catch(e){return!1}}function mse(){return CI("sessionStorage")}function Ose(){return CI("localStorage")}function fd(t){var e;return{emoji:t.emoji,label:t.label,tags:t.tags,skins:(e=t.skins)==null?void 0:e.map(r=>fd(r)),order:t.order,custom:!1,hexcode:t.hexcode,version:t.version}}function Eg(t,e,r){var i;return r&&!r.some(n=>n.order===t.group)?!1:OI(t.label,e)||((i=t.tags)==null?void 0:i.some(n=>OI(n,e)))}var Cg=class{constructor(e="en"){this.locale=e}},gse=[(t,e)=>(t.hexcode==="1F91D"&&e<14&&(t.skins=[]),t),(t,e)=>(t.skins&&(t.skins=t.skins.filter(r=>!r.version||r.version<=e)),t)];function bse(t,e){return gse.some(r=>r(t,e)===null)?null:t}function Pg(t,e){return t.filter(r=>bse(r,e)!==null)}var k5={};function PI(t){return k5[t]||(k5[t]=new _5(t)),k5[t]}PI.deleteDatabase=t=>{};var _5=class extends Cg{open(){return Promise.resolve()}delete(){return Promise.resolve()}close(){}isPopulated(){return Promise.resolve(!1)}getEmojiCount(){return Promise.resolve(this.emojis.length)}getEtags(){return Promise.resolve({foo:"bar"})}getHash(){return Promise.resolve("")}populate(e){return this.categories=e.groups,this.emojis=e.emojis,Promise.resolve()}getCategories(e){var r;let i=this.categories.filter(n=>n.key!=="component");if(e.showRecents&&i.unshift({key:"recents",order:-1}),(r=e.custom)!=null&&r.length&&i.push({key:"custom",order:10}),e.categories){let n=e.categories;i=i.filter(o=>n.includes(o.key)),i.sort((o,s)=>n.indexOf(o.key)-n.indexOf(s.key))}else i.sort((n,o)=>n.order-o.order);return Promise.resolve(i)}getEmojis(e,r){let i=this.emojis.filter(n=>n.group===e.order).filter(n=>n.version<=r).sort((n,o)=>n.order!=null&&o.order!=null?n.order-o.order:0).map(fd);return Promise.resolve(Pg(i,r))}searchEmojis(e,r,i,n){let o=this.emojis.filter(l=>Eg(l,e,n)&&l.version<=i).map(fd),s=r.filter(l=>Eg(l,e,n)),a=[...Pg(o,i),...s];return Promise.resolve(a)}setMeta(e){this.meta=e}};function yse(t,e){let r=`https://cdn.jsdelivr.net/npm/emojibase-data@${t}/${e}`;return{emojisUrl:`${r}/data.json`,messagesUrl:`${r}/messages.json`}}async function gI(t){try{return(await fetch(t,{method:"HEAD"})).headers.get("etag")}catch(e){return null}}function vse(t){let{emojisUrl:e,messagesUrl:r}=yse("latest",t);try{return Promise.all([gI(e),gI(r)])}catch(i){return Promise.all([null,null])}}async function wse(t,e,r){let i;try{i=await t.getEtags()}catch(s){i={}}let{storedEmojisEtag:n,storedMessagesEtag:o}=i;if(r!==o||e!==n){let[s,a]=await Promise.all([TI(t.locale),SI(t.locale)]);await t.populate({groups:s.groups,emojis:a,emojisEtag:e,messagesEtag:r})}}async function xse(t,e){let r=await t.getHash();return e!==r}async function QI(t,e,r){let i=r||e(t);try{await i.open()}catch(n){console.warn("[picmo] IndexedDB not available, falling back to InMemoryStoreFactory"),i=PI(t)}return i}async function kse(t,e,r){if(!mse()&&typeof window<"u")throw new Error("Session storage is required to use CDN emoji data.");let i=await QI(t,e,r),[n,o]=await vse(t);if(await i.isPopulated())n&&o&&await wse(i,n,o);else{let[s,a]=await Promise.all([TI(t),SI(t)]);await i.populate({groups:s.groups,emojis:a,emojisEtag:n,messagesEtag:o})}return i}async function Sse(t,e,r,i,n){let o=await QI(t,e,n),s=await pse(i);return(!await o.isPopulated()||await xse(o,s))&&await o.populate({groups:r.groups,emojis:i,hash:s}),o}async function _I(t,e,r,i,n){return r&&i?Sse(t,e,r,i,n):kse(t,e,n)}var hd=class{constructor(){this.handleKeyDown=this.handleKeyDown.bind(this)}activate(e){this.rootElement=e,this.rootElement.addEventListener("keydown",this.handleKeyDown)}deactivate(){var e;(e=this.rootElement)==null||e.removeEventListener("keydown",this.handleKeyDown)}get focusableElements(){return this.rootElement.querySelectorAll('input, [tabindex="0"]')}get lastFocusableElement(){return this.focusableElements[this.focusableElements.length-1]}get firstFocusableElement(){return this.focusableElements[0]}checkFocus(e,r,i){e.target===r&&(i.focus(),e.preventDefault())}handleKeyDown(e){e.key==="Tab"&&this.checkFocus(e,e.shiftKey?this.firstFocusableElement:this.lastFocusableElement,e.shiftKey?this.lastFocusableElement:this.firstFocusableElement)}},{light:Tse,dark:e7e,auto:t7e}=Ur("light","dark","auto"),ot=class{constructor({template:e,classes:r,parent:i}){this.isDestroyed=!1,this.appEvents={},this.uiEvents=[],this.uiElements={},this.ui={},this.template=e,this.classes=r,this.parent=i,this.keyBindingHandler=this.keyBindingHandler.bind(this)}initialize(){this.bindAppEvents()}setCustomEmojis(e){this.customEmojis=e}setEvents(e){this.events=e}setPickerId(e){this.pickerId=e}emit(e,...r){this.events.emit(e,...r)}setI18n(e){this.i18n=e}setRenderer(e){this.renderer=e}setEmojiData(e){this.emojiDataPromise=e,e.then(r=>{this.emojiData=r})}updateEmojiData(e){this.emojiData=e,this.emojiDataPromise=Promise.resolve(e)}setOptions(e){this.options=e}renderSync(e={}){return this.el=this.template.renderSync(ne({classes:this.classes,i18n:this.i18n,pickerId:this.pickerId},e)),this.postRender(),this.el}async render(e={}){return await this.emojiDataPromise,this.el=await this.template.renderAsync(ne({classes:this.classes,i18n:this.i18n,pickerId:this.pickerId},e)),this.postRender(),this.el}postRender(){this.bindUIElements(),this.bindKeyBindings(),this.bindUIEvents(),this.scheduleShowAnimation()}bindAppEvents(){Object.keys(this.appEvents).forEach(e=>{this.events.on(e,this.appEvents[e],this)}),this.events.on("data:ready",this.updateEmojiData,this)}unbindAppEvents(){Object.keys(this.appEvents).forEach(e=>{this.events.off(e,this.appEvents[e])}),this.events.off("data:ready",this.updateEmojiData)}keyBindingHandler(e){let r=this.keyBindings[e.key];r&&r.call(this,e)}bindKeyBindings(){this.keyBindings&&this.el.addEventListener("keydown",this.keyBindingHandler)}unbindKeyBindings(){this.keyBindings&&this.el.removeEventListener("keydown",this.keyBindingHandler)}bindUIElements(){this.ui=Object.keys(this.uiElements).reduce((e,r)=>Be(ne({},e),{[r]:this.el.querySelector(this.uiElements[r])}),{})}bindUIEvents(){this.uiEvents.forEach(e=>{e.handler=e.handler.bind(this),(e.target?this.ui[e.target]:this.el).addEventListener(e.event,e.handler,e.options)})}unbindUIEvents(){this.uiEvents.forEach(e=>{(e.target?this.ui[e.target]:this.el).removeEventListener(e.event,e.handler)})}destroy(){this.unbindAppEvents(),this.unbindUIEvents(),this.unbindKeyBindings(),this.el.remove(),this.isDestroyed=!0}scheduleShowAnimation(){if(this.parent){let e=new MutationObserver(r=>{let[i]=r;i.type==="childList"&&i.addedNodes[0]===this.el&&(EI(this.options)&&this.animateShow&&this.animateShow(),e.disconnect)});e.observe(this.parent,{childList:!0})}}static childEvent(e,r,i,n={}){return{target:e,event:r,handler:i,options:n}}static uiEvent(e,r,i={}){return{event:e,handler:r,options:i}}static byClass(e){return`.${e}`}},Ese='',Cse='',Pse='',Qse='',_se='',Ase='',Rse='',$se='',Xse=`